yxj
2022-12-22 7aa0ffd21f61a18ba8e084fcab2b47ead396d98e
新增委外领料、委外补料校验扫码调用方法
3个文件已修改
541 ■■■■■ 已修改文件
CLOUDWEB/WebService1.asmx.cs 541 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DLL/Model.dll 补丁 | 查看 | 原始文档 | blame | 历史
DLL/Pub_Class.dll 补丁 | 查看 | 原始文档 | blame | 历史
CLOUDWEB/WebService1.asmx.cs
@@ -18271,6 +18271,204 @@
        #endregion
        #region 委外补料   校验模式*
        //校验委外补料单
        [WebMethod]
        public bool set_SaveEntrustReplenishOutBill_BillCheck(Model.ClsKf_EntrustReplenishOutBillMain oMain, ref string sErrMsg)
        {
            if (set_SaveEntrustReplenishOutBill_CLD_BillCheck(oMain, ref sErrMsg) == true)
            {
                //上传成功
                return true;
            }
            else
            {
                //上传失败
                sErrMsg = "单据号:" + oMain.HBillNo + ",单据ID:" + oMain.HInterID + ";上传单据失败!" + sErrMsg;
                return false;
            }
        }
        private bool set_SaveEntrustReplenishOutBill_CLD_BillCheck(Model.ClsKf_EntrustReplenishOutBillMain oMain, ref string sErrMsg)
        {
            SQLHelper.ClsCN oCn = new SQLHelper.ClsCN();
            //获取系统参数
            Pub_Class.ClsXt_SystemParameter oSystemParameter = new Pub_Class.ClsXt_SystemParameter();
            if (oSystemParameter.ShowBillByOrgID(oMain.HSTOCKORGID, ref sErrMsg) == false)
            {
                sErrMsg = "获取系统参数失败! " + sErrMsg;
                return false;
            }
            //上传前判断
            DataSet Ds = oCn.RunProcReturn("exec h_p_WMS_BeforeUpload_EntrustReplenishOutBillCheck " + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "','" + oMain.HBillType + "','" + oSystemParameter.omodel.Kf_EntrustReplenishOutBillCheck_MustQtyCtl + "'", "h_p_WMS_BeforeUpload_EntrustReplenishOutBillCheck");
            if (Ds == null || Ds.Tables[0].Rows.Count == 0)
            {
                sErrMsg = "校验上传前判断,发生错误!";
                return false;
            }
            else
            {
                if (DBUtility.ClsPub.isLong(Ds.Tables[0].Rows[0][0]) == 1)
                {
                    sErrMsg = DBUtility.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["HRemark"]);
                    return false;
                }
            }
            //从配置文件获取 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);
            if (bLogin)
            {
                try
                {
                    oCn.BeginTran();
                    //写入条码出入库表
                    oCn.RunProc("EXEC h_p_Kf_ICStockBillSub_WMS_Insert_New " + oMain.HInterID.ToString() + ",'" + oMain.HBillType + "','" + oMain.HBillNo + "'");
                    if (oSystemParameter.omodel.Kf_EntrustReplenishOutBillCheck_MustQtyCtl == "完全等于应收")
                    {
                        //提交单据
                        string sJson2 = "{\"CreateOrgId\":0,\"Numbers\":[\"" + oMain.HBillNo + "\"]}";
                        var result2 = client.Execute<string>("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Submit",
                        new object[] { "SUB_FEEDMTRL", sJson2 });
                        //审核单据
                        string sJson3 = "{\"CreateOrgId\":0,\"Numbers\":[\"" + oMain.HBillNo + "\"]}";
                        var result3 = client.Execute<string>("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Audit",
                        new object[] { "SUB_FEEDMTRL", sJson3 });
                        HReturn = result3.ToString();
                        if (HReturn.Contains("\"IsSuccess\":false") == true)
                        {
                            sErrMsg = "审核委外补料单失败!" + HReturn;
                            oCn.RollBack();
                            return false;
                        }
                        else
                        {
                            sErrMsg = "审核委外补料单成功!单据号为:" + oMain.HBillNo;
                            oCn.Commit();
                            return true;
                        }
                    }
                    else
                    {
                        //根据TMP表 返回 修改信息
                        DataSet Ds2;
                        Ds2 = oCn.RunProcReturn("exec h_p_Kf_GetEntrustReplenishOutBillCheck " + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "'", "h_p_Kf_GetEntrustReplenishOutBillCheck");
                        if (Ds2 == null || Ds2.Tables[0].Rows.Count == 0 || Ds2.Tables[1].Rows.Count == 0)
                        {
                            sErrMsg = "获取修改信息失败!";
                            oCn.RollBack();
                            return false;
                        }
                        else
                        {
                            string sJson_Main = "{\"Creator\":\"\",\"NeedUpDateFields\":[\"FEntity\",\"FActualQty\"]," +
                                "\"NeedReturnFields\":[],\"IsDeleteEntry\":\"True\",\"SubSystemId\":\"\",\"IsVerifyBaseDataField\":\"false\"," +
                                "\"IsEntryBatchFill\":\"True\",\"ValidateFlag\":\"True\",\"NumberSearch\":\"True\",\"InterationFlags\":\"\"," +
                                "\"Model\": { \"FID\":\"" + Pub_Class.ClsPub.isStrNull(Ds2.Tables[0].Rows[0]["FID"]) + "\"," +
                                "\"FEntity\": [  ";
                            string sJson_Entry = "";
                            for (int i = 0; i < Ds2.Tables[1].Rows.Count; i++)
                            {
                                if (sJson_Entry != "")
                                {
                                    sJson_Entry = sJson_Entry + " , ";
                                }
                                sJson_Entry = sJson_Entry + "{" +
                                "\"FEntryID\":\"" + Pub_Class.ClsPub.isStrNull(Ds2.Tables[1].Rows[i]["FEntryID"]) + "\"," +
                                " \"FActualQty\":\"" + Pub_Class.ClsPub.isStrNull(Ds2.Tables[1].Rows[i]["HQty"]) + "\" " +
                                "}";
                            }
                            string sJson_End = "  ]  }}";
                            string sJson = sJson_Main + sJson_Entry + sJson_End;
                            //修改单据
                            var result = client.Execute<string>("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Save",
                            new object[] { "SUB_FEEDMTRL", sJson });
                            HReturn = result.ToString();
                            if (HReturn.Contains("\"IsSuccess\":false") == true)
                            {
                                sErrMsg = "修改委外补料单失败!" + HReturn + sJson;
                                oCn.RollBack();
                                return false;
                            }
                            else
                            {
                                HReturn = "";
                                //提交单据
                                string sJson2 = "{\"CreateOrgId\":0,\"Numbers\":[\"" + oMain.HBillNo + "\"]}";
                                var result2 = client.Execute<string>("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Submit",
                                new object[] { "SUB_FEEDMTRL", sJson2 });
                                //审核单据
                                string sJson3 = "{\"CreateOrgId\":0,\"Numbers\":[\"" + oMain.HBillNo + "\"]}";
                                var result3 = client.Execute<string>("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Audit",
                                new object[] { "SUB_FEEDMTRL", sJson3 });
                                HReturn = result3.ToString();
                                if (HReturn.Contains("\"IsSuccess\":false") == true)
                                {
                                    sErrMsg = "校验审核委外补料单失败!" + HReturn + sJson;
                                    oCn.RollBack();
                                    return false;
                                }
                                else
                                {
                                    //重新同步委外补料单
                                    oCn.RunProc("exec h_p_IFCLD_ERPSourceBillToLocal_EntrustReplenishOut '" + oMain.HBillNo + "'");
                                    sErrMsg = "修改并审核委外补料单成功!单据号为:" + oMain.HBillNo;
                                    oCn.Commit();
                                    return true;
                                }
                            }
                        }
                    }
                }
                catch (Exception e)
                {
                    sErrMsg = "校验审核委外补料单失败!" + e.Message;
                    oCn.RollBack();
                    return false;
                }
            }
            else
            {
                sErrMsg = "校验审核委外补料单失败!金蝶云登录失败!";
                oCn.RollBack();
                return false;
            }
        }
        #endregion
        #region 委外退料CLOUD   *
        //生成外购入库单 
