JobOrderGrid.cs 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  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. }
  20. public event DataModelUpdateEvent OnUpdateDataModel;
  21. public string SectionName => "Job Orders";
  22. public DataModel DataModel(Selection selection)
  23. {
  24. var ids = ExtractValues(x => x.ID, selection).ToArray();
  25. return new BaseDataModel<PurchaseOrderItem>(new Filter<PurchaseOrderItem>(x => x.ID).InList(ids));
  26. }
  27. public Guid JobID { get; set; }
  28. protected override void Reload(Filters<PurchaseOrderItem> criteria, Columns<PurchaseOrderItem> columns, ref SortOrder<PurchaseOrderItem> sort,
  29. Action<CoreTable, Exception> action)
  30. {
  31. criteria.Add(new Filter<PurchaseOrderItem>(x => x.Job.ID).IsEqualTo(JobID));
  32. base.Reload(criteria, columns, ref sort, action);
  33. }
  34. }
  35. }