Bläddra i källkod

Added available units aggregate for stock holding grid

Kenric Nugteren 1 år sedan
förälder
incheckning
db7ba03b60
1 ändrade filer med 23 tillägg och 0 borttagningar
  1. 23 0
      prs.classes/Entities/Stock/StockHolding.cs

+ 23 - 0
prs.classes/Entities/Stock/StockHolding.cs

@@ -68,6 +68,25 @@ namespace Comal.Classes
 
         public override AggregateCalculation Calculation => AggregateCalculation.Sum;
     }
+
+    public class StockHoldingAvailableAggregate : CoreAggregate<StockHolding, StockMovement, double>
+    {
+        public override Expression<Func<StockMovement, double>> Aggregate => x => x.Units;
+
+        public override Dictionary<Expression<Func<StockMovement, object>>, Expression<Func<StockHolding, object>>> Links =>
+            new Dictionary<Expression<Func<StockMovement, object>>, Expression<Func<StockHolding, object>>>()
+            {
+                { StockMovement => StockMovement.Product.ID, StockHolding => StockHolding.Product.ID },
+                { StockMovement => StockMovement.Job.ID, StockHolding => StockHolding.Job.ID },
+                { StockMovement => StockMovement.Location.ID, StockHolding => StockHolding.Location.ID },
+                { StockMovement => StockMovement.Style.ID, StockHolding => StockHolding.Style.ID },
+                { StockMovement => StockMovement.Dimensions.UnitSize, StockHolding => StockHolding.Dimensions.UnitSize }
+            };
+
+        public override AggregateCalculation Calculation => AggregateCalculation.Sum;
+
+        public override Filter<StockMovement>? Filter => new Filter<StockMovement>(x => x.JobRequisitionItem.ID).IsEqualTo(Guid.Empty);
+    }
     
     public class StockHoldingWeightFormula : IFormula<StockHolding, double>
     {
@@ -159,6 +178,10 @@ namespace Comal.Classes
         [DoubleEditor(Editable = Editable.Disabled, Summary = Summary.Sum)]
         public double Units { get; set; }
         
+        [Aggregate(typeof(StockHoldingAvailableAggregate))]
+        [DoubleEditor(Editable = Editable.Disabled, Summary = Summary.Sum)]
+        public double Available { get; set; }
+        
         [Aggregate(typeof(StockHoldingQuantityAggregate))]
         [DoubleEditor(Editable = Editable.Disabled, Summary = Summary.Sum)]
         public double Qty { get; set; }