@@ -20327,6 +20525,204 @@
            catch (Exception e)
            {
                sErrMsg = "生成委外领料单失败!" + e.Message;
                oCn.RollBack();
                return false;
            }
        }
        #endregion
        #region 委外领料   校验模式*
        //校验委外领料单
        [WebMethod]
        public bool set_SaveEntrustOutBill_BillCheck(Model.ClsKf_EntrustOutBillMain oMain, ref string sErrMsg)
        {
            if (set_SaveEntrustOutBill_CLD_BillCheck(oMain, ref sErrMsg) == true)
            {
                //上传成功
                return true;
            }
            else
            {
                //上传失败
                sErrMsg = "单据号:" + oMain.HBillNo + ",单据ID:" + oMain.HInterID + ";上传单据失败!" + sErrMsg;
                return false;
            }
        }
        private bool set_SaveEntrustOutBill_CLD_BillCheck(Model.ClsKf_EntrustOutBillMain oMain, ref string sErrMsg)
        {
            SQLHelper.ClsCN oCn = new SQLHelper.ClsCN();
            //获取系统参数
            Pub_Class.ClsXt_SystemParameter oSystemParameter = new Pub_Class.ClsXt_SystemParameter();
            if (oSystemParameter.ShowBillByOrgID(oMain.HSTOCKORGID, ref sErrMsg) == false)
            {
                sErrMsg = "获取系统参数失败! " + sErrMsg;
                return false;
            }
            //上传前判断
            DataSet Ds = oCn.RunProcReturn("exec h_p_WMS_BeforeUpload_EntrustOutBillCheck " + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "','" + oMain.HBillType + "','" + oSystemParameter.omodel.Kf_EntrustOutBillCheck_MustQtyCtl + "'", "h_p_WMS_BeforeUpload_EntrustOutBillCheck");
            if (Ds == null || Ds.Tables[0].Rows.Count == 0)
            {
                sErrMsg = "校验上传前判断,发生错误!";
                return false;
            }
            else
            {
                if (DBUtility.ClsPub.isLong(Ds.Tables[0].Rows[0][0]) == 1)
                {
                    sErrMsg = DBUtility.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["HRemark"]);
                    return false;
                }
            }
            //从配置文件获取 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);
            if (bLogin)
            {
                try
                {
                    oCn.BeginTran();
                    //写入条码出入库表
                    oCn.RunProc("EXEC h_p_Kf_ICStockBillSub_WMS_Insert_New " + oMain.HInterID.ToString() + ",'" + oMain.HBillType + "','" + oMain.HBillNo + "'");
                    if (oSystemParameter.omodel.Kf_EntrustOutBillCheck_MustQtyCtl == "完全等于应收")
                    {
                        //提交单据
                        string sJson2 = "{\"CreateOrgId\":0,\"Numbers\":[\"" + oMain.HBillNo + "\"]}";
                        var result2 = client.Execute<string>("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Submit",
                        new object[] { "SUB_PickMtrl", sJson2 });
                        //审核单据
                        string sJson3 = "{\"CreateOrgId\":0,\"Numbers\":[\"" + oMain.HBillNo + "\"]}";
                        var result3 = client.Execute<string>("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Audit",
                        new object[] { "SUB_PickMtrl", sJson3 });
                        HReturn = result3.ToString();
                        if (HReturn.Contains("\"IsSuccess\":false") == true)
                        {
                            sErrMsg = "审核委外领料单失败!" + HReturn;
                            oCn.RollBack();
                            return false;
                        }
                        else
                        {
                            sErrMsg = "审核委外领料单成功!单据号为:" + oMain.HBillNo;
                            oCn.Commit();
                            return true;
                        }
                    }
                    else
                    {
                        //根据TMP表 返回 修改信息
                        DataSet Ds2;
                        Ds2 = oCn.RunProcReturn("exec h_p_Kf_GetEntrustOutBillCheck " + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "'", "h_p_Kf_GetEntrustOutBillCheck");
                        if (Ds2 == null || Ds2.Tables[0].Rows.Count == 0 || Ds2.Tables[1].Rows.Count == 0)
                        {
                            sErrMsg = "获取修改信息失败!";
                            oCn.RollBack();
                            return false;
                        }
                        else
                        {
                            string sJson_Main = "{\"Creator\":\"\",\"NeedUpDateFields\":[\"FEntity\",\"FACTUALQTY\"]," +
                                "\"NeedReturnFields\":[],\"IsDeleteEntry\":\"True\",\"SubSystemId\":\"\",\"IsVerifyBaseDataField\":\"false\"," +
                                "\"IsEntryBatchFill\":\"True\",\"ValidateFlag\":\"True\",\"NumberSearch\":\"True\",\"InterationFlags\":\"\"," +
                                "\"Model\": { \"FID\":\"" + Pub_Class.ClsPub.isStrNull(Ds2.Tables[0].Rows[0]["FID"]) + "\"," +
                                "\"FEntity\": [  ";
                            string sJson_Entry = "";
                            for (int i = 0; i < Ds2.Tables[1].Rows.Count; i++)
                            {
                                if (sJson_Entry != "")
                                {
                                    sJson_Entry = sJson_Entry + " , ";
                                }
                                sJson_Entry = sJson_Entry + "{" +
                                "\"FEntryID\":\"" + Pub_Class.ClsPub.isStrNull(Ds2.Tables[1].Rows[i]["FEntryID"]) + "\"," +
                                " \"FACTUALQTY\":\"" + Pub_Class.ClsPub.isStrNull(Ds2.Tables[1].Rows[i]["HQty"]) + "\" " +
                                "}";
                            }
                            string sJson_End = "  ]  }}";
                            string sJson = sJson_Main + sJson_Entry + sJson_End;
                            //修改单据
                            var result = client.Execute<string>("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Save",
                            new object[] { "SUB_PickMtrl", sJson });
                            HReturn = result.ToString();
                            if (HReturn.Contains("\"IsSuccess\":false") == true)
                            {
                                sErrMsg = "修改委外领料单失败!" + HReturn + sJson;
                                oCn.RollBack();
                                return false;
                            }
                            else
                            {
                                HReturn = "";
                                //提交单据
                                string sJson2 = "{\"CreateOrgId\":0,\"Numbers\":[\"" + oMain.HBillNo + "\"]}";
                                var result2 = client.Execute<string>("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Submit",
                                new object[] { "SUB_PickMtrl", sJson2 });
                                //审核单据
                                string sJson3 = "{\"CreateOrgId\":0,\"Numbers\":[\"" + oMain.HBillNo + "\"]}";
                                var result3 = client.Execute<string>("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Audit",
                                new object[] { "SUB_PickMtrl", sJson3 });
                                HReturn = result3.ToString();
                                if (HReturn.Contains("\"IsSuccess\":false") == true)
                                {
                                    sErrMsg = "校验审核委外领料单失败!" + HReturn + sJson;
                                    oCn.RollBack();
                                    return false;
                                }
                                else
                                {
                                    //重新同步委外领料单
                                    oCn.RunProc("exec h_p_IFCLD_ERPSourceBillToLocal_EntrustOut '" + oMain.HBillNo + "'");
                                    sErrMsg = "修改并审核委外领料单成功!单据号为:" + oMain.HBillNo;
                                    oCn.Commit();
                                    return true;
                                }
                            }
                        }
                    }
                }
                catch (Exception e)
                {
                    sErrMsg = "校验审核委外领料单失败!" + e.Message;
                    oCn.RollBack();
                    return false;
                }
            }
            else
            {
                sErrMsg = "校验审核委外领料单失败!金蝶云登录失败!";
                oCn.RollBack();
                return false;
            }
