Selaa lähdekoodia

Improved lookup for JRIPOI.

Kenric Nugteren 1 vuosi sitten
vanhempi
commit
bcde8fa43f

+ 3 - 0
prs.classes/Entities/Job/Requisitions/JobRequisitionItemLink.cs

@@ -14,6 +14,9 @@ namespace Comal.Classes
         [EntityRelationship(DeleteAction.Cascade)]
         public JobRequisitionLink Requisition { get; set; }
 
+        [NullEditor]
+        public JobLink Job { get; set; }
+
         [EntityRelationship(DeleteAction.SetNull)]
         [EditorSequence(0)]
         public ProductLink Product { get; set; }

+ 20 - 1
prs.classes/Entities/PurchaseOrder/PurchaseOrderItemLookups.cs

@@ -5,7 +5,8 @@ using System.Linq;
 
 namespace Comal.Classes
 {
-    public class PurchaseOrderItemLookups : EntityLookup<PurchaseOrderItem>, ILookupDefinition<PurchaseOrderItem, BillLine>
+    public class PurchaseOrderItemLookups : EntityLookup<PurchaseOrderItem>, ILookupDefinition<PurchaseOrderItem, BillLine>,
+        ILookupDefinition<PurchaseOrderItem, JobRequisitionItemPurchaseOrderItem>
     {
         public override Columns<PurchaseOrderItem> DefineColumns()
         {
@@ -59,5 +60,23 @@ namespace Comal.Classes
         {
             return new SortOrder<PurchaseOrderItem>(x => x.PurchaseOrderLink.PONumber).ThenBy(x => x.Created);
         }
+
+        public Filter<PurchaseOrderItem>? DefineFilter(JobRequisitionItemPurchaseOrderItem[] items)
+        {
+            var jobs = items.Select(x => x.JobRequisitionItem.Job.ID).Distinct().ToArray();
+            var products = items.Select(x => x.JobRequisitionItem.Product.ID).Distinct().ToArray();
+            if(jobs.Length == 1 && products.Length == 1)
+            {
+                return new Filter<PurchaseOrderItem>(x => x.Job.ID).IsEqualTo(jobs.First())
+                    .And(x => x.Product.ID).IsEqualTo(products.First());
+            }
+            {
+                return new Filter<PurchaseOrderItem>().None();
+            }
+        }
+
+        Columns<JobRequisitionItemPurchaseOrderItem> ILookupDefinition<PurchaseOrderItem, JobRequisitionItemPurchaseOrderItem>.DefineFilterColumns() =>
+            new Columns<JobRequisitionItemPurchaseOrderItem>(x => x.JobRequisitionItem.Job.ID)
+                .Add(x => x.JobRequisitionItem.Product.ID);
     }
 }