diff options
author | Serghei Cebotari <51533848+schebotar@users.noreply.github.com> | 2022-03-24 07:00:37 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-03-24 07:00:37 +0300 |
commit | 215d68ea95ce44c68e1de235bc18c4dcbe5aaee2 (patch) | |
tree | 57353886c323aa86d43d8770f486e362be087593 /src/PriceListTools/AbstractTool.cs | |
parent | 031ea7f7ef0c690d93bb7e653e59c7dac6964dbb (diff) | |
parent | eaf3ebaa9489462e3d663c93df7a9bc34011464c (diff) |
Merge pull request #18 from schebotar/dev
Dev
Diffstat (limited to 'src/PriceListTools/AbstractTool.cs')
-rw-r--r-- | src/PriceListTools/AbstractTool.cs | 51 |
1 files changed, 33 insertions, 18 deletions
diff --git a/src/PriceListTools/AbstractTool.cs b/src/PriceListTools/AbstractTool.cs index 256be06..abf4bae 100644 --- a/src/PriceListTools/AbstractTool.cs +++ b/src/PriceListTools/AbstractTool.cs @@ -45,13 +45,17 @@ namespace RehauSku.PriceListTools protected void FillPositionAmountToColumns(KeyValuePair<Position, double> positionAmount, params int[] columns) { - int? row = GetPositionRow(TargetFile.SkuCell.EntireColumn, positionAmount.Key.Sku, positionAmount.Key.Group); + Range worksheetCells = TargetFile.Sheet.Cells; + Range skuColumn = TargetFile.SkuCell.EntireColumn; + Range oldSkuColumn = TargetFile.OldSkuCell.EntireColumn; + + int? row = GetPositionRow(skuColumn, positionAmount.Key.Sku, positionAmount.Key.Group); if (row != null) { foreach (int column in columns) { - Range cell = TargetFile.Sheet.Cells[row, column]; + Range cell = worksheetCells[row, column]; cell.AddValue(positionAmount.Value); } @@ -61,13 +65,13 @@ namespace RehauSku.PriceListTools if (TargetFile.OldSkuCell != null) { - row = GetPositionRow(TargetFile.OldSkuCell.EntireColumn, positionAmount.Key.Sku, positionAmount.Key.Group); + row = GetPositionRow(oldSkuColumn, positionAmount.Key.Sku, positionAmount.Key.Group); if (row != null) { foreach (int column in columns) { - Range cell = TargetFile.Sheet.Cells[row, column]; + Range cell = worksheetCells[row, column]; cell.AddValue(positionAmount.Value); } @@ -77,13 +81,13 @@ namespace RehauSku.PriceListTools } string sku = positionAmount.Key.Sku.Substring(1, 6); - row = GetPositionRow(TargetFile.SkuCell.EntireColumn, sku, positionAmount.Key.Group); + row = GetPositionRow(skuColumn, sku, positionAmount.Key.Group); if (row != null) { foreach (int column in columns) { - Range cell = TargetFile.Sheet.Cells[row, column]; + Range cell = worksheetCells[row, column]; cell.AddValue(positionAmount.Value); } @@ -97,37 +101,43 @@ namespace RehauSku.PriceListTools protected void FillMissing(KeyValuePair<Position, double> positionAmount, params int[] columns) { - int row = TargetFile.Sheet.Cells[TargetFile.Sheet.Rows.Count, TargetFile.SkuCell.Column] + Range worksheetCells = TargetFile.Sheet.Cells; + Range worksheetRows = TargetFile.Sheet.Rows; + int skuColumn = TargetFile.SkuCell.Column; + int groupColumn = TargetFile.GroupCell.Column; + int nameColumn = TargetFile.NameCell.Column; + + int row = worksheetCells[worksheetRows.Count, skuColumn] .End[XlDirection.xlUp] .Row + 1; - TargetFile.Sheet.Rows[row] + worksheetRows[row] .EntireRow .Insert(XlInsertShiftDirection.xlShiftDown, XlInsertFormatOrigin.xlFormatFromLeftOrAbove); - Range previous = TargetFile.Sheet.Rows[row - 1]; - Range current = TargetFile.Sheet.Rows[row]; + Range previous = worksheetRows[row - 1]; + Range current = worksheetRows[row]; previous.Copy(current); current.ClearContents(); - TargetFile.Sheet.Cells[row, TargetFile.GroupCell.Column].Value2 = positionAmount.Key.Group; - TargetFile.Sheet.Cells[row, TargetFile.NameCell.Column].Value2 = positionAmount.Key.Name; + worksheetCells[row, groupColumn].Value2 = positionAmount.Key.Group; + worksheetCells[row, nameColumn].Value2 = positionAmount.Key.Name; if (TargetFile.OldSkuCell != null) { - TargetFile.Sheet.Cells[row, TargetFile.SkuCell.Column].Value2 = "Не найден"; - TargetFile.Sheet.Cells[row, TargetFile.OldSkuCell.Column].Value2 = positionAmount.Key.Sku; + worksheetCells[row, skuColumn].Value2 = "Не найден"; + worksheetCells[row, TargetFile.OldSkuCell.Column].Value2 = positionAmount.Key.Sku; } else { - TargetFile.Sheet.Cells[row, TargetFile.SkuCell.Column].Value2 = positionAmount.Key.Sku; + worksheetCells[row, skuColumn].Value2 = positionAmount.Key.Sku; } foreach (int column in columns) { - Range cell = TargetFile.Sheet.Cells[row, column]; + Range cell = worksheetCells[row, column]; cell.AddValue(positionAmount.Value); } } @@ -142,13 +152,18 @@ namespace RehauSku.PriceListTools return null; } - int firstFoundRow = found.Row; + int firstFoundRow = found.Row; + + if (string.IsNullOrEmpty(group)) + { + return found.Row; + } while (true) { foundGroupValue = TargetFile.Sheet.Cells[found.Row, TargetFile.GroupCell.Column].Value2.ToString(); - if (string.IsNullOrEmpty(group) || group.Equals(foundGroupValue)) + if (group.Equals(foundGroupValue)) { return found.Row; } |