Forráskód Böngészése

Fixes and improvements to JRI lookup on POIA

Kenric Nugteren 8 hónapja
szülő
commit
e3916412a8

+ 29 - 2
prs.classes/Entities/PurchaseOrder/PurchaseOrderItemAllocation.cs

@@ -49,12 +49,39 @@ namespace Comal.Classes
         {
             public override Columns<PurchaseOrderItemAllocation> DefineFilterColumns()
             {
-                return base.DefineFilterColumns().Add(x => x.Job.ID);
+                return base.DefineFilterColumns().Add(x => x.Job.ID).Add(x => x.Item.Product.ID);
             }
 
             public override Filter<JobRequisitionItem>? DefineFilter(PurchaseOrderItemAllocation[] items)
             {
-                return new Filter<JobRequisitionItem>(x => x.Job.ID).InList(items.ToArray(x => x.Job.ID));
+                var jobIDs = items.Select(x => x.Job.ID).Distinct().ToArray();
+                if(jobIDs.Length > 1)
+                {
+                    return new Filter<JobRequisitionItem>().None();
+                }
+                var jobID = jobIDs.FirstOrDefault();
+
+                var productID = items.Select(x => x.Item.Product.ID).FirstOrDefault();
+                if(productID == Guid.Empty)
+                {
+                    return new Filter<JobRequisitionItem>().None();
+                }
+
+                return new Filter<JobRequisitionItem>(x => x.Job.ID).IsEqualTo(jobID)
+                    .And(x => x.Product.ID).IsEqualTo(productID);
+            }
+
+            public override Columns<JobRequisitionItem> DefineColumns()
+            {
+                return Columns.None<JobRequisitionItem>().Add(x => x.Job.JobNumber).Add(x => x.Requisition.Number).Add(x => x.Requisition.Description);
+            }
+
+            public override string FormatDisplay(CoreRow row)
+            {
+                var jobNumber = row.Get<JobRequisitionItem, string>(x => x.Job.JobNumber);
+                var requiNumber = row.Get<JobRequisitionItem, int>(x => x.Requisition.Number);
+                var requiDesc = row.Get<JobRequisitionItem, string>(x => x.Requisition.Description);
+                return $"{jobNumber}: #{requiNumber} ({requiDesc})";
             }
         }
         /// <summary>