Quotes.cs 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  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. HiddenColumns.Add(x => x.ID);
  14. HiddenColumns.Add(x =>x.Number);
  15. HiddenColumns.Add(x =>x.Customer.ID);
  16. HiddenColumns.Add(x =>x.Customer.Code);
  17. HiddenColumns.Add(x =>x.Customer.Name);
  18. HiddenColumns.Add(x =>x.SiteAddress.Street);
  19. HiddenColumns.Add(x =>x.SiteAddress.City);
  20. HiddenColumns.Add(x =>x.SiteAddress.State);
  21. HiddenColumns.Add(x =>x.SiteAddress.PostCode);
  22. HiddenColumns.Add(x =>x.Account.ID);
  23. HiddenColumns.Add(x =>x.Account.Code);
  24. HiddenColumns.Add(x =>x.Account.Name);
  25. HiddenColumns.Add(x =>x.Title);
  26. HiddenColumns.Add(x =>x.Notes);
  27. HiddenColumns.Add(x =>x.Status.ID);
  28. HiddenColumns.Add(x =>x.ExTax);
  29. }
  30. protected override void DoReconfigure(FluentList<DynamicGridOption> options)
  31. {
  32. base.DoReconfigure(options);
  33. options.AddRange(DynamicGridOption.RecordCount, DynamicGridOption.SelectColumns, DynamicGridOption.AddRows, DynamicGridOption.EditRows,
  34. DynamicGridOption.FilterRows);
  35. }
  36. public Guid StatusID
  37. {
  38. get => _statusid;
  39. set
  40. {
  41. _statusid = value;
  42. Refresh(false, true);
  43. }
  44. }
  45. protected override void Reload(Filters<Quote> criteria, Columns<Quote> columns, ref SortOrder<Quote>? sort,
  46. Action<CoreTable?, Exception?> action)
  47. {
  48. if (_statusid != Guid.Empty)
  49. criteria.Add(new Filter<Quote>(x => x.Status.ID).IsEqualTo(_statusid));
  50. sort = new SortOrder<Quote>(x => x.Number, SortDirection.Descending);
  51. base.Reload(criteria, columns, ref sort, action);
  52. }
  53. protected override Dictionary<string, object?> EditorValueChanged(IDynamicEditorForm editor, Quote[] items, string name, object value)
  54. {
  55. var result = base.EditorValueChanged(editor, items, name, value);
  56. if (name.Equals("Customer.ID"))
  57. {
  58. var contact = editor.FindEditor("Contact.ID");
  59. if (contact != null)
  60. contact.Configure();
  61. }
  62. return result;
  63. }
  64. }
  65. }