Browse Source

Refactored CoreUtils.EqualsWithTolerance() into CoreUtils.IsEffectivelyEqual()
Added JobRequisitionItem and Image links to RequisitionItem
Corrected crash when adding RequisitionItems to Grid

frogsoftware 1 năm trước cách đây
mục cha
commit
77e7df4fa2

+ 1 - 1
prs.classes/Entities/Job/Requisitions/JobRequisitionItemLink.cs

@@ -38,7 +38,7 @@ namespace Comal.Classes
         [EnumLookupEditor(typeof(JobRequisitionItemStatus))]
         public JobRequisitionItemStatus Status { get; set; } = JobRequisitionItemStatus.NotChecked;
 
-        [IntegerEditor(Visible = Visible.Default, Editable = Editable.Disabled)]
+        [NullEditor]
         [Obsolete("Replaced with JobRequisitionItemPurchaseOrderItem")]
         public PurchaseOrderItemLink PurchaseOrderItem { get; set; }
     }

+ 10 - 2
prs.classes/Entities/Requisition/RequisitionItem.cs

@@ -24,7 +24,7 @@ namespace Comal.Classes
         [EntityRelationship(DeleteAction.Cascade)]
         [NullEditor]
         public JobLink JobLink { get; set; }
-
+        
         [EditorSequence(1)]
         [RequiredColumn]
         public override ProductLink Product { get; set; }
@@ -55,11 +55,19 @@ namespace Comal.Classes
         [EditorSequence(9)]
         [RequiredColumn]
         public StockLocationLink Location { get; set; }
-
+        
         [EditorSequence(10)]
+        [RequiredColumn]
+        public JobRequisitionItemLink JobRequisitionItem { get; set; }
+
+        [EditorSequence(11)]
         [TimestampEditor]
         public DateTime Picked { get; set; }
         
+        [EditorSequence("Image",1)]
+        [DataModelTableName("Image")]
+        public ImageDocumentLink Image { get; set; }
+        
         [NullEditor]
         public string BarCode { get; set; }
         

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

@@ -159,12 +159,12 @@ public class StockHoldingGrid : DynamicDataGrid<StockHolding>
                     && x.Job.ID == first.Job.ID
                     && x.Style.ID == first.Style.ID
                     && x.Dimensions.Unit.ID == first.Dimensions.Unit.ID
-                    && x.Dimensions.Length.EqualsWithTolerance(first.Dimensions.Length)
-                    && x.Dimensions.Width.EqualsWithTolerance(first.Dimensions.Width)
-                    && x.Dimensions.Height.EqualsWithTolerance(first.Dimensions.Height)
-                    && x.Dimensions.Quantity.EqualsWithTolerance(first.Dimensions.Quantity)
-                    && x.Dimensions.Weight.EqualsWithTolerance(first.Dimensions.Weight)
-                    && x.Dimensions.Value.EqualsWithTolerance(first.Dimensions.Value)
+                    && x.Dimensions.Length.IsEffectivelyEqual(first.Dimensions.Length)
+                    && x.Dimensions.Width.IsEffectivelyEqual(first.Dimensions.Width)
+                    && x.Dimensions.Height.IsEffectivelyEqual(first.Dimensions.Height)
+                    && x.Dimensions.Quantity.IsEffectivelyEqual(first.Dimensions.Quantity)
+                    && x.Dimensions.Weight.IsEffectivelyEqual(first.Dimensions.Weight)
+                    && x.Dimensions.Value.IsEffectivelyEqual(first.Dimensions.Value)
                     && String.Equals(x.Dimensions.UnitSize, first.Dimensions.UnitSize)
                 );
                 var units = selected.Aggregate(0.0d, (t, s) => t += s.Units);
@@ -175,12 +175,12 @@ public class StockHoldingGrid : DynamicDataGrid<StockHolding>
                     && x.Job.ID == first.Job.ID
                     && x.Style.ID == first.Style.ID
                     && x.Dimensions.Unit.ID == first.Dimensions.Unit.ID
-                    && x.Dimensions.Length.EqualsWithTolerance(first.Dimensions.Length)
-                    && x.Dimensions.Width.EqualsWithTolerance(first.Dimensions.Width)
-                    && x.Dimensions.Height.EqualsWithTolerance(first.Dimensions.Height)
-                    && x.Dimensions.Quantity.EqualsWithTolerance(first.Dimensions.Quantity)
-                    && x.Dimensions.Weight.EqualsWithTolerance(first.Dimensions.Weight)
-                    && x.Dimensions.Length.EqualsWithTolerance(first.Dimensions.Length)
+                    && x.Dimensions.Length.IsEffectivelyEqual(first.Dimensions.Length)
+                    && x.Dimensions.Width.IsEffectivelyEqual(first.Dimensions.Width)
+                    && x.Dimensions.Height.IsEffectivelyEqual(first.Dimensions.Height)
+                    && x.Dimensions.Quantity.IsEffectivelyEqual(first.Dimensions.Quantity)
+                    && x.Dimensions.Weight.IsEffectivelyEqual(first.Dimensions.Weight)
+                    && x.Dimensions.Length.IsEffectivelyEqual(first.Dimensions.Length)
                     && String.Equals(x.Dimensions.UnitSize, first.Dimensions.UnitSize)
                 );
                 if (holding == null)
