JobsRequiringBookingsWidget.cs 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. using System;
  2. using Comal.Classes;
  3. using InABox.Core;
  4. using InABox.DynamicGrid;
  5. using PRSDesktop.WidgetGroups;
  6. namespace PRSDesktop
  7. {
  8. internal class JobsRequiringBookingsDashboardProperties : IDashboardProperties { }
  9. internal class JobsRequiringBookingsDashboardElement : DashboardElement<JobsRequiringBookingsWidget, Maintenance, JobsRequiringBookingsDashboardProperties> { }
  10. internal class JobsRequiringBookingsWidget : DynamicDataGrid<Job>, ISpecificGrid, IDashboardWidget<Maintenance, JobsRequiringBookingsDashboardProperties>
  11. {
  12. public JobsRequiringBookingsDashboardProperties Properties { get; set; }
  13. public JobsRequiringBookingsWidget()
  14. {
  15. Options.AddRange(DynamicGridOption.SelectColumns, DynamicGridOption.FilterRows);
  16. ActionColumns.Add(new DynamicMenuColumn(CreateJobMenu));
  17. ColumnsTag = GetType().Name;
  18. }
  19. public void Refresh()
  20. {
  21. Refresh(false, true);
  22. }
  23. public void Setup()
  24. {
  25. Refresh(true, false);
  26. }
  27. public void Shutdown()
  28. {
  29. }
  30. private void CreateJobMenu(DynamicMenuColumn column, CoreRow row)
  31. {
  32. column.AddItem("Book Now", null, BookJob);
  33. }
  34. private void BookJob(CoreRow row)
  35. {
  36. }
  37. protected override void Reload(Filters<Job> criteria, Columns<Job> columns, ref SortOrder<Job> sort, Action<CoreTable, Exception> action)
  38. {
  39. criteria.Add(new Filter<Job>(x => x.JobType).IsEqualTo(JobType.Service).And(x => x.Completed).IsEqualTo(DateTime.MinValue)
  40. .And(x => x.OpenAssignments).IsEqualTo(0));
  41. base.Reload(criteria, columns, ref sort, action);
  42. }
  43. }
  44. }