Browse Source

Added Convert Indicator to Product Dimension Grid
Tweaked Stock Location UI

frankvandenbos 1 year ago
parent
commit
c94c6194ac

+ 17 - 1
prs.desktop/Grids/ProductDimensionUnitGrid.cs

@@ -2,6 +2,7 @@ using System;
 using System.Collections.Generic;
 using System.Linq;
 using System.Windows;
+using System.Windows.Media.Imaging;
 using Comal.Classes;
 using InABox.Core;
 using InABox.DynamicGrid;
@@ -12,6 +13,9 @@ namespace PRSDesktop.Grids;
 
 public class ProductDimensionUnitGrid : DynamicDataGrid<ProductDimensionUnit>
 {
+
+    private static readonly BitmapImage CONVERT = PRSDesktop.Resources.specifications.AsBitmapImage();
+    
     protected override void Init()
     {
         base.Init();
@@ -22,7 +26,10 @@ public class ProductDimensionUnitGrid : DynamicDataGrid<ProductDimensionUnit>
         HiddenColumns.Add(x => x.HasWeight);
         HiddenColumns.Add(x => x.HasWidth);
         HiddenColumns.Add(x => x.HasHeight);
-
+        HiddenColumns.Add(x =>x.Conversion);
+        
+        ActionColumns.Add(new DynamicImageColumn(ConvertImage) { Position = DynamicActionColumnPosition.End});
+        
         AddButton("Update Expressions", null, (button, rows) =>
         {
             UpdateExpressions(rows.ToArray<ProductDimensionUnit>());
@@ -30,6 +37,15 @@ public class ProductDimensionUnitGrid : DynamicDataGrid<ProductDimensionUnit>
         });
     }
 
+    private BitmapImage? ConvertImage(CoreRow? row)
+    {
+        return row == null
+            ? CONVERT
+            : String.IsNullOrWhiteSpace(row.Get<ProductDimensionUnit, string>(x => x.Conversion))
+                ? null
+                : CONVERT;
+    }
+
     protected override void DoValidate(ProductDimensionUnit[] items, List<string> errors)
     {
         base.DoValidate(items, errors);

+ 30 - 9
prs.desktop/Panels/Products/Locations/StockLocationPanel.xaml

@@ -10,28 +10,49 @@
     <dynamic:DynamicSplitPanel MasterCaption="Stock Location List" DetailCaption="Location Summary" AnchorWidth="500" AllowableViews="Master,Combined"
                                View="Combined" DetailHeight="400">
         <dynamic:DynamicSplitPanel.Header>
-            <Border CornerRadius="5,5,0,0" BorderBrush="Gray" BorderThickness="0.75" DockPanel.Dock="Top"
-                    Background="WhiteSmoke">
-                    <Label Content="Stock Location List" HorizontalContentAlignment="Center" DockPanel.Dock="Left" />
+            <Border 
+                BorderBrush="Gray" 
+                BorderThickness="0.75" 
+                DockPanel.Dock="Top"
+                Background="WhiteSmoke">
+                    
+                <Label 
+                    Content="Stock Location List" 
+                    HorizontalContentAlignment="Center" />
+                
             </Border>
         </dynamic:DynamicSplitPanel.Header>
+        
         <dynamic:DynamicSplitPanel.Master>
-            <local:StockLocationGrid x:Name="Locations" DockPanel.Dock="Top" Margin="0,2,0,0" />
+            <local:StockLocationGrid 
+                x:Name="Locations" 
+                DockPanel.Dock="Top" />
         </dynamic:DynamicSplitPanel.Master>
 
         <dynamic:DynamicSplitPanel.DetailHeader>
-            <Border CornerRadius="5,5,0,0" BorderBrush="Gray" BorderThickness="0.75" DockPanel.Dock="Top"
-                    Background="WhiteSmoke">
-                <Label Content="Location Summary" HorizontalContentAlignment="Center" />
+            <Border 
+                BorderBrush="Gray" 
+                BorderThickness="0.75" 
+                DockPanel.Dock="Top"
+                Background="WhiteSmoke">
+                <Label 
+                    Content="Location Summary" 
+                    HorizontalContentAlignment="Center" />
             </Border>
         </dynamic:DynamicSplitPanel.DetailHeader>
         <dynamic:DynamicSplitPanel.Detail>
-            <local:StockHoldingGrid x:Name="Holdings" DockPanel.Dock="Top" Margin="0,2,0,0" OnSelectItem="Holdings_OnOnSelectItem" />
+            <local:StockHoldingGrid 
+                x:Name="Holdings" 
+                DockPanel.Dock="Top"
+                OnSelectItem="Holdings_OnOnSelectItem" />
         </dynamic:DynamicSplitPanel.Detail>
 
         <dynamic:DynamicSplitPanel.SecondaryDetail>
             <DockPanel>
-                <Border CornerRadius="0,0,0,0" BorderBrush="Gray" BorderThickness="0.75" DockPanel.Dock="Top"
+                <Border 
+                    BorderBrush="Gray" 
+                    BorderThickness="0.75" 
+                    DockPanel.Dock="Top"
                     Background="WhiteSmoke">
                     <Grid>
                         <Grid.ColumnDefinitions>