|
@@ -12,251 +12,213 @@ using InABox.Core;
|
|
|
using InABox.DynamicGrid;
|
|
|
using InABox.WPF;
|
|
|
|
|
|
-namespace PRSDesktop
|
|
|
+namespace PRSDesktop;
|
|
|
+
|
|
|
+
|
|
|
+public class SupplierPurchaseOrdersSettings : IUserConfigurationSettings
|
|
|
{
|
|
|
-
|
|
|
- public class SupplierPurchaseOrdersSettings : IUserConfigurationSettings
|
|
|
- {
|
|
|
- [Obsolete]
|
|
|
- private CoreFilterDefinition? _currentFilter;
|
|
|
+ [Obsolete]
|
|
|
+ private CoreFilterDefinition? _currentFilter;
|
|
|
|
|
|
- [Obsolete]
|
|
|
- public CoreFilterDefinition? CurrentFilter
|
|
|
+ [Obsolete]
|
|
|
+ public CoreFilterDefinition? CurrentFilter
|
|
|
+ {
|
|
|
+ get => _currentFilter;
|
|
|
+ set
|
|
|
{
|
|
|
- get => _currentFilter;
|
|
|
- set
|
|
|
+ if (value is not null)
|
|
|
{
|
|
|
- if (value is not null)
|
|
|
- {
|
|
|
- Filters = new DynamicGridSelectedFilterSettings(new List<CoreFilterDefinition> { value }, false, null);
|
|
|
- }
|
|
|
+ Filters = new DynamicGridSelectedFilterSettings(new List<CoreFilterDefinition> { value }, false, null);
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
- public DynamicGridSelectedFilterSettings Filters { get; set; } = new();
|
|
|
}
|
|
|
+
|
|
|
+ public DynamicGridSelectedFilterSettings Filters { get; set; } = new();
|
|
|
+}
|
|
|
+
|
|
|
+public class SupplierPurchaseOrders : DynamicDataGrid<PurchaseOrder>
|
|
|
+{
|
|
|
+ private readonly Button close;
|
|
|
|
|
|
- public class SupplierPurchaseOrders : DynamicDataGrid<PurchaseOrder>
|
|
|
+ private SupplierPurchaseOrdersSettings _settings;
|
|
|
+
|
|
|
+ public SupplierPurchaseOrders()
|
|
|
{
|
|
|
- private readonly Button close;
|
|
|
- private static readonly BitmapImage? post = PRSDesktop.Resources.post.AsBitmapImage();
|
|
|
- private static readonly BitmapImage? tick = PRSDesktop.Resources.tick.AsBitmapImage();
|
|
|
- private static readonly BitmapImage? warning = PRSDesktop.Resources.warning.AsBitmapImage();
|
|
|
- private static readonly BitmapImage? refresh = PRSDesktop.Resources.refresh.AsBitmapImage();
|
|
|
-
|
|
|
- private SupplierPurchaseOrdersSettings _settings;
|
|
|
+ _settings = new UserConfiguration<SupplierPurchaseOrdersSettings>().Load();
|
|
|
+ FilterComponent.SetSettings(_settings.Filters, false);
|
|
|
+ FilterComponent.OnFiltersSelected += FilterComponent_OnFilterSelected;
|
|
|
|
|
|
- public SupplierPurchaseOrders()
|
|
|
- {
|
|
|
- _settings = new UserConfiguration<SupplierPurchaseOrdersSettings>().Load();
|
|
|
- FilterComponent.SetSettings(_settings.Filters, false);
|
|
|
- FilterComponent.OnFiltersSelected += FilterComponent_OnFilterSelected;
|
|
|
+ OnEditorValueChanged += SupplierPurchaseOrders_OnEditorValueChanged;
|
|
|
+ OnCustomiseEditor += SupplierPurchaseOrders_OnCustomiseEditor;
|
|
|
+
|
|
|
+ HiddenColumns.Add(x => x.ClosedDate);
|
|
|
+ HiddenColumns.Add(x => x.Balance);
|
|
|
|
|
|
- OnEditorValueChanged += SupplierPurchaseOrders_OnEditorValueChanged;
|
|
|
- OnCustomiseEditor += SupplierPurchaseOrders_OnCustomiseEditor;
|
|
|
-
|
|
|
- HiddenColumns.Add(x => x.ClosedDate);
|
|
|
- HiddenColumns.Add(x => x.Balance);
|
|
|
- HiddenColumns.Add(x => x.PostedStatus);
|
|
|
- HiddenColumns.Add(x => x.PostedNote);
|
|
|
-
|
|
|
- ActionColumns.Add(new DynamicImageColumn(Posted_Image, null)
|
|
|
- {
|
|
|
- ToolTip = Posted_ToolTip
|
|
|
- });
|
|
|
+ PostUtils.AddPostColumn(this);
|
|
|
|
|
|
- close = AddButton("Close Order", null, CloseOrder);
|
|
|
- close.IsEnabled = false;
|
|
|
- }
|
|
|
- protected override void DoReconfigure(DynamicGridOptions options)
|
|
|
- {
|
|
|
- base.DoReconfigure(options);
|
|
|
- options.RecordCount = true;
|
|
|
- options.FilterRows = true;
|
|
|
- options.SelectColumns = true;
|
|
|
- }
|
|
|
+ close = AddButton("Close Order", null, CloseOrder);
|
|
|
+ close.IsEnabled = false;
|
|
|
+ }
|
|
|
+ protected override void DoReconfigure(DynamicGridOptions options)
|
|
|
+ {
|
|
|
+ base.DoReconfigure(options);
|
|
|
+ options.RecordCount = true;
|
|
|
+ options.FilterRows = true;
|
|
|
+ options.SelectColumns = true;
|
|
|
+ }
|
|
|
|
|
|
- private void SupplierPurchaseOrders_OnCustomiseEditor(IDynamicEditorForm sender, PurchaseOrder[]? items, DynamicGridColumn column, BaseEditor editor)
|
|
|
+ private void SupplierPurchaseOrders_OnCustomiseEditor(IDynamicEditorForm sender, PurchaseOrder[]? items, DynamicGridColumn column, BaseEditor editor)
|
|
|
+ {
|
|
|
+ if(column.ColumnName == nameof(PurchaseOrder.ClosedDate))
|
|
|
{
|
|
|
- if(column.ColumnName == nameof(PurchaseOrder.ClosedDate))
|
|
|
- {
|
|
|
- editor.Editable = Security.CanEdit<PurchaseOrder>() && Security.IsAllowed<CanOpenAndClosePurchaseOrders>()
|
|
|
- ? Editable.Enabled : Editable.Disabled;
|
|
|
- }
|
|
|
+ editor.Editable = Security.CanEdit<PurchaseOrder>() && Security.IsAllowed<CanOpenAndClosePurchaseOrders>()
|
|
|
+ ? Editable.Enabled : Editable.Disabled;
|
|
|
}
|
|
|
+ }
|
|
|
|
|
|
- protected override void DoReconfigureEditors(DynamicEditorGrid grid, PurchaseOrder[] items)
|
|
|
- {
|
|
|
- base.DoReconfigureEditors(grid, items);
|
|
|
-
|
|
|
- var closedEditor = grid.FindEditor(nameof(PurchaseOrder.ClosedDate));
|
|
|
- if(closedEditor is not null)
|
|
|
- {
|
|
|
- closedEditor.IsEnabled = Security.CanEdit<PurchaseOrder>() && Security.IsAllowed<CanOpenAndClosePurchaseOrders>();
|
|
|
- }
|
|
|
- }
|
|
|
+ protected override void DoReconfigureEditors(DynamicEditorGrid grid, PurchaseOrder[] items)
|
|
|
+ {
|
|
|
+ base.DoReconfigureEditors(grid, items);
|
|
|
|
|
|
- protected override void BeforeLoad(IDynamicEditorForm form, PurchaseOrder[] items)
|
|
|
+ var closedEditor = grid.FindEditor(nameof(PurchaseOrder.ClosedDate));
|
|
|
+ if(closedEditor is not null)
|
|
|
{
|
|
|
- base.BeforeLoad(form, items);
|
|
|
-
|
|
|
- foreach (var page in form.Pages ?? Enumerable.Empty<IDynamicEditorPage>())
|
|
|
- {
|
|
|
- page.ReadOnly = items.Any(x => !x.ClosedDate.IsEmpty());
|
|
|
- }
|
|
|
+ closedEditor.IsEnabled = Security.CanEdit<PurchaseOrder>() && Security.IsAllowed<CanOpenAndClosePurchaseOrders>();
|
|
|
}
|
|
|
+ }
|
|
|
|
|
|
- private FrameworkElement? Posted_ToolTip(DynamicActionColumn column, CoreRow? row)
|
|
|
- {
|
|
|
- if (row is null)
|
|
|
- {
|
|
|
- return column.TextToolTip("Purchase Order Processed Status");
|
|
|
- }
|
|
|
- return column.TextToolTip(row.Get<PurchaseOrder, PostedStatus>(x => x.PostedStatus) switch
|
|
|
- {
|
|
|
- PostedStatus.PostFailed => "Post failed: " + row.Get<PurchaseOrder, string>(x => x.PostedNote),
|
|
|
- PostedStatus.RequiresRepost => "Repost required: " + row.Get<PurchaseOrder, string>(x => x.PostedNote),
|
|
|
- PostedStatus.Posted => "Processed",
|
|
|
- PostedStatus.NeverPosted or _ => "Not posted yet",
|
|
|
- });
|
|
|
- }
|
|
|
+ protected override void BeforeLoad(IDynamicEditorForm form, PurchaseOrder[] items)
|
|
|
+ {
|
|
|
+ base.BeforeLoad(form, items);
|
|
|
|
|
|
- private BitmapImage? Posted_Image(CoreRow? row)
|
|
|
+ foreach (var page in form.Pages ?? Enumerable.Empty<IDynamicEditorPage>())
|
|
|
{
|
|
|
- if (row is null)
|
|
|
- return post;
|
|
|
- return row.Get<PurchaseOrder, PostedStatus>(x => x.PostedStatus) switch
|
|
|
- {
|
|
|
- PostedStatus.PostFailed => warning,
|
|
|
- PostedStatus.Posted => tick,
|
|
|
- PostedStatus.RequiresRepost => refresh,
|
|
|
- PostedStatus.NeverPosted or _ => null,
|
|
|
- };
|
|
|
+ page.ReadOnly = items.Any(x => !x.ClosedDate.IsEmpty());
|
|
|
}
|
|
|
+ }
|
|
|
|
|
|
- private Dictionary<string, object?> SupplierPurchaseOrders_OnEditorValueChanged(IDynamicEditorForm sender, string name, object value)
|
|
|
+ private Dictionary<string, object?> SupplierPurchaseOrders_OnEditorValueChanged(IDynamicEditorForm sender, string name, object value)
|
|
|
+ {
|
|
|
+ var result = new Dictionary<string, object?>();
|
|
|
+ if(name == nameof(PurchaseOrder.ClosedDate) && value is DateTime closed)
|
|
|
{
|
|
|
- var result = new Dictionary<string, object?>();
|
|
|
- if(name == nameof(PurchaseOrder.ClosedDate) && value is DateTime closed)
|
|
|
+ foreach (var page in sender.Pages ?? Enumerable.Empty<IDynamicEditorPage>())
|
|
|
{
|
|
|
- foreach (var page in sender.Pages ?? Enumerable.Empty<IDynamicEditorPage>())
|
|
|
- {
|
|
|
- page.ReadOnly = !closed.IsEmpty();
|
|
|
- }
|
|
|
+ page.ReadOnly = !closed.IsEmpty();
|
|
|
}
|
|
|
- //try
|
|
|
- //{
|
|
|
- // var form = sender as DynamicEditorForm;
|
|
|
- // var itemspage = form?.Pages.FirstOrDefault(x => x is DynamicOneToManyGrid<PurchaseOrder, PurchaseOrderItem>) as DynamicOneToManyGrid<PurchaseOrder, PurchaseOrderItem>;
|
|
|
- // if ((itemspage == null) || (itemspage.Items.Count == 0))
|
|
|
- // return result;
|
|
|
-
|
|
|
- // if (name.Equals("DueDate") && (MessageBox.Show("Update Due Date on existing items?", "Alert", MessageBoxButton.YesNo) == MessageBoxResult.Yes))
|
|
|
- // {
|
|
|
- // foreach (var item in itemspage.Items)
|
|
|
- // item.DueDate = Convert.ToDateTime(value);
|
|
|
- // itemspage.Refresh(false, true);
|
|
|
- // }
|
|
|
- // else if (name.Equals("SupplierLink.ID") &&
|
|
|
- // (MessageBox.Show("Update Supplier Pricing to existihg items?", "Alert", MessageBoxButton.YesNo) == MessageBoxResult.Yes))
|
|
|
- // {
|
|
|
- // PurchaseOrder.UpdateCosts(itemspage.Items, (Guid)value, null);
|
|
|
- // // var productids = itemspage.Items.Where(x => x.Product.ID != Guid.Empty).Select(x => x.Product.ID).ToArray();
|
|
|
- // // MultiQuery query = new MultiQuery();
|
|
|
- // // query.Add(
|
|
|
- // // new Filter<SupplierProduct>(x=>x.SupplierLink.ID).IsEqualTo(value).And(x=>x.ProductLink.ID).InList(productids),
|
|
|
- // // new Columns<SupplierProduct>(x=>x.ProductLink.ID).Add(x=>x.Job.ID).Add(x=>x.CostPrice)
|
|
|
- // // );
|
|
|
- // // query.Add(
|
|
|
- // // new Filter<Product>(x=>x.ID).InList(productids),
|
|
|
- // // new Columns<Product>(x=>x.ID).Add(x=>x.NettCost)
|
|
|
- // // );
|
|
|
- // // query.Query();
|
|
|
- // //
|
|
|
- // // foreach (var item in itemspage.Items)
|
|
|
- // // {
|
|
|
- // // CoreRow? row = query.Get<SupplierProduct>()?.Rows.FirstOrDefault(r =>
|
|
|
- // // (r.Get<SupplierProduct, Guid>(c => c.ProductLink.ID) == item.Product.ID)
|
|
|
- // // && (r.Get<SupplierProduct, Guid>(c => c.Job.ID) == item.Job.ID)
|
|
|
- // // );
|
|
|
- // // if (row == null)
|
|
|
- // // row = query.Get<SupplierProduct>()?.Rows.FirstOrDefault(r =>
|
|
|
- // // (r.Get<SupplierProduct, Guid>(c => c.ProductLink.ID) == item.Product.ID)
|
|
|
- // // && (r.Get<SupplierProduct, Guid>(c => c.Job.ID) == Guid.Empty)
|
|
|
- // // );
|
|
|
- // // if (row != null)
|
|
|
- // // item.Cost = row.Get<SupplierProduct, double>(c => c.CostPrice);
|
|
|
- // // else
|
|
|
- // // {
|
|
|
- // // row = query.Get<Product>()?.Rows.FirstOrDefault(r =>
|
|
|
- // // (r.Get<Product, Guid>(c => c.ID) == item.Product.ID)
|
|
|
- // // );
|
|
|
- // // if (row != null)
|
|
|
- // // item.Cost = row.Get<Product, double>(c => c.NettCost);
|
|
|
- // // }
|
|
|
- // //
|
|
|
- // // }
|
|
|
-
|
|
|
- // itemspage.Refresh(false, true);
|
|
|
- // }
|
|
|
- //}
|
|
|
- //catch
|
|
|
- //{ }
|
|
|
- return result;
|
|
|
-
|
|
|
}
|
|
|
-
|
|
|
- // private List<SupplierProduct> GetSupplierProducts(object value)
|
|
|
- // {
|
|
|
- // List<SupplierProduct> supplierProducts = new List<SupplierProduct>();
|
|
|
- // CoreTable supplierProductstable = new Client<SupplierProduct>().Query(new Filter<SupplierProduct>(x => x.SupplierLink.ID).IsEqualTo(Guid.Parse(value.ToString())),
|
|
|
- // new Columns<SupplierProduct>(
|
|
|
- // x => x.ID,
|
|
|
- // x => x.SupplierLink.ID,
|
|
|
- // x => x.ProductLink.ID,
|
|
|
- // x => x.Job.ID,
|
|
|
- // x => x.TradePrice));
|
|
|
- // if (supplierProductstable.Rows.Any())
|
|
|
- // {
|
|
|
- // foreach (CoreRow row in supplierProductstable.Rows)
|
|
|
- // {
|
|
|
- // SupplierProduct supplierProduct = row.ToObject<SupplierProduct>();
|
|
|
- // supplierProducts.Add(supplierProduct);
|
|
|
- // }
|
|
|
- // }
|
|
|
- // return supplierProducts;
|
|
|
- // }
|
|
|
+ //try
|
|
|
+ //{
|
|
|
+ // var form = sender as DynamicEditorForm;
|
|
|
+ // var itemspage = form?.Pages.FirstOrDefault(x => x is DynamicOneToManyGrid<PurchaseOrder, PurchaseOrderItem>) as DynamicOneToManyGrid<PurchaseOrder, PurchaseOrderItem>;
|
|
|
+ // if ((itemspage == null) || (itemspage.Items.Count == 0))
|
|
|
+ // return result;
|
|
|
+
|
|
|
+ // if (name.Equals("DueDate") && (MessageBox.Show("Update Due Date on existing items?", "Alert", MessageBoxButton.YesNo) == MessageBoxResult.Yes))
|
|
|
+ // {
|
|
|
+ // foreach (var item in itemspage.Items)
|
|
|
+ // item.DueDate = Convert.ToDateTime(value);
|
|
|
+ // itemspage.Refresh(false, true);
|
|
|
+ // }
|
|
|
+ // else if (name.Equals("SupplierLink.ID") &&
|
|
|
+ // (MessageBox.Show("Update Supplier Pricing to existihg items?", "Alert", MessageBoxButton.YesNo) == MessageBoxResult.Yes))
|
|
|
+ // {
|
|
|
+ // PurchaseOrder.UpdateCosts(itemspage.Items, (Guid)value, null);
|
|
|
+ // // var productids = itemspage.Items.Where(x => x.Product.ID != Guid.Empty).Select(x => x.Product.ID).ToArray();
|
|
|
+ // // MultiQuery query = new MultiQuery();
|
|
|
+ // // query.Add(
|
|
|
+ // // new Filter<SupplierProduct>(x=>x.SupplierLink.ID).IsEqualTo(value).And(x=>x.ProductLink.ID).InList(productids),
|
|
|
+ // // new Columns<SupplierProduct>(x=>x.ProductLink.ID).Add(x=>x.Job.ID).Add(x=>x.CostPrice)
|
|
|
+ // // );
|
|
|
+ // // query.Add(
|
|
|
+ // // new Filter<Product>(x=>x.ID).InList(productids),
|
|
|
+ // // new Columns<Product>(x=>x.ID).Add(x=>x.NettCost)
|
|
|
+ // // );
|
|
|
+ // // query.Query();
|
|
|
+ // //
|
|
|
+ // // foreach (var item in itemspage.Items)
|
|
|
+ // // {
|
|
|
+ // // CoreRow? row = query.Get<SupplierProduct>()?.Rows.FirstOrDefault(r =>
|
|
|
+ // // (r.Get<SupplierProduct, Guid>(c => c.ProductLink.ID) == item.Product.ID)
|
|
|
+ // // && (r.Get<SupplierProduct, Guid>(c => c.Job.ID) == item.Job.ID)
|
|
|
+ // // );
|
|
|
+ // // if (row == null)
|
|
|
+ // // row = query.Get<SupplierProduct>()?.Rows.FirstOrDefault(r =>
|
|
|
+ // // (r.Get<SupplierProduct, Guid>(c => c.ProductLink.ID) == item.Product.ID)
|
|
|
+ // // && (r.Get<SupplierProduct, Guid>(c => c.Job.ID) == Guid.Empty)
|
|
|
+ // // );
|
|
|
+ // // if (row != null)
|
|
|
+ // // item.Cost = row.Get<SupplierProduct, double>(c => c.CostPrice);
|
|
|
+ // // else
|
|
|
+ // // {
|
|
|
+ // // row = query.Get<Product>()?.Rows.FirstOrDefault(r =>
|
|
|
+ // // (r.Get<Product, Guid>(c => c.ID) == item.Product.ID)
|
|
|
+ // // );
|
|
|
+ // // if (row != null)
|
|
|
+ // // item.Cost = row.Get<Product, double>(c => c.NettCost);
|
|
|
+ // // }
|
|
|
+ // //
|
|
|
+ // // }
|
|
|
+
|
|
|
+ // itemspage.Refresh(false, true);
|
|
|
+ // }
|
|
|
+ //}
|
|
|
+ //catch
|
|
|
+ //{ }
|
|
|
+ return result;
|
|
|
|
|
|
- protected override void SelectItems(CoreRow[]? rows)
|
|
|
- {
|
|
|
- close.IsEnabled = rows != null && rows.Any(r =>
|
|
|
- r.Get<PurchaseOrder, DateTime>(c => c.ClosedDate).IsEmpty() && r.Get<PurchaseOrder, double>(x => x.Balance).Equals(0.0F));
|
|
|
- base.SelectItems(rows);
|
|
|
- }
|
|
|
+ }
|
|
|
|
|
|
- private bool CloseOrder(Button arg1, CoreRow[] arg2)
|
|
|
- {
|
|
|
- var orders = new List<PurchaseOrder>();
|
|
|
- foreach (var row in arg2)
|
|
|
- {
|
|
|
- var order = row.ToObject<PurchaseOrder>();
|
|
|
- order.ClosedDate = DateTime.Now;
|
|
|
- orders.Add(order);
|
|
|
- }
|
|
|
+ // private List<SupplierProduct> GetSupplierProducts(object value)
|
|
|
+ // {
|
|
|
+ // List<SupplierProduct> supplierProducts = new List<SupplierProduct>();
|
|
|
+ // CoreTable supplierProductstable = new Client<SupplierProduct>().Query(new Filter<SupplierProduct>(x => x.SupplierLink.ID).IsEqualTo(Guid.Parse(value.ToString())),
|
|
|
+ // new Columns<SupplierProduct>(
|
|
|
+ // x => x.ID,
|
|
|
+ // x => x.SupplierLink.ID,
|
|
|
+ // x => x.ProductLink.ID,
|
|
|
+ // x => x.Job.ID,
|
|
|
+ // x => x.TradePrice));
|
|
|
+ // if (supplierProductstable.Rows.Any())
|
|
|
+ // {
|
|
|
+ // foreach (CoreRow row in supplierProductstable.Rows)
|
|
|
+ // {
|
|
|
+ // SupplierProduct supplierProduct = row.ToObject<SupplierProduct>();
|
|
|
+ // supplierProducts.Add(supplierProduct);
|
|
|
+ // }
|
|
|
+ // }
|
|
|
+ // return supplierProducts;
|
|
|
+ // }
|
|
|
+
|
|
|
+ protected override void SelectItems(CoreRow[]? rows)
|
|
|
+ {
|
|
|
+ close.IsEnabled = rows != null && rows.Any(r =>
|
|
|
+ r.Get<PurchaseOrder, DateTime>(c => c.ClosedDate).IsEmpty() && r.Get<PurchaseOrder, double>(x => x.Balance).Equals(0.0F));
|
|
|
+ base.SelectItems(rows);
|
|
|
+ }
|
|
|
|
|
|
- new Client<PurchaseOrder>().Save(orders, "Marking Order as Closed");
|
|
|
- return true;
|
|
|
- }
|
|
|
-
|
|
|
- public PurchaseOrder[] LoadOrders(CoreRow[] rows)
|
|
|
- {
|
|
|
- return LoadItems(rows);
|
|
|
- }
|
|
|
-
|
|
|
- private void FilterComponent_OnFilterSelected(DynamicGridSelectedFilterSettings settings)
|
|
|
+ private bool CloseOrder(Button arg1, CoreRow[] arg2)
|
|
|
+ {
|
|
|
+ var orders = new List<PurchaseOrder>();
|
|
|
+ foreach (var row in arg2)
|
|
|
{
|
|
|
- _settings.Filters = settings;
|
|
|
- new UserConfiguration<SupplierPurchaseOrdersSettings>().Save(_settings);
|
|
|
+ var order = row.ToObject<PurchaseOrder>();
|
|
|
+ order.ClosedDate = DateTime.Now;
|
|
|
+ orders.Add(order);
|
|
|
}
|
|
|
+
|
|
|
+ new Client<PurchaseOrder>().Save(orders, "Marking Order as Closed");
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+
|
|
|
+ public PurchaseOrder[] LoadOrders(CoreRow[] rows)
|
|
|
+ {
|
|
|
+ return LoadItems(rows);
|
|
|
+ }
|
|
|
+
|
|
|
+ private void FilterComponent_OnFilterSelected(DynamicGridSelectedFilterSettings settings)
|
|
|
+ {
|
|
|
+ _settings.Filters = settings;
|
|
|
+ new UserConfiguration<SupplierPurchaseOrdersSettings>().Save(_settings);
|
|
|
}
|
|
|
}
|