From 9255ef991d94447b3056dd08caa97461eeec9c03 Mon Sep 17 00:00:00 2001
From: yusijie <ysj@hz-kingdee.com>
Date: 星期二, 07 三月 2023 09:50:52 +0800
Subject: [PATCH] 送货单添加系统参数,自动审核同步

---
 WebAPI/Controllers/POInStockController.cs |  279 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 278 insertions(+), 1 deletions(-)

diff --git a/WebAPI/Controllers/POInStockController.cs b/WebAPI/Controllers/POInStockController.cs
index f6dce2b..f5965b1 100644
--- a/WebAPI/Controllers/POInStockController.cs
+++ b/WebAPI/Controllers/POInStockController.cs
@@ -288,7 +288,7 @@
             string[] sArray = msg1.Split(new string[] { ";" }, StringSplitOptions.RemoveEmptyEntries);
             string msg2 = sArray[0].ToString();
             string msg3 = sArray[1].ToString();
-            string UserName = "";
+            string UserName = sArray[2];
             ListModels oListModels = new ListModels();
             try
             {
@@ -406,6 +406,18 @@
                     objJsonResult.Message = "淇濆瓨鎴愬姛锛�";
                     WebAPIController.Add_Log("閫佽揣鍗曚笅鎺�", UserName, "鐢熸垚閫佽揣鍗�");
                     objJsonResult.data = 1;
+
+                    //淇濆瓨鎴愬姛鏃讹紝鍒ゆ柇鏄惁涓鸿嚜鍔ㄥ鏍革紝Y涓鸿嚜鍔ㄥ鏍革紝N涓烘墜鍔ㄥ鏍�
+                    string sReturn = "";
+                    if (oSystemParameter.ShowBill(ref sReturn) == true)
+                    {
+                        if (oSystemParameter.omodel.SRM_POInStockBill_AutoAudit == "Y")
+                        {
+                            string HInterID = GetHinterIDByBillNo(billno, "select").ToString();
+                            //璋冪敤瀹℃牳鏂规硶
+                            AuditPOInStockBill(HInterID, UserName, billno);
+                        }
+                    }
                     return objJsonResult;
                 }
                 else
@@ -462,6 +474,16 @@
                 Int64 RowTotal = Common.GetRowTotal("H_v_SRM_POInStockBillList", VsWhere, ref DBUtility.ClsPub.sExeReturnInfo);
                 //鑾峰彇杩斿洖鏁版嵁
                 ds = oCn.RunProcReturn("exec H_p_SRM_POInStockBillList '" + PcWhere + "'", "H_p_SRM_POInStockBillList");
+
+                //娣诲姞鍒楀悕
+                List<object> columnNameList = new List<object>();
+                foreach (DataColumn col in ds.Tables[0].Columns)
+                {
+                    Type dataType = col.DataType;
+                    string ColmString = "{\"ColmCols\":\"" + col.ColumnName + "\",\"ColmType\":\"" + dataType.Name + "\"}";
+                    columnNameList.Add(JsonConvert.DeserializeObject(ColmString));//鑾峰彇鍒癉ataColumn鍒楀璞$殑鍒楀悕
+                }
+
                 LogService.Write("閫佽揣鍗曞垪琛ㄥ姞杞絪ql:exec H_p_SRM_POInStockBillList '" + PcWhere + "'");
                 LogService.Write("鏁版嵁鏌ヨ杩斿洖" + sw.Elapsed);
                 sw.Stop();//缁撴潫璁℃椂
@@ -469,6 +491,7 @@
                 objjson.count = 10000;
                 objjson.Message = "鑾峰彇鎴愬姛";
                 objjson.data = ds.Tables[0];
+                objjson.list = columnNameList;
                 return objjson;
             }
             catch (Exception e)
@@ -925,6 +948,260 @@
                                     objjson.Message = result;
                                     objjson.data = null;
                                     return objjson;
