| | |
| | | //库存控制-WMS负库存控制 唯一条码、启用条码库存,仓库仓位获取顺序:界面上仓库仓位 > 条码库存仓库仓位 |
| | | if (dal.omodel_View.HBarCodeType == "唯一条码" && oSystemParameterMain.WMS_WMSStockCtl == "Y") |
| | | { |
| | | //sWHSPCtl=1,表示界面上仓库仓位为空 |
| | | if (sWHSPCtl == 1) |
| | | { |
| | | HWhID = 0; |
| | | HSPID = 0; |
| | | } |
| | | |
| | | //判断条码库存 返回条码库存数量 |
| | | DataSet DsWMS = oCn.RunProcReturn("exec h_p_WMS_AddBarCode_GetWMSICInventory_Pack_ZhuoLi " + HInterID.ToString() + ",'" + HBillType + "','" + sHBarCode_Pack + "'," + HWhID.ToString() + "," + HSPID.ToString() + "," + HStockOrgID.ToString(), "h_p_WMS_AddBarCode_GetWMSICInventory_Pack_ZhuoLi"); |
| | | if (DsWMS == null || DsWMS.Tables[0].Rows.Count == 0) |
| | |
| | | //先进先出控制 |
| | | if (oSystemParameter.omodel.Kf_SellOutBill_FIFOCtl == "Y") //系统参数 销售出库单-先进先出控制 |
| | | { |
| | | DataSet FIFO = oCn.RunProcReturn("exec h_p_WMS_AddSourceFIFO_SellOut " + HInterID.ToString() + ",'" + HBillType + "','" + HSourceBillNo + "','" + HSourceBillType + "'," + HFIFOWhID.ToString(), "h_p_WMS_AddSourceFIFO_SellOut"); |
| | | DataSet FIFO = oCn.RunProcReturn("exec h_p_WMS_AddSourceFIFO_SellOut " + HInterID.ToString() + ",'" + HBillType + "','" + HSourceBillNo + "','" + HSourceBillType + "'," + HFIFOWhID.ToString() + "," + HOWNERID.ToString(), "h_p_WMS_AddSourceFIFO_SellOut"); |
| | | if (FIFO == null || FIFO.Tables[0].Rows.Count == 0) |
| | | { |
| | | sErrMsg = "单据号:" + HBillNo + ",单据ID:" + HInterID + ";存入先进先出临时表失败!"; |
| | |
| | | //先进先出下架清单 |
| | | else if (oSystemParameter.omodel.Kf_SellOutBill_FIFOList == "Y") //系统参数 销售出库单-先进先出下架清单 |
| | | { |
| | | DataSet FIFOList = oCn.RunProcReturn("exec h_p_WMS_AddSourceFIFOList_SellOut " + HInterID.ToString() + ",'" + HBillType + "','" + HSourceBillNo + "','" + HSourceBillType + "'," + HFIFOWhID.ToString(), "h_p_WMS_AddSourceFIFOList_SellOut"); |
| | | DataSet FIFOList = oCn.RunProcReturn("exec h_p_WMS_AddSourceFIFOList_SellOut " + HInterID.ToString() + ",'" + HBillType + "','" + HSourceBillNo + "','" + HSourceBillType + "'," + HFIFOWhID.ToString() + "," + HOWNERID.ToString(), "h_p_WMS_AddSourceFIFOList_SellOut"); |
| | | if (FIFOList == null || FIFOList.Tables[0].Rows.Count == 0) |
| | | { |
| | | sErrMsg = "单据号:" + HBillNo + ",单据ID:" + HInterID + ";存入先进先出下架清单失败!"; |
| | |
| | | //库存控制-WMS负库存控制 唯一条码、启用条码库存,仓库仓位获取顺序:界面上仓库仓位 > 条码库存仓库仓位 |
| | | if (omodel_View.HBarCodeType == "唯一条码" && oSystemParameterMain.WMS_WMSStockCtl == "Y") |
| | | { |
| | | //sWHSPCtl=1,表示界面上仓库仓位为空 |
| | | if (sWHSPCtl == 1) |
| | | { |
| | | HWhID = 0; |
| | | HSPID = 0; |
| | | } |
| | | |
| | | //判断条码库存 返回条码库存数量 |
| | | DataSet DsWMS = oCn.RunProcReturn("exec h_p_WMS_AddBarCode_GetWMSICInventory " + HInterID.ToString() + ",'" + HBillType + "','" + omodel_View.HBarCode + "'," + HWhID.ToString() + "," + HSPID.ToString() + "," + HStockOrgID.ToString(), "h_p_WMS_AddBarCode_GetWMSICInventory"); |
| | | if (DsWMS == null || DsWMS.Tables[0].Rows.Count == 0) |
| | |
| | | else |
| | | //未启用条码库存,仓库仓位获取顺序:界面上仓库仓位 > 源单仓库仓位 > 物料默认仓库仓位 |
| | | { |
| | | if (HWhID == 0) |
| | | //sWHSPCtl=1,表示界面上仓库仓位为空 匹配源单数据时返回多行数据,判断返回的多行数据中仓库仓位是否相同 |
| | | if (sWHSPCtl == 1 && dsSource.Tables[0].Rows.Count > 1) |
| | | { |
| | | //匹配源单数据时只返回唯一一行数据,且仓库ID不为0,仓库仓位取返回的仓库仓位值 |
| | | if (dsSource.Tables[0].Rows.Count == 1 && omodel_View.HWHID != 0) |
| | | double sSumQty2 = 0; |
| | | double sRemQty2 = 0; |
| | | long sWHID = 0; |
| | | long sSPID = 0; |
| | | for (int i = 0; i < dsSource.Tables[0].Rows.Count; i++) |
| | | { |
| | | HWhID = omodel_View.HWHID; |
| | | HSPID = omodel_View.HSPID; |
| | | } |
| | | //匹配源单数据时返回多行数据,判断拆分后的子表对应仓库仓位是否相同,相同 取返回的仓库仓位值;不同 取界面上仓库仓位 |
| | | else |
| | | { |
| | | double sSumQty2 = 0; |
| | | double sRemQty2 = 0; |
| | | long sWHID = 0; |
| | | long sSPID = 0; |
| | | for (int i = 0; i < dsSource.Tables[0].Rows.Count; i++) |
| | | omodel_View.HSourceQty = DBUtility.ClsPub.isDoule(dsSource.Tables[0].Rows[i]["HQtyMust"]); //存在相同物料时,其中一行源单剩余可扫数量 |
| | | sSumQty2 = sSumQty2 + omodel_View.HSourceQty; |
| | | sRemQty2 = sRelQty - sSumQty2; |
| | | |
| | | if (i > 0 && (sWHID != DBUtility.ClsPub.isLong(dsSource.Tables[0].Rows[i]["HWhID"]) || sSPID != DBUtility.ClsPub.isLong(dsSource.Tables[0].Rows[i]["HSPID"]))) |
| | | { |
| | | omodel_View.HSourceQty = DBUtility.ClsPub.isDoule(dsSource.Tables[0].Rows[i]["HQtyMust"]); //存在相同物料时,其中一行源单剩余可扫数量 |
| | | sSumQty2 = sSumQty2 + omodel_View.HSourceQty; |
| | | sRemQty2 = sRelQty - sSumQty2; |
| | | |
| | | if (i > 0 && (sWHID != DBUtility.ClsPub.isLong(dsSource.Tables[0].Rows[i]["HWhID"]) || sSPID != DBUtility.ClsPub.isLong(dsSource.Tables[0].Rows[i]["HSPID"]))) |
| | | { |
| | | sErrMsg = "同时启用了获取源单子表仓库仓位、存在多行相同物料时自动拆分换行功能,但源单中相同物料对应仓库仓位不同,同一条码无法分配给多个仓库仓位,请选择仓库仓位后再扫码!"; |
| | | return null; |
| | | } |
| | | sWHID = DBUtility.ClsPub.isLong(dsSource.Tables[0].Rows[i]["HWhID"]); |
| | | sSPID = DBUtility.ClsPub.isLong(dsSource.Tables[0].Rows[i]["HSPID"]); |
| | | |
| | | if (sRemQty2 <= 0) |
| | | { |
| | | break; |
| | | } |
| | | sErrMsg = "同时启用了获取源单子表仓库仓位、存在多行相同物料时自动拆分换行功能,但源单中相同物料对应仓库仓位不同,同一条码无法分配给多个仓库仓位,请选择仓库仓位后再扫码!"; |
| | | return null; |
| | | } |
| | | HWhID = omodel_View.HWHID; |
| | | HSPID = omodel_View.HSPID; |
| | | sWHID = DBUtility.ClsPub.isLong(dsSource.Tables[0].Rows[i]["HWhID"]); |
| | | sSPID = DBUtility.ClsPub.isLong(dsSource.Tables[0].Rows[i]["HSPID"]); |
| | | |
| | | if (sRemQty2 <= 0) |
| | | { |
| | | break; |
| | | } |
| | | } |
| | | } |
| | | } |