From d703d7cc2f3a86692b1db16793ff2ffc60a1a355 Mon Sep 17 00:00:00 2001
From: duhe <226547893@qq.com>
Date: 星期一, 21 四月 2025 15:57:05 +0800
Subject: [PATCH] 1

---
 WebAPI/Controllers/SCGL/Sc_ComplementGoodBillController.cs |  646 +++++++++++++++++++++++++++++++++++++++++++++++++---------
 1 files changed, 547 insertions(+), 99 deletions(-)

diff --git a/WebAPI/Controllers/SCGL/Sc_ComplementGoodBillController.cs b/WebAPI/Controllers/SCGL/Sc_ComplementGoodBillController.cs
index c4d01bf..ee29387 100644
--- a/WebAPI/Controllers/SCGL/Sc_ComplementGoodBillController.cs
+++ b/WebAPI/Controllers/SCGL/Sc_ComplementGoodBillController.cs
@@ -40,6 +40,7 @@
             public DateTime HEndDate { get; set; }//缁撴潫鏃堕棿
             public int ps { get; set; }//浠呮樉绀烘湭瀹屽叏閰嶉��
             public string user { get; set; }//褰撳墠鐧诲綍浜�
+            public string Arbitrarily { get; set; }//浠绘剰鍙傛暟
         }
 
         [Route("Sc_ComplementGoodBill/ComplementGoodBillList")]
@@ -69,7 +70,7 @@
                 ComplementGoodBill com = JsonConvert.DeserializeObject<ComplementGoodBill>(sWhere.ToString());
 
                 ds = oCN.RunProcReturn($"exec h_p_JIT_CallGoodsPlatForm_Query '{com.HSeOrderBillNo}','{com.DepartmentName}','{com.MaterialNumber}','{com.MaterialName}'," +
-                    $"'{com.MaterialModel}','{com.HICMOBillNo}','{com.CPNumber}','{com.CPName}','{com.CPModel}','{com.HBeginDate}','{com.HEndDate.AddDays(1).AddSeconds(-1)}'," +
+                    $"'{com.MaterialModel}','{com.HICMOBillNo}','{com.CPNumber}','{com.CPName}','{com.CPModel}'," +
                     $"{com.ps},{com.Organization},'{com.user}' ", "h_p_JIT_CallGoodsPlatForm_Query");
 
                 objJsonResult.code = "1";
@@ -98,16 +99,21 @@
             public long HSouceInterID = 0;//HSourceInterIDCol
             public long HSourceEntryID = 0;//HSourceEntryIDCol
             public int? 鍙枡鏁伴噺 = 0;//HBHGQtyCol
+            public int? 閰嶅鏁伴噺 = 0;
+            public int? 宸插彨鏂欐暟閲� = 0;//HBHGQtyCol
+            public int? 宸查厤閫佹暟閲� = 0;//HBHGQtyCol
             public double? 閫�鏂欐暟閲� = 0;//閫�鏂欐暟閲�
             public long HSTOCKID = 0;//HSTOCKID
             public string 閫�鏂欏師鍥� { get; set; }//閫�鏂欏師鍥�
             public int HMaterialID = 0; //HMaterialIDCol
+            public string 鐗╂枡浠g爜 = ""; 
             public string HSourceBillNo { get; set; }//HSourceBillNoCol
             public int 璋冨嚭浠撳簱鍙敤搴撳瓨鏁伴噺 = 0;//HKFQtyKYCol
             public int 璋冨嚭浠撳簱搴撳瓨鏁伴噺 = 0;//HKFQtySCol
             public double 璁″垝鍙戞枡鏁伴噺 = 0;//HPlanQtyCol 
             public int HWHID = 0;//HWHIDCol
             public int? 璋冨嚭浠撳簱id = 0;//璋冨嚭浠撳簱id
+            public int? 璋冨叆浠撳簱id = 0;//璋冨叆浠撳簱id
             public string HMaterialNumberCol { get; set; }
             public string HMaterialModelCol { get; set; }
             public string HProcID { get; set; }//HProcIDCol
@@ -117,10 +123,10 @@
             public long HICMOInterID = 0;// HICMOInterIDCol
             public long HICMOEntryID = 0;// HICMOEntryIDCol
             public long HDeptID = 0;//HDeptID
+            public long 搴撳瓨鏁伴噺 = 0;
             public double HBHGQtyCol = 0;
             public string 閿�鍞鍗曞彿 { get; set; }//HSeOrderNOCol
             public DateTime? 璁″垝寮�宸ユ棩鏈� = null;//HBPlanDateCol
-
         }
 
         //涓存椂琛�  鍙枡瀛愯〃
@@ -137,6 +143,7 @@
             public string HSeOrderNo;
             public string HSeOrderBillNo;
             public int HWHID = 0;
+            public int HSCWHID = 0;
             public long HOutOrgID = 0;
             public long HICMOInterID = 0;
             public long HICMOEntryID = 0;
