QuoteCostSheetsGrid.cs 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. using System;
  2. using System.Linq;
  3. using Comal.Classes;
  4. using InABox.Core;
  5. using InABox.DynamicGrid;
  6. namespace PRSDesktop
  7. {
  8. public class QuoteCostSheetGrid : DynamicDataGrid<QuoteCostSheet>
  9. {
  10. public QuoteCostSheetGrid()
  11. {
  12. Options.AddRange(DynamicGridOption.RecordCount, DynamicGridOption.SelectColumns);
  13. OnCustomiseEditor += CustomiseEditor;
  14. HiddenColumns.Add(x => x.CostSheet.ID);
  15. HiddenColumns.Add(x => x.CostSheet.Deleted);
  16. }
  17. protected override void GenerateColumns(DynamicGridColumns columns)
  18. {
  19. columns.Add<QuoteCostSheet, String>(x => x.Description, 0, "Description", "", Alignment.MiddleCenter);
  20. }
  21. public Guid QuoteID { get; set; }
  22. private void CustomiseEditor(IDynamicEditorForm sender, QuoteCostSheet[]? items, DynamicGridColumn column, BaseEditor editor)
  23. {
  24. if (column.ColumnName.Equals("CostSheet.ID"))
  25. editor.Editable = items?.FirstOrDefault()?.CostSheet.IsValid() != true ? Editable.Enabled : Editable.Disabled;
  26. }
  27. protected override void Reload(Filters<QuoteCostSheet> criteria, Columns<QuoteCostSheet> columns, ref SortOrder<QuoteCostSheet> sort,
  28. Action<CoreTable?, Exception?> action)
  29. {
  30. criteria.Add(new Filter<QuoteCostSheet>(x => x.Quote.ID).IsEqualTo(QuoteID));
  31. base.Reload(criteria, columns, ref sort, action);
  32. }
  33. protected override QuoteCostSheet CreateItem()
  34. {
  35. var result = base.CreateItem();
  36. result.Quote.ID = QuoteID;
  37. return result;
  38. }
  39. }
  40. }