JobFinancialGrid.cs 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Windows;
  5. using Comal.Classes;
  6. using InABox.Core;
  7. using InABox.DynamicGrid;
  8. namespace PRSDesktop
  9. {
  10. internal class JobFinancialGrid : DynamicDataGrid<JobFinancial>, IJobControl, IDataModelSource
  11. {
  12. public JobFinancialGrid()
  13. {
  14. Options.AddRange(DynamicGridOption.RecordCount, DynamicGridOption.SelectColumns, DynamicGridOption.FilterRows);
  15. }
  16. public event DataModelUpdateEvent OnUpdateDataModel;
  17. public string SectionName => "Job Financials";
  18. public DataModel DataModel(Selection selection)
  19. {
  20. var ids = ExtractValues(x => x.ID, selection).ToArray();
  21. return new BaseDataModel<JobFinancial>(new Filter<JobFinancial>(x => x.ID).InList(ids));
  22. }
  23. public Guid ParentID { get; set; }
  24. public JobPanelSettings Settings { get; set; }
  25. protected override void DoAdd(bool OpenEditorOnDirectEdit = false)
  26. {
  27. if (ParentID.Equals(Guid.Empty) || ParentID.Equals(CoreUtils.FullGuid))
  28. MessageBox.Show("Please select a Job first!");
  29. else
  30. base.DoAdd();
  31. }
  32. protected override JobFinancial CreateItem()
  33. {
  34. var result = base.CreateItem();
  35. result.Job.ID = ParentID;
  36. result.Type = Data.Rows.Any() ? JobFinancialType.Variation : JobFinancialType.Contract;
  37. return result;
  38. }
  39. protected override void Reload(Filters<JobFinancial> criteria, Columns<JobFinancial> columns, ref SortOrder<JobFinancial> sort,
  40. Action<CoreTable, Exception> action)
  41. {
  42. criteria.Add(new Filter<JobFinancial>(x => x.Job.ID).IsEqualTo(ParentID));
  43. base.Reload(criteria, columns, ref sort, action);
  44. }
  45. public Dictionary<string, object[]> Selected()
  46. {
  47. return new Dictionary<string, object[]>();
  48. }
  49. }
  50. }