|
@@ -1,8 +1,10 @@
|
|
|
using InABox.Core;
|
|
|
+using System;
|
|
|
+using System.Linq;
|
|
|
|
|
|
namespace Comal.Classes
|
|
|
{
|
|
|
- public class PurchaseOrderItemLookups : EntityLookup<PurchaseOrderItem>
|
|
|
+ public class PurchaseOrderItemLookups : EntityLookup<PurchaseOrderItem>, ILookupDefinition<PurchaseOrderItem, BillLine>
|
|
|
{
|
|
|
public override Columns<PurchaseOrderItem> DefineColumns()
|
|
|
{
|
|
@@ -13,11 +15,30 @@ namespace Comal.Classes
|
|
|
);
|
|
|
}
|
|
|
|
|
|
- public override Filter<PurchaseOrderItem> DefineFilter()
|
|
|
+ public override Filter<PurchaseOrderItem>? DefineFilter()
|
|
|
{
|
|
|
return null;
|
|
|
}
|
|
|
|
|
|
+ public Filter<PurchaseOrderItem> DefineFilter(BillLine[] items)
|
|
|
+ {
|
|
|
+ if (!items.Any())
|
|
|
+ {
|
|
|
+ return new Filter<PurchaseOrderItem>().None();
|
|
|
+ }
|
|
|
+ var supplierID = items.Select(x => x.BillLink.SupplierLink.ID).Distinct().SingleOrDefault();
|
|
|
+ if(supplierID == Guid.Empty)
|
|
|
+ {
|
|
|
+ return new Filter<PurchaseOrderItem>().None();
|
|
|
+ }
|
|
|
+ return new Filter<PurchaseOrderItem>(x => x.PurchaseOrderLink.SupplierLink.ID).IsEqualTo(supplierID);
|
|
|
+ }
|
|
|
+
|
|
|
+ public Columns<BillLine> DefineFilterColumns()
|
|
|
+ {
|
|
|
+ return new Columns<BillLine>(x => x.BillLink.SupplierLink.ID);
|
|
|
+ }
|
|
|
+
|
|
|
public override SortOrder<PurchaseOrderItem> DefineSortOrder()
|
|
|
{
|
|
|
return new SortOrder<PurchaseOrderItem>(x => x.PurchaseOrderLink.PONumber).ThenBy(x => x.Created);
|