|
@@ -14,6 +14,11 @@ using NPOI.Util;
|
|
|
|
|
|
namespace PRSDesktop;
|
|
|
|
|
|
+public class SupplierBillsSettings : IUserConfigurationSettings
|
|
|
+{
|
|
|
+ public DynamicGridSelectedFilterSettings Filters { get; set; } = new();
|
|
|
+}
|
|
|
+
|
|
|
public class SupplierBills : DynamicDataGrid<Bill>
|
|
|
{
|
|
|
private static readonly BitmapImage? tick = PRSDesktop.Resources.tick.AsBitmapImage();
|
|
@@ -21,12 +26,17 @@ public class SupplierBills : DynamicDataGrid<Bill>
|
|
|
private static readonly BitmapImage? check = PRSDesktop.Resources.checklist.AsBitmapImage();
|
|
|
|
|
|
private SupplierBillPanelProperties _settings = null;
|
|
|
+ private SupplierBillsSettings _userSettings;
|
|
|
|
|
|
public SupplierBills()
|
|
|
{
|
|
|
-
|
|
|
_settings = new GlobalConfiguration<SupplierBillPanelProperties>().Load();
|
|
|
|
|
|
+ _userSettings = new UserConfiguration<SupplierBillsSettings>().Load();
|
|
|
+ FilterComponent.BuiltInFilters.Add(new("My Unapproved Bills", GetMyUnapprovedBillsFilter));
|
|
|
+ FilterComponent.SetSettings(_userSettings.Filters, false);
|
|
|
+ FilterComponent.OnFiltersSelected += FilterComponent_OnFilterSelected;
|
|
|
+
|
|
|
HiddenColumns.Add(x => x.IsApproved);
|
|
|
HiddenColumns.Add(x => x.DataEntered);
|
|
|
HiddenColumns.Add(x => x.Checked);
|
|
@@ -41,6 +51,15 @@ public class SupplierBills : DynamicDataGrid<Bill>
|
|
|
ActionColumns.Add(new DynamicMenuColumn(BuildMenu));
|
|
|
}
|
|
|
|
|
|
+ private Filter<Bill> GetMyUnapprovedBillsFilter()
|
|
|
+ {
|
|
|
+ return new Filter<Bill>(x => x.ID)
|
|
|
+ .InQuery(
|
|
|
+ new Filter<BillApproval>(x => x.Employee.ID).IsEqualTo(App.EmployeeID)
|
|
|
+ .And(x => x.Approved).IsEqualTo(DateTime.MinValue),
|
|
|
+ x => x.Bill.ID);
|
|
|
+ }
|
|
|
+
|
|
|
private void BuildMenu(DynamicMenuColumn column, CoreRow? row)
|
|
|
{
|
|
|
if (row is null) return;
|
|
@@ -234,4 +253,10 @@ public class SupplierBills : DynamicDataGrid<Bill>
|
|
|
errors.Add($"[{nameof(Bill.SupplierLink)}] may not be blank!");
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ private void FilterComponent_OnFilterSelected(DynamicGridSelectedFilterSettings settings)
|
|
|
+ {
|
|
|
+ _userSettings.Filters = settings;
|
|
|
+ new UserConfiguration<SupplierBillsSettings>().Save(_userSettings);
|
|
|
+ }
|
|
|
}
|