Browse Source

Merge branch 'non_broken_branch' into kenric

Kenric Nugteren 10 months ago
parent
commit
bce72744cd

+ 2 - 2
prs.classes/Entities/PurchaseOrder/PurchaseOrderItem.cs

@@ -161,7 +161,7 @@ namespace Comal.Classes
         public ProductLink ProductLink
         {
             get { return Product; }
-            set { Product = value; }
+            set { /* We cannot set the 'Product' to this value, because that would stuff the SubObject internal linking, so we do nothing instead. */ }
         }
         
         [EntityRelationship(DeleteAction.SetNull)]
@@ -170,7 +170,7 @@ namespace Comal.Classes
         public ProductStyleLink StyleLink
         {
             get { return Style; }
-            set { Style = value; }
+            set { /* Same as ProductLink */ }
         }
         
         

+ 7 - 7
prs.desktop/Panels/Products/Locations/StockHoldingGrid.cs

@@ -221,9 +221,9 @@ public class StockHoldingGrid : DynamicDataGrid<StockHolding>
                     transferin.Received = calculator.NewAvailable;
                     transferin.Transaction = transferout.Transaction;
                     transferin.Type = StockMovementType.TransferIn;
-                    
-                    Client.Save([transferout,transferin], "Converted Dimensions");
-                    
+
+                    SaveBatch(StockMovementBatchType.Transfer, [transferout, transferin], message: "Converted Dimensions");
+                    DoChanged();
                     Refresh(false,true);
                 }
                     
@@ -643,20 +643,20 @@ public class StockHoldingGrid : DynamicDataGrid<StockHolding>
         return movement;
     }
 
-    private static void SaveBatch(StockMovementBatchType type, IList<StockMovement> movements)
+    private static void SaveBatch(StockMovementBatchType type, IList<StockMovement> movements, string? message = null)
     {
         var batch = new StockMovementBatch();
         batch.Type = type;
-        batch.Notes = batch.Type + " batch created from Desktop Stock Location Screen";
+        batch.Notes = message ?? batch.Type + " batch created from Desktop Stock Location Screen";
         batch.Employee.ID = App.EmployeeID;
-        new Client<StockMovementBatch>().Save(batch, "created from Desktop Stock Location Screen");
+        new Client<StockMovementBatch>().Save(batch, message ?? "created from Desktop Stock Location Screen");
 
         foreach (var mvt in movements)
         { 
             mvt.Batch.ID = batch.ID;
         }
 
-        new Client<StockMovement>().Save(movements, "Updating batch from Desktop Stock Location Screen");
+        new Client<StockMovement>().Save(movements, message ?? "Updating batch from Desktop Stock Location Screen");
     }
 
 

+ 15 - 15
prs.desktop/Panels/Products/Locations/StockTransformWindow.xaml

@@ -16,9 +16,9 @@
     </Window.Resources>
     <Grid Margin="5">
         <Grid.ColumnDefinitions>
-            <ColumnDefinition Width="*"/>
-            <ColumnDefinition Width="80"/>
             <ColumnDefinition Width="80"/>
+            <ColumnDefinition Width="*"/>
+            <ColumnDefinition Width="*"/>
         </Grid.ColumnDefinitions>
         <Grid.RowDefinitions>
             <RowDefinition Height="40"/>
@@ -34,7 +34,7 @@
             <RowDefinition Height="40"/>
         </Grid.RowDefinitions>
         
-        <syncfusion:SfTextBoxExt
+        <TextBox
             Grid.Row="0"
             Grid.Column="1"
             Text="Current"
@@ -42,7 +42,7 @@
             VerticalContentAlignment="Center"
             Margin="5,5,0,0"
             Background="WhiteSmoke"/>
-        <syncfusion:SfTextBoxExt
+        <TextBox
             Grid.Row="0"
             Grid.Column="2"
             Text="New"
@@ -52,7 +52,7 @@
             Background="WhiteSmoke"
             IsReadOnly="True"/>
         
-        <syncfusion:SfTextBoxExt
+        <TextBox
             Grid.Row="1"
             Grid.Column="0"
             Text="Height"
@@ -83,7 +83,7 @@
             VerticalContentAlignment="Center"
             Background="LightYellow"/>
         
-        <syncfusion:SfTextBoxExt
+        <TextBox
             Grid.Row="2"
             Grid.Column="0"
             Text="Width"
@@ -114,7 +114,7 @@
             VerticalContentAlignment="Center"
             Background="LightYellow"/>
         
-        <syncfusion:SfTextBoxExt
+        <TextBox
             Grid.Row="3"
             Grid.Column="0"
             Text="Length"
@@ -145,7 +145,7 @@
             VerticalContentAlignment="Center"
             Background="LightYellow"/>
         
