采购退料扫描源单调用方法修改,增加通过WEBAPI同步金蝶云采购入库单至本地数据库功能
1个文件已修改
344 ■■■■■ 已修改文件
CLOUDWEB/WebService1.asmx.cs 344 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CLOUDWEB/WebService1.asmx.cs
@@ -35,6 +35,320 @@
        #region 单据同步
        #region 采购入库单同步     根据单据号同步
        [WebMethod]
        public bool GetWebAPIToLocal_POStockIn(string HBillNo, string HBillType, string HMaker, ref string sErrMsg)
        {
            SQLHelper.ClsCN oCn = new SQLHelper.ClsCN();
            //从配置文件获取 CLOUD网址、账套信息、登录用户、登录密码
            if (!Pub_Class.ClsPub.GetCLOUDLoginInfo(ref Pub_Class.ClsPub.sExeReturnInfo))
            {
                sErrMsg = Pub_Class.ClsPub.sExeReturnInfo;
                return false;
            }
            //获取CLOUD账号密码
            string HReturn;
            string sCLOUDUseName = Pub_Class.ClsPub.sCLOUDUseName;
            string sCLOUDPsd = Pub_Class.ClsPub.sCLOUDPsd;
            string dbId = Pub_Class.ClsPub.sCLOUDAcc;
            ApiClient client = new ApiClient(Pub_Class.ClsPub.sCLOUDUrl);
            bool bLogin = client.Login(dbId, sCLOUDUseName, sCLOUDPsd, 2052);
            if (bLogin)
            {
                //查看单据
                string sJson = "{\"CreateOrgId\":0,\"Number\":\"" + HBillNo + "\"}";
                var result = client.Execute<string>("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.View",
                new object[] { "STK_InStock", sJson });
                var _saveObj = JObject.Parse(result);
                //判断数据是否获取成功
                if (_saveObj.SelectToken("Result.ResponseStatus.IsSuccess")?.ToString().ToUpper() != "TRUE")
                {
                    HReturn = result.ToString();
                    //反序列化json数据
                    var retModel = JsonConvert.DeserializeObject<KingdeeResponse>(HReturn);
                    //接收金蝶报错信息
                    var strErrorMsg = string.Empty;
                    //遍历获取报错信息
                    foreach (var item in retModel.Result.ResponseStatus.Errors)
                    {
                        strErrorMsg += item.Message + "\r\n";
                    };
                    sErrMsg = "同步单据失败!" + strErrorMsg;
                    return false;
                }
                else
                {
                    Int64 HInterID = 0;
                    //获取单据ID,本地表中已存在当前单据,获取当前单据ID,不存在则获取最大单据ID
                    DataSet dsID = oCn.RunProcReturn(" select HInterID from Kf_ICStockBillMain with(nolock) where HBillNo= '" + HBillNo + "' and HBillType= '" + HBillType + "'", "Kf_ICStockBillMain");
                    if (dsID == null || dsID.Tables[0].Rows.Count == 0)
                    {
                        HInterID = DBUtility.ClsPub.CreateBillID_Prod(HBillType, ref sErrMsg);
                    }
                    else
                    {
                        HInterID = DBUtility.ClsPub.isLong(dsID.Tables[0].Rows[0]["HInterID"]);
                        oCn.RunProc("Delete from Kf_ICStockBillMain where HInterID=" + HInterID.ToString(), ref DBUtility.ClsPub.sExeReturnInfo);
                        oCn.RunProc("Delete from Kf_ICStockBillSub where HInterID=" + HInterID.ToString(), ref DBUtility.ClsPub.sExeReturnInfo);
                    }
                    //主表数据赋值
                    var MainData = new
                    {
                        HInterID = HInterID,
                        HYear = DateTime.Now.Year,
                        HPeriod = DateTime.Now.Month,
                        HBillNo = _saveObj.SelectToken("Result.Result.BillNo")?.ToString() ?? "",
                        HBillType = HBillType,
                        HBillSubType = HBillType,
                        HMainSourceBillType = "",
                        HDate = _saveObj.SelectToken("Result.Result.Date")?.ToString(),
                        HSupID = _saveObj.SelectToken("Result.Result.SupplierId_Id")?.ToString() ?? "0",
                        HWHID = 0,
                        HSCWHID = 0,
                        HEmpID = 0,
                        HManagerID = 0,
                        HSecManagerID = _saveObj.SelectToken("Result.Result.PurchaserId_Id")?.ToString() ?? "0",
                        HPURCHASERNumber = _saveObj.SelectToken("Result.Result.PurchaserId.Number")?.ToString() ?? "",
                        HKeeperID = _saveObj.SelectToken("Result.Result.StockerId_Id")?.ToString() ?? "0",
                        HSTOCKERNumber = _saveObj.SelectToken("Result.Result.StockerId.Number")?.ToString() ?? "",
                        HDeptID = _saveObj.SelectToken("Result.Result.StockDeptId_Id")?.ToString() ?? "0",
                        HCurID = 0,
                        HSeOrderBillNo = "",
                        HExplanation = "WebAPI导入",
                        HRemark = "",
                        HInnerBillNo = "",
                        HRedBlueFlag = 0,
                        HBillStatus = _saveObj.SelectToken("Result.Result.ApproverId_Id")?.ToString() == "0" ? 1 : 2,
                        HMaker = _saveObj.SelectToken("Result.Result.CreatorId.Name")?.ToString() ?? "",
                        HMakeDate = _saveObj.SelectToken("Result.Result.CreateDate")?.ToString(),
                        HChecker = _saveObj.SelectToken("Result.Result.ApproverId.Name")?.ToString() ?? "",
                        HCheckDate = _saveObj.SelectToken("Result.Result.ApproveDate")?.ToString(),
                        HUpDater = _saveObj.SelectToken("Result.Result.FModifierId.Name")?.ToString() ?? "",
                        HUpDateDate = _saveObj.SelectToken("Result.Result.FModifyDate")?.ToString(),
                        HDeleteMan = _saveObj.SelectToken("Result.Result.CancellerId.Name")?.ToString() ?? "",
                        HDeleteDate = _saveObj.SelectToken("Result.Result.CancelDate")?.ToString(),
                        HOWNERID = _saveObj.SelectToken("Result.Result.OwnerIdHead_Id")?.ToString() ?? "0",
                        HOWNERTYPEID = _saveObj.SelectToken("Result.Result.OwnerTypeIdHead")?.ToString() ?? "",
                        HERPInterID = _saveObj.SelectToken("Result.Result.Id")?.ToString() ?? "0",
                        HERPBillType = _saveObj.SelectToken("Result.Result.FBillTypeID_Id")?.ToString() ?? "",
                        HERPBillNo = _saveObj.SelectToken("Result.Result.BillNo")?.ToString() ?? "",
                        HPRDORGID = _saveObj.SelectToken("Result.Result.PurchaseOrgId_Id")?.ToString() ?? "0",
                        HSTOCKORGID = _saveObj.SelectToken("Result.Result.StockOrgId_Id")?.ToString() ?? "0",
                        HSTOCKERGROUPID = _saveObj.SelectToken("Result.Result.StockerGroupId_Id")?.ToString() ?? "0",
                        HSTOCKERGROUPNumber = _saveObj.SelectToken("Result.Result.StockerGroupId.Number")?.ToString() ?? "",
                        HPURCHASERGROUPID = _saveObj.SelectToken("Result.Result.PurchaserGroupId_Id")?.ToString() ?? "0",
                        HPURCHASERGROUPNumber = _saveObj.SelectToken("Result.Result.PurchaserGroupId.Number")?.ToString() ?? "",
                        HDEMANDORGID = _saveObj.SelectToken("Result.Result.DemandOrgId_Id")?.ToString() ?? "0",
                        HCORRESPONDORGID = _saveObj.SelectToken("Result.Result.CorrespondOrgId_Id")?.ToString() ?? "0",
                        HPROVIDERCONTACTID = _saveObj.SelectToken("Result.Result.ProviderContactID_Id")?.ToString() ?? "0",
                        HPROVIDERCONTACTNumber = _saveObj.SelectToken("Result.Result.ProviderContactID.CONTACTNUMBER")?.ToString() ?? "",
                        HSUPPLYID = _saveObj.SelectToken("Result.Result.SupplyId_Id")?.ToString() ?? "0",
                        HSETTLEID = _saveObj.SelectToken("Result.Result.SettleId_Id")?.ToString() ?? "0",
                        HCHARGEID = _saveObj.SelectToken("Result.Result.ChargeId_Id")?.ToString() ?? "0",
                        HPURCHASEDEPTID = _saveObj.SelectToken("Result.Result.PurchaseDeptId_Id")?.ToString() ?? "0",
                        HBUSINESSTYPE = _saveObj.SelectToken("Result.Result.BusinessType")?.ToString() ?? "",
                        HSUPPLYADDRESS = _saveObj.SelectToken("Result.Result.SupplyAddress")?.ToString() ?? "",
                        HPAYORGID = _saveObj.SelectToken("Result.Result.InStockFin[0].PayOrgId_Id")?.ToString() ?? "0",
                        HSETTLEORGID = _saveObj.SelectToken("Result.Result.InStockFin[0].SettleOrgId_Id")?.ToString() ?? "0",
                        HSETTLETYPEID = _saveObj.SelectToken("Result.Result.InStockFin[0].FSettleTypeId_Id")?.ToString() ?? "0",
                        HSETTLETYPENumber = _saveObj.SelectToken("Result.Result.InStockFin[0].FSettleTypeId.Number")?.ToString() ?? "",
                        HPAYCONDITIONID = _saveObj.SelectToken("Result.Result.InStockFin[0].PayConditionId_Id")?.ToString() ?? "0",
                        HPAYCONDITIONNumber = _saveObj.SelectToken("Result.Result.InStockFin[0].PayConditionId.Number")?.ToString() ?? "",
                        HSETTLECURRID = _saveObj.SelectToken("Result.Result.InStockFin[0].SettleCurrId_Id")?.ToString() ?? "0",
                        HSETTLECURRNumber = _saveObj.SelectToken("Result.Result.InStockFin[0].SettleCurrId.Number")?.ToString() ?? "",
                        HEXCHANGETYPEID = _saveObj.SelectToken("Result.Result.InStockFin[0].ExchangeTypeId_Id")?.ToString() ?? "0",
                        HEXCHANGETYPENumber = _saveObj.SelectToken("Result.Result.InStockFin[0].ExchangeTypeId.Number")?.ToString() ?? "",
                        HDISCOUNTLISTID = _saveObj.SelectToken("Result.Result.InStockFin[0].DiscountListId_Id")?.ToString() ?? "0",
                        HDISCOUNTLISTNumber = _saveObj.SelectToken("Result.Result.InStockFin[0].DiscountListId.Number")?.ToString() ?? "",
                        HEXCHANGERATE = _saveObj.SelectToken("Result.Result.InStockFin[0].ExchangeRate")?.ToString() ?? "0",
                        HPRICETIMEPOINT = _saveObj.SelectToken("Result.Result.InStockFin[0].PriceTimePoint")?.ToString() ?? "",
                        HLOCALCURRID = _saveObj.SelectToken("Result.Result.InStockFin[0].LocalCurrId_Id")?.ToString() ?? "0",
                        HLOCALCURRNumber = _saveObj.SelectToken("Result.Result.InStockFin[0].LocalCurrId.Number")?.ToString() ?? "",
                        HISINCLUDEDTAX = _saveObj.SelectToken("Result.Result.InStockFin[0].IsIncludedTax")?.ToString().ToUpper() == "TRUE" ? 1 : 0,
                        HISPRICEEXCLUDETAX = _saveObj.SelectToken("Result.Result.InStockFin[0].ISPRICEEXCLUDETAX")?.ToString().ToUpper() == "TRUE" ? 1 : 0,
                    };
                    //插入主表
                    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,HSTOCKERGROUPNumber,HPURCHASERGROUPID,HPURCHASERGROUPNumber" +
                    ",HDEMANDORGID,HCORRESPONDORGID,HPROVIDERCONTACTID,HPROVIDERCONTACTNumber,HSUPPLYID,HSETTLEID" +
                    ",HCHARGEID,HPURCHASEDEPTID,HBUSINESSTYPE,HSUPPLYADDRESS,HPAYORGID,HSETTLEORGID" +
                    ",HSETTLETYPEID,HSETTLETYPENumber,HPAYCONDITIONID,HPAYCONDITIONNumber,HSETTLECURRID,HSETTLECURRNumber" +
                    ",HEXCHANGETYPEID,HEXCHANGETYPENumber,HDISCOUNTLISTID,HDISCOUNTLISTNumber,HEXCHANGERATE,HPRICETIMEPOINT" +
                    ",HLOCALCURRID,HLOCALCURRNumber,HISINCLUDEDTAX,HISPRICEEXCLUDETAX,HPURCHASERNumber,HSTOCKERNumber" +
                    ") " +
                    " values(" + MainData.HInterID.ToString() + "," + MainData.HYear.ToString() + "," + MainData.HPeriod.ToString() + ",'" + MainData.HBillNo + "','" + MainData.HBillType + "','" + MainData.HBillSubType + "'" +
                    ",'" + MainData.HMainSourceBillType + "','" + MainData.HDate + "'," + MainData.HSupID.ToString() + "," + MainData.HWHID.ToString() + "," + MainData.HSCWHID.ToString() + "," + MainData.HEmpID.ToString() +
                    ", " + MainData.HManagerID.ToString() + "," + MainData.HSecManagerID.ToString() + "," + MainData.HKeeperID.ToString() + "," + MainData.HDeptID.ToString() + "," + MainData.HCurID.ToString() +
                    ",'" + MainData.HSeOrderBillNo + "','" + MainData.HExplanation + "','" + MainData.HRemark + "','" + MainData.HInnerBillNo + "'," + DBUtility.ClsPub.BoolToString(MainData.HRedBlueFlag) + "," + MainData.HBillStatus.ToString() +
                    ",'" + MainData.HMaker + "','" + MainData.HMakeDate + "','" + MainData.HChecker + "'," + (MainData.HCheckDate == "" ? "NULL" : "'" + MainData.HCheckDate + "'") +
                    ",'" + MainData.HUpDater + "'," + (MainData.HUpDateDate == "" ? "NULL" : "'" + MainData.HUpDateDate + "'") + ",'" + MainData.HDeleteMan + "'," + (MainData.HDeleteDate == "" ? "NULL" : "'" + MainData.HDeleteDate + "'") +
                    ", " + MainData.HOWNERID.ToString() + ",'" + MainData.HOWNERTYPEID + "'," + MainData.HERPInterID.ToString() + ",'" + MainData.HERPBillType + "','" + MainData.HERPBillNo + "'" +
                    ", " + MainData.HPRDORGID.ToString() + "," + MainData.HSTOCKORGID.ToString() + "," + MainData.HSTOCKERGROUPID.ToString() + ",'" + MainData.HSTOCKERGROUPNumber + "'," + MainData.HPURCHASERGROUPID.ToString() + ",'" + MainData.HPURCHASERGROUPNumber + "'" +
                    ", " + MainData.HDEMANDORGID.ToString() + "," + MainData.HCORRESPONDORGID.ToString() + "," + MainData.HPROVIDERCONTACTID.ToString() + ",'" + MainData.HPROVIDERCONTACTNumber + "'," + MainData.HSUPPLYID.ToString() + "," + MainData.HSETTLEID.ToString() +
                    ", " + MainData.HCHARGEID.ToString() + "," + MainData.HPURCHASEDEPTID.ToString() + ",'" + MainData.HBUSINESSTYPE + "','" + MainData.HSUPPLYADDRESS + "'," + MainData.HPAYORGID.ToString() + "," + MainData.HSETTLEORGID.ToString() +
                    ", " + MainData.HSETTLETYPEID.ToString() + ",'" + MainData.HSETTLETYPENumber + "'," + MainData.HPAYCONDITIONID.ToString() + ",'" + MainData.HPAYCONDITIONNumber + "'," + MainData.HSETTLECURRID.ToString() + ",'" + MainData.HSETTLECURRNumber + "'" +
                    ", " + MainData.HEXCHANGETYPEID.ToString() + ",'" + MainData.HEXCHANGETYPENumber + "'," + MainData.HDISCOUNTLISTID.ToString() + ",'" + MainData.HDISCOUNTLISTNumber + "'," + MainData.HEXCHANGERATE.ToString() + ",'" + MainData.HPRICETIMEPOINT + "'" +
                    ", " + MainData.HLOCALCURRID.ToString() + ",'" + MainData.HLOCALCURRNumber + "','" + MainData.HISINCLUDEDTAX + "','" + MainData.HISPRICEEXCLUDETAX + "','" + MainData.HPURCHASERNumber + "','" + MainData.HSTOCKERNumber + "'" +
                    ") ");
                    //子表数据赋值
                    var dataArr = _saveObj.SelectToken("Result.Result.InStockEntry") as JArray;
                    if (dataArr != null)
                    {
                        foreach (var oSub in dataArr)
                        {
                            var SubData = new
                            {
                                HInterID = HInterID,
                                HEntryID = oSub.SelectToken("Id")?.ToString() ?? "0",
                                HMTONo = oSub.SelectToken("MtoNo")?.ToString() ?? "",
                                HPlanMode = 0,
                                HRemark = oSub.SelectToken("Note")?.ToString() ?? "",
                                HExpressNumber = "",
                                HMaterID = oSub.SelectToken("MaterialId_Id")?.ToString() ?? "0",
                                HUnitID = oSub.SelectToken("UnitID_Id")?.ToString() ?? "0",
                                HBatchNo = oSub.SelectToken("Lot_Text")?.ToString() ?? "",
                                HPropertyID = oSub.SelectToken("AuxPropId_Id")?.ToString() ?? "0",
                                HWHID = oSub.SelectToken("StockId_Id")?.ToString() ?? "0",
                                HSPID = oSub.SelectToken("StockLocId_Id")?.ToString() ?? "0",
                                HSCWHID = 0,
                                HSCSPID = 0,
                                HQtyMust = oSub.SelectToken("MustQty")?.ToString() ?? "0",
                                HQty = oSub.SelectToken("RealQty")?.ToString() ?? "0",
                                HPrice = oSub.SelectToken("Price")?.ToString() ?? "0",
                                HMoney = oSub.SelectToken("Amount")?.ToString() ?? "0",
                                HTaxPrice = oSub.SelectToken("TaxPrice")?.ToString() ?? "0",
                                HTaxRate = oSub.SelectToken("TaxRate")?.ToString() ?? "0",
                                HTaxMoney = oSub.SelectToken("Amount")?.ToString() ?? "0",
                                HRelationQty = oSub.SelectToken("ReturnJoinQty")?.ToString() ?? "0",
                                HRelationMoney = 0,
                                HSourceInterID = 0,
                                HSourceEntryID = 0,
                                HSourceBillNo = oSub.SelectToken("SRCBillNo")?.ToString() ?? "",
                                HSourceBillType = "",
                                HERPInterID = _saveObj.SelectToken("Result.Result.Id")?.ToString() ?? "0",
                                HERPEntryID = oSub.SelectToken("Id")?.ToString() ?? "0",
                                HERPBillNo_Sub = "",
                                HPOOrderInterID = 0,
                                HPOOrderEntryID = oSub.SelectToken("POORDERENTRYID")?.ToString() ?? "0",
                                HPOOrderBillNo = oSub.SelectToken("POOrderNo")?.ToString() ?? "",
                                HSeOrderInterID = 0,
                                HSeOrderEntryID = 0,
                                HSeOrderBillNo = "",
                                HICMOInterID = 0,
                                HICMOEntryID = 0,
                                HICMOBillNo = "",
                                HWWOrderInterID = 0,
                                HWWOrderEntryID = 0,
                                HWWOrderBillNo = "",
                                HProduceDate = oSub.SelectToken("ProduceDate")?.ToString(),
                                HExpiryDate = oSub.SelectToken("EXPIRYDATE")?.ToString(),
                                HOWNERID = oSub.SelectToken("OWNERID_Id")?.ToString() ?? "0",
                                HOWNERTYPEID = oSub.SelectToken("OWNERTYPEID")?.ToString() ?? "",
                                HKEEPERID = oSub.SelectToken("KeeperID_Id")?.ToString() ?? "0",
                                HKEEPERTYPEID = oSub.SelectToken("KeeperTypeID")?.ToString() ?? "",
                                HSUPPLIERLOT = oSub.SelectToken("SupplierLot")?.ToString() ?? "",
                                HREQTRACENO = oSub.SelectToken("DemandNo")?.ToString() ?? "",
                                HPROJECTNO = oSub.SelectToken("ProjectNo")?.ToString() ?? "",
                                HGIVEAWAY = oSub.SelectToken("GiveAway")?.ToString().ToUpper() == "TRUE" ? 1 : 0,
                                HSYSPRICE = oSub.SelectToken("SysPrice")?.ToString() ?? "0",
                                HPRICECOEFFICIENT = oSub.SelectToken("PriceCoefficient")?.ToString() ?? "0",
                                HDISCOUNTRATE = oSub.SelectToken("DiscountRate")?.ToString() ?? "0",
                                HBASEUNITPRICE = oSub.SelectToken("BaseUnitPrice")?.ToString() ?? "0",
                                HTAXCOMBINATION = oSub.SelectToken("TaxCombination_Id")?.ToString() ?? "0",
                                HTAXCOMBINATIONNumber = oSub.SelectToken("TaxCombination.Number")?.ToString() ?? "",
                                HPRICELISTENTRY = oSub.SelectToken("PriceListEntry_Id")?.ToString() ?? "0",
                                HPRICELISTENTRYNumber = oSub.SelectToken("PriceListEntry.Number")?.ToString() ?? "",
                                HCOSTPRICE = oSub.SelectToken("CostPrice")?.ToString() ?? "0",
                                HSEQ = oSub.SelectToken("Seq")?.ToString() ?? "0",
                                HROWTYPE = oSub.SelectToken("RowType")?.ToString() ?? "",
                                HPARENTMATID = oSub.SelectToken("ParentMatId_Id")?.ToString() ?? "0",
                                HPRILSTENTRYID = oSub.SelectToken("PriLstEntryId")?.ToString() ?? "",
                                HPURBASENUM = oSub.SelectToken("PurBaseNum")?.ToString() ?? "0",
                                HSTOCKBASEDEN = oSub.SelectToken("FStockBaseDen")?.ToString() ?? "0",
                                HBFLOWID = oSub.SelectToken("BFLowId_Id")?.ToString() ?? "",
                                HSTOCKSTATUSID = oSub.SelectToken("StockStatusId_Id")?.ToString() ?? "0",
                                HSTOCKSTATUSNumber = oSub.SelectToken("StockStatusId.Number")?.ToString() ?? "",
                                HPRICEUNITID = oSub.SelectToken("PriceUnitID_Id")?.ToString() ?? "0",
                                HBASEUNITID = oSub.SelectToken("BaseUnitID_Id")?.ToString() ?? "0",
                                HSNUNITID = oSub.SelectToken("SNUnitID_Id")?.ToString() ?? "0",
                                HREMAININSTOCKUNITID = oSub.SelectToken("RemainInStockUnitId_Id")?.ToString() ?? "0",
                                HEXTAUXUNITID = oSub.SelectToken("ExtAuxUnitId_Id")?.ToString() ?? "0",
                                HTAXRATEID = oSub.SelectToken("STK_INSTOCKENTRY_TAX.TaxRateId_Id")?.ToString() ?? "0",
                                HTAXRATENumber = oSub.SelectToken("STK_INSTOCKENTRY_TAX.TaxRateId.Number")?.ToString() ?? "",
                                HTAXRATE_TAX = oSub.SelectToken("STK_INSTOCKENTRY_TAX.TaxRate")?.ToString() ?? "0",
                                HTAXAMOUNT = oSub.SelectToken("STK_INSTOCKENTRY_TAX.TaxAmount")?.ToString() ?? "0",
                                HCOSTPERCENT = oSub.SelectToken("STK_INSTOCKENTRY_TAX.CostPercent")?.ToString() ?? "0",
                                HCOSTAMOUNT = oSub.SelectToken("STK_INSTOCKENTRY_TAX.CostAmount")?.ToString() ?? "0",
                                HVAT = oSub.SelectToken("STK_INSTOCKENTRY_TAX.VAT")?.ToString().ToUpper() == "TRUE" ? 1 : 0,
                                HSELLERWITHHOLDING = oSub.SelectToken("STK_INSTOCKENTRY_TAX.SellerWithholding")?.ToString().ToUpper() == "TRUE" ? 1 : 0,
                                HBUYERWITHHOLDING = oSub.SelectToken("STK_INSTOCKENTRY_TAX.BuyerWithholding")?.ToString().ToUpper() == "TRUE" ? 1 : 0,
                            };
                            //插入子表
                            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,HTAXCOMBINATIONNumber,HPRICELISTENTRY,HPRICELISTENTRYNumber" +
                            ",HCOSTPRICE,HSEQ,HROWTYPE,HPARENTMATID,HPRILSTENTRYID,HPURBASENUM" +
                            ",HSTOCKBASEDEN,HBFLOWID,HSTOCKSTATUSID,HSTOCKSTATUSNumber,HPRICEUNITID,HBASEUNITID" +
                            ",HSNUNITID,HREMAININSTOCKUNITID,HEXTAUXUNITID,HTAXRATEID,HTAXRATENumber,HTAXRATE_TAX" +
                            ",HTAXAMOUNT,HCOSTPERCENT,HCOSTAMOUNT,HVAT,HSELLERWITHHOLDING,HBUYERWITHHOLDING" +
                            ") " +
                            " values(" + SubData.HInterID.ToString() + "," + SubData.HEntryID.ToString() + ",'" + SubData.HMTONo + "'," + SubData.HPlanMode.ToString() + ",'" + SubData.HRemark + "','" + SubData.HExpressNumber + "'" +
                            ", " + SubData.HMaterID.ToString() + "," + SubData.HUnitID.ToString() + ",'" + SubData.HBatchNo + "'," + SubData.HPropertyID.ToString() + "," + SubData.HWHID.ToString() + "," + SubData.HSPID.ToString() +
                            ", " + SubData.HSCWHID.ToString() + "," + SubData.HSCSPID.ToString() + "," + SubData.HQtyMust.ToString() + "," + SubData.HQty.ToString() + "," + SubData.HPrice.ToString() + "," + SubData.HMoney.ToString() +
                            ", " + SubData.HTaxPrice.ToString() + "," + SubData.HTaxRate.ToString() + "," + SubData.HTaxMoney.ToString() + "," + SubData.HRelationQty.ToString() + "," + SubData.HRelationMoney.ToString() +
                            ", " + SubData.HSourceInterID.ToString() + "," + SubData.HSourceEntryID.ToString() + ",'" + SubData.HSourceBillNo + "','" + SubData.HSourceBillType + "'" +
                            ", " + SubData.HERPInterID.ToString() + "," + SubData.HERPEntryID.ToString() + ",'" + SubData.HERPBillNo_Sub + "'" +
                            ", " + SubData.HPOOrderInterID.ToString() + "," + SubData.HPOOrderEntryID.ToString() + ",'" + SubData.HPOOrderBillNo + "'," + SubData.HSeOrderInterID.ToString() + "," + SubData.HSeOrderEntryID.ToString() + ",'" + SubData.HSeOrderBillNo + "'" +
                            ", " + SubData.HICMOInterID.ToString() + "," + SubData.HICMOEntryID.ToString() + ",'" + SubData.HICMOBillNo + "'," + SubData.HWWOrderInterID.ToString() + "," + SubData.HWWOrderEntryID.ToString() + ",'" + SubData.HWWOrderBillNo + "'" +
                            ", " + (SubData.HProduceDate == "" ? "NULL" : "'" + SubData.HProduceDate + "'") + "," + (SubData.HExpiryDate == "" ? "NULL" : "'" + SubData.HExpiryDate + "'") + "," + SubData.HOWNERID.ToString() + ",'" + SubData.HOWNERTYPEID + "'," + SubData.HKEEPERID.ToString() + ",'" + SubData.HKEEPERTYPEID + "'" +
                            ",'" + SubData.HSUPPLIERLOT + "','" + SubData.HREQTRACENO + "','" + SubData.HPROJECTNO + "','" + SubData.HGIVEAWAY + "'," + SubData.HSYSPRICE.ToString() + "," + SubData.HPRICECOEFFICIENT.ToString() +
                            ", " + SubData.HDISCOUNTRATE.ToString() + "," + SubData.HBASEUNITPRICE.ToString() + "," + SubData.HTAXCOMBINATION.ToString() + ",'" + SubData.HTAXCOMBINATIONNumber + "'," + SubData.HPRICELISTENTRY.ToString() + ",'" + SubData.HPRICELISTENTRYNumber + "'" +
                            ", " + SubData.HCOSTPRICE.ToString() + "," + SubData.HSEQ.ToString() + ",'" + SubData.HROWTYPE + "'," + SubData.HPARENTMATID.ToString() + ",'" + SubData.HPRILSTENTRYID + "'," + SubData.HPURBASENUM.ToString() +
                            ", " + SubData.HSTOCKBASEDEN.ToString() + ",'" + SubData.HBFLOWID + "'," + SubData.HSTOCKSTATUSID.ToString() + ",'" + SubData.HSTOCKSTATUSNumber + "'," + SubData.HPRICEUNITID.ToString() + "," + SubData.HBASEUNITID.ToString() +
                            ", " + SubData.HSNUNITID.ToString() + "," + SubData.HREMAININSTOCKUNITID.ToString() + "," + SubData.HEXTAUXUNITID.ToString() + "," + SubData.HTAXRATEID.ToString() + ",'" + SubData.HTAXRATENumber + "'," + SubData.HTAXRATE_TAX.ToString() +
                            ", " + SubData.HTAXAMOUNT.ToString() + "," + SubData.HCOSTPERCENT.ToString() + "," + SubData.HCOSTAMOUNT.ToString() + ",'" + SubData.HVAT + "','" + SubData.HSELLERWITHHOLDING + "','" + SubData.HBUYERWITHHOLDING + "'" +
                            ") ");
                        }
                    }
                    return true;
                }
            }
            else
            {
                sErrMsg = "同步单据失败!金蝶云登录失败!";
                return false;
            }
        }
        #endregion
        #region 生产领料单同步     根据单据号同步
        [WebMethod]
