From 375c9228e54333ec573a4f59c1b2d1f9fb7293bd Mon Sep 17 00:00:00 2001
From: zrg <z1873@LAPTOP-EAVL132E>
Date: 星期一, 20 十月 2025 08:33:42 +0800
Subject: [PATCH] 1

---
 WebAPI/Controllers/CGGL/Kf_POStockInBillController.cs |  202 ++++++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 185 insertions(+), 17 deletions(-)

diff --git a/WebAPI/Controllers/CGGL/Kf_POStockInBillController.cs b/WebAPI/Controllers/CGGL/Kf_POStockInBillController.cs
index 30b3ee1..ba1fba1 100644
--- a/WebAPI/Controllers/CGGL/Kf_POStockInBillController.cs
+++ b/WebAPI/Controllers/CGGL/Kf_POStockInBillController.cs
@@ -30,7 +30,7 @@
         public object sql { get; private set; }
         public object oCn { get; private set; }
 
-        
+
         /// <summary>
         /// --杩斿洖鏀舵枡閫氱煡鍗曞垪琛�
         /// 澶栬喘鍏ュ簱鍗� 1201
@@ -52,7 +52,7 @@
                 else
                 {
                     string sql1 = "select * from h_v_Kf_POStockInBillList where 1 = 1 ";
-                    string sql = sql1 + sWhere+ " order by hmainid desc";
+                    string sql = sql1 + sWhere + " order by hmainid desc";
                     ds = oCN.RunProcReturn(sql, "h_v_Kf_POStockInBillList");
                 }
                 foreach (DataColumn col in ds.Tables[0].Columns)//閬嶅巻ds涓涓�涓〃锛圱ables[0]锛夌殑鎵�鏈夊垪锛圕olumns锛夋瘡娆″惊鐜腑锛宑ol鍙橀噺浼氭寔鏈夊綋鍓嶅垪鐨勫紩鐢�
@@ -222,7 +222,7 @@
 
 
 
-       
+
                 string HInvoiceBillNo = mainList[0].HInvoiceBillNo;//鍙戠エ缂栧彿 
                 string HExplanation = mainList[0].HExplanation;//鎽樿
                 string HInnerBillNo = mainList[0].HInnerBillNo;//鍐呴儴鍗曟嵁鍙� 
@@ -277,15 +277,15 @@
                     }
                     //=========================================================
                     //涓昏〃
-                    String sql =$@"Insert Into Kf_ICStockBillMain 
+                    String sql = $@"Insert Into Kf_ICStockBillMain 
                         (HInterID,HYear,HPeriod,HBillType,HBillSubType,HDate,HBillNo,HBillStatus
 	                    ,HAddress,HSupID,HCurID,HWHID,HEmpID,HManagerID,HSecManagerID,HKeeperID,HDeptID,HExplanation,HRemark
                         ,HInnerBillNo,HSTOCKORGID,HOWNERID,HMaker,HMakeDate,HProjectID,HInvoiceBillNo)
                         values(" + HInterID + "," + DateTime.Now.Year + "," + DateTime.Now.Month + ",'" + 1201 + "','" +
                     HBillSubType + "','" + HDate + "','" + HBillNo + "','" + HBillStatus + "','" + HAddress +
-                    "'," + HSupID + "," + HCurID + "," + HWHID + "," + HEmpID + "," + HManagerID + "," + 
-                    HSecManagerID + ","+ HKeeperID +"," + HDeptID + ",'" + HExplanation + "','" + HRemark
-                    + "','" + HInnerBillNo + "'," + HSTOCKORGID + "," + HOWNERID + ",'" + HMaker + "',getdate(),"+ HProjectID + ",'"+ HInvoiceBillNo + "')";
+                    "'," + HSupID + "," + HCurID + "," + HWHID + "," + HEmpID + "," + HManagerID + "," +
+                    HSecManagerID + "," + HKeeperID + "," + HDeptID + ",'" + HExplanation + "','" + HRemark
+                    + "','" + HInnerBillNo + "'," + HSTOCKORGID + "," + HOWNERID + ",'" + HMaker + "',getdate()," + HProjectID + ",'" + HInvoiceBillNo + "')";
 
                     oCN.RunProc(sql);
                 }