@@ -183,6 +190,100 @@
                 {
                     if (listCa[i].HMaterialID != 0 && listCa[i].鍙枡鏁伴噺 > 0)
                     {
+                        var Hqty = 0.0;
+                        var TuiHqty = 0.0;
+                        //褰撳墠鍗曟嵁宸插彨鏂� 鍜� 宸查��鏂欐暟閲�
+                        ds = oCN.RunProcReturn($@"
+                                               select isnull(a.HQty,0) 宸插彨鏂欐暟閲�,isnull(b.HQty,0) 宸查��鏂欑敵璇锋暟閲� from (
+                                                select sum(b.HQty) HQty,c.HNumber ,b.HSourceBillNo
+                                                from JIT_CallGoodsBillMain a
+                                                join JIT_CallGoodsBillSub b on a.HInterID=b.HInterID
+                                                left join Gy_Material c on b.HMaterID=c.HItemID
+                                                where b.HSourceBillNo='{listCa[i].HSourceBillNo}'
+                                                group by c.HNumber,b.HSourceBillNo
+                                                ) a
+                                                left join (
+                                                select sum(b.HQty) HQty,c.HNumber,b.HSourceBillNo
+                                                from JIT_CallGoodsBackRequestBillMain a
+                                                inner join JIT_CallGoodsBackRequestBillSub b on a.HInterID=b.HInterID
+                                                left join Gy_Material c on b.HMaterID=c.HItemID
+                                                where b.HSourceBillNo='{listCa[i].HSourceBillNo}'
+                                                group by c.HNumber,b.HSourceBillNo
+                                                ) b  on a.HNumber=b.HNumber and a.HSourceBillNo=b.HSourceBillNo where a.HNumber='{listCa[i].鐗╂枡浠g爜}'", "JIT_CallGoodsBillMain");
+
+                        if (ds.Tables[0].Rows.Count > 0)
+                        {
+                            Hqty = double.Parse(ds.Tables[0].Rows[0]["宸插彨鏂欐暟閲�"].ToString());
+                            TuiHqty = double.Parse(ds.Tables[0].Rows[0]["宸查��鏂欑敵璇锋暟閲�"].ToString());
+                        }
+
+                        if (listCa[i].鍙枡鏁伴噺 > listCa[i].璁″垝鍙戞枡鏁伴噺)
+                        {
+                            objJsonResult.code = "0";
+                            objJsonResult.count = 0;
+                            objJsonResult.Message = $"绗瑊(i + 1)}琛屽彨鏂欐暟閲忓ぇ浜庤鍒掑彂鏂欐暟閲�!";
+                            objJsonResult.data = null;
+                            return objJsonResult;
+                        }
+
+                        if((listCa[i].鍙枡鏁伴噺 + Hqty - TuiHqty)> listCa[i].璁″垝鍙戞枡鏁伴噺)
+                        {
+                            objJsonResult.code = "0";
+                            objJsonResult.count = 0;
+                            objJsonResult.Message = $"绗瑊(i + 1)}琛屽彨鏂欐�绘暟閲忓ぇ浜庤鍒掑彂鏂欐暟閲�!";
+                            objJsonResult.data = null;
+                            return objJsonResult;
+                        }
+
+                        ds = oCN.RunProcReturn("select * from h_v_JIT_WarehouseList where 浠撳簱ID=" + listCa[i].璋冨嚭浠撳簱id + "  and  鐗╂枡缂栫爜 = '" + listCa[i].鐗╂枡浠g爜 + "' and 搴撳瓨缁勭粐=" + listCa[i].HOutOrgID, "h_v_JIT_WarehouseList");
+
+                        var HSCWHIDCount= double.Parse(ds.Tables[0].Rows[0]["璋冨嚭浠撳簱鍙敤搴撳瓨鏁伴噺"].ToString());
+
+                        if (HSCWHIDCount == 0 && listCa[i].鍙枡鏁伴噺 > 0)
+                        {
+                            objJsonResult.code = "0";
+                            objJsonResult.count = 0;
+                            objJsonResult.Message = $"绗瑊(i + 1)}琛屽簱瀛樻暟閲忎负0,鏃犳硶鍙枡!";
+                            objJsonResult.data = null;
+                            return objJsonResult;
+                        }
+
+                        if (listCa[i].鍙枡鏁伴噺 > HSCWHIDCount)
+                        {
+                            objJsonResult.code = "0";
+                            objJsonResult.count = 0;
+                            objJsonResult.Message = $"绗瑊(i + 1)}琛屽簱瀛樻暟閲忓皬浜庡彨鏂欐暟閲�,鏃犳硶鍙枡!";
+                            objJsonResult.data = null;
+                            return objJsonResult;
+                        }
+
+                        if (listCa[i].鍙枡鏁伴噺 > 0 && listCa[i].璋冨叆浠撳簱id == 0)
+                        {
+                            objJsonResult.code = "0";
+                            objJsonResult.count = 0;
+                            objJsonResult.Message = $"绗瑊(i + 1)}琛岃閫夋嫨璋冨叆浠撳簱!";
+                            objJsonResult.data = null;
+                            return objJsonResult;
+                        }
+
+                        if (listCa[i].鍙枡鏁伴噺 > 0 && listCa[i].璋冨嚭浠撳簱id == 0)
+                        {
+                            objJsonResult.code = "0";
+                            objJsonResult.count = 0;
+                            objJsonResult.Message = $"绗瑊(i + 1)}琛岃閫夋嫨璋冨嚭浠撳簱!";
+                            objJsonResult.data = null;
+                            return objJsonResult;
+                        }
+
+                        if (listCa[i].璋冨嚭浠撳簱id == listCa[i].璋冨叆浠撳簱id)
+                        {
+                            objJsonResult.code = "0";
+                            objJsonResult.count = 0;
+                            objJsonResult.Message = $"绗瑊(i + 1)}琛岃皟鍑轰粨搴撳拰璋冨叆浠撳簱涓嶈兘涓�鏍�!";
+                            objJsonResult.data = null;
+                            return objJsonResult;
+                        }
+
                         j = 1;
 
                         var txtHBillNo = DBUtility.ClsPub.CreateBillCode_Prod(CallGoodsBill.ModName, ref DBUtility.ClsPub.sExeReturnInfo, true);//鑾峰緱涓�涓柊鐨勫崟鎹彿
@@ -207,28 +308,11 @@
                         oSub.HSourceBillNo = listCa[i].HSourceBillNo;
                         oSub.HQty =double.Parse(listCa[i].鍙枡鏁伴噺.ToString());
 
-                        //if (oSub.HQty <= 0)
-                        //{
-                        //    objJsonResult.code = "0";
-                        //    objJsonResult.count = 0;
-                        //    objJsonResult.Message = $"绗瑊i+1}琛岋紝鍙枡鏁伴噺涓嶈兘涓�0鎴栬�呭皬浜�0";
-                        //    objJsonResult.data = null;
-                        //    return objJsonResult;
-                        //}
-
-                        //if (oSub.HQty > listCa[i].璋冨嚭浠撳簱鍙敤搴撳瓨鏁伴噺)
-                        //{
-                        //    objJsonResult.code = "0";
-                        //    objJsonResult.count = 0;
-                        //    objJsonResult.Message = $"绗瑊i+1}琛岋紝鍙枡鏁伴噺澶т簬璇ョ墿鏂欒皟鍑轰粨搴撳彲鐢ㄥ簱瀛樻暟閲�";
-                        //    objJsonResult.data = null;
-                        //    return objJsonResult;
-                        //}
-
                         oSub.HMaterID = listCa[i].HMaterialID;
                         oSub.HMaterNumber = listCa[i].HMaterialNumberCol; 
                         oSub.HModel = listCa[i].HMaterialModelCol;
-                        oSub.HWHID = listCa[i].HWHID;
+                        oSub.HWHID = int.Parse(listCa[i].璋冨叆浠撳簱id.ToString());
+                        oSub.HSCWHID = int.Parse(listCa[i].璋冨嚭浠撳簱id.ToString());
                         oSub.HProcName = listCa[i].HProcNameCol; 
                         oSub.HProcID = listCa[i].HProcID;
                         oSub.HOutOrgID = listCa[i].HOutOrgID;
@@ -253,7 +337,7 @@
                 {
                     objJsonResult.code = "0";
                     objJsonResult.count = 0;
-                    objJsonResult.Message = $"绗瑊txt}琛屽彨鏂欏け璐ワ紝閲嶆柊鍙枡锛屽叾浠栬鏁板彨鏂欐垚鍔�";
+                    objJsonResult.Message = $"绗瑊txt}琛屽彨鏂欏け璐ワ紝閲嶆柊鍙枡";
                     objJsonResult.data = null;
                     return objJsonResult;
                 }
@@ -272,7 +356,7 @@
                 {
                     objJsonResult.code = "0";
                     objJsonResult.count = 0;
-                    objJsonResult.Message = "鏃犱换浣曞彨鏂欐暟閲忥紝鏃犳硶鍙枡!";
+                    objJsonResult.Message = "鏃犱换浣曞彨鏂欐暟閲忔垨鍙枡鏁伴噺灏忎簬0锛屾棤娉曞彨鏂�!";
                     objJsonResult.data = null;
                     return objJsonResult;
                 }
@@ -303,12 +387,12 @@
                       " (HInterID,HEntryID,HRemark" +
                       ",HSourceInterID,HSourceEntryID,HSourceBillNo,HSourceBillType,HRelationQty,HRelationMoney" +
                       ",HSeOrderInterID,HSeOrderEntryID,HSeOrderBillNo,HICMOInterID,HICMOEntryID,HICMOBillNo" +
-                      ",HDeptID,HMaterID,HQty,HProcID,HWHID,HSPID,HBillNo_bak,HOutOrgID" +
+                      ",HDeptID,HMaterID,HQty,HProcID,HWHID,HSCWHID,HSPID,HBillNo_bak,HOutOrgID,HStockOutOrgID,HStockInOrgID" +
                       ") values("
                       + omodel.HInterID.ToString() + "," + oSub.HEntryID.ToString() + ",'" + oSub.HRemark + "'" +
                       "," + oSub.HSourceInterID.ToString() + "," + oSub.HSourceEntryID.ToString() + ",'" + oSub.HSourceBillNo + "','" + oSub.HSourceBillType + "'," + oSub.HRelationQty.ToString() + "," + oSub.HRelationMoney.ToString() +
                       "," + oSub.HSeOrderInterID.ToString() + "," + oSub.HSeOrderEntryID.ToString() + ",'" + oSub.HSeOrderBillNo + "'," + oSub.HICMOInterID.ToString() + "," + oSub.HICMOEntryID.ToString() + ",'" + oSub.HICMOBillNo + "'" +
-                      "," + oSub.HDeptID.ToString() + "," + oSub.HMaterID.ToString() + "," + oSub.HQty.ToString() + ",'" + oSub.HProcID + "'," + oSub.HWHID.ToString() + ", " + oSub.HSPID.ToString() +",'',"+oSub.HOutOrgID+") ", ref DBUtility.ClsPub.sExeReturnInfo);
+                      "," + oSub.HDeptID.ToString() + "," + oSub.HMaterID.ToString() + "," + oSub.HQty.ToString() + ",'" + oSub.HProcID + "'," + oSub.HWHID.ToString() + ", " + oSub.HSCWHID.ToString()+"," + oSub.HSPID.ToString() +",'',"+oSub.HOutOrgID+ ","+oSub.HOutOrgID+ "," + omodel.HPRDORGID +") ", ref DBUtility.ClsPub.sExeReturnInfo);
 
                 //涓昏〃
 
@@ -335,6 +419,7 @@
             catch (Exception e)
             {
                 sReturn = e.Message;
+                oCN.RollBack();
                 throw (e);
             }
         }
