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