From 62271e75fbc768c759fdd7a26b86dcb3bf66388f Mon Sep 17 00:00:00 2001 From: Sergey Chebotar Date: Fri, 5 May 2023 08:21:26 +0300 Subject: [PATCH] Product package update --- RhSolutions.AddIn/RhSolutions.AddIn.csproj | 2 +- RhSolutions.AddIn/Services/DxfWriter.cs | 2 +- RhSolutions.AddIn/Services/ExcelReader.cs | 4 ++-- RhSolutions.AddIn/Services/ExcelWriter.cs | 6 +++--- .../Tools/WorksheetExtensions.cs | 4 +++- RhSolutions.Tests/CanReadProducts.cs | 2 +- .../Specifications/HeatingFloor.xlsx | Bin 10005 -> 10391 bytes 7 files changed, 11 insertions(+), 9 deletions(-) diff --git a/RhSolutions.AddIn/RhSolutions.AddIn.csproj b/RhSolutions.AddIn/RhSolutions.AddIn.csproj index c77a8b8..9e85751 100644 --- a/RhSolutions.AddIn/RhSolutions.AddIn.csproj +++ b/RhSolutions.AddIn/RhSolutions.AddIn.csproj @@ -36,7 +36,7 @@ - + diff --git a/RhSolutions.AddIn/Services/DxfWriter.cs b/RhSolutions.AddIn/Services/DxfWriter.cs index d8ed26a..9dccd05 100644 --- a/RhSolutions.AddIn/Services/DxfWriter.cs +++ b/RhSolutions.AddIn/Services/DxfWriter.cs @@ -47,7 +47,7 @@ public class DxfWriter : IWriter Alignment = TextAlignment.MiddleLeft, WidthFactor = 0.85 }, - new Text(product.ProductSku, new Vector2(x + 24750, y), 250) + new Text(product.ProductSku.ToString(), new Vector2(x + 24750, y), 250) { Alignment = TextAlignment.MiddleCenter, WidthFactor = 0.85 diff --git a/RhSolutions.AddIn/Services/ExcelReader.cs b/RhSolutions.AddIn/Services/ExcelReader.cs index d2b77cd..0403d7f 100644 --- a/RhSolutions.AddIn/Services/ExcelReader.cs +++ b/RhSolutions.AddIn/Services/ExcelReader.cs @@ -60,7 +60,7 @@ public class ExcelReader : IReader, IDisposable continue; } - Product product = new() { ProductSku = currentSku }; + Product product = new() { ProductSku = new(currentSku) }; if (readResult.ContainsKey(product)) { @@ -126,7 +126,7 @@ public class ExcelReader : IReader, IDisposable Product p = new() { - ProductSku = sku.ToString(), + ProductSku = new (sku.ToString()), ProductLine = productLine.ToString(), Name = name.ToString(), ProductMeasure = productMeasure diff --git a/RhSolutions.AddIn/Services/ExcelWriter.cs b/RhSolutions.AddIn/Services/ExcelWriter.cs index 445e2d5..7685eac 100644 --- a/RhSolutions.AddIn/Services/ExcelWriter.cs +++ b/RhSolutions.AddIn/Services/ExcelWriter.cs @@ -110,7 +110,7 @@ public class ExcelWriter : IWriter, IDisposable Range worksheetCells = _worksheet.Cells; Range skuColumn = _skuCell.EntireColumn; - int? row = GetPositionRow(skuColumn, positionAmount.Key.ProductSku, positionAmount.Key.ProductLine); + int? row = GetPositionRow(skuColumn, positionAmount.Key.ProductSku.ToString(), positionAmount.Key.ProductLine); if (row != null) { @@ -126,7 +126,7 @@ public class ExcelWriter : IWriter, IDisposable if (_oldSkuCell != null) { - row = GetPositionRow(_oldSkuCell.EntireColumn, positionAmount.Key.ProductSku, positionAmount.Key.ProductLine); + row = GetPositionRow(_oldSkuCell.EntireColumn, positionAmount.Key.ProductSku.ToString(), positionAmount.Key.ProductLine); if (row != null) { @@ -141,7 +141,7 @@ public class ExcelWriter : IWriter, IDisposable } } - string sku = positionAmount.Key.ProductSku.Substring(1, 6); + string sku = positionAmount.Key.ProductSku.Article; row = GetPositionRow(skuColumn, sku, positionAmount.Key.ProductLine); if (row != null) diff --git a/RhSolutions.AddIn/Tools/WorksheetExtensions.cs b/RhSolutions.AddIn/Tools/WorksheetExtensions.cs index 29ab798..7d317a8 100644 --- a/RhSolutions.AddIn/Tools/WorksheetExtensions.cs +++ b/RhSolutions.AddIn/Tools/WorksheetExtensions.cs @@ -18,13 +18,15 @@ public static class WorksheetExtensions Range skuCell; Range programLineCell; Range nameCell; + Range measureCell; Range[] cells = new[] { amountCell = worksheet.Cells.Find(pricelistParameters["Amount"]), skuCell = worksheet.Cells.Find(pricelistParameters["Sku"]), programLineCell = worksheet.Cells.Find(pricelistParameters["ProductLine"]), - nameCell = worksheet.Cells.Find(pricelistParameters["Name"]) + nameCell = worksheet.Cells.Find(pricelistParameters["Name"]), + measureCell = worksheet.Cells.Find(pricelistParameters["Measure"]) }; return cells.All(x => x != null); diff --git a/RhSolutions.Tests/CanReadProducts.cs b/RhSolutions.Tests/CanReadProducts.cs index fd33a69..1fa7357 100644 --- a/RhSolutions.Tests/CanReadProducts.cs +++ b/RhSolutions.Tests/CanReadProducts.cs @@ -39,7 +39,7 @@ public class CanReadProducts : IDisposable Assert.NotNull(products); Assert.NotEmpty(products); - Assert.Equal("11600011001", products.First().Key.ProductSku); + Assert.Equal("11600011001", products.First().Key.ProductSku?.ToString()); Assert.Equal(20.0, products.First().Value); Assert.Equal(125.0, products.Sum(p => p.Value)); Assert.Equal(3, products.Count()); diff --git a/RhSolutions.Tests/TestWorkbooks/Specifications/HeatingFloor.xlsx b/RhSolutions.Tests/TestWorkbooks/Specifications/HeatingFloor.xlsx index f0b76f35da4c6b0e5d2275fdae3bd3d96b9fc760..20416e01a6ac50ae650220b30592d0405647df06 100644 GIT binary patch delta 3630 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 a|341U;6g|UsS>o@Lp&GaA%XM#1O6Xi5ez8+