@@ -55972,6 +56286,7 @@
            SQLHelper.ClsCN oCn = new SQLHelper.ClsCN();
            Model.ClsKf_ICStockBill_WMS oBar = new Model.ClsKf_ICStockBill_WMS();
            Int64 sMulSourceFlag = 0;   //多源单标志(0为非多源单模式,1为多源单模式)
            Int64 sHSourceFlag = 1;     //是否重新同步源单信息(1为同步,0为不同步)
            //获取系统参数
            Pub_Class.ClsXt_SystemParameter oSystemParameter = new Pub_Class.ClsXt_SystemParameter();
@@ -55984,6 +56299,35 @@
            if (oSystemParameter.omodel.Kf_POStockInBackBill_MulSourceBill.ToUpper() == "Y") //系统参数  采购退料单-多源单模式
            {
                sMulSourceFlag = 1;
                //判断源单是否已存在缓存列表中
                DataSet dsSource = oCn.RunProcReturn(" select 1 from KF_PonderationBillMain_Temp with(nolock) where HInterID= " + HInterID.ToString() + " and HBillType= '" + HBillType + "' and HSourceBillNo= '" + HSourceBillNo + "' and HQtyMust<>0 ", "KF_PonderationBillMain_Temp");
                if (dsSource == null || dsSource.Tables[0].Rows.Count == 0)
                {
                    sHSourceFlag = 1;
                }
                else
                {
                    sHSourceFlag = 0;
                }
            }
            //重新同步源单信息
            if (sHSourceFlag == 1)
            {
                if (oSystemParameter.omodel.WMS_CloudMode.ToUpper() == "N") //系统参数  是否为私有云模式(N为公有云模式,Y为私有云模式)
                {
                    if (HSourceBillType == "1201")
                    {
                        //采购入库单
                        GetWebAPIToLocal_POStockIn(HSourceBillNo, HSourceBillType, HMaker, ref sErrMsg);
                    }
                }
                else
                {
                    //私有云模式
                    oCn.RunProc("exec h_p_WMS_ERPSourceBillToLocal '" + HSourceBillNo + "','" + HSourceBillType + "'");
                }
            }
            //将源单信息存入条码出入库临时表