Pārlūkot izejas kodu

Final changes to Reservation management screen, removing the allowing of negatives

Kenric Nugteren 11 mēneši atpakaļ
vecāks
revīzija
96f3adeeb1

+ 28 - 1
prs.desktop/Panels/Products/Locations/StockHoldingRelocationGrid.cs

@@ -1,10 +1,12 @@
 using InABox.Core;
 using InABox.Core;
 using InABox.DynamicGrid;
 using InABox.DynamicGrid;
+using Microsoft.CodeAnalysis.VisualBasic.Syntax;
 using System;
 using System;
 using System.Collections.Generic;
 using System.Collections.Generic;
 using System.Linq;
 using System.Linq;
 using System.Text;
 using System.Text;
 using System.Threading.Tasks;
 using System.Threading.Tasks;
+using System.Windows;
 
 
 namespace PRSDesktop.Panels.Products.Locations;
 namespace PRSDesktop.Panels.Products.Locations;
 
 
@@ -21,9 +23,34 @@ public class StockHoldingRelocationGrid : JobRequisitionItemSelectionGrid<StockH
     {
     {
         var columns = new DynamicGridColumns();
         var columns = new DynamicGridColumns();
 
 
-        columns.Add<StockHoldingRelocationItem, string>(x => x.ItemNumber, 0, "#", "", Alignment.MiddleLeft);
+        columns.Add<StockHoldingRelocationItem, string>(x => x.ItemNumber, 50, "#", "", Alignment.MiddleCenter);
         columns.Add<StockHoldingRelocationItem, string>(x => x.Text, 0, "Description", "", Alignment.MiddleLeft);
         columns.Add<StockHoldingRelocationItem, string>(x => x.Text, 0, "Description", "", Alignment.MiddleLeft);
 
 
         return columns;
         return columns;
     }
     }
+
+    private new class UIComponent : JobRequisitionItemSelectionGrid<StockHoldingRelocationItem>.UIComponent
+    {
+        public UIComponent(JobRequisitionItemSelectionGrid<StockHoldingRelocationItem> grid) : base(grid)
+        {
+        }
+
+        private Column<StockHoldingRelocationItem> ItemNumberColumn = new(x => x.ItemNumber);
+
+        protected override FontWeight? GetCellFontWeight(CoreRow row, DynamicColumnBase column)
+        {
+            if(column is DynamicGridColumn gridColumn)
+            {
+                if (ItemNumberColumn.IsEqualTo(gridColumn.ColumnName))
+                {
+                    return FontWeights.Bold;
+                }
+            }
+            return base.GetCellFontWeight(row, column);
+        }
+    }
+    protected override IDynamicGridUIComponent<StockHoldingRelocationItem> CreateUIComponent()
+    {
+        return new UIComponent(this);
+    }
 }
 }

+ 1 - 1
prs.desktop/Panels/Products/Locations/StockHoldingRelocationWindow.xaml

@@ -7,7 +7,7 @@
         xmlns:syncfusion="http://schemas.syncfusion.com/wpf"
         xmlns:syncfusion="http://schemas.syncfusion.com/wpf"
         xmlns:WPF="clr-namespace:InABox.WPF;assembly=InABox.Wpf"
         xmlns:WPF="clr-namespace:InABox.WPF;assembly=InABox.Wpf"
         mc:Ignorable="d"
         mc:Ignorable="d"
-        Title="Relocate Items" Height="500" Width="750"
+        Title="Relocate Items" Width="750" Height="500"
         WindowStartupLocation="CenterOwner"
         WindowStartupLocation="CenterOwner"
         x:Name="Window">
         x:Name="Window">
     <Window.Resources>
     <Window.Resources>

+ 3 - 11
prs.desktop/Panels/Reservation Management/JobRequisitionItemSelectionGrid.cs

@@ -102,7 +102,6 @@ public abstract class JobRequisitionItemSelectionGrid<T> : DynamicItemsListGrid<
         }
         }
     }
     }
 
 
-
     private double _totalIssued;
     private double _totalIssued;
     public double TotalIssued
     public double TotalIssued
     {
     {
@@ -239,7 +238,7 @@ public abstract class JobRequisitionItemSelectionGrid<T> : DynamicItemsListGrid<
         }
         }
     }
     }
 
 