@@ -350,7 +435,7 @@
             string msg2 = sArray[0].ToString();
             DBUtility.ClsPub.CurUserName = sArray[1].ToString();
             string HOrgID = sArray[2].ToString();
-            bool flag = false;
+            json flag =new json();
 
             try
             {
@@ -374,35 +459,33 @@
                 {
                     if (listCa[i].閫�鏂欐暟閲� > 0)
                     {
-                        flag = AddICStockTuiBill(listCa[i], "666601", "涓嶈壇鍝侀��鏂�", HOrgID, ref DBUtility.ClsPub.sExeReturnInfo);
+                        flag = (json)AddICStockTuiBill(listCa[i], "666601", "涓嶈壇鍝侀��鏂�", HOrgID);
                         j = 1;
+
+                        if (flag.code == "0")
+                        {
+                            objJsonResult.code = "0";
+                            objJsonResult.count = 0;
+                            objJsonResult.Message = objJsonResult.Message;
+                            objJsonResult.data = null;
+                            return objJsonResult;
+                        }
                     }
                 }
                 if (j == 0)
                 {
                     objJsonResult.code = "0";
                     objJsonResult.count = 0;
-                    objJsonResult.Message = "鏃犱换浣曢��鏂欐暟閲忥紝鏃犳硶閫�鏂�!";
+                    objJsonResult.Message = "鏃犱换浣曢��鏂欐暟閲忔垨閫�鏂欐暟閲忓皬浜�0锛屾棤娉曢��鏂�!";
                     objJsonResult.data = null;
                     return objJsonResult;
                 }
 
-                if (flag)
-                {
-                    objJsonResult.code = "1";
-                    objJsonResult.count = 1;
-                    objJsonResult.Message = "涓嶈壇鍝侀��鏂欐垚鍔�!";
-                    objJsonResult.data = null;
-                    return objJsonResult;
-                }
-                else
-                {
-                    objJsonResult.code = "0";
-                    objJsonResult.count = 0;
-                    objJsonResult.Message = "涓嶈壇鍝侀��鏂欏け璐�!";
-                    objJsonResult.data = null;
-                    return objJsonResult;
-                }
+                objJsonResult.code = "1";
+                objJsonResult.count = 1;
+                objJsonResult.Message = "涓嶈壇鍝侀��鏂欐垚鍔�!";
+                objJsonResult.data = null;
+                return objJsonResult;
             }
             catch (Exception e)
             {
@@ -415,18 +498,69 @@
         }
 
         //鏂板
