aboutsummaryrefslogtreecommitdiff
path: root/src/PriceListTools/PriceList.cs
diff options
context:
space:
mode:
authorSergey Chebotar <s.chebotar@gmail.com>2022-01-27 09:59:33 +0300
committerSergey Chebotar <s.chebotar@gmail.com>2022-01-27 09:59:33 +0300
commit8e3dff1788905c203509f866921957b027cb2643 (patch)
tree7d671c8f01be532bc013322c366bba35fcccaab0 /src/PriceListTools/PriceList.cs
parent233c91c71b5c68ed7c51f26731b491dac8423771 (diff)
Extract PriceList Base Class
Diffstat (limited to 'src/PriceListTools/PriceList.cs')
-rw-r--r--src/PriceListTools/PriceList.cs83
1 files changed, 9 insertions, 74 deletions
diff --git a/src/PriceListTools/PriceList.cs b/src/PriceListTools/PriceList.cs
index 1bf9663..5ec870e 100644
--- a/src/PriceListTools/PriceList.cs
+++ b/src/PriceListTools/PriceList.cs
@@ -1,83 +1,18 @@
using Microsoft.Office.Interop.Excel;
-using System.Collections.Generic;
-using System;
namespace RehauSku.PriceListTools
{
internal class PriceList
{
- private const string amountHeader = "Кол-во";
- private const string skuHeader = "Актуальный материал";
- private const string groupHeader = "Программа";
+ protected const string amountHeader = "Кол-во";
+ protected const string skuHeader = "Актуальный материал";
+ protected const string groupHeader = "Программа";
- public readonly Worksheet Sheet;
- public readonly string Name;
- public Dictionary<string, double> SkuAmount { get; private set; }
+ public Range amountCell { get; protected set; }
+ public Range skuCell { get; protected set; }
+ public Range groupCell { get; protected set; }
- public readonly Range amountCell;
- public readonly Range skuCell;
- public readonly Range groupCell;
-
- //public Dictionary<PriceListPosition, Range> Map { get; private set; }
-
- public PriceList(Workbook workbook)
- {
- Sheet = workbook.ActiveSheet;
- Name = workbook.Name + '\n' + Sheet.Name;
-
- amountCell = Sheet.Cells.Find(amountHeader);
- skuCell = Sheet.Cells.Find(skuHeader);
- groupCell = Sheet.Cells.Find(groupHeader);
-
- if (amountCell == null || skuCell == null || groupCell == null)
- {
- throw new ArgumentException($"Лист { Name } не распознан");
- }
-
- FillSkuAmount();
- }
-
- private void FillSkuAmount()
- {
- SkuAmount = new Dictionary<string, double>();
-
- object[,] amountColumn = Sheet.Columns[amountCell.Column].Value2;
- object[,] skuColumn = Sheet.Columns[skuCell.Column].Value2;
-
- for (int row = amountCell.Row + 1; row < amountColumn.GetLength(0); row++)
- {
- object amount = amountColumn[row, 1];
- object sku = skuColumn[row, 1];
-
- if (amount != null && (double)amount != 0)
- {
- if (SkuAmount.ContainsKey(sku.ToString()))
- SkuAmount[sku.ToString()] += (double)amount;
-
- else
- SkuAmount.Add(sku.ToString(), (double)amount);
- }
- }
- }
-
- //public void CreateMap()
- //{
- // Range amountCell = Sheet.Cells.Find(amountHeader);
- // Range skuCell = Sheet.Cells.Find(skuHeader);
- // Range groupCell = Sheet.Cells.Find(groupHeader);
-
- // headerRowNumber = amountCell.Row;
- // skuColumnNumber = skuCell.Column;
- // amountColumnNumber = amountCell.Column;
- // groupColumnNumber = groupCell.Column;
-
- // for (int row = headerRowNumber + 1; row < skuCell.Rows.Count; row++)
- // {
- // string sku =
- // }
-
- //}
+ public Worksheet Sheet { get; protected set; }
+ public string Name { get; protected set; }
}
-
-}
-
+} \ No newline at end of file