@@ -46630,9 +47026,19 @@
                //销售出库单
                sWHSPCtl = "N";
            }
            else if (HBillType == "1211" && oSystemParameterMain.Kf_EntrustOutBillCheck_WHSPCtl == "N")
            {
                //委外领料单
                sWHSPCtl = "N";
            }
            else if (HBillType == "1254" && oSystemParameterMain.Kf_MateReplenishOutBillCheck_WHSPCtl == "N")
            {
                //生产补料单
                sWHSPCtl = "N";
            }
            else if (HBillType == "1255" && oSystemParameterMain.Kf_EntrustReplenishOutBillCheck_WHSPCtl == "N")
            {
                //委外补料单
                sWHSPCtl = "N";
            }
            else if (HBillType == "1206")
@@ -46657,9 +47063,19 @@
                //销售出库单
                sMultilineCtl = "Y";
            }
            else if (HBillType == "1211" && oSystemParameterMain.Kf_EntrustOutBillCheck_MultilineCtl == "Y")
            {
                //委外领料单
                sMultilineCtl = "Y";
            }
            else if (HBillType == "1254" && oSystemParameterMain.Kf_MateReplenishOutBillCheck_MultilineCtl == "Y")
            {
                //生产补料单
                sMultilineCtl = "Y";
            }
            else if (HBillType == "1255" && oSystemParameterMain.Kf_EntrustReplenishOutBillCheck_MultilineCtl == "Y")
            {
                //委外补料单
                sMultilineCtl = "Y";
            }
            else if (HBillType == "1206")
