StockAreaLoookups.cs 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. using System.Linq;
  2. using InABox.Core;
  3. namespace Comal.Classes
  4. {
  5. public class StockAreaLoookups : EntityLookup<StockArea>, ILookupDefinition<StockArea, StockLocation>
  6. {
  7. public Filter<StockArea> DefineFilter(StockLocation[] items)
  8. {
  9. var ids = items.Select(x => x.Warehouse.ID).Distinct().ToArray();
  10. if (ids.Length == 1)
  11. return new Filter<StockArea>(x => x.Warehouse.ID).IsEqualTo(ids[0]).And(x => x.Active).IsEqualTo(true);
  12. return new Filter<StockArea>(x => x.ID).IsEqualTo(CoreUtils.FullGuid);
  13. }
  14. Columns<StockLocation> ILookupDefinition<StockArea, StockLocation>.DefineFilterColumns()
  15. => new Columns<StockLocation>(x => x.Warehouse.ID);
  16. public override Columns<StockArea> DefineColumns()
  17. {
  18. return new Columns<StockArea>(
  19. x => x.ID,
  20. x => x.Code,
  21. x => x.Description
  22. );
  23. }
  24. public override Filter<StockArea> DefineFilter()
  25. {
  26. return new Filter<StockArea>(x => x.Active).IsEqualTo(true);
  27. }
  28. public override SortOrder<StockArea> DefineSortOrder()
  29. {
  30. return new SortOrder<StockArea>(x => x.Code);
  31. }
  32. }
  33. }