-    private class UIComponent : DynamicGridGridUIComponent<T>
+    protected class UIComponent : DynamicGridGridUIComponent<T>
     {
     {
         public UIComponent(JobRequisitionItemSelectionGrid<T> grid)
         public UIComponent(JobRequisitionItemSelectionGrid<T> grid)
         {
         {
@@ -363,7 +362,7 @@ public abstract class JobRequisitionItemSelectionGrid<T> : DynamicItemsListGrid<
         var style = new Style(typeof(DoubleTextBox));
         var style = new Style(typeof(DoubleTextBox));
         style.AddSetter(BackgroundProperty, Colors.LightYellow.ToBrush());
         style.AddSetter(BackgroundProperty, Colors.LightYellow.ToBrush());
         style.AddDataTrigger()
         style.AddDataTrigger()
-            .Bind(item, x => x.Issued, true, new FuncConverter<double, bool>(issued => issued > item.Quantity))
+            .Bind(item, x => x.Issued, true, new FuncConverter<double, bool>(issued => issued > item.Quantity && issued > 0))
             .AddSetter(BackgroundProperty, Colors.Salmon.ToBrush());
             .AddSetter(BackgroundProperty, Colors.Salmon.ToBrush());
         quantity.Style = style;
         quantity.Style = style;
 
 
@@ -406,14 +405,7 @@ public abstract class JobRequisitionItemSelectionGrid<T> : DynamicItemsListGrid<
 
 
     private void Plus_Click(T item)
     private void Plus_Click(T item)
     {
     {
-        if(item.JRI.ID == Guid.Empty)
-        {
-            item.Issued += 1;
-        }
-        else
-        {
-            item.Issued = Math.Min(item.Issued + 1, item.Quantity);
-        }
+        item.Issued = Math.Min(item.Issued + 1, item.MaxValue);
     }
     }
 
 
     private void All_Click(T item)
     private void All_Click(T item)

+ 6 - 15
prs.desktop/Panels/Reservation Management/ReservationManagementHoldingsGrid.xaml

@@ -70,11 +70,10 @@
                         x:Name="currentStyle" 
                         x:Name="currentStyle" 
                         Tag="{Binding StockOfCurrentStyle}"
                         Tag="{Binding StockOfCurrentStyle}"
                         Click="Take_Click"
                         Click="Take_Click"
-                        MouseRightButtonUp="Take_RightClick"
                         Visibility="{Binding Visibility}">
                         Visibility="{Binding Visibility}">
                         <Button.Style>
                         <Button.Style>
                             <Style TargetType="Button">
                             <Style TargetType="Button">
-                                <Setter Property="Content" Value="{Binding UnitsOfCurrentStyle, StringFormat=N0}"/>
+                                <Setter Property="Content" Value=""/>
                                 <Setter Property="Template">
                                 <Setter Property="Template">
                                     <Setter.Value>
                                     <Setter.Value>
                                         <ControlTemplate TargetType="Button">
                                         <ControlTemplate TargetType="Button">
@@ -89,10 +88,8 @@
                                 <Setter Property="Background" Value="Transparent"/>
                                 <Setter Property="Background" Value="Transparent"/>
                                 <Setter Property="BorderBrush" Value="Transparent"/>
                                 <Setter Property="BorderBrush" Value="Transparent"/>
                                 <Style.Triggers>
                                 <Style.Triggers>
-                                    <DataTrigger Binding="{Binding UnitsOfCurrentStyle}" Value="0">
-                                        <Setter Property="Content" Value="-"/>
-                                    </DataTrigger>
                                     <DataTrigger Binding="{Binding CurrentStylePositive}" Value="True">
                                     <DataTrigger Binding="{Binding CurrentStylePositive}" Value="True">
+                                        <Setter Property="Content" Value="{Binding UnitsOfCurrentStyle, StringFormat=N0}"/>
                                         <Setter Property="Background" Value="WhiteSmoke"/>
                                         <Setter Property="Background" Value="WhiteSmoke"/>
                                         <Setter Property="BorderBrush" Value="#707070"/>
                                         <Setter Property="BorderBrush" Value="#707070"/>
                                     </DataTrigger>
                                     </DataTrigger>
@@ -121,11 +118,10 @@
                         x:Name="noStyle" 
                         x:Name="noStyle" 
                         Tag="{Binding StockOfNoStyle}" 
                         Tag="{Binding StockOfNoStyle}" 
                         Click="Take_Click"
                         Click="Take_Click"
-                        MouseRightButtonUp="Take_RightClick"
                         Visibility="{Binding Visibility}">
                         Visibility="{Binding Visibility}">
                         <Button.Style>
                         <Button.Style>
                             <Style TargetType="Button">
                             <Style TargetType="Button">
-                                <Setter Property="Content" Value="{Binding UnitsOfNoStyle, StringFormat=N0}"/>
+                                <Setter Property="Content" Value=""/>
                                 <Setter Property="Template">
                                 <Setter Property="Template">
                                     <Setter.Value>
                                     <Setter.Value>
                                         <ControlTemplate TargetType="Button">
                                         <ControlTemplate TargetType="Button">
@@ -141,12 +137,10 @@
                                 <Setter Property="Background" Value="Transparent"/>
                                 <Setter Property="Background" Value="Transparent"/>
                                 <Setter Property="BorderBrush" Value="Transparent"/>
                                 <Setter Property="BorderBrush" Value="Transparent"/>
                                 <Style.Triggers>
                                 <Style.Triggers>
-                                    <DataTrigger Binding="{Binding UnitsOfNoStyle}" Value="0">
-                                        <Setter Property="Content" Value="-"/>
-                                    </DataTrigger>
                                     <DataTrigger Binding="{Binding NoStylePositive}" Value="True">
                                     <DataTrigger Binding="{Binding NoStylePositive}" Value="True">
                                         <Setter Property="Background" Value="WhiteSmoke"/>
                                         <Setter Property="Background" Value="WhiteSmoke"/>
                                         <Setter Property="BorderBrush" Value="#707070"/>
                                         <Setter Property="BorderBrush" Value="#707070"/>
+                                        <Setter Property="Content" Value="{Binding UnitsOfNoStyle, StringFormat=N0}"/>
                                     </DataTrigger>
                                     </DataTrigger>
                                     <MultiDataTrigger>
                                     <MultiDataTrigger>
                                         <MultiDataTrigger.Conditions>
                                         <MultiDataTrigger.Conditions>
@@ -174,11 +168,10 @@
                         x:Name="otherStyle" 
                         x:Name="otherStyle" 
                         Tag="{Binding StockOfOtherStyles}"
                         Tag="{Binding StockOfOtherStyles}"
                         Click="Take_Click"
                         Click="Take_Click"
-                        MouseRightButtonUp="Take_RightClick"
                         Visibility="{Binding Visibility}">
                         Visibility="{Binding Visibility}">
                         <Button.Style>
                         <Button.Style>
                             <Style TargetType="Button">
                             <Style TargetType="Button">
-                                <Setter Property="Content" Value="{Binding UnitsOfOtherStyles, StringFormat=N0}"/>
+                                <Setter Property="Content" Value=""/>
                                 <Setter Property="Template">
                                 <Setter Property="Template">
                                     <Setter.Value>
                                     <Setter.Value>
                                         <ControlTemplate TargetType="Button">
                                         <ControlTemplate TargetType="Button">
@@ -193,12 +186,10 @@
                                 <Setter Property="Background" Value="Transparent"/>
                                 <Setter Property="Background" Value="Transparent"/>
                                 <Setter Property="BorderBrush" Value="Transparent"/>
                                 <Setter Property="BorderBrush" Value="Transparent"/>
                                 <Style.Triggers>
                                 <Style.Triggers>
-                                    <DataTrigger Binding="{Binding UnitsOfOtherStyles}" Value="0">
-                                        <Setter Property="Content" Value="-"/>
-                                    </DataTrigger>
                                     <DataTrigger Binding="{Binding OtherStylesPositive}" Value="True">
                                     <DataTrigger Binding="{Binding OtherStylesPositive}" Value="True">
                                         <Setter Property="Background" Value="WhiteSmoke"/>
                                         <Setter Property="Background" Value="WhiteSmoke"/>
                                         <Setter Property="BorderBrush" Value="#707070"/>
                                         <Setter Property="BorderBrush" Value="#707070"/>
+                                        <Setter Property="Content" Value="{Binding UnitsOfOtherStyles, StringFormat=N0}"/>
                                     </DataTrigger>
                                     </DataTrigger>
                                     <MultiDataTrigger>
                                     <MultiDataTrigger>
                                         <MultiDataTrigger.Conditions>
                                         <MultiDataTrigger.Conditions>

+ 19 - 19
prs.desktop/Panels/Reservation Management/ReservationManagementHoldingsGrid.xaml.cs

@@ -233,24 +233,24 @@ public partial class ReservationManagementHoldingsGrid
         listViewRed.ItemsSource = redList;
         listViewRed.ItemsSource = redList;
     }
     }
 
 
-    private void Take_RightClick(object sender, System.Windows.Input.MouseButtonEventArgs e)
-    {
-        if (sender is not FrameworkElement element
-            || element.DataContext is not ReservationManagementHoldingsModel model
-            || element.Tag is not List<StockMovement> mvts) return;
-
-        if (model.AlreadyAllocated) return;
-        if (mvts == model.StockOfCurrentStyle && model.UnitsOfCurrentStyle > 0
-            || mvts == model.StockOfNoStyle && model.UnitsOfNoStyle > 0
-            || mvts == model.StockOfOtherStyles && model.UnitsOfOtherStyles > 0)
-        {
-            return;
-        }
-
-        var menu = new ContextMenu();
-        menu.AddItem("Take Anyway", null, () => LaunchStockSelectionPage(model, mvts));
-        menu.IsOpen = true;
-    }
+    //private void Take_RightClick(object sender, System.Windows.Input.MouseButtonEventArgs e)
+    //{
+    //    if (sender is not FrameworkElement element
+    //        || element.DataContext is not ReservationManagementHoldingsModel model
+    //        || element.Tag is not List<StockMovement> mvts) return;
+
+    //    if (model.AlreadyAllocated) return;
+    //    if (mvts == model.StockOfCurrentStyle && model.UnitsOfCurrentStyle > 0
+    //        || mvts == model.StockOfNoStyle && model.UnitsOfNoStyle > 0
+    //        || mvts == model.StockOfOtherStyles && model.UnitsOfOtherStyles > 0)
+    //    {
+    //        return;
+    //    }
+
+    //    var menu = new ContextMenu();
+    //    menu.AddItem("Take Anyway", null, () => LaunchStockSelectionPage(model, mvts));
+    //    menu.IsOpen = true;
+    //}
 
 
     private void Take_Click(object sender, RoutedEventArgs e)
     private void Take_Click(object sender, RoutedEventArgs e)
     {
     {
@@ -300,7 +300,7 @@ public partial class ReservationManagementHoldingsGrid
             }
             }
         }
         }
 
 
