yxj
2025-01-09 90e19e843f7f0c74236da62a815423030e89415b
校验模块扫描物料条码完善修改,直接调拨校验上传方法完善修改
1个文件已修改
231 ■■■■ 已修改文件
CLOUDWEB/WebService1.asmx.cs 231 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CLOUDWEB/WebService1.asmx.cs
@@ -11952,32 +11952,83 @@
        [WebMethod]
        public bool set_SaveMoveStockBill_BillCheck(Model.ClsKf_MoveStockBillMain oMain, ref string sErrMsg)
        {
            if (set_SaveMoveStockBill_CLD_BillCheck(oMain, ref sErrMsg) == true)
            {
                //上传成功
                return true;
            }
            else
            {
                //上传失败
                sErrMsg = "单据号:" + oMain.HBillNo + ",单据ID:" + oMain.HInterID + ";上传单据失败!" + sErrMsg;
                return false;
            }
        }
        [WebMethod]
        public bool set_SaveMoveStockBill_CLD_BillCheck(Model.ClsKf_MoveStockBillMain oMain, ref string sErrMsg)
        {
            SQLHelper.ClsCN oCn = new SQLHelper.ClsCN();
            //获取系统参数
            Pub_Class.ClsXt_SystemParameter oSystemParameter = new Pub_Class.ClsXt_SystemParameter();
            if (oSystemParameter.ShowBill(ref sErrMsg) == false)
            if (oSystemParameter.ShowBillByOrgID(oMain.HSTOCKORGID, ref sErrMsg) == false)
            {
                sErrMsg = "获取系统参数失败! " + sErrMsg;
                return false;
            }
            //WMS系统同步至ERP的类型(WISE、CLOUD、MES)
            if (oSystemParameter.omodel.Kf_MoveStockBillCheck_ERPMode.ToUpper() == "WISE")
            {
                sErrMsg = "暂无此功能!";
                return false;
            }
            else if (oSystemParameter.omodel.Kf_MoveStockBillCheck_ERPMode.ToUpper() == "CLOUD")
            {
                //原单据为扫码生成,对原扫描的条码进行核对
                if (oSystemParameter.omodel.Kf_MoveStockBillCheck_SourceBarCodeCtl == "Y")
                {
                    sErrMsg = "暂不支持扫码生成单据的校验功能!";
                    return false;
                }
                //原单据非扫码生成
                else
                {
                    if (set_SaveMoveStockBill_CLD_BillCheck(oMain, oSystemParameter.omodel, ref sErrMsg) == true)
                    {
                        //上传成功
                        return true;
                    }
                    else
                    {
                        //上传失败
                        sErrMsg = "单据号:" + oMain.HBillNo + ",单据ID:" + oMain.HInterID + ";上传单据失败!" + sErrMsg;
                        return false;
                    }
                }
            }
            else if (oSystemParameter.omodel.Kf_MoveStockBillCheck_ERPMode.ToUpper() == "WMS")  //只生成WMS单据
            {
                //原单据为扫码生成,对原扫描的条码进行核对
                if (oSystemParameter.omodel.Kf_MoveStockBillCheck_SourceBarCodeCtl == "Y")
                {
                    sErrMsg = "暂不支持扫码生成单据的校验功能!";
                    return false;
                }
                //原单据非扫码生成
                else
                {
                    if (set_SaveMoveStockBill_WMS_BillCheck(oMain, oSystemParameter.omodel, ref sErrMsg) == true)
                    {
                        //上传成功
                        return true;
                    }
                    else
                    {
                        //上传失败
                        sErrMsg = "单据号:" + oMain.HBillNo + ",单据ID:" + oMain.HInterID + ";上传单据失败!" + sErrMsg;
                        return false;
                    }
                }
            }
            else
            {
                sErrMsg = "WMS系统同步至ERP的类型对应系统参数设置错误!";
                return false;
            }
        }
        //CLOUD 原单据非扫码生成
        [WebMethod]
        private bool set_SaveMoveStockBill_CLD_BillCheck(Model.ClsKf_MoveStockBillMain oMain, Pub_Class.ClsXt_SystemParameterMain oSystemParameterMain, ref string sErrMsg)
        {
            SQLHelper.ClsCN oCn = new SQLHelper.ClsCN();
            //上传前判断
            DataSet Ds = oCn.RunProcReturn("exec h_p_WMS_BeforeUpload_MoveStockBillCheck " + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "','" + oMain.HBillType + "','" + oSystemParameter.omodel.Kf_MoveStockBillCheck_MustQtyCtl + "'", "h_p_WMS_BeforeUpload_MoveStockBillCheck");
            DataSet Ds = oCn.RunProcReturn("exec h_p_WMS_BeforeUpload_MoveStockBillCheck " + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "','" + oMain.HBillType + "','" + oSystemParameterMain.Kf_MoveStockBillCheck_MustQtyCtl + "'", "h_p_WMS_BeforeUpload_MoveStockBillCheck");
            if (Ds == null || Ds.Tables[0].Rows.Count == 0)
            {
                sErrMsg = "校验上传前判断,发生错误!";
@@ -12018,7 +12069,7 @@
                    sCLOUDPsd = DBUtility.ClsPub.isStrNull(ds11.Tables[0].Rows[0]["HCloudUserPsd"]);
                }
                if (oSystemParameter.omodel.Kf_MoveStockBillCheck_MustQtyCtl == "完全等于应收")
                if (oSystemParameterMain.Kf_MoveStockBillCheck_MustQtyCtl == "完全等于应收")
                {
                    string HReturn;
                    ApiClient client = new ApiClient(Pub_Class.ClsPub.sCLOUDUrl);
@@ -12039,12 +12090,24 @@
                        if (HReturn.Contains("\"IsSuccess\":false") == true)
                        {
                            sErrMsg = "审核直接调拨单失败!" + HReturn;
                            //反序列化json数据
                            var retModel = JsonConvert.DeserializeObject<KingdeeResponse>(HReturn);
                            //接收金蝶报错信息
                            var strErrorMsg = string.Empty;
                            //遍历获取报错信息
                            foreach (var item in retModel.Result.ResponseStatus.Errors)
                            {
                                strErrorMsg += item.Message + "\r\n";
                            };
                            sErrMsg = "校验审核直接调拨单失败!" + strErrorMsg;
                            LogService.Write("校验审核直接调拨单失败!" + HReturn);   //写入txt文本
                            oCn.RollBack();
                            return false;
                        }
                        else
                        {
                            sErrMsg = "审核直接调拨单成功!单据号为:" + oMain.HBillNo;
                            LogService.Write("校验审核直接调拨单成功!单据号为:" + oMain.HBillNo);   //写入txt文本
                            oCn.Commit();
                            return true;
                        }
@@ -12105,7 +12168,17 @@
                            if (HReturn.Contains("\"IsSuccess\":false") == true)
                            {
                                sErrMsg = "修改直接调拨单失败!" + HReturn + sJson;
                                //反序列化json数据
                                var retModel = JsonConvert.DeserializeObject<KingdeeResponse>(HReturn);
                                //接收金蝶报错信息
                                var strErrorMsg = string.Empty;
                                //遍历获取报错信息
                                foreach (var item in retModel.Result.ResponseStatus.Errors)
                                {
                                    strErrorMsg += item.Message + "\r\n";
                                };
                                sErrMsg = "校验修改直接调拨单失败!" + strErrorMsg;
                                LogService.Write("校验修改直接调拨单失败!" + HReturn + sJson);   //写入txt文本
                                oCn.RollBack();
                                return false;
                            }
@@ -12125,7 +12198,17 @@
                                if (HReturn.Contains("\"IsSuccess\":false") == true)
                                {
                                    sErrMsg = "校验审核直接调拨单失败!" + HReturn + sJson;
                                    //反序列化json数据
                                    var retModel = JsonConvert.DeserializeObject<KingdeeResponse>(HReturn);
                                    //接收金蝶报错信息
                                    var strErrorMsg = string.Empty;
                                    //遍历获取报错信息
                                    foreach (var item in retModel.Result.ResponseStatus.Errors)
                                    {
                                        strErrorMsg += item.Message + "\r\n";
                                    };
                                    sErrMsg = "校验审核直接调拨单失败!" + strErrorMsg;
                                    LogService.Write("校验审核直接调拨单失败!" + HReturn + sJson);   //写入txt文本
                                    oCn.RollBack();
                                    return false;
                                }
@@ -12133,6 +12216,8 @@
                                {
                                    //重新同步直接调拨单
                                    oCn.RunProc("exec h_p_IFCLD_ERPSourceBillToLocal_MoveStock '" + oMain.HBillNo + "'");
                                    sErrMsg = "修改并审核直接调拨单成功!单据号为:" + oMain.HBillNo;
                                    LogService.Write("校验修改并审核直接调拨单成功!单据号为:" + oMain.HBillNo);   //写入txt文本
                                    oCn.Commit();
                                    return true;
                                }
@@ -12150,6 +12235,46 @@
            catch (Exception e)
            {
                sErrMsg = "校验审核直接调拨单失败!" + e.Message;
                oCn.RollBack();
                return false;
            }
        }
        //WMS   原单据非扫码生成    只生成WMS单据
        private bool set_SaveMoveStockBill_WMS_BillCheck(Model.ClsKf_MoveStockBillMain oMain, Pub_Class.ClsXt_SystemParameterMain oSystemParameterMain, ref string sErrMsg)
        {
            SQLHelper.ClsCN oCn = new SQLHelper.ClsCN();
            //上传前判断
            DataSet Ds = oCn.RunProcReturn("exec h_p_WMS_BeforeUpload_MoveStockBillCheck_WMS " + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "','" + oMain.HBillType + "','" + oSystemParameterMain.WMS_WMSStockCtl_ERPMode + "'", "h_p_WMS_BeforeUpload_MoveStockBillCheck_WMS");
            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;
                }
            }
            try
            {
                oCn.BeginTran();
                //写入条码出入库表
                oCn.RunProc("EXEC h_p_Kf_ICStockBillSub_WMS_Insert_New " + oMain.HInterID.ToString() + ",'" + oMain.HBillType + "','" + oMain.HBillNo + "'");
                sErrMsg = "校验直接调拨单成功!单据号为:" + oMain.HBillNo;
                LogService.Write("校验直接调拨单成功!单据号为:" + oMain.HBillNo);   //写入txt文本
                oCn.Commit();
                return true;
            }
            catch (Exception e)
            {
                sErrMsg = "校验直接调拨单失败!" + e.Message;
                oCn.RollBack();
                return false;
            }
