JobOrderGrid.cs 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. using System;
  2. using System.Linq;
  3. using Comal.Classes;
  4. using InABox.Core;
  5. using InABox.DynamicGrid;
  6. namespace PRSDesktop
  7. {
  8. public class JobOrderGrid : DynamicDataGrid<PurchaseOrderItem>, IJobControl, IDataModelSource
  9. {
  10. public JobOrderGrid()
  11. {
  12. ColumnsTag = "JobOrders";
  13. HiddenColumns.Add(x => x.PurchaseOrderLink.SupplierLink.ID);
  14. HiddenColumns.Add(x => x.PurchaseOrderLink.Category.ID);
  15. HiddenColumns.Add(x => x.ID);
  16. HiddenColumns.Add(x => x.Product.ID);
  17. HiddenColumns.Add(x => x.Product.Code);
  18. HiddenColumns.Add(x => x.Product.Name);
  19. HiddenColumns.Add(x => x.Description);
  20. HiddenColumns.Add(x => x.TaxCode.ID);
  21. HiddenColumns.Add(x => x.TaxCode.Code);
  22. HiddenColumns.Add(x => x.TaxCode.Description);
  23. HiddenColumns.Add(x => x.TaxCode.Rate);
  24. HiddenColumns.Add(x => x.TaxRate);
  25. HiddenColumns.Add(x => x.ExTax);
  26. HiddenColumns.Add(x => x.Tax);
  27. HiddenColumns.Add(x => x.IncTax);
  28. HiddenColumns.Add(x => x.BillLine.ID);
  29. HiddenColumns.Add(x => x.BillLine.Deleted);
  30. HiddenColumns.Add(x => x.Consignment.ID);
  31. HiddenColumns.Add(x => x.Product.DigitalForm.ID);
  32. HiddenColumns.Add(x => x.Product.DigitalForm.Description);
  33. HiddenColumns.Add(x => x.PurchaseOrderLink.SupplierLink.Code);
  34. HiddenColumns.Add(x => x.PurchaseOrderLink.SupplierLink.Name);
  35. }
  36. protected override void DoReconfigure(FluentList<DynamicGridOption> options)
  37. {
  38. base.DoReconfigure(options);
  39. options.AddRange(
  40. DynamicGridOption.RecordCount,
  41. DynamicGridOption.SelectColumns,
  42. DynamicGridOption.FilterRows,
  43. DynamicGridOption.MultiSelect,
  44. DynamicGridOption.ExportData
  45. );
  46. }
  47. public event DataModelUpdateEvent OnUpdateDataModel;
  48. public string SectionName => "Job Orders";
  49. public DataModel DataModel(Selection selection)
  50. {
  51. var ids = ExtractValues(x => x.ID, selection).ToArray();
  52. return new BaseDataModel<PurchaseOrderItem>(new Filter<PurchaseOrderItem>(x => x.ID).InList(ids));
  53. }
  54. public Job Job { get; set; }
  55. public JobPanelSettings Settings { get; set; }
  56. protected override void Reload(Filters<PurchaseOrderItem> criteria, Columns<PurchaseOrderItem> columns, ref SortOrder<PurchaseOrderItem>? sort, Action<CoreTable?, Exception?> action)
  57. {
  58. criteria.Add(new Filter<PurchaseOrderItem>(x => x.Job.ID).IsEqualTo(Job.ID));
  59. base.Reload(criteria, columns, ref sort, action);
  60. }
  61. }
  62. }