-        var filteredHoldings = holdings.Where(x => !model.AlreadyAllocated || x.Value.Units.IsEffectivelyGreaterThan(0))
+        var filteredHoldings = holdings.Where(x => x.Value.Units.IsEffectivelyGreaterThan(0))
             .Select(x => new StockSelectionPage.Holding(x.Value, x.Key.requiItemID));
             .Select(x => new StockSelectionPage.Holding(x.Value, x.Key.requiItemID));
 
 
         var page = new StockSelectionPage(
         var page = new StockSelectionPage(

+ 3 - 8
prs.desktop/Panels/Reservation Management/ReservationManagementItemGrid.cs

@@ -57,13 +57,13 @@ public class ReservationManagementItemGrid : DynamicDataGrid<JobRequisitionItem>
                     if (!due.IsEmpty())
                     if (!due.IsEmpty())
                     {
                     {
                         var background = DateTime.Today > due.Date
                         var background = DateTime.Today > due.Date
-                            ? Colors.Salmon
+                            ? Colors.LightSalmon
                             : DateTime.Today.AddDays(Grid.DueDateWarning) >= due.Date
                             : DateTime.Today.AddDays(Grid.DueDateWarning) >= due.Date
                                 ? Colors.Orange
                                 ? Colors.Orange
                                 : DateTime.Today.AddDays(Grid.DueDateAlert) >= due.Date
                                 : DateTime.Today.AddDays(Grid.DueDateAlert) >= due.Date
                                     ? Colors.LightYellow
                                     ? Colors.LightYellow
                                     : Colors.LightGreen;
                                     : Colors.LightGreen;
-                        return new SolidColorBrush(background);
+                        return new SolidColorBrush(background) { Opacity = 0.5 };
                     }
                     }
                 }
                 }
             }
             }