@@ -21959,7 +22084,7 @@
        }
        //CLOUD 原单据非扫码生成
        public bool set_SaveMateOutBill_CLD_BillCheck(Model.ClsKf_MateOutBillMain oMain, Pub_Class.ClsXt_SystemParameterMain oSystemParameterMain, ref string sErrMsg)
        private bool set_SaveMateOutBill_CLD_BillCheck(Model.ClsKf_MateOutBillMain oMain, Pub_Class.ClsXt_SystemParameterMain oSystemParameterMain, ref string sErrMsg)
        {
            SQLHelper.ClsCN oCn = new SQLHelper.ClsCN();
@@ -27717,7 +27842,7 @@
            }
        }
        //原单据非扫码生成
        //CLOUD 原单据非扫码生成
        public bool set_SaveOtherOutBill_CLD_BillCheck(Model.ClsKf_OtherOutBillMain oMain, Pub_Class.ClsXt_SystemParameterMain oSystemParameterMain, ref string sErrMsg)
        {
            SQLHelper.ClsCN oCn = new SQLHelper.ClsCN();
@@ -32202,8 +32327,8 @@
            }
        }
        //原单据非扫码生成
        public bool set_SavePOStockInBill_CLD_BillCheck(Model.ClsKf_POStockInBillMain oMain, Pub_Class.ClsXt_SystemParameterMain oSystemParameterMain, ref string sErrMsg)
        //CLOUD 原单据非扫码生成
        private bool set_SavePOStockInBill_CLD_BillCheck(Model.ClsKf_POStockInBillMain oMain, Pub_Class.ClsXt_SystemParameterMain oSystemParameterMain, ref string sErrMsg)
        {
            SQLHelper.ClsCN oCn = new SQLHelper.ClsCN();
@@ -35277,8 +35402,8 @@
            }
        }
        //原单据非扫码生成
        public bool set_SaveProductInBill_CLD_BillCheck(Model.ClsKf_ProductInBillMain oMain, Pub_Class.ClsXt_SystemParameterMain oSystemParameterMain, ref string sErrMsg)
        //CLOUD 原单据非扫码生成
        private bool set_SaveProductInBill_CLD_BillCheck(Model.ClsKf_ProductInBillMain oMain, Pub_Class.ClsXt_SystemParameterMain oSystemParameterMain, ref string sErrMsg)
        {
            SQLHelper.ClsCN oCn = new SQLHelper.ClsCN();
@@ -39051,7 +39176,7 @@
        }
        //CLOUD 原单据非扫码生成
        public bool set_SaveOtherInBill_CLD_BillCheck(Model.ClsKf_OtherInBillMain oMain, Pub_Class.ClsXt_SystemParameterMain oSystemParameterMain, ref string sErrMsg)
        private bool set_SaveOtherInBill_CLD_BillCheck(Model.ClsKf_OtherInBillMain oMain, Pub_Class.ClsXt_SystemParameterMain oSystemParameterMain, ref string sErrMsg)
        {
            SQLHelper.ClsCN oCn = new SQLHelper.ClsCN();
@@ -39269,7 +39394,7 @@
        }
        //CLOUD 原单据为扫码生成,对原扫描的条码进行核对
        public bool set_SaveOtherInBill_CLD_BillCheck_Verify(Model.ClsKf_OtherInBillMain oMain, ref string sErrMsg)
        private bool set_SaveOtherInBill_CLD_BillCheck_Verify(Model.ClsKf_OtherInBillMain oMain, ref string sErrMsg)
        {
            SQLHelper.ClsCN oCn = new SQLHelper.ClsCN();
            //上传前判断
@@ -57633,7 +57758,7 @@
            }
            #endregion
            string HMaterNumber;            //物料代码
            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)
