| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293 |
- using Comal.Classes;
- using InABox.Clients;
- using InABox.Configuration;
- using InABox.Core;
- using InABox.DynamicGrid;
- using System;
- using System.Linq;
- namespace PRSDesktop;
- public class ServiceGridSettings : IUserConfigurationSettings
- {
- public DynamicGridSelectedFilterSettings Filters { get; set; } = new();
- }
- public class ServiceGrid : DynamicDataGrid<Job>
- {
- private ServiceGridSettings _settings;
- public ServiceGrid()
- {
- _settings = new UserConfiguration<ServiceGridSettings>().Load();
- FilterComponent.SetSettings(_settings.Filters, false);
- FilterComponent.OnFiltersSelected += FilterComponent_OnFilterSelected;
- HiddenColumns.Add(x => x.ID);
- HiddenColumns.Add(x => x.JobNumber);
- HiddenColumns.Add(x => x.Name);
- HiddenColumns.Add(x => x.Customer.ID);
- HiddenColumns.Add(x => x.Customer.Code);
- HiddenColumns.Add(x => x.Customer.Name);
- HiddenColumns.Add(x => x.SiteAddress.Street);
- HiddenColumns.Add(x => x.SiteAddress.City);
- HiddenColumns.Add(x => x.SiteAddress.State);
- HiddenColumns.Add(x => x.SiteAddress.PostCode);
- HiddenColumns.Add(x => x.Account.ID);
- HiddenColumns.Add(x => x.Account.Code);
- HiddenColumns.Add(x => x.Account.Name);
- HiddenColumns.Add(x => x.Notes);
- HiddenColumns.Add(x => x.JobStatus.ID);
- HiddenColumns.Add(x => x.JobStatus.Active);
- ActionColumns.Add(new DynamicMapColumn<Job>(this, x => x.SiteAddress.Location));
- }
- protected override void DoReconfigure(FluentList<DynamicGridOption> options)
- {
- base.DoReconfigure(options);
- options.AddRange(
- DynamicGridOption.RecordCount,
- DynamicGridOption.SelectColumns,
- DynamicGridOption.FilterRows
- );
- }
- protected override void CustomiseEditor(Job[] items, DynamicGridColumn column, BaseEditor editor)
- {
- base.CustomiseEditor(items, column, editor);
- var visible = editor.Page.IsNullOrWhiteSpace() || editor.Page.Equals("General") || editor.Page.Equals(Job.NotesPage);
- editor.Editable = editor.Editable.Combine(visible ? Editable.Enabled : Editable.Hidden);
- }
- public override DynamicEditorPages LoadEditorPages(Job item)
- {
- var pages = new DynamicEditorPages(Array.Empty<IDynamicEditorPage>());
- return pages;
- }
- public override Job CreateItem()
- {
- var result = base.CreateItem();
- var defstatus = Client.Query(
- new Filter<JobStatus>(x => x.Default).IsEqualTo(true),
- new Columns<JobStatus>(x => x.ID));
- if (defstatus.Rows.Any())
- result.JobStatus.ID = defstatus.Rows.First().Get<JobStatus, Guid>(x => x.ID);
- result.JobType = JobType.Service;
- return result;
- }
- private void FilterComponent_OnFilterSelected(DynamicGridSelectedFilterSettings settings)
- {
- _settings.Filters = settings;
- _settings.SaveUser();
- }
- protected override void Reload(Filters<Job> criteria, Columns<Job> columns, ref SortOrder<Job>? sort, Action<CoreTable?, Exception?> action)
- {
- criteria.Add(new Filter<Job>(x => x.JobType).IsEqualTo(JobType.Service));
- base.Reload(criteria, columns, ref sort, action);
- }
- }
|