zgq
2021-02-22 9ba27cdf1503d91a1a582cf86c9800cd6cc9429b
WebAPI/Controllers/MoveStockBillController.cs
@@ -44,7 +44,7 @@
        public DataSet ds = new DataSet();
        public ClsGy_BarCodeBill_WMS_Model_View oView = new ClsGy_BarCodeBill_WMS_Model_View();
        public ClsKF_PonderationBillMain_Temp model = new ClsKF_PonderationBillMain_Temp();
        private JsonResult objJsonResult = new JsonResult();
        public JsonResult objJsonResult = new JsonResult();
        private json objjson = new json();
        /// <summary>
@@ -285,6 +285,7 @@
                string sErrMsg = "";
                bool sBool = false;
                double sRelQty = 0;
                double sRelQty2 = 0;
                oView = webserver.get_InfoByBarCode_Source(sCode, sInterID, ref sBool, ref DBUtility.ClsPub.sErrInfo);
                if (oView == null)
                {
@@ -294,17 +295,18 @@
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                if (oView.HBarCodeType == "唯一条码" && sQty > 0 && oView.HQty < sQty)
                {
                    sRelQty = oView.HQty;
                    sRelQty2 = oView.HQty;
                }
                else if (sQty > 0)
                {
                    sRelQty = sQty;
                    sRelQty2 = sQty;
                }
                else
                {
                    sRelQty = oView.HQty;
                    sRelQty2 = oView.HQty;
                }
                model.HInterID = DBUtility.ClsPub.isLong(sInterID);
@@ -320,6 +322,9 @@
                model.HBarCode = oView.HBarCode;
                model.HBatchNo = oView.HBatchNo;
                model.HMTONo = oView.HMTONo;
                //model.HWhID = oView.HWHID;
                //model.HStockPlaceID = oView.HSPID;
                model.HWhID = DBUtility.ClsPub.isLong(HWHID);
                model.HStockPlaceID = DBUtility.ClsPub.isLong(HSPID);
@@ -340,22 +345,21 @@
                WebS.WebService1 oWebs = new WebS.WebService1();
                //if (webserver.set_SavePonderationBillMain_Temp_Qty(model, sQty, ref DBUtility.ClsPub.sErrInfo))
                bool flag = oWebs.Get_CheckQtyByBarCode_GetWhAndSP(model.HInterID, model.HBillType, model.HBarCode, ref SCWhID, ref SCSPID, sRelQty, ref sRelQty);
                if (flag)
                objJsonResult = CheckQtyByBarCode_Json(model.HInterID, model.HBillType, model.HBarCode, ref SCWhID, ref SCSPID, sRelQty2, ref sRelQty);
                if (objJsonResult.count == 1)
                {
                    sQty = sRelQty;
                    model.HSCWHID = SCWhID;
                    model.HOutStockPlaceID = SCSPID;
                }
                else if (sRelQty == 0)
                else if (objJsonResult.count == 0)
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "2-无库存!";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                else
                {
                    sQty = sRelQty;
                }
                if (oWebs.set_SavePonderationBillMain_Temp_Qty(model, sQty, ref DBUtility.ClsPub.sErrInfo))
@@ -371,7 +375,7 @@
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "4-扫码失败!" + DBUtility.ClsPub.sErrInfo;
                    objJsonResult.data = null;
                    objJsonResult.data = model.HBarCode;
                    return objJsonResult;
                }
            }
