using DBUtility; 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(); /// /// 更新打印次数 /// /// /// /// [Route("UpdatePOInStockBillPrintQty")] [HttpPost] public object UpdatePOInStockBillPrintQty([FromBody] JObject msg) { var _value = msg["msg"].ToString(); string msg1 = _value.ToString(); try { SQLHelper.ClsCNSRM oCn = new SQLHelper.ClsCNSRM(); oCn.RunProc("exec H_p_SRM_POInStockBill_PrintQty " + msg1.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, HDate; HBillNo = DBUtility.ClsPub.CreateBillCode_SRMProd("1103", 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("HDate", typeof(string));//添加列 DataRow row = dt.NewRow(); //给列赋值 row["HBillNo"] = HBillNo; 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(); string UserName = ""; ListModels oListModels = new ListModels(); try { DAL.ClsCg_POInStockBills oBill = new DAL.ClsCg_POInStockBills(); List lsmain = new List(); msg2 = msg2.Replace("\\", ""); msg2 = msg2.Replace("\n", ""); //\n lsmain = oListModels.getObjectByJson_POInStockMains(msg2); foreach (Model.ClsCg_POInStockBillMains 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 (DBUtility.ClsPub.isStrNull(oItem.HDHDate) == "") { 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_POInStockSubs(msg3); int i = 0; foreach (Model.ClsCg_POInStockBillSubs 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 (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("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; // } // } } }