aboutsummaryrefslogtreecommitdiff
path: root/src/PriceListTools/ExportTool.cs
diff options
context:
space:
mode:
Diffstat (limited to 'src/PriceListTools/ExportTool.cs')
-rw-r--r--src/PriceListTools/ExportTool.cs63
1 files changed, 15 insertions, 48 deletions
diff --git a/src/PriceListTools/ExportTool.cs b/src/PriceListTools/ExportTool.cs
index 8bf274a..bfb3d8a 100644
--- a/src/PriceListTools/ExportTool.cs
+++ b/src/PriceListTools/ExportTool.cs
@@ -7,7 +7,7 @@ namespace RehauSku.PriceListTools
{
internal class ExportTool : PriceListTool
{
- private Dictionary<string, double> SkuAmount { get; set; }
+ private Dictionary<Position, double> PositionAmount;
private Range Selection;
public void TryGetSelection()
@@ -22,59 +22,23 @@ namespace RehauSku.PriceListTools
public void FillTarget()
{
- ExcelApp.ScreenUpdating = false;
GetSelected();
- FillColumn(SkuAmount, TargetFile.amountCell.Column);
- FilterByAmount();
- ExcelApp.ScreenUpdating = true;
-
- Forms.Dialog.SaveWorkbookAs();
- }
- private void FillColumn(IEnumerable<KeyValuePair<string, double>> dictionary, int column)
- {
- List<KeyValuePair<string, double>> missing = new List<KeyValuePair<string, double>>();
-
- foreach (var kvp in dictionary)
+ foreach (var kvp in PositionAmount)
{
- Range cell = TargetFile.skuCell.EntireColumn.Find(kvp.Key);
-
- if (cell == null)
- {
- missing.Add(kvp);
- }
-
- else
- {
- Range sumCell = TargetFile.Sheet.Cells[cell.Row, column];
-
- if (sumCell.Value2 == null)
- {
- sumCell.Value2 = kvp.Value;
- }
-
- else
- {
- sumCell.Value2 += kvp.Value;
- }
- }
+ FillColumnsWithDictionary(kvp, TargetFile.amountCell.Column);
}
- if (missing.Count > 0)
- {
- System.Windows.Forms.MessageBox.Show
- ($"{missing.Count} артикулов отсутствует в таблице заказов {RegistryUtil.PriceListPath} Попробовать найти новый вариант?",
- "Отсутствует позиция в конечной таблице заказов",
- System.Windows.Forms.MessageBoxButtons.YesNo,
- System.Windows.Forms.MessageBoxIcon.Information);
- }
- }
+ FilterByAmount();
+ Forms.Dialog.SaveWorkbookAs();
+ }
private void GetSelected()
{
- object[,] cells = Selection.Value2;
- SkuAmount = new Dictionary<string, double>();
+ object[,] cells = Selection.Value2;
+ PositionAmount = new Dictionary<Position, double>();
+
int rowsCount = Selection.Rows.Count;
for (int row = 1; row <= rowsCount; row++)
@@ -111,13 +75,16 @@ namespace RehauSku.PriceListTools
continue;
}
- if (SkuAmount.ContainsKey(sku))
+ Position position = new Position(null, sku, null);
+
+ if (PositionAmount.ContainsKey(position))
{
- SkuAmount[sku] += amount.Value;
+ PositionAmount[position] += amount.Value;
}
+
else
{
- SkuAmount.Add(sku, amount.Value);
+ PositionAmount.Add(position, amount.Value);
}
}
}