-        public bool AddICStockTuiBill(CallGoodsBill listCa,string HBillType,string HBackType,string HOrgID, ref string sReturn)
+        public object AddICStockTuiBill(CallGoodsBill listCa,string HBillType,string HBackType,string HOrgID)
         {
             try
             {
               
-                    Int64 lngBillKey = listCa.HSouceInterID == 0 ? 0 : listCa.HSouceInterID;
-                    Int64 lngBillKeyEntry = listCa.HSourceEntryID == 0 ? 0 : listCa.HSourceEntryID;
-                    double HQty = (double)(listCa.閫�鏂欐暟閲� == 0 ? 0 : listCa.閫�鏂欐暟閲�);
-                    long HDeptWHID = listCa.HSTOCKID == 0 ? 0 : listCa.HSTOCKID;
-                    string HTuiResult = listCa.閫�鏂欏師鍥� == "" ? "" : listCa.閫�鏂欏師鍥�;
-                    var HBillNo = DBUtility.ClsPub.CreateBillCode_Prod("6666", ref DBUtility.ClsPub.sExeReturnInfo, true);//鑾峰緱涓�涓柊鐨勫崟鎹彿
-                    var HBillInterID = DBUtility.ClsPub.CreateBillID_Prod("6666", ref DBUtility.ClsPub.sExeReturnInfo);
+
+                if (listCa.閫�鏂欐暟閲� > listCa.宸查厤閫佹暟閲� && listCa.宸查厤閫佹暟閲� > 0)
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "閫�鏂欐暟閲忓ぇ浜庡凡閰嶉�佹暟閲�!";
+                    objJsonResult.data = null;
+                    return objJsonResult;
+                }
+
+                if (listCa.璋冨叆浠撳簱id == 0)
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "璇烽�夋嫨璋冨叆浠撳簱!";
+                    objJsonResult.data = null;
+                    return objJsonResult;
+                }
+
+                if (listCa.璋冨嚭浠撳簱id == 0)
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "璇烽�夋嫨璋冨嚭浠撳簱!";
+                    objJsonResult.data = null;
+                    return objJsonResult;
+                }
+                var THqty = 0.0;
+                ds = oCN.RunProcReturn($@"
+                                    select sum(b.HQty) HQty,c.HNumber,b.HSourceBillNo
+                                    from JIT_CallGoodsBackRequestBillMain a
+                                    inner join JIT_CallGoodsBackRequestBillSub b on a.HInterID=b.HInterID
+                                    left join Gy_Material c on b.HMaterID=c.HItemID
+                                    where c.HNumber='{listCa.鐗╂枡浠g爜}' and b.HSourceBillNo='{listCa.HSourceBillNo}'
+                                    group by c.HNumber,b.HSourceBillNo
+                                  ", "JIT_CallGoodsBackRequestBillMain");
+
+                if (ds.Tables[0].Rows.Count > 0)
+                {
+                    THqty = double.Parse(ds.Tables[0].Rows[0]["HQty"].ToString());
+                }
+
+                if ((listCa.閫�鏂欐暟閲� + THqty) > listCa.宸查厤閫佹暟閲�)
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "绱閫�鏂欐暟閲忓ぇ浜庡凡閰嶉�佹暟閲�!";
+                    objJsonResult.data = null;
+                    return objJsonResult;
+                }
+
+                Int64 lngBillKey = listCa.HSouceInterID == 0 ? 0 : listCa.HSouceInterID;
+                Int64 lngBillKeyEntry = listCa.HSourceEntryID == 0 ? 0 : listCa.HSourceEntryID;
+                double HQty = (double)(listCa.閫�鏂欐暟閲� == 0 ? 0 : listCa.閫�鏂欐暟閲�);
+                long HDeptWHID = int.Parse(listCa.璋冨叆浠撳簱id.ToString()) == 0 ? 0 : int.Parse(listCa.璋冨叆浠撳簱id.ToString());
+                string HTuiResult = listCa.閫�鏂欏師鍥� == "" ? "" : listCa.閫�鏂欏師鍥�;
+                var HBillNo = DBUtility.ClsPub.CreateBillCode_Prod("6666", ref DBUtility.ClsPub.sExeReturnInfo, true);//鑾峰緱涓�涓柊鐨勫崟鎹彿
+                var HBillInterID = DBUtility.ClsPub.CreateBillID_Prod("6666", ref DBUtility.ClsPub.sExeReturnInfo);
 
                 oCN.BeginTran();
                 //鎻掑叆瀛愯〃