@@ -293,7 +293,7 @@
                 { //淇敼
 
                     DataSet dss;
-                    dss = oCN.RunProcReturn("select * from h_v_Kf_POStockInBillList where hmainid=" + HInterID , "h_v_Kf_POStockInBillList");
+                    dss = oCN.RunProcReturn("select * from h_v_Kf_POStockInBillList where hmainid=" + HInterID, "h_v_Kf_POStockInBillList");
                     //鍒ゆ柇鏄惁鍙紪杈�
                     if (dss.Tables[0].Rows[0]["瀹℃牳浜�"].ToString() != "" && dss.Tables[0].Rows[0]["瀹℃牳浜�"] != null)
                     {
@@ -316,7 +316,7 @@
                                 "HRemark='" + HRemark + "', HUpDater='" + HMaker + "', HUpDateDate=getdate()" + ",HBillNo='" + HBillNo + "'" +
                                  ",HSupID=" + HSupID + ",HCurID=" + HCurID + ",HSecManagerID=" + HSecManagerID + ", HSTOCKORGID=" + HSTOCKORGID + ",HKeeperID=" + HKeeperID + ",HWHID = " + HWHID
                                  + ",HEmpID=" + HEmpID + ",HManagerID=" + HManagerID + ",HDeptID=" + HDeptID + ",HOWNERID=" + HOWNERID
-                                 + ",HAddress='" + HAddress + "',HInnerBillNo='" + HInnerBillNo + "',HProjectID="+ HProjectID + ",HInvoiceBillNo='"+ HInvoiceBillNo + "' where HInterID=" + HInterID;
+                                 + ",HAddress='" + HAddress + "',HInnerBillNo='" + HInnerBillNo + "',HProjectID=" + HProjectID + ",HInvoiceBillNo='" + HInvoiceBillNo + "' where HInterID=" + HInterID;
 
                     oCN.RunProc(sql);
 
@@ -388,7 +388,7 @@
             }
         }
 
-        public json AddBillSub(string msg3, long HInterID, int OperationType,string user)
+        public json AddBillSub(string msg3, long HInterID, int OperationType, string user)
         {
             List<ClsKf_ICStockBillSub> DetailColl = Newtonsoft.Json.JsonConvert.DeserializeObject<List<ClsKf_ICStockBillSub>>(msg3);
 
@@ -658,7 +658,7 @@
                 return objJsonResult;
             }
         }
-#endregion
+        #endregion
 
         #region 鏍规嵁鐗╂枡鍐呯爜鑾峰彇鐗╂枡淇℃伅
         [Route("Kf_POStockInBill/getMaterialByMaterID")]
@@ -728,7 +728,7 @@
                     {
                         objJsonResult.code = "0";
                         objJsonResult.count = 0;
-                        objJsonResult.Message = "鍗曟嵁宸插叧闂�!涓嶈兘鍐嶆瀹℃牳锛�";
+                        objJsonResult.Message = "鍗曟嵁宸插叧闂�!";
                         objJsonResult.data = null;
                         return objJsonResult;
                     }
@@ -736,7 +736,7 @@
                     {
                         objJsonResult.code = "0";
                         objJsonResult.count = 0;
-                        objJsonResult.Message = "鍗曟嵁宸蹭綔搴�!涓嶈兘鍐嶆瀹℃牳锛�";
+                        objJsonResult.Message = "鍗曟嵁宸蹭綔搴�!";
                         objJsonResult.data = null;
                         return objJsonResult;
                     }
@@ -808,7 +808,7 @@
                         return objJsonResult;
                     }
                     //==================================================================================                        
-                    
+
                     //瀹℃牳鎻愪氦
                     if (oBill.CheckBill(oBill.omodel.HInterID, oBill.omodel.HBillNo, "h_p_Kf_POStockInBill_AfterCheckCtrl", CurUserName, ref DBUtility.ClsPub.sExeReturnInfo) == true)
                     {
@@ -848,7 +848,7 @@
                         return objJsonResult;
                     }
                     //=========================================================                   
