StockForecastOrderingJobGrid.cs 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  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. public string Job { get; set; }
  15. [NullEditor]
  16. public Guid JobID { get; set; }
  17. [EditorSequence(2)]
  18. [DoubleEditor]
  19. public double RequiredQuantity { get; set; }
  20. [EditorSequence(2)]
  21. [DoubleEditor]
  22. public double Quantity { get; set; }
  23. }
  24. public class StockForecastOrderingJobGrid : DynamicItemsListGrid<StockForecastOrderingJobItem>
  25. {
  26. protected override void DoReconfigure(DynamicGridOptions options)
  27. {
  28. base.DoReconfigure(options);
  29. options.Clear();
  30. options.DirectEdit = true;
  31. }
  32. private class UIComponent : DynamicGridGridUIComponent<StockForecastOrderingJobItem>
  33. {
  34. public StockForecastOrderingJobGrid Grid { get; set; }
  35. public UIComponent(StockForecastOrderingJobGrid grid)
  36. {
  37. Grid = grid;
  38. Parent = grid;
  39. }
  40. protected override Brush? GetCellBackground(CoreRow row, DynamicColumnBase column)
  41. {
  42. return base.GetCellBackground(row, column);
  43. }
  44. }
  45. protected override IDynamicGridUIComponent<StockForecastOrderingJobItem> CreateUIComponent()
  46. {
  47. return new UIComponent(this);
  48. }
  49. protected override DynamicGridColumns LoadColumns()
  50. {
  51. var columns = new DynamicGridColumns();
  52. columns.Add<StockForecastOrderingJobItem, string>(x => x.Job, 0, "Job", "", Alignment.MiddleLeft);
  53. columns.Add<StockForecastOrderingJobItem, double>(x => x.RequiredQuantity, 70, "Req. Qty.", "F2", Alignment.MiddleCenter);
  54. columns.Add<StockForecastOrderingJobItem, double>(x => x.Quantity, 70, "Qty.", "F2", Alignment.MiddleCenter);
  55. return columns;
  56. }
  57. protected override void CustomiseEditor(StockForecastOrderingJobItem[] items, DynamicGridColumn column, BaseEditor editor)
  58. {
  59. base.CustomiseEditor(items, column, editor);
  60. if(new Column<StockForecastOrderingJobItem>(x => x.Quantity).IsEqualTo(column.ColumnName))
  61. {
  62. column.Editor.Editable = Editable.Enabled;
  63. }
  64. else
  65. {
  66. column.Editor.Editable = Editable.Disabled;
  67. }
  68. }
  69. }