RequisitionItemStockHoldingSelectionGrid.cs 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  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. namespace PRSDesktop.Panels.Requisitions;
  10. public class RequisitionItemStockHoldingSelectionGrid : DynamicDataGrid<StockHolding>, ISpecificGrid
  11. {
  12. public Product? Product { get; set; }
  13. protected override void Init()
  14. {
  15. base.Init();
  16. ColumnsTag = nameof(RequisitionItemStockHoldingSelectionGrid);
  17. }
  18. protected override void DoReconfigure(FluentList<DynamicGridOption> options)
  19. {
  20. base.DoReconfigure(options);
  21. options.Clear().AddRange(DynamicGridOption.SelectColumns);
  22. }
  23. public override DynamicGridColumns GenerateColumns()
  24. {
  25. var columns = new DynamicGridColumns();
  26. columns.Add<StockHolding, string>(x => x.Location.Description, 0, "Location", "", Alignment.MiddleLeft);
  27. columns.Add<StockHolding, string>(x => x.Job.JobNumber, 120, "Job No.", "", Alignment.MiddleLeft);
  28. columns.Add<StockHolding, string>(x => x.Style.Description, 0, "Style", "", Alignment.MiddleLeft);
  29. columns.Add<StockHolding, double>(x => x.Units, 70, "Units", "F2", Alignment.MiddleRight);
  30. columns.Add<StockHolding, string>(x => x.Dimensions.UnitSize, 0, "Size", "", Alignment.MiddleLeft);
  31. return columns;
  32. }
  33. protected override void Reload(Filters<StockHolding> criteria, Columns<StockHolding> columns, ref SortOrder<StockHolding>? sort, Action<CoreTable?, Exception?> action)
  34. {
  35. if(Product is not null)
  36. {
  37. criteria.Add(new Filter<StockHolding>(x => x.Product.ID).IsEqualTo(Product.ID));
  38. }
  39. else
  40. {
  41. criteria.Add(new Filter<StockHolding>().None());
  42. }
  43. base.Reload(criteria, columns, ref sort, action);
  44. }
  45. }