@@ -57647,8 +57772,8 @@
                {
                    omodel_View.HMaterID = DBUtility.ClsPub.isLong(ds1.Tables[0].Rows[0]["HMaterID"]);
                    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"]);
                    HWhID = DBUtility.ClsPub.isLong(ds1.Tables[0].Rows[0]["sHWhID"]);
                    HSPID = DBUtility.ClsPub.isLong(ds1.Tables[0].Rows[0]["sHSPID"]);
                    HMaterNumber = DBUtility.ClsPub.isStrNull(ds1.Tables[0].Rows[0]["HMaterNumber"]);
                }
                else
@@ -57703,7 +57828,7 @@
            //生产领料(1204)、销售出库(1205)、其他出库蓝字(1206)、委外出库(1211)
            //外购退料(1239)、产品退库(1245)、其他入库红字(1248)、委外退库(1246)
            //生产补料(1254)、委外补料(1255)
            //生产补料(1254)、委外补料(1255)、直接调拨单(1207)、分步式调出单(1250)
            //出库、红字入库,判断条码库存、ERP库存
            double sWMSQty = 0;     //条码库存数量
            double sERPQty = 0;     //ERP库存数量
@@ -57711,12 +57836,12 @@
            string sSPName = "";    //仓位名称
            if (HBillType == "1204" || HBillType == "1205" || HBillType == "1206" || HBillType == "1211"
                || HBillType == "1239" || HBillType == "1245" || HBillType == "1248" || HBillType == "1246"
                || HBillType == "1254" || HBillType == "1255")
                || HBillType == "1254" || HBillType == "1255" || HBillType == "1207" || HBillType == "1250")
            {
                //库存控制-WMS负库存控制
                if (omodel_View.HBarCodeType == "唯一条码" && oSystemParameterMain.WMS_WMSStockCtl.ToUpper() == "Y")
                {
                    //判断ERP库存   返回ERP库存数量
                    //判断WMS库存   返回WMS库存数量
                    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)
                    {
@@ -57819,7 +57944,17 @@
            //唯一条码,一次扫码控制,同一条码、同一单据类型,在WMS表和TEMP表里,只允许进行一次扫码
            if (omodel_View.HBarCodeType == "唯一条码" && sOneScanCtl == "Y")
            {
                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");
                Int64 HSCWHID = 0;            //调出仓库ID
                Int64 HSCSPID = 0;            //调出仓位ID
                //直接调拨单(1207)、分步式调出单(1250)、分步式调入单(1251)
                if (HBillType == "1207" || HBillType == "1250" || HBillType == "1251")
                {
                    HSCWHID = HWhID;
                    HSCSPID = HSPID;
                    HWhID = DBUtility.ClsPub.isLong(ds1.Tables[0].Rows[0]["HWhID"]);
                    HSPID = DBUtility.ClsPub.isLong(ds1.Tables[0].Rows[0]["HSPID"]);
                }
                DataSet dsOneScan = oCn.RunProcReturn("exec h_p_WMS_AddBarCode_OneScan '" + omodel_View.HBarCode + "'," + HBillID.ToString() + ",'" + HBillNo + "','" + HBillType + "'," + HWhID + "," + HSPID + "," + HSCWHID + "," + HSCSPID + ",'" + HMaker + "'", "h_p_WMS_AddBarCode_OneScan");
                if (dsOneScan == null || dsOneScan.Tables[0].Rows.Count == 0)
                {
                }
@@ -57897,10 +58032,20 @@
                oMain.HBarCode = omodel_View.HBarCode;
                oMain.HBatchNo = omodel_View.HBatchNo;
                oMain.HMTONo = omodel_View.HMTONo;
                oMain.HWhID = HWhID;
                oMain.HStockPlaceID = HSPID;
                oMain.HSCWHID = 0;
                oMain.HOutStockPlaceID = 0;
                if (HBillType == "1207" || HBillType == "1250" || HBillType == "1251")
                {
                    oMain.HWhID = DBUtility.ClsPub.isLong(ds1.Tables[0].Rows[i]["HWhID"]);
                    oMain.HStockPlaceID = DBUtility.ClsPub.isLong(ds1.Tables[0].Rows[i]["HSPID"]);
                    oMain.HSCWHID = HWhID;
                    oMain.HOutStockPlaceID = HSPID;
                }
                else
                {
                    oMain.HWhID = HWhID;
                    oMain.HStockPlaceID = HSPID;
                    oMain.HSCWHID = 0;
                    oMain.HOutStockPlaceID = 0;
                }
                oMain.HSourceInterID = DBUtility.ClsPub.isLong(ds1.Tables[0].Rows[i]["HSourceInterID"]);
                oMain.HSourceEntryID = DBUtility.ClsPub.isLong(ds1.Tables[0].Rows[i]["HSourceEntryID"]);
                oMain.HSourceBillNo = DBUtility.ClsPub.isStrNull(ds1.Tables[0].Rows[i]["HSourceBillNo"]);
@@ -57924,7 +58069,7 @@
                    oMain.HEndDate = omodel_View.HExpiryDate.ToShortDateString();
                }
                oMain.HSTOCKORGID = HOWNERID;
                oMain.HOWNERID = HOWNERID;
                oMain.HOWNERID = DBUtility.ClsPub.isLong(ds1.Tables[0].Rows[i]["HOtherOrgID"]);
                oCn.RunProc("Insert into KF_PonderationBillMain_Temp " +
                "(HInterID,HBillNo,HBillType,HMaterID,HUnitID,HAuxPropID,HProcID" +