1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- using InABox.Core;
- using System;
- using System.Linq;
- namespace Comal.Classes
- {
- public class PurchaseOrderItemLookups : EntityLookup<PurchaseOrderItem>, ILookupDefinition<PurchaseOrderItem, BillLine>
- {
- public override Columns<PurchaseOrderItem> DefineColumns()
- {
- return new Columns<PurchaseOrderItem>(
- x => x.ID,
- x => x.PurchaseOrderLink.PONumber,
- x => x.Product.Code
- );
- }
- 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);
- }
- }
- }
|