From e22a2fbf18db51433987d155e8d84a05129e0877 Mon Sep 17 00:00:00 2001 From: qian Date: Wed, 10 Jan 2024 16:00:14 +0800 Subject: [PATCH] =?UTF-8?q?=E5=86=B2=E5=8E=8B=E4=BB=B6=E6=8E=A5=E5=8F=A3?= =?UTF-8?q?=20=E4=BB=B7=E6=A0=BC=20=E5=87=80=E4=BB=B7=20=E6=9B=B4=E6=96=B0?= =?UTF-8?q?=20=E4=BB=A5=E5=8F=8Ascp=20=E7=9B=B8=E5=BA=94=E5=8F=96=E5=80=BC?= =?UTF-8?q?=E8=A7=84=E5=88=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Controller/SCP_PO_CONTROLLER.cs | 43 +++++++++---------- UniApiGroup/Controller/NetPriceController.cs | 4 ++ .../Controller/OdbcApiQadController.cs | 32 ++++++++++++-- UniApiGroup/Controller/PriceController.cs | 14 +++--- 4 files changed, 60 insertions(+), 33 deletions(-) diff --git a/Controller/SCP_PO_CONTROLLER.cs b/Controller/SCP_PO_CONTROLLER.cs index a883972..2960c3a 100644 --- a/Controller/SCP_PO_CONTROLLER.cs +++ b/Controller/SCP_PO_CONTROLLER.cs @@ -1471,7 +1471,7 @@ namespace CK.SCP.Controller { ErrorList.Add(string.Format("订单编号【{0}】行号【{1}】已经存在,请更换行号!", p_excel.订单编号, p_excel.行号)); } - var checkcount = db.TB_PRICE.Where(p => p.PartCode == p_excel.零件号 && p.Site == site && p.VendId == p_excel.供应商编号 && p.StartTime <= DateTime.Now && DateTime.Now <= p.EndTime).ToList(); + var checkcount = db.TB_PRICE.Where(p => p.PartCode == p_excel.零件号 && p.Site == site && p.VendId == p_excel.供应商编号 && p.StartTime <= DateTime.Now && DateTime.Now <= p.EndTime && p.Extend3 != "D").ToList(); if (checkcount.Count == 0) { ErrorList.Add(string.Format("零件名称【{0}】供应编码【{1}】价格表没有维护信息!", p_excel.零件号, p_excel.供应商编号)); @@ -2230,7 +2230,7 @@ namespace CK.SCP.Controller { ErrorList.Add(string.Format("物料号码{0}的BOM版本号填写错误", p_excel.物料号码)); } - var price = db.TB_NetPrice.Count(p => p.PartCode == p_excel.物料号码 && p.VendId == p_excel.供应商编号 && p.EndTime > DateTime.Now); + var price = db.TB_NetPrice.Count(p => p.PartCode == p_excel.物料号码 && p.VendId == p_excel.供应商编号 && p.EndTime > DateTime.Now && p.StartTime p.PartCode == p_excel.物料号码 && p.VendId == p_excel.供应商编号 && p.EndTime > DateTime.Now); + var price = db.TB_NetPrice.Count(p => p.PartCode == p_excel.物料号码 && p.VendId == p_excel.供应商编号 && p.EndTime > DateTime.Now && p.StartTime < DateTime.Now && p.Extend3 != "D"); if (price == 0) { ErrorList.Add(string.Format("物料号码{0}不存在净价", p_excel.物料号码)); @@ -6808,7 +6808,7 @@ namespace CK.SCP.Controller _detail.EndTime = p_PoBillTime; _detail.PlanQty = p_Qty; _detail.CreateUser = str; - var _price = db.TB_NetPrice.Count(t => t.PartCode == _detail.PartCode.ToUpper() && t.VendId == p_Po.VendId); + var _price = db.TB_NetPrice.Count(t => t.PartCode == _detail.PartCode.ToUpper() && t.VendId == p_Po.VendId && t.Extend3 != "D"); if (_price == 0) { var _price1 = db.TA_PART.SingleOrDefault(t => t.PartCode == _detail.PartCode.ToUpper()); @@ -6816,12 +6816,11 @@ namespace CK.SCP.Controller } else { - var _price2 = db.TB_NetPrice.Where(t => t.PartCode == _detail.PartCode.ToUpper()&&t.VendId==p_Po.VendId).Select(r => r.EndTime).Max(); - var _price8 = db.TB_NetPrice.Where(t => t.PartCode == _detail.PartCode.ToUpper() && t.VendId == p_Po.VendId).Select(r => r.StartTime).Max(); DateTime dateTime = DateTime.Now; - if (_price2 > dateTime || _price2 == dateTime) + int count = db.TB_NetPrice.Count(t => t.PartCode == _detail.PartCode.ToUpper() && t.StartTime dateTime && t.VendId == p_Po.VendId && t.Extend3 != "D"); + if (count > 0) { - var _price3 = db.TB_NetPrice.FirstOrDefault(t => t.PartCode == _detail.PartCode.ToUpper() && t.StartTime == _price8 && t.VendId == p_Po.VendId); + var _price3 = db.TB_NetPrice.Where(t => t.PartCode == _detail.PartCode.ToUpper() && t.StartTime < dateTime && t.EndTime > dateTime && t.VendId == p_Po.VendId && t.Extend3 != "D").OrderByDescending(u=>u.UID).FirstOrDefault(); _detail.Price = _price3.Amt; } else @@ -6859,7 +6858,7 @@ namespace CK.SCP.Controller _detail.EndTime = p_PoBillTime; _detail.PlanQty = p_Qty; _detail.CreateUser = str; - var _price = db.TB_NetPrice.Count(t => t.PartCode == _detail.PartCode.ToUpper() && t.VendId == p_Po.VendId); + var _price = db.TB_NetPrice.Count(t => t.PartCode == _detail.PartCode.ToUpper() && t.VendId == p_Po.VendId && t.Extend3!="D"); if (_price == 0) { var _price1 = db.TA_PART.SingleOrDefault(t => t.PartCode == _detail.PartCode.ToUpper()); @@ -6867,12 +6866,12 @@ namespace CK.SCP.Controller } else { - var _price2 = db.TB_NetPrice.Where(t => t.PartCode == _detail.PartCode.ToUpper() && t.VendId == p_Po.VendId).Select(r => r.EndTime).Max(); - var _price8 = db.TB_NetPrice.Where(t => t.PartCode == _detail.PartCode.ToUpper() && t.VendId == p_Po.VendId).Select(r => r.StartTime).Max(); + DateTime dateTime = DateTime.Now; - if (_price2 > dateTime || _price2 == dateTime) + int count = db.TB_NetPrice.Count(t => t.PartCode == _detail.PartCode.ToUpper() && t.StartTime < dateTime && t.EndTime > dateTime && t.Extend3 != "D" && t.VendId == p_Po.VendId); + if (count > 0) { - var _price3 = db.TB_NetPrice.FirstOrDefault(t => t.PartCode == _detail.PartCode.ToUpper() && t.StartTime == _price8 && t.VendId == p_Po.VendId); + var _price3 = db.TB_NetPrice.Where(t => t.PartCode == _detail.PartCode.ToUpper() && t.StartTime < dateTime && t.EndTime > dateTime && t.Extend3 != "D" && t.VendId == p_Po.VendId).OrderByDescending(u=>u.UID).FirstOrDefault(); _detail.Price = _price3.Amt; } else @@ -7200,7 +7199,7 @@ namespace CK.SCP.Controller _detail.EndTime = p_PoBillTime; _detail.PlanQty = p_Qty; _detail.CreateUser = str; - var _price = db.TB_PRICE.Count(t => t.PartCode == _detail.PartCode.ToUpper() && t.VendId == p_Po.VendId); + var _price = db.TB_PRICE.Count(t => t.PartCode == _detail.PartCode.ToUpper() && t.VendId == p_Po.VendId && t.Extend3 != "D"); if (_price == 0) { var _price1 = db.TA_PART.SingleOrDefault(t => t.PartCode == _detail.PartCode.ToUpper()); @@ -7208,12 +7207,10 @@ namespace CK.SCP.Controller } else { - var _price2 = db.TB_PRICE.Where(t => t.PartCode == _detail.PartCode.ToUpper()&&t.VendId==p_Po.VendId).Select(r => r.EndTime).Max(); - var _price8 = db.TB_PRICE.Where(t => t.PartCode == _detail.PartCode.ToUpper() && t.VendId == p_Po.VendId).Select(r => r.StartTime).Max(); - DateTime dateTime = DateTime.Now; - if(_price2> dateTime|| _price2 ==dateTime) + int count1 = db.TB_PRICE.Count(t => t.PartCode == _detail.PartCode.ToUpper() && t.EndTime > DateTime.Now && t.StartTime < DateTime.Now && t.VendId == p_Po.VendId && t.Extend3 != "D"); + if (count1 != 0) { - var _price3 = db.TB_PRICE.Where(t => t.PartCode == _detail.PartCode.ToUpper() && t.EndTime == _price2 && t.VendId == p_Po.VendId).OrderByDescending(o => o.UID).FirstOrDefault(); //获取最新采购的价格 + var _price3 = db.TB_PRICE.Where(t => t.PartCode == _detail.PartCode.ToUpper() && t.EndTime > DateTime.Now && t.StartTime < DateTime.Now && t.VendId == p_Po.VendId && t.Extend3 != "D").OrderByDescending(o => o.UID).FirstOrDefault(); //获取最新采购的价格 _detail.Price = _price3.Amt; } else @@ -7248,7 +7245,7 @@ namespace CK.SCP.Controller _detail.EndTime = p_PoBillTime; _detail.PlanQty = p_Qty; _detail.CreateUser = str; - var _price = db.TB_PRICE.Count(t => t.PartCode == _detail.PartCode.ToUpper() && t.VendId == p_Po.VendId); + var _price = db.TB_PRICE.Count(t => t.PartCode == _detail.PartCode.ToUpper() && t.VendId == p_Po.VendId && t.Extend3!="D"); if (_price == 0) { var _price1 = db.TA_PART.SingleOrDefault(t => t.PartCode == _detail.PartCode.ToUpper()); @@ -7256,12 +7253,12 @@ namespace CK.SCP.Controller } else { - var _price2 = db.TB_PRICE.Where(t => t.PartCode == _detail.PartCode.ToUpper() && t.VendId == p_Po.VendId).Select(r => r.EndTime).Max(); - var _price8 = db.TB_PRICE.Where(t => t.PartCode == _detail.PartCode.ToUpper() && t.VendId == p_Po.VendId).Select(r => r.StartTime).Max(); + var _price2 = db.TB_PRICE.Where(t => t.PartCode == _detail.PartCode.ToUpper() && t.VendId == p_Po.VendId && t.Extend3 != "D").Select(r => r.EndTime).Max(); + var _price8 = db.TB_PRICE.Where(t => t.PartCode == _detail.PartCode.ToUpper() && t.VendId == p_Po.VendId && t.Extend3 != "D").Select(r => r.StartTime).Max(); DateTime dateTime = DateTime.Now; if (_price2 > dateTime || _price2 == dateTime) { - var _price3 = db.TB_PRICE.FirstOrDefault(t => t.PartCode == _detail.PartCode.ToUpper() && t.EndTime == _price2 && t.VendId == p_Po.VendId); + var _price3 = db.TB_PRICE.FirstOrDefault(t => t.PartCode == _detail.PartCode.ToUpper() && t.EndTime == _price2 && t.VendId == p_Po.VendId && t.Extend3 != "D"); _detail.Price = _price3.Amt; } else diff --git a/UniApiGroup/Controller/NetPriceController.cs b/UniApiGroup/Controller/NetPriceController.cs index 1c5ae8a..79649f1 100644 --- a/UniApiGroup/Controller/NetPriceController.cs +++ b/UniApiGroup/Controller/NetPriceController.cs @@ -60,6 +60,10 @@ namespace CK.SCP.UniApi.Controller /// 批次 /// + /// + /// 操作类型 + /// + public string DI_OPERTYPE { get; set; } } } } diff --git a/UniApiGroup/Controller/OdbcApiQadController.cs b/UniApiGroup/Controller/OdbcApiQadController.cs index c31a9a2..d366706 100644 --- a/UniApiGroup/Controller/OdbcApiQadController.cs +++ b/UniApiGroup/Controller/OdbcApiQadController.cs @@ -1224,6 +1224,7 @@ namespace CK.SCP.GrupUniApi.Controller List list = ChangKeTec.Utils.ListHelper.DataTableToList(b); var PriceList = new List(); + var PriceListUpdate = new List(); var xxMaxbath = new List(); foreach (var itm in list) { @@ -1250,8 +1251,19 @@ namespace CK.SCP.GrupUniApi.Controller EndTime = itm.validityEndPeriod, }; _price.Amt = itm.netPrice; + _price.Extend3 = itm.DI_OPERTYPE; PriceList.Add(_price); } + //ڸ + else + { + var enty = scpdb.TB_NetPrice.First(p => p.PartCode == itm.MTLNO.ToUpper() && p.VendId == itm.vendorNO + && p.StartTime == itm.validityStartPeriod && p.EndTime == itm.validityEndPeriod); + enty.Amt = itm.netPrice; + enty.Remarks = itm.purOrg; + enty.Extend3 = itm.DI_OPERTYPE; + PriceListUpdate.Add(enty); + } } if (PriceList.Count == 0) { @@ -1262,6 +1274,7 @@ namespace CK.SCP.GrupUniApi.Controller item.MaxdibatchNO = item.MaxdibatchNO + list.Count; item.Remark = ((int)UniApiState.ʧ).ToString(); scpdb.TB_NetPrice.AddOrUpdate(PriceList.ToArray()); + scpdb.TB_NetPrice.AddOrUpdate(u =>u.UID ,PriceListUpdate.ToArray()); Console.WriteLine($"²ɹݣ{PriceList.Count}"); } /// @@ -1272,13 +1285,14 @@ namespace CK.SCP.GrupUniApi.Controller /// private static void UpdatePrice(UniApiEntities idb, ScpEntities scpdb, xxerp_MaxbatchNO item) { - var max = idb.xxDiMaxes.OrderByDescending(r => r.Di_Batchno_NETprice).FirstOrDefault(); + var max = idb.xxDiMaxes.OrderByDescending(r => r.Di_Batchno_price).FirstOrDefault(); int a = max.Di_Batchno_price; var FATCTORY = scpdb.TB_FACTORY.FirstOrDefault(); DataTable b = PriceController.GetInvBatchPrice(a, FATCTORY.FactoryId); List list = ChangKeTec.Utils.ListHelper.DataTableToList(b); var xxMaxbath = new List(); var PriceList = new List(); + List _PRICEs = new List(); foreach (var itm in list) { var maxlist1 = new xxDiMaxes @@ -1290,9 +1304,10 @@ namespace CK.SCP.GrupUniApi.Controller }; xxMaxbath.Add(maxlist1); - var _part = scpdb.TB_PRICE.Count(p => p.PartCode == itm.MTLNO.ToUpper() && p.VendId == itm.vendorNO + var _part = scpdb.TB_PRICE.FirstOrDefault(p => p.PartCode == itm.MTLNO.ToUpper() && p.VendId == itm.vendorNO && p.StartTime == itm.validityStartPeriod && p.EndTime == itm.validityEndPeriod); - if (_part == 0) + // + if (_part == null) { var _price = new TB_PRICE { @@ -1304,8 +1319,16 @@ namespace CK.SCP.GrupUniApi.Controller EndTime = itm.validityEndPeriod, }; _price.Amt = decimal.Parse(itm.purchasePrice); + _price.Extend3 = itm.DI_OPERTYPE; PriceList.Add(_price); } + // жͽи + else + { + _part.Amt = decimal.Parse(itm.purchasePrice); + _part.Extend3 = itm.DI_OPERTYPE; + _PRICEs.Add(_part); + } } if (PriceList.Count == 0) { @@ -1316,7 +1339,8 @@ namespace CK.SCP.GrupUniApi.Controller item.MaxdibatchNO = item.MaxdibatchNO + list.Count; //item.Remark = ((int)UniApiState.ʧ).ToString(); scpdb.TB_PRICE.AddOrUpdate(PriceList.ToArray()); - Console.WriteLine($"²ɹ۸ݣ{PriceList.Count}"); + scpdb.TB_PRICE.AddOrUpdate(qa=> qa.UID,_PRICEs.ToArray()); + Console.WriteLine($"²ɹ۸ݣ{PriceList.Count + _PRICEs.Count }"); } /// /// ¹Ӧ diff --git a/UniApiGroup/Controller/PriceController.cs b/UniApiGroup/Controller/PriceController.cs index e51c22b..d5f0479 100644 --- a/UniApiGroup/Controller/PriceController.cs +++ b/UniApiGroup/Controller/PriceController.cs @@ -33,19 +33,23 @@ namespace CK.SCP.UniApi.Controller public class PURPriceDealMidTab { /// - /// 工厂 + /// 操作类型 + /// + public string DI_OPERTYPE { get; set; } + /// + /// 操作批次 /// /// public int DI_BATCHNO { get; set; } public string vendorNO { get; set; } /// - /// 存储地点 + /// 物料 /// public string MTLNO { get; set; } /// - /// 物料号 + /// 工厂 /// public string plant { get; set; } @@ -56,9 +60,7 @@ namespace CK.SCP.UniApi.Controller public DateTime validityStartPeriod { get; set; } public DateTime validityEndPeriod { get; set; } - /// - /// 批次 - /// + } }