@@ -200,12 +200,12 @@ public class StockHoldingGrid : DynamicDataGrid<StockHolding>
                     holding.Dimensions.UnitSize = first.Dimensions.UnitSize;
                 }
                 holding.Units = units;
-                holding.AverageValue = units.EqualsWithTolerance(0.0F) ? 0.0d : cost / units;
+                holding.AverageValue = units.IsEffectivelyEqual(0.0F) ? 0.0d : cost / units;
 
                 if (holdings.Contains(holding))
                     holdings.Remove(holding);
 
-                if (holding.IsChanged() && !holding.Units.EqualsWithTolerance(0.0f))
+                if (holding.IsChanged() && !holding.Units.IsEffectivelyEqual(0.0f))
                 {
                     AddMessage(holding.ID != Guid.Empty ? "updated" : "added");
                     updates.Add(holding);
@@ -276,7 +276,7 @@ public class StockHoldingGrid : DynamicDataGrid<StockHolding>
                 .Add(x => x.Requisition.Description)
                 .Add(x => x.Qty))
             .ToObjects<JobRequisitionItem>();
-        if (!holding.Available.EqualsWithTolerance(0.0F))
+        if (!holding.Available.IsEffectivelyEqual(0.0F))
             items = CoreUtils.One(new JobRequisitionItem() { Qty = holding.Available }).Concat(items);
         return items;
     }
@@ -286,7 +286,7 @@ public class StockHoldingGrid : DynamicDataGrid<StockHolding>
         if (row is null) return;
         var holding = row.ToObject<StockHolding>();
 
-        if (holding.Available.EqualsWithTolerance(holding.Units))
+        if (holding.Available.IsEffectivelyEqual(holding.Units))
             column.AddItem("(No Requisitions in this Holding", null, null).IsEnabled = false;
         else
             column.AddItem("View Requisition Items", null, ViewRequisitions_Click);

+ 0 - 2
prs.desktop/Panels/Products/Master List/ProductsGrid.cs

@@ -22,8 +22,6 @@ namespace PRSDesktop
         public ProductsGrid()
         {
             HiddenColumns.Add(x => x.LastUpdate);
-            HiddenColumns.Add(x => x.Image.ID);
-            HiddenColumns.Add(x => x.Image.FileName);
             HiddenColumns.Add(x => x.Group.ID);
             HiddenColumns.Add(x=>x.UnitOfMeasure.ID);
             HiddenColumns.Add(x => x.Code);

+ 5 - 0
prs.desktop/Panels/Requisitions/RequisitionItemGrid.cs

@@ -51,6 +51,11 @@ namespace PRSDesktop
             HiddenColumns.Add(x => x.Style.ID);
             HiddenColumns.Add(x => x.Style.Code);
             HiddenColumns.Add(x => x.Picked);
+            
+            HiddenColumns.Add(x => x.Image.ID);
+            HiddenColumns.Add(x => x.Image.FileName);
+            ActionColumns.Add(new DynamicImageManagerColumn<RequisitionItem>(this, x => x.Image, true) { Position = DynamicActionColumnPosition.Start });
+            
             ActionColumns.Add(new DynamicImageColumn(Pick_Image, Pick_Click)
             {
                 ToolTip = Pick_ToolTip

+ 1 - 1
prs.desktop/prsdesktop.iss

@@ -5,7 +5,7 @@
 #pragma verboselevel 9
 
 #define MyAppName "PRS Desktop"
-#define MyAppVersion "7.59a"
+#define MyAppVersion "7.60"
 #define MyAppPublisher "PRS Digital"
 #define MyAppURL "https://www.prs-software.com.au"
 #define MyAppExeName "PRSDesktop.exe"

+ 1 - 1
prs.licensing/PRSLicensing.iss

@@ -5,7 +5,7 @@
 #pragma verboselevel 9
 
 #define MyAppName "PRS Licensing"
-#define MyAppVersion "7.59a"
+#define MyAppVersion "7.60"
 #define MyAppPublisher "PRS Digital"
 #define MyAppURL "https://www.prs-software.com.au"
 #define MyAppExeName "PRSLicensing.exe"

+ 1 - 1
prs.server/PRSServer.iss

@@ -5,7 +5,7 @@
 #pragma verboselevel 9
 
 #define MyAppName "PRS Server"
-#define MyAppVersion "7.59a"
+#define MyAppVersion "7.60"
 #define MyAppPublisher "PRS Digital"
 #define MyAppURL "https://www.prs-software.com.au"
 #define MyAppExeName "PRSServer.exe"

+ 1 - 1
prs.stores/StockHoldingStore.cs

@@ -76,7 +76,7 @@ public class StockHoldingStore : BaseStore<StockHolding>
         holding.AverageValue = holding.Units != 0 ? holding.Value / holding.Units : 0.0F;
 
         // Automagically clean up empty holdings
-        if (holding.Units.EqualsWithTolerance(0.0F))
+        if (holding.Units.IsEffectivelyEqual(0.0F))
         {
             if (holding.ID != Guid.Empty)
                 DbFactory.Provider.Delete(holding, "");