销售退货扫描源单调用方法修改,增加通过WEBAPI同步金蝶云退货通知单至本地数据库功能
1个文件已修改
305 ■■■■■ 已修改文件
CLOUDWEB/WebService1.asmx.cs 305 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CLOUDWEB/WebService1.asmx.cs
@@ -610,7 +610,7 @@
                        HBillStatus = _saveObj.SelectToken("Result.Result.ApproverID_Id")?.ToString() == "0" ? 1 : 2,
                        HCusID = _saveObj.SelectToken("Result.Result.CustomerID_Id")?.ToString() ?? "0",
                        HManagerID = _saveObj.SelectToken("Result.Result.StockerID_Id")?.ToString() ?? "0",
                        HSTOCKERNumber = _saveObj.SelectToken("Result.Result.Stocker.Number")?.ToString() ?? "0",
                        HSTOCKERNumber = _saveObj.SelectToken("Result.Result.Stocker.Number")?.ToString() ?? "",
                        HDeptID = _saveObj.SelectToken("Result.Result.DeliveryDeptID_Id")?.ToString() ?? "0",
                        HRemark = _saveObj.SelectToken("Result.Result.Note")?.ToString() ?? "",
                        HAddress = _saveObj.SelectToken("Result.Result.ReceiveAddress")?.ToString() ?? "",