+                                }                            
+
+                                //瀹℃牳鎴愬姛鏃讹紝鍒ゆ柇鏄惁涓鸿嚜鍔ㄥ悓姝ワ紝Y涓鸿嚜鍔ㄥ悓姝ワ紝N涓烘墜鍔ㄥ悓姝�
+                                string sReturn = "";
+                                if (oSystemParameter.ShowBill(ref sReturn) == true)
+                                {
+                                    if (oSystemParameter.omodel.SRM_POInStockBill_AutoSync == "Y")
+                                    {
+                                        #region [鑷姩鍚屾妯″紡锛岃皟鐢╓EBAPI鐨勬柟寮忚繘琛屾洿鏂癩
+                                        var json = new
+                                        {
+                                            CreateOrgId = 0,
+                                            Number = HBillNo,
+                                            Id = ""
+                                        };
+                                        #region [閲戣澏閮ㄥ垎]
+                                        //鐧诲綍閲戣澏
+                                        //var loginRet = InvokeHelper.Login();
+                                        //var isSuccess = JObject.Parse(loginRet)["LoginResultType"].Value<int>();
+                                        ////鍒ゆ柇鏄惁鐧诲綍鎴愬姛
+                                        //if (isSuccess < 0)
+                                        //{
+                                        //    objJsonResult.code = "0";
+                                        //    objJsonResult.count = 0;
+                                        //    objJsonResult.Message = loginRet;
+                                        //    objJsonResult.data = null;
+                                        //    return objJsonResult;
+                                        //}
+                                        //鏌ョ湅 鑾峰彇鏁版嵁                    
+                                        var _result = InvokeHelper.View("PUR_ReceiveBill", JsonConvert.SerializeObject(json));
+                                        var _saveObj = JObject.Parse(_result);
+                                        //鍒ゆ柇鏁版嵁鏄惁鑾峰彇鎴愬姛
+                                        if (_saveObj["Result"]["ResponseStatus"]["IsSuccess"].ToString().ToUpper() != "TRUE")
+                                        {
+                                            objJsonResult.code = "0";
+                                            objJsonResult.count = 0;
+                                            objJsonResult.Message = "閲戣澏鏀舵枡閫氱煡鍗曞悓姝ュけ璐sonRoot锛�" + _result;
+                                            objJsonResult.data = null;
+                                            return objJsonResult;
+                                        }
+
+                                        #endregion
+                                        //鑾峰彇涓昏〃鏁版嵁
+                                        DataSet Ds;
+                                        Int64 InterID = 0;
+                                        Ds = oCn.RunProcReturn("select * from Cg_POInStockBillMain where HBillNo = '" + HBillNo + "'", "Cg_POInStockBillMain");
+                                        if (Ds.Tables[0].Rows.Count != 0 && ClsPub.isLong(Ds.Tables[0].Rows[0]["HInterID"].ToString()) != 0)
+                                        {
+                                            InterID = ClsPub.isLong(Ds.Tables[0].Rows[0]["HInterID"].ToString());
+                                        }
+
+                                        #region [涓昏〃鏁版嵁璧嬪�糫
+                                        var jsonData = new
+                                        {
+                                            HInterID = _saveObj["Result"]["Result"]["Id"],
+                                            HYear = DateTime.Now.Year,
+                                            HPeriod = DateTime.Now.Month,
+                                            HBillType = 1103,
+                                            HBillSubType = _saveObj["Result"]["Result"]["BusinessType"].ToString() == "WW" ? 12511 : 12510,
+                                            HDate = _saveObj["Result"]["Result"]["Date"],
+                                            HBillNo = _saveObj["Result"]["Result"]["BillNo"],
+                                            HBillStatus = _saveObj["Result"]["Result"]["ApproverId_Id"].ToString() == "0" ? 1 : 2,
+                                            HSupID = _saveObj["Result"]["Result"]["SupplierId_Id"],
+                                            HManagerID = _saveObj["Result"]["Result"]["PurchaserId_Id"],
+                                            HEmpID = _saveObj["Result"]["Result"]["ReceiverId_Id"],
+                                            HDeptID = _saveObj["Result"]["Result"]["ReceiveDeptId_Id"],
+                                            HRemark = "CLOUD瀵煎叆",
+                                            HMaker = _saveObj["Result"]["Result"]["CreatorId_Id"],
+                                            HMakeDate = _saveObj["Result"]["Result"]["CreateDate"],
+                                            HChecker = _saveObj["Result"]["Result"]["ApproverId_Id"],
+                                            HCheckDate = _saveObj["Result"]["Result"]["ApproveDate"],
+                                            HOWNERTYPEID = _saveObj["Result"]["Result"]["OwnerTypeIdHead"],
+                                            HOWNERID = _saveObj["Result"]["Result"]["OwnerIdHead_Id"],
+                                            HERPInterID = _saveObj["Result"]["Result"]["Id"],
+                                            HERPBillType = _saveObj["Result"]["Result"]["BillTypeId_Id"],
+                                            HPURCHASEORGID = _saveObj["Result"]["Result"]["PurOrgId_Id"],
+                                            HSTOCKORGID = _saveObj["Result"]["Result"]["StockOrgId_Id"],
+                                            HREQUIREORGID = _saveObj["Result"]["Result"]["DemandOrgId_Id"],
+                                            HSTOCKGROUPID = _saveObj["Result"]["Result"]["StockGroupId_Id"],
+                                            HSENDBILLNO = _saveObj["Result"]["Result"]["SendBillNo"],
+                                            HLADBILLNO = _saveObj["Result"]["Result"]["LadBillNo"],
+                                            HPURDEPTID = _saveObj["Result"]["Result"]["PurDeptId_Id"],
+                                            HPURGROUPID = _saveObj["Result"]["Result"]["PurGroupId_Id"],
+                                            HSUPPLYID = _saveObj["Result"]["Result"]["SupplyId_Id"],
+                                            HSETTLEID = _saveObj["Result"]["Result"]["SettleId_Id"],
+                                            HCHARGEID = _saveObj["Result"]["Result"]["ChargeId_Id"],
+                                            HBUSINESSTYPE = _saveObj["Result"]["Result"]["BusinessType"],
+                                            HSUPPLYADDRESS = _saveObj["Result"]["Result"]["SupplyAddress"],
+                                            HCORRESPONDORGID = _saveObj["Result"]["Result"]["CorrespondOrgId_Id"],
+                                            HPROVIDERCONTACTID = _saveObj["Result"]["Result"]["ProviderContactId_Id"],
+                                        };
+                                        #endregion
+                                        // 鍒犻櫎涓昏〃瀵瑰簲鏁版嵁
+                                        sql = $"delete from Cg_POInStockBillMain where HInterID = " + InterID;
+                                        oCn.RunProc(sql);
+
+                                        //鎻掑叆涓昏〃
+                                        sql = $@"
+                                insert into Cg_PoInstockbillMain
+                             (HInterID,HYear,HPeriod,HBillType,HBillSubType,HDate
+                             ,HBillNo,HBillStatus,HSupID,HManagerID,HEmpID,HDeptID,HRemark
+                             ,HMaker,HMakeDate,HChecker,HCheckDate,HOWNERTYPEID,HOWNERID
+                             ,HERPInterID,HERPBillType,HPURCHASEORGID,HSTOCKORGID,HREQUIREORGID
+                             ,HSTOCKGROUPID,HSENDBILLNO,HLADBILLNO,HPURDEPTID,HPURGROUPID,HSUPPLYID
+                             ,HSETTLEID,HCHARGEID,HBUSINESSTYPE,HSUPPLYADDRESS,HCORRESPONDORGID,HPROVIDERCONTACTID
+                             )
+                                values
+                                ({jsonData.HInterID},{jsonData.HYear},{jsonData.HPeriod},{jsonData.HBillType},{jsonData.HBillSubType},'{jsonData.HDate}','{jsonData.HBillNo}',
+                                {jsonData.HBillStatus},{jsonData.HSupID},{jsonData.HManagerID},{jsonData.HEmpID},{jsonData.HDeptID},'{jsonData.HRemark}','{jsonData.HMaker}',
+                                '{jsonData.HMakeDate}','{jsonData.HChecker}','{jsonData.HCheckDate}','{jsonData.HOWNERTYPEID}','{jsonData.HOWNERID}',{jsonData.HERPInterID},
+                                '{jsonData.HERPBillType}',{jsonData.HPURCHASEORGID},{jsonData.HSTOCKORGID},{jsonData.HREQUIREORGID},{jsonData.HSTOCKGROUPID},'{jsonData.HSENDBILLNO}',
+                                '{jsonData.HLADBILLNO}',{jsonData.HPURDEPTID},{jsonData.HPURGROUPID},{jsonData.HSUPPLYID},{jsonData.HSETTLEID},{jsonData.HCHARGEID},'{jsonData.HBUSINESSTYPE}',
+                                '{jsonData.HSUPPLYADDRESS}',{jsonData.HCORRESPONDORGID},{jsonData.HPROVIDERCONTACTID})";
+                                        oCn.RunProc(sql);
+
+                                        #region [鐢宠瀛愯〃鍙橀噺]
+                                        var dataArr = _saveObj["Result"]["Result"]["PUR_ReceiveEntry"];
+
+                                        DataSet Cs;                                       
+                                        #endregion
+
+                                        // 鑾峰彇瀛愯〃鏁版嵁
+                                        Cs = oCn.RunProcReturn("select * from Cg_POInStockBillSub where HInterID = " + jsonData.HInterID, "Cg_POInStockBillSub");
+                                        // 鍒犻櫎瀛愯〃瀵瑰簲鏁版嵁
+                                        sql = $"delete from Cg_POInStockBillSub where HInterID = " + InterID;
+                                        oCn.RunProc(sql);
+
+                                        foreach (var oSub in dataArr)
+                                        {
+                                            #region [瀛愯〃鏁版嵁璧嬪�糫
+
+                                            if (Cs.Tables[0].Rows.Count != 0 && ClsPub.isLong(Cs.Tables[0].Rows[0]["HInterID"].ToString()) != 0)
+                                            {
+                                              
+                                            }
+
+                                            var subData = new
+                                            {
+                                                HInterID = _saveObj["Result"]["Result"]["Id"],
+                                                HEntryID = oSub["Id"],
+                                                HMaterID = oSub["MaterialID_Id"],
+                                                HUnitID = oSub["UnitId_Id"],
+                                                HQty = oSub["ActReceiveQty"],
+                                                HPrice = oSub["Price"],
+                                                HMoney = oSub["Amount"],
+                                                HWHID = oSub["StockID_Id"],
+                                                HSPID = oSub["StockLocId_Id"],
+                                                HRemark = "CLOUD瀵煎叆",
+                                                HTaxMoney = oSub["TaxAmount"],
+                                                HTaxRate = oSub["TaxRate"],
+                                                HTaxMoney_TAX = oSub["TaxAmount"],
+                                                HTaxRate_TAX = oSub["TaxRate"],
+                                                HSourceInterID = oSub["SrcId"],
+                                                HSourceEntryID = oSub["SrcEntryId"],
+                                                HSourceBillNo = oSub["SrcBillNo"],
+                                                HSourceBillType = 1102,
+                                                HPOOrderInterID = oSub["SrcId"],
+                                                HPOOrderEntryID = oSub["POORDERENTRYID"],
+                                                HPOORderBillNo = oSub["OrderBillNo"],
+                                                HAuxPropID = oSub["AuxPropId_Id"],
+                                                HBatchNO = oSub["Lot_Text"],
+                                                HMTONo = oSub["MtoNo"],
+                                                HPlanMode = "",
+                                                HERPInterID = _saveObj["Result"]["Result"]["Id"],
+                                                HERPEntryID = oSub["Id"],
+                                                HRelationQty = oSub["InStockBaseQty"],
+                                                HGiveAwayFlag = oSub["GiveAway"] = false ? 0 : 1,
+                                                HReceiveQty = oSub["ReceiveQty"],
+                                                HSecUnitID = oSub["ExtAuxUnitId_Id"],
+                                                HSEQ = oSub["Seq"],
+                                                HPRODUCEDATE = oSub["ProduceDate"],
+                                                HEXPIRYDATE = oSub["ExpiryDate"],
+                                                HSUPPLYLOT = oSub["SupplierLot"],
+                                                HREQTRACENO = oSub["ReqTraceNo"],
+                                                HBOMID = oSub["BomId_Id"],
+                                                HSTOCKUNITID = oSub["StockUnitID_Id"],
+                                                HBASEUNITID = oSub["BaseUnitId_Id"],
+                                                HSTOCKSTATUSID = oSub["StockStatusId_Id"],
+                                                HKEEPERTYPEID = oSub["KeeperTypeId"],
+                                                HPROJECTNO = oSub["ProjectNo"],
+                                                HCHECKINCOMING = oSub["CheckInComing"] = false ? 0 : 1,
+                                                HTAXPRICE = oSub["TaxPrice"],
+                                                HDISCOUNTRATE = oSub["DiscountRate"],
+                                                HPRICECOEFFICIENT = oSub["PriceCoefficient"],
+                                                HPRICEUNITID = oSub["PriceUnitId_Id"],
+                                                HPRICELISTENTRY = oSub["PriceListEntry_Id"],
+                                                HTAXCOMBINATION = oSub["TaxCombination_Id"],
+                                                HSAMPLEDAMAGEQTY = oSub["SampleDamageQty"],
+                                                HSAMPLEDAMAGEBASEQTY = oSub["SampleDamageBaseQty"],
+                                                HOWNERTYPEID = oSub["OwnerTypeId"],
+                                                HOWNERID = oSub["OwnerId_Id"],
+                                                HBFLOWID = oSub["FBFLowId_Id"],
+                                                HPAYORGID = _saveObj["Result"]["Result"]["Receivefinance"][0]["PayOrgId_Id"],
+                                                HSETTLEORGID = _saveObj["Result"]["Result"]["Receivefinance"][0]["SettleOrgId_Id"],
+                                                HSETTLECURRID = _saveObj["Result"]["Result"]["Receivefinance"][0]["SettleCurrId_Id"],
+                                                HSETTLEMODEID = _saveObj["Result"]["Result"]["Receivefinance"][0]["SettleModeId_Id"],
+                                                HEXCHANGETYPEID = _saveObj["Result"]["Result"]["Receivefinance"][0]["ExchangeTypeId_Id"],
+                                                HPAYCONDITONID = 0,
+                                                HEXCHANGERATE = _saveObj["Result"]["Result"]["Receivefinance"][0]["ExchangeRate"],
+                                                HLOCALCURRID = _saveObj["Result"]["Result"]["Receivefinance"][0]["LocalCurrId_Id"],
+                                                HISINCLUDEDTAX = _saveObj["Result"]["Result"]["Receivefinance"][0]["IsIncludedTax"],
+                                                HISPRICEEXCLUDETAX = _saveObj["Result"]["Result"]["Receivefinance"][0]["ISPRICEEXCLUDETAX"],
+                                                HTAXRATEID = 0,
+                                                HCOSTPERCENT = 0,
+                                                HCOSTAMOUNT = 0,
+                                                HVAT = 0,
+                                                HSELLERWITHHOLDING = 0,
+                                                HBUYERWITHHOLDING = 0,
+                                            };
+                                            #endregion
+
+
+                                            //鎻掑叆瀛愯〃
+                                            sql = $@"
+                                 insert into Cg_PoInstockbillSub
+                                 (HInterID,HEntryID,HMaterID,HUnitID,HQty,HPrice
+                                 ,HMoney,HWHID,HSPID,HRemark,HTaxMoney,HTaxRate,HTaxMoney_TAX,HTaxRate_TAX
+                                 ,HSourceInterID,HSourceEntryID,HSourceBillNo,HSourceBillType,HPOOrderInterID,HPOOrderEntryID,HPOORderBillNo
+                                 ,HAuxPropID,HBatchNO,HMTONo,HPlanMode,HERPInterID,HERPEntryID
+                                 ,HRelationQty,HGiveAwayFlag,HReceiveQty,HSecUnitID
+                                 ,HSEQ,HPRODUCEDATE,HEXPIRYDATE,HSUPPLYLOT,HREQTRACENO,HBOMID,HSTOCKUNITID
+                                 ,HBASEUNITID,HSTOCKSTATUSID,HKEEPERTYPEID,HPROJECTNO,HCHECKINCOMING
+                                 ,HTAXPRICE,HDISCOUNTRATE,HPRICECOEFFICIENT,HPRICEUNITID,HPRICELISTENTRY
+                                 ,HTAXCOMBINATION,HSAMPLEDAMAGEQTY,HSAMPLEDAMAGEBASEQTY,HOWNERTYPEID,HOWNERID,HBFLOWID
+                                 ,HPAYORGID,HSETTLEORGID,HSETTLECURRID,HSETTLEMODEID,HEXCHANGETYPEID,HPAYCONDITONID
+                                 ,HEXCHANGERATE,HLOCALCURRID,HISINCLUDEDTAX,HISPRICEEXCLUDETAX
+                                 ,HTAXRATEID,HCOSTPERCENT,HCOSTAMOUNT,HVAT,HSELLERWITHHOLDING,HBUYERWITHHOLDING
+                                 )
+                                 values
+                                 ({subData.HInterID},{subData.HEntryID},{subData.HMaterID},{subData.HUnitID},{subData.HQty},{subData.HPrice},
+                                  {subData.HMoney},{subData.HWHID},{subData.HSPID},'{subData.HRemark}',{subData.HTaxMoney},{subData.HTaxRate},{subData.HTaxMoney_TAX},
+                                  {subData.HTaxRate_TAX},{subData.HSourceInterID},{subData.HSourceEntryID},'{subData.HSourceBillNo}',{subData.HSourceBillType},
+                                  {subData.HPOOrderInterID},{subData.HPOOrderEntryID},'{subData.HPOORderBillNo}',{subData.HAuxPropID},'{subData.HBatchNO}',
+                                  '{subData.HMTONo}','{subData.HPlanMode}',{subData.HERPInterID},{subData.HERPEntryID},{subData.HRelationQty},{subData.HGiveAwayFlag},
+                                  {subData.HReceiveQty},{subData.HSecUnitID},{subData.HSEQ},'{subData.HPRODUCEDATE}','{subData.HEXPIRYDATE}','{subData.HSUPPLYLOT}',
+                                  '{subData.HREQTRACENO}',{subData.HBOMID},{subData.HSTOCKUNITID},{subData.HBASEUNITID},{subData.HSTOCKSTATUSID},'{subData.HKEEPERTYPEID}',
+                                  '{subData.HPROJECTNO}',{subData.HCHECKINCOMING},{subData.HTAXPRICE},{subData.HDISCOUNTRATE},
+                                  {subData.HPRICECOEFFICIENT},{subData.HPRICEUNITID},{subData.HPRICELISTENTRY},'{subData.HTAXCOMBINATION}',{subData.HSAMPLEDAMAGEQTY},
+                                  {subData.HSAMPLEDAMAGEBASEQTY},'{subData.HOWNERTYPEID}',{subData.HOWNERID},'{subData.HBFLOWID}',{subData.HPAYORGID},{subData.HSETTLEORGID},
+                                  {subData.HSETTLECURRID},{subData.HSETTLEMODEID},{subData.HEXCHANGETYPEID},{subData.HPAYCONDITONID},{subData.HEXCHANGERATE},
+                                  {subData.HLOCALCURRID},'{subData.HISINCLUDEDTAX}','{subData.HISPRICEEXCLUDETAX}',{subData.HTAXRATEID},{subData.HCOSTPERCENT},
+                                  {subData.HCOSTAMOUNT},{subData.HVAT},{subData.HSELLERWITHHOLDING},{subData.HBUYERWITHHOLDING})";
+                                            oCn.RunProc(sql);
+                                        }
+
+
+                                        objJsonResult.code = "1";
+                                        objJsonResult.count = 1;
+                                        objJsonResult.Message = "鍗曟嵁鍚屾鎴愬姛锛�";
+                                        objJsonResult.data = null;
+                                        return objJsonResult;
+
+                                        #endregion
+                                    }
                                 }
 
                             }

--
Gitblit v1.9.1