aboutsummaryrefslogtreecommitdiff
path: root/src/PriceListTools/CombineTool.cs
diff options
context:
space:
mode:
Diffstat (limited to 'src/PriceListTools/CombineTool.cs')
-rw-r--r--src/PriceListTools/CombineTool.cs52
1 files changed, 24 insertions, 28 deletions
diff --git a/src/PriceListTools/CombineTool.cs b/src/PriceListTools/CombineTool.cs
index 39d3b98..f6eac8a 100644
--- a/src/PriceListTools/CombineTool.cs
+++ b/src/PriceListTools/CombineTool.cs
@@ -1,56 +1,52 @@
using Microsoft.Office.Interop.Excel;
-using System;
+using System.Collections.Generic;
+using System.Linq;
namespace RehauSku.PriceListTools
{
internal class CombineTool : PriceListTool
{
- public override void FillTarget()
+ public List<Source> SourceFiles;
+
+ public void FillTarget()
{
- int exportedValues = 0;
+ ExcelApp.ScreenUpdating = false;
+ FillAmountColumn(SourceFiles.Select(x => x.SkuAmount).ToArray());
+ AddAndFillSourceColumns();
+ FilterByAmount();
+ ExcelApp.ScreenUpdating = true;
- foreach (var sheet in sourcePriceLists)
+ Forms.Dialog.SaveWorkbookAs();
+ }
+
+ private void AddAndFillSourceColumns()
+ {
+ foreach (var source in SourceFiles)
{
- if (sheet.SkuAmount.Count == 0)
+ if (source.SkuAmount.Count == 0)
continue;
- NewPriceList.Sheet.Columns[NewPriceList.amountCell.Column]
+ TargetFile.Sheet.Columns[TargetFile.amountCell.Column]
.EntireColumn
.Insert(XlInsertShiftDirection.xlShiftToRight, XlInsertFormatOrigin.xlFormatFromRightOrBelow);
- foreach (var kvp in sheet.SkuAmount)
+ TargetFile.Sheet.Cells[TargetFile.amountCell.Row, TargetFile.amountCell.Column - 1].Value2 = $"{source.Name}";
+
+ foreach (var kvp in source.SkuAmount)
{
- Range cell = NewPriceList.Sheet.Columns[NewPriceList.skuCell.Column].Find(kvp.Key);
+ Range cell = TargetFile.Sheet.Columns[TargetFile.skuCell.Column].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);
+ continue;
}
else
{
- NewPriceList.Sheet.Cells[cell.Row, NewPriceList.amountCell.Column - 1].Value2 = kvp.Value;
- Range sumCell = NewPriceList.Sheet.Cells[cell.Row, NewPriceList.amountCell.Column];
-
- if (sumCell.Value2 == null)
- sumCell.Value2 = kvp.Value;
- else
- sumCell.Value2 += kvp.Value;
-
- exportedValues++;
+ TargetFile.Sheet.Cells[cell.Row, TargetFile.amountCell.Column - 1].Value2 = kvp.Value;
}
-
- NewPriceList.Sheet.Cells[NewPriceList.amountCell.Row, NewPriceList.amountCell.Column - 1].Value2 = $"{sheet.Name}";
}
}
-
- FilterByAmount();
- AddIn.Excel.StatusBar = $"Экспортировано {exportedValues} строк из {sourcePriceLists.Count} файлов";
- Forms.Dialog.SaveWorkbookAs();
}
}
}