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.cs99
1 files changed, 0 insertions, 99 deletions
diff --git a/src/PriceListTools/ExportTool.cs b/src/PriceListTools/ExportTool.cs
deleted file mode 100644
index c21e9b1..0000000
--- a/src/PriceListTools/ExportTool.cs
+++ /dev/null
@@ -1,99 +0,0 @@
-using Microsoft.Office.Interop.Excel;
-using System;
-using System.Collections.Generic;
-using RhSolutions.Interface;
-
-namespace RhSolutions.PriceListTools
-{
- internal class ExportTool : ToolBase
- {
- private Dictionary<Product, double> PositionAmount;
- private readonly Range Selection;
-
- public ExportTool()
- {
- Selection = ExcelApp.Selection;
- GetSelected();
-
- if (PositionAmount.Count == 0)
- {
- throw new Exception("В выделенном диапазоне не найдены позиции для экспорта");
- }
- }
-
- public override void FillTarget()
- {
- using (ProgressBar = new ProgressBar("Заполняю строки...", PositionAmount.Count))
- using (ResultBar = new ResultBar())
- {
- foreach (var kvp in PositionAmount)
- {
- FillPositionAmountToColumns(kvp, TargetFile.AmountCell.Column);
- ProgressBar.Update();
- }
-
- FilterByAmount();
- ResultBar.Update();
- }
- }
-
- private void GetSelected()
- {
- object[,] cells = Selection.Value2;
- PositionAmount = new Dictionary<Product, double>();
-
- int rowsCount = Selection.Rows.Count;
-
- for (int row = 1; row <= rowsCount; row++)
- {
- if (cells[row, 1] == null || cells[row, 2] == null)
- continue;
-
- string sku = null;
- double? amount = null;
-
- for (int column = 1; column <= 2; column++)
- {
- object current = cells[row, column];
-
- if (Sku.TryParse(current.ToString(), out Sku rauSku))
- {
- sku = rauSku.ToString();
- }
-
- else if (current.GetType() == typeof(string)
- && double.TryParse(current.ToString(), out _))
- {
- amount = double.Parse((string)current);
- }
-
- else if (current.GetType() == typeof(double))
- {
- amount = (double)current;
- }
- }
-
- if (sku == null || amount == null)
- {
- continue;
- }
-
- Product position = new Product
- {
- ProductSku = sku
- };
-
- if (PositionAmount.ContainsKey(position))
- {
- PositionAmount[position] += amount.Value;
- }
-
- else
- {
- PositionAmount.Add(position, amount.Value);
- }
- }
- }
- }
-}
-