using InABox.Core; using System; using System.Linq; namespace Comal.Classes { public class PurchaseOrderItemLookups : EntityLookup, ILookupDefinition { public override Columns DefineColumns() { return new Columns( x => x.ID, x => x.PurchaseOrderLink.PONumber, x => x.Product.Code ); } public override Filter? DefineFilter() { return null; } public Filter DefineFilter(BillLine[] items) { if (!items.Any()) { return new Filter().None(); } var supplierID = items.Select(x => x.BillLink.SupplierLink.ID).Distinct().SingleOrDefault(); if(supplierID == Guid.Empty) { return new Filter().None(); } return new Filter(x => x.PurchaseOrderLink.SupplierLink.ID).IsEqualTo(supplierID); } public Columns DefineFilterColumns() { return new Columns(x => x.BillLink.SupplierLink.ID); } public override SortOrder DefineSortOrder() { return new SortOrder(x => x.PurchaseOrderLink.PONumber).ThenBy(x => x.Created); } } }