| | |
| | | #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 其他出库 * |
| | | |
| | | //生成其他出库单 |