QuoteProposalCostSheetGrid.cs 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. using System;
  2. using Comal.Classes;
  3. using InABox.Core;
  4. using InABox.DynamicGrid;
  5. namespace PRSDesktop
  6. {
  7. public class QuoteProposalCostSheetGrid : DynamicDataGrid<QuoteProposalCostSheet>
  8. {
  9. public QuoteProposal? Proposal { get; set; }
  10. public QuoteProposalCostSheetGrid()
  11. {
  12. HiddenColumns.Add(x => x.Proposal.ID);
  13. HiddenColumns.Add(x => x.Proposal.Quote.ID);
  14. }
  15. protected override void DoReconfigure(FluentList<DynamicGridOption> options)
  16. {
  17. base.DoReconfigure(options);
  18. options.AddRange(DynamicGridOption.RecordCount, DynamicGridOption.SelectColumns);
  19. }
  20. protected override void Reload(Filters<QuoteProposalCostSheet> criteria, Columns<QuoteProposalCostSheet> columns,
  21. ref SortOrder<QuoteProposalCostSheet>? sort, Action<CoreTable?, Exception?> action)
  22. {
  23. criteria.Add((Proposal?.ID ?? Guid.Empty) == Guid.Empty
  24. ? new Filter<QuoteProposalCostSheet>().None()
  25. : new Filter<QuoteProposalCostSheet>(x => x.Proposal.ID).IsEqualTo(Proposal.ID));
  26. base.Reload(criteria, columns, ref sort, action);
  27. }
  28. protected override bool CanCreateItems()
  29. {
  30. return Proposal != null;
  31. }
  32. public override QuoteProposalCostSheet CreateItem()
  33. {
  34. var result = base.CreateItem();
  35. result.Proposal.ID = Proposal.ID;
  36. result.Proposal.Synchronise(Proposal);
  37. return result;
  38. }
  39. }
  40. }