yxj
2022-09-29 22a0e18fcd802281f75e74c33ca62ddf7facc40f
生产汇报单扫码方法完善,上传方法中写入日志内容修改
1个文件已修改
64 ■■■■ 已修改文件
CLOUDWEB/WebService1.asmx.cs 64 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CLOUDWEB/WebService1.asmx.cs
@@ -4403,6 +4403,7 @@
        /// <returns></returns>
        public bool SaveICMOReportBill_ICMO_CLD(Model.ClsSc_ICMOReportBillMain oMain, string sHSourceType, Pub_Class.ClsXt_SystemParameterMain oSystemParameterMain, ref string sErrMsg)
        {
            string sRemark = "";
            //从配置文件获取 CLOUD网址、账套信息、登录用户、登录密码
            if (!Pub_Class.ClsPub.GetCLOUDLoginInfo(ref Pub_Class.ClsPub.sExeReturnInfo))
            {
@@ -4428,6 +4429,8 @@
            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
            {
@@ -4476,6 +4479,8 @@
                ") ");
                //更新关联数量
                oCn.RunProc("exec h_p_Sc_UpDateRelation_ICMOToICMOReport_Add " + oMain.HInterID.ToString());
                sRemark = sRemark + " ;生成出入库单据" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff");
                //根据TMP表 返回 信息
                DataSet Ds;
@@ -4671,14 +4676,20 @@
                    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.Save",
                        new object[] { "PRD_MORPT", sJson });
                        sRemark = sRemark + " ;生成CLOUD单据" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff");
                        //生成单据后更新自定义字段
                        oCn.RunProc("exec h_p_Sc_UpDateSelfFildICMOReport '" + oMain.HBillNo + "','" + sHSourceType + "'");
                        sRemark = sRemark + " ;生成单据后回填字段信息" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff");
                        HReturn = result.ToString();
@@ -4697,7 +4708,7 @@
                            {
                                oCn.RunProc("exec h_p_WMS_UpdateSourceByBarCodeBill_ICMOReportBill '" + oMain.HBillNo + "'");
                            }
                            LogService.Write("生成生产汇报单(源单:生产订单)成功!" + sJson);
                            sRemark = sRemark + sJson;
                            oCn.Commit();
                        }
                    }
@@ -4711,6 +4722,7 @@
            }
            catch (Exception e)
            {
                LogService.Write("生成回滚" + sRemark);
                sErrMsg = "生成生产汇报单失败!" + e.Message;
                oCn.RollBack();
                return false;
@@ -4738,12 +4750,14 @@
                    if (HReturn.Contains("\"IsSuccess\":false") == true)
                    {
                        LogService.Write("审核单据失败" + sRemark);
                        sErrMsg = "生成生产汇报单成功,审核单据失败!" + HReturn;
                        oCn.RollBack();
                        return true;
                    }
                    else
                    {
                        LogService.Write("生成并审核生产汇报单(源单:生产订单)成功!" + sRemark);
                        sErrMsg = "生成并审核生产汇报单成功!单据号为:" + oMain.HBillNo;
                        oCn.Commit();
                        return true;
@@ -4751,6 +4765,7 @@
                }
                catch (Exception e)
                {
                    LogService.Write("审核回滚" + sRemark);
                    sErrMsg = "审核生产汇报单失败!" + e.Message;
                    oCn.RollBack();
                    return false;
@@ -4758,6 +4773,7 @@
            }
            else
            {
                LogService.Write("生成生产汇报单(源单:生产订单)成功!" + sRemark);
                sErrMsg = "生成生产汇报单成功!单据号为:" + oMain.HBillNo;
                return true;
            }
@@ -39492,7 +39508,7 @@
            Model.ClsKf_ICStockBill_WMS oBar = new Model.ClsKf_ICStockBill_WMS();
            Int64 sMulSourceFlag = 0;   //多源单标志(0为非多源单模式,1为多源单模式)
            if (oSystemParameterMain.Kf_OtherInBill_MulSourceBill.ToUpper() == "Y") //系统参数  其他入库单-多源单模式
            if (oSystemParameterMain.Sc_ICMOReportBill_MulSourceBill.ToUpper() == "Y") //系统参数  生产汇报单-多源单模式
            {
                sMulSourceFlag = 1;
            }
@@ -41537,6 +41553,7 @@
            string sOneScanCtl = "N";       //一次扫码控制('Y'为控制)
            string sFIFOCtl = "N";          //先进先出控制('Y'为控制)
            string sMulSourceCtl = "N";     //是否启用多源单扫码模式('Y'为启用)
            int sWHSPCtl = 0;               //界面仓库为空时,值变为1
            //根据单据类型,获取对应单据系统参数值
            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))
