diff options
author | Serghei Cebotari <51533848+schebotar@users.noreply.github.com> | 2022-01-28 18:20:30 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-01-28 18:20:30 +0300 |
commit | ec1d38f2d4926ddd89dc8f17d29617ea4ddefa82 (patch) | |
tree | 9fd3a44e58693dc9bbc8d0e406ba4de21b39ec86 /src/PriceListTools/MergeTool.cs | |
parent | d688578a46e3a3383371c1df952fa2898c828a9a (diff) | |
parent | 2ad016bb4c332ecad6d12d824a84f15616ecea38 (diff) |
Merge pull request #12 from schebotar/dev
Dev
Diffstat (limited to 'src/PriceListTools/MergeTool.cs')
-rw-r--r-- | src/PriceListTools/MergeTool.cs | 62 |
1 files changed, 11 insertions, 51 deletions
diff --git a/src/PriceListTools/MergeTool.cs b/src/PriceListTools/MergeTool.cs index 493f8a8..0d3e8eb 100644 --- a/src/PriceListTools/MergeTool.cs +++ b/src/PriceListTools/MergeTool.cs @@ -1,65 +1,25 @@ -using Microsoft.Office.Interop.Excel; -using System; +using System.Collections.Generic; +using System.Linq; namespace RehauSku.PriceListTools { - internal class MergeTool : AbstractPriceListTool, IDisposable + internal class MergeTool : PriceListTool { - public override void FillPriceList() - { - PriceListSheet offer = NewPriceList.OfferSheet; - offer.Sheet.Activate(); + public List<Source> SourceFiles; - int exportedValues = 0; + public void FillTarget() + { + ExcelApp.ScreenUpdating = false; - foreach (var priceList in sourcePriceLists) + foreach (Source source in SourceFiles) { - foreach (var sheet in priceList.Sheets) - { - if (sheet.SkuAmount.Count == 0) - continue; - - foreach (var kvp in sheet.SkuAmount) - { - Range cell = offer.Sheet.Columns[offer.skuColumnNumber].Find(kvp.Key); - - if (cell == null) - { - System.Windows.Forms.MessageBox.Show - ($"Артикул {kvp.Key} отсутствует в таблице заказов {RegistryUtil.PriceListPath}", - "Отсутствует позиция в конечной таблице заказов", - System.Windows.Forms.MessageBoxButtons.OK, - System.Windows.Forms.MessageBoxIcon.Information); - } - - else - { - Range sumCell = offer.Sheet.Cells[cell.Row, offer.amountColumnNumber]; - - if (sumCell.Value2 == null) - sumCell.Value2 = kvp.Value; - else - sumCell.Value2 += kvp.Value; - - exportedValues++; - } - } - } + FillColumnsWithDictionary(source.PositionAmount, TargetFile.amountCell.Column); } - AutoFilter filter = offer.Sheet.AutoFilter; - int firstFilterColumn = filter.Range.Column; - - filter.Range.AutoFilter(offer.amountColumnNumber - firstFilterColumn + 1, "<>"); - offer.Sheet.Range["A1"].Activate(); - AddIn.Excel.StatusBar = $"Экспортировано {exportedValues} строк из {sourcePriceLists.Count} файлов"; + FilterByAmount(); + ExcelApp.ScreenUpdating = true; Forms.Dialog.SaveWorkbookAs(); } - - public void Dispose() - { - GC.SuppressFinalize(this); - } } } |