| | |
| | | } |
| | | } |
| | | |
| | | //原单据非扫码生成 |
| | | [WebMethod] |
| | | public bool set_SaveOtherInBill_CLD_BillCheck(Model.ClsKf_OtherInBillMain oMain, ref string sErrMsg) |
| | | { |
| | | SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); |
| | |
| | | } |
| | | else |
| | | { |
| | | sErrMsg = "审核其他入库成功!单据号为:" + oMain.HBillNo; |
| | | oCn.Commit(); |
| | | return true; |
| | | } |
| | |
| | | { |
| | | //重新同步其他入库单 |
| | | oCn.RunProc("exec h_p_IFCLD_ERPSourceBillToLocal_OtherIn '" + oMain.HBillNo + "'"); |
| | | sErrMsg = "修改并审核其他入库单成功!单据号为:" + oMain.HBillNo; |
| | | oCn.Commit(); |
| | | return true; |
| | | } |
| | |
| | | return false; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | sErrMsg = "校验审核其他入库单失败!" + e.Message; |
| | | oCn.RollBack(); |
| | | return false; |
| | | } |
| | | } |
| | | |
| | | //原单据为扫码生成,对原扫描的条码进行核对 |
| | | [WebMethod] |
| | | public bool set_SaveOtherInBill_CLD_BillCheck_Verify(Model.ClsKf_OtherInBillMain oMain, ref string sErrMsg) |
| | | { |
| | | SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); |
| | | //上传前判断 |
| | | DataSet Ds = oCn.RunProcReturn("exec h_p_WMS_BeforeUpload_OtherInBillCheck_Verify " + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "','" + oMain.HBillType + "'", "h_p_WMS_BeforeUpload_OtherInBillCheck_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 = 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 + "'"); |
| | | |
| | | //从配置文件获取 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 = get_SaveCLOUDUseNameandPsd(oMain.HInterID); |
| | | 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[] { "STK_MISCELLANEOUS", sJson2 }); |
| | | //审核单据 |
| | | string sJson3 = "{\"CreateOrgId\":0,\"Numbers\":[\"" + oMain.HBillNo + "\"]}"; |
| | | var result3 = client.Execute<string>("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Audit", |
| | | new object[] { "STK_MISCELLANEOUS", sJson3 }); |
| | | |
| | | HReturn = result3.ToString(); |
| | | |
| | | if (HReturn.Contains("\"IsSuccess\":false") == true) |
| | | { |
| | | sErrMsg = "审核其他入库单失败!" + HReturn; |
| | | oCn.RollBack(); |
| | | return false; |
| | | } |
| | | else |
| | | { |
| | | sErrMsg = "校验审核其他入库单成功!单据号为:" + oMain.HBillNo; |
| | | oCn.Commit(); |
| | | return true; |
| | | } |
| | | } |
| | | else |
| | | { |
| | | sErrMsg = "校验审核其他入库单失败!金蝶云登录失败!"; |
| | | oCn.RollBack(); |
| | | return false; |
| | | } |
| | | } |
| | | catch (Exception e) |
| | |
| | | sErrMsg = "获取系统参数失败! " + sErrMsg; |
| | | return null; |
| | | } |
| | | |
| | | string sSourceBarCodeCtl = "N"; //校验-是否进行源单对应条码核对('Y'为核对) |
| | | if (HBillType == "1205" && oSystemParameter.omodel.Kf_SellOutBillCheck_SourceBarCodeCtl == "Y") |
| | | string sWHSPCtl = "Y"; //校验-是否校对仓库仓位('Y'为校对) |
| | | |
| | | #region 系统参数获取 |
| | | //采购入库单 |
| | | if (HBillType == "1201") |
| | | { |
| | | //销售出库单 |
| | | //校验-是否校对仓库仓位('Y'为校对) |
| | | if (oSystemParameter.omodel.Kf_POStockInBillCheck_WHSPCtl.ToUpper() == "N") |
| | | { |
| | | sWHSPCtl = "N"; |
| | | } |
| | | //校验-是否进行源单对应条码核对('Y'为核对) |
| | | if (oSystemParameter.omodel.Kf_POStockInBillCheck_SourceBarCodeCtl.ToUpper() == "Y") |
| | | { |
| | | sSourceBarCodeCtl = "Y"; |
| | | } |
| | | } |
| | | //生产入库单 |
| | | else if (HBillType == "1202") |
| | | { |
| | | //校验-是否校对仓库仓位('Y'为校对) |
| | | if (oSystemParameter.omodel.Kf_ProductInBillCheck_WHSPCtl.ToUpper() == "N") |
| | | { |
| | | sWHSPCtl = "N"; |
| | | } |
| | | //校验-是否进行源单对应条码核对('Y'为核对) |
| | | if (oSystemParameter.omodel.Kf_ProductInBillCheck_SourceBarCodeCtl.ToUpper() == "Y") |
| | | { |
| | | sSourceBarCodeCtl = "Y"; |
| | | } |
| | | } |
| | | //其他入库单 |
| | | else if (HBillType == "1203") |
| | | { |
| | | //校验-是否校对仓库仓位('Y'为校对) |
| | | if (oSystemParameter.omodel.Kf_OtherInBillCheck_WHSPCtl.ToUpper() == "N") |
| | | { |
| | | sWHSPCtl = "N"; |
| | | } |
| | | //校验-是否进行源单对应条码核对('Y'为核对) |
| | | if (oSystemParameter.omodel.Kf_OtherInBillCheck_SourceBarCodeCtl.ToUpper() == "Y") |
| | | { |
| | | sSourceBarCodeCtl = "Y"; |
| | | } |
| | | } |
| | | //领料出库单 |
| | | else if (HBillType == "1204") |
| | | { |
| | | //校验-是否校对仓库仓位('Y'为校对) |
| | | if (oSystemParameter.omodel.Kf_MateOutBillCheck_WHSPCtl.ToUpper() == "N") |
| | | { |
| | | sWHSPCtl = "N"; |
| | | } |
| | | //校验-是否进行源单对应条码核对('Y'为核对) |
| | | if (oSystemParameter.omodel.Kf_MateOutBillCheck_SourceBarCodeCtl.ToUpper() == "Y") |
| | | { |
| | | sSourceBarCodeCtl = "Y"; |
| | | } |
| | | } |
| | | //销售出库单 |
| | | else if (HBillType == "1205") |
| | | { |
| | | //校验-是否校对仓库仓位('Y'为校对) |
| | | if (oSystemParameter.omodel.Kf_SellOutBillCheck_WHSPCtl.ToUpper() == "N") |
| | | { |
| | | sWHSPCtl = "N"; |
| | | } |
| | | //校验-是否进行源单对应条码核对('Y'为核对) |
| | | if (oSystemParameter.omodel.Kf_SellOutBillCheck_SourceBarCodeCtl.ToUpper() == "Y") |
| | | { |
| | | sSourceBarCodeCtl = "Y"; |
| | | } |
| | | } |
| | | //其他出库单 |
| | | else if (HBillType == "1206") |
| | | { |
| | | //校验-是否校对仓库仓位('Y'为校对) |
| | | if (oSystemParameter.omodel.Kf_OtherOutBillCheck_WHSPCtl.ToUpper() == "N") |
| | | { |
| | | sWHSPCtl = "N"; |
| | | } |
| | | //校验-是否进行源单对应条码核对('Y'为核对) |
| | | if (oSystemParameter.omodel.Kf_OtherOutBillCheck_SourceBarCodeCtl.ToUpper() == "Y") |
| | | { |
| | | sSourceBarCodeCtl = "Y"; |
| | | } |
| | | } |
| | | //委外领料单 |
| | | else if (HBillType == "1211") |
| | | { |
| | | //校验-是否校对仓库仓位('Y'为校对) |
| | | if (oSystemParameter.omodel.Kf_EntrustOutBillCheck_WHSPCtl.ToUpper() == "N") |
| | | { |
| | | sWHSPCtl = "N"; |
| | | } |
| | | //校验-是否进行源单对应条码核对('Y'为核对) |
| | | if (oSystemParameter.omodel.Kf_EntrustOutBillCheck_SourceBarCodeCtl.ToUpper() == "Y") |
| | | { |
| | | sSourceBarCodeCtl = "Y"; |
| | | } |
| | | } |
| | | //生产补料单 |
| | | else if (HBillType == "1254") |
| | | { |
| | | //校验-是否校对仓库仓位('Y'为校对) |
| | | if (oSystemParameter.omodel.Kf_MateReplenishOutBillCheck_WHSPCtl.ToUpper() == "N") |
| | | { |
| | | sWHSPCtl = "N"; |
| | | } |
| | | //校验-是否进行源单对应条码核对('Y'为核对) |
| | | if (oSystemParameter.omodel.Kf_MateReplenishOutBillCheck_SourceBarCodeCtl.ToUpper() == "Y") |
| | | { |
| | | sSourceBarCodeCtl = "Y"; |
| | | } |
| | | } |
| | | //委外补料单 |
| | | else if (HBillType == "1255") |
| | | { |
| | | //校验-是否校对仓库仓位('Y'为校对) |
| | | if (oSystemParameter.omodel.Kf_EntrustReplenishOutBillCheck_WHSPCtl.ToUpper() == "N") |
| | | { |
| | | sWHSPCtl = "N"; |
| | | } |
| | | //校验-是否进行源单对应条码核对('Y'为核对) |
| | | if (oSystemParameter.omodel.Kf_EntrustReplenishOutBillCheck_SourceBarCodeCtl.ToUpper() == "Y") |
| | | { |
| | | sSourceBarCodeCtl = "Y"; |
| | | } |
| | | } |
| | | //直接调拨单 |
| | | else if (HBillType == "1207") |
| | | { |
| | | //校验-是否校对仓库仓位('Y'为校对) |
| | | if (oSystemParameter.omodel.Kf_MoveStockBillCheck_WHSPCtl.ToUpper() == "N") |
| | | { |
| | | sWHSPCtl = "N"; |
| | | } |
| | | //校验-是否进行源单对应条码核对('Y'为核对) |
| | | if (oSystemParameter.omodel.Kf_MoveStockBillCheck_SourceBarCodeCtl.ToUpper() == "Y") |
| | | { |
| | | sSourceBarCodeCtl = "Y"; |
| | | } |
| | | } |
| | | #endregion |
| | | |
| | | //原单据为扫码生成,对原扫描的条码进行核对 |
| | | if (sSourceBarCodeCtl == "Y") |
| | |
| | | oBar.HSPFlag = DBUtility.ClsPub.isBool(dsVerify.Tables[0].Rows[0]["HSPFlag"]); |
| | | oBar.HSPID = DBUtility.ClsPub.isLong(dsVerify.Tables[0].Rows[0]["HSPID"]); |
| | | oBar.HSPName = DBUtility.ClsPub.isStrNull(dsVerify.Tables[0].Rows[0]["HSPName"]); |
| | | oBar.HRemark = DBUtility.ClsPub.isStrNull(dsVerify.Tables[0].Rows[0]["HRemark"]); |
| | | oBar.HBack = DBUtility.ClsPub.isStrNull(dsVerify.Tables[0].Rows[0]["HBack"]); |
| | | oBar.HSourceBarCodeFlag = true; |
| | | return oBar; |
| | | } |
| | | else |
| | |
| | | else |
| | | { |
| | | //将单据信息写入条码出入库临时表KF_PonderationBillMain_Temp |
| | | DataSet ds1 = oCn.RunProcReturn("exec h_p_WMS_AddBillBarCode_BillCheck '" + HBillNo + "','" + HBillType + "','" + HMaker + "'," + HOWNERID.ToString(), "h_p_WMS_AddBillBarCode_BillCheck"); |
| | | DataSet ds1 = oCn.RunProcReturn("exec h_p_WMS_AddBillBarCode_BillCheck_New '" + HBillNo + "','" + HBillType + "','" + HMaker + "'," + HOWNERID.ToString() + ",'" + sWHSPCtl + "'", "h_p_WMS_AddBillBarCode_BillCheck_New"); |
| | | if (ds1 == null || ds1.Tables[0].Rows.Count == 0) |
| | | { |
| | | sErrMsg = "单据号:" + HBillNo + ";将单据信息写入条码出入库临时表失败!"; |
| | |
| | | } |
| | | else |
| | | { |
| | | if (DBUtility.ClsPub.isLong(ds1.Tables[0].Rows[0][0]) == 0) |
| | | { |
| | | oBar.HInterID = DBUtility.ClsPub.isLong(ds1.Tables[0].Rows[0]["HInterID"]); |
| | | oBar.HBillNo = DBUtility.ClsPub.isStrNull(ds1.Tables[0].Rows[0]["HBillNo"]); |
| | | oBar.HWhID = DBUtility.ClsPub.isLong(ds1.Tables[0].Rows[0]["HWhID"]); |
| | | oBar.HWhName = DBUtility.ClsPub.isStrNull(ds1.Tables[0].Rows[0]["HWhName"]); |
| | | oBar.HSPFlag = DBUtility.ClsPub.isBool(ds1.Tables[0].Rows[0]["HSPFlag"]); |
| | | oBar.HSPID = DBUtility.ClsPub.isLong(ds1.Tables[0].Rows[0]["HSPID"]); |
| | | oBar.HSPName = DBUtility.ClsPub.isStrNull(ds1.Tables[0].Rows[0]["HSPName"]); |
| | | return oBar; |
| | | } |
| | | else |
| | | if (DBUtility.ClsPub.isLong(ds1.Tables[0].Rows[0][0]) == 1) |
| | | { |
| | | sErrMsg = DBUtility.ClsPub.isStrNull(ds1.Tables[0].Rows[0]["HRemark"]); |
| | | return null; |
| | | } |
| | | else |
| | | { |
| | | oBar.HInterID = DBUtility.ClsPub.isLong(ds1.Tables[0].Rows[0]["HInterID"]); |
| | | oBar.HBillNo = DBUtility.ClsPub.isStrNull(ds1.Tables[0].Rows[0]["HBillNo"]); |
| | | oBar.HStockInOrgID = DBUtility.ClsPub.isLong(ds1.Tables[0].Rows[0]["HStockInOrgID"]); |
| | | oBar.HStockInOrgName = DBUtility.ClsPub.isStrNull(ds1.Tables[0].Rows[0]["HStockInOrgName"]); |
| | | oBar.HStockOutOrgID = DBUtility.ClsPub.isLong(ds1.Tables[0].Rows[0]["HStockOutOrgID"]); |
| | | oBar.HStockOutOrgName = DBUtility.ClsPub.isStrNull(ds1.Tables[0].Rows[0]["HStockOutOrgName"]); |
| | | oBar.HRemark = DBUtility.ClsPub.isStrNull(ds1.Tables[0].Rows[0]["HRemark"]); |
| | | oBar.HBack = DBUtility.ClsPub.isStrNull(ds1.Tables[0].Rows[0]["HBack"]); |
| | | oBar.HSourceBarCodeFlag = DBUtility.ClsPub.isBool(ds1.Tables[0].Rows[0]["HSourceBarCodeFlag"]); |
| | | return oBar; |
| | | } |
| | | } |
| | | } |
| | |
| | | |
| | | double sRelQty = 0; |
| | | string sWHSPCtl = "Y"; //校验-是否校对仓库仓位('Y'为校对) |
| | | if (HBillType == "1203") |
| | | { |
| | | //其他入库单 |
| | | sWHSPCtl = "Y"; |
| | | } |
| | | else if (HBillType == "1204" && oSystemParameterMain.Kf_MateOutBillCheck_WHSPCtl == "N") |
| | | { |
| | | //领料出库单 |
| | | sWHSPCtl = "N"; |
| | | } |
| | | else if (HBillType == "1205" && oSystemParameterMain.Kf_SellOutBillCheck_WHSPCtl == "N") |
| | | { |
| | | //销售出库单 |
| | | sWHSPCtl = "N"; |
| | | } |
| | | else if (HBillType == "1211" && oSystemParameterMain.Kf_EntrustOutBillCheck_WHSPCtl == "N") |
| | | { |
| | | //委外领料单 |
| | | sWHSPCtl = "N"; |
| | | } |
| | | else if (HBillType == "1254" && oSystemParameterMain.Kf_MateReplenishOutBillCheck_WHSPCtl == "N") |
| | | { |
| | | //生产补料单 |
| | | sWHSPCtl = "N"; |
| | | } |
| | | else if (HBillType == "1255" && oSystemParameterMain.Kf_EntrustReplenishOutBillCheck_WHSPCtl == "N") |
| | | { |
| | | //委外补料单 |
| | | sWHSPCtl = "N"; |
| | | } |
| | | else if (HBillType == "1206") |
| | | { |
| | | //其他出库单 |
| | | sWHSPCtl = "Y"; |
| | | } |
| | | |
| | | string sMultilineCtl = "N"; //校验-多行相同物料自动拆分换行匹配('Y'为自动拆分) |
| | | if (HBillType == "1203") |
| | | string sMustQtyCtl = "完全等于应收"; //校验数量控制(小于等于应收、完全等于应收、不控制) |
| | | string sOneScanCtl = "N"; //一次扫码控制('Y'为控制) |
| | | |
| | | #region 系统参数获取 |
| | | //采购入库单 |
| | | if (HBillType == "1201") |
| | | { |
| | | //校验-是否校对仓库仓位('Y'为校对) |
| | | if (oSystemParameterMain.Kf_POStockInBillCheck_WHSPCtl.ToUpper() == "N") |
| | | { |
| | | sWHSPCtl = "N"; |
| | | } |
| | | //校验-多行相同物料自动拆分换行匹配('Y'为自动拆分) |
| | | if (oSystemParameterMain.Kf_POStockInBillCheck_MultilineCtl.ToUpper() == "Y") |
| | | { |
| | | sMultilineCtl = "Y"; |
| | | } |
| | | //校验数量控制(小于等于应收、完全等于应收、不控制) |
| | | if (oSystemParameterMain.Kf_POStockInBillCheck_MustQtyCtl == "小于等于应收") |
| | | { |
| | | sMustQtyCtl = "小于等于应收"; |
| | | } |
| | | else if (oSystemParameterMain.Kf_POStockInBillCheck_MustQtyCtl == "不控制") |
| | | { |
| | | sMustQtyCtl = "不控制"; |
| | | } |
| | | else |
| | | { |
| | | sMustQtyCtl = "完全等于应收"; |
| | | } |
| | | //一次扫码控制('Y'为控制) |
| | | if (oSystemParameterMain.Kf_POStockInBill_BillTypeOneScan.ToUpper() == "Y") |
| | | { |
| | | sOneScanCtl = "Y"; |
| | | } |
| | | } |
| | | //生产入库单 |
| | | else if (HBillType == "1202") |
| | | { |
| | | //校验-是否校对仓库仓位('Y'为校对) |
| | | if (oSystemParameterMain.Kf_ProductInBillCheck_WHSPCtl.ToUpper() == "N") |
| | | { |
| | | sWHSPCtl = "N"; |
| | | } |
| | | //校验-多行相同物料自动拆分换行匹配('Y'为自动拆分) |
| | | if (oSystemParameterMain.Kf_ProductInBillCheck_MultilineCtl.ToUpper() == "Y") |
| | | { |
| | | sMultilineCtl = "Y"; |
| | | } |
| | | //校验数量控制(小于等于应收、完全等于应收、不控制) |
| | | if (oSystemParameterMain.Kf_ProductInBillCheck_MustQtyCtl == "小于等于应收") |
| | | { |
| | | sMustQtyCtl = "小于等于应收"; |
| | | } |
| | | else if (oSystemParameterMain.Kf_ProductInBillCheck_MustQtyCtl == "不控制") |
| | | { |
| | | sMustQtyCtl = "不控制"; |
| | | } |
| | | else |
| | | { |
| | | sMustQtyCtl = "完全等于应收"; |
| | | } |
| | | //一次扫码控制('Y'为控制) |
| | | if (oSystemParameterMain.Kf_ProductInBill_BillTypeOneScan.ToUpper() == "Y") |
| | | { |
| | | sOneScanCtl = "Y"; |
| | | } |
| | | } |
| | | //其他入库单 |
| | | sMultilineCtl = "N"; |
| | | } |
| | | else if (HBillType == "1204" && oSystemParameterMain.Kf_MateOutBillCheck_MultilineCtl == "Y") |
| | | else if (HBillType == "1203") |
| | | { |
| | | //校验-是否校对仓库仓位('Y'为校对) |
| | | if (oSystemParameterMain.Kf_OtherInBillCheck_WHSPCtl.ToUpper() == "N") |
| | | { |
| | | sWHSPCtl = "N"; |
| | | } |
| | | //校验-多行相同物料自动拆分换行匹配('Y'为自动拆分) |
| | | if (oSystemParameterMain.Kf_OtherInBillCheck_MultilineCtl.ToUpper() == "Y") |
| | | { |
| | | sMultilineCtl = "Y"; |
| | | } |
| | | //校验数量控制(小于等于应收、完全等于应收、不控制) |
| | | if (oSystemParameterMain.Kf_OtherInBillCheck_MustQtyCtl == "小于等于应收") |
| | | { |
| | | sMustQtyCtl = "小于等于应收"; |
| | | } |
| | | else if (oSystemParameterMain.Kf_OtherInBillCheck_MustQtyCtl == "不控制") |
| | | { |
| | | sMustQtyCtl = "不控制"; |
| | | } |
| | | else |
| | | { |
| | | sMustQtyCtl = "完全等于应收"; |
| | | } |
| | | //一次扫码控制('Y'为控制) |
| | | if (oSystemParameterMain.Kf_OtherInBill_BillTypeOneScan.ToUpper() == "Y") |
| | | { |
| | | sOneScanCtl = "Y"; |
| | | } |
| | | } |
| | | //领料出库单 |
| | | else if (HBillType == "1204") |
| | | { |
| | | //校验-是否校对仓库仓位('Y'为校对) |
| | | if (oSystemParameterMain.Kf_MateOutBillCheck_WHSPCtl.ToUpper() == "N") |
| | | { |
| | | sWHSPCtl = "N"; |
| | | } |
| | | //校验-多行相同物料自动拆分换行匹配('Y'为自动拆分) |
| | | if (oSystemParameterMain.Kf_MateOutBillCheck_MultilineCtl.ToUpper() == "Y") |
| | | { |
| | | sMultilineCtl = "Y"; |
| | | } |
| | | else if (HBillType == "1205" && oSystemParameterMain.Kf_SellOutBillCheck_MultilineCtl == "Y") |
| | | //校验数量控制(小于等于应收、完全等于应收、不控制) |
| | | if (oSystemParameterMain.Kf_MateOutBillCheck_MustQtyCtl == "小于等于应收") |
| | | { |
| | | sMustQtyCtl = "小于等于应收"; |
| | | } |
| | | else if (oSystemParameterMain.Kf_MateOutBillCheck_MustQtyCtl == "不控制") |
| | | { |
| | | sMustQtyCtl = "不控制"; |
| | | } |
| | | else |
| | | { |
| | | sMustQtyCtl = "完全等于应收"; |
| | | } |
| | | //一次扫码控制('Y'为控制) |
| | | if (oSystemParameterMain.Kf_MateOutBill_BillTypeOneScan.ToUpper() == "Y") |
| | | { |
| | | sOneScanCtl = "Y"; |
| | | } |
| | | } |
| | | //销售出库单 |
| | | sMultilineCtl = "Y"; |
| | | } |
| | | else if (HBillType == "1211" && oSystemParameterMain.Kf_EntrustOutBillCheck_MultilineCtl == "Y") |
| | | else if (HBillType == "1205") |
| | | { |
| | | //委外领料单 |
| | | sMultilineCtl = "Y"; |
| | | } |
| | | else if (HBillType == "1254" && oSystemParameterMain.Kf_MateReplenishOutBillCheck_MultilineCtl == "Y") |
| | | //校验-是否校对仓库仓位('Y'为校对) |
| | | if (oSystemParameterMain.Kf_SellOutBillCheck_WHSPCtl.ToUpper() == "N") |
| | | { |
| | | //生产补料单 |
| | | sMultilineCtl = "Y"; |
| | | sWHSPCtl = "N"; |
| | | } |
| | | else if (HBillType == "1255" && oSystemParameterMain.Kf_EntrustReplenishOutBillCheck_MultilineCtl == "Y") |
| | | //校验-多行相同物料自动拆分换行匹配('Y'为自动拆分) |
| | | if (oSystemParameterMain.Kf_SellOutBillCheck_MultilineCtl.ToUpper() == "Y") |
| | | { |
| | | //委外补料单 |
| | | sMultilineCtl = "Y"; |
| | | } |
| | | //校验数量控制(小于等于应收、完全等于应收、不控制) |
| | | if (oSystemParameterMain.Kf_SellOutBillCheck_MustQtyCtl == "小于等于应收") |
| | | { |
| | | sMustQtyCtl = "小于等于应收"; |
| | | } |
| | | else if (oSystemParameterMain.Kf_SellOutBillCheck_MustQtyCtl == "不控制") |
| | | { |
| | | sMustQtyCtl = "不控制"; |
| | | } |
| | | else |
| | | { |
| | | sMustQtyCtl = "完全等于应收"; |
| | | } |
| | | //一次扫码控制('Y'为控制) |
| | | if (oSystemParameterMain.Kf_SellOutBill_BillTypeOneScan.ToUpper() == "Y") |
| | | { |
| | | sOneScanCtl = "Y"; |
| | | } |
| | | } |
| | | //其他出库单 |
| | | else if (HBillType == "1206") |
| | | { |
| | | //其他出库单 |
| | | sMultilineCtl = "N"; |
| | | //校验-是否校对仓库仓位('Y'为校对) |
| | | if (oSystemParameterMain.Kf_OtherOutBillCheck_WHSPCtl.ToUpper() == "N") |
| | | { |
| | | sWHSPCtl = "N"; |
| | | } |
| | | //校验-多行相同物料自动拆分换行匹配('Y'为自动拆分) |
| | | if (oSystemParameterMain.Kf_OtherOutBillCheck_MultilineCtl.ToUpper() == "Y") |
| | | { |
| | | sMultilineCtl = "Y"; |
| | | } |
| | | //校验数量控制(小于等于应收、完全等于应收、不控制) |
| | | if (oSystemParameterMain.Kf_OtherOutBillCheck_MustQtyCtl == "小于等于应收") |
| | | { |
| | | sMustQtyCtl = "小于等于应收"; |
| | | } |
| | | else if (oSystemParameterMain.Kf_OtherOutBillCheck_MustQtyCtl == "不控制") |
| | | { |
| | | sMustQtyCtl = "不控制"; |
| | | } |
| | | else |
| | | { |
| | | sMustQtyCtl = "完全等于应收"; |
| | | } |
| | | //一次扫码控制('Y'为控制) |
| | | if (oSystemParameterMain.Kf_OtherOutBill_BillTypeOneScan.ToUpper() == "Y") |
| | | { |
| | | sOneScanCtl = "Y"; |
| | | } |
| | | } |
| | | //委外领料单 |
| | | else if (HBillType == "1211") |
| | | { |
| | | //校验-是否校对仓库仓位('Y'为校对) |
| | | if (oSystemParameterMain.Kf_EntrustOutBillCheck_WHSPCtl.ToUpper() == "N") |
| | | { |
| | | sWHSPCtl = "N"; |
| | | } |
| | | //校验-多行相同物料自动拆分换行匹配('Y'为自动拆分) |
| | | if (oSystemParameterMain.Kf_EntrustOutBillCheck_MultilineCtl.ToUpper() == "Y") |
| | | { |
| | | sMultilineCtl = "Y"; |
| | | } |
| | | //校验数量控制(小于等于应收、完全等于应收、不控制) |
| | | if (oSystemParameterMain.Kf_EntrustOutBillCheck_MustQtyCtl == "小于等于应收") |
| | | { |
| | | sMustQtyCtl = "小于等于应收"; |
| | | } |
| | | else if (oSystemParameterMain.Kf_EntrustOutBillCheck_MustQtyCtl == "不控制") |
| | | { |
| | | sMustQtyCtl = "不控制"; |
| | | } |
| | | else |
| | | { |
| | | sMustQtyCtl = "完全等于应收"; |
| | | } |
| | | //一次扫码控制('Y'为控制) |
| | | if (oSystemParameterMain.Kf_EntrustOutBill_BillTypeOneScan.ToUpper() == "Y") |
| | | { |
| | | sOneScanCtl = "Y"; |
| | | } |
| | | } |
| | | //生产补料单 |
| | | else if (HBillType == "1254") |
| | | { |
| | | //校验-是否校对仓库仓位('Y'为校对) |
| | | if (oSystemParameterMain.Kf_MateReplenishOutBillCheck_WHSPCtl.ToUpper() == "N") |
| | | { |
| | | sWHSPCtl = "N"; |
| | | } |
| | | //校验-多行相同物料自动拆分换行匹配('Y'为自动拆分) |
| | | if (oSystemParameterMain.Kf_MateReplenishOutBillCheck_MultilineCtl.ToUpper() == "Y") |
| | | { |
| | | sMultilineCtl = "Y"; |
| | | } |
| | | //校验数量控制(小于等于应收、完全等于应收、不控制) |
| | | if (oSystemParameterMain.Kf_MateReplenishOutBillCheck_MustQtyCtl == "小于等于应收") |
| | | { |
| | | sMustQtyCtl = "小于等于应收"; |
| | | } |
| | | else if (oSystemParameterMain.Kf_MateReplenishOutBillCheck_MustQtyCtl == "不控制") |
| | | { |
| | | sMustQtyCtl = "不控制"; |
| | | } |
| | | else |
| | | { |
| | | sMustQtyCtl = "完全等于应收"; |
| | | } |
| | | //一次扫码控制('Y'为控制) |
| | | if (oSystemParameterMain.Kf_MateReplenishOutBill_BillTypeOneScan.ToUpper() == "Y") |
| | | { |
| | | sOneScanCtl = "Y"; |
| | | } |
| | | } |
| | | //委外补料单 |
| | | else if (HBillType == "1255") |
| | | { |
| | | //校验-是否校对仓库仓位('Y'为校对) |
| | | if (oSystemParameterMain.Kf_EntrustReplenishOutBillCheck_WHSPCtl.ToUpper() == "N") |
| | | { |
| | | sWHSPCtl = "N"; |
| | | } |
| | | //校验-多行相同物料自动拆分换行匹配('Y'为自动拆分) |
| | | if (oSystemParameterMain.Kf_EntrustReplenishOutBillCheck_MultilineCtl.ToUpper() == "Y") |
| | | { |
| | | sMultilineCtl = "Y"; |
| | | } |
| | | //校验数量控制(小于等于应收、完全等于应收、不控制) |
| | | if (oSystemParameterMain.Kf_EntrustReplenishOutBillCheck_MustQtyCtl == "小于等于应收") |
| | | { |
| | | sMustQtyCtl = "小于等于应收"; |
| | | } |
| | | else if (oSystemParameterMain.Kf_EntrustReplenishOutBillCheck_MustQtyCtl == "不控制") |
| | | { |
| | | sMustQtyCtl = "不控制"; |
| | | } |
| | | else |
| | | { |
| | | sMustQtyCtl = "完全等于应收"; |
| | | } |
| | | //一次扫码控制('Y'为控制) |
| | | if (oSystemParameterMain.Kf_EntrustReplenishOutBill_BillTypeOneScan.ToUpper() == "Y") |
| | | { |
| | | sOneScanCtl = "Y"; |
| | | } |
| | | } |
| | | //直接调拨单 |
| | | else if (HBillType == "1207") |
| | | { |
| | | //校验-是否校对仓库仓位('Y'为校对) |
| | | if (oSystemParameterMain.Kf_MoveStockBillCheck_WHSPCtl.ToUpper() == "N") |
| | | { |
| | | sWHSPCtl = "N"; |
| | | } |
| | | //校验-多行相同物料自动拆分换行匹配('Y'为自动拆分) |
| | | if (oSystemParameterMain.Kf_MoveStockBillCheck_MultilineCtl.ToUpper() == "Y") |
| | | { |
| | | sMultilineCtl = "Y"; |
| | | } |
| | | //校验数量控制(小于等于应收、完全等于应收、不控制) |
| | | if (oSystemParameterMain.Kf_MoveStockBillCheck_MustQtyCtl == "小于等于应收") |
| | | { |
| | | sMustQtyCtl = "小于等于应收"; |
| | | } |
| | | else if (oSystemParameterMain.Kf_MoveStockBillCheck_MustQtyCtl == "不控制") |
| | | { |
| | | sMustQtyCtl = "不控制"; |
| | | } |
| | | else |
| | | { |
| | | sMustQtyCtl = "完全等于应收"; |
| | | } |
| | | //一次扫码控制('Y'为控制) |
| | | if (oSystemParameterMain.Kf_MoveStockBill_BillTypeOneScan.ToUpper() == "Y") |
| | | { |
| | | sOneScanCtl = "Y"; |
| | | } |
| | | } |
| | | #endregion |
| | | |
| | | string HMaterNumber; //物料代码 |
| | | //判断是否存在相同条码,判断所扫条码是否在单据中 |
| | |
| | | { |
| | | sRelQty = omodel_View.HQty; |
| | | } |
| | | |
| | | //其他入库校验,根据系统参数:其他入库校验-应收数量 控制扫码数量能否可超单据数量(小于等于应收、完全等于应收、不控制) |
| | | if (HBillType == "1203" && (oSystemParameterMain.Kf_OtherInBillCheck_MustQtyCtl == "小于等于应收" || oSystemParameterMain.Kf_OtherInBillCheck_MustQtyCtl == "完全等于应收")) |
| | | { |
| | | if (omodel_View.HSourceQty == 0) |
| | | { |
| | | sErrMsg = "所扫物料在单据中剩余可扫数量为0,不允许扫码!"; |
| | | return false; |
| | | } |
| | | else if (sRelQty > omodel_View.HSourceQty) |
| | | { |
| | | sErrMsg = "所扫描条码数量为 " + sRelQty.ToString() + " 大于对应源单剩余可扫描数量" + omodel_View.HSourceQty.ToString() + ",不允许扫码!"; |
| | | return false; |
| | | } |
| | | } |
| | | //领料出库校验,根据系统参数:领料出库校验-应收数量 控制扫码数量能否可超单据数量(小于等于应收、完全等于应收、不控制) |
| | | else if (HBillType == "1204" && (oSystemParameterMain.Kf_MateOutBillCheck_MustQtyCtl == "小于等于应收" || oSystemParameterMain.Kf_MateOutBillCheck_MustQtyCtl == "完全等于应收")) |
| | | { |
| | | if (omodel_View.HSourceQty == 0) |
| | | { |
| | | sErrMsg = "所扫物料在单据中剩余可扫数量为0,不允许扫码!"; |
| | | return false; |
| | | } |
| | | else if (sRelQty > omodel_View.HSourceQty) |
| | | { |
| | | sErrMsg = "所扫描条码数量为 " + sRelQty.ToString() + " 大于对应源单剩余可扫描数量" + omodel_View.HSourceQty.ToString() + ",不允许扫码!"; |
| | | return false; |
| | | } |
| | | } |
| | | //销售出库校验,根据系统参数:销售出库校验-应收数量 控制扫码数量能否可超单据数量(小于等于应收、完全等于应收、不控制) |
| | | else if (HBillType == "1205" && (oSystemParameterMain.Kf_SellOutBillCheck_MustQtyCtl == "小于等于应收" || oSystemParameterMain.Kf_SellOutBillCheck_MustQtyCtl == "完全等于应收")) |
| | | { |
| | | if (omodel_View.HSourceQty == 0) |
| | | { |
| | | sErrMsg = "所扫物料在单据中剩余可扫数量为0,不允许扫码!"; |
| | | return false; |
| | | } |
| | | else if (sRelQty > omodel_View.HSourceQty) |
| | | { |
| | | sErrMsg = "所扫描条码数量为 " + sRelQty.ToString() + " 大于对应源单剩余可扫描数量" + omodel_View.HSourceQty.ToString() + ",不允许扫码!"; |
| | | return false; |
| | | } |
| | | } |
| | | //委外领料校验,根据系统参数:委外领料校验-应收数量 控制扫码数量能否可超单据数量(小于等于应收、完全等于应收、不控制) |
| | | else if (HBillType == "1211" && (oSystemParameterMain.Kf_EntrustOutBillCheck_MustQtyCtl == "小于等于应收" || oSystemParameterMain.Kf_EntrustOutBillCheck_MustQtyCtl == "完全等于应收")) |
| | | { |
| | | if (omodel_View.HSourceQty == 0) |
| | | { |
| | | sErrMsg = "所扫物料在单据中剩余可扫数量为0,不允许扫码!"; |
| | | return false; |
| | | } |
| | | else if (sRelQty > omodel_View.HSourceQty) |
| | | { |
| | | sErrMsg = "所扫描条码数量为 " + sRelQty.ToString() + " 大于对应源单剩余可扫描数量" + omodel_View.HSourceQty.ToString() + ",不允许扫码!"; |
| | | return false; |
| | | } |
| | | } |
| | | //生产补料校验,根据系统参数:生产补料校验-应收数量 控制扫码数量能否可超单据数量(小于等于应收、完全等于应收、不控制) |
| | | else if (HBillType == "1254" && (oSystemParameterMain.Kf_MateReplenishOutBillCheck_MustQtyCtl == "小于等于应收" || oSystemParameterMain.Kf_MateReplenishOutBillCheck_MustQtyCtl == "完全等于应收")) |
| | | { |
| | | if (omodel_View.HSourceQty == 0) |
| | | { |
| | | sErrMsg = "所扫物料在单据中剩余可扫数量为0,不允许扫码!"; |
| | | return false; |
| | | } |
| | | else if (sRelQty > omodel_View.HSourceQty) |
| | | { |
| | | sErrMsg = "所扫描条码数量为 " + sRelQty.ToString() + " 大于对应源单剩余可扫描数量" + omodel_View.HSourceQty.ToString() + ",不允许扫码!"; |
| | | return false; |
| | | } |
| | | } |
| | | //委外补料校验,根据系统参数:委外补料校验-应收数量 控制扫码数量能否可超单据数量(小于等于应收、完全等于应收、不控制) |
| | | else if (HBillType == "1255" && (oSystemParameterMain.Kf_EntrustReplenishOutBillCheck_MustQtyCtl == "小于等于应收" || oSystemParameterMain.Kf_EntrustReplenishOutBillCheck_MustQtyCtl == "完全等于应收")) |
| | | { |
| | | if (omodel_View.HSourceQty == 0) |
| | | { |
| | | sErrMsg = "所扫物料在单据中剩余可扫数量为0,不允许扫码!"; |
| | | return false; |
| | | } |
| | | else if (sRelQty > omodel_View.HSourceQty) |
| | | { |
| | | sErrMsg = "所扫描条码数量为 " + sRelQty.ToString() + " 大于对应源单剩余可扫描数量" + omodel_View.HSourceQty.ToString() + ",不允许扫码!"; |
| | | return false; |
| | | } |
| | | } |
| | | //其他出库校验,不可超单据数量 |
| | | else if (HBillType == "1206") |
| | | { |
| | | if (omodel_View.HSourceQty == 0) |
| | | { |
| | | sErrMsg = "所扫物料在单据中剩余可扫数量为0,不允许扫码!"; |
| | | return false; |
| | | } |
| | | else if (sRelQty > omodel_View.HSourceQty) |
| | | { |
| | | sErrMsg = "所扫描条码数量为 " + sRelQty.ToString() + " 大于对应单据剩余可扫描数量" + omodel_View.HSourceQty.ToString() + ",不允许扫码!"; |
| | | return false; |
| | | } |
| | | } |
| | | } |
| | | else |
| | | //批次条码、品种条码 |
| | |
| | | { |
| | | sRelQty = omodel_View.HQty; |
| | | } |
| | | |
| | | //其他入库校验,根据系统参数:其他入库校验-应收数量 控制扫码数量能否可超单据数量(小于等于应收、完全等于应收、不控制) |
| | | if (HBillType == "1203" && (oSystemParameterMain.Kf_OtherInBillCheck_MustQtyCtl == "小于等于应收" || oSystemParameterMain.Kf_OtherInBillCheck_MustQtyCtl == "完全等于应收")) |
| | | { |
| | | if (omodel_View.HSourceQty == 0) |
| | | { |
| | | sErrMsg = "所扫物料在单据中剩余可扫数量为0,不允许扫码!"; |
| | | return false; |
| | | } |
| | | else if (sRelQty > omodel_View.HSourceQty) |
| | | { |
| | | sErrMsg = "所扫描条码数量为 " + sRelQty.ToString() + " 大于对应源单剩余可扫描数量" + omodel_View.HSourceQty.ToString() + ",不允许扫码!"; |
| | | return false; |
| | | } |
| | | } |
| | | //领料出库校验,根据系统参数:领料出库校验-应收数量 控制扫码数量能否可超单据数量(小于等于应收、完全等于应收、不控制) |
| | | else if (HBillType == "1204" && (oSystemParameterMain.Kf_MateOutBillCheck_MustQtyCtl == "小于等于应收" || oSystemParameterMain.Kf_MateOutBillCheck_MustQtyCtl == "完全等于应收")) |
| | | { |
| | | if (omodel_View.HSourceQty == 0) |
| | | { |
| | | sErrMsg = "所扫物料在单据中剩余可扫数量为0,不允许扫码!"; |
| | | return false; |
| | | } |
| | | else if (sRelQty > omodel_View.HSourceQty) |
| | | { |
| | | sErrMsg = "所扫描条码数量为 " + sRelQty.ToString() + " 大于对应源单剩余可扫描数量" + omodel_View.HSourceQty.ToString() + ",不允许扫码!"; |
| | | return false; |
| | | } |
| | | } |
| | | //销售出库校验,根据系统参数:销售出库校验-应收数量 控制扫码数量能否可超单据数量(小于等于应收、完全等于应收、不控制) |
| | | else if (HBillType == "1205" && (oSystemParameterMain.Kf_SellOutBillCheck_MustQtyCtl == "小于等于应收" || oSystemParameterMain.Kf_SellOutBillCheck_MustQtyCtl == "完全等于应收")) |
| | | { |
| | | if (omodel_View.HSourceQty == 0) |
| | | { |
| | | sErrMsg = "所扫物料在单据中剩余可扫数量为0,不允许扫码!"; |
| | | return false; |
| | | } |
| | | else if (sRelQty > omodel_View.HSourceQty) |
| | | { |
| | | sErrMsg = "所扫描条码数量为 " + sRelQty.ToString() + " 大于对应源单剩余可扫描数量" + omodel_View.HSourceQty.ToString() + ",不允许扫码!"; |
| | | return false; |
| | | } |
| | | } |
| | | //委外领料校验,根据系统参数:委外领料校验-应收数量 控制扫码数量能否可超单据数量(小于等于应收、完全等于应收、不控制) |
| | | else if (HBillType == "1211" && (oSystemParameterMain.Kf_EntrustOutBillCheck_MustQtyCtl == "小于等于应收" || oSystemParameterMain.Kf_EntrustOutBillCheck_MustQtyCtl == "完全等于应收")) |
| | | { |
| | | if (omodel_View.HSourceQty == 0) |
| | | { |
| | | sErrMsg = "所扫物料在单据中剩余可扫数量为0,不允许扫码!"; |
| | | return false; |
| | | } |
| | | else if (sRelQty > omodel_View.HSourceQty) |
| | | { |
| | | sErrMsg = "所扫描条码数量为 " + sRelQty.ToString() + " 大于对应源单剩余可扫描数量" + omodel_View.HSourceQty.ToString() + ",不允许扫码!"; |
| | | return false; |
| | | } |
| | | } |
| | | //生产补料校验,根据系统参数:生产补料校验-应收数量 控制扫码数量能否可超单据数量(小于等于应收、完全等于应收、不控制) |
| | | else if (HBillType == "1254" && (oSystemParameterMain.Kf_MateReplenishOutBillCheck_MustQtyCtl == "小于等于应收" || oSystemParameterMain.Kf_MateReplenishOutBillCheck_MustQtyCtl == "完全等于应收")) |
| | | { |
| | | if (omodel_View.HSourceQty == 0) |
| | | { |
| | | sErrMsg = "所扫物料在单据中剩余可扫数量为0,不允许扫码!"; |
| | | return false; |
| | | } |
| | | else if (sRelQty > omodel_View.HSourceQty) |
| | | { |
| | | sErrMsg = "所扫描条码数量为 " + sRelQty.ToString() + " 大于对应源单剩余可扫描数量" + omodel_View.HSourceQty.ToString() + ",不允许扫码!"; |
| | | return false; |
| | | } |
| | | } |
| | | //委外补料校验,根据系统参数:委外补料校验-应收数量 控制扫码数量能否可超单据数量(小于等于应收、完全等于应收、不控制) |
| | | else if (HBillType == "1255" && (oSystemParameterMain.Kf_EntrustReplenishOutBillCheck_MustQtyCtl == "小于等于应收" || oSystemParameterMain.Kf_EntrustReplenishOutBillCheck_MustQtyCtl == "完全等于应收")) |
| | | { |
| | | if (omodel_View.HSourceQty == 0) |
| | | { |
| | | sErrMsg = "所扫物料在单据中剩余可扫数量为0,不允许扫码!"; |
| | | return false; |
| | | } |
| | | else if (sRelQty > omodel_View.HSourceQty) |
| | | { |
| | | sErrMsg = "所扫描条码数量为 " + sRelQty.ToString() + " 大于对应源单剩余可扫描数量" + omodel_View.HSourceQty.ToString() + ",不允许扫码!"; |
| | | return false; |
| | | } |
| | | } |
| | | //其他出库校验,不可超单据数量 |
| | | else if (HBillType == "1206") |
| | | { |
| | | if (omodel_View.HSourceQty == 0) |
| | | { |
| | | sErrMsg = "所扫物料在单据中剩余可扫数量为0,不允许扫码!"; |
| | | return false; |
| | | } |
| | | else if (sRelQty > omodel_View.HSourceQty) |
| | | { |
| | | sErrMsg = "所扫描条码数量为 " + sRelQty.ToString() + " 大于对应单据剩余可扫描数量" + omodel_View.HSourceQty.ToString() + ",不允许扫码!"; |
| | | return false; |
| | | } |
| | | } |
| | | } |
| | | |
| | | //生产领料(1204)、销售出库(1205)、其他出库蓝字(1206)、委外出库(1211) |
| | |
| | | || HBillType == "1254" || HBillType == "1255") |
| | | { |
| | | //库存控制-WMS负库存控制 |
| | | if (omodel_View.HBarCodeType == "唯一条码" && oSystemParameterMain.WMS_WMSStockCtl == "Y") |
| | | if (omodel_View.HBarCodeType == "唯一条码" && oSystemParameterMain.WMS_WMSStockCtl.ToUpper() == "Y") |
| | | { |
| | | //判断ERP库存 返回ERP库存数量 |
| | | DataSet DsWMS = oCn.RunProcReturn("exec h_p_WMS_AddBarCode_GetWMSICInventory " + HBillID.ToString() + ",'" + HBillType + "','" + omodel_View.HBarCode + "'," + HWhID.ToString() + "," + HSPID.ToString() + "," + HOWNERID.ToString(), "h_p_WMS_AddBarCode_GetWMSICInventory"); |
| | |
| | | } |
| | | } |
| | | |
| | | //库存控制-ERP负库存控制 私有云模式 |
| | | if (oSystemParameterMain.WMS_CloudMode == "Y") |
| | | //库存控制-ERP负库存控制 金蝶云私有云模式 |
| | | if (oSystemParameterMain.Kf_SellOutBill_ERPMode.ToUpper() == "CLOUD" && oSystemParameterMain.WMS_CloudMode.ToUpper() == "Y") |
| | | { |
| | | //判断ERP库存 返回ERP库存数量 |
| | | DataSet DsERP = oCn.RunProcReturn("exec h_p_WMS_AddBarCode_GetERPICInventory_New " + HBillID.ToString() + ",'" + HBillType + "','" + omodel_View.HBarCode + "'," + HWhID.ToString() + "," + HSPID.ToString() + "," + HOWNERID.ToString(), "h_p_WMS_AddBarCode_GetERPICInventory_New"); |
| | |
| | | //入库、红字出库,判断条码可扫描数量 返回剩余未扫描数量 |
| | | else |
| | | { |
| | | //判断条码扫描数量 返回剩余未扫描数量 |
| | | if (!tem.IsBarCode_New(omodel_View.HBarCode, HBillType, false, ref sRelQty, ref sErrMsg)) |
| | | //获取唯一条码剩余可扫描数量 |
| | | if (omodel_View.HBarCodeType == "唯一条码") |
| | | { |
| | | sErrMsg = sErrMsg; |
| | | DataSet DsInQty = oCn.RunProcReturn("exec h_p_WMS_AddBarCode_GetInBillQty '" + omodel_View.HBarCode + "','" + HBillType + "'," + omodel_View.HQty.ToString(), "h_p_WMS_AddBarCode_GetInBillQty"); |
| | | if (DsInQty == null || DsInQty.Tables[0].Rows.Count == 0) |
| | | { |
| | | //正常,不存在已扫码上传记录 |
| | | } |
| | | else |
| | | { |
| | | if (DBUtility.ClsPub.isDoule(DsInQty.Tables[0].Rows[0]["HQty"]) == 0) |
| | | { |
| | | sErrMsg = "所扫描物料条码: " + omodel_View.HBarCode + " ,已被其他单据扫描入库,不允许再次扫码!"; |
| | | return false; |
| | | } |
| | | else if (DBUtility.ClsPub.isDoule(DsInQty.Tables[0].Rows[0]["HQty"]) < sRelQty) |
| | | { |
| | | sRelQty = DBUtility.ClsPub.isDoule(DsInQty.Tables[0].Rows[0]["HQty"]); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | //根据系统参数 控制扫码数量能否可超单据数量(小于等于应收、完全等于应收、不控制) |
| | | if (sMustQtyCtl == "小于等于应收" || sMustQtyCtl == "完全等于应收") |
| | | { |
| | | if (omodel_View.HSourceQty == 0) |
| | | { |
| | | sErrMsg = "所扫物料在单据中剩余可扫数量为0,不允许扫码!"; |
| | | return false; |
| | | } |
| | | else if (sRelQty > omodel_View.HSourceQty) |
| | | { |
| | | sErrMsg = "所扫描条码数量为 " + sRelQty.ToString() + " 大于对应单据剩余可扫描数量" + omodel_View.HSourceQty.ToString() + ",不允许扫码!"; |
| | | return false; |
| | | } |
| | | } |
| | | |
| | | //一次扫码控制,同一条码、同一单据类型,在WMS表和TEMP表里,只允许进行一次扫码 |
| | | if ((HBillType == "1203" && oSystemParameterMain.Kf_OtherInBill_BillTypeOneScan == "Y") |
| | | || (HBillType == "1204" && oSystemParameterMain.Kf_MateOutBill_BillTypeOneScan == "Y") |
| | | || (HBillType == "1205" && oSystemParameterMain.Kf_SellOutBill_BillTypeOneScan == "Y") |
| | | || (HBillType == "1211" && oSystemParameterMain.Kf_EntrustOutBill_BillTypeOneScan == "Y") |
| | | || (HBillType == "1254" && oSystemParameterMain.Kf_MateReplenishOutBill_BillTypeOneScan == "Y") |
| | | || (HBillType == "1255" && oSystemParameterMain.Kf_EntrustReplenishOutBill_BillTypeOneScan == "Y") |
| | | || (HBillType == "1206" && oSystemParameterMain.Kf_OtherOutBill_BillTypeOneScan == "Y")) |
| | | //唯一条码,一次扫码控制,同一条码、同一单据类型,在WMS表和TEMP表里,只允许进行一次扫码 |
| | | if (omodel_View.HBarCodeType == "唯一条码" && sOneScanCtl == "Y") |
| | | { |
| | | DataSet dsOneScan = oCn.RunProcReturn("exec h_p_WMS_AddBarCode_OneScan '" + omodel_View.HBarCode + "'," + HBillID.ToString() + ",'" + HBillNo + "','" + HBillType + "'," + HWhID + "," + HSPID + ",0,0,'" + HMaker + "'", "h_p_WMS_AddBarCode_OneScan"); |
| | | if (dsOneScan == null || dsOneScan.Tables[0].Rows.Count == 0) |
| | |
| | | oMain.HPieceQty = 0; |
| | | } |
| | | |
| | | //红蓝单标志 |
| | | //生产退料(1244)、销售退库(1247)、其他出库红字(1249)、委外退料(1238) |
| | | //外购退料(1239)、产品退库(1245)、其他入库红字(1248)、委外退库(1246) |
| | | if (HBillType == "1244" || HBillType == "1247" || HBillType == "1249" || HBillType == "1238" |
| | | || HBillType == "1239" || HBillType == "1245" || HBillType == "1248" || HBillType == "1246") |
| | | { |
| | | oMain.HRedBlueFlag = true; |
| | | } |
| | | else |
| | | { |
| | | oMain.HRedBlueFlag = false; |
| | | } |
| | | |
| | | //条码类型为唯一条码,扫码存入时 HRelationEntryID=1,用于判断刷新列表时区分是否重复扫入 |
| | | if (omodel_View.HBarCodeType == "唯一条码") |
| | | { |
| | | oMain.HRelationEntryID = 1; |
| | | } |
| | | |
| | | oMain.HInterID = HBillID; |
| | | oMain.HBillNo = HBillNo; |
| | | oMain.HBillType = HBillType; |
| | | oMain.HMaker = HMaker; |
| | | oMain.HMaterID = omodel_View.HMaterID; |
| | | oMain.HUnitID = omodel_View.HUnitID; |
| | | oMain.HAuxPropID = omodel_View.HAuxPropID; |
| | | oMain.HQtyMust = 0; |
| | | oMain.HBarCode = omodel_View.HBarCode; |
| | |
| | | oMain.HMTONo = omodel_View.HMTONo; |
| | | oMain.HWhID = HWhID; |
| | | oMain.HStockPlaceID = HSPID; |
| | | oMain.HSCWHID = 0; |
| | | oMain.HOutStockPlaceID = 0; |
| | | oMain.HSourceInterID = DBUtility.ClsPub.isLong(ds1.Tables[0].Rows[i]["HSourceInterID"]); |
| | | oMain.HSourceEntryID = DBUtility.ClsPub.isLong(ds1.Tables[0].Rows[i]["HSourceEntryID"]); |
| | | oMain.HSourceBillNo = DBUtility.ClsPub.isStrNull(ds1.Tables[0].Rows[i]["HSourceBillNo"]); |
| | | oMain.HSourceBillType = HBillType; |
| | | oMain.HRedBlueFlag = false; |
| | | oMain.HMulSourceBill = 0; //是否多源单标志(0为非多源单模式,1为多源单模式) |
| | | oMain.HSubBillType = "1"; //校验模式,HSubBillType=1 |
| | | if (omodel_View.HProduceDate < Convert.ToDateTime("1950-01-01")) |
| | | { |
| | | oMain.HBeginDate = ""; |
| | | } |
| | | else |
| | | { |
| | | oMain.HBeginDate = omodel_View.HProduceDate.ToShortDateString(); |
| | | } |
| | | if (omodel_View.HExpiryDate < Convert.ToDateTime("1950-01-01")) |
| | | { |
| | | oMain.HEndDate = ""; |
| | | } |
| | | else |
| | | { |
| | | oMain.HEndDate = omodel_View.HExpiryDate.ToShortDateString(); |
| | | } |
| | | oMain.HSTOCKORGID = HOWNERID; |
| | | oMain.HOWNERID = HOWNERID; |
| | | |
| | | oCn.RunProc("Insert into KF_PonderationBillMain_Temp " + |
| | | "(HInterID,HBillNo,HBillType,HMaterID,HAuxPropID,HProcID" + |
| | | "(HInterID,HBillNo,HBillType,HMaterID,HUnitID,HAuxPropID,HProcID" + |
| | | ",HWhID,HSCWHID,HStockPlaceID,HOutStockPlaceID,HGroupID,HAddr" + |
| | | ",HQtyMust,HQty,HPieceQty,HBatchNo,HBarCode,HBarCode_Pack" + |
| | | ",HMaker,HMakeDate,HSourceInterID,HSourceEntryID,HSourceBillType,HSourceBillNo" + |
| | | ",HRelationInterID,HRelationEntryID,HRelationBillNo,HRedBlueFlag,HMTONo,HPlanMode" + |
| | | ",HSTOCKORGID,HOtherOrgID,HOWNERID,HOWNERTYPEID,HExpressNumber,HSubBillType" + |
| | | ",HCusID,HDeptID,HCusBarCode,HMulSourceBill) " + |
| | | " Values(" + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "','" + oMain.HBillType + "'," + oMain.HMaterID.ToString() + "," + oMain.HAuxPropID.ToString() + "," + oMain.HProcID.ToString() + |
| | | ",HCusID,HDeptID,HCusBarCode,HMulSourceBill,HBeginDate,HEndDate) " + |
| | | " Values(" + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "','" + oMain.HBillType + "'," + oMain.HMaterID.ToString() + "," + oMain.HUnitID.ToString() + "," + oMain.HAuxPropID.ToString() + "," + oMain.HProcID.ToString() + |
| | | "," + oMain.HWhID.ToString() + "," + oMain.HSCWHID.ToString() + "," + oMain.HStockPlaceID.ToString() + "," + oMain.HOutStockPlaceID.ToString() + "," + oMain.HGroupID.ToString() + ",'" + oMain.HAddr + "'" + |
| | | "," + oMain.HQtyMust.ToString() + "," + oMain.HQty.ToString() + "," + oMain.HPieceQty.ToString() + ",'" + oMain.HBatchNo + "','" + oMain.HBarCode + "',''" + |
| | | ",'" + oMain.HMaker + "',getdate()," + oMain.HSourceInterID.ToString() + "," + oMain.HSourceEntryID.ToString() + ",'" + oMain.HSourceBillType + "','" + oMain.HSourceBillNo + "'" + |
| | | "," + oMain.HRelationInterID.ToString() + "," + oMain.HRelationEntryID.ToString() + ",'" + oMain.HRelationBillNo + "'," + Convert.ToString(oMain.HRedBlueFlag ? 1 : 0) + ",'" + oMain.HMTONo + "',0" + |
| | | "," + oMain.HSTOCKORGID.ToString() + "," + oMain.HSTOCKORGID.ToString() + "," + oMain.HOWNERID.ToString() + ",'','校验模式',1" + |
| | | ",0,0,'" + oMain.HCusBarCode + "',0)"); |
| | | "," + oMain.HSTOCKORGID.ToString() + "," + oMain.HOWNERID.ToString() + "," + oMain.HSTOCKORGID.ToString() + ",'','校验模式','" + oMain.HSubBillType + "'" + |
| | | ",0,0,'" + oMain.HCusBarCode + "'," + oMain.HMulSourceBill.ToString() + "," + (oMain.HBeginDate == "" ? "NULL" : "'" + oMain.HBeginDate + "'") + "," + (oMain.HEndDate == "" ? "NULL" : "'" + oMain.HEndDate + "'") + ")"); |
| | | |
| | | if (sRemQty <= 0) |
| | | { |
| | |
| | | sErrMsg = "单据号:" + HBillNo + ",单据ID:" + HBillID + ";扫描物料条码失败!" + sErrMsg; |
| | | return null; |
| | | } |
| | | oBar.HBarType = "物料条码"; |
| | | return oBar; |
| | | } |
| | | } |
| | |
| | | sErrMsg = "单据号:" + HBillNo + ",单据ID:" + HBillID + ";扫描物料条码失败!" + sErrMsg; |
| | | return null; |
| | | } |
| | | oBar.HBarType = "物料条码"; |
| | | return oBar; |
| | | } |
| | | } |