@@ -443,15 +577,19 @@
                         " HItemMainID, HSendManID, HWareManID, HStockOutOrgID, HStockInOrgID, HBackType)" +
                        $"values({DateTime.Now.Year},{DateTime.Now.Month},{HBillInterID},'{HBillType}',1," +
                        $" '{HBillType}','{DateTime.Now}','{HBillNo}',{HOrgID},'{ DBUtility.ClsPub.CurUserName}','{DateTime.Now}','','',0,0,0,''," +
-                       $" 0, 0, 0, {HOrgID}, 0,'{HBackType}')");
+                       $" 0, 0, {listCa.HOutOrgID}, {HOrgID}, 0,'{HBackType}')");
                  
-                sReturn = "鏂板鍗曟嵁鎴愬姛锛�";
                 oCN.Commit();
-                return true;
+
+                objJsonResult.code = "1";
+                objJsonResult.Message = "鏂板鍗曟嵁鎴愬姛锛�";
+                return objJsonResult;
             }
             catch (Exception e)
             {
-                sReturn = e.Message;
+                objJsonResult.code = "0";
+                objJsonResult.Message = e.Message; ;
+                return objJsonResult;
                 throw (e);
             }
         }
@@ -465,12 +603,12 @@
             var _value = msg["msg"].ToString();
             string[] sArray = _value.Split(new string[] { ";" }, StringSplitOptions.RemoveEmptyEntries);
             string msg2 = sArray[0].ToString();