@@ -46668,6 +47084,7 @@
                sMultilineCtl = "N";
            }
            string HMaterNumber;            //物料代码
            //判断是否存在相同条码,判断所扫条码是否在单据中
            DataSet ds1 = oCn.RunProcReturn("exec h_p_WMS_AddBarCode_BillCheck_New '" + omodel_View.HBarCode + "'," + HBillID.ToString() + ",'" + HBillNo + "','" + HBillType + "'," + HWhID + "," + HSPID + ",'" + sWHSPCtl + "','" + sMultilineCtl + "'", "h_p_WMS_AddBarCode_BillCheck_New");
            if (ds1 == null || ds1.Tables[0].Rows.Count == 0)
@@ -46683,6 +47100,7 @@
                    omodel_View.HSourceQty = DBUtility.ClsPub.isDoule(ds1.Tables[0].Rows[0]["HSumQtyMust"]);     //HSumQtyMust为源单相同物料剩余可扫数量
                    HWhID = DBUtility.ClsPub.isLong(ds1.Tables[0].Rows[0]["HWhID"]);
                    HSPID = DBUtility.ClsPub.isLong(ds1.Tables[0].Rows[0]["HSPID"]);
                    HMaterNumber = DBUtility.ClsPub.isStrNull(ds1.Tables[0].Rows[0]["HMaterNumber"]);
                }
                else
                {
@@ -46759,8 +47177,36 @@
                        return false;
                    }
                }
                //委外领料校验,根据系统参数:委外领料校验-应收数量 控制扫码数量能否可超单据数量(小于等于应收、完全等于应收、不控制)
                else if (HBillType == "1211" && (oSystemParameterMain.Kf_EntrustOutBillCheck_MustQtyCtl == "小于等于应收" || oSystemParameterMain.Kf_EntrustOutBillCheck_MustQtyCtl == "完全等于应收"))
                {
                    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 (HBillType == "1254" && (oSystemParameterMain.Kf_MateReplenishOutBillCheck_MustQtyCtl == "小于等于应收" || oSystemParameterMain.Kf_MateReplenishOutBillCheck_MustQtyCtl == "完全等于应收"))
                {
                    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 (HBillType == "1255" && (oSystemParameterMain.Kf_EntrustReplenishOutBillCheck_MustQtyCtl == "小于等于应收" || oSystemParameterMain.Kf_EntrustReplenishOutBillCheck_MustQtyCtl == "完全等于应收"))
                {
                    if (omodel_View.HSourceQty == 0)
                    {
@@ -46846,8 +47292,36 @@
                        return false;
                    }
                }
                //委外领料校验,根据系统参数:委外领料校验-应收数量 控制扫码数量能否可超单据数量(小于等于应收、完全等于应收、不控制)
                else if (HBillType == "1211" && (oSystemParameterMain.Kf_EntrustOutBillCheck_MustQtyCtl == "小于等于应收" || oSystemParameterMain.Kf_EntrustOutBillCheck_MustQtyCtl == "完全等于应收"))
                {
                    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 (HBillType == "1254" && (oSystemParameterMain.Kf_MateReplenishOutBillCheck_MustQtyCtl == "小于等于应收" || oSystemParameterMain.Kf_MateReplenishOutBillCheck_MustQtyCtl == "完全等于应收"))
                {
                    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 (HBillType == "1255" && (oSystemParameterMain.Kf_EntrustReplenishOutBillCheck_MustQtyCtl == "小于等于应收" || oSystemParameterMain.Kf_EntrustReplenishOutBillCheck_MustQtyCtl == "完全等于应收"))
                {
                    if (omodel_View.HSourceQty == 0)
                    {
@@ -46878,61 +47352,74 @@
            //生产领料(1204)、销售出库(1205)、其他出库蓝字(1206)、委外出库(1211)
            //外购退料(1239)、产品退库(1245)、其他入库红字(1248)、委外退库(1246)
            //生产补料(1254)
            //生产补料(1254)、委外补料(1255)
            //出库、红字入库,判断条码库存、ERP库存
            double sWMSQty = 0;     //条码库存数量
            double sERPQty = 0;     //ERP库存数量
            string sWhName = "";    //仓库名称
            string sSPName = "";    //仓位名称
            if (HBillType == "1204" || HBillType == "1205" || HBillType == "1206" || HBillType == "1211"
                || HBillType == "1239" || HBillType == "1245" || HBillType == "1248" || HBillType == "1246"
                || HBillType == "1254")
                || HBillType == "1254" || HBillType == "1255")
            {
                //库存控制-WMS负库存控制
                if (omodel_View.HBarCodeType == "唯一条码" && oSystemParameterMain.WMS_WMSStockCtl == "Y")
                {
                    //判断ERP库存   返回ERP库存数量
                    DataSet DsWMS = oCn.RunProcReturn("exec h_p_KF_ICInventory_WMS_GetWHAndSP " + HBillID.ToString() + ",'" + HBillType + "','" + omodel_View.HBarCode + "'," + HWhID.ToString() + "," + HSPID.ToString(), "h_p_KF_ICInventory_WMS_GetWHAndSP");
                    DataSet DsWMS = oCn.RunProcReturn("exec h_p_WMS_AddBarCode_GetWMSICInventory " + HBillID.ToString() + ",'" + HBillType + "','" + omodel_View.HBarCode + "'," + HWhID.ToString() + "," + HSPID.ToString() + "," + HOWNERID.ToString(), "h_p_WMS_AddBarCode_GetWMSICInventory");
                    if (DsWMS == null || DsWMS.Tables[0].Rows.Count == 0)
                    {
                        sRelQty = 0;
                        sErrMsg = "所扫描物料条码: " + omodel_View.HBarCode + " ,无条码库存!";
                        return false;
                    }
                    else
                    {
                        HWhID = DBUtility.ClsPub.isLong(DsWMS.Tables[0].Rows[0]["HWhID"]);
                        HSPID = DBUtility.ClsPub.isLong(DsWMS.Tables[0].Rows[0]["HSPID"]);
                        sWMSQty = DBUtility.ClsPub.isDoule(DsWMS.Tables[0].Rows[0]["HKFQty"]);
                        //判断扫描条码数量与条码库存数量
                        if(sRelQty> sWMSQty)
                        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;
                        }
                    }
                }
                //判断ERP库存   返回ERP库存数量
                DataSet DsERP = oCn.RunProcReturn("exec h_p_IF_CheckQtyByERPICInventory " + HBillID.ToString() + ",'" + HBillType + "','" + omodel_View.HBarCode + "'," + HWhID.ToString() + "," + HSPID.ToString() + "," + omodel_View.HMaterID.ToString() + "," + omodel_View.HAuxPropID.ToString() + ",'" + omodel_View.HBatchNo + "'," + sRelQty.ToString() + "," + HOWNERID.ToString(), "h_p_IF_CheckQtyByERPICInventory");
                if (DsERP == null || DsERP.Tables[0].Rows.Count == 0)
                //库存控制-ERP负库存控制     私有云模式
                if (oSystemParameterMain.WMS_CloudMode == "Y")
                {
                    sErrMsg = "判断ERP库存,发生错误!";
                    return false;
                }
                else
                {
                    if (DBUtility.ClsPub.isLong(DsERP.Tables[0].Rows[0][0]) == 0)
                    //判断ERP库存   返回ERP库存数量
                    DataSet DsERP = oCn.RunProcReturn("exec h_p_WMS_AddBarCode_GetERPICInventory " + HBillID.ToString() + ",'" + HBillType + "','" + HMaterNumber + "'," + omodel_View.HAuxPropID.ToString() + ",'" + omodel_View.HBatchNo + "'," + HWhID.ToString() + "," + HSPID.ToString() + "," + HOWNERID.ToString(), "h_p_WMS_AddBarCode_GetERPICInventory");
                    if (DsERP == null || DsERP.Tables[0].Rows.Count == 0)
                    {
                        sERPQty = DBUtility.ClsPub.isDoule(DsERP.Tables[0].Rows[0]["HQty"]);
                        sRelQty = sERPQty;
                        sErrMsg = "所扫描条码对应物料代码: " + HMaterNumber + " ,无金蝶库存!";
                        return false;
                    }
                    else
                    {
                        sErrMsg = DBUtility.ClsPub.isStrNull(DsERP.Tables[0].Rows[0]["HRemark"]);
                        return false;
                    }
                }
                        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 (sRelQty == 0)
                {
                    sErrMsg = "所扫描条码无条码库存或对应物料无ERP库存!";
                    return false;
                        if (sERPQty <= 0)
                        {
                            sErrMsg = "所扫描条码对应物料代码:" + HMaterNumber + " ,在仓库[ " + sWhName + " ]、仓位[ " + sSPName + " ]中,无金蝶库存!";
                            return false;
                        }
                        //判断扫描数量与金蝶库存数量
                        else if (sRelQty > sERPQty)
                        {
                            sRelQty = sERPQty;
                        }
                    }
                }
            }
            //采购入库(1201)、产品入库(1202)、其他入库蓝字(1203)、委外入库(1210)
@@ -46952,10 +47439,12 @@
            if ((HBillType == "1203" && oSystemParameterMain.Kf_OtherInBill_BillTypeOneScan == "Y")
                || (HBillType == "1204" && oSystemParameterMain.Kf_MateOutBill_BillTypeOneScan == "Y")
                || (HBillType == "1205" && oSystemParameterMain.Kf_SellOutBill_BillTypeOneScan == "Y")
                || (HBillType == "1211" && oSystemParameterMain.Kf_EntrustOutBill_BillTypeOneScan == "Y")
                || (HBillType == "1254" && oSystemParameterMain.Kf_MateReplenishOutBill_BillTypeOneScan == "Y")
                || (HBillType == "1255" && oSystemParameterMain.Kf_EntrustReplenishOutBill_BillTypeOneScan == "Y")
                || (HBillType == "1206" && oSystemParameterMain.Kf_OtherOutBill_BillTypeOneScan == "Y"))
            {
                DataSet dsOneScan = oCn.RunProcReturn("exec h_p_WMS_CheckBarCodeOneScan_New '" + omodel_View.HBarCode + "'," + HBillID.ToString() + ",'" + HBillNo + "','" + HBillType + "'," + HWhID + "," + HSPID + ",0,0,'" + HMaker + "'", "h_p_WMS_CheckBarCodeOneScan_New");
                DataSet dsOneScan = oCn.RunProcReturn("exec h_p_WMS_AddBarCode_OneScan '" + omodel_View.HBarCode + "'," + HBillID.ToString() + ",'" + HBillNo + "','" + HBillType + "'," + HWhID + "," + HSPID + ",0,0,'" + HMaker + "'", "h_p_WMS_AddBarCode_OneScan");
                if (dsOneScan == null || dsOneScan.Tables[0].Rows.Count == 0)
                {
                }
DLL/Model.dll
Binary files differ
DLL/Pub_Class.dll
Binary files differ