llj
4 天以前 9dd634eed168321ba1213d4c1720f343ef3ac0c1
报废单生成其他出库单
1个文件已修改
258 ■■■■■ 已修改文件
CLOUDWEB/WebService1.asmx.cs 258 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CLOUDWEB/WebService1.asmx.cs
@@ -31828,8 +31828,266 @@
            #endregion
        }
        #endregion
        #region 报废单生成其他出库单
        //生成其他出库单
        [WebMethod]
        public bool set_SaveOtherOutBill_New_haicheng(Model.ClsKf_OtherOutBillMain oMain, string sHSourceType, ref string sErrMsg)
        {
            if (set_SaveOtherOutBill_CLD_New_haicheng(oMain, sHSourceType, ref sErrMsg) == true)
            {
                //"保存成功!";
                return true;
            }
            else
            {
                //"保存失败!";
                return false;
            }
        }
        //其他出库
        [WebMethod]
        public bool set_SaveOtherOutBill_CLD_New_haicheng(Model.ClsKf_OtherOutBillMain oMain, string sHSourceType,  ref string sErrMsg)
        {
            if (SaveOtherOutBill_CLD_haicheng(oMain, sHSourceType, ref sErrMsg))
            {
                //"保存成功!";
                return true;
            }
            else
            {
                //"保存失败!";
                sErrMsg = "单据号:" + oMain.HBillNo + ",单据ID:" + oMain.HInterID + ";" + sErrMsg;
                return false;
            }
        }
        public bool SaveOtherOutBill_CLD_haicheng(Model.ClsKf_OtherOutBillMain oMain, string sHSourceType, ref string sErrMsg)
        {
            SQLHelper.ClsCN oCn = new SQLHelper.ClsCN();
            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 = oCn.RunProcReturn("exec h_p_API_GetCloudUserByLoginUser '" + oMain.HMaker + "'", "h_p_API_GetCloudUserByLoginUser");
            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);
            sRemark = sRemark + " ;获取验证CLOUD账号密码" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff");
            try
            {
                //判断会计期是否合理
                string s = "";
                int sYear = 0;
                int sPeriod = 0;
                oMain.HDate = DateTime.Today;
                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();
                DataSet Ds = oCn.RunProcReturn("select org.HNumber FStockOrgId,gd.HNumber FDeptId,deptOrg.HNumber AS FDeptOrgNumber ,* from Sc_MouldStockBillMain ma LEFT JOIN Xt_ORGANIZATIONS org on ma.HStockOrgID=org.HItemID LEFT JOIN Gy_Department gd on ma.HDeptID=gd.HItemID LEFT JOIN Xt_ORGANIZATIONS deptOrg ON gd.HCREATEORGID = deptOrg.HItemID where HInterID=" + oMain.HInterID, "Sc_MouldStockBillMain");
                DataSet dds = oCn.RunProcReturn("select w.hnumber FStockId,gu.hnumber FUnitID,HEntryID FEntryID,gm.hnumber FMaterialId,* from Sc_MouldStockBillSub sa LEFT JOIN Gy_MouldFileMain gmf  on sa.hmaterid=gmf.HInterID LEFT JOIN Gy_Material gm  on gmf.HMaterID=gm.hitemid LEFT JOIN Gy_Unit gu  on sa.hunitid=gu.hitemid left join gy_Warehouse w with(nolock) on sa.HWhID=w.HItemID where sa.HInterID=" + oMain.HInterID, "Sc_MouldStockBillSub");
                if (Ds == null || Ds.Tables[0].Rows.Count == 0)
                {
                    sErrMsg = "获取子表信息失败!";
                    oCn.RollBack();
                    return false;
                }
                else
                {
                    string sJson_StockStyle = "";
                    string sJson_MainCustom = "";   //主表自定义字段
                    string sJson_BillTypeID = "";    //单据类型
                    string sJson_Date = "";         //单据日期
                    //todo
                    sJson_MainCustom = Pub_Class.ClsPub.isStrNull("");
                        sJson_BillTypeID = "\"FBillTypeID\":{ \"FNumber\":\"" + "QTCKD01_SYS" + "\" },";
                        sJson_Date = "\"FDATE\":\"" + Pub_Class.ClsPub.isStrNull(DateTime.Now.ToString("yyyy-MM-dd")) + "\",";
                        sJson_StockStyle = "";
                    string sJson_Main = "{\"Creator\":\"\",\"NeedUpDateFields\":[],\"NeedReturnFields\":[],\"IsDeleteEntry\":\"True\",\"SubSystemId\":\"\",\"IsVerifyBaseDataField\":\"false\",\"IsEntryBatchFill\":\"True\",\"Model\":{ \"FBillNo\":\"" + oMain.HBillNo + "\"," +
                        //\"FID\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FID"]) + "\"," +
                        sJson_BillTypeID +
                        "\"FStockOrgId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FDeptOrgNumber"]??"101.1") + "\"}," +
                        //"\"FStockOrgId\":{\"FNumber\":\"" + "101.1" + "\"}," +
                        "\"FPickOrgId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FDeptOrgNumber"]??"101.1") + "\"}," +
                        //"\"FPickOrgId\":{\"FNumber\":\"" + "101.1" + "\"}," +
                        "\"FStockDirect\":\"" + "GENERAL" + "\"," +
                        sJson_Date +
                        //"\"FCustId\":{\"FNumber\":\"" + oMain.HSupplyID.ToString() + "\"}," +
                        "\"FDeptId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FDeptId"]) + "\"}," +
                        "\"FPickerId\":{\"FSTAFFNUMBER\":\"" + "ZXM001_GW000004_100041" + "\"}," +
                        "\"FStockerId\":{\"FName\":\"" + "" + "\"}," +
                        "\"FStockerGroupId\":{\"FNumber\":\"" + "" + "\"}," +
                        "\"FBizType\":\"" + "0" + "\"," +
                        "\"FOwnerTypeIdHead\":\"" + "BD_OwnerOrg" + "\"," +
                        "\"FOwnerIdHead\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FDeptOrgNumber"]??"101.1") + "\"}," +
                        "\"FNote\":\"" + "" + "\"," +
                        "\"FBaseCurrId\":{\"FNumber\":\"" + "PRE001" + "\"}," +
                        "\"FScanBox\":\"" + "" + "\"," +
                        sJson_StockStyle +
                        sJson_MainCustom +
                        "\"FEntity\":[";
                    string sJson_Entry = "";
                    for (int i = 0; i < dds.Tables[0].Rows.Count; i++)
                    {
                        if (sJson_Entry != "")
                        {
                            sJson_Entry = sJson_Entry + " , ";
                        }
                        string sJson_BatchNo = "";
                        string sJson_StockPlace = "";
                        string sJson_FProduceDate = "";     //生产日期
                        string sJson_FExpiryDate = "";      //有效期至
                        string sJson_FAUXPROPID = "";
                        string sJson_SubCustom = "";        //子表自定义字段
                        //子表自定义字段
                        sJson_SubCustom = "";
                        sJson_BatchNo = "";
                            sJson_FProduceDate = "";
                            sJson_FExpiryDate = "";
                            sJson_StockPlace = "";
                        string orgnumber = "101.1";
                            sJson_FAUXPROPID = " \"FAUXPROPID\":{\"FAUXPROPID__FF100002\":{\"FNumber\":\"" + "" + "\"}},";
                        #region
                        sJson_Entry = sJson_Entry + "{\"FEntryID\":\"" + "0" + "\"," +
                            "\"FMaterialId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(dds.Tables[0].Rows[i]["FMaterialId"]) + "\"}," +
                            //"\"FMaterialId\":{\"FNumber\":\"" + "3.01.00007" + "\"}," +
                             sJson_FAUXPROPID +
                            "\"FUnitID\":{\"FNumber\":\"" + "Pcs" + "\"}," +
                            "\"FQty\":" + "1" + "," +
                            "\"FPrice\":0," +
                            "\"FAmount\":0," +
                             "\"FBaseQty\":1," +
                            "\"FBaseUnitId\":{\"FNumber\":\"" + "Pcs" + "\"}," +
                            "\"FStockId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(dds.Tables[0].Rows[i]["FStockId"]) + "\"}," +
                            sJson_StockPlace +
                            //"\"FStockLocId\":{\"FSTOCKLOCID__FF100002\":{\"FNUMBER\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FStockLocId"]) + "\"}}," +
                            sJson_BatchNo +
                            "\"FPRODUCTGROUPID\":{\"FNumber\":\"" + "" + "\"}," +
                            "\"FOWNERTYPEID\":\"" + "BD_OwnerOrg" + "\"," +
                            "\"FOwnerId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FDeptOrgNumber"] ?? "101.3") + "\"}," +
                            //"\"FOwnerId\":{\"FNumber\":\"" + orgnumber + "\"}," +
                            //sJson_FProduceDate +
                            //sJson_FExpiryDate +
                            //"\"FServiceContext\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FServiceContext"]) + "," +
                            "\"FStockStatusId\":{\"FNumber\":\"" + "KCZT01_SYS" + "\"}," +
                            //"\"FMtoNo\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMtoNo"]) + "," +
                            //"\"FCostItem\":{\"FNumber\":\"" + "" + "\"}," +
                            "\"FKeeperTypeId\":\"" + "BD_KeeperOrg" + "\"," +
                            //"\"FDistribution\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FDistribution"]) + "," +
                            "\"FKeeperId\":{\"FNumber\":\"" + orgnumber + "\"}," +
                            //sJson_SubCustom +
                            "\"FExtAuxUnitId\":{\"FNumber\":\"" + "Pcs" + "\"}," +
                             "\"FStockUnitId\":{\"FNumber\":\"" + "Pcs" + "\"}," +
                            "\"FExtAuxUnitQty\":" + "1" + "} ";
                    }
                    //"\"FInStockEntry_Link_FSId\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FInStockEntry_Link_FSId"]) +
                    #endregion
                    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[] { "STK_MisDelivery", sJson });
                        sRemark = sRemark + " ;生成CLOUD单据" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff");
                        HReturn = result.ToString();
                        //LogService.Write("报错内容:/n", HReturn);
                        //LogService.Write("报错内容:", sJson_Entry);
                        if (HReturn.Contains("\"IsSuccess\":false") == true)
                        {
                            //反序列化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 +"\n"+ sJson);   //写入txt文本
                            oCn.RollBack();
                            return false;
                        }
                        else
                        {
                            sRemark = sRemark + sJson;
                            oCn.Commit();
                        }
                    }
                    else
                    {
                        sErrMsg = "生成其他出库单失败!金蝶云登录失败!";
                        oCn.RollBack();
                        return false;
                    }
                }
            }
            catch (Exception e)
            {
                LogService.Write("生成回滚" + e.Message + sRemark);
                sErrMsg = "生成其他出库单失败!" + e.Message;
                oCn.RollBack();
                return false;
            }
            return true;
        }
        #endregion
        #region 其他出库        *
        //生成其他出库单