-                 
+
                     //鍙嶅鏍告彁浜bandonCheck
                     if (oBill.AbandonCheck(oBill.omodel.HInterID, oBill.omodel.HBillNo, "h_p_Kf_POStockInBill_AfterUnCheckCtrl", CurUserName, ref DBUtility.ClsPub.sExeReturnInfo) == true)
                     {
@@ -1488,7 +1488,7 @@
         #region 閲囪喘鍏ュ簱 鍙戣捣瀹℃壒
         [Route("Kf_POStockInBill/StartCheckFlow_POOrderBill")]
         [HttpGet]
-        public object StartCheckFlow_POOrderBill(int HInterID,string CurUserName)
+        public object StartCheckFlow_POOrderBill(int HInterID, string CurUserName)
         {
             DBUtility.ClsPub.CurUserName = CurUserName;
             try
@@ -1519,7 +1519,7 @@
                 DAL.ClsKf_POStockInBill oBill = new DAL.ClsKf_POStockInBill();                              //瀹炰緥鍖栧崟鎹搷浣滅被锛岀敤浜庤繘琛岀浉鍏虫搷浣�
 
                 //鍙戣捣瀹℃壒
-                if (oBill.startCheckFlow(lngBillKey,ref DBUtility.ClsPub.sExeReturnInfo) == true)
+                if (oBill.startCheckFlow(lngBillKey, ref DBUtility.ClsPub.sExeReturnInfo) == true)
                 {
                     objJsonResult.code = "1";
                     objJsonResult.count = 1;
@@ -2095,5 +2095,173 @@
         }
         #endregion
 
+
+        #region 閲囪喘鍏ュ簱鍗� 瀹℃牳鍚屾 璋冪敤API
+        [Route("Kf_POStockInBill/Kf_POStockInBillSaveApi")]
+        [HttpPost]
+        public object Kf_POStockInBillSaveApi([FromBody] JObject sMainSub)
+        {
+            try
+            {
+                oCN.BeginTran();
+                LogService.Write("閲囪喘鍏ュ簱鍗曞悓姝�,淇濆瓨鏂规硶鎵ц锛�" + sMainSub.ToString());
+
+                sMainSub["model"]["hredblueflag"] = string.Equals(sMainSub["model"]["hredblueflag"].ToString(), "0") ? false : true;
+                var model = sMainSub["model"].ToString();
+                var entry = sMainSub["model"]["HENTRY"].ToString();
+
+                model = "[" + model.ToString() + "]";
+                List<ClsKf_ICStockBillMain> mainList = Newtonsoft.Json.JsonConvert.DeserializeObject<List<ClsKf_ICStockBillMain>>(model);
+                List<ClsKf_ICStockBillSub> subList = Newtonsoft.Json.JsonConvert.DeserializeObject<List<ClsKf_ICStockBillSub>>(entry);
+
+                // 鍒ゆ柇 鏁版嵁搴撲腑鏄惁瀛樺湪id鍜屽崟鎹彿鐩哥瓑鐨勫崟鎹紝瀛樺湪锛屽垯閲嶅缓锛屽彧鏈塱d鍙风浉绛夛紝鍒欑敵璇锋柊鐨刬d鍙�
+                // var ds1 = oCN.RunProcReturn($@"
+                // select hmainid HInterID, 鍗曟嵁鍙� HBillNO from h_v_Kf_POStockInBillList where hmainid = {mainList[0].HInterID}
+                // ", "h_v_Kf_POStockInBillList");
+                // var HInterID_Old = mainList[0].HInterID;
+                // if (ds1.Tables[0].Rows.Count > 0 && ds1.Tables[0].Rows[0]["HInterID"] != null)
+                // {
+                //     if (string.Equals(ds1.Tables[0].Rows[0]["HBillNo"].ToString(), mainList[0].HBillNo, StringComparison.OrdinalIgnoreCase))
+                //     {
+                //         string sql = string.Empty;
+                //         sql = $"delete Kf_ICStockBillMain where HinterID = {mainList[0].HInterID}";
+                //         oCN.RunProc(sql);
+                //         sql = $"delete Kf_ICStockBillSub where HinterID = {mainList[0].HInterID}";
+                //         oCN.RunProc(sql);
+                //     }
+                //     else
+                //     {
+                //         // 閲嶆柊鐢宠HInterID
+                //         var HInterID_Exch = DBUtility.ClsPub.CreateBillID("1201", ref DBUtility.ClsPub.sExeReturnInfo);
+                //         mainList[0].HInterID = HInterID_Exch;
+                // 
+                //         foreach (var oSub in subList)
+                //         {
+                //             oSub.HInterID = HInterID_Exch;
+                //         }
+                // 
+                //     }
+                // }
+
+                string sql = string.Empty;
+                sql = $"delete Kf_ICStockBillMain where HinterID = {mainList[0].HInterID}";
+                oCN.RunProc(sql);
+                sql = $"delete Kf_ICStockBillSub where HinterID = {mainList[0].HInterID}";
+                oCN.RunProc(sql);
+                // 涓昏〃鎻掑叆
+                oCN.RunProc($@"Insert Into Kf_ICStockBillMain 
+                (
+                    HInterID, HYear, HPeriod, HBillNo, HBillType, HBillSubType, HMainSourceBillType, HDate,
+                    HSupID, HWHID, HSCWHID, HEmpID, HManagerID, HSecManagerID, HKeeperID, HDeptID, HCurID,
+                    HSeOrderBillNo, HExplanation, HRemark, HInnerBillNo, HRedBlueFlag, HBillStatus,
+                    HMaker, HMakeDate, HChecker, HCheckDate,
+                    HUpDater, HUpDateDate, HDeleteMan, HDeleteDate,
+                    HOWNERID, HOWNERTYPEID, HERPInterID, HERPBillType, HERPBillNo,
+                    HPRDORGID, HSTOCKORGID, HSTOCKERGROUPID, HPURCHASERGROUPID, HDEMANDORGID, HCORRESPONDORGID,
+                    HPROVIDERCONTACTID, HSUPPLYID, HSETTLEID, HCHARGEID, HPURCHASEDEPTID, HBUSINESSTYPE,
+                    HSUPPLYADDRESS, HPAYORGID, HSETTLEORGID, HSETTLETYPEID, HPAYCONDITIONID, HSETTLECURRID,
+                    HEXCHANGETYPEID, HDISCOUNTLISTID, HEXCHANGERATE, HPRICETIMEPOINT, HLOCALCURRID, HISINCLUDEDTAX,
+                    HISPRICEEXCLUDETAX
+                )
+                values(
+                    '{mainList[0].HInterID}','{mainList[0].HYear}','{mainList[0].HPeriod}','{mainList[0].HBillNo}',                   
+                    '{mainList[0].HBillType}','{mainList[0].HBillSubType}','{mainList[0].HMainSourceBillType}','{mainList[0].HDate}',                     
+                    '{mainList[0].HSupID}','{mainList[0].HWHID}','{mainList[0].HSCWHID}','{mainList[0].HEmpID}','{mainList[0].HManagerID}',                
+                    '{mainList[0].HSecManagerID}','{mainList[0].HKeeperID}','{mainList[0].HDeptID}','{mainList[0].HCurID}',                    
+                    '{mainList[0].HSeOrderBillNo}','{mainList[0].HExplanation}','{mainList[0].HRemark}','{mainList[0].HInnerBillNo}',              
+                    '{mainList[0].HRedBlueFlag}',{mainList[0].HBillStatus},'{mainList[0].HMaker}','{mainList[0].HMakeDate}',                 
+                    '{mainList[0].HChecker}','{mainList[0].HCheckDate}','{mainList[0].HUpDater}','{mainList[0].HUpDateDate}',               
+                    '{mainList[0].HDeleteMan}','{mainList[0].HDeleteDate}','{mainList[0].HOWNERID}','{mainList[0].HOWNERTYPEID}',              
+                    '{mainList[0].HERPInterID}','{mainList[0].HERPBillType}','{mainList[0].HERPBillNo}','{mainList[0].HPRDORGID}',                 
+                    '{mainList[0].HSTOCKORGID}','{mainList[0].HSTOCKERGROUPID}','{mainList[0].HPURCHASERGROUPID}','{mainList[0].HDEMANDORGID}',              
+                    '{mainList[0].HCORRESPONDORGID}','{mainList[0].HPROVIDERCONTACTID}','{mainList[0].HSUPPLYID}','{mainList[0].HSETTLEID}',                 
+                    '{mainList[0].HCHARGEID}','{mainList[0].HPURCHASEDEPTID}','{mainList[0].HBUSINESSTYPE}','{mainList[0].HSUPPLYADDRESS}',            
+                    '{mainList[0].HPAYORGID}','{mainList[0].HSETTLEORGID}','{mainList[0].HSETTLETYPEID}','{mainList[0].HPAYCONDITIONID}',           
+                    '{mainList[0].HSETTLECURRID}','{mainList[0].HEXCHANGETYPEID}','{mainList[0].HDISCOUNTLISTID}','{mainList[0].HEXCHANGERATE}',             
+                    '{mainList[0].HPRICETIMEPOINT}','{mainList[0].HLOCALCURRID}','{mainList[0].HISINCLUDEDTAX}','{mainList[0].HISPRICEEXCLUDETAX}'         
+                )");
+
+                // 瀛愯〃鎻掑叆
+                foreach (var osub in subList)
+                {
+                    // var syncSorceBillRes = oCN.RunProcReturn($@"
+                    //     exec h_p_IFCLD_ERPSourceBillToLocal_POStockInBill_GetSourceInfo 
+                    //     '{osub.HSourceBillType}', '{osub.HSourceBillNo}', {osub.HSourceSEQ} 
+                    // ", "h_p_IFCLD_ERPSourceBillToLocal_POStockInBill_GetSourceInfo");
+                    // string HERPInterID = "0";
+                    // string HERPEntryID = "0";
+                    // if (syncSorceBillRes != null && syncSorceBillRes.Tables.Count > 0)
+                    // {
+                    //     osub.HSourceEntryID = (long)syncSorceBillRes.Tables[0].Rows[0]["HEntryID"];
+                    //     osub.HSourceInterID = (long)syncSorceBillRes.Tables[0].Rows[0]["HInterID"];
+                    //     HERPInterID = syncSorceBillRes.Tables[0].Rows[0]["HERPInterID"].ToString();
+                    //     HERPEntryID = syncSorceBillRes.Tables[0].Rows[0]["HERPInterID"].ToString();
+                    // }
+
+                   
+
+                    oCN.RunProc($@"Insert into Kf_ICStockBillSub 
+                    (
+                        HInterID, HEntryID, HMTONo, HPlanMode, HRemark, HExpressNumber,
+                        HMaterID, HUnitID, HBatchNo, HPropertyID, HWHID, HSPID, HSCWHID, HSCSPID,
+                        HQtyMust, HQty, HPrice, HMoney, HTaxPrice, HTaxRate, HTaxMoney, HRelationQty, HRelationMoney,
+                        HSourceInterID, HSourceEntryID, HSourceBillNo, HSourceBillType, HERPInterID, HERPEntryID, HERPBillNo_Sub,
+                        HPOOrderInterID, HPOOrderEntryID, HPOOrderBillNo, HSeOrderInterID, HSeOrderEntryID, HSeOrderBillNo,
+                        HICMOInterID, HICMOEntryID, HICMOBillNo, HWWOrderInterID, HWWOrderEntryID, HWWOrderBillNo,
+                        HProduceDate, HExpiryDate, HOWNERID, HOWNERTYPEID, HKEEPERID, HKEEPERTYPEID,
+                        HSUPPLIERLOT, HREQTRACENO, HPROJECTNO, HGIVEAWAY, HSYSPRICE, HPRICECOEFFICIENT,
+                        HDISCOUNTRATE, HBASEUNITPRICE, HTAXCOMBINATION, HPRICELISTENTRY, HCOSTPRICE, HSEQ,
+                        HROWTYPE, HPARENTMATID, HPRILSTENTRYID, HPURBASENUM, HSTOCKBASEDEN, HBFLOWID,
+                        HSTOCKSTATUSID, HPRICEUNITID, HBASEUNITID, HSNUNITID, HREMAININSTOCKUNITID, HEXTAUXUNITID,
+                        HTAXRATEID, HTAXRATE_TAX, HTAXAMOUNT, HCOSTPERCENT, HCOSTAMOUNT, HVAT,
+                        HSELLERWITHHOLDING, HBUYERWITHHOLDING
+                    ) 
+                    values (
+                        '{osub.HInterID}','{osub.HEntryID}','{osub.HMTONo}',{osub.HPlanMode},'{osub.HRemark}','{osub.HExpressNumber}',
+                        '{osub.HMaterID}','{osub.HUnitID}','{osub.HBatchNo}','{osub.HPropertyID}','{osub.HWHID}',                      
+                        '{osub.HSPID}','{osub.HSCWHID}','{osub.HSCSPID}', '{osub.HQtyMust}','{osub.HQty}','{osub.HPrice}',                     
+                        '{osub.HMoney}', '{osub.HTaxPrice}', '{osub.HTaxRate}', '{osub.HTaxMoney}', '{osub.HRelationQty}',               
+                        '{osub.HRelationMoney}','{osub.HSourceInterID}','{osub.HSourceEntryID}','{osub.HSourceBillNo}',              
+                        '{osub.HSourceBillType}','{osub.HERPInterID}','{osub.HERPEntryID}','{osub.HERPBillNo_Sub}',             
+                        '{osub.HPOOrderInterID}','{osub.HPOOrderEntryID}','{osub.HPOOrderBillNo}','{osub.HSeOrderInterID}',            
+                        '{osub.HSeOrderEntryID}','{osub.HSeOrderBillNo}','{osub.HICMOInterID}','{osub.HICMOEntryID}',               
+                        '{osub.HICMOBillNo}','{osub.HWWOrderInterID}','{osub.HWWOrderEntryID}', '{osub.HWWOrderBillNo}',             
+                        '{osub.HProduceDate}','{osub.HExpiryDate}', '{osub.HOWNERID}','{osub.HOWNERTYPEID}','{osub.HKEEPERID}',                  
+                        '{osub.HKEEPERTYPEID}', '{osub.HSUPPLIERLOT}', '{osub.HREQTRACENO}', '{osub.HPROJECTNO}','{osub.HGIVEAWAY}',                  
+                        '{osub.HSYSPRICE}', '{osub.HPRICECOEFFICIENT}','{osub.HDISCOUNTRATE}','{osub.HBASEUNITPRICE}', '{osub.HTAXCOMBINATION}',            
+                        '{osub.HPRICELISTENTRY}','{osub.HCOSTPRICE}', '{osub.HSEQ}','{osub.HROWTYPE}','{osub.HPARENTMATID}', '{osub.HPRILSTENTRYID}',             
+                        '{osub.HPURBASENUM}','{osub.HSTOCKBASEDEN}', '{osub.HBFLOWID}','{osub.HSTOCKSTATUSID}','{osub.HPRICEUNITID}', '{osub.HBASEUNITID}',                
+                        '{osub.HSNUNITID}', '{osub.HREMAININSTOCKUNITID}','{osub.HEXTAUXUNITID}','{osub.HTAXRATEID}','{osub.HTAXRATE_TAX}','{osub.HTAXAMOUNT}',                 
+                        '{osub.HCOSTPERCENT}','{osub.HCOSTAMOUNT}','{osub.HVAT}','{osub.HSELLERWITHHOLDING}','{osub.HBUYERWITHHOLDING}'           
+                    )");
+                }
+
+                //閲囪喘鍏ュ簱鍗曟柊澧炲洖濉噰璐叆搴撳叧鑱旀暟閲�
+                oCN.RunProc("exec h_p_Cg_UpDateRelation_POOrderToPOStockIn_Add " + mainList[0].HInterID);
+
+                //閲囪喘鍏ュ簱鍗曟柊澧炲洖濉敹鏂欓�氱煡鍗曞叧鑱旀暟閲�
+                oCN.RunProc("exec h_p_Cg_UpDateRelation_POInStockToPOStockIn_Add " + mainList[0].HInterID);
+
+
+                oCN.Commit();
+                objJsonResult.code = "1";
+                objJsonResult.count = 1;
+                objJsonResult.Message = "鍗曟嵁淇濆瓨鎴愬姛锛�";
+                objJsonResult.data = null;
+                return objJsonResult;
+            }
+            catch (Exception e)
+            {
+                LogService.Write("閲囪喘鍏ュ簱鍗曞悓姝ュ紓甯�,淇濆瓨鏂规硶鎵ц瀹屾垚寮傚父锛�" + e.Message.ToString());
+
+                oCN.RollBack();
+                objJsonResult.code = "0";
+                objJsonResult.count = 0;
+                objJsonResult.Message = "淇濆瓨澶辫触锛�" + e.ToString();
+                objJsonResult.data = null;
+                return objJsonResult;
+            }
+        }
+        #endregion
     }
 }
\ No newline at end of file

--
Gitblit v1.9.1