-        <syncfusion:SfTextBoxExt
+        <TextBox
             Grid.Row="4"
             Grid.Column="0"
             Text="Quantity"
@@ -176,7 +176,7 @@
             VerticalContentAlignment="Center"
             Background="LightYellow"/>
         
-        <syncfusion:SfTextBoxExt
+        <TextBox
             Grid.Row="5"
             Grid.Column="0"
             Text="Weight"
@@ -207,7 +207,7 @@
             VerticalContentAlignment="Center"
             Background="LightYellow"/>
         
-        <syncfusion:SfTextBoxExt
+        <TextBox
             Grid.Row="7"
             Grid.Column="0"
             Text="Unit Size"
@@ -215,8 +215,7 @@
             Background="WhiteSmoke"
             Margin="5,5,0,0"
             IsReadOnly="True"/>
-        <syncfusion:SfTextBoxExt
-
+        <TextBox
             Text="{Binding OldUnitSize}"
             Grid.Row="7"
             Grid.Column="1"
@@ -227,7 +226,7 @@
             VerticalContentAlignment="Center"
             Background="WhiteSmoke"
             IsReadOnly="True"/>
-        <syncfusion:SfTextBoxExt
+        <TextBox
             Text="{Binding NewUnitSize}"
             Grid.Row="7"
             Grid.Column="2"
@@ -239,7 +238,7 @@
             Background="WhiteSmoke"
             IsReadOnly="True"/>
 
-        <syncfusion:SfTextBoxExt
+        <TextBox
             Grid.Row="8"
             Grid.Column="0"
             Text="Available"
@@ -276,7 +275,8 @@
             Grid.Column="1"
             Content="OK"
             Margin="5,5,0,0"
-            Click="OK_Click"/>
+            Click="OK_Click"
+            IsEnabled="{Binding CanSave}"/>
         <Button
             Grid.Row="10"
             Grid.Column="2"

+ 54 - 7
prs.desktop/Panels/Products/Locations/StockTransformWindow.xaml.cs

@@ -10,6 +10,9 @@ public class StockTransformWindowViewModel : INotifyPropertyChanged
 {
     private double _oldAvailable;
     private double _newAvailable;
+    private string oldUnitSize;
+    private string newUnitSize;
+    private double maxAvailable;
 
     public void Load(StockHolding holding)
     {
@@ -30,12 +33,38 @@ public class StockTransformWindowViewModel : INotifyPropertyChanged
 
     public StockDimensions NewDimensions { get; private set; }
 
-    public string OldUnitSize { get; set; }
-    
-    public string NewUnitSize { get; set; }
+    public bool CanSave => NewDimensions.Value != 0.0 && !NewDimensions.Equals(OldDimensions);
+
+    public string OldUnitSize
+    {
+        get => oldUnitSize;
+        set
+        {
+            oldUnitSize = value;
+            OnPropertyChanged();
+        }
+    }
+
+    public string NewUnitSize
+    {
+        get => newUnitSize;
+        set
+        {
+            newUnitSize = value;
+            OnPropertyChanged();
+        }
+    }
+
+    public double MaxAvailable
+    {
+        get => maxAvailable;
+        private set
+        {
+            maxAvailable = value;
+            OnPropertyChanged();
+        }
+    }
 
-    public double MaxAvailable { get; private set; }
-    
     public double OldAvailable
     {
         get => _oldAvailable;
@@ -43,8 +72,17 @@ public class StockTransformWindowViewModel : INotifyPropertyChanged
         {
             if (value.Equals(_oldAvailable)) return;
             _oldAvailable = value;
-            NewAvailable = value * OldDimensions.Value / NewDimensions.Value;
+
+            if(NewDimensions.Value == 0.0)
+            {
+                NewAvailable = 0.0;
+            }
+            else
+            {
+                NewAvailable = value * OldDimensions.Value / NewDimensions.Value;
+            }
             OnPropertyChanged();
+            OnPropertyChanged(nameof(CanSave));
         }
     }
 
@@ -65,9 +103,18 @@ public class StockTransformWindowViewModel : INotifyPropertyChanged
         NewDimensions = new StockDimensions();
         NewDimensions.PropertyChanged += (sender, args) =>
         {
-            NewAvailable = OldAvailable * OldDimensions.Value / NewDimensions.Value;
+            if(NewDimensions.Value == 0.0)
+            {
+                NewAvailable = 0.0;
+            }
+            else
+            {
+                NewAvailable = OldAvailable * OldDimensions.Value / NewDimensions.Value;
+            }
             OldUnitSize = OldDimensions.UnitSize;
             NewUnitSize = NewDimensions.UnitSize;
+
+            OnPropertyChanged(nameof(CanSave));
         };
     }