Browse Source

Added TotalAllocated and Shortage Aggregates to Reservation Management Screen

frankvandenbos 9 months ago
parent
commit
31a62bba99
1 changed files with 25 additions and 2 deletions
  1. 25 2
      prs.classes/Entities/Job/Requisitions/JobRequisitionItem.cs

+ 25 - 2
prs.classes/Entities/Job/Requisitions/JobRequisitionItem.cs

@@ -225,8 +225,7 @@ namespace Comal.Classes
         [DoubleEditor(Editable = Editable.Disabled)]
         [EditorSequence(16)]
         public double PickRequested { get; set; }
-
-    
+        
         private class IssuedFormula : ComplexFormulaGenerator<JobRequisitionItem, double>
         {
             public override IComplexFormulaNode<JobRequisitionItem, double> GetFormula() =>
@@ -241,6 +240,30 @@ namespace Comal.Classes
         [DoubleEditor(Editable = Editable.Disabled)]
         [EditorSequence(17)]
         public double Issued { get; set; }
+        
+        private class TotalAllocatedFormula : ComplexFormulaGenerator<JobRequisitionItem, double>
+        {
+            public override IComplexFormulaNode<JobRequisitionItem, double> GetFormula() =>
+                Formula(FormulaOperator.Multiply, Property(x => x.Allocated), Property(x => x.Dimensions.Value));
+        }
+        [DoubleEditor(Editable = Editable.Hidden)]
+        [ComplexFormula(typeof(TotalAllocatedFormula))]
+        public double TotalAllocated { get; set; }
+        
+        private class ShortageFormula : ComplexFormulaGenerator<JobRequisitionItem, bool>
+        {
+            public override IComplexFormulaNode<JobRequisitionItem, bool> GetFormula() =>
+                If<JobRequisitionItem, double, bool>(
+                        Property<JobRequisitionItem, double>(x => x.TotalQty)
+                        , Condition.GreaterThan,
+                        Property<JobRequisitionItem, double>(x => x.TotalAllocated))
+                    .Then(Constant(true))
+                    .Else(Constant(false));
+            //Formula(FormulaOperator.Subtract, Property(x => x.InStock), Property(x => x.Allocated));
+        }
+        [ComplexFormula(typeof(ShortageFormula))]
+        [CheckBoxEditor(Editable = Editable.Hidden)]
+        public bool Shortage { get; set; }
 
         [EntityRelationship(DeleteAction.SetNull)]
         [RequiredColumn]