Quotes.cs 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. using System;
  2. using System.Collections.Generic;
  3. using Comal.Classes;
  4. using InABox.Core;
  5. using InABox.DynamicGrid;
  6. namespace PRSDesktop
  7. {
  8. public class Quotes : DynamicDataGrid<Quote>
  9. {
  10. private Guid _statusid = Guid.Empty;
  11. public Quotes()
  12. {
  13. Options.AddRange(DynamicGridOption.RecordCount, DynamicGridOption.SelectColumns, DynamicGridOption.AddRows, DynamicGridOption.EditRows,
  14. DynamicGridOption.FilterRows);
  15. HiddenColumns.Add(x => x.ID);
  16. }
  17. public Guid StatusID
  18. {
  19. get => _statusid;
  20. set
  21. {
  22. _statusid = value;
  23. Refresh(false, true);
  24. }
  25. }
  26. protected override void Reload(Filters<Quote> criteria, Columns<Quote> columns, ref SortOrder<Quote>? sort,
  27. Action<CoreTable?, Exception?> action)
  28. {
  29. if (_statusid != Guid.Empty)
  30. criteria.Add(new Filter<Quote>(x => x.Status.ID).IsEqualTo(_statusid));
  31. sort = new SortOrder<Quote>(x => x.Number, SortDirection.Descending);
  32. base.Reload(criteria, columns, ref sort, action);
  33. }
  34. protected override Dictionary<string, object?> EditorValueChanged(IDynamicEditorForm editor, Quote[] items, string name, object value)
  35. {
  36. var result = base.EditorValueChanged(editor, items, name, value);
  37. if (name.Equals("Customer.ID"))
  38. {
  39. var contact = editor.FindEditor("Contact.ID");
  40. if (contact != null)
  41. contact.Configure();
  42. }
  43. return result;
  44. }
  45. }
  46. }