|
@@ -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; }
|