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. );
  45. }
  46. public event DataModelUpdateEvent OnUpdateDataModel;
  47. public string SectionName => "Job Orders";
  48. public DataModel DataModel(Selection selection)
  49. {
  50. var ids = ExtractValues(x => x.ID, selection).ToArray();
  51. return new BaseDataModel<PurchaseOrderItem>(new Filter<PurchaseOrderItem>(x => x.ID).InList(ids));
  52. }
  53. public Job Job { get; set; }
  54. public JobPanelSettings Settings { get; set; }
  55. protected override void Reload(Filters<PurchaseOrderItem> criteria, Columns<PurchaseOrderItem> columns, ref SortOrder<PurchaseOrderItem> sort,
  56. 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. }