StockForecastOrderingJobGrid.cs 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. using Comal.Classes;
  2. using InABox.Core;
  3. using InABox.DynamicGrid;
  4. using System;
  5. using System.Collections.Generic;
  6. using System.Linq;
  7. using System.Text;
  8. using System.Threading.Tasks;
  9. using System.Windows.Media;
  10. namespace PRSDesktop.Panels.StockForecast.OrderScreen;
  11. public class StockForecastOrderingJobItem : BaseObject
  12. {
  13. [EditorSequence(1)]
  14. [TextBoxEditor(Editable = Editable.Disabled)]
  15. public string Description { get; set; }
  16. [NullEditor]
  17. public Guid JobID { get; set; }
  18. [NullEditor]
  19. public Guid JobRequiID { get; set; }
  20. [EditorSequence(2)]
  21. [DoubleEditor(Editable = Editable.Disabled)]
  22. public double RequiredQuantity { get; set; }
  23. [EditorSequence(2)]
  24. [DoubleEditor]
  25. public double Quantity { get; set; }
  26. }
  27. public class StockForecastOrderingJobGrid : DynamicItemsListGrid<StockForecastOrderingJobItem>
  28. {
  29. protected override void DoReconfigure(DynamicGridOptions options)
  30. {
  31. base.DoReconfigure(options);
  32. options.Clear();
  33. options.DirectEdit = true;
  34. }
  35. private class UIComponent : DynamicGridGridUIComponent<StockForecastOrderingJobItem>
  36. {
  37. public StockForecastOrderingJobGrid Grid { get; set; }
  38. public UIComponent(StockForecastOrderingJobGrid grid)
  39. {
  40. Grid = grid;
  41. Parent = grid;
  42. }
  43. protected override Brush? GetCellBackground(CoreRow row, DynamicColumnBase column)
  44. {
  45. return base.GetCellBackground(row, column);
  46. }
  47. }
  48. protected override IDynamicGridUIComponent<StockForecastOrderingJobItem> CreateUIComponent()
  49. {
  50. return new UIComponent(this);
  51. }
  52. protected override DynamicGridColumns LoadColumns()
  53. {
  54. var columns = new DynamicGridColumns();
  55. columns.Add<StockForecastOrderingJobItem, string>(x => x.Description, 0, "Description", "", Alignment.MiddleLeft);
  56. columns.Add<StockForecastOrderingJobItem, double>(x => x.RequiredQuantity, 70, "Req. Qty.");
  57. columns.Add<StockForecastOrderingJobItem, double>(x => x.Quantity, 70, "Qty.");
  58. return columns;
  59. }
  60. protected override void CustomiseEditor(StockForecastOrderingJobItem[] items, DynamicGridColumn column, BaseEditor editor)
  61. {
  62. base.CustomiseEditor(items, column, editor);
  63. if(new Column<StockForecastOrderingJobItem>(x => x.Quantity).IsEqualTo(column.ColumnName))
  64. {
  65. column.Editor.Editable = Editable.Enabled;
  66. }
  67. else
  68. {
  69. column.Editor.Editable = Editable.Disabled;
  70. }
  71. }
  72. }