-            string user = sArray[1].ToString();
+            DBUtility.ClsPub.CurUserName = sArray[1].ToString();
             string HOrgID = sArray[2].ToString();
 
             try
             {
-                if (!DBUtility.ClsPub.Security_Log("JIT_YL_ComplementGoods_Edit", 1, false, user))
+                if (!DBUtility.ClsPub.Security_Log("JIT_YL_ComplementGoods_Edit", 1, false, DBUtility.ClsPub.CurUserName))
                 {
                     objJsonResult.code = "0";
                     objJsonResult.count = 0;
@@ -484,15 +622,23 @@
                 List<CallGoodsBill> listCa = new List<CallGoodsBill>();
                 //鑾峰彇琛ㄦ牸鏁版嵁闆嗗悎
                 listCa = JsonConvert.DeserializeObject<List<CallGoodsBill>>(msg2.ToString());
-                bool flag = false;
+                json flag = new json();
 
                 int j = 0;
                 for (int i = 0; i < listCa.Count; i++)
                 {
                     if (listCa[i].閫�鏂欐暟閲� > 0)
                     {
-                        flag = AddICStockTuiBill(listCa[i], "666602", " 浣欓噺閫�鏂�", HOrgID, ref DBUtility.ClsPub.sExeReturnInfo);
+                        flag =(json)AddICStockTuiBill(listCa[i], "666602", " 浣欓噺閫�鏂�", HOrgID);
                         j = 1;
+                        if (flag.code == "0")
+                        {
+                            objJsonResult.code = "0";
+                            objJsonResult.count = 0;
+                            objJsonResult.Message = objJsonResult.Message;
+                            objJsonResult.data = null;
+                            return objJsonResult;
+                        }
                     }
                 }
                 if (j == 0)
@@ -504,23 +650,11 @@
                     return objJsonResult;
                 }
 
-                if (flag)
-                {
-                    objJsonResult.code = "1";
-                    objJsonResult.count = 1;
-                    objJsonResult.Message = "浣欓噺閫�鏂欐垚鍔�!";
-                    objJsonResult.data = null;
-                    return objJsonResult;
-                }
-                else
-                {
-                    objJsonResult.code = "0";
-                    objJsonResult.count = 0;
-                    objJsonResult.Message = "浣欓噺閫�鏂欏け璐�!";
-                    objJsonResult.data = null;
-                    return objJsonResult;
-                }
-             
+                objJsonResult.code = "1";
+                objJsonResult.count = 1;
+                objJsonResult.Message = "浣欓噺閫�鏂欐垚鍔�!";
+                objJsonResult.data = null;
+                return objJsonResult;
             }
             catch (Exception e)
             {
@@ -541,12 +675,12 @@
             var _value = msg["msg"].ToString();
             string[] sArray = _value.Split(new string[] { ";" }, StringSplitOptions.RemoveEmptyEntries);
             string msg2 = sArray[0].ToString();
-            string user = sArray[1].ToString();
+            DBUtility.ClsPub.CurUserName = sArray[1].ToString();
             string HOrgID = sArray[2].ToString();
 
             try
             {
-                if (!DBUtility.ClsPub.Security_Log("JIT_BF_ComplementGoods_Edit", 1, false, user))
+                if (!DBUtility.ClsPub.Security_Log("JIT_BF_ComplementGoods_Edit", 1, false, DBUtility.ClsPub.CurUserName))
                 {
                     objJsonResult.code = "0";
                     objJsonResult.count = 0;
@@ -561,14 +695,22 @@
                 //鑾峰彇琛ㄦ牸鏁版嵁闆嗗悎
                 listCa = JsonConvert.DeserializeObject<List<CallGoodsBill>>(msg2.ToString());
 
-                bool flag = false;
+                json flag = new json();
                 int j = 0;
                 for (int i = 0; i < listCa.Count; i++)
                 {
                     if (listCa[i].閫�鏂欐暟閲� > 0)
                     {
-                        flag = AddICStockTuiBill(listCa[i], "666603", "鎶ュ簾閫�鏂�", HOrgID, ref DBUtility.ClsPub.sExeReturnInfo);
+                        flag =(json) AddICStockTuiBill(listCa[i], "666603", "鎶ュ簾閫�鏂�", HOrgID);
                         j = 1;
+                        if (flag.code == "0")
+                        {
+                            objJsonResult.code = "0";
+                            objJsonResult.count = 0;
+                            objJsonResult.Message = objJsonResult.Message;
+                            objJsonResult.data = null;
+                            return objJsonResult;
+                        }
                     }
                 }
                 if (j == 0)
@@ -580,22 +722,11 @@
                     return objJsonResult;
                 }
 
-                if (flag)
-                {
-                    objJsonResult.code = "1";
-                    objJsonResult.count = 1;
-                    objJsonResult.Message = "鎶ュ簾閫�鏂欐垚鍔�!";
-                    objJsonResult.data = null;
-                    return objJsonResult;
-                }
-                else
-                {
-                    objJsonResult.code = "0";
-                    objJsonResult.count = 0;
-                    objJsonResult.Message = "鎶ュ簾閫�鏂欏け璐�!";
-                    objJsonResult.data = null;
-                    return objJsonResult;
-                }
+                objJsonResult.code = "1";
+                objJsonResult.count = 1;
+                objJsonResult.Message = "鎶ュ簾閫�鏂欐垚鍔�!";
+                objJsonResult.data = null;
+                return objJsonResult;
             }
             catch (Exception e)
             {
@@ -608,7 +739,7 @@
         }
         #endregion
 
-        #region 鐢熶骇鍙枡骞冲彴  鍙枡鎷f枡淇℃伅鏌ヨ
+        #region 鐢熶骇鍙枡骞冲彴  鍙枡鎷f枡淇℃伅鏌ヨ  涓婃煡/涓嬫煡
         //鏌ヨ鏉′欢
         public class HlpBill
         {
@@ -642,6 +773,11 @@
                 {
                     //鎷f枡閰嶉�� 涓嬫煡
                     ds = oCN.RunProcReturn($"exec h_p_JIT_ComplementGoodsBillList_DownQuery '{com.HSouceInterID}',{com.HSourceEntryID}", "h_p_JIT_ComplementGoodsBillList_DownQuery");
+                }
+                else if (com.Type == 3772)
+                {
+                    //鐢熶骇璁㈠崟 涓嬫煡 宸ュ簭娴佽浆鍗� 
+                    ds = oCN.RunProcReturn($"select * from h_v_Sc_ProcessExchangeBillQuery where HICMOInterID='{com.HSouceInterID}' and HICMOEntryID={com.HSourceEntryID} and HBillSubType<>'SUB'", "h_v_Sc_ProcessExchangeBillQuery");
                 }
 
                 //娣诲姞鍒楀悕
@@ -777,7 +913,7 @@
                 msg2 = msg2.Replace("\\", "");
                 msg2 = msg2.Replace("\n", "");
 
-                ds = oCN.RunProcReturn("select * from JIT_CallGoodsBackBillMain ", "JIT_CallGoodsBackBillMain ");
+                ds = oCN.RunProcReturn("select * from JIT_CallGoodsBackRequestBillMain where HISCheck=0 ", "JIT_CallGoodsBackRequestBillMain ");
 
                 if (ds.Tables[0].Rows.Count > 0)
                 {
@@ -815,5 +951,317 @@
         }
         #endregion
 
+        #region 鐢熶骇鍙枡骞冲彴  浠撳簱搴撳瓨鍒楄〃
+
+        [Route("Sc_ComplementGoodBill/GetWarehouseList_JIT")]
+        [HttpGet]
+        public object GetWarehouseList_JIT(string sWhere)
+        {
+            try
+            {
+                ds = oCN.RunProcReturn("select * from h_v_JIT_WarehouseList where 1=1 "+ sWhere, "h_v_JIT_WarehouseList"); 
+
+                objJsonResult.code = "1";
+                objJsonResult.count = 1;
+                objJsonResult.Message = "Sucess锛�";
+                objJsonResult.data = ds.Tables[0];
+                return objJsonResult;
+            }
+            catch (Exception e)
+            {
+                objJsonResult.code = "0";
+                objJsonResult.count = 0;
+                objJsonResult.Message = "Exception锛�" + e.ToString();
+                objJsonResult.data = null;
+                return objJsonResult;
+            }
+        }
+        #endregion
+
+        #region 鐢熶骇鍙枡骞冲彴  鏈敓鎴愭嫞鏂欑敵璇峰崟  鏈敓鎴愰��鏂欏崟
+        [Route("Sc_ComplementGoodBill/NotGeneratedMaterialList")]
+        [HttpGet]
+        public object NotGeneratedMaterialList(string sWhere, string user)
+        {
+            try
+            {
+                //鏌ヨ鍙枡鍗� 鏈敓鎴� 鎷f枡鍗� 鐨勬潯鏁�
+                //鏌ヨ閫�鏂欑敵璇峰崟  鏈敓鎴� 閫�鏂欏崟鐨� 鏉℃暟
+                ds = oCN.RunProcReturn($@"select count(*) 鏈敓鎴�	from JIT_CallGoodsBackRequestBillMain as a
+                                        inner join JIT_CallGoodsBackRequestBillSub as b on a.HInterID=b.HInterID
+                                         where  a.HISCheck =0   and a.HOrgID={sWhere} 
+                                        and a.HMaker = '{user}'
+	                                        union all
+                                        select count(*) 鏈敓鎴�  from JIT_CallGoodsBillMain a
+                                        join JIT_CallGoodsBillSub b on a.HInterID=b.HInterID
+                                         where b.HPSQty=0  and a.HOrgID={sWhere} 
+                                        and a.HMaker = '{user}'", "JIT_CallGoodsBackRequestBillMain");
+
+                objJsonResult.code = "1";
+                objJsonResult.count = 1;
+                objJsonResult.Message = "Sucess锛�";
+                objJsonResult.data = ds.Tables[0];
+                return objJsonResult;
+            }
+            catch (Exception e)
+            {
+                objJsonResult.code = "0";
+                objJsonResult.count = 0;
+                objJsonResult.Message = "Exception锛�" + e.ToString();
+                objJsonResult.data = null;
+                return objJsonResult;
+            }
+        }
+        #endregion
+
+        #region 鐢熶骇鍙枡骞冲彴  閰嶅鍙枡鏌ヨ
+
+        [Route("Sc_ComplementGoodBill/JIT_ComplementGoodPT")]
+        [HttpGet]
+        public object JIT_ComplementGoodPT(string sWhere,string user)
+        {
+            try
+            {
+                ds = oCN.RunProcReturn("exec h_p_JIT_ComplementGoodPT " + sWhere, "h_p_JIT_ComplementGoodPT");
+
+                objJsonResult.code = "1";
+                objJsonResult.count = 1;
+                objJsonResult.Message = "Sucess锛�";
+                objJsonResult.data = ds.Tables[0];
+                return objJsonResult;
+            }
+            catch (Exception e)
+            {
+                objJsonResult.code = "0";
+                objJsonResult.count = 0;
+                objJsonResult.Message = "Exception锛�" + e.ToString();
+                objJsonResult.data = null;
+                return objJsonResult;
+            }
+        }
+        #endregion
+
+        #region 鐢熶骇鍙枡骞冲彴  閰嶅鍙枡鏂板
+        [Route("Sc_ComplementGoodBill/InsertCallGoodsBill_PTJL")]
+        [HttpPost]
+        public object InsertCallGoodsBill_PTJL([FromBody] JObject msg)
+        {
+            var _value = msg["msg"].ToString();
+            string[] sArray = _value.Split(new string[] { ";" }, StringSplitOptions.RemoveEmptyEntries);
+            string msg2 = sArray[0].ToString();
+            string user = sArray[1].ToString();
+            omodel.HPRDORGID = long.Parse(sArray[2].ToString());
+
+            try
+            {
+                if (!DBUtility.ClsPub.Security_Log("Cj_CallGoodsBill_Edit", 1, false, user))
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "鏃犱繚瀛樻潈闄�";
+                    objJsonResult.data = null;
+                    return objJsonResult;
+                }
+                msg2 = msg2.Replace("\\", "");
+                msg2 = msg2.Replace("\n", "");
+
+                List<CallGoodsBill> listCa = new List<CallGoodsBill>();
+                //鑾峰彇琛ㄦ牸鏁版嵁闆嗗悎
+                listCa = JsonConvert.DeserializeObject<List<CallGoodsBill>>(msg2.ToString());
+
+                var flag = false;
+                var txt = "";
+
+                for (int i = 0; i < listCa.Count; i++)
+                {
+                    if (listCa[i].閰嶅鏁伴噺 <= 0)
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = $"绗瑊i + 1}琛岄厤濂楁暟閲忓皬浜�0锛屾棤娉曞彨鏂�!";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+
+                    ds = oCN.RunProcReturn("select * from h_v_JIT_WarehouseList where 浠撳簱ID=" + listCa[i].璋冨嚭浠撳簱id + "  and  鐗╂枡缂栫爜 = '" + listCa[i].鐗╂枡浠g爜 + "' and 搴撳瓨缁勭粐=" + listCa[i].HOutOrgID, "h_v_JIT_WarehouseList");
+
+                    var HSCWHIDCount = double.Parse(ds.Tables[0].Rows[0]["璋冨嚭浠撳簱鍙敤搴撳瓨鏁伴噺"].ToString());
+
+                    if (HSCWHIDCount == 0)
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = $"绗瑊i + 1}琛屽簱瀛樻暟閲忎负0,鏃犳硶鍙枡!";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+
+                    if (listCa[i].閰嶅鏁伴噺 > HSCWHIDCount)
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = $"绗瑊i+1}琛屽簱瀛樻暟閲忓皬浜庡彨鏂欐暟閲�,鏃犳硶鍙枡!";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+
+                    if (listCa[i].璋冨叆浠撳簱id == 0)
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = $"绗瑊i + 1}琛岃閫夋嫨璋冨叆浠撳簱!";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+
+                    if (listCa[i].璋冨嚭浠撳簱id == 0)
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = $"绗瑊i + 1}琛岃閫夋嫨璋冨嚭浠撳簱!";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+
+                    if (listCa[i].璋冨嚭浠撳簱id == listCa[i].璋冨叆浠撳簱id)
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = $"绗瑊i + 1}琛岃皟鍑轰粨搴撳拰璋冨叆浠撳簱涓嶈兘涓�鏍�!";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+
+                    var Hqty = 0.0;
+                    var TuiHqty = 0.0;
+                    //褰撳墠鍗曟嵁宸插彨鏂� 鍜� 宸查��鏂欐暟閲�
+                    ds = oCN.RunProcReturn($@"
+                                               select isnull(a.HQty,0) 宸插彨鏂欐暟閲�,isnull(b.HQty,0) 宸查��鏂欑敵璇锋暟閲� from (
+                                                select sum(b.HQty) HQty,c.HNumber ,b.HSourceBillNo
+                                                from JIT_CallGoodsBillMain a
+                                                join JIT_CallGoodsBillSub b on a.HInterID=b.HInterID
+                                                left join Gy_Material c on b.HMaterID=c.HItemID
+                                                where b.HSourceBillNo='{listCa[i].HSourceBillNo}'
+                                                group by c.HNumber,b.HSourceBillNo
+                                                ) a
+                                                left join (
+                                                select sum(b.HQty) HQty,c.HNumber,b.HSourceBillNo
+                                                from JIT_CallGoodsBackRequestBillMain a
+                                                inner join JIT_CallGoodsBackRequestBillSub b on a.HInterID=b.HInterID
+                                                left join Gy_Material c on b.HMaterID=c.HItemID
+                                                where b.HSourceBillNo='{listCa[i].HSourceBillNo}'
+                                                group by c.HNumber,b.HSourceBillNo
+                                                ) b  on a.HNumber=b.HNumber and a.HSourceBillNo=b.HSourceBillNo where a.HNumber='{listCa[i].鐗╂枡浠g爜}'", "JIT_CallGoodsBillMain");
+
+                    if (ds.Tables[0].Rows.Count > 0)
+                    {
+                        Hqty = double.Parse(ds.Tables[0].Rows[0]["宸插彨鏂欐暟閲�"].ToString());
+                        TuiHqty = double.Parse(ds.Tables[0].Rows[0]["宸查��鏂欑敵璇锋暟閲�"].ToString());
+                    }
+
+                    if (listCa[i].閰嶅鏁伴噺 > listCa[i].璁″垝鍙戞枡鏁伴噺)
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = $"绗瑊i + 1}琛屽彨鏂欐暟閲忓ぇ浜庤鍒掑彂鏂欐暟閲�!";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+
+                    if ((listCa[i].閰嶅鏁伴噺 + Hqty - TuiHqty) > listCa[i].璁″垝鍙戞枡鏁伴噺)
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = $"绗瑊i + 1}琛屽彨鏂欐�绘暟閲忓ぇ浜庤鍒掑彂鏂欐暟閲�!";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+
+
+                    var txtHBillNo = DBUtility.ClsPub.CreateBillCode_Prod(CallGoodsBill.ModName, ref DBUtility.ClsPub.sExeReturnInfo, true);//鑾峰緱涓�涓柊鐨勫崟鎹彿
+                        omodel.HInterID = DBUtility.ClsPub.CreateBillID_Prod(CallGoodsBill.ModName, ref DBUtility.ClsPub.sExeReturnInfo);
+                        omodel.HYear = DateTime.Now.Year;
+                        omodel.HPeriod = DateTime.Now.Month;
+                        //鍥哄畾璧嬪��=================================
+                        omodel.HBillNo = txtHBillNo.Trim();  //鍦ㄨ祴鍊肩被鍓嶅氨澶勭悊濂藉瓧绗︿覆鍜屾暟瀛�
+                        omodel.HDate = DateTime.Now;
+                        omodel.HMaker = user;
+                        omodel.HMakeDate = DateTime.Today.ToString();
+                        omodel.HUpDater = "";
+                        omodel.HUpDateDate = "";
+                        omodel.HCloseType = false;
+                        //鏄庣粏绫昏祴鍊�
+
+                        //鍥哄畾璧嬪��========================================
+                        oSub.HEntryID = i + 1;
+                        oSub.HSourceInterID = listCa[i].HSouceInterID;
+                        oSub.HSourceEntryID = listCa[i].HSourceEntryID;
+                        oSub.HSourceBillType = "88";
+                        oSub.HSourceBillNo = listCa[i].HSourceBillNo;
+                        oSub.HQty = double.Parse(listCa[i].閰嶅鏁伴噺.ToString());
+
+                        oSub.HMaterID = listCa[i].HMaterialID;
+                        oSub.HMaterNumber = listCa[i].HMaterialNumberCol;
+                        oSub.HModel = listCa[i].HMaterialModelCol;
+                        oSub.HWHID = int.Parse(listCa[i].璋冨叆浠撳簱id.ToString());
+                        oSub.HSCWHID = int.Parse(listCa[i].璋冨嚭浠撳簱id.ToString());
+                        oSub.HProcName = listCa[i].HProcNameCol;
+                        oSub.HProcID = listCa[i].HProcID;
+                        oSub.HOutOrgID = listCa[i].HOutOrgID;
+                        oSub.HICMOBillNo = listCa[i].HICMOBillNo;
+                        oSub.HICMOInterID = listCa[i].HICMOInterID;
+                        oSub.HICMOEntryID = listCa[i].HICMOEntryID;
+                        oSub.HDeptID = listCa[i].HDeptID;
+                        oSub.HPlanQty = listCa[i].璁″垝鍙戞枡鏁伴噺;
+                        oSub.HSeOrderNo = listCa[i].閿�鍞鍗曞彿;
+                        oSub.HBPlanDate = listCa[i].璁″垝寮�宸ユ棩鏈�;
+
+
+                    flag = AddBill(ref DBUtility.ClsPub.sExeReturnInfo);
+
+                        if (flag == false)
+                        {
+                            txt = txt + DBUtility.ClsPub.isStrNull(i + 1) + "銆�";
+                        }
+               
+                }
+                if (txt != "")
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = $"绗瑊txt}琛屽彨鏂欏け璐ワ紝閲嶆柊鍙枡";
+                    objJsonResult.data = null;
+                    return objJsonResult;
+                }
+                else
+                {
+                    if (flag == true)
+                    {
+                        objJsonResult.code = "1";
+                        objJsonResult.count = 1;
+                        objJsonResult.Message = "鍙枡鎴愬姛!";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                }
+
+                objJsonResult.code = "1";
+                objJsonResult.count = 1;
+                objJsonResult.Message = null;
+                objJsonResult.data = null;
+                return objJsonResult;
+            }
+            catch (Exception e)
+            {
+                objJsonResult.code = "0";
+                objJsonResult.count = 0;
+                objJsonResult.Message = "Exception锛�" + e.ToString();
+                objJsonResult.data = null;
+                return objJsonResult;
+            }
+        }
+
+ 
+        #endregion
     }
 }
\ No newline at end of file

--
Gitblit v1.9.1