@@ -382,6 +386,90 @@
            }
        }
        //根据条码 数量 判断条码库存 是否充足 并且带出 仓库仓位
        public JsonResult CheckQtyByBarCode_Json(long InterID, string sBillType, string sBarCode, ref long HWHID, ref long HSPID, double sQty, ref double sRelQty)
        {
            DataSet DS;
            DataSet DSErp;
            try
            {
                //单条码,一张单据一条条码(凯波)
                //DS = oCn.RunProcReturn("exec h_p_KF_ICInventory_WMS_GetWHAndSP_Single " + InterID.ToString() + ",'" + sBillType + "','" + sBarCode + "'," + HWHID.ToString() + "," + HSPID.ToString(), "h_p_KF_ICInventory_WMS_GetWHAndSP_Single", ref DBUtility.ClsPub.sExeReturnInfo);
                //判断条码库存
                DS = new SQLHelper.ClsCN().RunProcReturn("exec h_p_KF_ICInventory_WMS_GetWHAndSP " + InterID.ToString() + ",'" + sBillType + "','" + sBarCode + "'," + HWHID.ToString() + "," + HSPID.ToString(), "h_p_KF_ICInventory_WMS_GetWHAndSP", ref DBUtility.ClsPub.sExeReturnInfo);
                if (DS.Tables[0].Rows.Count == 0)
                {
                    sRelQty = 0;
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "4-扫码失败!";
                    objJsonResult.data = DS;
                    return objJsonResult;
                }
                else
                {
                    double sKFQty = 0;
                    double sKFQtyErp = 0;
                    sKFQty = DBUtility.ClsPub.isDoule(DS.Tables[0].Rows[0]["HKFQty"]);
                    HWHID = DBUtility.ClsPub.isLong(DS.Tables[0].Rows[0]["HWhID"]);
                    HSPID = DBUtility.ClsPub.isLong(DS.Tables[0].Rows[0]["HSPID"]);
                    //直接返回999
                    DSErp = new SQLHelper.ClsCN().RunProcReturn("exec h_p_IF_ICInventory_WMS_GetWHAndSP " + InterID.ToString() + ",'" + sBillType + "','" + sBarCode + "'," + HWHID.ToString() + "," + HSPID.ToString(), "h_p_IF_ICInventory_WMS_GetWHAndSP", ref DBUtility.ClsPub.sExeReturnInfo);
                    if (DSErp.Tables[0].Rows.Count == 0)
                    {
                        sRelQty = 0;//不会走
                        objJsonResult.code = "0";
                        objJsonResult.count = 0;
                        objJsonResult.Message = "4-扫码失败!";
                        objJsonResult.data = DS;
                        return objJsonResult;
                    }
                    sKFQtyErp = DBUtility.ClsPub.isDoule(DSErp.Tables[0].Rows[0]["HKFQty"]);//9999
                    if (sQty > sKFQty && sQty > sKFQtyErp) //当库存小于标签数量时 取库存数量
                    {
                        sRelQty = sKFQtyErp;
                        objJsonResult.code = "0";
                        objJsonResult.count = 0;
                        objJsonResult.Message = "4-扫码失败!";
                        objJsonResult.data = DS;
                        return objJsonResult;
                    }
                    else if (sQty > sKFQty && sQty < sKFQtyErp)  //当库存小于标签数量时 取库存数量
                    {
                        sRelQty = sKFQty;
                        objJsonResult.code = "1";
                        objJsonResult.count = 1;
                        objJsonResult.Message = "4-扫码失败!";
                        objJsonResult.data = DS;
                        return objJsonResult;
                    }
                    else if (sQty < sKFQty && sQty > sKFQtyErp)//无效
                    {
                        sRelQty = sKFQtyErp;
                        objJsonResult.code = "0";
                        objJsonResult.count = 0;
                        objJsonResult.Message = "4-扫码失败!";
                        objJsonResult.data = DS;
                        return objJsonResult;
                    }
                    else
                    {
                        sRelQty = sQty;
                        objJsonResult.code = "1";
                        objJsonResult.count = 1;
                        objJsonResult.Message = "4-扫码失败!";
                        objJsonResult.data = DS;
                        return objJsonResult;
                    }
                }
            }
            catch (Exception e)
            {
                sRelQty = 0;
                throw (e);
            }
        }
        /// <summary>
        /// 生成调拨单
        /// </summary>