PurchaseOrderItemLookups.cs 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. using InABox.Core;
  2. using System;
  3. using System.Collections.Generic;
  4. using System.Linq;
  5. namespace Comal.Classes
  6. {
  7. public class PurchaseOrderItemLookups : EntityLookup<PurchaseOrderItem>
  8. {
  9. public override Columns<PurchaseOrderItem> DefineColumns()
  10. {
  11. return new Columns<PurchaseOrderItem>(
  12. x => x.ID,
  13. x => x.PurchaseOrderLink.PONumber,
  14. x => x.Product.Code,
  15. x => x.Description,
  16. x => x.Qty,
  17. x => x.ExTax,
  18. x => x.TaxCode.ID,
  19. x => x.TaxCode.Code,
  20. x => x.TaxCode.Description,
  21. x => x.TaxCode.Rate,
  22. x => x.TaxRate,
  23. x => x.IncTax
  24. );
  25. }
  26. public override string FormatLookup(Dictionary<string, object?> values, IEnumerable<string> exclude)
  27. {
  28. return Guid.Equals(values["ID"],Guid.Empty)
  29. ? ""
  30. : $"{values["PurchaseOrderLink.PONumber"]}: {values["Qty"]} x {values["Description"]}";
  31. }
  32. public override Filter<PurchaseOrderItem>? DefineFilter()
  33. {
  34. return null;
  35. }
  36. public override SortOrder<PurchaseOrderItem> DefineSortOrder()
  37. {
  38. return new SortOrder<PurchaseOrderItem>(x => x.PurchaseOrderLink.PONumber).ThenBy(x => x.Created);
  39. }
  40. }
  41. }