Browse Source

Changed width of right hand column in stock forecst screen; fixed colours of numeric columns; added column headers. Changed ordering action column image

Kenric Nugteren 1 year ago
parent
commit
8e2eae5afa

+ 1 - 1
prs.desktop/Panels/Stock Forecast/StockForecastControl.xaml

@@ -30,7 +30,7 @@
             <dynamicGrid:DynamicSplitPanel x:Name="DetailSplitPanel"
                                            DetailCaption="Suppliers"
                                            View="Combined" AllowableViews="Master,Combined"
-                                           Anchor="Detail" AnchorWidth="350" DetailHeight="500"
+                                           Anchor="Detail" AnchorWidth="300" DetailHeight="500"
                                            OnChanged="DetailSplitPanel_OnChanged">
 
                 <dynamicGrid:DynamicSplitPanel.Header>

+ 17 - 4
prs.desktop/Panels/Stock Forecast/StockForecastGrid.cs

@@ -164,9 +164,6 @@ public class StockForecastGrid : DynamicDataGrid<ProductInstance>, IDataModelSou
             _instanceStyleIDCol ??= new Columns<ProductInstance>(row.Table.Columns).IndexOf(x => x.Style.ID);
             _instanceUnitSizeCol ??= new Columns<ProductInstance>(row.Table.Columns).IndexOf(x => x.Dimensions.UnitSize);
 
-            if (Grid.AllStock && !CheckSuppliers(row))
-                return new SolidColorBrush(Colors.Silver) { Opacity = 0.5F };
-
             if (column is DynamicTextColumn col && Grid._summaryinfo.TryGetValue(row.Get<ProductInstance,Guid>(x=>x.ID), out StockForecastInfo? info))
             {
                 var stock = Math.Max(0.0F, info.MinStock - (info.GenStock + info.GenPO)).IsEffectivelyEqual(0.0F)
@@ -193,6 +190,11 @@ public class StockForecastGrid : DynamicDataGrid<ProductInstance>, IDataModelSou
                     _ => null
                 };
             }
+            else
+            {
+                if (Grid.AllStock && !CheckSuppliers(row))
+                    return new SolidColorBrush(Colors.Silver) { Opacity = 0.5F };
+            }
             
             return null;
         }
@@ -221,6 +223,15 @@ public class StockForecastGrid : DynamicDataGrid<ProductInstance>, IDataModelSou
             .EndUpdate();
     }
 
+    protected override void ConfigureColumnGroups()
+    {
+        base.ConfigureColumnGroups();
+
+        AddColumnGrouping()
+            .AddGroup("General Stock", GetColumn(ColumnTag.MinimumStockRequired), GetColumn(ColumnTag.GeneralPurchaseOrders))
+            .AddGroup("Job Stock", GetColumn(ColumnTag.JobStockRequired), GetColumn(ColumnTag.JobPurchaseOrders));
+    }
+
     public override DynamicGridColumns GenerateColumns()
     {
         var columns = new DynamicGridColumns();
@@ -246,6 +257,8 @@ public class StockForecastGrid : DynamicDataGrid<ProductInstance>, IDataModelSou
         ActionColumns.Add(column);
     }
 
+    private DynamicTextColumn GetColumn(ColumnTag tag) => (ActionColumns.First(x => Equals(x.Tag, tag)) as DynamicTextColumn)!;
+
     private object GetMinimumStockLevel(CoreRow? row) => row?.Get<ProductInstance, double>(x => x.MinimumStockLevel) ?? 0.0F;
     
     private object GetGeneralStockLevel(CoreRow? row)
@@ -791,7 +804,7 @@ public class StockForecastGrid : DynamicDataGrid<ProductInstance>, IDataModelSou
         }
         else if(SelectedForOrder.Contains(row.Get<ProductInstance, Guid>(x => x.ID)))
         {
-            return _tick;
+            return _cart;
         }
         else
         {