MyRequisitionsList.cs 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Threading;
  5. using Comal.Classes;
  6. using InABox.Core;
  7. using InABox.DynamicGrid;
  8. namespace PRSDesktop;
  9. public class MyRequisitionsList : DynamicDataGrid<Requisition>
  10. {
  11. public MyRequisitionsList() : base()
  12. {
  13. ColumnsTag = nameof(MyRequisitionsList);
  14. HiddenColumns.Add(x=>x.Request);
  15. HiddenColumns.Add(x=>x.Destination.Description);
  16. }
  17. public override DynamicGridColumns GenerateColumns()
  18. {
  19. var columns = new DynamicGridColumns();
  20. columns.Add<Requisition>(x => x.Number,50,"Req #","",Alignment.MiddleCenter);
  21. columns.Add<Requisition>(x => x.Title,0,"Subject","",Alignment.MiddleLeft);
  22. columns.Add<Requisition>(x => x.Created,80,"Created","dd MMM yy",Alignment.MiddleCenter);
  23. columns.Add<Requisition>(x => x.Destination.Description,100,"Detination","",Alignment.MiddleCenter);
  24. return columns;
  25. }
  26. protected override void DoReconfigure(DynamicGridOptions options)
  27. {
  28. base.DoReconfigure(options);
  29. options.Clear();
  30. options.AddRows = true;
  31. options.EditRows = true;
  32. options.DeleteRows = true;
  33. }
  34. protected override void Reload(
  35. Filters<Requisition> criteria, Columns<Requisition> columns, ref SortOrder<Requisition>? sort,
  36. CancellationToken token, Action<CoreTable?, Exception?> action)
  37. {
  38. criteria.Add(
  39. new Filter<Requisition>(x => x.RequestedBy.ID).IsEqualTo(App.EmployeeID)
  40. .And(x => x.Archived).IsEqualTo(DateTime.MinValue)
  41. );
  42. base.Reload(criteria, columns, ref sort, token, action);
  43. }
  44. public override Requisition CreateItem()
  45. {
  46. var result = base.CreateItem();
  47. result.RequestedBy.ID = App.EmployeeID;
  48. result.Title = $"Materials for {App.EmployeeName}";
  49. return result;
  50. }
  51. protected override void DoValidate(Requisition[] items, List<string> errors)
  52. {
  53. base.DoValidate(items, errors);
  54. if (items.Any(x=>x.Destination.ID == Guid.Empty))
  55. errors.Add("Please select a destination");
  56. }
  57. protected override BaseEditor? GetEditor(object item, DynamicGridColumn column)
  58. {
  59. if (column.Editor.Page == "Fulfilment")
  60. return new NullEditor();
  61. return base.GetEditor(item, column);
  62. }
  63. public override DynamicEditorPages LoadEditorPages(Requisition item)
  64. {
  65. return new DynamicEditorPages(); //base.LoadEditorPages(item));
  66. }
  67. }