PurchaseOrderItemLookups.cs 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  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.ReceivedDate)
  49. .Add(x => x.Consignment.ID)
  50. .Add(x => x.Consignment.ExTax)
  51. .AddDimensionsColumns(x => x.Dimensions, Dimensions.ColumnsType.Data)
  52. .Add(x => x.StockLocation.ID);
  53. return result;
  54. }
  55. }
  56. }