Переглянути джерело

Improved columns on stok selection page.

Kenric Nugteren 1 рік тому
батько
коміт
7c205342bf

+ 9 - 1
prs.desktop/Panels/Reservation Management/JobRequisitionItemSelectionGrid.cs

@@ -2,6 +2,7 @@
 using InABox.Clients;
 using InABox.Core;
 using InABox.DynamicGrid;
+using InABox.Wpf;
 using InABox.WPF;
 using Syncfusion.Data;
 using Syncfusion.UI.Xaml.Grid;
@@ -356,9 +357,16 @@ public abstract class JobRequisitionItemSelectionGrid<T> : DynamicItemsListGrid<
             HorizontalContentAlignment = HorizontalAlignment.Center,
             VerticalContentAlignment = VerticalAlignment.Center,
             VerticalAlignment = VerticalAlignment.Stretch,
-            Background = new SolidColorBrush(Colors.LightYellow),
             Margin = new Thickness(5, 0, 0, 0)
         };
+
+        var style = new Style(typeof(DoubleTextBox));
+        style.AddSetter(BackgroundProperty, Colors.LightYellow.ToBrush());
+        style.AddDataTrigger()
+            .Bind(item, x => x.Issued, true, new FuncConverter<double, bool>(issued => issued > item.Quantity))
+            .AddSetter(BackgroundProperty, Colors.Salmon.ToBrush());
+        quantity.Style = style;
+
         quantity.Bind(DoubleTextBox.ValueProperty, item, x => x.Issued);
         quantity.MinValue = 0;
         quantity.Bind(DoubleTextBox.MaxValueProperty, item, x => x.MaxValue);

+ 13 - 8
prs.desktop/Panels/Reservation Management/StockSelectionPage.xaml.cs

@@ -20,15 +20,15 @@ namespace PRSDesktop;
 
 public class StockSelectionItem : JobRequisitionItemSelectionItem
 {
-    public string Area => Holding.Location.Area.Description;
+    public string Area => Holding.Location.Area.Code;
 
     public string Requisition => JRI is null
         ? "Unrequisitioned Items"
         : $"{JRI.Job.JobNumber}: {JRI.Requisition.Number} {JRI.Requisition.Description}";
 
-    public string Location => Holding.Location.Description;
+    public string Location => Holding.Location.Code;
 
-    public string Style => Holding.Style.Description;
+    public string Style => Holding.Style.Code;
 
     public StockHolding Holding { get; set; }
 }
@@ -40,14 +40,19 @@ public class StockSelectionGrid : JobRequisitionItemSelectionGrid<StockSelection
     public override DynamicGridColumns GenerateColumns()
     {
         var columns = new DynamicGridColumns();
-        columns.Add<StockSelectionItem, string>(x => x.Area, 0, "Area", "", Alignment.MiddleCenter);
-        columns.Add<StockSelectionItem, string>(x => x.Location, 0, "Location", "", Alignment.MiddleCenter);
-        columns.Add<StockSelectionItem, string>(x => x.Style, 0, "Style", "", Alignment.MiddleCenter);
-
         if (ShowRequisition)
         {
+            columns.Add<StockSelectionItem, string>(x => x.Area, 120, "Area", "", Alignment.MiddleCenter);
+            columns.Add<StockSelectionItem, string>(x => x.Location, 120, "Location", "", Alignment.MiddleCenter);
+            columns.Add<StockSelectionItem, string>(x => x.Style, 120, "Style", "", Alignment.MiddleCenter);
             columns.Add<StockSelectionItem, string>(x => x.Requisition, 0, "Requisition", "", Alignment.MiddleLeft);
         }
+        else
+        {
+            columns.Add<StockSelectionItem, string>(x => x.Area, 0, "Area", "", Alignment.MiddleCenter);
+            columns.Add<StockSelectionItem, string>(x => x.Location, 0, "Location", "", Alignment.MiddleCenter);
+            columns.Add<StockSelectionItem, string>(x => x.Style, 0, "Style", "", Alignment.MiddleCenter);
+        }
 
         return columns;
     }
@@ -112,7 +117,7 @@ public partial class StockSelectionPage : ThemableWindow, INotifyPropertyChanged
         Item = item;
 
         var jris = Client.Query(
-            new Filter<JobRequisitionItem>(x => x.ID).InList(holdings.Select(x => x.JobRequisitionItemID).ToArray()),
+            new Filter<JobRequisitionItem>(x => x.ID).InList(holdings.Select(x => x.JobRequisitionItemID).Where(x => x != Guid.Empty).ToArray()),
             Columns.None<JobRequisitionItem>()
                 .Add(x => x.ID)
                 .Add(x => x.Job.JobNumber)