| | |
| | | |
| | | #endregion |
| | | |
| | | #region 生产退料 生产领料(红字) 校验模式* |
| | | |
| | | //校验生产退料单 |
| | | [WebMethod] |
| | | public bool set_SaveMateOutBackBill_BillCheck(Model.ClsKf_ICStockBillMain oMain, ref string sErrMsg) |
| | | { |
| | | //获取系统参数 |
| | | Pub_Class.ClsXt_SystemParameter oSystemParameter = new Pub_Class.ClsXt_SystemParameter(); |
| | | if (oSystemParameter.ShowBillByOrgID(oMain.HSTOCKORGID, ref sErrMsg) == false) |
| | | { |
| | | sErrMsg = "获取系统参数失败! " + sErrMsg; |
| | | return false; |
| | | } |
| | | //WMS系统同步至ERP的类型(WISE、CLOUD、MES) |
| | | if (oSystemParameter.omodel.Kf_MateOutBackBillCheck_ERPMode.ToUpper() == "WISE") |
| | | { |
| | | sErrMsg = "暂无此功能!"; |
| | | return false; |
| | | } |
| | | else if (oSystemParameter.omodel.Kf_MateOutBackBillCheck_ERPMode.ToUpper() == "CLOUD") |
| | | { |
| | | //免扫物料条码模式(只扫描源单进行审核,不扫描物料条码) |
| | | //原单据为扫码生成,对原扫描的条码进行核对 |
| | | if (oSystemParameter.omodel.Kf_MateOutBackBillCheck_AutoBarCode == "Y" |
| | | || oSystemParameter.omodel.Kf_MateOutBackBillCheck_SourceBarCodeCtl == "Y") |
| | | { |
| | | if (set_SaveMateOutBackBill_CLD_BillCheck_Verify(oMain, oSystemParameter.omodel, ref sErrMsg) == true) |
| | | { |
| | | //上传成功 |
| | | return true; |
| | | } |
| | | else |
| | | { |
| | | //上传失败 |
| | | sErrMsg = "单据号:" + oMain.HBillNo + ",单据ID:" + oMain.HInterID + ";上传单据失败!" + sErrMsg; |
| | | return false; |
| | | } |
| | | } |
| | | //原单据非扫码生成 |
| | | else |
| | | { |
| | | if (set_SaveMateOutBackBill_CLD_BillCheck(oMain, oSystemParameter.omodel, ref sErrMsg) == true) |
| | | { |
| | | //上传成功 |
| | | return true; |
| | | } |
| | | else |
| | | { |
| | | //上传失败 |
| | | sErrMsg = "单据号:" + oMain.HBillNo + ",单据ID:" + oMain.HInterID + ";上传单据失败!" + sErrMsg; |
| | | return false; |
| | | } |
| | | } |
| | | } |
| | | else if (oSystemParameter.omodel.Kf_MateOutBackBillCheck_ERPMode.ToUpper() == "WMS") //只生成WMS单据 |
| | | { |
| | | //免扫物料条码模式(只扫描源单进行审核,不扫描物料条码) |
| | | //原单据为扫码生成,对原扫描的条码进行核对 |
| | | if (oSystemParameter.omodel.Kf_MateOutBackBillCheck_AutoBarCode == "Y" |
| | | || oSystemParameter.omodel.Kf_MateOutBackBillCheck_SourceBarCodeCtl == "Y") |
| | | { |
| | | sErrMsg = "暂不支持扫码生成单据的校验功能!"; |
| | | return false; |
| | | } |
| | | //原单据非扫码生成 |
| | | else |
| | | { |
| | | if (set_SaveMateOutBackBill_WMS_BillCheck(oMain, oSystemParameter.omodel, ref sErrMsg) == true) |
| | | { |
| | | //上传成功 |
| | | return true; |
| | | } |
| | | else |
| | | { |
| | | //上传失败 |
| | | sErrMsg = "单据号:" + oMain.HBillNo + ",单据ID:" + oMain.HInterID + ";上传单据失败!" + sErrMsg; |
| | | return false; |
| | | } |
| | | } |
| | | } |
| | | else |
| | | { |
| | | sErrMsg = "WMS系统同步至ERP的类型对应系统参数设置错误!"; |
| | | return false; |
| | | } |
| | | } |
| | | |
| | | //CLOUD 原单据非扫码生成 |
| | | private bool set_SaveMateOutBackBill_CLD_BillCheck(Model.ClsKf_ICStockBillMain oMain, Pub_Class.ClsXt_SystemParameterMain oSystemParameterMain, ref string sErrMsg) |
| | | { |
| | | SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); |
| | | |
| | | //上传前判断 |
| | | DataSet Ds = oCn.RunProcReturn("exec h_p_WMS_BeforeUpload_MateOutBackBillCheck " + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "','" + oMain.HBillType + "','" + oSystemParameterMain.Kf_MateOutBackBillCheck_MustQtyCtl + "'", "h_p_WMS_BeforeUpload_MateOutBackBillCheck"); |
| | | if (Ds == null || Ds.Tables[0].Rows.Count == 0) |
| | | { |
| | | sErrMsg = "校验上传前判断,发生错误!"; |
| | | return false; |
| | | } |
| | | else |
| | | { |
| | | if (DBUtility.ClsPub.isLong(Ds.Tables[0].Rows[0][0]) == 1) |
| | | { |
| | | sErrMsg = "单据号:" + oMain.HBillNo + ",单据ID:" + oMain.HInterID + ";" + DBUtility.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["HRemark"]); |
| | | return false; |
| | | } |
| | | } |
| | | |
| | | try |
| | | { |
| | | oCn.BeginTran(); |
| | | //写入条码出入库表 |
| | | oCn.RunProc("EXEC h_p_Kf_ICStockBillSub_WMS_Insert_New " + oMain.HInterID.ToString() + ",'" + oMain.HBillType + "','" + oMain.HBillNo + "'"); |
| | | |
| | | //从配置文件获取 CLOUD网址、账套信息、登录用户、登录密码 |
| | | if (!Pub_Class.ClsPub.GetCLOUDLoginInfo(ref Pub_Class.ClsPub.sExeReturnInfo)) |
| | | { |
| | | sErrMsg = Pub_Class.ClsPub.sExeReturnInfo; |
| | | return false; |
| | | } |
| | | |
| | | //获取CLOUD账号密码 |
| | | string sCLOUDUseName = Pub_Class.ClsPub.sCLOUDUseName; |
| | | string sCLOUDPsd = Pub_Class.ClsPub.sCLOUDPsd; |
| | | |
| | | //从用户表获取用户绑定金蝶账号 |
| | | DataSet ds11 = oCn.RunProcReturn("exec h_p_API_GetCloudUserByLoginUser '" + oMain.HMaker + "'", "h_p_API_GetCloudUserByLoginUser"); |
| | | if (ds11 == null || ds11.Tables[0].Rows.Count == 0) |
| | | { |
| | | } |
| | | else |
| | | { |
| | | sCLOUDUseName = DBUtility.ClsPub.isStrNull(ds11.Tables[0].Rows[0]["HCloudUserName"]); |
| | | sCLOUDPsd = DBUtility.ClsPub.isStrNull(ds11.Tables[0].Rows[0]["HCloudUserPsd"]); |
| | | } |
| | | |
| | | if (oSystemParameterMain.Kf_MateOutBackBillCheck_MustQtyCtl == "完全等于应收") |
| | | { |
| | | string HReturn; |
| | | ApiClient client = new ApiClient(Pub_Class.ClsPub.sCLOUDUrl); |
| | | string dbId = Pub_Class.ClsPub.sCLOUDAcc; //AotuTest117 |
| | | bool bLogin = client.Login(dbId, sCLOUDUseName, sCLOUDPsd, 2052); |
| | | if (bLogin) |
| | | { |
| | | //提交单据 |
| | | string sJson2 = "{\"CreateOrgId\":0,\"Numbers\":[\"" + oMain.HBillNo + "\"]}"; |
| | | var result2 = client.Execute<string>("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Submit", |
| | | new object[] { "PRD_ReturnMtrl", sJson2 }); |
| | | //审核单据 |
| | | string sJson3 = "{\"CreateOrgId\":0,\"Numbers\":[\"" + oMain.HBillNo + "\"]}"; |
| | | var result3 = client.Execute<string>("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Audit", |
| | | new object[] { "PRD_ReturnMtrl", sJson3 }); |
| | | |
| | | HReturn = result3.ToString(); |
| | | |
| | | if (HReturn.Contains("\"IsSuccess\":false") == true) |
| | | { |
| | | //反序列化json数据 |
| | | var retModel = JsonConvert.DeserializeObject<KingdeeResponse>(HReturn); |
| | | //接收金蝶报错信息 |
| | | var strErrorMsg = string.Empty; |
| | | //遍历获取报错信息 |
| | | foreach (var item in retModel.Result.ResponseStatus.Errors) |
| | | { |
| | | strErrorMsg += item.Message + "\r\n"; |
| | | }; |
| | | sErrMsg = "校验审核生产退料单失败!金蝶云提示:" + strErrorMsg; |
| | | LogService.Write("校验审核生产退料单失败!" + HReturn); //写入txt文本 |
| | | oCn.RollBack(); |
| | | return false; |
| | | } |
| | | else |
| | | { |
| | | sErrMsg = "审核生产退料单成功!单据号为:" + oMain.HBillNo; |
| | | LogService.Write("校验审核生产退料单成功!单据号为:" + oMain.HBillNo); //写入txt文本 |
| | | oCn.Commit(); |
| | | return true; |
| | | } |
| | | } |
| | | else |
| | | { |
| | | sErrMsg = "校验审核生产退料单失败!金蝶云登录失败!"; |
| | | oCn.RollBack(); |
| | | return false; |
| | | } |
| | | } |
| | | else |
| | | { |
| | | //根据TMP表 返回 修改信息 |
| | | DataSet Ds2; |
| | | Ds2 = oCn.RunProcReturn("exec h_p_Kf_GetMateOutBackBillCheck " + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "'", "h_p_Kf_GetMateOutBackBillCheck"); |
| | | if (Ds2 == null || Ds2.Tables[0].Rows.Count == 0 || Ds2.Tables[1].Rows.Count == 0) |
| | | { |
| | | sErrMsg = "获取子表信息失败!"; |
| | | oCn.RollBack(); |
| | | return false; |
| | | } |
| | | else |
| | | { |
| | | string sJson_Main = "{\"Creator\":\"\",\"NeedUpDateFields\":[\"FEntity\",\"FQty\"]," + |
| | | "\"NeedReturnFields\":[],\"IsDeleteEntry\":\"false\",\"SubSystemId\":\"\",\"IsVerifyBaseDataField\":\"false\"," + |
| | | "\"IsEntryBatchFill\":\"True\",\"ValidateFlag\":\"True\",\"NumberSearch\":\"True\",\"InterationFlags\":\"\"," + |
| | | "\"Model\":{ \"FID\":\"" + Pub_Class.ClsPub.isStrNull(Ds2.Tables[0].Rows[0]["FID"]) + "\"," + |
| | | "\"FEntity\":["; |
| | | string sJson_Entry = ""; |
| | | for (int i = 0; i < Ds2.Tables[1].Rows.Count; i++) |
| | | { |
| | | if (sJson_Entry != "") |
| | | { |
| | | sJson_Entry = sJson_Entry + " , "; |
| | | } |
| | | |
| | | sJson_Entry = sJson_Entry + "{" + |
| | | "\"FEntryID\":\"" + Pub_Class.ClsPub.isStrNull(Ds2.Tables[1].Rows[i]["FEntryID"]) + "\"," + |
| | | "\"FQty\":\"" + Pub_Class.ClsPub.isStrNull(Ds2.Tables[1].Rows[i]["FQty"]) + "\" " + |
| | | "}"; |
| | | } |
| | | string sJson_End = " ] }}"; |
| | | string sJson = sJson_Main + sJson_Entry + sJson_End; |
| | | |
| | | //验证用户信息 |
| | | string HReturn; |
| | | ApiClient client = new ApiClient(Pub_Class.ClsPub.sCLOUDUrl); |
| | | string dbId = Pub_Class.ClsPub.sCLOUDAcc; //AotuTest117 |
| | | bool bLogin = client.Login(dbId, sCLOUDUseName, sCLOUDPsd, 2052); |
| | | if (bLogin) |
| | | { |
| | | //修改单据 |
| | | var result = client.Execute<string>("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Save", |
| | | new object[] { "PRD_ReturnMtrl", sJson }); |
| | | |
| | | HReturn = result.ToString(); |
| | | |
| | | if (HReturn.Contains("\"IsSuccess\":false") == true) |
| | | { |
| | | //反序列化json数据 |
| | | var retModel = JsonConvert.DeserializeObject<KingdeeResponse>(HReturn); |
| | | //接收金蝶报错信息 |
| | | var strErrorMsg = string.Empty; |
| | | //遍历获取报错信息 |
| | | foreach (var item in retModel.Result.ResponseStatus.Errors) |
| | | { |
| | | strErrorMsg += item.Message + "\r\n"; |
| | | }; |
| | | sErrMsg = "校验修改生产退料单失败!金蝶云提示:" + strErrorMsg; |
| | | LogService.Write("校验修改生产退料单失败!" + HReturn + sJson); //写入txt文本 |
| | | oCn.RollBack(); |
| | | return false; |
| | | } |
| | | else |
| | | { |
| | | HReturn = ""; |
| | | //提交单据 |
| | | string sJson2 = "{\"CreateOrgId\":0,\"Numbers\":[\"" + oMain.HBillNo + "\"]}"; |
| | | var result2 = client.Execute<string>("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Submit", |
| | | new object[] { "PRD_ReturnMtrl", sJson2 }); |
| | | //审核单据 |
| | | string sJson3 = "{\"CreateOrgId\":0,\"Numbers\":[\"" + oMain.HBillNo + "\"]}"; |
| | | var result3 = client.Execute<string>("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Audit", |
| | | new object[] { "PRD_ReturnMtrl", sJson3 }); |
| | | |
| | | HReturn = result3.ToString(); |
| | | |
| | | if (HReturn.Contains("\"IsSuccess\":false") == true) |
| | | { |
| | | //反序列化json数据 |
| | | var retModel = JsonConvert.DeserializeObject<KingdeeResponse>(HReturn); |
| | | //接收金蝶报错信息 |
| | | var strErrorMsg = string.Empty; |
| | | //遍历获取报错信息 |
| | | foreach (var item in retModel.Result.ResponseStatus.Errors) |
| | | { |
| | | strErrorMsg += item.Message + "\r\n"; |
| | | }; |
| | | sErrMsg = "校验审核生产退料单失败!金蝶云提示:" + strErrorMsg; |
| | | LogService.Write("校验审核生产退料单失败!" + HReturn + sJson); //写入txt文本 |
| | | oCn.RollBack(); |
| | | return false; |
| | | } |
| | | else |
| | | { |
| | | //重新同步生产退料单 |
| | | oCn.RunProc("exec h_p_IFCLD_ERPSourceBillToLocal_MateOutBack '" + oMain.HBillNo + "'"); |
| | | sErrMsg = "修改并审核生产退料单成功!单据号为:" + oMain.HBillNo; |
| | | LogService.Write("校验修改并审核生产退料单成功!单据号为:" + oMain.HBillNo); //写入txt文本 |
| | | oCn.Commit(); |
| | | return true; |
| | | } |
| | | } |
| | | } |
| | | else |
| | | { |
| | | sErrMsg = "校验审核生产退料单失败!金蝶云登录失败!"; |
| | | oCn.RollBack(); |
| | | return false; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | sErrMsg = "校验审核生产退料单失败!" + e.Message; |
| | | oCn.RollBack(); |
| | | return false; |
| | | } |
| | | } |
| | | |
| | | //CLOUD 免扫物料条码模式(只扫描源单进行审核,不扫描物料条码) |
| | | //CLOUD 原单据为扫码生成,对原扫描的条码进行核对 |
| | | private bool set_SaveMateOutBackBill_CLD_BillCheck_Verify(Model.ClsKf_ICStockBillMain oMain, Pub_Class.ClsXt_SystemParameterMain oSystemParameterMain, ref string sErrMsg) |
| | | { |
| | | SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); |
| | | |
| | | //上传前判断 |
| | | DataSet Ds = oCn.RunProcReturn("exec h_p_WMS_BeforeUpload_MateOutBackBillCheck_Verify " + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "','" + oMain.HBillType + "','" + oSystemParameterMain.Kf_MateOutBackBillCheck_AutoBarCode + "'", "h_p_WMS_BeforeUpload_MateOutBackBillCheck_Verify"); |
| | | if (Ds == null || Ds.Tables[0].Rows.Count == 0) |
| | | { |
| | | sErrMsg = "校验上传前判断,发生错误!"; |
| | | return false; |
| | | } |
| | | else |
| | | { |
| | | if (DBUtility.ClsPub.isLong(Ds.Tables[0].Rows[0][0]) == 1) |
| | | { |
| | | sErrMsg = "单据号:" + oMain.HBillNo + ",单据ID:" + oMain.HInterID + ";" + DBUtility.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["HRemark"]); |
| | | return false; |
| | | } |
| | | } |
| | | |
| | | try |
| | | { |
| | | oCn.BeginTran(); |
| | | //写入出入库校验表、条码出入库校验表 |
| | | oCn.RunProc("EXEC h_p_Kf_ICStockBillSub_WMS_Verify_Insert " + oMain.HInterID.ToString() + ",'" + oMain.HBillType + "','" + oMain.HBillNo + "','" + oSystemParameterMain.Kf_MateOutBackBillCheck_AutoBarCode + "'"); |
| | | |
| | | //从配置文件获取 CLOUD网址、账套信息、登录用户、登录密码 |
| | | if (!Pub_Class.ClsPub.GetCLOUDLoginInfo(ref Pub_Class.ClsPub.sExeReturnInfo)) |
| | | { |
| | | sErrMsg = Pub_Class.ClsPub.sExeReturnInfo; |
| | | return false; |
| | | } |
| | | |
| | | //获取CLOUD账号密码 |
| | | string sCLOUDUseName = Pub_Class.ClsPub.sCLOUDUseName; |
| | | string sCLOUDPsd = Pub_Class.ClsPub.sCLOUDPsd; |
| | | |
| | | //从用户表获取用户绑定金蝶账号 |
| | | DataSet ds11 = oCn.RunProcReturn("exec h_p_API_GetCloudUserByLoginUser '" + oMain.HMaker + "'", "h_p_API_GetCloudUserByLoginUser"); |
| | | if (ds11 == null || ds11.Tables[0].Rows.Count == 0) |
| | | { |
| | | } |
| | | else |
| | | { |
| | | sCLOUDUseName = DBUtility.ClsPub.isStrNull(ds11.Tables[0].Rows[0]["HCloudUserName"]); |
| | | sCLOUDPsd = DBUtility.ClsPub.isStrNull(ds11.Tables[0].Rows[0]["HCloudUserPsd"]); |
| | | } |
| | | |
| | | //金蝶云审核单据 |
| | | string HReturn; |
| | | ApiClient client = new ApiClient(Pub_Class.ClsPub.sCLOUDUrl); |
| | | string dbId = Pub_Class.ClsPub.sCLOUDAcc; //AotuTest117 |
| | | bool bLogin = client.Login(dbId, sCLOUDUseName, sCLOUDPsd, 2052); |
| | | if (bLogin) |
| | | { |
| | | //提交单据 |
| | | string sJson2 = "{\"CreateOrgId\":0,\"Numbers\":[\"" + oMain.HBillNo + "\"]}"; |
| | | var result2 = client.Execute<string>("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Submit", |
| | | new object[] { "PRD_ReturnMtrl", sJson2 }); |
| | | //审核单据 |
| | | string sJson3 = "{\"CreateOrgId\":0,\"Numbers\":[\"" + oMain.HBillNo + "\"]}"; |
| | | var result3 = client.Execute<string>("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Audit", |
| | | new object[] { "PRD_ReturnMtrl", sJson3 }); |
| | | |
| | | HReturn = result3.ToString(); |
| | | |
| | | if (HReturn.Contains("\"IsSuccess\":false") == true) |
| | | { |
| | | //反序列化json数据 |
| | | var retModel = JsonConvert.DeserializeObject<KingdeeResponse>(HReturn); |
| | | //接收金蝶报错信息 |
| | | var strErrorMsg = string.Empty; |
| | | //遍历获取报错信息 |
| | | foreach (var item in retModel.Result.ResponseStatus.Errors) |
| | | { |
| | | strErrorMsg += item.Message + "\r\n"; |
| | | }; |
| | | sErrMsg = "校验审核生产退料单失败!金蝶云提示:" + strErrorMsg; |
| | | LogService.Write("校验审核生产退料单失败!" + HReturn); //写入txt文本 |
| | | oCn.RollBack(); |
| | | return false; |
| | | } |
| | | else |
| | | { |
| | | sErrMsg = "校验审核生产退料单成功!单据号为:" + oMain.HBillNo; |
| | | LogService.Write("校验审核生产退料单成功!单据号为:" + oMain.HBillNo); //写入txt文本 |
| | | oCn.Commit(); |
| | | return true; |
| | | } |
| | | } |
| | | else |
| | | { |
| | | sErrMsg = "校验审核生产退料单失败!金蝶云登录失败!"; |
| | | oCn.RollBack(); |
| | | return false; |
| | | } |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | sErrMsg = "校验审核生产退料单失败!" + e.Message; |
| | | oCn.RollBack(); |
| | | return false; |
| | | } |
| | | } |
| | | |
| | | //WMS 原单据非扫码生成 只生成WMS单据 |
| | | private bool set_SaveMateOutBackBill_WMS_BillCheck(Model.ClsKf_ICStockBillMain oMain, Pub_Class.ClsXt_SystemParameterMain oSystemParameterMain, ref string sErrMsg) |
| | | { |
| | | SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); |
| | | |
| | | //上传前判断 |
| | | DataSet Ds = oCn.RunProcReturn("exec h_p_WMS_BeforeUpload_MateOutBackBillCheck_WMS " + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "','" + oMain.HBillType + "','" + oSystemParameterMain.WMS_WMSStockCtl_ERPMode + "'", "h_p_WMS_BeforeUpload_MateOutBackBillCheck_WMS"); |
| | | if (Ds == null || Ds.Tables[0].Rows.Count == 0) |
| | | { |
| | | sErrMsg = "校验上传前判断,发生错误!"; |
| | | return false; |
| | | } |
| | | else |
| | | { |
| | | if (DBUtility.ClsPub.isLong(Ds.Tables[0].Rows[0][0]) == 1) |
| | | { |
| | | sErrMsg = DBUtility.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["HRemark"]); |
| | | return false; |
| | | } |
| | | } |
| | | |
| | | try |
| | | { |
| | | oCn.BeginTran(); |
| | | //写入条码出入库表 |
| | | oCn.RunProc("EXEC h_p_Kf_ICStockBillSub_WMS_Insert_New " + oMain.HInterID.ToString() + ",'" + oMain.HBillType + "','" + oMain.HBillNo + "'"); |
| | | |
| | | sErrMsg = "校验生产退料单成功!单据号为:" + oMain.HBillNo; |
| | | LogService.Write("校验生产退料单成功!单据号为:" + oMain.HBillNo); //写入txt文本 |
| | | oCn.Commit(); |
| | | return true; |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | sErrMsg = "校验生产退料单失败!" + e.Message; |
| | | oCn.RollBack(); |
| | | return false; |
| | | } |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | #region 领料出库 *旧 |
| | | |
| | | //生成领料出库单 |
| | |
| | | //先进先出控制 |
| | | sFIFOCtl = oSystemParameter.omodel.Kf_MoveStockBillCheck_FIFOCtl; |
| | | } |
| | | //采购退料单 |
| | | else if (HBillType == "1239") |
| | | { |
| | | //校验-是否校对仓库仓位('Y'为校对) |
| | | if (oSystemParameter.omodel.Kf_POStockInBackBillCheck_WHSPCtl.ToUpper() == "N") |
| | | { |
| | | sWHSPCtl = "N"; |
| | | } |
| | | //校验-是否校对仓库('Y'为校对) |
| | | if (oSystemParameter.omodel.Kf_POStockInBackBillCheck_WHCtl.ToUpper() == "N") |
| | | { |
| | | sWHCtl = "N"; |
| | | } |
| | | //校验-是否进行源单对应条码核对('Y'为核对) |
| | | if (oSystemParameter.omodel.Kf_POStockInBackBillCheck_SourceBarCodeCtl.ToUpper() == "Y") |
| | | { |
| | | sSourceBarCodeCtl = "Y"; |
| | | } |
| | | //免扫物料条码模式('Y'为不扫物料条码) |
| | | if (oSystemParameter.omodel.Kf_POStockInBackBillCheck_AutoBarCode.ToUpper() == "Y") |
| | | { |
| | | sAutoBarCode = "Y"; |
| | | } |
| | | //WMS系统同步至ERP的类型(WISE、CLOUD、WMS) |
| | | if (oSystemParameter.omodel.Kf_POStockInBackBillCheck_ERPMode == "WMS") |
| | | { |
| | | sERPMode = "WMS"; |
| | | } |
| | | else if (oSystemParameter.omodel.Kf_POStockInBackBillCheck_ERPMode == "WISE") |
| | | { |
| | | sERPMode = "WISE"; |
| | | } |
| | | else |
| | | { |
| | | sERPMode = "CLOUD"; |
| | | } |
| | | //仓位是否从ERP同步('N'为仓位数据本地维护,'Y'为仓位数据从ERP中同步至本地) |
| | | if (oSystemParameter.omodel.Kf_POStockInBackBillCheck_ERPMode.ToUpper() != "WMS" && oSystemParameter.omodel.WMS_StockPlaceAutoCtl.ToUpper() == "N") |
| | | { |
| | | sStockPlaceAutoCtl = "N"; |
| | | } |
| | | } |
| | | //生产退库单 |
| | | else if (HBillType == "1245") |
| | | { |
| | | //校验-是否校对仓库仓位('Y'为校对) |
| | | if (oSystemParameter.omodel.Kf_ProductInBackBillCheck_WHSPCtl.ToUpper() == "N") |
| | | { |
| | | sWHSPCtl = "N"; |
| | | } |
| | | //校验-是否校对仓库('Y'为校对) |
| | | if (oSystemParameter.omodel.Kf_ProductInBackBillCheck_WHCtl.ToUpper() == "N") |
| | | { |
| | | sWHCtl = "N"; |
| | | } |
| | | //校验-是否进行源单对应条码核对('Y'为核对) |
| | | if (oSystemParameter.omodel.Kf_ProductInBackBillCheck_SourceBarCodeCtl.ToUpper() == "Y") |
| | | { |
| | | sSourceBarCodeCtl = "Y"; |
| | | } |
| | | //免扫物料条码模式('Y'为不扫物料条码) |
| | | if (oSystemParameter.omodel.Kf_ProductInBackBillCheck_AutoBarCode.ToUpper() == "Y") |
| | | { |
| | | sAutoBarCode = "Y"; |
| | | } |
| | | //WMS系统同步至ERP的类型(WISE、CLOUD、WMS) |
| | | if (oSystemParameter.omodel.Kf_ProductInBackBillCheck_ERPMode == "WMS") |
| | | { |
| | | sERPMode = "WMS"; |
| | | } |
| | | else if (oSystemParameter.omodel.Kf_ProductInBackBillCheck_ERPMode == "WISE") |
| | | { |
| | | sERPMode = "WISE"; |
| | | } |
| | | else |
| | | { |
| | | sERPMode = "CLOUD"; |
| | | } |
| | | //仓位是否从ERP同步('N'为仓位数据本地维护,'Y'为仓位数据从ERP中同步至本地) |
| | | if (oSystemParameter.omodel.Kf_ProductInBackBillCheck_ERPMode.ToUpper() != "WMS" && oSystemParameter.omodel.WMS_StockPlaceAutoCtl.ToUpper() == "N") |
| | | { |
| | | sStockPlaceAutoCtl = "N"; |
| | | } |
| | | } |
| | | //生产退料单 |
| | | else if (HBillType == "1244") |
| | | { |
| | | //校验-是否校对仓库仓位('Y'为校对) |
| | | if (oSystemParameter.omodel.Kf_MateOutBackBillCheck_WHSPCtl.ToUpper() == "N") |
| | | { |
| | | sWHSPCtl = "N"; |
| | | } |
| | | //校验-是否校对仓库('Y'为校对) |
| | | if (oSystemParameter.omodel.Kf_MateOutBackBillCheck_WHCtl.ToUpper() == "N") |
| | | { |
| | | sWHCtl = "N"; |
| | | } |
| | | //校验-是否进行源单对应条码核对('Y'为核对) |
| | | if (oSystemParameter.omodel.Kf_MateOutBackBillCheck_SourceBarCodeCtl.ToUpper() == "Y") |
| | | { |
| | | sSourceBarCodeCtl = "Y"; |
| | | } |
| | | //免扫物料条码模式('Y'为不扫物料条码) |
| | | if (oSystemParameter.omodel.Kf_MateOutBackBillCheck_AutoBarCode.ToUpper() == "Y") |
| | | { |
| | | sAutoBarCode = "Y"; |
| | | } |
| | | //WMS系统同步至ERP的类型(WISE、CLOUD、WMS) |
| | | if (oSystemParameter.omodel.Kf_MateOutBackBillCheck_ERPMode == "WMS") |
| | | { |
| | | sERPMode = "WMS"; |
| | | } |
| | | else if (oSystemParameter.omodel.Kf_MateOutBackBillCheck_ERPMode == "WISE") |
| | | { |
| | | sERPMode = "WISE"; |
| | | } |
| | | else |
| | | { |
| | | sERPMode = "CLOUD"; |
| | | } |
| | | //仓位是否从ERP同步('N'为仓位数据本地维护,'Y'为仓位数据从ERP中同步至本地) |
| | | if (oSystemParameter.omodel.Kf_MateOutBackBillCheck_ERPMode.ToUpper() != "WMS" && oSystemParameter.omodel.WMS_StockPlaceAutoCtl.ToUpper() == "N") |
| | | { |
| | | sStockPlaceAutoCtl = "N"; |
| | | } |
| | | } |
| | | //销售退货单 |
| | | else if (HBillType == "1247") |
| | | { |
| | | //校验-是否校对仓库仓位('Y'为校对) |
| | | if (oSystemParameter.omodel.Kf_SellOutBackBillCheck_WHSPCtl.ToUpper() == "N") |
| | | { |
| | | sWHSPCtl = "N"; |
| | | } |
| | | //校验-是否校对仓库('Y'为校对) |
| | | if (oSystemParameter.omodel.Kf_SellOutBackBillCheck_WHCtl.ToUpper() == "N") |
| | | { |
| | | sWHCtl = "N"; |
| | | } |
| | | //校验-是否进行源单对应条码核对('Y'为核对) |
| | | if (oSystemParameter.omodel.Kf_SellOutBackBillCheck_SourceBarCodeCtl.ToUpper() == "Y") |
| | | { |
| | | sSourceBarCodeCtl = "Y"; |
| | | } |
| | | //免扫物料条码模式('Y'为不扫物料条码) |
| | | if (oSystemParameter.omodel.Kf_SellOutBackBillCheck_AutoBarCode.ToUpper() == "Y") |
| | | { |
| | | sAutoBarCode = "Y"; |
| | | } |
| | | //WMS系统同步至ERP的类型(WISE、CLOUD、WMS) |
| | | if (oSystemParameter.omodel.Kf_SellOutBackBillCheck_ERPMode == "WMS") |
| | | { |
| | | sERPMode = "WMS"; |
| | | } |
| | | else if (oSystemParameter.omodel.Kf_SellOutBackBillCheck_ERPMode == "WISE") |
| | | { |
| | | sERPMode = "WISE"; |
| | | } |
| | | else |
| | | { |
| | | sERPMode = "CLOUD"; |
| | | } |
| | | //仓位是否从ERP同步('N'为仓位数据本地维护,'Y'为仓位数据从ERP中同步至本地) |
| | | if (oSystemParameter.omodel.Kf_SellOutBackBillCheck_ERPMode.ToUpper() != "WMS" && oSystemParameter.omodel.WMS_StockPlaceAutoCtl.ToUpper() == "N") |
| | | { |
| | | sStockPlaceAutoCtl = "N"; |
| | | } |
| | | } |
| | | //委外退料单 |
| | | else if (HBillType == "1238") |
| | | { |
| | | //校验-是否校对仓库仓位('Y'为校对) |
| | | if (oSystemParameter.omodel.Kf_EntrustOutBackBillCheck_WHSPCtl.ToUpper() == "N") |
| | | { |
| | | sWHSPCtl = "N"; |
| | | } |
| | | //校验-是否校对仓库('Y'为校对) |
| | | if (oSystemParameter.omodel.Kf_EntrustOutBackBillCheck_WHCtl.ToUpper() == "N") |
| | | { |
| | | sWHCtl = "N"; |
| | | } |
| | | //校验-是否进行源单对应条码核对('Y'为核对) |
| | | if (oSystemParameter.omodel.Kf_EntrustOutBackBillCheck_SourceBarCodeCtl.ToUpper() == "Y") |
| | | { |
| | | sSourceBarCodeCtl = "Y"; |
| | | } |
| | | //免扫物料条码模式('Y'为不扫物料条码) |
| | | if (oSystemParameter.omodel.Kf_EntrustOutBackBillCheck_AutoBarCode.ToUpper() == "Y") |
| | | { |
| | | sAutoBarCode = "Y"; |
| | | } |
| | | //WMS系统同步至ERP的类型(WISE、CLOUD、WMS) |
| | | if (oSystemParameter.omodel.Kf_EntrustOutBackBillCheck_ERPMode == "WMS") |
| | | { |
| | | sERPMode = "WMS"; |
| | | } |
| | | else if (oSystemParameter.omodel.Kf_EntrustOutBackBillCheck_ERPMode == "WISE") |
| | | { |
| | | sERPMode = "WISE"; |
| | | } |
| | | else |
| | | { |
| | | sERPMode = "CLOUD"; |
| | | } |
| | | //仓位是否从ERP同步('N'为仓位数据本地维护,'Y'为仓位数据从ERP中同步至本地) |
| | | if (oSystemParameter.omodel.Kf_EntrustOutBackBillCheck_ERPMode.ToUpper() != "WMS" && oSystemParameter.omodel.WMS_StockPlaceAutoCtl.ToUpper() == "N") |
| | | { |
| | | sStockPlaceAutoCtl = "N"; |
| | | } |
| | | } |
| | | |
| | | //判断是否校对仓库仓位、是否校对仓库状态 |
| | | //(启用条码库存 或 启用先进先出)且 仓位数据从ERP中同步至本地 |
| | |
| | | } |
| | | //先进先出控制 |
| | | sFIFOCtl = oSystemParameterMain.Kf_MoveStockBillCheck_FIFOCtl; |
| | | } |
| | | //采购退料单 |
| | | else if (HBillType == "1239") |
| | | { |
| | | //校验-是否校对仓库仓位('Y'为校对) |
| | | if (oSystemParameterMain.Kf_POStockInBackBillCheck_WHSPCtl.ToUpper() == "N") |
| | | { |
| | | sWHSPCtl = "N"; |
| | | } |
| | | //校验-是否校对仓库('Y'为校对) |
| | | if (oSystemParameterMain.Kf_POStockInBackBillCheck_WHCtl.ToUpper() == "N") |
| | | { |
| | | sWHCtl = "N"; |
| | | } |
| | | //校验-多行相同物料自动拆分换行匹配('Y'为自动拆分) |
| | | if (oSystemParameterMain.Kf_POStockInBackBillCheck_MultilineCtl.ToUpper() == "Y") |
| | | { |
| | | sMultilineCtl = "Y"; |
| | | } |
| | | //校验数量控制(小于等于应收、完全等于应收、不控制) |
| | | if (oSystemParameterMain.Kf_POStockInBackBillCheck_MustQtyCtl == "小于等于应收") |
| | | { |
| | | sMustQtyCtl = "小于等于应收"; |
| | | } |
| | | else if (oSystemParameterMain.Kf_POStockInBackBillCheck_MustQtyCtl == "不控制") |
| | | { |
| | | sMustQtyCtl = "不控制"; |
| | | } |
| | | else |
| | | { |
| | | sMustQtyCtl = "完全等于应收"; |
| | | } |
| | | //一次扫码控制('Y'为控制) |
| | | if (oSystemParameterMain.Kf_POStockInBackBill_BillTypeOneScan.ToUpper() == "Y") |
| | | { |
| | | sOneScanCtl = "Y"; |
| | | } |
| | | //仓位是否从ERP同步('N'为仓位数据本地维护,'Y'为仓位数据从ERP中同步至本地) |
| | | if (oSystemParameterMain.Kf_POStockInBackBillCheck_ERPMode.ToUpper() != "WMS" && oSystemParameterMain.WMS_StockPlaceAutoCtl.ToUpper() == "N") |
| | | { |
| | | sStockPlaceAutoCtl = "N"; |
| | | } |
| | | } |
| | | //生产退库单 |
| | | else if (HBillType == "1245") |
| | | { |
| | | //校验-是否校对仓库仓位('Y'为校对) |
| | | if (oSystemParameterMain.Kf_ProductInBackBillCheck_WHSPCtl.ToUpper() == "N") |
| | | { |
| | | sWHSPCtl = "N"; |
| | | } |
| | | //校验-是否校对仓库('Y'为校对) |
| | | if (oSystemParameterMain.Kf_ProductInBackBillCheck_WHCtl.ToUpper() == "N") |
| | | { |
| | | sWHCtl = "N"; |
| | | } |
| | | //校验-多行相同物料自动拆分换行匹配('Y'为自动拆分) |
| | | if (oSystemParameterMain.Kf_ProductInBackBillCheck_MultilineCtl.ToUpper() == "Y") |
| | | { |
| | | sMultilineCtl = "Y"; |
| | | } |
| | | //校验数量控制(小于等于应收、完全等于应收、不控制) |
| | | if (oSystemParameterMain.Kf_ProductInBackBillCheck_MustQtyCtl == "小于等于应收") |
| | | { |
| | | sMustQtyCtl = "小于等于应收"; |
| | | } |
| | | else if (oSystemParameterMain.Kf_ProductInBackBillCheck_MustQtyCtl == "不控制") |
| | | { |
| | | sMustQtyCtl = "不控制"; |
| | | } |
| | | else |
| | | { |
| | | sMustQtyCtl = "完全等于应收"; |
| | | } |
| | | //一次扫码控制('Y'为控制) |
| | | if (oSystemParameterMain.Kf_ProductInBackBill_BillTypeOneScan.ToUpper() == "Y") |
| | | { |
| | | sOneScanCtl = "Y"; |
| | | } |
| | | //仓位是否从ERP同步('N'为仓位数据本地维护,'Y'为仓位数据从ERP中同步至本地) |
| | | if (oSystemParameterMain.Kf_ProductInBackBillCheck_ERPMode.ToUpper() != "WMS" && oSystemParameterMain.WMS_StockPlaceAutoCtl.ToUpper() == "N") |
| | | { |
| | | sStockPlaceAutoCtl = "N"; |
| | | } |
| | | } |
| | | //生产退料单 |
| | | else if (HBillType == "1244") |
| | | { |
| | | //校验-是否校对仓库仓位('Y'为校对) |
| | | if (oSystemParameterMain.Kf_MateOutBackBillCheck_WHSPCtl.ToUpper() == "N") |
| | | { |
| | | sWHSPCtl = "N"; |
| | | } |
| | | //校验-是否校对仓库('Y'为校对) |
| | | if (oSystemParameterMain.Kf_MateOutBackBillCheck_WHCtl.ToUpper() == "N") |
| | | { |
| | | sWHCtl = "N"; |
| | | } |
| | | //校验-多行相同物料自动拆分换行匹配('Y'为自动拆分) |
| | | if (oSystemParameterMain.Kf_MateOutBackBillCheck_MultilineCtl.ToUpper() == "Y") |
| | | { |
| | | sMultilineCtl = "Y"; |
| | | } |
| | | //校验数量控制(小于等于应收、完全等于应收、不控制) |
| | | if (oSystemParameterMain.Kf_MateOutBackBillCheck_MustQtyCtl == "小于等于应收") |
| | | { |
| | | sMustQtyCtl = "小于等于应收"; |
| | | } |
| | | else if (oSystemParameterMain.Kf_MateOutBackBillCheck_MustQtyCtl == "不控制") |
| | | { |
| | | sMustQtyCtl = "不控制"; |
| | | } |
| | | else |
| | | { |
| | | sMustQtyCtl = "完全等于应收"; |
| | | } |
| | | //一次扫码控制('Y'为控制) |
| | | if (oSystemParameterMain.Kf_MateOutBackBill_BillTypeOneScan.ToUpper() == "Y") |
| | | { |
| | | sOneScanCtl = "Y"; |
| | | } |
| | | //仓位是否从ERP同步('N'为仓位数据本地维护,'Y'为仓位数据从ERP中同步至本地) |
| | | if (oSystemParameterMain.Kf_MateOutBackBillCheck_ERPMode.ToUpper() != "WMS" && oSystemParameterMain.WMS_StockPlaceAutoCtl.ToUpper() == "N") |
| | | { |
| | | sStockPlaceAutoCtl = "N"; |
| | | } |
| | | } |
| | | //销售退货单 |
| | | else if (HBillType == "1247") |
| | | { |
| | | //校验-是否校对仓库仓位('Y'为校对) |
| | | if (oSystemParameterMain.Kf_SellOutBackBillCheck_WHSPCtl.ToUpper() == "N") |
| | | { |
| | | sWHSPCtl = "N"; |
| | | } |
| | | //校验-是否校对仓库('Y'为校对) |
| | | if (oSystemParameterMain.Kf_SellOutBackBillCheck_WHCtl.ToUpper() == "N") |
| | | { |
| | | sWHCtl = "N"; |
| | | } |
| | | //校验-多行相同物料自动拆分换行匹配('Y'为自动拆分) |
| | | if (oSystemParameterMain.Kf_SellOutBackBillCheck_MultilineCtl.ToUpper() == "Y") |
| | | { |
| | | sMultilineCtl = "Y"; |
| | | } |
| | | //校验数量控制(小于等于应收、完全等于应收、不控制) |
| | | if (oSystemParameterMain.Kf_SellOutBackBillCheck_MustQtyCtl == "小于等于应收") |
| | | { |
| | | sMustQtyCtl = "小于等于应收"; |
| | | } |
| | | else if (oSystemParameterMain.Kf_SellOutBackBillCheck_MustQtyCtl == "不控制") |
| | | { |
| | | sMustQtyCtl = "不控制"; |
| | | } |
| | | else |
| | | { |
| | | sMustQtyCtl = "完全等于应收"; |
| | | } |
| | | //一次扫码控制('Y'为控制) |
| | | if (oSystemParameterMain.Kf_SellOutBackBill_BillTypeOneScan.ToUpper() == "Y") |
| | | { |
| | | sOneScanCtl = "Y"; |
| | | } |
| | | //仓位是否从ERP同步('N'为仓位数据本地维护,'Y'为仓位数据从ERP中同步至本地) |
| | | if (oSystemParameterMain.Kf_SellOutBackBillCheck_ERPMode.ToUpper() != "WMS" && oSystemParameterMain.WMS_StockPlaceAutoCtl.ToUpper() == "N") |
| | | { |
| | | sStockPlaceAutoCtl = "N"; |
| | | } |
| | | } |
| | | //委外退料单 |
| | | else if (HBillType == "1238") |
| | | { |
| | | //校验-是否校对仓库仓位('Y'为校对) |
| | | if (oSystemParameterMain.Kf_EntrustOutBackBillCheck_WHSPCtl.ToUpper() == "N") |
| | | { |
| | | sWHSPCtl = "N"; |
| | | } |
| | | //校验-是否校对仓库('Y'为校对) |
| | | if (oSystemParameterMain.Kf_EntrustOutBackBillCheck_WHCtl.ToUpper() == "N") |
| | | { |
| | | sWHCtl = "N"; |
| | | } |
| | | //校验-多行相同物料自动拆分换行匹配('Y'为自动拆分) |
| | | if (oSystemParameterMain.Kf_EntrustOutBackBillCheck_MultilineCtl.ToUpper() == "Y") |
| | | { |
| | | sMultilineCtl = "Y"; |
| | | } |
| | | //校验数量控制(小于等于应收、完全等于应收、不控制) |
| | | if (oSystemParameterMain.Kf_EntrustOutBackBillCheck_MustQtyCtl == "小于等于应收") |
| | | { |
| | | sMustQtyCtl = "小于等于应收"; |
| | | } |
| | | else if (oSystemParameterMain.Kf_EntrustOutBackBillCheck_MustQtyCtl == "不控制") |
| | | { |
| | | sMustQtyCtl = "不控制"; |
| | | } |
| | | else |
| | | { |
| | | sMustQtyCtl = "完全等于应收"; |
| | | } |
| | | //一次扫码控制('Y'为控制) |
| | | if (oSystemParameterMain.Kf_EntrustOutBackBill_BillTypeOneScan.ToUpper() == "Y") |
| | | { |
| | | sOneScanCtl = "Y"; |
| | | } |
| | | //仓位是否从ERP同步('N'为仓位数据本地维护,'Y'为仓位数据从ERP中同步至本地) |
| | | if (oSystemParameterMain.Kf_EntrustOutBackBillCheck_ERPMode.ToUpper() != "WMS" && oSystemParameterMain.WMS_StockPlaceAutoCtl.ToUpper() == "N") |
| | | { |
| | | sStockPlaceAutoCtl = "N"; |
| | | } |
| | | } |
| | | #endregion |
| | | |
| | |
| | | sSourceBarCodeCtl = "Y"; |
| | | } |
| | | } |
| | | //采购退料单 |
| | | else if (sHBillType == "1239") |
| | | { |
| | | //校验-是否进行源单对应条码核对('Y'为核对) |
| | | if (oSystemParameter.omodel.Kf_POStockInBackBillCheck_SourceBarCodeCtl.ToUpper() == "Y") |
| | | { |
| | | sSourceBarCodeCtl = "Y"; |
| | | } |
| | | } |
| | | //生产退库单 |
| | | else if (sHBillType == "1245") |
| | | { |
| | | //校验-是否进行源单对应条码核对('Y'为核对) |
| | | if (oSystemParameter.omodel.Kf_ProductInBackBillCheck_SourceBarCodeCtl.ToUpper() == "Y") |
| | | { |
| | | sSourceBarCodeCtl = "Y"; |
| | | } |
| | | } |
| | | //生产退料单 |
| | | else if (sHBillType == "1244") |
| | | { |
| | | //校验-是否进行源单对应条码核对('Y'为核对) |
| | | if (oSystemParameter.omodel.Kf_MateOutBackBillCheck_SourceBarCodeCtl.ToUpper() == "Y") |
| | | { |
| | | sSourceBarCodeCtl = "Y"; |
| | | } |
| | | } |
| | | //销售退货单 |
| | | else if (sHBillType == "1247") |
| | | { |
| | | //校验-是否进行源单对应条码核对('Y'为核对) |
| | | if (oSystemParameter.omodel.Kf_SellOutBackBillCheck_SourceBarCodeCtl.ToUpper() == "Y") |
| | | { |
| | | sSourceBarCodeCtl = "Y"; |
| | | } |
| | | } |
| | | //委外退料单 |
| | | else if (sHBillType == "1238") |
| | | { |
| | | //校验-是否进行源单对应条码核对('Y'为核对) |
| | | if (oSystemParameter.omodel.Kf_EntrustOutBackBillCheck_SourceBarCodeCtl.ToUpper() == "Y") |
| | | { |
| | | sSourceBarCodeCtl = "Y"; |
| | | } |
| | | } |
| | | #endregion |
| | | |
| | | //原单据为扫码生成,对原扫描的条码进行核对 |