@@ -41554,6 +41571,10 @@
                if (oBar == null)
                {
                    return null;
                }
                else
                {
                    SourceFlag = true;
                }
            }
            else
@@ -41585,8 +41606,13 @@
                    omodel_View.HMaterID = DBUtility.ClsPub.isLong(dsSource.Tables[0].Rows[0]["HMaterID"]);
                    omodel_View.HSourceInterID = DBUtility.ClsPub.isLong(dsSource.Tables[0].Rows[0]["HSourceInterID"]);
                    omodel_View.HSourceQty = DBUtility.ClsPub.isDoule(dsSource.Tables[0].Rows[0]["HSumQtyMust"]);   //HSumQtyMust为源单相同物料剩余可扫数量
                    omodel_View.HWHID = DBUtility.ClsPub.isLong(dsSource.Tables[0].Rows[0]["HWhID"]);
                    omodel_View.HSPID = DBUtility.ClsPub.isLong(dsSource.Tables[0].Rows[0]["HSPID"]);
                    //获取仓库仓位信息
                    if (HWhID == 0)
                    {
                        HWhID = DBUtility.ClsPub.isLong(dsSource.Tables[0].Rows[0]["HWhID"]);
                        HSPID = DBUtility.ClsPub.isLong(dsSource.Tables[0].Rows[0]["HSPID"]);
                        sWHSPCtl = 1;
                    }
                    HMaterNumber = DBUtility.ClsPub.isStrNull(dsSource.Tables[0].Rows[0]["HMaterNumber"]);
                }
                else
@@ -41820,15 +41846,32 @@
                {
                    //根据仓库ID,判断是否启用仓位
                    DataSet dsInWH = oCn.RunProcReturn(" select HSPFlag from Gy_Warehouse with(nolock) where HItemID= " + HWhID.ToString() + " and HUSEORGID= " + HStockOrgID.ToString(), "Gy_Warehouse");
                    if (dsInWH == null || dsInWH.Tables[0].Rows.Count == 0)
                    if (sWHSPCtl == 1)
                    {
                        sErrMsg = "所选仓库不属于当前登入组织!";
                        return null;
                        if (dsInWH == null || dsInWH.Tables[0].Rows.Count == 0)
                        {
                            sErrMsg = "源单或物料默认仓库维护信息错误,请重新维护正确仓库信息!";
                            return null;
                        }
                        else if (HSPID == 0 && DBUtility.ClsPub.isBool(dsInWH.Tables[0].Rows[0]["HSPFlag"]) == true)
                        {
                            sErrMsg = "源单或物料中所维护的仓库启用了仓位,但没有维护仓位信息,请先维护好仓位信息!";
                            return null;
                        }
                    }
                    else if (HSPID == 0 && DBUtility.ClsPub.isBool(dsInWH.Tables[0].Rows[0]["HSPFlag"]) == true)
                    else
                    {
                        sErrMsg = "所选仓库启用了仓位,仓位不允许为空,请选择对应仓位!";
                        return null;
                        if (dsInWH == null || dsInWH.Tables[0].Rows.Count == 0)
                        {
                            sErrMsg = "所选仓库不属于当前登入组织!";
                            return null;
                        }
                        else if (HSPID == 0 && DBUtility.ClsPub.isBool(dsInWH.Tables[0].Rows[0]["HSPFlag"]) == true)
                        {
                            sErrMsg = "所选仓库启用了仓位,仓位不允许为空,请选择对应仓位!";
                            return null;
                        }
                    }
                }
@@ -41980,6 +42023,7 @@
                    break;
                }
            }
            oBar.HBarType = "物料条码";
            return oBar;
        }