From ef4b6cc5e1135b18162d3ed8f67221cc9c66c2e5 Mon Sep 17 00:00:00 2001 From: Administrator Date: Tue, 25 Jan 2022 10:17:07 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E7=89=88=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .vs/VSWorkspaceState.json | 2 +- .../InvoiceSettledDetailDiffExportService.cs | 51 +++++++++++-------- 2 files changed, 31 insertions(+), 22 deletions(-) diff --git a/.vs/VSWorkspaceState.json b/.vs/VSWorkspaceState.json index 5f13e167..3a989def 100644 --- a/.vs/VSWorkspaceState.json +++ b/.vs/VSWorkspaceState.json @@ -2,6 +2,6 @@ "ExpandedNodes": [ "" ], - "SelectedNode": "\\SettleAccount.sln (src\\Modules\\SettleAccount\\SettleAccount.sln)", + "SelectedNode": "\\SettleAccount.sln (src\\SettleAccount.sln)", "PreviewInSolutionExplorer": false } \ No newline at end of file diff --git a/src/Modules/SettleAccount/src/SettleAccount.Job/Services/Report/InvoiceSettledDetailDiffExportService.cs b/src/Modules/SettleAccount/src/SettleAccount.Job/Services/Report/InvoiceSettledDetailDiffExportService.cs index 3d90e200..6a65ca53 100644 --- a/src/Modules/SettleAccount/src/SettleAccount.Job/Services/Report/InvoiceSettledDetailDiffExportService.cs +++ b/src/Modules/SettleAccount/src/SettleAccount.Job/Services/Report/InvoiceSettledDetailDiffExportService.cs @@ -62,14 +62,35 @@ namespace SettleAccount.Job.Services var rangeList = _erpdapperRepository.GetSapList(_list, version, true); - var erpPriceList = _ls.Where(p => p.ParentSapMaterialCode != p.SapMaterialCode).GroupBy(p => new { p.ParentSapMaterialCode, p.ChassisNumber, p.KENNCode }) - .Select(p => new { ParentSapMaterialCode = p.Key.ParentSapMaterialCode, ChassisNumber = p.Key.ChassisNumber, KENNCode = p.Key.KENNCode, Price = p.Sum(itm => itm.InvoicePrice) }).ToList(); - + // var erpPriceList= _erpdapperRepository.GetErpPartCodePriceList(version); var diffList = _erpdapperRepository.GetSettleInvoiceDiff(version); if (_ls.Count > 0) { + + + foreach (var itm in diffList) + { + var _first = _ls.FirstOrDefault(p => p.MaterialCode == itm.MaterialCode); + if (_first != null) + { + _first.InvoiceQty = _first.SettledQty + itm.DiffQty; + _first.DiffSettleInvQty = itm.DiffQty; + } + } + + foreach (var itm in _ls) + { + itm.InvocieAmt = Math.Round(itm.InvoiceQty * itm.InvoicePrice,2); + itm.DiffPrice = itm.Price - itm.InvoicePrice; + } + + var erpPriceList = _ls.Where(p => p.ParentSapMaterialCode != p.SapMaterialCode).GroupBy(p => new { p.ParentSapMaterialCode, p.ChassisNumber, p.KENNCode }) + .Select(p => new { ParentSapMaterialCode = p.Key.ParentSapMaterialCode, ChassisNumber = p.Key.ChassisNumber, KENNCode = p.Key.KENNCode, Price = p.Sum(itm => itm.InvocieAmt) }).ToList(); + + + var rangList = from itm1 in rangeList join itm2 in erpPriceList on new { itm1.ParentSapMaterialCode, itm1.KENNCode, itm1.ChassisNumber } equals new { itm2.ParentSapMaterialCode, itm2.KENNCode, itm2.ChassisNumber } into temp1 @@ -95,29 +116,17 @@ namespace SettleAccount.Job.Services DiffSettleFisQty = 0, DiffSettleInvQty = 0, InvoiceQty = 1, - InvoicePrice =itm1==null?0: tm1.Price, - InvocieAmt = itm1 == null ?0: tm1.Price, - SettleAmt = itm1 == null ?0: tm1.Price, - DiffPrice = itm1 == null ?0-itm1.Price: tm1.Price-itm1.Price + InvoicePrice = itm1 == null ? 0 : tm1.Price, + InvocieAmt = itm1 == null ? 0 : tm1.Price , + SettleAmt = itm1 == null ? 0 : tm1.Price, + DiffPrice = itm1 == null ? 0 - itm1.Price : tm1.Price - itm1.Price }; rangeList = rangList.ToList(); - foreach (var itm in diffList) - { - var _first = _ls.FirstOrDefault(p => p.MaterialCode == itm.MaterialCode); - if (_first != null) - { - _first.InvoiceQty = _first.SettledQty + itm.DiffQty; - _first.DiffSettleInvQty = itm.DiffQty; - } - } - foreach (var itm in _ls) - { - itm.InvocieAmt = Math.Round(itm.InvoiceQty * itm.InvoicePrice,2); - itm.DiffPrice = itm.Price - itm.InvoicePrice; - } + + _ls.AddRange(rangeList); //var list1 = _ls.GroupBy(p => new { p.ChassisNumber, p.MaterialCode, p.SettleReadyQty }).Select(p => new { SettleQty = p.Key.SettleReadyQty, MaterialCode = p.Key.MaterialCode, ChassisNumber = p.Key.ChassisNumber, Qty = p.Sum(itm => itm.Qty) }).Where(p => p.Qty > 1).ToList();