using DBUtility; using Newtonsoft.Json; using Newtonsoft.Json.Linq; using SQLHelper; using System; using System.Collections.Generic; using System.Data; using System.IO; using System.Linq; using System.Net; using System.Net.Http; using System.Web; using System.Web.Http; using WebAPI.Code; using WebAPI.Models; namespace WebAPI.Controllers { public class POInStockController : ApiController { private JsonResult objJsonResult = new JsonResult(); private json objjson = new json(); //获取系统参数 Pub_Class.ClsXt_SystemParameter oSystemParameter = new Pub_Class.ClsXt_SystemParameter(); /// /// 更新打印次数 /// /// /// /// [Route("UpdatePOInStockBillPrintQty")] [HttpGet] public object UpdatePOInStockBillPrintQty(string msg, string CurUserName) { try { SQLHelper.ClsCNSRM oCn = new SQLHelper.ClsCNSRM(); //写入 System_Log 操作日志表 WebAPIController.Add_Log("送货单打印", CurUserName, "送货单打印"); oCn.RunProc("exec H_p_SRM_POInStockBill_PrintQty " + msg.ToString()); objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "更新打印次数成功!"; objJsonResult.data = 1; return objJsonResult; } catch (Exception e) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "更新打印次数失败!" + e.ToString(); objJsonResult.data = 1; return objJsonResult; } } /// /// 生成送货单单据号、日期 /// /// /// [Route("GetNewPOInStockBillNo")] [HttpGet] public object GetNewPOInStockBillNo(string sMsg, string sMsg3) { try { DataSet ds = new DataSet(); if (DBUtility.ClsPub.isLong(sMsg) == 0) { objjson.code = "0"; objjson.count = 0; objjson.Message = "获取失败!无效的主键"; objjson.data = null; return objjson; } if (DBUtility.ClsPub.isStrNull(sMsg3) == "") { objjson.code = "0"; objjson.count = 0; objjson.Message = "获取失败!无效的单据类型"; objjson.data = null; return objjson; } string HBillNo, HInnerBillNo, HDate; HBillNo = DBUtility.ClsPub.CreateBillCode_SRMProd("1103", ref DBUtility.ClsPub.sExeReturnInfo, true); HInnerBillNo = DBUtility.ClsPub.CreateBillCode_SRMProd("777", ref DBUtility.ClsPub.sExeReturnInfo, true);//送货单号 HDate = DBUtility.ClsPub.isStrNull(DateTime.Now.ToString("yyyy-MM-dd")); //创建临时表 DataTable dt = new DataTable(); //创建表中的列 dt.Columns.Add("HBillNo", typeof(string));//添加列 dt.Columns.Add("HInnerBillNo", typeof(string));//添加列 dt.Columns.Add("HDate", typeof(string));//添加列 DataRow row = dt.NewRow(); //给列赋值 row["HBillNo"] = HBillNo; row["HInnerBillNo"] = HInnerBillNo; row["HDate"] = HDate; //把有值的列添加到表 dt.Rows.Add(row); //把表添加到dataset ds.Tables.Add(dt); if (ds == null || ds.Tables[0].Rows.Count == 0) { objjson.code = "0"; objjson.count = 1; objjson.Message = "获取失败!没有返回任何记录"; objjson.data = null; return objjson; } else { objjson.code = "0"; objjson.count = 10000; objjson.Message = "获取成功"; objjson.data = ds.Tables[0]; return objjson; } } catch (Exception e) { objjson.code = "0"; objjson.count = 0; objjson.Message = "获取失败" + e.ToString(); objjson.data = null; return objjson; } } /// /// 生成送货单表头信息 /// /// /// [Route("GetNewPOInStockShowBillMain")] [HttpGet] public object GetNewPOInStockShowBillMain(string sMsg, string sMsg3) { try { DataSet ds; string ShowItem = " * ";//显示的字段 if (DBUtility.ClsPub.isLong(sMsg) == 0) { objjson.code = "0"; objjson.count = 0; objjson.Message = "获取失败!无效的主键"; objjson.data = null; return objjson; } if (DBUtility.ClsPub.isStrNull(sMsg3) == "") { objjson.code = "0"; objjson.count = 0; objjson.Message = "获取失败!无效的单据类型"; objjson.data = null; return objjson; } DAL.ClsCg_POInStockBill oClsCg_POInStockBill = new DAL.ClsCg_POInStockBill(); ds = oClsCg_POInStockBill.ShowNewBillMainTo(DBUtility.ClsPub.isLong(sMsg), DBUtility.ClsPub.isStrNull(sMsg3), ShowItem, ref DBUtility.ClsPub.sExeReturnInfo); if (ds == null || ds.Tables[0].Rows.Count == 0) { objjson.code = "0"; objjson.count = 1; objjson.Message = "获取失败!没有返回任何记录"; objjson.data = null; return objjson; } else { objjson.code = "0"; objjson.count = 10000; objjson.Message = "获取成功"; objjson.data = ds.Tables[0]; return objjson; } } catch (Exception e) { objjson.code = "0"; objjson.count = 0; objjson.Message = "获取失败" + e.ToString(); objjson.data = null; return objjson; } } /// /// 生成送货单明细表体信息 /// /// /// /// [Route("GetNewPOInStockShowBillSub")] [HttpGet] public object GetNewPOInStockShowBillSub(string sMsg, string sMsg2, string sMsg3) { try { DataSet ds = null; string ShowItem = " * ";//显示的字段 if (DBUtility.ClsPub.isLong(sMsg) == 0) { objjson.code = "0"; objjson.count = 0; objjson.Message = "获取失败!无效的主键"; objjson.data = null; return objjson; } if (DBUtility.ClsPub.isStrNull(sMsg3) == "") { objjson.code = "0"; objjson.count = 0; objjson.Message = "获取失败!无效的单据类型"; objjson.data = null; return objjson; } DAL.ClsCg_POInStockBill oClsCg_POInStockBill = new DAL.ClsCg_POInStockBill(); ds = oClsCg_POInStockBill.ShowNewBillSubTo(DBUtility.ClsPub.isLong(sMsg), DBUtility.ClsPub.isStrNull(sMsg2), DBUtility.ClsPub.isStrNull(sMsg3), ShowItem, ref DBUtility.ClsPub.sExeReturnInfo); if (ds == null || ds.Tables[0].Rows.Count == 0) { objjson.code = "0"; objjson.count = 0; objjson.Message = "获取失败"; objjson.data = null; return objjson; } else { objjson.code = "0"; objjson.count = 10000; objjson.Message = "获取成功"; objjson.data = ds.Tables[0]; return objjson; } //return s; } catch (Exception e) { objjson.code = "0"; objjson.count = 0; objjson.Message = "获取失败" + e.ToString(); objjson.data = null; return objjson; } } /// /// 更新物流单号 /// /// [Route("SavePOInStock")] [HttpGet] public object SavePOInStock(string HmainId, string HDeliveryNo) { try { string sql = $"update Cg_POInStockBillMain  set HDeliveryNo ='{HDeliveryNo}' where HInterID in ({HmainId})"; SQLHelper.ClsCNSRM oCn = new SQLHelper.ClsCNSRM(); oCn.RunProc(sql); objJsonResult.code = "1"; objJsonResult.count = 1; objJsonResult.Message = "操作成功!"; return objJsonResult; } catch (Exception e) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "Exception!" + e.ToString(); objJsonResult.data = null; return objJsonResult; } } /// /// 保存送货单 /// /// /// /// [Route("SaverPOInStock")] [HttpPost] public object SaverPOInStock([FromBody] JObject msg) { var _value = msg["msg"].ToString(); string msg1 = _value.ToString(); string[] sArray = msg1.Split(new string[] { ";" }, StringSplitOptions.RemoveEmptyEntries); string msg2 = sArray[0].ToString(); string msg3 = sArray[1].ToString(); LogService.Write("msg1:" + msg1); LogService.Write("msg2:" + msg2); LogService.Write("msg3:" + msg3); string UserName = ""; ListModels oListModels = new ListModels(); try { //获取客户名称 string FCusName = oSystemParameter.GetSingleSystemParameter("WMS_CampanyName", ref DBUtility.ClsPub.sExeReturnInfo); DAL.ClsCg_POInStockBill oBill = new DAL.ClsCg_POInStockBill(); List lsmain = new List(); msg2 = msg2.Replace("\\", ""); msg2 = msg2.Replace("\n", ""); //\n lsmain = oListModels.getObjectByJson_POInStockMain(msg2); foreach (Model.ClsCg_POInStockBillMain oItem in lsmain) { //oItem.HMaker = ""; UserName = oItem.HMaker; oItem.HMakeDate = DBUtility.ClsPub.isStrNull(DateTime.Now.ToString("yyyy-MM-dd")); oItem.HYear = DBUtility.ClsPub.isLong(DateTime.Now.Year); //oItem.HDate = DBUtility.ClsPub.isDate(DateTime.Now.ToString("yyyy-MM-dd")); oItem.HCurID = 1; oItem.HExRate = 1; oItem.HMainSourceInterID = oItem.HInterID; oItem.HInterID = 0; //oItem.HInterID = DBUtility.ClsPub.CreateBillID_SRMProd("1103", ref DBUtility.ClsPub.sExeReturnInfo); if (FCusName == "安瑞医疗") //系统参数 客户定制化名称 空白为通用 { if (DBUtility.ClsPub.isStrNull(oItem.HDHDate) == "") { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "保存失败!没有填写预计到货日期,无法保存!"; objJsonResult.data = 1; return objJsonResult; } if (DBUtility.ClsPub.isStrNull(oItem.HDeliveryNo) == "") { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "保存失败!没有填写物流单号,无法保存!"; objJsonResult.data = 1; return objJsonResult; } } oBill.omodel = oItem; } //表体数据 //按 },{来拆分数组 //去掉【和】 msg3 = msg3.Substring(1, msg3.Length - 2); msg3 = msg3.Replace("\\", ""); msg3 = msg3.Replace("\n", ""); //\n //msg2 = msg2.Replace("'", "’"); List ls = new List(); ls = oListModels.getObjectByJson_POInStockSub(msg3); int i = 0; foreach (Model.ClsCg_POInStockBillSub oItemSub in ls) { i++; if (oItemSub.HQty <= 0) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "保存失败!第" + i.ToString() + "行数量不大于0无法保存!"; objJsonResult.data = 1; return objJsonResult; } if (oItemSub.HQty > oItemSub.HRQty) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "保存失败!第" + i.ToString() + "行数量不能大于未关联数量!"; objJsonResult.data = 1; return objJsonResult; } if (FCusName == "安瑞医疗") //系统参数 客户定制化名称 空白为通用 { if (DBUtility.ClsPub.isStrNull(oItemSub.HBatChNo) == "") { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "保存失败!第" + i.ToString() + "行未填写批号!"; objJsonResult.data = 1; return objJsonResult; } } oItemSub.HEntryID = i; oItemSub.HEntryCloseDate = DBUtility.ClsPub.isDate(DateTime.Now); oItemSub.HRemark = ""; oItemSub.HCloseMan = ""; oItemSub.HCloseType = false; oBill.DetailColl.Add(oItemSub); } //保存前判断(单据号重复,笔录项目) //保存 //保存完毕后处理 bool bResult; if (oBill.omodel.HInterID == 0) { // bResult = oBill.AddBill(ref DBUtility.ClsPub.sExeReturnInfo); bResult = oBill.AddBill(ref DBUtility.ClsPub.sExeReturnInfo); } else { bResult = oBill.ModifyBill(oBill.omodel.HInterID, ref DBUtility.ClsPub.sExeReturnInfo); } if (bResult) { objJsonResult.code = "0"; objJsonResult.count = 1; objJsonResult.Message = "保存成功!"; WebAPIController.Add_Log("送货单下推", UserName, "生成送货单"); objJsonResult.data = 1; return objJsonResult; } else { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "保存失败!" + DBUtility.ClsPub.sExeReturnInfo; objJsonResult.data = 1; return objJsonResult; } } catch (Exception e) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "保存失败!" + e.ToString(); objJsonResult.data = 1; return objJsonResult; } } /// /// 送货单列表 /// /// /// /// /// [Route("GetPOInStockBill")] [HttpGet] //送货单列表 public object GetPOInStockBill(string HSupNo, string sqlWhere) { string msg = ""; try { string VsWhere = ""; string PcWhere = ""; SQLHelper.ClsCNSRM oCn = new SQLHelper.ClsCNSRM(); DataSet ds; //其他过滤 if (msg.Trim() == "") { msg = " Where hsupid in (select HSupID from h_v_Gy_UserSupplierList where 用户 =^^" + HSupNo.Trim() + "^^) " + sqlWhere; // msg = " Where hsupid in (select hsupid from Gy_UserSupplierRelation where HUserID=^^" + System.Web.HttpContext.Current.Session["HUserName"].ToString() + "^^)"; } else { msg = msg + " and hsupid in (select HSupID from h_v_Gy_UserSupplierList where 用户 =^^" + HSupNo.Trim() + "^^) " + sqlWhere; // msg = msg + " Where hsupid in (select hsupid from Gy_UserSupplierRelation where HUserID=^^" + System.Web.HttpContext.Current.Session["HUserName"].ToString() + "^^)"; } //转换特殊字符 if (Common.SQLtoChange(msg, ref VsWhere, ref PcWhere) == false) { objjson.code = "0"; objjson.count = 0; objjson.Message = "获取失败"; objjson.data = null; return objjson; } //获取总行数 Int64 RowTotal = Common.GetRowTotal("H_v_SRM_POInStockBillList", VsWhere, ref DBUtility.ClsPub.sExeReturnInfo); //获取返回数据 ds = oCn.RunProcReturn("exec H_p_SRM_POInStockBillList '" + PcWhere + "'", "H_p_SRM_POInStockBillList"); //LogService.Write("exec H_p_SRM_POInStockBillList '" + PcWhere + "'"); if (ds == null || ds.Tables[0].Rows.Count == 0) { objjson.code = "0"; objjson.count = 0; objjson.Message = "获取失败"; objjson.data = null; return objjson; } else { objjson.code = "0"; objjson.count = 10000; objjson.Message = "获取成功"; objjson.data = ds.Tables[0]; return objjson; } } catch (Exception e) { objjson.code = "0"; objjson.count = 0; objjson.Message = "获取失败" + e.ToString(); objjson.data = null; return objjson; } } /// /// 送货单表头信息 /// /// /// [Route("GetPOInStockShowBillMain")] [HttpGet] public object GetPOInStockShowBillMain(string sMsg) { try { DataSet ds; string s = ""; string ShowItem = " * ";//显示的字段 if (DBUtility.ClsPub.isLong(sMsg) == 0) { objjson.code = "0"; objjson.count = 0; objjson.Message = "获取失败"; objjson.data = null; return objjson; } DAL.ClsCg_POInStockBill oClsCg_POInStockBill = new DAL.ClsCg_POInStockBill(); ds = oClsCg_POInStockBill.ShowBillMainTo(DBUtility.ClsPub.isLong(sMsg), ShowItem, ref DBUtility.ClsPub.sExeReturnInfo); if (ds == null || ds.Tables[0].Rows.Count == 0) { objjson.code = "0"; objjson.count = 0; objjson.Message = "获取失败"; objjson.data = null; return objjson; } else { objjson.code = "0"; objjson.count = 10000; objjson.Message = "获取成功"; objjson.data = ds.Tables[0]; return objjson; } } catch (Exception e) { objjson.code = "0"; objjson.count = 0; objjson.Message = "获取失败" + e.ToString(); objjson.data = null; return objjson; } } /// /// 送货单明细表体信息 /// /// /// /// [Route("GetPOInStockShowBillSub")] [HttpGet] public object GetPOInStockShowBillSub(string sMsg) { //string sMsg="28"; //string sMsg2 = "28,5;" try { DataSet ds = null; //string s = ""; //string sMsg3 = "'" + sMsg2 + "'"; string ShowItem = " * ";//显示的字段 if (DBUtility.ClsPub.isLong(sMsg) == 0) { objjson.code = "0"; objjson.count = 0; objjson.Message = "获取失败"; objjson.data = null; return objjson; } DAL.ClsCg_POInStockBill oClsCg_POInStockBill = new DAL.ClsCg_POInStockBill(); ds = oClsCg_POInStockBill.ShowBillSubTo(DBUtility.ClsPub.isLong(sMsg), ShowItem, ref DBUtility.ClsPub.sExeReturnInfo); if (ds == null || ds.Tables[0].Rows.Count == 0) { //return DBUtility.ClsPub.sExeReturnInfo; objjson.code = "0"; objjson.count = 0; objjson.Message = "获取失败"; objjson.data = null; return objjson; } else { objjson.code = "0"; objjson.count = 10000; objjson.Message = "获取成功"; objjson.data = ds.Tables[0]; return objjson; } //return s; } catch (Exception e) { objjson.code = "0"; objjson.count = 0; objjson.Message = "获取失败" + e.ToString(); objjson.data = null; return objjson; } } [Route("AuditPOInStockBill")] [HttpGet] public object AuditPOInStockBill(string HInterID, string CurUserName, string HBillNo) { json objjson = new json(); try { SQLHelper.ClsCNSRM oCn = new SQLHelper.ClsCNSRM(); //采购订单 生成送货单列表 if (!String.IsNullOrEmpty(HBillNo)) HInterID = GetHinterIDByBillNo(HBillNo, "Aduit").ToString(); if (HInterID == "0") { objjson.code = "0"; objjson.count = 0; objjson.Message = "操作失败,请先保存订单"; objjson.data = null; return objjson; } //string kdTbaleName = "AIS20211209082932"; string kdTbaleName = "AIS20211130140219";//夏宝正式 string sql = string.Format(@" SELECT M.HBillNo,B.HINTERID,B.HENTRYID,c.FID,c.FENTRYID, D.FBILLNO,B.HQTY,CD.FRECEIVEORGID,CDOO.FNUMBER AS FRECEIVENUMBER ,D.FSUPPLIERID,DS.FNUMBER AS FSUPPLIERNUMBER,D.FPURCHASEORGID,DOO.FNUMBER AS FPURCHASEORGNUMBER,CROO.FNUMBER AS FSETTLEORGNUMBER, E.FPRICETIMEPOINT,E.FSETTLECURRID,EC.FNUMBER AS FSETTLECURRNUMBER,C.FMATERIALID,CM.FNUMBER AS FMATERIALNUMBER ,C.FUNITID ,CU.FNUMBER AS FUNITNUMBER,D.F_xbkf_Combo1,CR.FPRICE,CR.FTAXPRICE,CR.FTAXRATE FROM CG_POINSTOCKBILLSUB B JOIN CG_POINSTOCKBILLMAIN M ON B.HINTERID = M.HINTERID JOIN {0}..T_PUR_POORDERENTRY C ON B.HSOURCEINTERID = C.FID AND B.HSOURCEENTRYID = C.FENTRYID LEFT JOIN {0}..T_BD_MATERIAL CM ON C.FMATERIALID =CM.FMATERIALID LEFT JOIN {0}..T_BD_UNIT CU ON C.FUNITID =CU.FUNITID JOIN {0}..T_PUR_POORDERENTRY_D CD ON C.FENTRYID = CD.FENTRYID LEFT JOIN {0}..T_ORG_ORGANIZATIONS CDOO ON CD.FRECEIVEORGID = CDOO.FORGID JOIN {0}..T_PUR_POORDERENTRY_F CR ON C.FENTRYID = CR.FENTRYID LEFT JOIN {0}..T_ORG_ORGANIZATIONS CROO ON CR.FSETTLEORGID = CROO.FORGID JOIN {0}..T_PUR_POORDER D ON C.FID =D.FID LEFT JOIN {0}..T_BD_SUPPLIER DS ON D.FSUPPLIERID = DS.FSUPPLIERID LEFT JOIN {0}..T_ORG_ORGANIZATIONS DOO ON D.FPURCHASEORGID = DOO.FORGID JOIN {0}..T_PUR_POORDERFIN E ON C.FID =E.FID LEFT JOIN {0}..T_BD_CURRENCY EC ON E. FSETTLECURRID =EC.FCURRENCYID WHERE b.hinterid in ({1}) and M.HERPInterID = 0 ", kdTbaleName, HInterID); DataTable dt = oCn.RunProcReturn(sql, "sltz").Tables[0]; List fidList = new List(); if (dt.Rows.Count > 0) { foreach (DataRow dr in dt.Rows) { if (fidList.Contains(dr["FID"].ToString() + dr["HINTERID"].ToString())) continue; else fidList.Add(dr["FID"].ToString() + dr["HINTERID"].ToString()); DataRow[] drs = dt.Select("FID = " + dr["FID"].ToString() + " and HINTERID = " + dr["HINTERID"].ToString()); JObject model = new JObject(); model.Add("FBILLTYPEID", new JObject() { ["Fnumber"] = "SLD01_SYS" }); //单据类型 model.Add("FBILLNO", dr["HBillNo"].ToString()); //单据编号 model.Add("FDate", DateTime.Now.ToString("yyyy-MM-dd")); //通知日期 model.Add("FStockOrgId", new JObject() { ["Fnumber"] = dr["FRECEIVENUMBER"].ToString() }); // 收料组织 model.Add("FPurOrgId", new JObject() { ["Fnumber"] = dr["FPURCHASEORGNUMBER"].ToString() }); //采购组织 model.Add("FSupplierId", new JObject() { ["Fnumber"] = dr["FSUPPLIERNUMBER"].ToString() }); //供应商 model.Add("FOwnerTypeIdHead", "BD_OwnerOrg");// 货主类型 model.Add("FOwnerIdHead", new JObject() { ["Fnumber"] = dr["FPURCHASEORGNUMBER"].ToString() });//货主 model.Add("F_XBKF_COMBO", dr["F_xbkf_Combo1"].ToString());//是否有票 JArray Fentity = new JArray(); foreach (var item in drs) { JObject FentityModel = new JObject(); FentityModel.Add("FMaterialId", new JObject() { ["Fnumber"] = item["FMATERIALNUMBER"].ToString() }); // 物料编码 FentityModel.Add("FUnitID", new JObject() { ["Fnumber"] = item["FUNITNUMBER"].ToString() }); // 单位 FentityModel.Add("FPreDeliveryDate", DateTime.Now.ToString("yyyy-MM-dd")); //预计到货日期 FentityModel.Add("FPriceUnitId", new JObject() { ["Fnumber"] = item["FUNITNUMBER"].ToString() }); // 计价单位 FentityModel.Add("FStockUnitID", new JObject() { ["Fnumber"] = item["FUNITNUMBER"].ToString() }); // 库存单位 FentityModel.Add("FActReceiveQty", Convert.ToDecimal(item["HQTY"])); // 供应商送货数量(提料计划数量 - 已生成送货单数量) FentityModel.Add("FOwnerTypeId", "BD_OwnerOrg");//货主类型 FentityModel.Add("FOwnerID", new JObject() { ["Fnumber"] = dr["FPURCHASEORGNUMBER"].ToString() });//货主 FentityModel.Add("FSrcId", item["FID"].ToString());//源单内码 FentityModel.Add("FSRCFORMID", "PUR_PurchaseOrder");//源单类型 FentityModel.Add("FSrcBillNo", item["FBILLNO"].ToString());//源单单号 FentityModel.Add("FSRCENTRYID", item["FENTRYID"].ToString());//源单分录内码 FentityModel.Add("FORDERBILLNO", item["FBILLNO"].ToString());//源单单号 FentityModel.Add("FPOORDERENTRYID", item["FENTRYID"].ToString());//源单分录内码 FentityModel.Add("FSRMENTRYID", item["HENTRYID"].ToString());//SRM hentryid FentityModel.Add("FPrice", item["FPRICE"].ToString());//单价 FentityModel.Add("FTaxPrice", item["FTAXPRICE"].ToString());//含税单价 FentityModel.Add("FEntryTaxRate", item["FTAXRATE"].ToString());//税率 JArray Fentity2 = new JArray(); JObject FentityModel2 = new JObject(); FentityModel2.Add("FDetailEntity_Link_FRULEID", "PUR_PurchaseOrder-PUR_ReceiveBill"); FentityModel2.Add("FDetailEntity_Link_FSTableName", "t_PUR_POOrderEntry"); FentityModel2.Add("FDetailEntity_Link_FSBillId", item["FID"].ToString()); FentityModel2.Add("FDetailEntity_Link_FSId", item["FEntryID"].ToString()); Fentity2.Add(FentityModel2); FentityModel.Add("FDetailEntity_Link", Fentity2); Fentity.Add(FentityModel); } model.Add("FDetailEntity", Fentity); //明细信息 JObject _FentityModel = new JObject(); _FentityModel.Add("FSettleOrgId", new JObject() { ["Fnumber"] = dr["FSETTLEORGNUMBER"].ToString() }); // 结算组织 _FentityModel.Add("FSettleCurrId", new JObject() { ["Fnumber"] = dr["FSETTLECURRNUMBER"].ToString() }); // 结算币别 _FentityModel.Add("FPricePoint", 0); // 定价时点 model.Add("FinanceEntity ", _FentityModel);//财务信息 JObject jsonRoot = new JObject() { ["Creator"] = "", ["NeedUpDateFields"] = new JArray(), ["NeedReturnFields"] = new JArray(), ["IsDeleteEntry"] = "false", ["SubSystemId"] = "", ["IsVerifyBaseDataField"] = "false", ["Model"] = model }; var loginRet = InvokeHelper.Login(); var isSuccess = JObject.Parse(loginRet)["LoginResultType"].Value(); if (isSuccess == 0) { objjson.code = "0"; objjson.count = 0; objjson.Message = loginRet; objjson.data = null; return objjson; } LogService.Write("jsonRoot:" + jsonRoot.ToString()); var result = InvokeHelper.Save("PUR_ReceiveBill", jsonRoot.ToString()); //LogService.Write(result); if (JObject.Parse(result)["Result"]["ResponseStatus"]["IsSuccess"].ToString().ToUpper() == "TRUE") { //更新送货单 主表 ERP单据号 以及 ERP主内玛 string FBillNo = JObject.Parse(result)["Result"]["Number"].ToString(); string FID = JObject.Parse(result)["Result"]["Id"].ToString(); string updateSql = string.Format(@" update a set a.HERPInterID = {0} , a.HERPBillNO ='{1}' from Cg_POInStockBillMain a join Cg_POInStockBillSub b on a.hinterid = b.hinterid where b.HInterID = ({2}) and b. HSOURCEINTERID = {3} and a.HERPInterID = 0 ", FID, FBillNo, dr["HINTERID"].ToString(), dr["FID"].ToString()); oCn.RunProc(updateSql); } else { objjson.code = "0"; objjson.count = 0; objjson.Message = result; objjson.data = null; return objjson; } } } sql = string.Format(@"update Cg_POInStockBillMain set HBillStatus = 2 , HChecker ='{0}', HCheckDate = getdate() where HInterID in ({1})", CurUserName, HInterID); oCn.RunProc(sql); objjson.code = "1"; objjson.count = 1; objjson.Message = "操作成功"; objjson.data = null; return objjson; } catch (Exception ex) { objjson.code = "0"; objjson.count = 0; objjson.Message = "操作失败" + ex.Message.ToString(); objjson.data = null; return objjson; } } [Route("GetHinterID")] [HttpGet] public object GetHinterID(string HBillNo) { int HinterID = GetHinterIDByBillNo(HBillNo, "Print"); if (HinterID == 0) { objjson.code = "0"; objjson.count = 0; objjson.Message = "操作失败,请先保存并审核订单"; objjson.data = HinterID; return objjson; } objjson.code = "1"; objjson.count = 1; objjson.Message = "操作成功"; objjson.data = HinterID; return objjson; } public int GetHinterIDByBillNo(string HBillNo, string type) { SQLHelper.ClsCNSRM oCn = new SQLHelper.ClsCNSRM(); int HInterID = 0; string sql = "select HInterID from CG_POINSTOCKBILLMAIN where HBILLNO = '" + HBillNo + "'"; if (type == "Print") sql += " and HBillStatus = '2' ";//打印判断是否审核 DataTable dt = oCn.RunProcReturn(sql, "HInterID").Tables[0]; if (dt.Rows.Count > 0) HInterID = Convert.ToInt32(dt.Rows[0]["HInterID"]); return HInterID; } [Route("DeltetPOInStockBill")] [HttpGet] public object DeltetPOInStockBill(string HInterID, string HUserName, string HBillNo) { SQLHelper.ClsCN oCN = new SQLHelper.ClsCN(); try { DAL.ClsCg_POInStockBill oBill = new DAL.ClsCg_POInStockBill(); //先删除 金蝶数据 objjson = DeleteKingDee(HInterID); LogService.Write(objjson.ToString()); if (objjson.code == "0") return objjson; WebAPIController.Add_Log("送货单删除", HUserName, "送货单删除,单号:" + HBillNo); oCN.BeginTran(); oBill.DeleteRelation(ref DBUtility.ClsPub.sExeReturnInfo, Convert.ToInt32(HInterID)); oCN.RunProc("Delete From Cg_POInStockBillMain where HInterID = " + HInterID); oCN.RunProc("Delete From Cg_POInStockBillSub where HInterID = " + HInterID); oCN.Commit(); objJsonResult.code = "1"; objJsonResult.count = 1; objJsonResult.Message = "删除成功!"; objJsonResult.data = null; return objJsonResult; } catch (Exception e) { oCN.RollBack(); objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "Exception!" + e.ToString(); objJsonResult.data = null; return objJsonResult; } } //审核 删除 删除金蝶数据库对应 收料通知到数据 public json DeleteKingDee(string hinterid) { SQLHelper.ClsCN oCN = new SQLHelper.ClsCN(); string sql = string.Format("select HinterID,HERPBillNO,HERPInterID from Cg_POInStockBillMain where HERPInterID>0 and hinterid in (" + hinterid + ")"); string FCusName = oSystemParameter.GetSingleSystemParameter("WMS_CampanyName", ref DBUtility.ClsPub.sExeReturnInfo); if (FCusName == "夏宝电器") sql = "select HinterID,HERPBillNO,HERPInterID from Cg_POInStockBillMain t1 join AIS20211130140219..T_PUR_RECEIVE t2 on t1.HERPInterID = t2.FID where HERPInterID>0 and hinterid in (" + hinterid + ")"; DataTable dt = oCN.RunProcReturn(sql, "deleteDt").Tables[0]; if (dt.Rows.Count > 0) { foreach (DataRow dr in dt.Rows) { var sJson = new { Numbers = dr["HERPBillNO"].ToString(), Ids = "" }; var loginRet = InvokeHelper.Login(); var isSuccess = JObject.Parse(loginRet)["LoginResultType"].Value(); if (isSuccess == 0) { objjson.code = "0"; objjson.count = 0; objjson.Message = "操作失败,金蝶账号登录异常。" + loginRet; objjson.data = null; return objjson; } //LogService.Write(""); var result = InvokeHelper.Delete("PUR_ReceiveBill", JsonConvert.SerializeObject(sJson)); LogService.Write("api结果删除:" + result); if (JObject.Parse(result)["Result"]["ResponseStatus"]["IsSuccess"].ToString().ToUpper() != "TRUE") { objjson.code = "0"; objjson.count = 0; objjson.Message = "对应金蝶收料通知单删除失败 !" + result; objjson.data = null; return objjson; } } } objjson.code = "1"; objjson.count = 1; objjson.Message = "Sucess!"; objjson.data = null; return objjson; } //[Route("POInStockAccept")] //[HttpGet] ///// ///// 订单接受 ///// ///// ///// //public object POInStockAccept(string HInterID,string HEntryID,long HBillType,string HUser) //{ // try // { // if (DBUtility.ClsPub.isLong(HInterID) == 0) // { // objJsonResult.code = "0"; // objJsonResult.count = 0; // objJsonResult.Message = "接受失败!"; // objJsonResult.data = null; // return objJsonResult; // } // DAL.ClsSRM_POInStockBill oBill = new DAL.ClsSRM_POInStockBill(); // oBill.WebAccept_Sub(DBUtility.ClsPub.isLong(HInterID), DBUtility.ClsPub.isLong(HEntryID), DBUtility.ClsPub.isLong(HBillType), DBUtility.ClsPub.isStrNull(HUser), ref DBUtility.ClsPub.sExeReturnInfo); // objJsonResult.code = "0"; // objJsonResult.count = 1; // objJsonResult.Message = "接受成功!"; // objJsonResult.data = 1; // return objJsonResult; // } // catch (Exception e) // { // objJsonResult.code = "0"; // objJsonResult.count = 0; // objJsonResult.Message = "接受失败!"+e.ToString(); // objJsonResult.data = null; // return objJsonResult; // } //} // [Route("POInStockRefuse")] // [HttpGet] // /// // /// 订单拒绝 // /// // /// // /// // public object POInStockRefuse(string HInterID, string HEntryID,string HBackRemark, long HBillType,string HUser) // { // try // { // if (DBUtility.ClsPub.isLong(HInterID) == 0) // { // objJsonResult.code = "0"; // objJsonResult.count = 0; // objJsonResult.Message = "失败!"; // objJsonResult.data = null; // return objJsonResult; // } // DAL.ClsSRM_POInStockBill oBill = new DAL.ClsSRM_POInStockBill(); // oBill.WebRefuse_Sub(DBUtility.ClsPub.isLong(HInterID), DBUtility.ClsPub.isLong(HEntryID), DBUtility.ClsPub.isStrNull(HBackRemark), DBUtility.ClsPub.isLong(HBillType),DBUtility.ClsPub.isStrNull(HUser), ref DBUtility.ClsPub.sExeReturnInfo); // objJsonResult.code = "0"; // objJsonResult.count = 1; // objJsonResult.Message = "拒绝成功!"; // objJsonResult.data = 1; // return objJsonResult; // } // catch (Exception e) // { // objJsonResult.code = "0"; // objJsonResult.count = 0; // objJsonResult.Message = "失败!" + e.ToString(); // objJsonResult.data = null; // return objJsonResult; // } // } [Route("TestSaverPOInStock")] [HttpPost] /// /// 生成送货单前验证金蝶采购订单是否删除和关闭,然后更新关联数量 /// /// /// public object TestSaverPOInStock([FromBody] string[] ids) { List mylist = new List(ids.Distinct()); if (mylist.Count > 1) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "操作失败!请选择相同采购订单数据行下推!"; objJsonResult.data = null; return objJsonResult; } try { string HinterID = ""; for (int i = 0; i < mylist.Count; i++) { SQLHelper.ClsCNSRM oCn = new SQLHelper.ClsCNSRM(); //更新关联数量 HinterID = mylist[i].ToString(); oCn.RunProc("exec h_p_SRM_UpDatePPBomRelationQty '" + HinterID + "'"); } objJsonResult.code = "1"; objJsonResult.count = 1; objJsonResult.Message = "操作成功!"; objJsonResult.data = null; return objJsonResult; } catch (Exception e) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "失败!" + e.Message.ToString(); objJsonResult.data = null; return objJsonResult; } } } }