yusijie
2023-03-07 9255ef991d94447b3056dd08caa97461eeec9c03
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));//获取到DataColumn列对象的列名
                }
                LogService.Write("送货单列表加载sql: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 [自动同步模式,调用WEBAPI的方式进行更新]
                                        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 = "金蝶收料通知单同步失败jsonRoot:" + _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
                                    }
                                }
                            }