From 02b4f0d431d8e5f8d7a8f770fc25ea985911eaa6 Mon Sep 17 00:00:00 2001
From: zgq <519541279@qq.com>
Date: 星期三, 24 二月 2021 10:12:17 +0800
Subject: [PATCH] 11

---
 WebAPI/Controllers/MoveStockBillController.cs |  299 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 281 insertions(+), 18 deletions(-)

diff --git a/WebAPI/Controllers/MoveStockBillController.cs b/WebAPI/Controllers/MoveStockBillController.cs
index c63b643..f86d8e4 100644
--- a/WebAPI/Controllers/MoveStockBillController.cs
+++ b/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>
@@ -100,9 +100,184 @@
         /// <param name="SCWhID"></param>
         /// <param name="SCSPID"></param>
         /// <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)
+        //{
+        //    try
+        //    {
+        //        WebS.ClsKF_PonderationBillMain_Temp model = new WebS.ClsKF_PonderationBillMain_Temp();
+        //        string sErrMsg = "";
+        //        bool sBool = false;
+        //        double sRelQty = 0;
+        //        oView = webserver.get_InfoByBarCode_Source(sCode, sInterID, ref sBool, ref DBUtility.ClsPub.sErrInfo);
+        //        if (oView == null)
+        //        {
+        //            objJsonResult.code = "0";
+        //            objJsonResult.count = 0;
+        //            objJsonResult.Message = "鍗曟嵁鍙凤細" + sBillNo + "锛屽崟鎹甀D锛�" + sInterID + "锛�" + DBUtility.ClsPub.sErrInfo;
+        //            objJsonResult.data = null;
+        //            return objJsonResult;
+        //        }
+        //        if (oView.HBarCodeType == "鍞竴鏉$爜" && sQty > 0 && oView.HQty < sQty)
+        //        {
+        //            sRelQty = oView.HQty;
+        //        }
+        //        else if (sQty > 0)
+        //        {
+        //            sRelQty = sQty;
+        //        }
+        //        else
+        //        {
+        //            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.HMaterID = oView.HMaterID;
+        //        model.HAuxPropID = oView.HAuxPropID;
+        //        model.HErpClsID = oView.HErpClsID;
+        //        model.HQty = oView.HQty;
+        //        model.HQtyMust = oView.HinitQty;
+        //        model.HBarCode = oView.HBarCode;
+        //        model.HBatchNo = oView.HBatchNo;
+        //        model.HMTONo = oView.HMTONo;
+
+        //        model.HWhID = DBUtility.ClsPub.isLong(HWHID);
+        //        model.HStockPlaceID = DBUtility.ClsPub.isLong(HSPID);
+        //        model.HSCWHID = SCWhID;
+        //        model.HOutStockPlaceID = SCSPID;
+        //        //model.HVDAPack = txtHVDAPack2.Text.Trim();
+        //        //model.HVDAMaterNum = txtHVDAMaterID.Text.Trim();
+        //        //model.HVDAQty = DBUtility.ClsPub.ObjToDouble(txtHVDAQty.Text.Trim());
+        //        //
+        //        model.HSourceInterID = oView.HSourceInterID;
+        //        model.HSourceEntryID = oView.HSourceEntryID;
+        //        model.HSourceBillNo = oView.HSourceBillNo;
+        //        model.HSourceBillType = oView.HSourceBillType;
+        //        model.HRedBlueFlag = false;
+        //        model.HPieceQty = 1;
+        //        //model.HSTOCKORGID = DBUtility.ClsPub.HORGANIZATIONSID;
+        //        //model.HOWNERID = DBUtility.ClsPub.HORGANIZATIONSID;
+
+        //        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)
+        //        {
+        //            sQty = sRelQty;
+        //        }
+        //        else if(sRelQty == 0)
+        //        {
+        //            objJsonResult.code = "0";
+        //            objJsonResult.count = 0;
+        //            objJsonResult.Message = "鏃犲簱瀛橈紒";
+        //            objJsonResult.data = null;
+        //            return objJsonResult;
+        //        }
+        //        else
+        //        {
+        //            sQty = sRelQty;
+        //        }
+
+        //        if (oWebs.set_SavePonderationBillMain_Temp_Qty(model, sQty, ref DBUtility.ClsPub.sErrInfo))
+        //        {
+        //            objJsonResult.code = "0";
+        //            objJsonResult.count = 1;
+        //            objJsonResult.Message = "鎵爜鎴愬姛锛�";
+        //            objJsonResult.data = null;
+        //            return objJsonResult;
+        //        }
+        //        else
+        //        {
+        //            objJsonResult.code = "0";
+        //            objJsonResult.count = 0;
+        //            objJsonResult.Message = "鎵爜澶辫触锛�" + DBUtility.ClsPub.sErrInfo;
+        //            objJsonResult.data = null;
+        //            return objJsonResult;
+        //        }
+        //    }
+        //    catch (Exception)
+        //    {
+
+        //        throw;
+        //    }
+        //}
+
+        /// <summary>
+        /// 璋冩嫧鍗�/鎵潯鐮�
+        /// </summary>
+        /// <param name="sCode"></param>
+        /// <param name="sInterID"></param>
+        /// <param name="sBillNo"></param>
+        /// <param name="sQty"></param>
+        /// <param name="HWHID"></param>
+        /// <param name="HSPID"></param>
+        /// <param name="SCWhID"></param>
+        /// <param name="SCSPID"></param>
+        /// <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)
+        {
+            try
+            {
+                DAL.ClsGy_BarCodeBill_View dal = new DAL.ClsGy_BarCodeBill_View();
+                SQLHelper.ClsCN oCn = new SQLHelper.ClsCN();
+                dal.GetInfoByNumber_View(sCode);
+                if (dal.omodel_View.HBarCodeType != "鎵樼洏鏉$爜")
+                {
+                    return get_InfoByBarCode_Source_Json_s(sCode, sInterID, sBillNo, sQty, HWHID, HSPID, SCWhID, SCSPID);
+                }
+                else
+                {
+                    //濡傛灉鏄泤鐞鍒欐墭鐩樻潯鐮佸垎瑙e苟妯℃嫙鎵爜
+
+                    //鍒嗚В鎵樻潯鐮佸緱鍒版槑缁嗘潯鐮佷俊鎭啓鍏ュ嚭鍏ュ簱鏉$爜涓存椂琛�
+                    DataSet dsTBarCode;
+                    string sBarCode_MX;
+                    dsTBarCode = oCn.RunProcReturn("select b.HBarCode HBarCodeMX from Sc_PackUnionBillMain a  " +
+                    " inner join Sc_PackUnionBillSub b on a.HInterID = b.HInterID " +
+                    " Where a.HBarCode_Pack = '" + sCode + "'", "Sc_PackUnionBillMain");
+                    if (dsTBarCode == null || dsTBarCode.Tables[0].Rows.Count == 0)
+                    {
+                        //sErrMsg = "娌℃湁鎵惧埌鎵樼洏鏉$爜锛�";
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = "鎵爜澶辫触锛佹病鏈夋壘鍒版墭鐩樻潯鐮侊紒";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                    else
+                    {
+                        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")
+                            {
+                                return objJsonResult;
+                            }
+                        }
+                        return objJsonResult;
+                    }
+                }
+                
+            }
+            catch (Exception e)
+            {
+                objJsonResult.code = "0";
+                objJsonResult.count = 0;
+                objJsonResult.Message = "鎵爜澶辫触锛�" + DBUtility.ClsPub.isStrNull(e);
+                objJsonResult.data = null;
+                return objJsonResult;
+            }
+        }
+
+        public object get_InfoByBarCode_Source_Json_s(string sCode, Int64 sInterID, string sBillNo, Double sQty, Int64 HWHID, Int64 HSPID, Int64 SCWhID, Int64 SCSPID)
         {
             try
             {
@@ -110,26 +285,28 @@
                 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)
                 {
                     objJsonResult.code = "0";
                     objJsonResult.count = 0;
-                    objJsonResult.Message = "鍗曟嵁鍙凤細" + sBillNo + "锛屽崟鎹甀D锛�" + sInterID + "锛�" + DBUtility.ClsPub.sErrInfo;
+                    objJsonResult.Message = "1-鍗曟嵁鍙凤細" + sBillNo + "锛屽崟鎹甀D锛�" + sInterID + "锛�" + DBUtility.ClsPub.sErrInfo;
                     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);
@@ -145,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);
@@ -165,29 +345,28 @@
 
                 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 = "鏃犲簱瀛橈紒";
