zzr99
2021-09-15 961fa0e1724b2990fed3db3555f32f1d5708bb41
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();
        public JsonResult objJsonResult = new JsonResult();
        private JsonResult objJsonResult = new JsonResult();
        private json objjson = new json();
        /// <summary>
@@ -170,7 +170,7 @@
        //        {
        //            sQty = sRelQty;
        //        }
        //        else if(sRelQty == 0)
        //        else if (sRelQty == 0)
        //        {
        //            objJsonResult.code = "0";
        //            objJsonResult.count = 0;
@@ -221,7 +221,7 @@
        /// <returns></returns>
        [Route("MoveStockBill/get_InfoByBarCode_Source_Json")]
        [HttpGet]
        public object get_InfoByBarCode_Source_Json(string sCode, Int64 sInterID, string sBillNo, Double sQty, Int64 HWHID, Int64 HSPID, Int64 SCWhID, Int64 SCSPID)
        public object get_InfoByBarCode_Source_Json(string sCode, Int64 sInterID, string sBillNo, Double sQty, Int64 HWHID, Int64 HSPID, Int64 SCWhID, Int64 SCSPID, string HMaker, Int64 HOrgID)
        {
            try
            {
@@ -230,7 +230,7 @@
                dal.GetInfoByNumber_View(sCode);
                if (dal.omodel_View.HBarCodeType != "托盘条码")
                {
                    return get_InfoByBarCode_Source_Json_s(sCode, sInterID, sBillNo, sQty, HWHID, HSPID, SCWhID, SCSPID);
                    return get_InfoByBarCode_Source_Json_s(sCode, sInterID, sBillNo, sQty, HWHID, HSPID, SCWhID, SCSPID, HMaker, HOrgID);
                }
                else
                {
@@ -256,8 +256,8 @@
                        for (int i = 0; i < dsTBarCode.Tables[0].Rows.Count; i++)
                        {
                            sBarCode_MX = DBUtility.ClsPub.isStrNull(dsTBarCode.Tables[0].Rows[i]["HBarCodeMX"]);
                            objJsonResult= (JsonResult)get_InfoByBarCode_Source_Json_s(sBarCode_MX, sInterID, sBillNo, sQty, HWHID, HSPID, SCWhID, SCSPID);
                            if(objJsonResult.code == "0")
                            objJsonResult = (JsonResult)get_InfoByBarCode_Source_Json_s(sBarCode_MX, sInterID, sBillNo, sQty, HWHID, HSPID, SCWhID, SCSPID, HMaker,HOrgID);
                            if (objJsonResult.code == "0")
                            {
                                return objJsonResult;
                            }
@@ -265,7 +265,7 @@
                        return objJsonResult;
                    }
                }
            }
            catch (Exception e)
            {
@@ -277,7 +277,7 @@
            }
        }
        public object get_InfoByBarCode_Source_Json_s(string sCode, Int64 sInterID, string sBillNo, Double sQty, Int64 HWHID, Int64 HSPID, Int64 SCWhID, Int64 SCSPID)
        public object get_InfoByBarCode_Source_Json_s(string sCode, Int64 sInterID, string sBillNo, Double sQty, Int64 HWHID, Int64 HSPID, Int64 SCWhID, Int64 SCSPID, string HMaker,Int64 HOrgID)
        {
            try
            {
@@ -285,7 +285,6 @@
                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)
                {
@@ -295,24 +294,23 @@
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                if (oView.HBarCodeType == "唯一条码" && sQty > 0 && oView.HQty < sQty)
                {
                    sRelQty2 = oView.HQty;
                    sRelQty = oView.HQty;
                }
                else if (sQty > 0)
                {
                    sRelQty2 = sQty;
                    sRelQty = sQty;
                }
                else
                {
                    sRelQty2 = oView.HQty;
                    sRelQty = oView.HQty;
                }
                model.HInterID = DBUtility.ClsPub.isLong(sInterID);
                model.HBillNo = DBUtility.ClsPub.isStrNull(sBillNo);
                model.HBillType = this.HBillType;
                model.HMaker = DBUtility.ClsPub.CurUserName;
                model.HMaker = HMaker;
                //
                model.HMaterID = oView.HMaterID;
                model.HAuxPropID = oView.HAuxPropID;
@@ -322,9 +320,6 @@
                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,20 +335,27 @@
                model.HSourceBillType = oView.HSourceBillType;
                model.HRedBlueFlag = false;
                model.HPieceQty = 1;
                //model.HSTOCKORGID = DBUtility.ClsPub.HORGANIZATIONSID;
                //model.HOWNERID = DBUtility.ClsPub.HORGANIZATIONSID;
                model.HSTOCKORGID = HOrgID;
                model.HOWNERID = HOrgID;
                WebS.WebService1 oWebs = new WebS.WebService1();
                //if (webserver.set_SavePonderationBillMain_Temp_Qty(model, sQty, ref DBUtility.ClsPub.sErrInfo))
                objJsonResult = CheckQtyByBarCode_Json(model.HInterID, model.HBillType, model.HBarCode, ref SCWhID, ref SCSPID, sRelQty2, ref sRelQty);
                if (objJsonResult.count == 1)
                bool flag = oWebs.Get_CheckQtyByBarCode_GetWhAndSP(model.HInterID, model.HBillType, model.HBarCode, ref SCWhID, ref SCSPID, sRelQty, ref sRelQty);
                if (flag)
                {
                    sQty = sRelQty;
                    //sQty = sRelQty;
                    model.HSCWHID = SCWhID;
                    model.HOutStockPlaceID = SCSPID;
                    if(SCWhID<=0)
                    {
                        objJsonResult.code = "0";
                        objJsonResult.count = 0;
                        objJsonResult.Message = "1-仓库无库存!";
                        objJsonResult.data = null;
                        return objJsonResult;
                    }
                }
                else if (objJsonResult.count == 0)
                else if (sRelQty == 0)
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
@@ -375,7 +377,7 @@
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "4-扫码失败!" + DBUtility.ClsPub.sErrInfo;
                    objJsonResult.data = model.HBarCode;
                    objJsonResult.data = null;
                    return objJsonResult;
                }
            }
@@ -383,90 +385,6 @@
            {
                throw;
            }
        }
        //根据条码 数量 判断条码库存 是否充足 并且带出 仓库仓位
        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);
            }
        }
@@ -520,7 +438,7 @@
                websLsmain.HStockStyle = "";
                websLsmain.HBillType = "1207";
                websLsmain.HSupID = 0;
                websLsmain.HGroupID = lsmain[0].HGroupID;
                //websLsmain.HGroupID = lsmain[0].HGroupID;
                if (webserver.set_SaveMoveStockBill(websLsmain, "-1", ref DBUtility.ClsPub.sErrInfo))
                {