MyRequisitionItems.cs 3.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. using System;
  2. using System.Linq;
  3. using System.Threading;
  4. using Comal.Classes;
  5. using InABox.Core;
  6. using InABox.DynamicGrid;
  7. namespace PRSDesktop;
  8. public class MyRequisitionItems : DynamicDataGrid<RequisitionItem>
  9. {
  10. public Guid RequisitionID { get; set; }
  11. public MyRequisitionItems() : base()
  12. {
  13. ColumnsTag = nameof(MyRequisitionItems);
  14. }
  15. public override DynamicGridColumns GenerateColumns()
  16. {
  17. var columns = new DynamicGridColumns();
  18. columns.Add<RequisitionItem>(x => x.Product.ID,80,"Product","",Alignment.MiddleLeft);
  19. columns.Add<RequisitionItem>(x => x.Description,0,"Items Required","",Alignment.MiddleLeft);
  20. columns.Add<RequisitionItem>(x => x.Dimensions.UnitSize,80,"Size","",Alignment.MiddleLeft);
  21. columns.Add<RequisitionItem>(x => x.Style.ID,80,"Style","",Alignment.MiddleLeft);
  22. columns.Add<RequisitionItem>(x => x.Quantity,50,"Qty","F2",Alignment.MiddleCenter);
  23. return columns;
  24. }
  25. protected override void DoReconfigure(DynamicGridOptions options)
  26. {
  27. base.DoReconfigure(options);
  28. options.Clear();
  29. options.AddRows = true;
  30. options.EditRows = true;
  31. options.DeleteRows = true;
  32. }
  33. protected override void Reload(
  34. Filters<RequisitionItem> criteria, Columns<RequisitionItem> columns, ref SortOrder<RequisitionItem>? sort,
  35. CancellationToken token, Action<CoreTable?, Exception?> action)
  36. {
  37. criteria.Add(
  38. new Filter<RequisitionItem>(x => x.RequisitionLink.ID).IsEqualTo(RequisitionID)
  39. );
  40. base.Reload(criteria, columns, ref sort, token, action);
  41. }
  42. public override RequisitionItem CreateItem()
  43. {
  44. var result = base.CreateItem();
  45. result.RequisitionLink.ID = RequisitionID;
  46. result.Quantity = 1;
  47. return result;
  48. }
  49. protected override BaseEditor? GetEditor(object item, DynamicGridColumn column)
  50. {
  51. if (column.ColumnName == CoreUtils.GetFullPropertyName<RequisitionItem, double>(x => x.ActualQuantity, "."))
  52. return new NullEditor();
  53. if (column.ColumnName == CoreUtils.GetFullPropertyName<RequisitionItem, Guid>(x => x.Location.ID, "."))
  54. return new NullEditor();
  55. if (column.ColumnName == CoreUtils.GetFullPropertyName<RequisitionItem, bool>(x => x.Done, "."))
  56. return new NullEditor();
  57. if (column.ColumnName == CoreUtils.GetFullPropertyName<RequisitionItem, Guid>(x => x.JobRequisitionItem.ID, "."))
  58. return new NullEditor();
  59. if (column.ColumnName.StartsWith($"{CoreUtils.GetFullPropertyName<RequisitionItem, ActualCharge>(x => x.Charge, ".")}."))
  60. return new NullEditor();
  61. if (column.ColumnName == CoreUtils.GetFullPropertyName<RequisitionItem, Guid>(x => x.JobScope.ID, "."))
  62. return new NullEditor();
  63. if (column.ColumnName == CoreUtils.GetFullPropertyName<RequisitionItem, Guid>(x => x.Image.ID, "."))
  64. return new NullEditor();
  65. return base.GetEditor(item, column);
  66. }
  67. }