+                    objJsonResult.Message = "2-鏃犲簱瀛橈紒";
                     objJsonResult.data = null;
                     return objJsonResult;
-                }
-                else
-                {
-                    sQty = sRelQty;
                 }
 
                 if (oWebs.set_SavePonderationBillMain_Temp_Qty(model, sQty, ref DBUtility.ClsPub.sErrInfo))
                 {
-                    objJsonResult.code = "0";
+                    objJsonResult.code = "1";
                     objJsonResult.count = 1;
-                    objJsonResult.Message = "鎵爜鎴愬姛锛�";
+                    objJsonResult.Message = "3-鎵爜鎴愬姛锛�";
                     objJsonResult.data = null;
                     return objJsonResult;
                 }
@@ -195,18 +374,102 @@
                 {
                     objJsonResult.code = "0";
                     objJsonResult.count = 0;
-                    objJsonResult.Message = "鎵爜澶辫触锛�" + DBUtility.ClsPub.sErrInfo;
-                    objJsonResult.data = null;
+                    objJsonResult.Message = "4-鎵爜澶辫触锛�" + DBUtility.ClsPub.sErrInfo;
+                    objJsonResult.data = model.HBarCode;
                     return objJsonResult;
                 }
             }
             catch (Exception)
             {
-                
+
                 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);
+            }
+        }
+
         /// <summary>
         /// 鐢熸垚璋冩嫧鍗�
         /// </summary>

--
Gitblit v1.9.1