Sfoglia il codice sorgente

Fix to bug with product instances not combining on STockForecastGrid

Kenric Nugteren 5 mesi fa
parent
commit
1ccf68e3c5

+ 16 - 0
prs.desktop/Panels/Products/Master List/ProductInstanceControl.cs

@@ -83,6 +83,22 @@ public class ProductInstanceControl : DynamicDataGrid<ProductInstance>, IProduct
         return item;
     }
 
+    public override DynamicGridColumns GenerateColumns()
+    {
+        var cols = new DynamicGridColumns();
+        cols.AddRange(base.GenerateColumns().Where(x => !x.ColumnName.StartsWith(nameof(ProductInstance.Product) + ".")));
+        return cols;
+    }
+
+    protected override BaseEditor? GetEditor(object item, DynamicGridColumn column)
+    {
+        if(column.ColumnName.StartsWith(nameof(ProductInstance.Product) + "."))
+        {
+            return new NullEditor();
+        }
+        return base.GetEditor(item, column);
+    }
+
     private BitmapImage? IsDefaultImage(CoreRow? row)
     {
         return row == null

+ 5 - 7
prs.desktop/Panels/Stock Forecast/StockForecastGrid.cs

@@ -800,9 +800,11 @@ public class StockForecastGrid : DynamicItemsListGrid<StockForecastItem>, IDataM
                 var productInstances = results.GetArray<ProductInstance>();
                 foreach(var instance in productInstances)
                 {
+                    var minStock = DimensionUtils.ConvertDimensions(instance.Dimensions, instance.MinimumStockLevel, (f,c) => Client.Query(f,c));
+
                     var item = GetItem(new(instance.Product.ID, instance.Style.ID, instance.Dimensions));
 
-                    item.MinStock += DimensionUtils.ConvertDimensions(instance.Dimensions, instance.MinimumStockLevel, (f,c) => Client.Query(f,c));
+                    item.MinStock += minStock;
                     item.IsProductInstance = true;
                 }
 
@@ -882,9 +884,7 @@ public class StockForecastGrid : DynamicItemsListGrid<StockForecastItem>, IDataM
                 foreach(var bomItemRow in jobBOMItems.Rows)
                 {
                     var bomItem = bomItemRow.ToObject<JobBillOfMaterialsItem>();
-                    var quantity = bomItem.Quantity;
-                    DimensionUtils.ConvertDimensions(bomItem.Dimensions, ref quantity, (f,c) => Client.Query(f,c));
-                    bomItem.Quantity = quantity;
+                    bomItem.Quantity = DimensionUtils.ConvertDimensions(bomItem.Dimensions, bomItem.Quantity, (f,c) => Client.Query(f,c));
                     var key = GetKey(bomItem.Product.ID, bomItem.Style.ID, bomItem.Dimensions);
                     var item = GetItem(key);
 
@@ -895,9 +895,7 @@ public class StockForecastGrid : DynamicItemsListGrid<StockForecastItem>, IDataM
                 foreach(var mvtrow in movements.Rows)
                 {
                     var movement = mvtrow.ToObject<StockMovement>();
-                    var units = movement.Units;
-                    DimensionUtils.ConvertDimensions(movement.Dimensions, ref units, (f,c) => Client.Query(f,c));
-                    movement.Units = units;
+                    movement.Units = DimensionUtils.ConvertDimensions(movement.Dimensions, movement.Units, (f,c) => Client.Query(f,c));
                     
                     var item = GetItem(GetKey(movement.Product.ID, movement.Style.ID, movement.Dimensions));