yusijie
2023-06-06 a29c10576530d471f4657ca36404ccf8431f0064
安瑞盘点单
1个文件已修改
1235 ■■■■■ 已修改文件
CLOUDWEB/WebService1.asmx.cs 1235 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CLOUDWEB/WebService1.asmx.cs
@@ -7042,6 +7042,1241 @@
            return false;
        }
        //生成调拨单
        [WebMethod]
        public bool set_SaveMoveStockBill_PD(Model.ClsKf_MoveStockBillMain oMain, string sHSourceType, ref string sErrMsg)
        {
            DAL.ClsKf_MoveStockBill dal = new DAL.ClsKf_MoveStockBill();
            DAL.ClsKF_PonderationBillMain_Temp_View tmp = new DAL.ClsKF_PonderationBillMain_Temp_View();
            dal.omodel = oMain;
            //获取系统参数
            Pub_Class.ClsXt_SystemParameter oSystemParameter = new Pub_Class.ClsXt_SystemParameter();
            if (oSystemParameter.ShowBillByOrgID(oMain.HSTOCKORGID, ref sErrMsg) == false)
            {
                sErrMsg = "获取系统参数失败! " + sErrMsg;
                return false;
            }
            //
            if (set_SaveMoveStockBill_CLD_New_PD(oMain, sHSourceType, oSystemParameter.omodel, ref sErrMsg) == true)
            {
                //"保存成功!";
                return true;
            }
            else
            {
                //"保存失败!";
                return false;
            }
            sErrMsg = "保存调拨单失败!" + sErrMsg;
            return false;
        }
        #region 安瑞盘点单
        [WebMethod]
        public bool set_SaveMoveStockBill_CLD_New_PD(Model.ClsKf_MoveStockBillMain oMain, string sHSourceType, Pub_Class.ClsXt_SystemParameterMain oSystemParameterMain, ref string sErrMsg)
        {
            if (sHSourceType == "-1")//无源单
            {
                if (SaveMoveOut_CLD_PD(oMain, oSystemParameterMain, ref sErrMsg))
                {
                    //"保存成功!";
                    return true;
                }
                else
                {
                    //"保存失败!";
                    sErrMsg = "单据号:" + oMain.HBillNo + ",单据ID:" + oMain.HInterID + ";" + sErrMsg;
                    return false;
                }
            }
            else
            {
                sErrMsg = "单据号:" + oMain.HBillNo + ",单据ID:" + oMain.HInterID + ";错误的源单类型";
                return false;
            }
        }
        #endregion
        /// <summary>
        /// 安瑞盘点单
        /// </summary>
        /// <param name="oMain"></param>
        /// <param name="sErrMsg"></param>
        /// <returns></returns>
        private bool SaveMoveOut_CLD_PD(Model.ClsKf_MoveStockBillMain oMain, Pub_Class.ClsXt_SystemParameterMain oSystemParameterMain, ref string sErrMsg)
        {
            string sRemark = "";
            //从配置文件获取 CLOUD网址、账套信息、登录用户、登录密码
            if (!Pub_Class.ClsPub.GetCLOUDLoginInfo(ref Pub_Class.ClsPub.sExeReturnInfo))
            {
                sErrMsg = Pub_Class.ClsPub.sExeReturnInfo;
                return false;
            }
            //获取CLOUD账号密码
            string sCLOUDUseName = Pub_Class.ClsPub.sCLOUDUseName;
            string sCLOUDPsd = Pub_Class.ClsPub.sCLOUDPsd;
            DataSet ds11 = get_SaveCLOUDUseNameandPsd(oMain.HInterID);
            if (ds11 == null || ds11.Tables[0].Rows.Count == 0)
            {
            }
            else
            {
                sCLOUDUseName = DBUtility.ClsPub.isStrNull(ds11.Tables[0].Rows[0]["HCloudUserName"]);
                sCLOUDPsd = DBUtility.ClsPub.isStrNull(ds11.Tables[0].Rows[0]["HCloudUserPsd"]);
            }
            string HReturn;
            ApiClient client = new ApiClient(Pub_Class.ClsPub.sCLOUDUrl);
            string dbId = Pub_Class.ClsPub.sCLOUDAcc; //AotuTest117
            bool bLogin = client.Login(dbId, sCLOUDUseName, sCLOUDPsd, 2052);
            SQLHelper.ClsCN oCn = new SQLHelper.ClsCN();
            sRemark = sRemark + " ;获取验证CLOUD账号密码" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff");
            try
            {
                //判断会计期是否合理
                string s = "";
                int sYear = 0;
                int sPeriod = 0;
                if (DBUtility.Xt_BaseBillFun.Fun_AllowYearPeriod(oMain.HDate, ref sYear, ref sPeriod, ref s) == false)
                {
                    sErrMsg = s;
                    return false;
                }
                oMain.HYear = sYear;
                oMain.HPeriod = sPeriod;
                oCn.BeginTran();
                //写入WMS调拨单
                //插入子表
                oCn.RunProc("EXEC h_p_Kf_MoveStockBillSub_Insert_New " + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "','-1'");
                //插入主表
                oCn.RunProc("Insert Into Kf_ICStockBillMain   " +
                "(HBillType,HBillSubType,HInterID,HBillNo,HDate,HMainSourceBillType" +
                ",HYear,HPeriod,HRemark,HMaker,HMakeDate" +
                ",HSupID,HWHID,HSCWHID,HEmpID,HManagerID,HSecManagerID" +
                ",HKeeperID,HDeptID,HExplanation,HInnerBillNo,HRedBlueFlag" +
                ",HStockStyle,HTransferDirect,HShipType" +
                ",HSTOCKORGID,HOWNERID" +
                ") " +
                " values('1207','1207'," + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "',convert(varchar(10),getdate(),120),'" + oMain.HMainSourceBillType + "'" +
                ", " + oMain.HYear.ToString() + "," + oMain.HPeriod.ToString() + ",'" + oMain.HRemark + "','" + oMain.HMaker + "',convert(varchar(10),getdate(),120)" +
                ", " + oMain.HSupID.ToString() + "," + oMain.HWHID.ToString() + "," + oMain.HSCWHID.ToString() + "," + oMain.HEmpID.ToString() + "," + oMain.HManagerID.ToString() + "," + oMain.HSecManagerID.ToString() +
                ", " + oMain.HKeeperID.ToString() + "," + oMain.HDeptID.ToString() + ",'" + oMain.HExplanation + "','" + oMain.HInnerBillNo + "'," + DBUtility.ClsPub.BoolToString(oMain.HRedBlueFlag) +
                ",'" + oMain.HStockStyle + "','" + oMain.HTransferDirect + "','" + oMain.HShipType + "'" +
                ", " + oMain.HSTOCKORGID.ToString() + "," + oMain.HOWNERID.ToString() +
                ") ");
                sRemark = sRemark + " ;生成出入库单据" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff");
                //判断是否启用器具管理,系统参数  启用器具管理
                if (oSystemParameterMain.WMS_MouldManagerCtl == "Y")
                {
                    string HMouldBillType = "3814";
                    oCn.RunProc("EXEC h_p_Sc_MouldStockBill_Insert_New " + oMain.HInterID.ToString() + ",'" + oMain.HBillType + "','" + HMouldBillType + "'," + oMain.HSupID.ToString() + "," + oMain.HKeeperID.ToString() + "," + oMain.HSecManagerID.ToString() + "," + oMain.HDeptID.ToString() + ",3");
                }
                sRemark = sRemark + " ;判断是否启用器具管理" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff");
                //根据TMP表 返回 信息
                DataSet Ds;
                if (oSystemParameterMain.WMS_CloudMode == "N") //系统参数  是否为私有云模式(N为公有云模式,Y为私有云模式)
                {
                    Ds = oCn.RunProcReturn("exec h_p_Kf_GetMoveOutBill_PUBCLD " + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "'", "h_p_Kf_GetMoveOutBill_PUBCLD");
                    sRemark = sRemark + " ;公有云模式";
                }
                else
                {
                    Ds = oCn.RunProcReturn("exec h_p_Kf_GetMoveOutBill_CLD " + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "'", "h_p_Kf_GetMoveOutBill_CLD");
                    sRemark = sRemark + " ;私有云模式";
                }
                if (Ds == null || Ds.Tables[0].Rows.Count == 0 || Ds.Tables[1].Rows.Count == 0)
                {
                    sErrMsg = "获取子表信息失败!";
                    oCn.RollBack();
                    return false;
                }
                else
                {
                    string sJson_StockStyle = "";
                    string sJson_MainCustom = "";    //主表自定义字段
                    string sJson_BillTypeID = "";    //单据类型
                    sJson_MainCustom = Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["MainCustom"]);
                    if (oMain.HBillSubType == "" || oMain.HBillSubType == null)
                    {
                        sJson_BillTypeID = "\"FBillTypeID\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FBillTypeID"]) + "\" },";
                    }
                    else
                    {
                        sJson_BillTypeID = "\"FBillTypeID\":{ \"FNumber\":\"" + oMain.HBillSubType + "\" },";
                    }
                    if (oSystemParameterMain.WMS_CampanyName == "韩电") //系统参数  客户定制化名称     空白为通用
                    {
                        sJson_StockStyle = "\"F_CHLX\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["F_CHLX"]) + "\",";    //出货类型
                    }
                    else
                    {
                        sJson_StockStyle = "";
                    }
                    string sJson_Main = "{\"Creator\":\"\",\"NeedUpDateFields\":[]," +
                        "\"Model\":{ " +
                        "\"FBillNo\":\"" + oMain.HBillNo + "\"," +
                        sJson_BillTypeID +
                        "\"FBizType\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FBizType"]) + "\"," +
                        "\"FTransferDirect\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FTransferDirect"]) + "\"," +
                        "\"FTransferBizType\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FTransferBizType"]) + "\"," +
                        "\"FSettleOrgId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSettleOrgId"]) + "\" }," +
                        "\"FSaleOrgId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSaleOrgId"]) + "\" }," +
                        "\"FStockOutOrgId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FStockOutOrgId"]) + "\" }," +
                        "\"FOwnerTypeOutIdHead\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FOwnerTypeOutIdHead"]) + "\"," +
                        "\"FOwnerOutIdHead\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FOwnerOutIdHead"]) + "\" }," +
                        "\"FStockOrgId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FStockOrgId"]) + "\" }," +
                        "\"FIsIncludedTax\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FIsIncludedTax"]) + "," +
                        "\"FIsPriceExcludeTax\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FIsPriceExcludeTax"]) + "," +
                        "\"FOwnerTypeIdHead\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FOwnerTypeIdHead"]) + "\"," +
                        "\"FSETTLECURRID\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSETTLECURRID"]) + "\" }," +
                        "\"FOwnerIdHead\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FOwnerIdHead"]) + "\" }," +
                        "\"FDate\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FDate"]) + "\"," +
                        "\"FBaseCurrId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FBaseCurrId"]) + "\" }," +
                        sJson_StockStyle +
                        sJson_MainCustom +
                        "\"FBillEntry\": [  ";
                    string sJson_Entry = "";
                    for (int i = 0; i < Ds.Tables[1].Rows.Count; i++)
                    {
                        if (sJson_Entry != "")
                        {
                            sJson_Entry = sJson_Entry + " , ";
                        }
                        string sJson_BatchNo = "";
                        string sJson_SrcStockPlace = "";
                        string sJson_DestStockPlace = "";
                        string sJson_FProduceDate = "";     //生产日期
                        string sJson_FExpiryDate = "";      //有效期至
                        string sJson_FAUXPROPID = "";
                        string sJson_SubCustom = "";        //子表自定义字段
                        //子表自定义字段
                        sJson_SubCustom = Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["SubCustom"]);
                        //是否启用批次管理
                        if (Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["HISBATCHMANAGE"]) == "1")
                        {
                            sJson_BatchNo = "  \"FLOT\": {\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FLOT"]) + "\"},    \"FLOT_TEXT\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FLOT"]) + "\"  , ";
                        }
                        else
                        {
                            sJson_BatchNo = "";
                        }
                        //是否启用保质期控制
                        if (Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FISKFPERIOD"]) == "1")
                        {
                            sJson_FProduceDate = " \"FProduceDate\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FProduceDate"]) + "\",";
                            sJson_FExpiryDate = " \"FExpiryDate\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FExpiryDate"]) + "\",";
                        }
                        else
                        {
                            sJson_FProduceDate = "";
                            sJson_FExpiryDate = "";
                        }
                        //调入仓位、调出仓位
                        if (oSystemParameterMain.WMS_CampanyName == "卓力") //系统参数  客户定制化名称     空白为通用
                        {
                            sJson_SrcStockPlace = "\"FSrcStockLocId\":{\"FSRCSTOCKLOCID__FF100002\":{\"FNUMBER\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSrcStockLocId"]) + "\"}},";
                            sJson_DestStockPlace = "\"FDestStockLocId\":{\"FDESTSTOCKLOCID__FF100002\":{\"FNUMBER\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FDestStockLocId"]) + "\"}},";
                        }
                        else
                        {
                            //调入仓位
                            if (Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSrcStockLocId"]) == "")
                            {
                                sJson_SrcStockPlace = "";
                            }
                            else
                            {
                                sJson_SrcStockPlace = Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSrcStockLocId"]) + "\"}},";
                            }
                            //调出仓位
                            if (Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FDestStockLocId"]) == "")
                            {
                                sJson_DestStockPlace = "";
                            }
                            else
                            {
                                sJson_DestStockPlace = Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FDestStockLocId"]) + "\"}},";
                            }
                        }
                        //辅助属性
                        if (oSystemParameterMain.WMS_CampanyName == "卓力" || oSystemParameterMain.WMS_CampanyName == "韩电") //系统参数  客户定制化名称     空白为通用
                        {
                            sJson_FAUXPROPID = "";
                        }
                        else if (oSystemParameterMain.WMS_CampanyName == "凯贝奈特") //系统参数  客户定制化名称     空白为通用
                        {
                            sJson_FAUXPROPID = " \"FAUXPROPID\":{\"FAUXPROPID__FF100001\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FAUXPROPID"]) + "\"}},";
                        }
                        else if (oSystemParameterMain.WMS_CampanyName == "森楷") //系统参数  客户定制化名称     空白为通用
                        {
                            sJson_FAUXPROPID = " \"FAUXPROPID\":{\"FAUXPROPID__FF100003\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FAUXPROPID"]) + "\"}},";
                        }
                        else
                        {
                            sJson_FAUXPROPID = " \"FAUXPROPID\":{\"FAUXPROPID__FF100002\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FAUXPROPID"]) + "\"}},";
                        }
                        sJson_Entry = sJson_Entry + " {\"FSEQ\":\"" + Convert.ToString(i + 1) + "\"," +
                        "\"FMaterialId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMaterialId"]) + "\" }," +
                        sJson_FAUXPROPID +
                        "\"FUnitID\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FUnitID"]) + "\" }," +
                        "\"FQty\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FQty"]) + "\"," +
                        sJson_BatchNo +
                         "\"FSrcStockId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSrcStockId"]) + "\" }," +
                        sJson_SrcStockPlace +
                        //"\"FSrcStockLocId\":{\"FSRCSTOCKLOCID__FF100002\":{\"FNUMBER\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSrcStockLocId"]) + "\"}}," +
                        "\"FDestStockId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FDestStockId"]) + "\" }," +
                        sJson_DestStockPlace +
                        //"\"FDestStockLocId\":{\"FDESTSTOCKLOCID__FF100002\":{\"FNUMBER\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FDestStockLocId"]) + "\"}}," +
                        "\"FSrcStockStatusId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSrcStockStatusId"]) + "\" }," +
                        "\"FDestStockStatusId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FDestStockStatusId"]) + "\" }," +
                        // "\"FBusinessDate\":\"" + oMain.HDate.ToShortDateString() + "\"," +
                        sJson_FProduceDate +
                        sJson_FExpiryDate +
                        "\"FOwnerTypeOutId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FOwnerTypeOutId"]) + "\"," +
                        "\"FOwnerOutId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FOwnerOutId"]) + "\" }," +
                        "\"FOwnerTypeId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FOwnerTypeId"]) + "\"," +
                        "\"FOwnerId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FOwnerId"]) + "\" }," +
                        "\"FBaseUnitId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBaseUnitId"]) + "\" }," +
                        "\"FBaseQty\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBaseQty"]) + "\"," +
                        "\"FISFREE\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FISFREE"]) + "," +
                        "\"FKeeperTypeId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FKeeperTypeId"]) + "\"," +
                        "\"FKeeperId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FKeeperId"]) + "\" }," +
                        "\"FKeeperTypeOutId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FKeeperTypeOutId"]) + "\"," +
                        "\"FKeeperOutId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FKeeperOutId"]) + "\" }," +
                        "\"FDestMaterialId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FDestMaterialId"]) + "\" }," +
                        "\"FPriceUnitId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPriceUnitId"]) + "\" }," +
                        "\"FPriceQty\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPriceQty"]) + "\"," +
                        "\"FPriceBaseQty\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPriceQty"]) + "\"," +
                        "\"FTransReserveLink\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FTransReserveLink"]) + "," +
                        sJson_SubCustom +
                        "\"FCheckDelivery\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FCheckDelivery"]) + "} ";
                        //"\"FSRCBILLTYPEID\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSRCBILLTYPEID"]) + "\"," +
                        //"\"FSRCBILLNO\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSRCBILLNO"]) + "\"," +
                        //"\"FORDERTYPE\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FORDERTYPE"]) + "\" }," +
                        //"\"FORDERNO\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FORDERNO"]) + "\"," +
                        //"\"FBillEntry_Link\": [ {  " +
                        //"\"FBillEntry_Link_FFLOWID\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBillEntry_Link_FFLOWID"]) + "\"," +
                        //"\"FBillEntry_Link_FFLOWLINEID\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBillEntry_Link_FFLOWLINEID"]) + "\"," +
                        //"\"FBillEntry_Link_FRuleId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBillEntry_Link_FRuleId"]) + "\"," +
                        //"\"FBillEntry_Link_FSTableName\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBillEntry_Link_FSTableName"]) + "\"," +
                        //"\"FBillEntry_Link_FSBillId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBillEntry_Link_FSBillId"]) + "\"," +
                        //"\"FBillEntry_Link_FSId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBillEntry_Link_FSId"]) + "\"," +
                        //" } ]
                        //" }  ";
                    }
                    string sJson_End = "  ]  }}";
                    string sJson = sJson_Main + sJson_Entry + sJson_End;
                    sRemark = sRemark + " ;获取CLOUD单据API递入值" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff");
                    //生成金蝶云单据
                    if (bLogin)
                    {
                        var result = client.Execute<string>("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Draft",
                        new object[] { "STK_TransferDirect", sJson });
                        sRemark = sRemark + " ;生成CLOUD单据" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff");
                        //生成单据后更新自定义字段
                        //oCn.RunProc("exec h_p_Sc_UpDateSelfFildMove '" + oMain.HBillNo + "','-1'");
                        sRemark = sRemark + " ;生成单据后回填字段信息" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff");
                        HReturn = result.ToString();
                        if (HReturn.Contains("\"IsSuccess\":false") == true)
                        {
                            sErrMsg = "生成直接调拨单失败!" + HReturn + sJson;
                            LogService.Write("生成直接调拨单(源单:无源单)失败!" + HReturn + sJson);   //写入txt文本
                            oCn.RollBack();
                            return false;
                        }
                        else
                        {
                            sRemark = sRemark + sJson;
                            oCn.Commit();
                            return true;
                        }
                    }
                    else
                    {
                        sErrMsg = "生成直接调拨单失败!金蝶云登录失败!";
                        oCn.RollBack();
                        return false;
                    }
                }
            }
            catch (Exception e)
            {
                LogService.Write("生成回滚" + sRemark);
                sErrMsg = "生成直接调拨单失败!" + e.Message;
                oCn.RollBack();
                return false;
            }
        }
        [WebMethod]
        public Model.ClsKf_ICStockBill_WMS get_BarCode_MoveStock_PD(string sBarCode, Int64 HBillID, string HBillType, string HBillNo, string HMaker, Int64 HWhID, Int64 HSPID, Int64 HSCWHID, Int64 HSCSPID, Double HQty, bool SourceFlag, string HSourceBillNo, string HSourceBillType, Int64 HStockInOrgID, Int64 HStockOutOrgID, string HScanStyle, ref string sErrMsg)
        {
            try
            {
                //获取系统参数
                Pub_Class.ClsXt_SystemParameter oSystemParameter = new Pub_Class.ClsXt_SystemParameter();
                if (oSystemParameter.ShowBillByOrgID(HStockOutOrgID, ref sErrMsg) == false)
                {
                    sErrMsg = "获取系统参数失败! " + sErrMsg;
                    return null;
                }
                sBarCode = sBarCode.Trim();
                if (sBarCode == "")
                {
                    sErrMsg = "条码不能为空,请扫描条码!";
                    return null;
                }
                else
                {
                    //判断条码是否含特殊符号 # ,如果含有则 拆分
                    string[] NewBarCode;
                    if (sBarCode.Contains("#"))
                    {
                        NewBarCode = sBarCode.Split(Convert.ToChar("#"));
                        sBarCode = NewBarCode[0];
                        if (HQty == 0)
                        {
                            HQty = DBUtility.ClsPub.isDoule(NewBarCode[1]);
                        }
                    }
                }
                SQLHelper.ClsCN oCn = new SQLHelper.ClsCN();
                Model.ClsKf_ICStockBill_WMS oBar = new Model.ClsKf_ICStockBill_WMS();
                DAL.ClsGy_BarCodeBill_View dal = new DAL.ClsGy_BarCodeBill_View();
                string sBarCodePrefix = sBarCode.Substring(0, Math.Min(3, sBarCode.Length));//截取条码前三位字符串
                if (sBarCodePrefix == "PAK")
                {
                    bool HRedBlueFlag = false;
                    //将模治具信息写入模治具出入库临时表
                    DataSet Mould = oCn.RunProcReturn("exec h_p_WMS_AddMouldBarCode_New '" + sBarCode + "'," + HBillID.ToString() + ",'" + HBillNo + "','" + HBillType + "'," + HWhID.ToString() + "," + HSPID.ToString() + "," + HSCWHID.ToString() + "," + HSCSPID.ToString() + ",'" + HSourceBillNo + "','" + HSourceBillType + "','" + HRedBlueFlag + "','" + HMaker + "'," + HStockOutOrgID.ToString(), "h_p_WMS_AddMouldBarCode_New");
                    if (Mould == null || Mould.Tables[0].Rows.Count == 0)
                    {
                        sErrMsg = "将模治具信息写入模治具出入库临时表失败!";
                        return null;
                    }
                    else
                    {
                        if (DBUtility.ClsPub.isLong(Mould.Tables[0].Rows[0][0]) == 0)
                        {
                            oBar.HBarType = "模治具条码";
                            return oBar;
                        }
                        else
                        {
                            sErrMsg = DBUtility.ClsPub.isStrNull(Mould.Tables[0].Rows[0]["HRemark"]);
                            return null;
                        }
                    }
                }
                else
                {
                    if (dal.GetInfoByBarCode_View(sBarCode))
                    {
                        if (dal.omodel_View.HStopflag)
                        {
                            sErrMsg = "条码已被禁用,不允许扫描!";
                            return null;
                        }
                        else
                        {
                            //森楷专用
                            if (oSystemParameter.omodel.WMS_CampanyName == "森楷") //系统参数  客户定制化名称     空白为通用
                            {
                                if (!set_SavePonderationBillMain_Temp_BarCode_MoveStock_SenKai(dal.omodel_View, HBillID, HBillType, HBillNo, HMaker, HWhID, HSPID, HSCWHID, HSCSPID, HQty, SourceFlag, HSourceBillType, HStockInOrgID, HStockOutOrgID, "整托扫码", oSystemParameter.omodel, ref sErrMsg))
                                {
                                    sErrMsg = "单据号:" + HBillNo + ",单据ID:" + HBillID + ";扫描物料条码失败!" + sErrMsg;
                                    return null;
                                }
                                return oBar;
                            }
                            else
                            {
                                //托盘条码  卓力
                                if (dal.omodel_View.HBarCodeType == "托盘条码" && oSystemParameter.omodel.WMS_CampanyName == "卓力")
                                {
                                    //将物料条码信息写入条码出入库临时表
                                    if (!set_SavePonderationBillMain_Temp_BarCode_Pack_MoveStock_ZhuoLi(sBarCode, HBillID, HBillType, HBillNo, HMaker, HWhID, HSPID, HSCWHID, HSCSPID, SourceFlag, HSourceBillType, HStockInOrgID, HStockOutOrgID, oSystemParameter.omodel, ref sErrMsg))
                                    {
                                        sErrMsg = "单据号:" + HBillNo + ",单据ID:" + HBillID + ";扫描物料托条码失败!" + sErrMsg;
                                        return null;
                                    }
                                    return oBar;
                                }
                                //判断条码类型是否为托盘条码,如果是托盘条码则分解并模拟扫码
                                else if (dal.omodel_View.HBarCodeType == "托盘条码")
                                {
                                    //分解托盘条码得到明细条码信息写入条码出入库临时表
                                    DataSet dsTBarCode = oCn.RunProcReturn("exec h_p_WMS_BeforeCheckToTPBarCode '" + sBarCode + "'", "h_p_WMS_BeforeCheckToTPBarCode");
                                    if (dsTBarCode == null || dsTBarCode.Tables[0].Rows.Count == 0)
                                    {
                                        sErrMsg = "分解托盘条码发生错误!";
                                        return null;
                                    }
                                    else
                                    {
                                        if (DBUtility.ClsPub.isLong(dsTBarCode.Tables[0].Rows[0][0]) == 1)
                                        {
                                            sErrMsg = DBUtility.ClsPub.isStrNull(dsTBarCode.Tables[0].Rows[0]["HRemark"]);
                                            return null;
                                        }
                                        else
                                        {
                                            for (int i = 0; i < dsTBarCode.Tables[0].Rows.Count; i++)
                                            {
                                                dal.omodel_View.HBarCode = DBUtility.ClsPub.isStrNull(dsTBarCode.Tables[0].Rows[i]["HBarCode"]);
                                                dal.omodel_View.HBarCodeType = DBUtility.ClsPub.isStrNull(dsTBarCode.Tables[0].Rows[i]["HBarCodeType"]);
                                                dal.omodel_View.HMaterID = DBUtility.ClsPub.isLong(dsTBarCode.Tables[0].Rows[i]["HMaterID"]);
                                                dal.omodel_View.HAuxPropID = DBUtility.ClsPub.isLong(dsTBarCode.Tables[0].Rows[i]["HAuxPropID"]);
                                                dal.omodel_View.HBatchNo = DBUtility.ClsPub.isStrNull(dsTBarCode.Tables[0].Rows[i]["HBatchNo"]);
                                                dal.omodel_View.HQty = DBUtility.ClsPub.isDoule(dsTBarCode.Tables[0].Rows[i]["HQty"]);
                                                dal.omodel_View.HSourceInterID = DBUtility.ClsPub.isLong(dsTBarCode.Tables[0].Rows[i]["HSourceInterID"]);
                                                dal.omodel_View.HSourceEntryID = DBUtility.ClsPub.isLong(dsTBarCode.Tables[0].Rows[i]["HSourceEntryID"]);
                                                dal.omodel_View.HSourceBillNo = DBUtility.ClsPub.isStrNull(dsTBarCode.Tables[0].Rows[i]["HSourceBillNo"]);
                                                dal.omodel_View.HMTONo = DBUtility.ClsPub.isStrNull(dsTBarCode.Tables[0].Rows[i]["HMTONo"]);
                                                //无源单状态,设置源单类型为-1
                                                if (SourceFlag == false)
                                                {
                                                    HSourceBillType = "-1";
                                                }
                                                if (i != 0)
                                                {
                                                    SourceFlag = true;
                                                }
                                                //将物料条码信息写入条码出入库临时表
                                                if (!set_SavePonderationBillMain_Temp_BarCode_MoveStock(dal.omodel_View, HBillID, HBillType, HBillNo, HMaker, HWhID, HSPID, HSCWHID, HSCSPID, HQty, SourceFlag, HSourceBillType, HStockInOrgID, HStockOutOrgID, oSystemParameter.omodel, ref sErrMsg))
                                                {
                                                    sErrMsg = "单据号:" + HBillNo + ",单据ID:" + HBillID + ";扫描物料条码失败!" + sErrMsg;
                                                    return null;
                                                }
                                            }
                                        }
                                        return oBar;
                                    }
                                }
                                else
                                //条码类型不为托盘条码
                                {
                                    //将物料条码信息写入条码出入库临时表
                                    if (!set_SavePonderationBillMain_Temp_BarCode_MoveStock_PD(dal.omodel_View, HBillID, HBillType, HBillNo, HMaker, HWhID, HSPID, HSCWHID, HSCSPID, HQty, SourceFlag, HSourceBillType, HStockInOrgID, HStockOutOrgID, oSystemParameter.omodel, ref sErrMsg))
                                    {
                                        sErrMsg = "单据号:" + HBillNo + ",单据ID:" + HBillID + ";扫描物料条码失败!" + sErrMsg;
                                        return null;
                                    }
                                    return oBar;
                                }
                            }
                        }
                    }
                    else
                    {
                        sErrMsg = "条码档案中不存在该条码,请确认条码是否正确或是否已被删除!";
                        return null;
                    }
                }
            }
            catch (Exception e)
            {
                sErrMsg = e.Message + ";" + e.StackTrace;
                return null;
            }
        }
        //扫描物料条码  存入条码出入库临时表      调拨
        [WebMethod]
        public bool set_SavePonderationBillMain_Temp_BarCode_MoveStock_PD(Model.ClsGy_BarCodeBill_WMS_Model_View omodel_View, Int64 HBillID, string HBillType, string HBillNo, string HMaker, Int64 HWhID, Int64 HSPID, Int64 HSCWHID, Int64 HSCSPID, Double HQty, bool SourceFlag, string HSourceBillType, Int64 HStockInOrgID, Int64 HStockOutOrgID, Pub_Class.ClsXt_SystemParameterMain oSystemParameterMain, ref string sErrMsg)
        {
            SQLHelper.ClsCN oCn = new SQLHelper.ClsCN();
            DAL.ClsKF_PonderationBillMain_Temp_Ctl tem = new DAL.ClsKF_PonderationBillMain_Temp_Ctl();
            Model.ClsKF_PonderationBillMain_Temp oMain = new Model.ClsKF_PonderationBillMain_Temp();
            string HMaterNumber;            //物料代码
            string sSourceBillCtl = "N";    //是否进行源单信息核对('Y'为核对源单信息)
            string sBatchNoCtl = "N";       //是否进行批号核对('Y'为核对批号)
            string sMultilineCtl = "N";     //是否存在多行相同物料时自动拆分换行('Y'为自动拆分)
            string sMustQtyCtl = "不控制";  //扫码数量能否可超单据数量控制(小于等于应收、完全等于应收、不控制)
            string sMaterWHSPCtl = "N";     //是否取物料默认仓库仓位('Y'为是)
            string sSourceWHSPCtl = "N";    //是否取源单中仓库仓位('Y'为是)
            string sOneScanCtl = "N";       //一次扫码控制('Y'为控制)
            string sFIFOCtl = "N";          //先进先出控制('Y'为控制)
            string sMulSourceCtl = "N";     //是否启用多源单扫码模式('Y'为启用)
            //根据单据类型,获取对应单据系统参数值
            if (get_SystemParameter_BarCode(HBillType, oSystemParameterMain, ref sSourceBillCtl, ref sBatchNoCtl, ref sMultilineCtl, ref sMustQtyCtl, ref sMaterWHSPCtl, ref sSourceWHSPCtl, ref sOneScanCtl, ref sFIFOCtl, ref sMulSourceCtl, ref sErrMsg))
            {
            }
            //判断调入仓库、仓位是否有效
            if (HWhID == 0)
            {
                sErrMsg = "调入仓库没有选择!";
                return false;
            }
            else
            {
                //根据仓库ID,判断是否启用仓位
                DataSet dsWh = oCn.RunProcReturn(" select HSPFlag from Gy_Warehouse with(nolock) where HItemID= " + HWhID.ToString() + " and HUSEORGID= " + HStockInOrgID.ToString(), "Gy_Warehouse");
                if (dsWh == null || dsWh.Tables[0].Rows.Count == 0)
                {
                    sErrMsg = "所选调入仓库不属于该调入组织!";
                    return false;
                }
                else if (HSPID == 0 && DBUtility.ClsPub.isBool(dsWh.Tables[0].Rows[0]["HSPFlag"]) == true)
                {
                    sErrMsg = "调入仓位没有选择!";
                    return false;
                }
            }
            //无源单状态,设置源单类型为-1
            if (SourceFlag == false)
            {
                HSourceBillType = "-1";
            }
            //1、首次扫码防串单判断; 2、源单类型是否在源单列表里判断;3、唯一条码是否存在相同条码判断; 4、有源单,物料是否在源单中判断
            DataSet ds1 = oCn.RunProcReturn("exec h_p_WMS_AddBarCode_MoveStock '" + omodel_View.HBarCode + "'," + HBillID.ToString() + ",'" + HBillNo + "','" + HBillType + "','" + HSourceBillType + "'," + DBUtility.ClsPub.BoolToString(SourceFlag), "h_p_WMS_AddBarCode_MoveStock");
            if (ds1 == null || ds1.Tables[0].Rows.Count == 0)
            {
                sErrMsg = "判断所扫条码是否在单据中发生错误!";
                return false;
            }
            else
            {
                if (DBUtility.ClsPub.isLong(ds1.Tables[0].Rows[0][0]) == 0)
                {
                    omodel_View.HMaterID = DBUtility.ClsPub.isLong(ds1.Tables[0].Rows[0]["HMaterID"]);
                    omodel_View.HSourceBillNo = DBUtility.ClsPub.isStrNull(ds1.Tables[0].Rows[0]["HSourceBillNo"]);
                    omodel_View.HSourceEntryID = DBUtility.ClsPub.isLong(ds1.Tables[0].Rows[0]["HSourceEntryID"]);
                    omodel_View.HSourceInterID = DBUtility.ClsPub.isLong(ds1.Tables[0].Rows[0]["HSourceInterID"]);
                    omodel_View.HSourceQty = DBUtility.ClsPub.isDoule(ds1.Tables[0].Rows[0]["HQtyMust"]);     //源单可扫数量
                    HMaterNumber = DBUtility.ClsPub.isStrNull(ds1.Tables[0].Rows[0]["HMaterNumber"]);
                }
                else
                {
                    sErrMsg = DBUtility.ClsPub.isStrNull(ds1.Tables[0].Rows[0]["HRemark"]);
                    return false;
                }
            }
            double sRelQty = 0;
            //获取扫码数量
            if (omodel_View.HBarCodeType == "唯一条码")
            {
                if (HQty > 0 && omodel_View.HQty > HQty)
                {
                    sRelQty = HQty;
                }
                else
                {
                    sRelQty = omodel_View.HQty;
                }
                //有源单扫码,根据系统参数 控制扫码数量能否可超单据数量(小于等于应收、完全等于应收、不控制)
                if (omodel_View.HSourceInterID != 0 && (sMustQtyCtl == "小于等于应收" || sMustQtyCtl == "完全等于应收"))
                {
                    if (omodel_View.HSourceQty == 0)
                    {
                        sErrMsg = "启用条码扫描数量不能超源单可扫数量,所扫物料在列表中剩余可扫数量为0,不允许扫码!";
                        return false;
                    }
                    else if (sRelQty > omodel_View.HSourceQty)
                    {
                        sErrMsg = "启用条码扫描数量不能超源单可扫数量,所扫描条码数量为 " + sRelQty.ToString() + " 大于列表中剩余可扫描数量" + omodel_View.HSourceQty.ToString() + ",不允许扫码!";
                        return false;
                    }
                }
            }
            else
            //批次条码、品种条码
            {
                if (HQty > 0)
                {
                    sRelQty = HQty;
                }
                else if (omodel_View.HSourceQty > 0)
                {
                    sRelQty = omodel_View.HSourceQty;
                }
                else
                {
                    sRelQty = omodel_View.HQty;
                }
                //有源单扫码,根据系统参数 控制扫码数量能否可超单据数量(小于等于应收、完全等于应收、不控制)
                if (omodel_View.HSourceInterID != 0 && (sMustQtyCtl == "小于等于应收" || sMustQtyCtl == "完全等于应收"))
                {
                    if (omodel_View.HSourceQty == 0)
                    {
                        sErrMsg = "启用条码扫描数量不能超源单可扫数量,所扫物料在单据中剩余可扫数量为0,不允许扫码!";
                        return false;
                    }
                    else if (sRelQty > omodel_View.HSourceQty)
                    {
                        sErrMsg = "启用条码扫描数量不能超源单可扫数量,所扫描条码数量为 " + sRelQty.ToString() + " 大于对应源单剩余可扫描数量" + omodel_View.HSourceQty.ToString() + ",不允许扫码!";
                        return false;
                    }
                }
            }
            double sWMSQty = 0;     //条码库存数量
            double sERPQty = 0;     //ERP库存数量
            string sWhName = "";    //仓库名称
            string sSPName = "";    //仓位名称
            //if (omodel_View.HBarCodeType == "唯一条码")
            //{
            //    //判断条码库存    库存控制-WMS负库存控制
            //    if (oSystemParameterMain.WMS_WMSStockCtl == "Y" && HBillType != "1251")
            //    {
            //        //判断条码库存   返回条码库存数量
            //        DataSet DsWMS = oCn.RunProcReturn("exec h_p_WMS_AddBarCode_GetWMSICInventory " + HBillID.ToString() + ",'" + HBillType + "','" + omodel_View.HBarCode + "'," + HSCWHID.ToString() + "," + HSCSPID.ToString() + "," + HStockOutOrgID.ToString(), "h_p_WMS_AddBarCode_GetWMSICInventory");
            //        if (DsWMS == null || DsWMS.Tables[0].Rows.Count == 0)
            //        {
            //            sErrMsg = "所扫描物料条码: " + omodel_View.HBarCode + " ,无条码库存!";
            //            return false;
            //        }
            //        else
            //        {
            //            HSCWHID = DBUtility.ClsPub.isLong(DsWMS.Tables[0].Rows[0]["HWhID"]);
            //            HSCSPID = DBUtility.ClsPub.isLong(DsWMS.Tables[0].Rows[0]["HSPID"]);
            //            sWMSQty = DBUtility.ClsPub.isDoule(DsWMS.Tables[0].Rows[0]["HQty"]);
            //            sWhName = DBUtility.ClsPub.isStrNull(DsWMS.Tables[0].Rows[0]["HWhName"]);
            //            sSPName = DBUtility.ClsPub.isStrNull(DsWMS.Tables[0].Rows[0]["HSPName"]);
            //            if (sWMSQty <= 0)
            //            {
            //                sErrMsg = "所扫描物料条码:" + omodel_View.HBarCode + " ,在仓库[ " + sWhName + " ]、仓位[ " + sSPName + " ]中,无条码库存!";
            //                return false;
            //            }
            //            //判断扫描数量与条码库存数量
            //            else if (sRelQty > sWMSQty)
            //            {
            //                sRelQty = sWMSQty;
            //            }
            //        }
            //    }
            //}
            //判断调出仓库、仓位是否有效
            if (HSCWHID == 0)
            {
                sErrMsg = "调出仓库没有选择!";
                return false;
            }
            else
            {
                //根据仓库ID,判断是否启用仓位
                DataSet dsSCWH = oCn.RunProcReturn(" select HSPFlag from Gy_Warehouse with(nolock) where HItemID= " + HSCWHID.ToString() + " and HUSEORGID= " + HStockOutOrgID.ToString(), "Gy_Warehouse");
                if (dsSCWH == null || dsSCWH.Tables[0].Rows.Count == 0)
                {
                    sErrMsg = "所选调出仓库不属于该调出组织!";
                    return false;
                }
                else if (HSCSPID == 0 && DBUtility.ClsPub.isBool(dsSCWH.Tables[0].Rows[0]["HSPFlag"]) == true)
                {
                    sErrMsg = "调出仓位没有选择!";
                    return false;
                }
            }
            //判断ERP库存   库存控制-ERP负库存控制     私有云模式
            //if (oSystemParameterMain.WMS_ERPStockCtl == "Y" && oSystemParameterMain.WMS_CloudMode == "Y" && HBillType != "1251")
            //{
            //    //判断ERP库存   返回ERP库存数量
            //    DataSet DsERP = oCn.RunProcReturn("exec h_p_WMS_AddBarCode_GetERPICInventory " + HBillID.ToString() + ",'" + HBillType + "','" + HMaterNumber + "'," + omodel_View.HAuxPropID.ToString() + ",'" + omodel_View.HBatchNo + "'," + HSCWHID.ToString() + "," + HSCSPID.ToString() + "," + HStockOutOrgID.ToString(), "h_p_WMS_AddBarCode_GetERPICInventory");
            //    if (DsERP == null || DsERP.Tables[0].Rows.Count == 0)
            //    {
            //        sErrMsg = "所扫描条码对应物料代码: " + HMaterNumber + " ,无金蝶库存!";
            //        return false;
            //    }
            //    else
            //    {
            //        sERPQty = DBUtility.ClsPub.isDoule(DsERP.Tables[0].Rows[0]["HQty"]);
            //        sWhName = DBUtility.ClsPub.isStrNull(DsERP.Tables[0].Rows[0]["HWhName"]);
            //        sSPName = DBUtility.ClsPub.isStrNull(DsERP.Tables[0].Rows[0]["HSPName"]);
            //        if (sERPQty <= 0)
            //        {
            //            sErrMsg = "所扫描条码对应物料代码:" + HMaterNumber + " ,在仓库[ " + sWhName + " ]、仓位[ " + sSPName + " ]中,无金蝶库存!";
            //            return false;
            //        }
            //        //判断扫描数量与金蝶库存数量
            //        else if (sRelQty > sERPQty)
            //        {
            //            sRelQty = sERPQty;
            //        }
            //    }
            //}
            if (HWhID == HSCWHID && HSPID == HSCSPID)
            {
                sErrMsg = "调入仓库、仓位不能与调出仓库、仓位相同!";
                return false;
            }
            //唯一条码,是否启用一次扫码控制('Y'为启用)
            if (omodel_View.HBarCodeType == "唯一条码" && sOneScanCtl == "Y")
            {
                //一次扫码控制,同一条码、同一单据类型,在WMS表和TEMP表里,只允许进行一次扫码
                DataSet dsOneScan = oCn.RunProcReturn("exec h_p_WMS_AddBarCode_OneScan '" + omodel_View.HBarCode + "'," + HBillID.ToString() + ",'" + HBillNo + "','" + HBillType + "'," + HWhID.ToString() + "," + HSPID.ToString() + "," + HSCWHID.ToString() + "," + HSCSPID.ToString() + ",'" + HMaker + "'", "h_p_WMS_AddBarCode_OneScan");
                if (dsOneScan == null || dsOneScan.Tables[0].Rows.Count == 0)
                {
                }
                else
                {
                    if (DBUtility.ClsPub.isLong(dsOneScan.Tables[0].Rows[0][0]) == 1)
                    {
                        sErrMsg = DBUtility.ClsPub.isStrNull(dsOneScan.Tables[0].Rows[0]["HRemark"]);
                        return false;
                    }
                }
            }
            oMain.HInterID = HBillID;
            oMain.HBillNo = HBillNo;
            oMain.HBillType = HBillType;
            oMain.HMaker = HMaker;
            oMain.HMaterID = omodel_View.HMaterID;
            oMain.HAuxPropID = omodel_View.HAuxPropID;
            oMain.HQty = sRelQty;
            oMain.HQtyMust = 0;
            oMain.HBarCode = omodel_View.HBarCode;
            oMain.HBatchNo = omodel_View.HBatchNo;
            oMain.HMTONo = omodel_View.HMTONo;
            oMain.HWhID = HWhID;
            oMain.HStockPlaceID = HSPID;
            oMain.HSCWHID = HSCWHID;
            oMain.HOutStockPlaceID = HSCSPID;
            oMain.HSourceInterID = omodel_View.HSourceInterID;
            oMain.HSourceEntryID = omodel_View.HSourceEntryID;
            oMain.HSourceBillNo = omodel_View.HSourceBillNo;
            oMain.HSourceBillType = HSourceBillType;
            if (omodel_View.HProduceDate < Convert.ToDateTime("1950-01-01"))
            {
                oMain.HBeginDate = "";
            }
            else
            {
                oMain.HBeginDate = omodel_View.HProduceDate.ToShortDateString();
            }
            if (omodel_View.HExpiryDate < Convert.ToDateTime("1950-01-01"))
            {
                oMain.HEndDate = "";
            }
            else
            {
                oMain.HEndDate = omodel_View.HExpiryDate.ToShortDateString();
            }
            oMain.HRedBlueFlag = false;
            oMain.HPieceQty = 1;
            oMain.HSTOCKORGID = HStockOutOrgID;
            oMain.HOWNERID = HStockInOrgID;
            //先进先出控制
            //if (HSourceBillType != "-1" && HBillType != "1251" && sFIFOCtl == "Y")
            //{
            //    DataSet FIFO = oCn.RunProcReturn("exec h_p_Kf_ICInventory_FIFO_Tmp_BarCode " + HBillID.ToString() + ",'" + HBillType + "','" + oMain.HBatchNo + "','" + oMain.HBarCode + "'," + oMain.HQty.ToString(), "h_p_Kf_ICInventory_FIFO_Tmp_BarCode");
            //    if (FIFO == null || FIFO.Tables[0].Rows.Count == 0)
            //    {
            //        sErrMsg = "判断先进先出控制发生错误!";
            //        return false;
            //    }
            //    else
            //    {
            //        if (DBUtility.ClsPub.isLong(FIFO.Tables[0].Rows[0][0]) == 0)
            //        {
            //            sRelQty = DBUtility.ClsPub.isDoule(FIFO.Tables[0].Rows[0]["HQty"]);
            //        }
            //        else
            //        {
            //            sErrMsg = DBUtility.ClsPub.isStrNull(FIFO.Tables[0].Rows[0]["HRemark"]);
            //            return false;
            //        }
            //    }
            //}
            oCn.RunProc("Insert into KF_PonderationBillMain_Temp " +
                "(HInterID,HBillNo,HBillType,HMaterID,HAuxPropID,HProcID" +
                ",HWhID,HSCWHID,HStockPlaceID,HOutStockPlaceID,HGroupID,HAddr" +
                ",HQtyMust,HQty,HPieceQty,HBatchNo,HBarCode,HBarCode_Pack" +
                ",HMaker,HMakeDate,HSourceInterID,HSourceEntryID,HSourceBillType,HSourceBillNo" +
                ",HRelationInterID,HRelationEntryID,HRelationBillNo,HRedBlueFlag,HMTONo,HPlanMode" +
                ",HSTOCKORGID,HOtherOrgID,HOWNERID,HOWNERTYPEID,HExpressNumber,HSubBillType" +
                ",HCusID,HDeptID,HCusBarCode,HMulSourceBill,HBeginDate,HEndDate) " +
                " Values(" + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "','" + oMain.HBillType + "'," + oMain.HMaterID.ToString() + "," + oMain.HAuxPropID.ToString() + "," + oMain.HProcID.ToString() +
                "," + oMain.HWhID.ToString() + "," + oMain.HSCWHID.ToString() + "," + oMain.HStockPlaceID.ToString() + "," + oMain.HOutStockPlaceID.ToString() + "," + oMain.HGroupID.ToString() + ",'" + oMain.HAddr + "'" +
                "," + oMain.HQtyMust.ToString() + "," + oMain.HQty.ToString() + "," + oMain.HPieceQty.ToString() + ",'" + oMain.HBatchNo + "','" + oMain.HBarCode + "',''" +
                ",'" + oMain.HMaker + "',getdate()," + oMain.HSourceInterID.ToString() + "," + oMain.HSourceEntryID.ToString() + ",'" + oMain.HSourceBillType + "','" + oMain.HSourceBillNo + "'" +
                "," + oMain.HRelationInterID.ToString() + "," + oMain.HRelationEntryID.ToString() + ",'" + oMain.HRelationBillNo + "'," + Convert.ToString(oMain.HRedBlueFlag ? 1 : 0) + ",'" + oMain.HMTONo + "',0" +
                "," + oMain.HSTOCKORGID.ToString() + "," + oMain.HOWNERID.ToString() + "," + oMain.HSTOCKORGID.ToString() + ",'','',0" +
                ",0,0,'" + oMain.HCusBarCode + "',0," + (oMain.HBeginDate == "" ? "NULL" : "'" + oMain.HBeginDate + "'") +
                "," + (oMain.HEndDate == "" ? "NULL" : "'" + oMain.HEndDate + "'") + ")");
            return true;
        }
        //扫描物料条码  存入条码出入库临时表      调拨
        [WebMethod]
        public bool set_SavePonderationBillMain_Temp_BarCode_MoveStock(Model.ClsGy_BarCodeBill_WMS_Model_View omodel_View, Int64 HBillID, string HBillType, string HBillNo, string HMaker, Int64 HWhID, Int64 HSPID, Int64 HSCWHID, Int64 HSCSPID, Double HQty, bool SourceFlag, string HSourceBillType, Int64 HStockInOrgID, Int64 HStockOutOrgID, Pub_Class.ClsXt_SystemParameterMain oSystemParameterMain, ref string sErrMsg)
        {
            SQLHelper.ClsCN oCn = new SQLHelper.ClsCN();
            DAL.ClsKF_PonderationBillMain_Temp_Ctl tem = new DAL.ClsKF_PonderationBillMain_Temp_Ctl();
            Model.ClsKF_PonderationBillMain_Temp oMain = new Model.ClsKF_PonderationBillMain_Temp();
            string HMaterNumber;            //物料代码
            string sSourceBillCtl = "N";    //是否进行源单信息核对('Y'为核对源单信息)
            string sBatchNoCtl = "N";       //是否进行批号核对('Y'为核对批号)
            string sMultilineCtl = "N";     //是否存在多行相同物料时自动拆分换行('Y'为自动拆分)
            string sMustQtyCtl = "不控制";  //扫码数量能否可超单据数量控制(小于等于应收、完全等于应收、不控制)
            string sMaterWHSPCtl = "N";     //是否取物料默认仓库仓位('Y'为是)
            string sSourceWHSPCtl = "N";    //是否取源单中仓库仓位('Y'为是)
            string sOneScanCtl = "N";       //一次扫码控制('Y'为控制)
            string sFIFOCtl = "N";          //先进先出控制('Y'为控制)
            string sMulSourceCtl = "N";     //是否启用多源单扫码模式('Y'为启用)
            //根据单据类型,获取对应单据系统参数值
            if (get_SystemParameter_BarCode(HBillType, oSystemParameterMain, ref sSourceBillCtl, ref sBatchNoCtl, ref sMultilineCtl, ref sMustQtyCtl, ref sMaterWHSPCtl, ref sSourceWHSPCtl, ref sOneScanCtl, ref sFIFOCtl, ref sMulSourceCtl, ref sErrMsg))
            {
            }
            //判断调入仓库、仓位是否有效
            if (HWhID == 0)
            {
                sErrMsg = "调入仓库没有选择!";
                return false;
            }
            else
            {
                //根据仓库ID,判断是否启用仓位
                DataSet dsWh = oCn.RunProcReturn(" select HSPFlag from Gy_Warehouse with(nolock) where HItemID= " + HWhID.ToString() + " and HUSEORGID= " + HStockInOrgID.ToString(), "Gy_Warehouse");
                if (dsWh == null || dsWh.Tables[0].Rows.Count == 0)
                {
                    sErrMsg = "所选调入仓库不属于该调入组织!";
                    return false;
                }
                else if (HSPID == 0 && DBUtility.ClsPub.isBool(dsWh.Tables[0].Rows[0]["HSPFlag"]) == true)
                {
                    sErrMsg = "调入仓位没有选择!";
                    return false;
                }
            }
            //无源单状态,设置源单类型为-1
            if (SourceFlag == false)
            {
                HSourceBillType = "-1";
            }
            //1、首次扫码防串单判断; 2、源单类型是否在源单列表里判断;3、唯一条码是否存在相同条码判断; 4、有源单,物料是否在源单中判断
            DataSet ds1 = oCn.RunProcReturn("exec h_p_WMS_AddBarCode_MoveStock '" + omodel_View.HBarCode + "'," + HBillID.ToString() + ",'" + HBillNo + "','" + HBillType + "','" + HSourceBillType + "'," + DBUtility.ClsPub.BoolToString(SourceFlag), "h_p_WMS_AddBarCode_MoveStock");
            if (ds1 == null || ds1.Tables[0].Rows.Count == 0)
            {
                sErrMsg = "判断所扫条码是否在单据中发生错误!";
                return false;
            }
            else
            {
                if (DBUtility.ClsPub.isLong(ds1.Tables[0].Rows[0][0]) == 0)
                {
                    omodel_View.HMaterID = DBUtility.ClsPub.isLong(ds1.Tables[0].Rows[0]["HMaterID"]);
                    omodel_View.HSourceBillNo = DBUtility.ClsPub.isStrNull(ds1.Tables[0].Rows[0]["HSourceBillNo"]);
                    omodel_View.HSourceEntryID = DBUtility.ClsPub.isLong(ds1.Tables[0].Rows[0]["HSourceEntryID"]);
                    omodel_View.HSourceInterID = DBUtility.ClsPub.isLong(ds1.Tables[0].Rows[0]["HSourceInterID"]);
                    omodel_View.HSourceQty = DBUtility.ClsPub.isDoule(ds1.Tables[0].Rows[0]["HQtyMust"]);     //源单可扫数量
                    HMaterNumber = DBUtility.ClsPub.isStrNull(ds1.Tables[0].Rows[0]["HMaterNumber"]);
                }
                else
                {
                    sErrMsg = DBUtility.ClsPub.isStrNull(ds1.Tables[0].Rows[0]["HRemark"]);
                    return false;
                }
            }
            double sRelQty = 0;
            //获取扫码数量
            if (omodel_View.HBarCodeType == "唯一条码")
            {
                if (HQty > 0 && omodel_View.HQty > HQty)
                {
                    sRelQty = HQty;
                }
                else
                {
                    sRelQty = omodel_View.HQty;
                }
                //有源单扫码,根据系统参数 控制扫码数量能否可超单据数量(小于等于应收、完全等于应收、不控制)
                if (omodel_View.HSourceInterID != 0 && (sMustQtyCtl == "小于等于应收" || sMustQtyCtl == "完全等于应收"))
                {
                    if (omodel_View.HSourceQty == 0)
                    {
                        sErrMsg = "启用条码扫描数量不能超源单可扫数量,所扫物料在列表中剩余可扫数量为0,不允许扫码!";
                        return false;
                    }
                    else if (sRelQty > omodel_View.HSourceQty)
                    {
                        sErrMsg = "启用条码扫描数量不能超源单可扫数量,所扫描条码数量为 " + sRelQty.ToString() + " 大于列表中剩余可扫描数量" + omodel_View.HSourceQty.ToString() + ",不允许扫码!";
                        return false;
                    }
                }
            }
            else
            //批次条码、品种条码
            {
                if (HQty > 0)
                {
                    sRelQty = HQty;
                }
                else if (omodel_View.HSourceQty > 0)
                {
                    sRelQty = omodel_View.HSourceQty;
                }
                else
                {
                    sRelQty = omodel_View.HQty;
                }
                //有源单扫码,根据系统参数 控制扫码数量能否可超单据数量(小于等于应收、完全等于应收、不控制)
                if (omodel_View.HSourceInterID != 0 && (sMustQtyCtl == "小于等于应收" || sMustQtyCtl == "完全等于应收"))
                {
                    if (omodel_View.HSourceQty == 0)
                    {
                        sErrMsg = "启用条码扫描数量不能超源单可扫数量,所扫物料在单据中剩余可扫数量为0,不允许扫码!";
                        return false;
                    }
                    else if (sRelQty > omodel_View.HSourceQty)
                    {
                        sErrMsg = "启用条码扫描数量不能超源单可扫数量,所扫描条码数量为 " + sRelQty.ToString() + " 大于对应源单剩余可扫描数量" + omodel_View.HSourceQty.ToString() + ",不允许扫码!";
                        return false;
                    }
                }
            }
            double sWMSQty = 0;     //条码库存数量
            double sERPQty = 0;     //ERP库存数量
            string sWhName = "";    //仓库名称
            string sSPName = "";    //仓位名称
            if (omodel_View.HBarCodeType == "唯一条码")
            {
                //判断条码库存    库存控制-WMS负库存控制
                if (oSystemParameterMain.WMS_WMSStockCtl == "Y" && HBillType != "1251")
                {
                    //判断条码库存   返回条码库存数量
                    DataSet DsWMS = oCn.RunProcReturn("exec h_p_WMS_AddBarCode_GetWMSICInventory " + HBillID.ToString() + ",'" + HBillType + "','" + omodel_View.HBarCode + "'," + HSCWHID.ToString() + "," + HSCSPID.ToString() + "," + HStockOutOrgID.ToString(), "h_p_WMS_AddBarCode_GetWMSICInventory");
                    if (DsWMS == null || DsWMS.Tables[0].Rows.Count == 0)
                    {
                        sErrMsg = "所扫描物料条码: " + omodel_View.HBarCode + " ,无条码库存!";
                        return false;
                    }
                    else
                    {
                        HSCWHID = DBUtility.ClsPub.isLong(DsWMS.Tables[0].Rows[0]["HWhID"]);
                        HSCSPID = DBUtility.ClsPub.isLong(DsWMS.Tables[0].Rows[0]["HSPID"]);
                        sWMSQty = DBUtility.ClsPub.isDoule(DsWMS.Tables[0].Rows[0]["HQty"]);
                        sWhName = DBUtility.ClsPub.isStrNull(DsWMS.Tables[0].Rows[0]["HWhName"]);
                        sSPName = DBUtility.ClsPub.isStrNull(DsWMS.Tables[0].Rows[0]["HSPName"]);
                        if (sWMSQty <= 0)
                        {
                            sErrMsg = "所扫描物料条码:" + omodel_View.HBarCode + " ,在仓库[ " + sWhName + " ]、仓位[ " + sSPName + " ]中,无条码库存!";
                            return false;
                        }
                        //判断扫描数量与条码库存数量
                        else if (sRelQty > sWMSQty)
                        {
                            sRelQty = sWMSQty;
                        }
                    }
                }
            }
            //判断调出仓库、仓位是否有效
            if (HSCWHID == 0)
            {
                sErrMsg = "调出仓库没有选择!";
                return false;
            }
            else
            {
                //根据仓库ID,判断是否启用仓位
                DataSet dsSCWH = oCn.RunProcReturn(" select HSPFlag from Gy_Warehouse with(nolock) where HItemID= " + HSCWHID.ToString() + " and HUSEORGID= " + HStockOutOrgID.ToString(), "Gy_Warehouse");
                if (dsSCWH == null || dsSCWH.Tables[0].Rows.Count == 0)
                {
                    sErrMsg = "所选调出仓库不属于该调出组织!";
                    return false;
                }
                else if (HSCSPID == 0 && DBUtility.ClsPub.isBool(dsSCWH.Tables[0].Rows[0]["HSPFlag"]) == true)
                {
                    sErrMsg = "调出仓位没有选择!";
                    return false;
                }
            }
            //判断ERP库存   库存控制-ERP负库存控制     私有云模式
            if (oSystemParameterMain.WMS_ERPStockCtl == "Y" && oSystemParameterMain.WMS_CloudMode == "Y" && HBillType != "1251")
            {
                //判断ERP库存   返回ERP库存数量
                DataSet DsERP = oCn.RunProcReturn("exec h_p_WMS_AddBarCode_GetERPICInventory " + HBillID.ToString() + ",'" + HBillType + "','" + HMaterNumber + "'," + omodel_View.HAuxPropID.ToString() + ",'" + omodel_View.HBatchNo + "'," + HSCWHID.ToString() + "," + HSCSPID.ToString() + "," + HStockOutOrgID.ToString(), "h_p_WMS_AddBarCode_GetERPICInventory");
                if (DsERP == null || DsERP.Tables[0].Rows.Count == 0)
                {
                    sErrMsg = "所扫描条码对应物料代码: " + HMaterNumber + " ,无金蝶库存!";
                    return false;
                }
                else
                {
                    sERPQty = DBUtility.ClsPub.isDoule(DsERP.Tables[0].Rows[0]["HQty"]);
                    sWhName = DBUtility.ClsPub.isStrNull(DsERP.Tables[0].Rows[0]["HWhName"]);
                    sSPName = DBUtility.ClsPub.isStrNull(DsERP.Tables[0].Rows[0]["HSPName"]);
                    if (sERPQty <= 0)
                    {
                        sErrMsg = "所扫描条码对应物料代码:" + HMaterNumber + " ,在仓库[ " + sWhName + " ]、仓位[ " + sSPName + " ]中,无金蝶库存!";
                        return false;
                    }
                    //判断扫描数量与金蝶库存数量
                    else if (sRelQty > sERPQty)
                    {
                        sRelQty = sERPQty;
                    }
                }
            }
            if (HWhID == HSCWHID && HSPID == HSCSPID)
            {
                sErrMsg = "调入仓库、仓位不能与调出仓库、仓位相同!";
                return false;
            }
            //唯一条码,是否启用一次扫码控制('Y'为启用)
            if (omodel_View.HBarCodeType == "唯一条码" && sOneScanCtl == "Y")
            {
                //一次扫码控制,同一条码、同一单据类型,在WMS表和TEMP表里,只允许进行一次扫码
                DataSet dsOneScan = oCn.RunProcReturn("exec h_p_WMS_AddBarCode_OneScan '" + omodel_View.HBarCode + "'," + HBillID.ToString() + ",'" + HBillNo + "','" + HBillType + "'," + HWhID.ToString() + "," + HSPID.ToString() + "," + HSCWHID.ToString() + "," + HSCSPID.ToString() + ",'" + HMaker + "'", "h_p_WMS_AddBarCode_OneScan");
                if (dsOneScan == null || dsOneScan.Tables[0].Rows.Count == 0)
                {
                }
                else
                {
                    if (DBUtility.ClsPub.isLong(dsOneScan.Tables[0].Rows[0][0]) == 1)
                    {
                        sErrMsg = DBUtility.ClsPub.isStrNull(dsOneScan.Tables[0].Rows[0]["HRemark"]);
                        return false;
                    }
                }
            }
            oMain.HInterID = HBillID;
            oMain.HBillNo = HBillNo;
            oMain.HBillType = HBillType;
            oMain.HMaker = HMaker;
            oMain.HMaterID = omodel_View.HMaterID;
            oMain.HAuxPropID = omodel_View.HAuxPropID;
            oMain.HQty = sRelQty;
            oMain.HQtyMust = 0;
            oMain.HBarCode = omodel_View.HBarCode;
            oMain.HBatchNo = omodel_View.HBatchNo;
            oMain.HMTONo = omodel_View.HMTONo;
            oMain.HWhID = HWhID;
            oMain.HStockPlaceID = HSPID;
            oMain.HSCWHID = HSCWHID;
            oMain.HOutStockPlaceID = HSCSPID;
            oMain.HSourceInterID = omodel_View.HSourceInterID;
            oMain.HSourceEntryID = omodel_View.HSourceEntryID;
            oMain.HSourceBillNo = omodel_View.HSourceBillNo;
            oMain.HSourceBillType = HSourceBillType;
            if (omodel_View.HProduceDate < Convert.ToDateTime("1950-01-01"))
            {
                oMain.HBeginDate = "";
            }
            else
            {
                oMain.HBeginDate = omodel_View.HProduceDate.ToShortDateString();
            }
            if (omodel_View.HExpiryDate < Convert.ToDateTime("1950-01-01"))
            {
                oMain.HEndDate = "";
            }
            else
            {
                oMain.HEndDate = omodel_View.HExpiryDate.ToShortDateString();
            }
            oMain.HRedBlueFlag = false;
            oMain.HPieceQty = 1;
            oMain.HSTOCKORGID = HStockOutOrgID;
            oMain.HOWNERID = HStockInOrgID;
            //先进先出控制
            if (HSourceBillType != "-1" && HBillType != "1251" && sFIFOCtl == "Y")
            {
                DataSet FIFO = oCn.RunProcReturn("exec h_p_Kf_ICInventory_FIFO_Tmp_BarCode " + HBillID.ToString() + ",'" + HBillType + "','" + oMain.HBatchNo + "','" + oMain.HBarCode + "'," + oMain.HQty.ToString(), "h_p_Kf_ICInventory_FIFO_Tmp_BarCode");
                if (FIFO == null || FIFO.Tables[0].Rows.Count == 0)
                {
                    sErrMsg = "判断先进先出控制发生错误!";
                    return false;
                }
                else
                {
                    if (DBUtility.ClsPub.isLong(FIFO.Tables[0].Rows[0][0]) == 0)
                    {
                        sRelQty = DBUtility.ClsPub.isDoule(FIFO.Tables[0].Rows[0]["HQty"]);
                    }
                    else
                    {
                        sErrMsg = DBUtility.ClsPub.isStrNull(FIFO.Tables[0].Rows[0]["HRemark"]);
                        return false;
                    }
                }
            }
            oCn.RunProc("Insert into KF_PonderationBillMain_Temp " +
                "(HInterID,HBillNo,HBillType,HMaterID,HAuxPropID,HProcID" +
                ",HWhID,HSCWHID,HStockPlaceID,HOutStockPlaceID,HGroupID,HAddr" +
                ",HQtyMust,HQty,HPieceQty,HBatchNo,HBarCode,HBarCode_Pack" +
                ",HMaker,HMakeDate,HSourceInterID,HSourceEntryID,HSourceBillType,HSourceBillNo" +
                ",HRelationInterID,HRelationEntryID,HRelationBillNo,HRedBlueFlag,HMTONo,HPlanMode" +
                ",HSTOCKORGID,HOtherOrgID,HOWNERID,HOWNERTYPEID,HExpressNumber,HSubBillType" +
                ",HCusID,HDeptID,HCusBarCode,HMulSourceBill,HBeginDate,HEndDate) " +
                " Values(" + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "','" + oMain.HBillType + "'," + oMain.HMaterID.ToString() + "," + oMain.HAuxPropID.ToString() + "," + oMain.HProcID.ToString() +
                "," + oMain.HWhID.ToString() + "," + oMain.HSCWHID.ToString() + "," + oMain.HStockPlaceID.ToString() + "," + oMain.HOutStockPlaceID.ToString() + "," + oMain.HGroupID.ToString() + ",'" + oMain.HAddr + "'" +
                "," + oMain.HQtyMust.ToString() + "," + oMain.HQty.ToString() + "," + oMain.HPieceQty.ToString() + ",'" + oMain.HBatchNo + "','" + oMain.HBarCode + "',''" +
                ",'" + oMain.HMaker + "',getdate()," + oMain.HSourceInterID.ToString() + "," + oMain.HSourceEntryID.ToString() + ",'" + oMain.HSourceBillType + "','" + oMain.HSourceBillNo + "'" +
                "," + oMain.HRelationInterID.ToString() + "," + oMain.HRelationEntryID.ToString() + ",'" + oMain.HRelationBillNo + "'," + Convert.ToString(oMain.HRedBlueFlag ? 1 : 0) + ",'" + oMain.HMTONo + "',0" +
                "," + oMain.HSTOCKORGID.ToString() + "," + oMain.HOWNERID.ToString() + "," + oMain.HSTOCKORGID.ToString() + ",'','',0" +
                ",0,0,'" + oMain.HCusBarCode + "',0," + (oMain.HBeginDate == "" ? "NULL" : "'" + oMain.HBeginDate + "'") +
                "," + (oMain.HEndDate == "" ? "NULL" : "'" + oMain.HEndDate + "'") + ")");
            return true;
        }
        //核对虚仓调拨K3
        [WebMethod]
        public bool set_CheckXCMoveStockBill(Model.ClsKf_XCMoveStockBillMain_K3 oMain, ref string sErrMsg)