From a8a35eea3bac2d17f4835a0437eb647575cbbe68 Mon Sep 17 00:00:00 2001 From: qian Date: Thu, 18 Jan 2024 15:11:11 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8A=A5=E8=A1=A8=E5=8A=A0=E6=A8=A1=E7=B3=8A?= =?UTF-8?q?=E6=9F=A5=E8=AF=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 北京北汽/Controller/SCP_ASK_CONTROLLER.cs | 582 +++++++++++------- 北京北汽/Controller/SCP_PO_CONTROLLER.cs | 47 ++ 北京北汽/Models/CK.SCP.Models.csproj | 1 + 北京北汽/Models/ScpEntities.cs | 1 + 北京北汽/Models/ScpEntity/V_TB_ASK.cs | 4 + .../Models/ScpEntity/V_TB_ASK_DETAIL_PO.cs | 54 ++ 北京北汽/SCP/SCP.csproj | 8 + 北京北汽/SCP/Views/PlanData/SCP_ASK.aspx | 27 +- .../SCP/Views/PlanData/SCP_ASK.aspx.cs | 21 +- .../Views/PlanData/SCP_ASK.aspx.designer.cs | 53 +- .../SCP/Views/PlanData/SCP_ASK_DETAIL.aspx | 7 +- .../SCP/Views/PlanData/SCP_ASK_DETAIL.aspx.cs | 4 + .../Views/PlanData/SCP_TB_ASK_DETAIL_PO.aspx | 103 ++++ .../PlanData/SCP_TB_ASK_DETAIL_PO.aspx.cs | 161 +++++ .../SCP_TB_ASK_DETAIL_PO.aspx.designer.cs | 179 ++++++ 15 files changed, 996 insertions(+), 256 deletions(-) create mode 100644 北京北汽/Models/ScpEntity/V_TB_ASK_DETAIL_PO.cs create mode 100644 北京北汽/SCP/Views/PlanData/SCP_TB_ASK_DETAIL_PO.aspx create mode 100644 北京北汽/SCP/Views/PlanData/SCP_TB_ASK_DETAIL_PO.aspx.cs create mode 100644 北京北汽/SCP/Views/PlanData/SCP_TB_ASK_DETAIL_PO.aspx.designer.cs diff --git a/北京北汽/Controller/SCP_ASK_CONTROLLER.cs b/北京北汽/Controller/SCP_ASK_CONTROLLER.cs index 356bbe9..b5221ed 100644 --- a/北京北汽/Controller/SCP_ASK_CONTROLLER.cs +++ b/北京北汽/Controller/SCP_ASK_CONTROLLER.cs @@ -11,13 +11,15 @@ using CK.SCP.Utils; using System.Data.Entity.Core; using System.Web; using CK.SCP.Models.AppBoxEntity; +using System.Data.SqlClient; +using System.Collections; namespace CK.SCP.Controller { public class SCP_ASK_CONTROLLER { - + public static void Get_V_TB_ASK_List(V_TB_ASK p_entity, Action>> p_action) { @@ -26,11 +28,11 @@ namespace CK.SCP.Controller { using (ScpEntities db = EntitiesFactory.CreateScpInstance()) { - - IQueryable q = db.V_TB_ASK; + + IQueryable q = db.V_TB_ASK; if (!string.IsNullOrEmpty(p_entity.PoBillNum)) { - + q = q.Where(p => p.PoBillNum.Contains(p_entity.PoBillNum)); } if (!string.IsNullOrEmpty(p_entity.AskBillNum)) @@ -69,7 +71,7 @@ namespace CK.SCP.Controller { q = q.Where(p => p.EndTime <= p_entity.EndTime); } - if (!string.IsNullOrEmpty(p_entity.VendName)) + if (!string.IsNullOrEmpty(p_entity.VendName)) { q = q.Where(p => p.VendName.Contains(p_entity.VendName)); } @@ -93,15 +95,15 @@ namespace CK.SCP.Controller } if (!string.IsNullOrEmpty(p_entity.CreateUser)) { - q = q.Where(p => p.CreateUser==p_entity.CreateUser); + q = q.Where(p => p.CreateUser == p_entity.CreateUser); } if (p_entity.UserInVendIds != null && p_entity.UserInVendIds.Count > 0) { q = q.Where(p => p_entity.UserInVendIds.Contains(p.VendId)); } - - + + _ret.State = ReturnStatus.Succeed; _ret.Result = q; p_action(_ret); @@ -126,13 +128,13 @@ namespace CK.SCP.Controller } catch (OptimisticConcurrencyException ex)//并发冲突异常 { - + _ret.State = ReturnStatus.Failed; _ret.ErrorList.Add(ex); LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_ASK_CONTROLLER), "Get_V_TB_ASK_List", ex.Message.ToString()); if (ex.InnerException != null) LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_ASK_CONTROLLER), "Get_V_TB_ASK_List(OptimisticConcurrencyException)", LogHelper.GetExceptionMessage(ex).Message); - + throw new ScpException(ResultCode.Exception, "9999", ex.ToString()); } catch (ScpException ex) @@ -151,7 +153,8 @@ namespace CK.SCP.Controller } else { - if (ex.InnerException != null) { + if (ex.InnerException != null) + { LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_ASK_CONTROLLER), "Get_V_TB_ASK_List", ex.InnerException.Message); throw ex.InnerException; } @@ -166,13 +169,13 @@ namespace CK.SCP.Controller LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_ASK_CONTROLLER), "Get_V_TB_ASK_List(Exception)", LogHelper.GetExceptionMessage(e).Message); throw e; - } + } } public static TB_ASK Getask(string ASK) { using (ScpEntities db = EntitiesFactory.CreateScpInstance()) { - var site=db.TB_ASK.FirstOrDefault(p=>p.AskBillNum==ASK); + var site = db.TB_ASK.FirstOrDefault(p => p.AskBillNum == ASK); return site; } } @@ -189,21 +192,21 @@ namespace CK.SCP.Controller using (ScpEntities db = EntitiesFactory.CreateScpInstance()) { foreach (var itm in p_entitys) - { + { var _entity = db.TB_ASK_DETAIL.Where(p => p.UID == itm.UID).FirstOrDefault(); - _entity.ReduceQty= itm.ReduceQty; + _entity.ReduceQty = itm.ReduceQty; _entity.Remark = itm.Remark; - var asn = db.V_TB_ASN_DETAIL.Where(p => p.PoBillNum == itm.PoBillNum &&p.AskBillNum==itm.AskBillNum && p.IsDeleted == false ) - .GroupBy(p => new { p.PoBillNum,p.AskBillNum, p.PoLine, p.PartCode }) - .Select(p => new { AsSum = p.Sum(item => item.Qty), PoLine = p.Key.PoLine, PoBillNum = p.Key.PoBillNum, PartCode = p.Key.PartCode,AskBillNum=p.Key.AskBillNum }); + var asn = db.V_TB_ASN_DETAIL.Where(p => p.PoBillNum == itm.PoBillNum && p.AskBillNum == itm.AskBillNum && p.IsDeleted == false) + .GroupBy(p => new { p.PoBillNum, p.AskBillNum, p.PoLine, p.PartCode }) + .Select(p => new { AsSum = p.Sum(item => item.Qty), PoLine = p.Key.PoLine, PoBillNum = p.Key.PoBillNum, PartCode = p.Key.PartCode, AskBillNum = p.Key.AskBillNum }); asn.ToList().ForEach(itm1 => { - if (itm.PoBillNum == itm1.PoBillNum && itm.PoLine == itm1.PoLine && itm.PartCode == itm1.PartCode && itm.AskBillNum==itm1.AskBillNum) + if (itm.PoBillNum == itm1.PoBillNum && itm.PoLine == itm1.PoLine && itm.PartCode == itm1.PartCode && itm.AskBillNum == itm1.AskBillNum) { - if (itm.ReduceQty > itm.AskQty - itm1.AsSum ) + if (itm.ReduceQty > itm.AskQty - itm1.AsSum) { - _ret.MessageList.Add(string.Format("零件编号{0}零件名称{1}减产数量>要货数量-发货数量",itm.PartCode,itm.PartDesc1+itm.PartDesc2)); + _ret.MessageList.Add(string.Format("零件编号{0}零件名称{1}减产数量>要货数量-发货数量", itm.PartCode, itm.PartDesc1 + itm.PartDesc2)); } } }); @@ -294,12 +297,12 @@ namespace CK.SCP.Controller using (ScpEntities db = EntitiesFactory.CreateScpInstance()) { - var _list=p_list.Select(itm => itm.UID).ToList(); + var _list = p_list.Select(itm => itm.UID).ToList(); var _ls = db.TB_ASK_DETAIL.Where(p => _list.Contains(p.UID)).ToList(); db.TB_ASK_DETAIL.RemoveRange(_ls); - - + + if (db.SaveChanges() != -1) { @@ -374,7 +377,7 @@ namespace CK.SCP.Controller { using (ScpEntities db = EntitiesFactory.CreateScpInstance()) { - + IQueryable q = db.V_TB_INCOMPLETE_ASK; if (!string.IsNullOrEmpty(p_entity.PoBillNum)) { @@ -410,7 +413,7 @@ namespace CK.SCP.Controller } if (p_entity.Buyer != null) { - q = q.Where(p => p.Buyer== p_entity.Buyer); + q = q.Where(p => p.Buyer == p_entity.Buyer); } if (p_entity.CreateUser != null) { @@ -453,10 +456,10 @@ namespace CK.SCP.Controller _ret.Result = q; p_action(_ret); - + } - } + } catch (System.Data.Entity.Validation.DbEntityValidationException dbEx)//捕获实体验证异常 { var sb = new StringBuilder(); @@ -472,7 +475,7 @@ namespace CK.SCP.Controller LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_ASK_CONTROLLER), "Get_V_TB_ASK_ASN_View_List", sb.ToString()); if (dbEx.InnerException != null) LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_ASN_CONTROLLER), "Get_V_TB_ASK_ASN_View_List(DbEntityValidationException)", LogHelper.GetExceptionMessage(dbEx).Message); - + throw new ScpException(ResultCode.DbEntityValidationException, sb.ToString(), "字段验证失败" + sb.ToString()); } catch (OptimisticConcurrencyException ex)//并发冲突异常 @@ -483,7 +486,7 @@ namespace CK.SCP.Controller LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_ASK_CONTROLLER), "Get_V_TB_ASK_ASN_View_List", ex.ToString()); if (ex.InnerException != null) LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_ASN_CONTROLLER), "Get_V_TB_ASK_ASN_View_List(OptimisticConcurrencyException)", LogHelper.GetExceptionMessage(ex).Message); - + throw new ScpException(ResultCode.Exception, "9999", ex.ToString()); } catch (ScpException ex) @@ -627,15 +630,15 @@ namespace CK.SCP.Controller //var _detail = p_list[0]; foreach (V_TB_INCOMPLETE_ASK _detail in p_list) { - - var reject = db.TB_ARRIVE_DETAIL.Where(p => p.Remark == _detail.AskBillNum && p.IsDeleted == false && p.State == (int)ArriveState.OK&&p.BillType==3).GroupBy(p => new { p.Remark, p.PoLine, p.PartCode }).Select(p => new { RejectSum = p.Sum(itm => itm.Qty), PoLine = p.Key.PoLine, Remark = p.Key.Remark, PartCode = p.Key.PartCode }); + + var reject = db.TB_ARRIVE_DETAIL.Where(p => p.Remark == _detail.AskBillNum && p.IsDeleted == false && p.State == (int)ArriveState.OK && p.BillType == 3).GroupBy(p => new { p.Remark, p.PoLine, p.PartCode }).Select(p => new { RejectSum = p.Sum(itm => itm.Qty), PoLine = p.Key.PoLine, Remark = p.Key.Remark, PartCode = p.Key.PartCode }); reject.ToList().ForEach(itm => { if (_detail.AskBillNum == itm.Remark && _detail.PoLine == itm.PoLine && _detail.PartCode == itm.PartCode) { - _detail.Number = _detail.Number+Math.Abs( itm.RejectSum); + _detail.Number = _detail.Number + Math.Abs(itm.RejectSum); } - }); + }); } } @@ -727,19 +730,19 @@ namespace CK.SCP.Controller var rec = db.TB_RECEIVE_DETAIL.Where(p => p.Remark == _detail.AskBillNum && p.IsDeleted == false && p.State == (int)ReceiveState.Check && p.BillType == 0) .GroupBy(p => new { p.Remark, p.PoLine, p.PartCode }).Select(p => new { ReceiveSum = p.Sum(itm => itm.Qty), PoLine = p.Key.PoLine, Remark = p.Key.Remark, PartCode = p.Key.PartCode }); - // var reject = db.TB_RECEIVE_DETAIL.Where(p => p.Remark == _detail.AskBillNum && p.IsDeleted == false && p.State == (int)RejectState.Check && p.BillType == 1).GroupBy(p => new { p.Remark, p.PoLine, p.PartCode }).Select(p => new { RejectSum = p.Sum(itm => itm.Qty), PoLine = p.Key.PoLine, Remark = p.Key.Remark , PartCode = p.Key.PartCode }); - //发货 + // var reject = db.TB_RECEIVE_DETAIL.Where(p => p.Remark == _detail.AskBillNum && p.IsDeleted == false && p.State == (int)RejectState.Check && p.BillType == 1).GroupBy(p => new { p.Remark, p.PoLine, p.PartCode }).Select(p => new { RejectSum = p.Sum(itm => itm.Qty), PoLine = p.Key.PoLine, Remark = p.Key.Remark , PartCode = p.Key.PartCode }); + //发货 var asn = db.V_TB_ASN_DETAIL.Where(p => p.AskBillNum == _detail.AskBillNum && p.IsDeleted == false && p.State == (int)AsnState.Ship) .GroupBy(p => new { p.AskBillNum, p.PoLine, p.PartCode }) .Select(p => new { AsSum = p.Sum(itm => itm.Qty), PoLine = p.Key.PoLine, AskBillNum = p.Key.AskBillNum, PartCode = p.Key.PartCode }); //var arrive = db.TB_ARRIVE_DETAIL.Where(p => p.Remark == _detail.AskBillNum && p.IsDeleted == false && p.State == (int)ArriveState.OK && p.BillType == (int)ArriveBillType.Receive).GroupBy(p => new { p.Remark, p.PoLine, p.PartCode }).Select(p => new { ArriveSum = p.Sum(itm => itm.Qty), PoLine = p.Key.PoLine, Remark = p.Key.Remark, PartCode = p.Key.PartCode }); //到货 - var arrive = db.TB_ARRIVE_DETAIL.Where(p => p.Remark == _detail.AskBillNum && p.IsDeleted == false && p.State == (int)ArriveState.OK &&p.Qty>0 ).GroupBy(p => new { p.Remark, p.PoLine, p.PartCode }).Select(p => new { ArriveSum = p.Sum(itm => itm.Qty), PoLine = p.Key.PoLine, Remark = p.Key.Remark, PartCode = p.Key.PartCode }); + var arrive = db.TB_ARRIVE_DETAIL.Where(p => p.Remark == _detail.AskBillNum && p.IsDeleted == false && p.State == (int)ArriveState.OK && p.Qty > 0).GroupBy(p => new { p.Remark, p.PoLine, p.PartCode }).Select(p => new { ArriveSum = p.Sum(itm => itm.Qty), PoLine = p.Key.PoLine, Remark = p.Key.Remark, PartCode = p.Key.PartCode }); //退货 var reject = db.TB_ARRIVE_DETAIL.Where(p => p.Remark == _detail.AskBillNum && p.IsDeleted == false && p.State == (int)ArriveState.OK && p.Qty < 0).GroupBy(p => new { p.Remark, p.PoLine, p.PartCode }).Select(p => new { ArriveSum = p.Sum(itm => itm.Qty), PoLine = p.Key.PoLine, Remark = p.Key.Remark, PartCode = p.Key.PartCode }); - var invoice = db.V_TB_INVOICE_ASK.Where(p => p.Remark == _detail.AskBillNum && p.State == (int)ReceiveState.Check && p.BillType == 0) + var invoice = db.V_TB_INVOICE_ASK.Where(p => p.Remark == _detail.AskBillNum && p.State == (int)ReceiveState.Check && p.BillType == 0) .GroupBy(p => new { p.Remark, p.PoLine, p.PartCode }).Select(p => new { InvoiceQty = p.Sum(itm => itm.InvoiceQty), PoLine = p.Key.PoLine, Remark = p.Key.Remark, PartCode = p.Key.PartCode }); _detail.PartDesc1 = _detail.PartDesc1 + _detail.PartDesc2; @@ -791,7 +794,7 @@ namespace CK.SCP.Controller } }); - _detail.OnRoadQty = Convert.ToDecimal( _detail.ShippedQty) - _detail.ArriveQty; + _detail.OnRoadQty = Convert.ToDecimal(_detail.ShippedQty) - _detail.ArriveQty; } } @@ -803,13 +806,13 @@ namespace CK.SCP.Controller { using (ScpEntities db = EntitiesFactory.CreateScpInstance()) { - + if (p_list.ToList().Count > 0) { foreach (V_TB_ASK _detail in p_list) { _detail.Month = Convert.ToDateTime(_detail.EndTime).Month.ToString() + "月订单"; - if (_detail.State==0|| _detail.State==1|| _detail.State == 2) + if (_detail.State == 0 || _detail.State == 1 || _detail.State == 2) { continue; @@ -819,7 +822,7 @@ namespace CK.SCP.Controller continue; } var _ask = db.V_TB_ASK_DETAIL.Where(p => p.AskBillNum == _detail.AskBillNum && p.IsDeleted == false).ToList(); - var _ask_can= Get_CAN_SHIPQTY(_ask.ToList()).Where(p=>p.CanQty>0).ToList(); + var _ask_can = Get_CAN_SHIPQTY(_ask.ToList()).Where(p => p.CanQty > 0).ToList(); if (_ask_can.Count != 0) { @@ -832,7 +835,7 @@ namespace CK.SCP.Controller //_detail.Flag = (_ask_can.Count).ToString()+ "/" +(_ask.Count).ToString(); //_detail.Month = _detail.CreateTime.Month.ToString() + "月订单"; } - + } } return p_list; @@ -848,10 +851,10 @@ namespace CK.SCP.Controller DateTime beginTime = DateTime.Now; DateTime endTime = DateTime.Now; foreach (var itm in p_entitys) - { + { var _entity = db.TB_ASK_DETAIL.Where(p => p.UID == itm.UID).FirstOrDefault(); - askBill=_entity.AskBillNum; - _entity.BeginTime =(DateTime) itm.BeginTime; + askBill = _entity.AskBillNum; + _entity.BeginTime = (DateTime)itm.BeginTime; beginTime = (DateTime)itm.BeginTime; _entity.EndTime = (DateTime)itm.EndTime; endTime = (DateTime)itm.EndTime; @@ -941,7 +944,7 @@ namespace CK.SCP.Controller } return _ret; } - public static ResultObject Save_TB_ASK_DETAIL(List p_entitys,AskState p_state) + public static ResultObject Save_TB_ASK_DETAIL(List p_entitys, AskState p_state) { ResultObject _ret = new ResultObject(); try @@ -973,7 +976,8 @@ namespace CK.SCP.Controller if (_item.AskBillNum.Contains("U")) { var _planList = db1.TB_PO_PLAN_EXTEND.Where(p => p.Domain == _item.Site && p.EndTime == _item.EndTime && p.PoBillNum == _item.PoBillNum).ToList(); - _planList.ForEach(p => { + _planList.ForEach(p => + { var _first = _entityList.Where(itm => itm.PoBillNum == p.PoBillNum && itm.PartCode == p.PartCode && itm.EndTime == p.EndTime).FirstOrDefault(); if (_first != null) { @@ -1015,7 +1019,7 @@ namespace CK.SCP.Controller } catch (OptimisticConcurrencyException ex)//并发冲突异常 { - + _ret.State = ReturnStatus.Failed; _ret.Result = false; _ret.ErrorList.Add(ex); @@ -1032,7 +1036,7 @@ namespace CK.SCP.Controller { var inner = (UpdateException)ex.InnerException; - + throw new ScpException(ResultCode.Exception, "0000", ex.ToString()); } else @@ -1098,7 +1102,7 @@ namespace CK.SCP.Controller } catch (OptimisticConcurrencyException ex)//并发冲突异常 { - + _ret.State = ReturnStatus.Failed; _ret.Result = false; _ret.ErrorList.Add(ex); @@ -1107,7 +1111,7 @@ namespace CK.SCP.Controller } catch (ScpException ex) { - + _ret.State = ReturnStatus.Failed; _ret.Result = false; @@ -1118,7 +1122,7 @@ namespace CK.SCP.Controller { var inner = (UpdateException)ex.InnerException; - + throw new ScpException(ResultCode.Exception, "0000", ex.ToString()); } else @@ -1141,8 +1145,8 @@ namespace CK.SCP.Controller { using (ScpEntities db = EntitiesFactory.CreateScpInstance()) { - var _list=db.V_TB_ASK_DETAIL.Where(p => p.AskBillNum == p_askBillNum && p.IsDeleted==false).ToList(); - var _lst=Get_CAN_SHIPQTY(_list); + var _list = db.V_TB_ASK_DETAIL.Where(p => p.AskBillNum == p_askBillNum && p.IsDeleted == false).ToList(); + var _lst = Get_CAN_SHIPQTY(_list); if (_lst.Select(p => p.CanQty).Sum() <= 0) { @@ -1159,8 +1163,8 @@ namespace CK.SCP.Controller { using (ScpEntities db = EntitiesFactory.CreateScpInstance()) { - var _ask= db.TB_ASK.Where(p => p.AskBillNum == p_ask.AskBillNum).FirstOrDefault(); - _ask=ConvertHelper.GetObjectClone(_ask); + var _ask = db.TB_ASK.Where(p => p.AskBillNum == p_ask.AskBillNum).FirstOrDefault(); + _ask = ConvertHelper.GetObjectClone(_ask); _ask.AskBillNum = SCP_BILLCODE_CONTROLLER.MakeASKCode(); _ask.GUID = Guid.NewGuid(); @@ -1180,7 +1184,7 @@ namespace CK.SCP.Controller int state = db.SaveChanges(); if (state != -1) { - _ret.MessageList.Add("复制要货单号"+_ask.AskBillNum+",请去要货明细修改要货单订货日期和要货日期"); + _ret.MessageList.Add("复制要货单号" + _ask.AskBillNum + ",请去要货明细修改要货单订货日期和要货日期"); _ret.State = ReturnStatus.Succeed; _ret.Result = true; } @@ -1254,7 +1258,7 @@ namespace CK.SCP.Controller - public static ResultObject Save_ASK_TO_ASN(V_TB_ASK p_ask, List p_order_list,string p_PlateNumber + public static ResultObject Save_ASK_TO_ASN(V_TB_ASK p_ask, List p_order_list, string p_PlateNumber , string p_buyer, string p_buyerPhone) { ResultObject _ret = new ResultObject(); @@ -1267,7 +1271,7 @@ namespace CK.SCP.Controller _t.AsnBillNum = SCP_BILLCODE_CONTROLLER.MakeASNCode_BJBQ(str1); _t.AskBillNum = p_ask.AskBillNum; _t.PoBillNum = p_ask.PoBillNum; - _t.ReceivedPort = p_ask.ReceivedPort; + _t.ReceivedPort = p_ask.ReceivedPort; _t.CreateUser = p_buyer; _t.CreateTime = DateTime.Now; _t.UpdateUser = p_buyer; @@ -1275,7 +1279,7 @@ namespace CK.SCP.Controller _t.ReceiveUser = p_ask.Buyer; _t.ReceiveTime = p_ask.BeginTime; _t.VendId = p_ask.VendId; - _t.IsDeleted= false;//操作员 + _t.IsDeleted = false;//操作员 _t.CreateTime = DateTime.Now; _t.CreateUser = p_buyer; _t.Site = p_ask.Site; @@ -1290,7 +1294,7 @@ namespace CK.SCP.Controller _t.ReceiveTime = p_ask.ReceiveTime; db.TB_ASN.AddOrUpdate(p => p.AsnBillNum, _t); List _list = new List(); - + foreach (var itm in p_order_list) { TB_ASN_DETAIL _tDetail = new TB_ASN_DETAIL(); @@ -1321,18 +1325,18 @@ namespace CK.SCP.Controller _tDetail.LocUnit = itm.LocUnit; _tDetail.UnConv = itm.UnConv; _tDetail.State = _t.State; - _tDetail.Site= p_ask.Site; + _tDetail.Site = p_ask.Site; _tDetail.ReceivedPort = itm.ReceivedPort; _tDetail.SubSite = p_ask.SubSite; _tDetail.Remark = itm.Remark; _tDetail.GUID = Guid.NewGuid(); - String str = itm.PartCode.Substring(0,3); - if((str== "EXP"||str== "SPA")&& (_t.SubSite== "ZZ01"|| _t.SubSite == "CQ01")) + String str = itm.PartCode.Substring(0, 3); + if ((str == "EXP" || str == "SPA") && (_t.SubSite == "ZZ01" || _t.SubSite == "CQ01")) { _tDetail.Batch = "000000"; } String str2 = itm.PartCode.Substring(0, 5); - if(str2== "SPABJ"&&_t.Site== "BJBMPT") + if (str2 == "SPABJ" && _t.Site == "BJBMPT") { _tDetail.Batch = "000000"; } @@ -1340,7 +1344,7 @@ namespace CK.SCP.Controller var _order_detail = db.TB_ASK_DETAIL.Where(p => p.UID == itm.UID).FirstOrDefault(); _order_detail.ShippedQty = (decimal)itm.ShippedQty; db.TB_ASK_DETAIL.AddOrUpdate(p => p.UID, _order_detail); - + } var list_distinct = p_order_list.DistinctBy(x => new { x.PartCode, x.Site }).ToList(); foreach (var _itm in list_distinct) @@ -1370,11 +1374,11 @@ namespace CK.SCP.Controller int state = db.SaveChanges(); if (state != -1) { - var _askDetailList= db.V_TB_ASK_DETAIL.Where(p => p.AskBillNum == p_ask.AskBillNum && p.IsDeleted == false).ToList();//查询要货单明细 + var _askDetailList = db.V_TB_ASK_DETAIL.Where(p => p.AskBillNum == p_ask.AskBillNum && p.IsDeleted == false).ToList();//查询要货单明细 var _lst = Get_CAN_SHIPQTY(_askDetailList);//算出可发数量 if (_lst.Select(p => p.CanQty).Sum() <= 0)//可发数量为零时,修改状态 { - var _ary=db.TB_ASK.Where(p => p.AskBillNum == p_ask.AskBillNum && p.IsDeleted == false).ToList(); + var _ary = db.TB_ASK.Where(p => p.AskBillNum == p_ask.AskBillNum && p.IsDeleted == false).ToList(); _ary.ForEach(p => p.State = (int)AskState.Ship); if (_ary.Count() > 0) { @@ -1411,7 +1415,7 @@ namespace CK.SCP.Controller } catch (OptimisticConcurrencyException ex)//并发冲突异常 { - + _ret.State = ReturnStatus.Failed; _ret.Result = false; _ret.ErrorList.Add(ex); @@ -1446,12 +1450,58 @@ namespace CK.SCP.Controller return _ret; } + /// + /// 要货看板零件号零件名称模糊查询 + /// + /// + /// + /// + /// + public static List GET_Likesearch(List p_list, string PartCode, string PartCodeDesc) + { + if (string.IsNullOrEmpty(PartCode) && string.IsNullOrEmpty(PartCodeDesc)) + { + return p_list; + } + using (ScpEntities db = EntitiesFactory.CreateScpInstance()) + { + var _ls = p_list.Select(p => p.AskBillNum).ToArray(); + StringBuilder _buffer = new StringBuilder(); + _buffer.Append(" SELECT Distinct(A.UID),A.* from V_TB_ASK A LEFT JOIN "); + _buffer.Append(" dbo.TB_ASK_DETAIL B on A.AskBillNum = B.AskBillNum and A.Site = B.Site LEFT JOIN "); + _buffer.Append(" dbo.TA_PART TP on TP.PartCode = B.PartCode and TP.Site = A.Site "); + _buffer.Append(" WHERE A.AskBillNum in ({0}) "); + + string _str = string.Format(_buffer.ToString(), $"'{string.Join("','", _ls)}'"); + if (!string.IsNullOrEmpty(PartCode)) + { + //_buffer.Append(" and B.PartCode LIKE ('%{1}%')"); + + _str += " and B.PartCode LIKE '%" + PartCode + "%'"; + } + if (!string.IsNullOrEmpty(PartCodeDesc)) + { + _str += " and (TP.PartDesc1+ TP.PartDesc2 ) LIKE '%" + PartCodeDesc + "%'"; + } + var _list = db.Database.SqlQuery(_str).ToList(); + + if (_list != null) + { + var S = _list.OrderBy(A => A.AskBillNum).ToList().Distinct(); + return _list; + } + else + { + return p_list; + } + } + } public static List GET_IS_COMPLETED_SEND(List p_list) { using (ScpEntities db = EntitiesFactory.CreateScpInstance()) { - var _ls = p_list.Select(p => p.AskBillNum); + var _ls = p_list.Select(p => p.AskBillNum); StringBuilder _buffer = new StringBuilder(); _buffer.Append(" select distinct (C.AskBillNum)from V_TB_ASK_DETAIL C"); _buffer.Append(" left JOIN "); @@ -1459,17 +1509,18 @@ namespace CK.SCP.Controller _buffer.Append(" group by a.PoLine, a.AskBillNum, a.PartCode) AS D "); _buffer.Append(" ON C.AskBillNum = D.AskBillNum AND C.PoLine = D.PoLine AND C.PartCode = D.PartCode "); _buffer.Append(" WHERE C.AskQty>isnull(D.Qty,0)"); - _buffer.Append(" and c.AskBillNum in ('{0}')"); + _buffer.Append(" and c.AskBillNum in ('{0}')"); var _str = string.Format(_buffer.ToString(), string.Join("','", _ls.ToArray())); - var _list= db.Database.SqlQuery(_str).ToList(); - - p_list.ForEach(p => { - p.IsComplete = true; - if (_list.Contains(p.AskBillNum)) - { - p.IsComplete = false; - } - }); + var _list = db.Database.SqlQuery(_str).ToList(); + + p_list.ForEach(p => + { + p.IsComplete = true; + if (_list.Contains(p.AskBillNum)) + { + p.IsComplete = false; + } + }); } return p_list; @@ -1513,7 +1564,7 @@ namespace CK.SCP.Controller if (p.PoBillNum == itm.PoBillNum && p.PoLine == itm.PoLine && p.PartCode == itm.PartCode) { itm.RejectQty = Math.Abs(p.BackSum);//寄售退货数 - } + } }); decimal a = itm.AskQty - (itm.ShippedQty == null ? 0 : (decimal)itm.ShippedQty) + itm.RejectQty - (itm.ReduceQty == null ? 0 : (decimal)itm.ReduceQty); itm.CanQty = a; @@ -1522,7 +1573,7 @@ namespace CK.SCP.Controller } } - if(p_list.Count>0) + if (p_list.Count > 0) { return p_list; } @@ -1569,9 +1620,9 @@ namespace CK.SCP.Controller q = q.Where(p => p.PoUnit.Contains(p_entity.PoUnit)); } - if (p_entity.EndTime!=null) + if (p_entity.EndTime != null) { - q = q.Where(p =>p_entity.EndTime< p.EndTime); + q = q.Where(p => p_entity.EndTime < p.EndTime); } if (!string.IsNullOrEmpty(p_entity.LocUnit)) { @@ -1620,7 +1671,7 @@ namespace CK.SCP.Controller } if (!string.IsNullOrEmpty(p_entity.VendId)) { - q = q.Where(p => p.VendId==p_entity.VendId); + q = q.Where(p => p.VendId == p_entity.VendId); } if (!string.IsNullOrEmpty(p_entity.AskBillNum)) @@ -1631,6 +1682,10 @@ namespace CK.SCP.Controller { q = q.Where(p => p_entity.UserInAddress.Contains(p.Site)); } + if (!string.IsNullOrEmpty(p_entity.PartDesc1)) + { + q = q.Where(p => p.PartDesc1.Contains(p_entity.PartDesc1)); + } _ret.State = ReturnStatus.Succeed; _ret.Result = q; @@ -1699,9 +1754,9 @@ namespace CK.SCP.Controller } - public static void Get_V_TB_ASK_DETAIL_Sum(V_TB_ASK_DETAIL p_entity,Action>> p_action) + public static void Get_V_TB_ASK_DETAIL_Sum(V_TB_ASK_DETAIL p_entity, Action>> p_action) { - + ResultObject> _ret = new ResultObject>(); try { @@ -1710,7 +1765,7 @@ namespace CK.SCP.Controller IQueryable q = db.V_TB_ASK_DETAIL; if (p_entity.UID != 0) { - + q = q.Where(p => p.UID == p_entity.UID); } if (!string.IsNullOrEmpty(p_entity.PoBillNum)) @@ -1725,7 +1780,7 @@ namespace CK.SCP.Controller { q = q.Where(p => p.PartCode.Contains(p_entity.PartCode)); } - if (p_entity.ShippedQty!=null && p_entity.ShippedQty != 0) + if (p_entity.ShippedQty != null && p_entity.ShippedQty != 0) { q = q.Where(p => p.ShippedQty == p_entity.ShippedQty); } @@ -1765,15 +1820,15 @@ namespace CK.SCP.Controller { q = q.Where(p => p.State == p_entity.State); } - + if (!string.IsNullOrEmpty(p_entity.CreateUser)) { q = q.Where(p => p.CreateUser.Contains(p_entity.CreateUser)); } - + q = q.Where(p => p.IsDeleted == p_entity.IsDeleted); - - + + if (!string.IsNullOrEmpty(p_entity.Site)) { q = q.Where(p => p.Site.Contains(p_entity.Site)); @@ -1782,11 +1837,11 @@ namespace CK.SCP.Controller { q = q.Where(p => p.VendName.Contains(p_entity.VendName)); } - + if (!string.IsNullOrEmpty(p_entity.AskBillNum)) { q = q.Where(p => p.AskBillNum.Contains(p_entity.AskBillNum)); - } + } _ret.State = ReturnStatus.Succeed; _ret.Result = q; p_action(_ret); @@ -1811,7 +1866,7 @@ namespace CK.SCP.Controller } catch (OptimisticConcurrencyException ex)//并发冲突异常 { - + _ret.State = ReturnStatus.Failed; _ret.ErrorList.Add(ex); LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_ASK_CONTROLLER), "Get_V_TB_ASK_DETAIL_List", ex.ToString()); @@ -1819,7 +1874,7 @@ namespace CK.SCP.Controller } catch (ScpException ex) { - + _ret.State = ReturnStatus.Failed; _ret.ErrorList.Add(ex); @@ -1829,7 +1884,7 @@ namespace CK.SCP.Controller { var inner = (UpdateException)ex.InnerException; - + throw new ScpException(ResultCode.Exception, "0000", ex.ToString()); } else @@ -1840,15 +1895,15 @@ namespace CK.SCP.Controller catch (Exception e) { - + _ret.State = ReturnStatus.Failed; _ret.ErrorList.Add(e); LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_ASK_CONTROLLER), "Get_V_TB_ASK_DETAIL_List", e.Message); throw e; - } + } } - + public static ResultObject Save_TB_ASK_STATE_BJBQ(List p_list, AskState p_state, List p_list1) @@ -1858,51 +1913,53 @@ namespace CK.SCP.Controller { using (ScpEntities db = EntitiesFactory.CreateScpInstance()) { - if (p_state == AskState.Confirm) + if (p_state == AskState.Confirm) + { + var _ls = db.TB_ASK.Where(p => p_list.Contains(p.AskBillNum) && p_list1.Contains(p.Site)).ToList(); + int count = _ls.Count(p => p.State == (int)AskState.Release); + if (count == _ls.Count && _ls.Count > 0) { - var _ls = db.TB_ASK.Where(p => p_list.Contains(p.AskBillNum)&& p_list1.Contains(p.Site)).ToList(); - int count = _ls.Count(p => p.State == (int)AskState.Release); - if (count == _ls.Count && _ls.Count > 0) - { - _ls.ForEach(p => { - p.State = (int)AskState.Confirm; - var _list = db.TB_ASK_DETAIL.Where(itm => itm.AskBillNum == p.AskBillNum && itm.Site == p.Site).ToList(); - _list.ForEach(itm => itm.State = (int)AskState.Confirm); - db.TB_ASK_DETAIL.AddOrUpdate(itm => itm.UID, _list.ToArray()); - #region 供应商确认要货状态完成 - //var _pendingList = db.TB_PENING_ITEMS.Where(itm => itm.ITEM_NO == p.AskBillNum).ToList(); - //_pendingList.ForEach(itm => { - // itm.ITEM_STATE = (int)PENDING_STATE.COMPLETED; - // itm.ITEM_CONTENT = "要货看板已完成!"; - //} - //); - //db.TB_PENING_ITEMS.AddOrUpdate(itm => itm.GUID, _pendingList.ToArray()); - #endregion - } - ); - db.TB_ASK.AddOrUpdate(p => p.UID, _ls.ToArray()); - } - else + _ls.ForEach(p => { - _ret.State = ReturnStatus.Failed; - _ret.Result = false; - _ret.Message = "选择的记录,有不是发布状态记录!"; + p.State = (int)AskState.Confirm; + var _list = db.TB_ASK_DETAIL.Where(itm => itm.AskBillNum == p.AskBillNum && itm.Site == p.Site).ToList(); + _list.ForEach(itm => itm.State = (int)AskState.Confirm); + db.TB_ASK_DETAIL.AddOrUpdate(itm => itm.UID, _list.ToArray()); + #region 供应商确认要货状态完成 + //var _pendingList = db.TB_PENING_ITEMS.Where(itm => itm.ITEM_NO == p.AskBillNum).ToList(); + //_pendingList.ForEach(itm => { + // itm.ITEM_STATE = (int)PENDING_STATE.COMPLETED; + // itm.ITEM_CONTENT = "要货看板已完成!"; + //} + //); + //db.TB_PENING_ITEMS.AddOrUpdate(itm => itm.GUID, _pendingList.ToArray()); + #endregion } + ); + db.TB_ASK.AddOrUpdate(p => p.UID, _ls.ToArray()); } - if (p_state == AskState.New) + else { - var _ls = db.TB_ASK.Where(p => p_list.Contains(p.AskBillNum)).ToList(); - int count = _ls.Count(p => p.State == (int)AskState.Release); - if (count == _ls.Count && _ls.Count > 0) + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + _ret.Message = "选择的记录,有不是发布状态记录!"; + } + } + if (p_state == AskState.New) + { + var _ls = db.TB_ASK.Where(p => p_list.Contains(p.AskBillNum)).ToList(); + int count = _ls.Count(p => p.State == (int)AskState.Release); + if (count == _ls.Count && _ls.Count > 0) + { + _ls.ForEach(p => { - _ls.ForEach(p => { - p.State = (int)AskState.New; - var _list = db.TB_ASK_DETAIL.Where(itm => itm.AskBillNum == p.AskBillNum).ToList(); - _list.ForEach(itm => itm.State = (int)AskState.New); - db.TB_ASK_DETAIL.AddOrUpdate(itm => itm.UID, _list.ToArray()); - + p.State = (int)AskState.New; + var _list = db.TB_ASK_DETAIL.Where(itm => itm.AskBillNum == p.AskBillNum).ToList(); + _list.ForEach(itm => itm.State = (int)AskState.New); + db.TB_ASK_DETAIL.AddOrUpdate(itm => itm.UID, _list.ToArray()); - } + + } // #region 供应商要货代办取消 // var _pendingList = db.TB_PENING_ITEMS.Where(itm => itm.ITEM_NO == p.AskBillNum).ToList(); //if (_pendingList.Count > 0) @@ -1911,107 +1968,107 @@ namespace CK.SCP.Controller //} // #endregion - ); - db.TB_ASK.AddOrUpdate(p => p.AskBillNum, _ls.ToArray()); - } - else - { - _ret.State = ReturnStatus.Failed; - _ret.Result = false; - _ret.Message = "选择的记录,有不是发布状态记录!"; - } + ); + db.TB_ASK.AddOrUpdate(p => p.AskBillNum, _ls.ToArray()); } - if (p_state == AskState.Release) + else { - var _ls = db.TB_ASK.Where(p => p_list.Contains(p.AskBillNum)).ToList(); - int count = _ls.Count(p => p.State == (int)AskState.New); + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + _ret.Message = "选择的记录,有不是发布状态记录!"; + } + } + if (p_state == AskState.Release) + { + var _ls = db.TB_ASK.Where(p => p_list.Contains(p.AskBillNum)).ToList(); + int count = _ls.Count(p => p.State == (int)AskState.New); if (count == _ls.Count && _ls.Count > 0) { - _ls.ForEach(p => + _ls.ForEach(p => + { + p.State = (int)AskState.Release; + var _list = db.TB_ASK_DETAIL.Where(itm => itm.AskBillNum == p.AskBillNum).ToList(); + _list.ForEach(itm => { - p.State = (int)AskState.Release; - var _list = db.TB_ASK_DETAIL.Where(itm => itm.AskBillNum == p.AskBillNum).ToList(); - _list.ForEach(itm => - { - itm.State = (int)AskState.Release; - } - ); - db.TB_ASK_DETAIL.AddOrUpdate(itm => itm.UID, _list.ToArray()); + itm.State = (int)AskState.Release; + } + ); + db.TB_ASK_DETAIL.AddOrUpdate(itm => itm.UID, _list.ToArray()); #region 供应商代办任务新 TB_PENING_ITEMS _item = new TB_PENING_ITEMS(); - _item.ROLE_NAME = "供应商"; - _item.ITEM_NO = p.AskBillNum; - _item.ITEM_CONTENT = "要货看盘有信息"; - _item.ITEM_TYPE = (int)PENDING_MESSAGE_TYPE.NEW_ASK; - _item.ITEM_STATE = (int)PENDING_STATE.WAITING; - _item.SENDER = p.CreateUser; - _item.VEND_ID = p.VendId; - _item.SENDING_TIME = DateTime.Now; - _item.ITEM_ADDRESS = p.Site; - _item.GUID = Guid.NewGuid(); - db.TB_PENING_ITEMS.Add(_item); + _item.ROLE_NAME = "供应商"; + _item.ITEM_NO = p.AskBillNum; + _item.ITEM_CONTENT = "要货看盘有信息"; + _item.ITEM_TYPE = (int)PENDING_MESSAGE_TYPE.NEW_ASK; + _item.ITEM_STATE = (int)PENDING_STATE.WAITING; + _item.SENDER = p.CreateUser; + _item.VEND_ID = p.VendId; + _item.SENDING_TIME = DateTime.Now; + _item.ITEM_ADDRESS = p.Site; + _item.GUID = Guid.NewGuid(); + db.TB_PENING_ITEMS.Add(_item); #endregion } - ); + ); - db.TB_ASK.AddOrUpdate(p => p.AskBillNum, _ls.ToArray()); - } - else - { - _ret.State = ReturnStatus.Failed; - _ret.Result = false; - _ret.Message = "选择的记录,有不是发布状态记录!"; - } + db.TB_ASK.AddOrUpdate(p => p.AskBillNum, _ls.ToArray()); + } + else + { + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + _ret.Message = "选择的记录,有不是发布状态记录!"; } - if (p_state == AskState.Reject) + } + if (p_state == AskState.Reject) + { + var _ls = db.TB_ASK.Where(p => p_list.Contains(p.AskBillNum)).ToList(); + int count = _ls.Count(p => p.State == (int)AskState.New || p.State == (int)AskState.Release); + if (count == _ls.Count && _ls.Count > 0) { - var _ls = db.TB_ASK.Where(p => p_list.Contains(p.AskBillNum)).ToList(); - int count = _ls.Count(p => p.State == (int)AskState.New || p.State == (int)AskState.Release); - if (count == _ls.Count && _ls.Count > 0) + _ls.ForEach(p => { - _ls.ForEach(p => + p.State = (int)AskState.Reject; + p.IsDeleted = true; + var _list = db.TB_ASK_DETAIL.Where(itm => itm.AskBillNum == p.AskBillNum).ToList(); + _list.ForEach(itm => { - p.State = (int)AskState.Reject; - p.IsDeleted = true; - var _list = db.TB_ASK_DETAIL.Where(itm => itm.AskBillNum == p.AskBillNum).ToList(); - _list.ForEach(itm => - { - itm.State = (int)AskState.Reject; - itm.IsDeleted = true; - } - ); - db.TB_ASK_DETAIL.AddOrUpdate(itm => itm.UID, _list.ToArray()); + itm.State = (int)AskState.Reject; + itm.IsDeleted = true; + } + ); + db.TB_ASK_DETAIL.AddOrUpdate(itm => itm.UID, _list.ToArray()); //#region 供应商要货代办作废 //var _pendingList = db.TB_PENING_ITEMS.Where(itm => itm.ITEM_NO == p.AskBillNum).ToList(); //db.TB_PENING_ITEMS.RemoveRange(_pendingList); //#endregion } - ); - db.TB_ASK.AddOrUpdate(p => p.AskBillNum, _ls.ToArray()); - } - else - { - _ret.State = ReturnStatus.Failed; - _ret.Result = false; - _ret.Message = "选择的记录,有不是发布状态记录!"; - } - + ); + db.TB_ASK.AddOrUpdate(p => p.AskBillNum, _ls.ToArray()); } + else + { + _ret.State = ReturnStatus.Failed; + _ret.Result = false; + _ret.Message = "选择的记录,有不是发布状态记录!"; + } + + } if (p_state == AskState.CompleteForce) { var _ls = db.TB_ASK.Where(p => p_list.Contains(p.AskBillNum) && p.IsDeleted == false).ToList(); - int count = _ls.Count(p =>p.State == (int)AskState.Confirm || p.State == (int)AskState.Ship); + int count = _ls.Count(p => p.State == (int)AskState.Confirm || p.State == (int)AskState.Ship); if (count == _ls.Count && _ls.Count > 0) { _ls.ForEach(p => { - if(p.State==(int)AskState.Complete) + if (p.State == (int)AskState.Complete) { p.State = (int)AskState.Reject; p.IsDeleted = true; } - // p.State = (int)AskState.CompleteForce; + // p.State = (int)AskState.CompleteForce; #region 修改发货单 var _asnList = db.TB_ASN.Where(itm => itm.IsDeleted == false && itm.AskBillNum == p.AskBillNum && itm.State == 0).ToList(); _asnList.ForEach(itm => @@ -2036,7 +2093,7 @@ namespace CK.SCP.Controller var asn = db.V_TB_ASN_DETAIL.Where(ask => ask.AskBillNum == itm.AskBillNum && ask.IsDeleted == false && (ask.State == (int)AsnState.Ship || ask.State == (int)AsnState.Receive)) .GroupBy(ask => new { ask.AskBillNum, ask.PoLine, ask.PartCode }) .Select(ask => new { AsSum = ask.Sum(itm1 => itm1.Qty), PoLine = ask.Key.PoLine, AskBillNum = ask.Key.AskBillNum, PartCode = ask.Key.PartCode }).ToList(); - + asn.ForEach(itm1 => { if (itm1.AskBillNum == itm.AskBillNum && itm1.PoLine == itm.PoLine && itm1.PartCode == itm.PartCode) @@ -2089,9 +2146,9 @@ namespace CK.SCP.Controller } } - if(p_state == AskState.NoConfirm) + if (p_state == AskState.NoConfirm) { - var _ls = db.TB_ASN.Where(p => p_list.Contains(p.AskBillNum) && p.IsDeleted==false ).ToList(); + var _ls = db.TB_ASN.Where(p => p_list.Contains(p.AskBillNum) && p.IsDeleted == false).ToList(); if (_ls.Count == 0) { var _askList = db.TB_ASK.Where(p => p_list.Contains(p.AskBillNum) && p.IsDeleted == false).ToList(); @@ -2114,9 +2171,9 @@ namespace CK.SCP.Controller _ret.State = ReturnStatus.Failed; _ret.Result = false; _ret.Message = "选择的记录已经有发货单据不能取消!"; - + } - + //if (count > 0) //{ // _ls.ForEach(p => @@ -2185,7 +2242,7 @@ namespace CK.SCP.Controller _ret.Message = "数据更新失败!"; } } - + } } catch (System.Data.Entity.Validation.DbEntityValidationException dbEx)//捕获实体验证异常 @@ -2208,7 +2265,7 @@ namespace CK.SCP.Controller } catch (OptimisticConcurrencyException ex)//并发冲突异常 { - + _ret.State = ReturnStatus.Failed; _ret.Result = false; _ret.ErrorList.Add(ex); @@ -2217,7 +2274,7 @@ namespace CK.SCP.Controller } catch (ScpException ex) { - + _ret.State = ReturnStatus.Failed; _ret.Result = false; @@ -2228,7 +2285,7 @@ namespace CK.SCP.Controller { var inner = (UpdateException)ex.InnerException; - + throw new ScpException(ResultCode.Exception, "0000", ex.ToString()); } else @@ -2254,12 +2311,13 @@ namespace CK.SCP.Controller using (ScpEntities db = EntitiesFactory.CreateScpInstance()) { if (p_state == AskState.Confirm) - { + { var _ls = db.TB_ASK.Where(p => p_list.Contains(p.AskBillNum)).ToList(); int count = _ls.Count(p => p.State == (int)AskState.Release); if (count == _ls.Count && _ls.Count > 0) { - _ls.ForEach(p => { + _ls.ForEach(p => + { p.State = (int)AskState.Confirm; var _list = db.TB_ASK_DETAIL.Where(itm => itm.AskBillNum == p.AskBillNum).ToList(); _list.ForEach(itm => itm.State = (int)AskState.Confirm); @@ -2290,7 +2348,8 @@ namespace CK.SCP.Controller int count = _ls.Count(p => p.State == (int)AskState.Release); if (count == _ls.Count && _ls.Count > 0) { - _ls.ForEach(p => { + _ls.ForEach(p => + { p.State = (int)AskState.New; var _list = db.TB_ASK_DETAIL.Where(itm => itm.AskBillNum == p.AskBillNum).ToList(); _list.ForEach(itm => itm.State = (int)AskState.New); @@ -2394,7 +2453,7 @@ namespace CK.SCP.Controller } if (p_state == AskState.CompleteForce) - { + { var _ls = db.TB_ASK.Where(p => p_list.Contains(p.AskBillNum) && p.IsDeleted == false).ToList(); int count = _ls.Count(p => p.State == (int)AskState.Confirm || p.State == (int)AskState.Ship); if (count == _ls.Count && _ls.Count > 0) @@ -2642,7 +2701,7 @@ namespace CK.SCP.Controller return _ret; } - public static ResultObject Save_TB_ASK_STATE_BMPT(List p_list, AskState p_state,string site) + public static ResultObject Save_TB_ASK_STATE_BMPT(List p_list, AskState p_state, string site) { ResultObject _ret = new ResultObject(); try @@ -2655,7 +2714,8 @@ namespace CK.SCP.Controller int count = _ls.Count(p => p.State == (int)AskState.Release); if (count == _ls.Count && _ls.Count > 0) { - _ls.ForEach(p => { + _ls.ForEach(p => + { p.State = (int)AskState.Confirm; var _list = db.TB_ASK_DETAIL.Where(itm => itm.AskBillNum == p.AskBillNum).ToList(); _list.ForEach(itm => itm.State = (int)AskState.Confirm); @@ -2686,7 +2746,8 @@ namespace CK.SCP.Controller int count = _ls.Count(p => p.State == (int)AskState.Release); if (count == _ls.Count && _ls.Count > 0) { - _ls.ForEach(p => { + _ls.ForEach(p => + { p.State = (int)AskState.New; var _list = db.TB_ASK_DETAIL.Where(itm => itm.AskBillNum == p.AskBillNum).ToList(); _list.ForEach(itm => itm.State = (int)AskState.New); @@ -2791,7 +2852,7 @@ namespace CK.SCP.Controller } if (p_state == AskState.CompleteForce) { - var _ls = db.TB_ASK.Where(p => p_list.Contains(p.AskBillNum) && p.IsDeleted == false&&p.Site==site).ToList(); + var _ls = db.TB_ASK.Where(p => p_list.Contains(p.AskBillNum) && p.IsDeleted == false && p.Site == site).ToList(); int count = _ls.Count(p => p.State == (int)AskState.Confirm || p.State == (int)AskState.Ship); if (count == _ls.Count && _ls.Count > 0) { @@ -2825,8 +2886,8 @@ namespace CK.SCP.Controller { itm.AskQty = 0; var asn = db.V_TB_ASN_DETAIL.Where(ask => ask.AskBillNum == itm.AskBillNum && ask.IsDeleted == false && ask.Site == site && (ask.State == (int)AsnState.Ship || ask.State == (int)AsnState.Receive)) - .GroupBy(ask => new { ask.AskBillNum, ask.PoLine, ask.PartCode,ask.Site }) - .Select(ask => new { AsSum = ask.Sum(itm1 => itm1.Qty), PoLine = ask.Key.PoLine, AskBillNum = ask.Key.AskBillNum, PartCode = ask.Key.PartCode, Site=ask.Key.Site}).ToList(); + .GroupBy(ask => new { ask.AskBillNum, ask.PoLine, ask.PartCode, ask.Site }) + .Select(ask => new { AsSum = ask.Sum(itm1 => itm1.Qty), PoLine = ask.Key.PoLine, AskBillNum = ask.Key.AskBillNum, PartCode = ask.Key.PartCode, Site = ask.Key.Site }).ToList(); asn.ForEach(itm1 => { @@ -3038,7 +3099,7 @@ namespace CK.SCP.Controller return _ret; } - public static ResultObject Save_TB_ASK_STATE_BJBBMPT(List p_list, AskState p_state,User p_user) + public static ResultObject Save_TB_ASK_STATE_BJBBMPT(List p_list, AskState p_state, User p_user) { ResultObject _ret = new ResultObject(); try @@ -3051,7 +3112,8 @@ namespace CK.SCP.Controller int count = _ls.Count(p => p.State == (int)AskState.Release); if (count == _ls.Count && _ls.Count > 0) { - _ls.ForEach(p => { + _ls.ForEach(p => + { p.UpdateUser = p_user.ChineseName; p.UpdateTime = DateTime.Now; @@ -3085,7 +3147,8 @@ namespace CK.SCP.Controller int count = _ls.Count(p => p.State == (int)AskState.Release); if (count == _ls.Count && _ls.Count > 0) { - _ls.ForEach(p => { + _ls.ForEach(p => + { p.UpdateUser = p_user.ChineseName; p.UpdateTime = DateTime.Now; p.State = (int)AskState.New; @@ -3115,7 +3178,7 @@ namespace CK.SCP.Controller } if (p_state == AskState.Release) { - var _ls = db.TB_ASK.Where(p => p_list.Contains(p.AskBillNum)&&p.State== (int)AskState.New).ToList(); + var _ls = db.TB_ASK.Where(p => p_list.Contains(p.AskBillNum) && p.State == (int)AskState.New).ToList(); int count = _ls.Count(p => p.State == (int)AskState.New); if (count > 0) { @@ -3424,16 +3487,17 @@ namespace CK.SCP.Controller using (ScpEntities db = EntitiesFactory.CreateScpInstance()) { - var _list= db.V_TB_ASK_DETAIL.Where(p => p.AskBillNum == p_ask.AskBillNum && p.IsDeleted==false).ToList(); - var _ls = Get_CAN_SHIPQTY(_list); - _ls.ForEach(p => { + var _list = db.V_TB_ASK_DETAIL.Where(p => p.AskBillNum == p_ask.AskBillNum && p.IsDeleted == false).ToList(); + var _ls = Get_CAN_SHIPQTY(_list); + _ls.ForEach(p => + { var _entity = p_list.Where(itm => itm.AskBillNum == p.AskBillNum && itm.PoLine == p.PoLine && itm.PartCode == p.PartCode && itm.PoBillNum == p.PoBillNum).FirstOrDefault(); if (_entity != null) { p.AskQty = _entity.AskQty; - if(_entity.AskQty + /// 报表 + /// + /// + /// + public static List Get_V_TB_ASK_DETAIL_PO_List(V_TB_ASK_DETAIL_PO p_entity) + { + List list = new List(); + try + { + using (ScpEntities db = EntitiesFactory.CreateScpInstance()) + { + SqlParameter[] prams = new SqlParameter[7]; + string TimeBegin = !p_entity.TimeBegin.HasValue ? "" : DateTime.Parse(p_entity.TimeBegin.ToString()).ToString("yyyy-MM-dd"); + string TimeEnd = !p_entity.TimeEnd.HasValue ? "" : DateTime.Parse(p_entity.TimeEnd.ToString()).ToString("yyyy-MM-dd"); + string PoBillNum = string.IsNullOrEmpty(p_entity.PoBillNum) ? "" : p_entity.PoBillNum; + string AskBillNum = string.IsNullOrEmpty(p_entity.AskBillNum) ? "" : p_entity.AskBillNum; + string PartCode = string.IsNullOrEmpty(p_entity.PartCode) ? "" : p_entity.PartCode; + string Buyer= string.IsNullOrEmpty(p_entity.Buyer) ? "" : p_entity.Buyer; + + string VendId = string.IsNullOrEmpty(p_entity.VendId) ? "" : p_entity.VendId; + string UserInAddress_where = ""; + string UserName = p_entity.UserName; + if (p_entity.UserInAddress != null) +{ + UserInAddress_where = string.Join(", ", p_entity.UserInAddress); + } + + + string str = "exec PROC_test " + " @PONum_where = '" + PoBillNum + "' ,@AskBillNum_where = '" + AskBillNum + "' ,@PartCode_where = '" + PartCode + "' ,@Buyer_where = '" + Buyer + "' ,@BeginDate_where = '" + TimeBegin + "' ,@EndDate_where = '" + TimeEnd + "', @VenderID_where = '" + VendId + "'" + ", @UserInAddress_where = " + UserInAddress_where + " ,@UserName = " + UserName; + list = db.Database.SqlQuery(str).ToList(); + } + } + catch (Exception e) + { + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_ASK_CONTROLLER), "Get_V_TB_ASK_DETAIL_PO_List", e.Message); + if (e.InnerException != null) + LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_ASK_CONTROLLER), "Get_V_TB_ASK_DETAIL_PO_List(Exception)", LogHelper.GetExceptionMessage(e).Message); + throw e; + } + return list; + } } } diff --git a/北京北汽/Controller/SCP_PO_CONTROLLER.cs b/北京北汽/Controller/SCP_PO_CONTROLLER.cs index 7079050..1deb1e0 100644 --- a/北京北汽/Controller/SCP_PO_CONTROLLER.cs +++ b/北京北汽/Controller/SCP_PO_CONTROLLER.cs @@ -5395,5 +5395,52 @@ namespace CK.SCP.Controller return p_list; } #endregion + + public static List LOAD_ASK_DETAIL_PO_SUM(List p_list) + { + using (ScpEntities db = EntitiesFactory.CreateScpInstance()) + { + if (p_list.Count > 0) + { + foreach (V_TB_ASK_DETAIL_PO _detail in p_list) + { + var rec = db.TB_RECEIVE_DETAIL.Where(p => p.PoBillNum == _detail.PoBillNum && p.IsDeleted == false && p.State == (int)ReceiveState.Check && p.BillType == 0) + .GroupBy(p => new { p.PoBillNum, p.PoLine, p.PartCode }).Select(p => new { ReceiveSum = p.Sum(itm => itm.Qty), PoLine = p.Key.PoLine, PoBillNum = p.Key.PoBillNum, PartCode = p.Key.PartCode }); + + var asn = db.TB_ASN_DETAIL.Where(p => p.PoBillNum == _detail.PoBillNum && p.IsDeleted == false && (p.State == (int)AsnState.Ship || p.State == (int)AsnState.Receive)) + .GroupBy(p => new { p.PoBillNum, p.PoLine, p.PartCode }) + .Select(p => new { AsSum = p.Sum(itm => itm.Qty), PoLine = p.Key.PoLine, PoBillNum = p.Key.PoBillNum, PartCode = p.Key.PartCode }); + var arrive = db.TB_ARRIVE_DETAIL.Where(p => p.PoBillNum == _detail.PoBillNum && p.IsDeleted == false && p.State == (int)ArriveState.OK && p.BillType == (int)ArriveBillType.Receive) + .GroupBy(p => new { p.PoBillNum, p.PoLine, p.PartCode, p.SubSite }).Select(p => new { ArriveSum = p.Sum(itm => itm.Qty), PoLine = p.Key.PoLine, PoBillNum = p.Key.PoBillNum, PartCode = p.Key.PartCode, Subsite = p.Key.SubSite }); + + rec.ToList().ForEach(itm => + { + if (_detail.PoBillNum == itm.PoBillNum && _detail.PoLine == itm.PoLine && _detail.PartCode == itm.PartCode) + { + _detail.ReceivedQty = itm.ReceiveSum; + } + }); + + asn.ToList().ForEach(itm => + { + if (_detail.PoBillNum == itm.PoBillNum && _detail.PoLine == itm.PoLine && _detail.PartCode == itm.PartCode) + { + _detail.ShippedQty = itm.AsSum; + } + }); + + arrive.ToList().ForEach(itm => + { + if (_detail.PoBillNum == itm.PoBillNum && _detail.PoLine == itm.PoLine && _detail.PartCode == itm.PartCode && _detail.SubSite == itm.Subsite) + { + _detail.ArriveQty = itm.ArriveSum; + } + }); + } + } + + } + return p_list; + } } } diff --git a/北京北汽/Models/CK.SCP.Models.csproj b/北京北汽/Models/CK.SCP.Models.csproj index 1ae635f..7c762e7 100644 --- a/北京北汽/Models/CK.SCP.Models.csproj +++ b/北京北汽/Models/CK.SCP.Models.csproj @@ -429,6 +429,7 @@ + diff --git a/北京北汽/Models/ScpEntities.cs b/北京北汽/Models/ScpEntities.cs index 40bfcde..94c6b1d 100644 --- a/北京北汽/Models/ScpEntities.cs +++ b/北京北汽/Models/ScpEntities.cs @@ -163,6 +163,7 @@ namespace CK.SCP.Models public virtual DbSet TB_ASK_RECEIVE { get; set; } public virtual DbSet TB_UNCOMPLETE_TEMPASK { get; set; } + public virtual DbSet V_TB_ASK_DETAIL_PO { get; set; } protected override void OnModelCreating(DbModelBuilder modelBuilder) { diff --git a/北京北汽/Models/ScpEntity/V_TB_ASK.cs b/北京北汽/Models/ScpEntity/V_TB_ASK.cs index 67bd3e3..a3dae80 100644 --- a/北京北汽/Models/ScpEntity/V_TB_ASK.cs +++ b/北京北汽/Models/ScpEntity/V_TB_ASK.cs @@ -78,6 +78,10 @@ namespace CK.SCP.Models.ScpEntity public string Month { get; set; } [NotMapped] public bool IsComplete { get; set; } + [NotMapped] + public string PartCode { get; set; } + [NotMapped] + public string PartCodeDesc { get; set; } #endregion } } diff --git a/北京北汽/Models/ScpEntity/V_TB_ASK_DETAIL_PO.cs b/北京北汽/Models/ScpEntity/V_TB_ASK_DETAIL_PO.cs new file mode 100644 index 0000000..c8643b5 --- /dev/null +++ b/北京北汽/Models/ScpEntity/V_TB_ASK_DETAIL_PO.cs @@ -0,0 +1,54 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; + +namespace CK.SCP.Models.ScpEntity +{ + public partial class V_TB_ASK_DETAIL_PO + { + [Key] + public long UID { get; set; } + public string PoBillNum { get; set; } + public int ModType { get; set; } + public string ModType_DESC { get; set; } + public string AskBillNum { get; set; } + public string VendName { get; set; } + public string VendId { get; set; } + public DateTime BeginTime { get; set; } + public int PoLine { get; set; } + public string PartCode { get; set; } + public string PartDesc { get; set; } + public string VendPartCode { get; set; } + public string PoUnit { get; set; } + public decimal Price { get; set; } + public decimal AskQty { get; set; } + public decimal ShippedQty { get; set; } + public decimal ReceivedQty { get; set; } + public decimal ArriveQty { get; set; } + public DateTime EndTime { get; set; } + public string Site_Desc { get; set; } + public string Buyer { get; set; } + public string BuyerPhone { get; set; } + [NotMapped] + public string Site { get; set; } + [NotMapped] + public string SubSite { get; set; } + + #region 查询条件 + [NotMapped] + public DateTime? TimeBegin { get; set; } + [NotMapped] + public DateTime? TimeEnd { get; set; } + [NotMapped] + public List UserInAddress { set; get; } + [NotMapped] + public List UserInSubSite { set; get; } + + [NotMapped] + public string UserName { set; get; } + #endregion + + + } +} diff --git a/北京北汽/SCP/SCP.csproj b/北京北汽/SCP/SCP.csproj index 6525f1c..c28293b 100644 --- a/北京北汽/SCP/SCP.csproj +++ b/北京北汽/SCP/SCP.csproj @@ -2925,6 +2925,7 @@ + @@ -5469,6 +5470,13 @@ SCP_ASK.aspx + + SCP_TB_ASK_DETAIL_PO.aspx + ASPXCodeBehind + + + SCP_TB_ASK_DETAIL_PO.aspx + SCP_ASN_EXCEPTION_DETAIL.aspx ASPXCodeBehind diff --git a/北京北汽/SCP/Views/PlanData/SCP_ASK.aspx b/北京北汽/SCP/Views/PlanData/SCP_ASK.aspx index 58a25c5..e145c30 100644 --- a/北京北汽/SCP/Views/PlanData/SCP_ASK.aspx +++ b/北京北汽/SCP/Views/PlanData/SCP_ASK.aspx @@ -101,29 +101,42 @@ <%-- --%> + + + + - + + - - - - + + + + + + + +