JobOrderGrid.cs 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  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. Options.AddRange(
  14. DynamicGridOption.RecordCount,
  15. DynamicGridOption.SelectColumns,
  16. DynamicGridOption.FilterRows,
  17. DynamicGridOption.MultiSelect
  18. );
  19. HiddenColumns.Add(x => x.PurchaseOrderLink.SupplierLink.ID);
  20. HiddenColumns.Add(x => x.PurchaseOrderLink.Category.ID);
  21. HiddenColumns.Add(x => x.ID);
  22. HiddenColumns.Add(x => x.Product.ID);
  23. HiddenColumns.Add(x => x.Product.Code);
  24. HiddenColumns.Add(x => x.Product.Name);
  25. HiddenColumns.Add(x => x.Description);
  26. HiddenColumns.Add(x => x.TaxCode.ID);
  27. HiddenColumns.Add(x => x.TaxCode.Code);
  28. HiddenColumns.Add(x => x.TaxCode.Description);
  29. HiddenColumns.Add(x => x.TaxCode.Rate);
  30. HiddenColumns.Add(x => x.TaxRate);
  31. HiddenColumns.Add(x => x.ExTax);
  32. HiddenColumns.Add(x => x.Tax);
  33. HiddenColumns.Add(x => x.IncTax);
  34. HiddenColumns.Add(x => x.BillLine.ID);
  35. HiddenColumns.Add(x => x.BillLine.Deleted);
  36. HiddenColumns.Add(x => x.Consignment.ID);
  37. HiddenColumns.Add(x => x.Product.DigitalForm.ID);
  38. HiddenColumns.Add(x => x.Product.DigitalForm.Description);
  39. HiddenColumns.Add(x => x.PurchaseOrderLink.SupplierLink.Code);
  40. HiddenColumns.Add(x => x.PurchaseOrderLink.SupplierLink.Name);
  41. }
  42. public event DataModelUpdateEvent OnUpdateDataModel;
  43. public string SectionName => "Job Orders";
  44. public DataModel DataModel(Selection selection)
  45. {
  46. var ids = ExtractValues(x => x.ID, selection).ToArray();
  47. return new BaseDataModel<PurchaseOrderItem>(new Filter<PurchaseOrderItem>(x => x.ID).InList(ids));
  48. }
  49. public Guid ParentID { get; set; }
  50. public JobPanelSettings Settings { get; set; }
  51. protected override void Reload(Filters<PurchaseOrderItem> criteria, Columns<PurchaseOrderItem> columns, ref SortOrder<PurchaseOrderItem> sort,
  52. Action<CoreTable, Exception> action)
  53. {
  54. criteria.Add(new Filter<PurchaseOrderItem>(x => x.Job.ID).IsEqualTo(ParentID));
  55. base.Reload(criteria, columns, ref sort, action);
  56. }
  57. }
  58. }