diff options
author | Sergey Chebotar <s.chebotar@gmail.com> | 2022-02-02 18:02:17 +0300 |
---|---|---|
committer | Sergey Chebotar <s.chebotar@gmail.com> | 2022-02-02 18:02:17 +0300 |
commit | cb5fee18918b5a29ccff23a0fb74bb13151f2e42 (patch) | |
tree | f72669b2a3ff4d191f2a44f483fcaf1f26d27b28 /src/PriceListTools/PriceListTool.cs | |
parent | 7f3487d9132bf9b9e83a202c0ce04230926d56fd (diff) |
Rename Abstract tool
Diffstat (limited to 'src/PriceListTools/PriceListTool.cs')
-rw-r--r-- | src/PriceListTools/PriceListTool.cs | 175 |
1 files changed, 0 insertions, 175 deletions
diff --git a/src/PriceListTools/PriceListTool.cs b/src/PriceListTools/PriceListTool.cs deleted file mode 100644 index 0a82a41..0000000 --- a/src/PriceListTools/PriceListTool.cs +++ /dev/null @@ -1,175 +0,0 @@ -using ExcelDna.Integration; -using Microsoft.Office.Interop.Excel; -using System; -using System.Collections.Generic; -using System.Windows.Forms; -using Application = Microsoft.Office.Interop.Excel.Application; - -namespace RehauSku.PriceListTools -{ - internal abstract class PriceListTool - { - protected private Application ExcelApp = (Application)ExcelDnaUtil.Application; - protected private Target TargetFile; - - public void OpenNewPrice() - { - Workbook wb = ExcelApp.Workbooks.Open(RegistryUtil.PriceListPath); - - try - { - TargetFile = new Target(wb); - } - - catch (Exception ex) - { - MessageBox.Show - (ex.Message, - "Ошибка открытия шаблонного прайс-листа", - MessageBoxButtons.OK, - MessageBoxIcon.Information); - wb.Close(); - throw ex; - } - } - - protected private void FillColumnsWithDictionary(KeyValuePair<Position, double> positionAmount, params int[] columns) - { - int? row = GetPositionRow(positionAmount.Key.Sku, positionAmount.Key.Group, TargetFile.skuCell.Column); - - if (row != null) - { - foreach (int column in columns) - { - Range sumCell = TargetFile.Sheet.Cells[row, column]; - - if (sumCell.Value2 == null) - { - sumCell.Value2 = positionAmount.Value; - } - - else - { - sumCell.Value2 += positionAmount.Value; - } - } - } - - else - { - string sku = positionAmount.Key.Sku.Substring(1, 6); - - row = GetPositionRow(sku, positionAmount.Key.Group, TargetFile.skuCell.Column); - - if (row != null) - { - foreach (int column in columns) - { - Range amountCell = TargetFile.Sheet.Cells[row, column]; - - if (amountCell.Value2 == null) - { - amountCell.Value2 = positionAmount.Value; - } - - else - { - amountCell.Value2 += positionAmount.Value; - } - - Range oldSkuCell = TargetFile.Sheet.Cells[row, TargetFile.oldSkuCell.Column]; - oldSkuCell.Value2 = positionAmount.Key.Sku; - } - } - - else - { - FillMissing(positionAmount, columns); - } - } - } - - protected private void FillMissing(KeyValuePair<Position, double> positionAmount, params int[] columns) - { - Range foundCell = TargetFile.oldSkuCell.EntireColumn.Find(positionAmount.Key.Sku); - int row; - - if (foundCell == null) - { - row = TargetFile.Sheet.Cells[TargetFile.Sheet.Rows.Count, TargetFile.skuCell.Column] - .End[XlDirection.xlUp] - .Row + 1; - - TargetFile.Sheet.Rows[row] - .EntireRow - .Insert(XlInsertShiftDirection.xlShiftDown, XlInsertFormatOrigin.xlFormatFromLeftOrAbove); - - Range previous = TargetFile.Sheet.Rows[row - 1]; - Range current = TargetFile.Sheet.Rows[row]; - - previous.Copy(current); - current.ClearContents(); - - TargetFile.Sheet.Cells[row, TargetFile.groupCell.Column].Value2 = positionAmount.Key.Group; - TargetFile.Sheet.Cells[row, TargetFile.oldSkuCell.Column].Value2 = positionAmount.Key.Sku; - TargetFile.Sheet.Cells[row, TargetFile.nameCell.Column].Value2 = positionAmount.Key.Name; - TargetFile.Sheet.Cells[row, TargetFile.skuCell.Column].Value2 = "Не найден"; - } - - else - { - row = foundCell.Row; - } - - foreach (int column in columns) - { - if (TargetFile.Sheet.Cells[row, column].Value2 == null) - { - TargetFile.Sheet.Cells[row, column].Value2 = positionAmount.Value; - } - - else - { - TargetFile.Sheet.Cells[row, column].Value2 += positionAmount.Value; - } - } - } - - protected private int? GetPositionRow(string sku, string group, int column) - { - int? row = null; - Range foundCell = TargetFile.Sheet.Columns[column].Find(sku); - string foundGroupValue; - - if (foundCell == null) return null; - - else - { - row = foundCell.Row; - foundGroupValue = TargetFile.Sheet.Cells[foundCell.Row, TargetFile.groupCell.Column].Value2.ToString(); - } - - if (string.IsNullOrEmpty(group) || group.Equals(foundGroupValue)) - return row; - - else - while (true) - { - foundCell = TargetFile.skuCell.EntireColumn.FindNext(foundCell); - if (foundCell == null) return row; - - foundGroupValue = TargetFile.Sheet.Cells[foundCell.Row, TargetFile.groupCell.Column].Value2.ToString(); - if (group.Equals(foundGroupValue)) return foundCell.Row; - } - } - - protected private void FilterByAmount() - { - AutoFilter filter = TargetFile.Sheet.AutoFilter; - int startColumn = filter.Range.Column; - - filter.Range.AutoFilter(TargetFile.amountCell.Column - startColumn + 1, "<>"); - TargetFile.Sheet.Range["A1"].Activate(); - } - } -}
\ No newline at end of file |