PurchaseOrderItemLookups.cs 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  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 Columns.None<PurchaseOrderItem>().Add(
  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. public override Columns<PurchaseOrderItem> RequiredColumns()
  41. {
  42. var result = base.RequiredColumns()
  43. .Add(x => x.PurchaseOrderLink.PONumber)
  44. .Add(x => x.Qty)
  45. .Add(x => x.Cost)
  46. .Add(x => x.Product.ID)
  47. .Add(x => x.Style.ID)
  48. .Add(x => x.Job.ID)
  49. .Add(x=>x.ReceivedDate)
  50. .Add(x => x.Consignment.ID)
  51. .Add(x => x.Consignment.ExTax)
  52. .AddDimensionsColumns(x => x.Dimensions, Dimensions.ColumnsType.Data)
  53. .Add(x => x.StockLocation.ID);
  54. return result;
  55. }
  56. }
  57. }