@@ -807,6 +807,279 @@
                            ", " + MainData.HRECEIPTCONDITIONID.ToString() + "," + MainData.HEXCHANGERATE.ToString() + "," + DBUtility.ClsPub.BoolToString(MainData.HISINCLUDEDTAX) + "," + DBUtility.ClsPub.BoolToString(MainData.HISPRICEEXCLUDETAX) + "," + SubData.HTAXRATEID.ToString() +
                            ",'" + SubData.HTAXRATENumber + "'," + SubData.HTaxRate_TAX.ToString() + "," + SubData.HCOSTPERCENT.ToString() + "," + DBUtility.ClsPub.BoolToString(SubData.HVAT) + "," + DBUtility.ClsPub.BoolToString(SubData.HSELLERWITHHOLDING) +
                            ", " + DBUtility.ClsPub.BoolToString(SubData.HBUYERWITHHOLDING) +
                            ") ");
                        }
                    }
                    return true;
                }
            }
            else
            {
                sErrMsg = "同步单据失败!金蝶云登录失败!";
                return false;
            }
        }
        #endregion
        #region 退货通知单同步     根据单据号同步
        [WebMethod]
        public bool GetWebAPIToLocal_SeOutStockBack(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[] { "SAL_RETURNNOTICE", 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
                {
                    //主表数据赋值
                    var MainData = new
                    {
                        HInterID = _saveObj.SelectToken("Result.Result.Id")?.ToString() ?? "0",
                        HYear = DateTime.Now.Year,
                        HPeriod = DateTime.Now.Month,
                        HBillType = HBillType,
                        HBillSubType = HBillType,
                        HDate = _saveObj.SelectToken("Result.Result.Date")?.ToString(),
                        HBillNo = _saveObj.SelectToken("Result.Result.BillNo")?.ToString() ?? "",
                        HBillStatus = _saveObj.SelectToken("Result.Result.ApproverId_Id")?.ToString() == "0" ? 1 : 2,
                        HCusID = _saveObj.SelectToken("Result.Result.RetcustId_Id")?.ToString() ?? "0",
                        HManagerID = _saveObj.SelectToken("Result.Result.StockerId_Id")?.ToString() ?? "0",
                        HSTOCKERNumber = _saveObj.SelectToken("Result.Result.StockerId.Number")?.ToString() ?? "",
                        HDeptID = _saveObj.SelectToken("Result.Result.Sledeptid_Id")?.ToString() ?? "0",
                        HRemark = "",
                        HAddress = _saveObj.SelectToken("Result.Result.ReceiveAddress")?.ToString() ?? "",
                        HSSID = 0,
                        HCurID = 0,
                        HWHID = 0,
                        HExRate = 1,
                        HEmpID = _saveObj.SelectToken("Result.Result.SalesManId_Id")?.ToString() ?? "0",
                        HSALESMANNumber = _saveObj.SelectToken("Result.Result.SalesManId.Number")?.ToString() ?? "",
                        HExplanation = "WebAPI导入",
                        HInnerBillNo = "",
                        HSALEORGID = _saveObj.SelectToken("Result.Result.SaleOrgId_Id")?.ToString() ?? "0",
                        HDELIVERYORGID = _saveObj.SelectToken("Result.Result.RetorgId_Id")?.ToString() ?? "0",
                        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.BillTypeID_Id")?.ToString() ?? "",
                        HMaker = _saveObj.SelectToken("Result.Result.FCreatorId.Name")?.ToString() ?? "",
                        HMakeDate = _saveObj.SelectToken("Result.Result.FCreateDate")?.ToString(),
                        HChecker = _saveObj.SelectToken("Result.Result.ApproverId.Name")?.ToString() ?? "",
                        HCheckDate = _saveObj.SelectToken("Result.Result.ApproveDate")?.ToString(),
                        HUpDater = _saveObj.SelectToken("Result.Result.ModifierId.Name")?.ToString() ?? "",
                        HUpDateDate = _saveObj.SelectToken("Result.Result.FModifyDate")?.ToString(),
                        HDeleteMan = _saveObj.SelectToken("Result.Result.CancellerId.Name")?.ToString() ?? "",
                        HDeleteDate = _saveObj.SelectToken("Result.Result.CancelDate")?.ToString(),
                        HSETTLECUSID = _saveObj.SelectToken("Result.Result.SettleCusId_Id")?.ToString() ?? "0",
                        HPAYCUSID = _saveObj.SelectToken("Result.Result.PayCusId_Id")?.ToString() ?? "0",
                        HRECEIVECUSID = _saveObj.SelectToken("Result.Result.ReceiveCusId_Id")?.ToString() ?? "0",
                        HSTOCKERGROUPID = _saveObj.SelectToken("Result.Result.StockerGroupId_Id")?.ToString() ?? "0",
                        HSTOCKERGROUPNumber = _saveObj.SelectToken("Result.Result.StockerGroupId.Number")?.ToString() ?? "",
                        HSALEGROUPID = _saveObj.SelectToken("Result.Result.SaleGroupId_Id")?.ToString() ?? "0",
                        HSALEGROUPNumber = _saveObj.SelectToken("Result.Result.SaleGroupId.Number")?.ToString() ?? "",
                        HHEADLOCID = _saveObj.SelectToken("Result.Result.HeadLocId_Id")?.ToString() ?? "0",
                        HHEADLOCNumber = _saveObj.SelectToken("Result.Result.HeadLocId.Number")?.ToString() ?? "",
                        HRECCONTACTID = _saveObj.SelectToken("Result.Result.ReceiveCusContact_Id")?.ToString() ?? "0",
                        HRECCONTACTNumber = _saveObj.SelectToken("Result.Result.ReceiveCusContact.Number")?.ToString() ?? "",
                        HRECCONTACTName = _saveObj.SelectToken("Result.Result.ReceiveCusContact.Name[0].Value")?.ToString() ?? "",
                        HRETURNREASON = _saveObj.SelectToken("Result.Result.ReturnReason_Id")?.ToString() ?? "",
                        HRETURNREASONNumber = _saveObj.SelectToken("Result.Result.ReturnReason.Number")?.ToString() ?? "",
                        HRETDEPTID = _saveObj.SelectToken("Result.Result.RetDeptId_Id")?.ToString() ?? "0",
                        HDESCRIPTION = _saveObj.SelectToken("Result.Result.Description")?.ToString() ?? "",
                        HBUSINESSTYPE = _saveObj.SelectToken("Result.Result.BussinessType")?.ToString() ?? "",
                        HSETTLEORGID = _saveObj.SelectToken("Result.Result.SAL_RETURNNOTICEFIN[0].SettleOrgId_Id")?.ToString() ?? "0",
                        HSETTLETYPEID = _saveObj.SelectToken("Result.Result.SAL_RETURNNOTICEFIN[0].SettleTypeId_Id")?.ToString() ?? "0",
                        HSETTLETYPENumber = _saveObj.SelectToken("Result.Result.SAL_RETURNNOTICEFIN[0].SettleTypeId.Number")?.ToString() ?? "",
                        HCHAGECONDITION = _saveObj.SelectToken("Result.Result.SAL_RETURNNOTICEFIN[0].ChageCondition_Id")?.ToString() ?? "0",
                        HCHAGECONDITIONNumber = _saveObj.SelectToken("Result.Result.SAL_RETURNNOTICEFIN[0].ChageCondition.Number")?.ToString() ?? "",
                        HSETTLECURRID = _saveObj.SelectToken("Result.Result.SAL_RETURNNOTICEFIN[0].SettleCurrId_Id")?.ToString() ?? "0",
                        HSETTLECURRNumber = _saveObj.SelectToken("Result.Result.SAL_RETURNNOTICEFIN[0].SettleCurrId.Number")?.ToString() ?? "",
                        HLOCALCURRID = _saveObj.SelectToken("Result.Result.SAL_RETURNNOTICEFIN[0].LocalCurrId_Id")?.ToString() ?? "0",
                        HLOCALCURRNumber = _saveObj.SelectToken("Result.Result.SAL_RETURNNOTICEFIN[0].LocalCurrId.Number")?.ToString() ?? "",
                        HEXCHANGETYPEID = _saveObj.SelectToken("Result.Result.SAL_RETURNNOTICEFIN[0].ExchangeTypeId_Id")?.ToString() ?? "0",
                        HEXCHANGETYPENumber = _saveObj.SelectToken("Result.Result.SAL_RETURNNOTICEFIN[0].ExchangeTypeId.Number")?.ToString() ?? "",
                        HISINCLUDEDTAX = _saveObj.SelectToken("Result.Result.SAL_RETURNNOTICEFIN[0].IsIncludedTax")?.ToString().ToUpper() == "TRUE" ? 1 : 0,
                        HISPRICEEXCLUDETAX = _saveObj.SelectToken("Result.Result.SAL_RETURNNOTICEFIN[0].IsPriceExcludeTax")?.ToString().ToUpper() == "TRUE" ? 1 : 0,
                    };
                    //根据单据ID,删除本地数据
                    oCn.RunProc("Delete from Xs_SeOutStockBackBillMain where HInterID=" + MainData.HInterID.ToString(), ref DBUtility.ClsPub.sExeReturnInfo);
                    oCn.RunProc("Delete from Xs_SeOutStockBackbillSub where HInterID=" + MainData.HInterID.ToString(), ref DBUtility.ClsPub.sExeReturnInfo);
                    //插入主表
                    oCn.RunProc("Insert Into Xs_SeOutStockBackBillMain " +
                    "(HInterID,HYear,HPeriod,HBillType,HBillSubType,HDate" +
                    ",HBillNo,HBillStatus" +
                    ",HCusID,HManagerID,HDeptID,HRemark,HAddress,HSSID" +
                    ",HCurID,HWHID,HExRate,HEmpID,HExplanation,HInnerBillNo" +
                    ",HSALEORGID,HDELIVERYORGID,HOWNERID,HOWNERTYPEID,HERPInterID,HERPBillType" +
                    ",HMaker,HMakeDate,HChecker,HCheckDate" +
                    ",HUpDater,HUpDateDate,HDeleteMan,HDeleteDate" +
                    ",HSETTLECUSID,HPAYCUSID,HRECEIVECUSID,HSALEGROUPID,HSALEGROUPNumber" +
                    ",HHEADLOCID,HHEADLOCNumber,HRECCONTACTID,HRECCONTACTNumber,HRECCONTACTName" +
                    ",HRETURNREASON,HRETURNREASONNumber,HRETDEPTID,HDESCRIPTION,HBUSINESSTYPE" +
                    ",HSTOCKERNumber,HSALESMANNumber,HSETTLETYPENumber,HSTOCKERGROUPID,HSTOCKERGROUPNumber" +
                    ",HCHAGECONDITIONNumber,HSETTLECURRNumber,HLOCALCURRNumber,HEXCHANGETYPENumber" +
                    ") " +
                    " values(" + MainData.HInterID.ToString() + "," + MainData.HYear.ToString() + "," + MainData.HPeriod.ToString() + ",'" + MainData.HBillType + "','" + MainData.HBillSubType + "','" + MainData.HDate + "'" +
                    ",'" + MainData.HBillNo + "'," + MainData.HBillStatus.ToString() +
                    ", " + MainData.HCusID.ToString() + "," + MainData.HManagerID.ToString() + "," + MainData.HDeptID.ToString() + ",'" + MainData.HRemark + "','" + MainData.HAddress + "'," + MainData.HSSID.ToString() +
                    ", " + MainData.HCurID.ToString() + "," + MainData.HWHID.ToString() + "," + MainData.HExRate.ToString() + "," + MainData.HEmpID.ToString() + ",'" + MainData.HExplanation + "','" + MainData.HInnerBillNo + "'" +
                    ", " + MainData.HSALEORGID.ToString() + "," + MainData.HDELIVERYORGID.ToString() + "," + MainData.HOWNERID.ToString() + ",'" + MainData.HOWNERTYPEID + "'," + MainData.HERPInterID.ToString() + ",'" + MainData.HERPBillType + "'" +
                    ",'" + 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.HSETTLECUSID.ToString() + "," + MainData.HPAYCUSID.ToString() + "," + MainData.HRECEIVECUSID.ToString() + "," + MainData.HSALEGROUPID.ToString() + ",'" + MainData.HSALEGROUPNumber + "'" +
                    ", " + MainData.HHEADLOCID.ToString() + ",'" + MainData.HHEADLOCNumber + "'," + MainData.HRECCONTACTID.ToString() + ",'" + MainData.HRECCONTACTNumber + "','" + MainData.HRECCONTACTName + "'" +
                    ",'" + MainData.HRETURNREASON + "','" + MainData.HRETURNREASONNumber + "'," + MainData.HRETDEPTID.ToString() + ",'" + MainData.HDESCRIPTION + "','" + MainData.HBUSINESSTYPE + "'" +
                    ",'" + MainData.HSTOCKERNumber + "','" + MainData.HSALESMANNumber + "','" + MainData.HSETTLETYPENumber + "'," + MainData.HSTOCKERGROUPID.ToString() + ",'" + MainData.HSTOCKERGROUPNumber + "'" +
                    ",'" + MainData.HCHAGECONDITIONNumber + "','" + MainData.HSETTLECURRNumber + "','" + MainData.HLOCALCURRNumber + "','" + MainData.HEXCHANGETYPENumber + "'" +
                    ") ");
                    //子表数据赋值
                    var dataArr = _saveObj.SelectToken("Result.Result.SAL_RETURNNOTICEENTRY") as JArray;
                    if (dataArr != null)
                    {
                        foreach (var oSub in dataArr)
                        {
                            var SubData = new
                            {
                                HInterID = _saveObj.SelectToken("Result.Result.Id")?.ToString() ?? "0",
                                HEntryID = oSub.SelectToken("Id")?.ToString() ?? "0",
                                HMaterID = oSub.SelectToken("MaterialId_Id")?.ToString() ?? "0",
                                HUnitID = oSub.SelectToken("UnitID_Id")?.ToString() ?? "0",
                                HQty = oSub.SelectToken("Qty")?.ToString() ?? "0",
                                HPrice = oSub.SelectToken("Price")?.ToString() ?? "0",
                                HMoney = 0,
                                HTaxMoney = 0,
                                HTaxPrice = oSub.SelectToken("TaxPrice")?.ToString() ?? "0",
                                HWHID = oSub.SelectToken("StockId_Id")?.ToString() ?? "0",
                                HRemark = "",
                                HBomID = oSub.SelectToken("BOMId_Id")?.ToString() ?? "0",
                                HBomNumber = oSub.SelectToken("BOMId.Number")?.ToString() ?? "",
                                HSourceInterID = oSub.SelectToken("FEntity_Link[0].SBillId")?.ToString() ?? "0",
                                HSourceEntryID = oSub.SelectToken("FEntity_Link[0].SId")?.ToString() ?? "0",
                                HSourceBillNo = oSub.SelectToken("SrcBillNo")?.ToString() ?? "",
                                HSourceBillType = oSub.SelectToken("SrcType")?.ToString() ?? "",
                                HSeOrderInterID = 0,
                                HSeOrderEntryID = oSub.SelectToken("SOEntryId")?.ToString() ?? "0",
                                HSeORderBillNo = oSub.SelectToken("OrderNo")?.ToString() ?? "",
                                HProduceDate = oSub.SelectToken("ProduceDate")?.ToString(),
                                HExpiryDate = oSub.SelectToken("ExpiryDate")?.ToString(),
                                HEXPUNIT = oSub.SelectToken("MaterialId.MaterialStock[0].ExpUnit")?.ToString() ?? "0",
                                HEXPPERIOD = oSub.SelectToken("MaterialId.MaterialStock[0].ExpPeriod")?.ToString() ?? "0",
                                HOWNERID = oSub.SelectToken("OwnerID_Id")?.ToString() ?? "0",
                                HOWNERTYPEID = oSub.SelectToken("OwnerTypeID")?.ToString() ?? "",
                                HRelationQty = oSub.SelectToken("JoinRetQty")?.ToString() ?? "0",
                                HAuxPropID = oSub.SelectToken("AuxpropId_Id")?.ToString() ?? "0",
                                HBatchNO = oSub.SelectToken("Lot_Text")?.ToString() ?? "",
                                HMTONo = oSub.SelectToken("MtoNo")?.ToString() ?? "",
                                HERPInterID = _saveObj.SelectToken("Result.Result.Id")?.ToString() ?? "0",
                                HERPEntryID = oSub.SelectToken("Id")?.ToString() ?? "0",
                                HSOBILLTYPEID = oSub.SelectToken("SOBILLTYPEID_Id")?.ToString() ?? "",
                                HSOBILLTYPENumber = oSub.SelectToken("SOBILLTYPEID.Number")?.ToString() ?? "",
                                HRMTYPE = oSub.SelectToken("RmType_Id")?.ToString() ?? "",
                                HRMTYPENumber = oSub.SelectToken("RmType.FNumber")?.ToString() ?? "",
                                HSTOCKUNITID = oSub.SelectToken("StockUnitID_Id")?.ToString() ?? "0",
                                HBASEUNITID = oSub.SelectToken("ASEUNITID_Id")?.ToString() ?? "0",
                                HDELIVERYDATE = oSub.SelectToken("Deliverydate")?.ToString() ?? "",
                                HDESCRIPTION = oSub.SelectToken("Description")?.ToString() ?? "",
                                HMAPID = oSub.SelectToken("MapId_Id")?.ToString() ?? "",
                                HPARENTMATID = oSub.SelectToken("ParentMatId_Id")?.ToString() ?? "0",
                                HISRETURNCHECK = oSub.SelectToken("IsReturnCheck")?.ToString().ToUpper() == "TRUE" ? 1 : 0,
                                HROWTYPE = oSub.SelectToken("RowType")?.ToString() ?? "",
                                HROWID = oSub.SelectToken("RowId")?.ToString() ?? "",
                                HPARENTROWID = oSub.SelectToken("ParentRowId")?.ToString() ?? "",
                                HTAXCOMBINATION = oSub.SelectToken("TaxCombination_Id")?.ToString() ?? "0",
                                HTAXCOMBINATIONNumber = oSub.SelectToken("TaxCombination.Number")?.ToString() ?? "",
                                HPRICEUNITID = oSub.SelectToken("PriceUnitId_Id")?.ToString() ?? "0",
                                HTaxRate = oSub.SelectToken("TaxRate")?.ToString() ?? "0",
                                HPRICECOEFFICIENT = oSub.SelectToken("PriceCoefficient")?.ToString() ?? "0",
                                HSYSPRICE = oSub.SelectToken("SysPrice")?.ToString() ?? "0",
                                HLIMITDOWNPRICE = oSub.SelectToken("LimitDownPrice")?.ToString() ?? "0",
                                HDISCOUNTRATE = oSub.SelectToken("DiscountRate")?.ToString() ?? "0",
                                HISFREE = oSub.SelectToken("IsFree")?.ToString().ToUpper() == "TRUE" ? 1 : 0,
                                HTAXRATEID = oSub.SelectToken("SAL_RETURNNOTICEENTRYTAX[0].TaxRateId_Id")?.ToString() ?? "0",
                                HTAXRATENumber = oSub.SelectToken("SAL_RETURNNOTICEENTRYTAX[0].TaxRateId.Number")?.ToString() ?? "",
                                HTaxRate_TAX = oSub.SelectToken("SAL_RETURNNOTICEENTRYTAX[0].TaxRate")?.ToString() ?? "0",
                                HTAXAMOUNT_TAX = oSub.SelectToken("SAL_RETURNNOTICEENTRYTAX[0].TaxAmount")?.ToString() ?? "0",
                                HCOSTPERCENT = oSub.SelectToken("SAL_RETURNNOTICEENTRYTAX[0].CostPercent")?.ToString() ?? "0",
                                HCOSTAMOUNT = oSub.SelectToken("SAL_RETURNNOTICEENTRYTAX[0].CostAmount")?.ToString() ?? "0",
                                HVAT = oSub.SelectToken("SAL_RETURNNOTICEENTRYTAX[0].VAT")?.ToString().ToUpper() == "TRUE" ? 1 : 0,
                                HSELLERWITHHOLDING = oSub.SelectToken("SAL_RETURNNOTICEENTRYTAX[0].SellerWithholding")?.ToString().ToUpper() == "TRUE" ? 1 : 0,
                                HBUYERWITHHOLDING = oSub.SelectToken("SAL_RETURNNOTICEENTRYTAX[0].BuyerWithholding")?.ToString().ToUpper() == "TRUE" ? 1 : 0,
                            };
                            //插入子表
                            oCn.RunProc("Insert Into Xs_SeOutStockBackbillSub " +
                            "(HInterID,HEntryID,HMaterID,HUnitID,HQty,HPrice" +
                            ",HMoney,HTaxMoney,HTaxPrice,HWHID,HRemark" +
                            ",HSourceInterID,HSourceEntryID,HSourceBillNo,HSourceBillType" +
                            ",HSeOrderInterID,HSeOrderEntryID,HSeORderBillNo" +
                            ",HProduceDate,HExpiryDate,HEXPUNIT,HEXPPERIOD" +
                            ",HBomID,HBomNumber,HOWNERID,HOWNERTYPEID,HSETTLEORGID" +
                            ",HRelationQty,HAuxPropID,HBatchNO,HMTONo,HERPInterID,HERPEntryID" +
                            ",HSOBILLTYPEID,HSOBILLTYPENumber,HRMTYPE,HRMTYPENumber,HSTOCKUNITID,HBASEUNITID" +
                            ",HDELIVERYDATE,HDESCRIPTION,HMAPID,HPARENTMATID,HISRETURNCHECK,HROWTYPE" +
                            ",HROWID,HPARENTROWID,HTAXCOMBINATION,HTAXCOMBINATIONNumber,HPRICEUNITID,HTaxRate" +
                            ",HPRICECOEFFICIENT,HSYSPRICE,HLIMITDOWNPRICE,HDISCOUNTRATE,HISFREE,HSETTLETYPEID" +
                            ",HCHAGECONDITION,HSETTLECURRID,HLOCALCURRID,HEXCHANGETYPEID,HISINCLUDEDTAX,HISPRICEEXCLUDETAX" +
                            ",HTAXRATEID,HTAXRATENumber,HTaxRate_TAX,HTAXAMOUNT_TAX,HCOSTPERCENT,HCOSTAMOUNT" +
                            ",HVAT,HSELLERWITHHOLDING,HBUYERWITHHOLDING" +
                            ") " +
                            " values(" + SubData.HInterID.ToString() + "," + SubData.HEntryID.ToString() + "," + SubData.HMaterID.ToString() + "," + SubData.HUnitID.ToString() + "," + SubData.HQty.ToString() + "," + SubData.HPrice.ToString() +
                            ", " + SubData.HMoney.ToString() + "," + SubData.HTaxMoney.ToString() + "," + SubData.HTaxPrice.ToString() + "," + SubData.HWHID.ToString() + ",'" + SubData.HRemark + "'" +
                            ", " + SubData.HSourceInterID.ToString() + "," + SubData.HSourceEntryID.ToString() + ",'" + SubData.HSourceBillNo + "','" + SubData.HSourceBillType + "'" +
                            ", " + SubData.HSeOrderInterID.ToString() + "," + SubData.HSeOrderEntryID.ToString() + ",'" + SubData.HSeORderBillNo + "'" +
                            ", " + (SubData.HProduceDate == "" ? "NULL" : "'" + SubData.HProduceDate + "'") + "," + (SubData.HExpiryDate == "" ? "NULL" : "'" + SubData.HExpiryDate + "'") + ",'" + SubData.HEXPUNIT + "'," + SubData.HEXPPERIOD.ToString() +
                            ", " + SubData.HBomID.ToString() + ",'" + SubData.HBomNumber + "'," + SubData.HOWNERID.ToString() + ",'" + SubData.HOWNERTYPEID + "'," + MainData.HSETTLEORGID.ToString() +
                            ", " + SubData.HRelationQty.ToString() + "," + SubData.HAuxPropID.ToString() + ",'" + SubData.HBatchNO + "','" + SubData.HMTONo + "'," + SubData.HERPInterID.ToString() + "," + SubData.HERPEntryID.ToString() +
                            ",'" + SubData.HSOBILLTYPEID + "','" + SubData.HSOBILLTYPENumber + "','" + SubData.HRMTYPE + "','" + SubData.HRMTYPENumber + "'," + SubData.HSTOCKUNITID.ToString() + "," + SubData.HBASEUNITID.ToString() +
                            ",'" + SubData.HDELIVERYDATE + "','" + SubData.HDESCRIPTION + "','" + SubData.HMAPID + "'," + SubData.HPARENTMATID.ToString() + "," + DBUtility.ClsPub.BoolToString(SubData.HISRETURNCHECK) + ",'" + SubData.HROWTYPE + "'" +
                            ",'" + SubData.HROWID + "','" + SubData.HPARENTROWID + "'," + SubData.HTAXCOMBINATION.ToString() + ",'" + SubData.HTAXCOMBINATIONNumber + "'," + SubData.HPRICEUNITID.ToString() + "," + SubData.HTaxRate.ToString() +
                            ", " + SubData.HPRICECOEFFICIENT.ToString() + "," + SubData.HSYSPRICE.ToString() + "," + SubData.HLIMITDOWNPRICE.ToString() + "," + SubData.HDISCOUNTRATE.ToString() + "," + DBUtility.ClsPub.BoolToString(SubData.HISFREE) + "," + MainData.HSETTLETYPEID.ToString() +
                            ", " + MainData.HCHAGECONDITION.ToString() + "," + MainData.HSETTLECURRID.ToString() + "," + MainData.HLOCALCURRID.ToString() + "," + MainData.HEXCHANGETYPEID.ToString() + "," + DBUtility.ClsPub.BoolToString(MainData.HISINCLUDEDTAX) + "," + DBUtility.ClsPub.BoolToString(MainData.HISPRICEEXCLUDETAX) +
                            ", " + SubData.HTAXRATEID.ToString() + ",'" + SubData.HTAXRATENumber + "'," + SubData.HTaxRate_TAX.ToString() + "," + SubData.HTAXAMOUNT_TAX.ToString() + "," + SubData.HCOSTPERCENT.ToString() + "," + SubData.HCOSTAMOUNT.ToString() +
                            ", " + DBUtility.ClsPub.BoolToString(SubData.HVAT) + "," + DBUtility.ClsPub.BoolToString(SubData.HSELLERWITHHOLDING) + "," + DBUtility.ClsPub.BoolToString(SubData.HBUYERWITHHOLDING) +
                            ") ");
                        }
                    }
@@ -57806,6 +58079,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();
@@ -57818,6 +58092,35 @@
            if (oSystemParameter.omodel.Kf_SellOutBackBill_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 == "1403")
                    {
                        //退货通知单
                        GetWebAPIToLocal_SeOutStockBack(HSourceBillNo, HSourceBillType, HMaker, ref sErrMsg);
                    }
                }
                else
                {
                    //私有云模式
                    oCn.RunProc("exec h_p_WMS_ERPSourceBillToLocal '" + HSourceBillNo + "','" + HSourceBillType + "'");
                }
            }
            //将源单信息存入条码出入库临时表