aboutsummaryrefslogtreecommitdiff
path: root/src/PriceListTools/MergeTool.cs
diff options
context:
space:
mode:
authorSerghei Cebotari <51533848+schebotar@users.noreply.github.com>2022-01-28 18:20:30 +0300
committerGitHub <noreply@github.com>2022-01-28 18:20:30 +0300
commitec1d38f2d4926ddd89dc8f17d29617ea4ddefa82 (patch)
tree9fd3a44e58693dc9bbc8d0e406ba4de21b39ec86 /src/PriceListTools/MergeTool.cs
parentd688578a46e3a3383371c1df952fa2898c828a9a (diff)
parent2ad016bb4c332ecad6d12d824a84f15616ecea38 (diff)
Merge pull request #12 from schebotar/dev
Dev
Diffstat (limited to 'src/PriceListTools/MergeTool.cs')
-rw-r--r--src/PriceListTools/MergeTool.cs62
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);
- }
}
}