@@ -77,12 +77,7 @@ public class ReservationManagementItemGrid : DynamicDataGrid<JobRequisitionItem>
                 else if (dac == Grid.TreatmentRequiredColumn
                 else if (dac == Grid.TreatmentRequiredColumn
                     || dac == Grid.TreatmentOnOrderColumn)
                     || dac == Grid.TreatmentOnOrderColumn)
                 {
                 {
-                    return Colors.LightYellow.ToBrush(0.5);
-                }
-                else if (dac == Grid.AllocatedColumn
-                    || dac == Grid.IssuedColumn)
-                {
-                    return Colors.LightSeaGreen.ToBrush(0.5);
+                    return Colors.Plum.ToBrush(0.5);
                 }
                 }
             }
             }
 
 

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

@@ -62,7 +62,7 @@ public class StockSelectionGrid : JobRequisitionItemSelectionGrid<StockSelection
         {
         {
             item.Issued = 0;
             item.Issued = 0;
             item.Quantity = item.Holding.Units;
             item.Quantity = item.Holding.Units;
-            item.MaxValue = item.JRI.ID == Guid.Empty ? double.MaxValue : item.Quantity;
+            item.MaxValue = item.Quantity;
         }
         }
 
 
         base.Reload(criteria, columns, ref sort, action);
         base.Reload(criteria, columns, ref sort, action);