Browse Source

Made a parameter of AfterEditorValueChanged nullable, because at one place we were passing null anyway.

Kenric Nugteren 1 year ago
parent
commit
1ba07267a4

+ 1 - 1
prs.desktop/Panels/Jobs/JobBillOfMaterialsItemsGrid.cs

@@ -157,7 +157,7 @@ namespace PRSDesktop
         }
 
 
-        protected override void OnAfterEditorValueChanged(DynamicEditorGrid grid, JobBillOfMaterialsItem[] items, AfterEditorValueChangedArgs args, Dictionary<string, object?> changes)
+        protected override void OnAfterEditorValueChanged(DynamicEditorGrid? grid, JobBillOfMaterialsItem[] items, AfterEditorValueChangedArgs args, Dictionary<string, object?> changes)
         {
             base.OnAfterEditorValueChanged(grid, items, args, changes);
             if (args.ColumnName.Equals("Product.ID") || args.ColumnName.Equals("Dimensions") || args.ColumnName.StartsWith("Dimensions.") || args.ColumnName.Equals("Style.ID") || args.ColumnName.Equals("Supplier.ID"))

+ 1 - 1
prs.desktop/Panels/Jobs/JobRequisitionItemGrid.cs

@@ -154,7 +154,7 @@ namespace PRSDesktop
             return result;
         }
         
-        protected override void OnAfterEditorValueChanged(DynamicEditorGrid grid, JobRequisitionItem[] items, AfterEditorValueChangedArgs args, Dictionary<string, object?> changes)
+        protected override void OnAfterEditorValueChanged(DynamicEditorGrid? grid, JobRequisitionItem[] items, AfterEditorValueChangedArgs args, Dictionary<string, object?> changes)
         {
             base.OnAfterEditorValueChanged(grid, items, args, changes);
             if (args.ColumnName.Equals("Product.ID") || args.ColumnName.Equals("Dimensions") || args.ColumnName.StartsWith("Dimensions.") || args.ColumnName.Equals("Style.ID") || args.ColumnName.Equals("Supplier.ID"))

+ 1 - 1
prs.desktop/Panels/Suppliers/PurchaseOrders/SupplierPurchaseOrderItemOneToMany.cs

@@ -382,7 +382,7 @@ namespace PRSDesktop
             base.SelectItems(rows);
         }
         
-        protected override void OnAfterEditorValueChanged(DynamicEditorGrid grid, PurchaseOrderItem[] items, AfterEditorValueChangedArgs args, Dictionary<string, object?> changes)
+        protected override void OnAfterEditorValueChanged(DynamicEditorGrid? grid, PurchaseOrderItem[] items, AfterEditorValueChangedArgs args, Dictionary<string, object?> changes)
         {
             base.OnAfterEditorValueChanged(grid, items, args, changes);
             if (args.ColumnName.Equals("Product.ID") || args.ColumnName.Equals("Job.ID") || args.ColumnName.Equals("Dimensions") || args.ColumnName.StartsWith("Dimensions.") || args.ColumnName.Equals("Style.ID"))

+ 223 - 224
prs.desktop/Panels/Suppliers/PurchaseOrders/SupplierPurchaseOrderPanel.xaml.cs

@@ -13,278 +13,277 @@ using InABox.DynamicGrid;
 using InABox.WPF;
 using Syncfusion.UI.Xaml.Charts;
 
-namespace PRSDesktop
+namespace PRSDesktop;
+
+/// <summary>
+///     Interaction logic for SupplierPurchaseOrderPanel.xaml
+/// </summary>
+public partial class SupplierPurchaseOrderPanel : UserControl, IPanel<PurchaseOrder>
 {
-    /// <summary>
-    ///     Interaction logic for SupplierPurchaseOrderPanel.xaml
-    /// </summary>
-    public partial class SupplierPurchaseOrderPanel : UserControl, IPanel<PurchaseOrder>
+    private PurchaseScreenSettings settings;
+
+    public SupplierPurchaseOrderPanel()
     {
-        private PurchaseScreenSettings settings;
+        InitializeComponent();
+        Orders.HiddenColumns.Add(x => x.SupplierLink.ID);
+        Orders.HiddenColumns.Add(x => x.PONumber);
+        Orders.HiddenColumns.Add(x => x.SupplierLink.Code);
+        Orders.HiddenColumns.Add(x => x.SupplierLink.Name);
+        Orders.HiddenColumns.Add(x => x.Description);
+        Orders.HiddenColumns.Add(x => x.IssuedDate);
+        Orders.HiddenColumns.Add(x => x.IssuedBy.Name);
+        Orders.HiddenColumns.Add(x => x.DueDate);
+        Orders.HiddenColumns.Add(x => x.ClosedDate);
 
-        public SupplierPurchaseOrderPanel()
+        /*Orders.OnBeforeSelection += cancel =>
         {
-            InitializeComponent();
-            Orders.HiddenColumns.Add(x => x.SupplierLink.ID);
-            Orders.HiddenColumns.Add(x => x.PONumber);
-            Orders.HiddenColumns.Add(x => x.SupplierLink.Code);
-            Orders.HiddenColumns.Add(x => x.SupplierLink.Name);
-            Orders.HiddenColumns.Add(x => x.Description);
-            Orders.HiddenColumns.Add(x => x.IssuedDate);
-            Orders.HiddenColumns.Add(x => x.IssuedBy.Name);
-            Orders.HiddenColumns.Add(x => x.DueDate);
-            Orders.HiddenColumns.Add(x => x.ClosedDate);
-
-            /*Orders.OnBeforeSelection += cancel =>
+            if (_orders is not null && _orders.Any(x => x.IsChanged()))
             {
-                if (_orders is not null && _orders.Any(x => x.IsChanged()))
-                {
-                    CheckSaved(cancel);
-                }
-            };*/
-            Orders.OnSelectItem += (o, e) =>
+                CheckSaved(cancel);
+            }
+        };*/
+        Orders.OnSelectItem += (o, e) =>
+        {
+            if(SplitPanel.View != DynamicSplitPanelView.Master)
             {
-                if(SplitPanel.View != DynamicSplitPanelView.Master)
-                {
-                    ReloadOrders();
-                }
-            };
-        }
+                ReloadOrders();
+            }
+        };
+    }
 
-        public bool IsReady { get; set; }
+    public bool IsReady { get; set; }
 
-        public event DataModelUpdateEvent? OnUpdateDataModel;
+    public event DataModelUpdateEvent? OnUpdateDataModel;
 
-        public Dictionary<string, object[]> Selected()
-        {
-            return new Dictionary<string, object[]> { { typeof(PurchaseOrder).EntityName(), Orders.SelectedRows } };
-        }
+    public Dictionary<string, object[]> Selected()
+    {
+        return new Dictionary<string, object[]> { { typeof(PurchaseOrder).EntityName(), Orders.SelectedRows } };
+    }
 
 
-        public void CreateToolbarButtons(IPanelHost host)
-        {
-            AccountsSetupActions.Standard(host);
-            PostUtils.CreateToolbarButtons(host,
-                () => (DataModel(Selection.Selected) as IDataModel<PurchaseOrder>)!,
-                () => Orders.Refresh(false, true),
-                true);
-        }
+    public void CreateToolbarButtons(IPanelHost host)
+    {
+        AccountsSetupActions.Standard(host);
+        PostUtils.CreateToolbarButtons(host,
+            () => (DataModel(Selection.Selected) as IDataModel<PurchaseOrder>)!,
+            () => Orders.Refresh(false, true),
+            true);
+    }
 
-        public string SectionName => "Purchase Orders";
+    public string SectionName => "Purchase Orders";
 
-        public DataModel DataModel(Selection selection)
-        {
-            var ids = Orders.ExtractValues(x => x.ID, selection).ToArray();
-            return new BaseDataModel<PurchaseOrder>(new Filter<PurchaseOrder>(x => x.ID).InList(ids));
-        }
+    public DataModel DataModel(Selection selection)
+    {
+        var ids = Orders.ExtractValues(x => x.ID, selection).ToArray();
+        return new BaseDataModel<PurchaseOrder>(new Filter<PurchaseOrder>(x => x.ID).InList(ids));
+    }
 
-        public void Refresh()
+    public void Refresh()
+    {
+        if (CheckSaved())
         {
-            if (CheckSaved())
-            {
-                Orders.Refresh(false, true);
-                SetChanged(false);
-            }
+            Orders.Refresh(false, true);
+            SetChanged(false);
         }
+    }
 
-        public void Setup()
-        {
-            settings = new UserConfiguration<PurchaseScreenSettings>().Load();
-            
-            SplitPanel.View = settings.ViewType == ScreenViewType.Register ? DynamicSplitPanelView.Master :
-                settings.ViewType == ScreenViewType.Details ? DynamicSplitPanelView.Detail : DynamicSplitPanelView.Combined;
-            SplitPanel.AnchorWidth = settings.AnchorWidth;
+    public void Setup()
+    {
+        settings = new UserConfiguration<PurchaseScreenSettings>().Load();
+        
+        SplitPanel.View = settings.ViewType == ScreenViewType.Register ? DynamicSplitPanelView.Master :
+            settings.ViewType == ScreenViewType.Details ? DynamicSplitPanelView.Detail : DynamicSplitPanelView.Combined;
+        SplitPanel.AnchorWidth = settings.AnchorWidth;
 
-            //StatusList.SelectedIndex = settings.ShowAll ? 1 : 0;
-            //StatusList.SelectionChanged += StatusList_SelectionChanged;
+        //StatusList.SelectedIndex = settings.ShowAll ? 1 : 0;
+        //StatusList.SelectionChanged += StatusList_SelectionChanged;
 
-            //_categories.Add(new Tuple<Guid, string>(CoreUtils.FullGuid, "All Categories"));
+        //_categories.Add(new Tuple<Guid, string>(CoreUtils.FullGuid, "All Categories"));
 
-            //var query = new MultiQuery();
-            //query.Add(
-            //    LookupFactory.DefineFilter<PurchaseOrderCategory>(),
-            //    LookupFactory.DefineColumns<PurchaseOrderCategory>(),
-            //    LookupFactory.DefineSort<PurchaseOrderCategory>()
-            //);
-            //query.Query();
+        //var query = new MultiQuery();
+        //query.Add(
+        //    LookupFactory.DefineFilter<PurchaseOrderCategory>(),
+        //    LookupFactory.DefineColumns<PurchaseOrderCategory>(),
+        //    LookupFactory.DefineSort<PurchaseOrderCategory>()
+        //);
+        //query.Query();
 
 
-            //LoadLookups<PurchaseOrderCategory>(query, _categories, x => x.Description);
-            //CategoryList.ItemsSource = _categories;
-            //CategoryList.SelectedValue =
-            //    _categories.Any(x => x.Item1 == settings.SelectedCategory) ? settings.SelectedCategory : CoreUtils.FullGuid;
-            //Orders.SelectedCategory = (Guid)CategoryList.SelectedValue;
-            //CategoryList.SelectionChanged += CategoryList_SelectionChanged;
+        //LoadLookups<PurchaseOrderCategory>(query, _categories, x => x.Description);
+        //CategoryList.ItemsSource = _categories;
+        //CategoryList.SelectedValue =
+        //    _categories.Any(x => x.Item1 == settings.SelectedCategory) ? settings.SelectedCategory : CoreUtils.FullGuid;
+        //Orders.SelectedCategory = (Guid)CategoryList.SelectedValue;
+        //CategoryList.SelectionChanged += CategoryList_SelectionChanged;
 
-            Orders.ColumnsTag = settings.ViewType == ScreenViewType.Register ? settings.ViewType.ToString() : "";
-            Orders.Refresh(true, false);
-            //Items.Refresh(true, false);
-            
-            PurchaseOrder.SetLayoutType<VerticalDynamicEditorGridLayout>();
-        }
+        Orders.ColumnsTag = settings.ViewType == ScreenViewType.Register ? settings.ViewType.ToString() : "";
+        Orders.Refresh(true, false);
+        //Items.Refresh(true, false);
+        
+        PurchaseOrder.SetLayoutType<VerticalDynamicEditorGridLayout>();
+    }
 
-        private void CheckSaved(CancelEventArgs cancel)
+    private void CheckSaved(CancelEventArgs cancel)
+    {
+        if(_orders is null || !_orders.Any(x => x.IsChanged()))
         {
-            if(_orders is null || !_orders.Any(x => x.IsChanged()))
-            {
-                return;
-            }
-            var result = MessageBox.Show("You have an unsaved Purchase Order; do you wish to save these changes?", "Save Changes?", MessageBoxButton.YesNoCancel);
-            if (result == MessageBoxResult.Yes)
-            {
-                PurchaseOrder.SaveItem(cancel);
-                if (!cancel.Cancel)
-                {
-                    MessageBox.Show("Purchase Order saved.");
-                }
-            }
-            else if (result == MessageBoxResult.Cancel)
-            {
-                cancel.Cancel = true;
-            }
+            return;
         }
-        private bool CheckSaved()
+        var result = MessageBox.Show("You have an unsaved Purchase Order; do you wish to save these changes?", "Save Changes?", MessageBoxButton.YesNoCancel);
+        if (result == MessageBoxResult.Yes)
         {
-            var cancel = new CancelEventArgs();
-            CheckSaved(cancel);
-            return !cancel.Cancel;
-        }
-
-        public void Shutdown(CancelEventArgs? cancel)
-        {
-            if(cancel is not null)
+            PurchaseOrder.SaveItem(cancel);
+            if (!cancel.Cancel)
             {
-                CheckSaved(cancel);
+                MessageBox.Show("Purchase Order saved.");
             }
         }
+        else if (result == MessageBoxResult.Cancel)
+        {
+            cancel.Cancel = true;
+        }
+    }
+    private bool CheckSaved()
+    {
+        var cancel = new CancelEventArgs();
+        CheckSaved(cancel);
+        return !cancel.Cancel;
+    }
 
-        public void Heartbeat(TimeSpan time)
+    public void Shutdown(CancelEventArgs? cancel)
+    {
+        if(cancel is not null)
         {
+            CheckSaved(cancel);
         }
+    }
 
-        // private void LoadOrder(CoreRow row)
-        // {
-        //     Number.Text = row == null ? "" : row.Get<PurchaseOrder, string>(x => x.PONumber);
-        //
-        //     SupplierCode.Text = row == null ? "" : row.Get<PurchaseOrder, string>(x => x.SupplierLink.Code);
-        //     SupplierName.Text = row == null ? "" : row.Get<PurchaseOrder, string>(x => x.SupplierLink.Name);
-        //
-        //     Description.Text = row == null ? "" : row.Get<PurchaseOrder, string>(x => x.Description);
-        //
-        //     Issued.Text = row == null ? "" : CheckDate(row.Get<PurchaseOrder, DateTime>(x => x.IssuedDate));
-        //     IssuedBy.Text = row == null ? "" : row.Get<PurchaseOrder, string>(x => x.IssuedBy.Name);
-        //
-        //     DueDate.Text = row == null ? "" : CheckDate(row.Get<PurchaseOrder, DateTime>(x => x.DueDate));
-        //     ClosedDate.Text = row == null ? "" : CheckDate(row.Get<PurchaseOrder, DateTime>(x => x.ClosedDate));
-        // }
+    public void Heartbeat(TimeSpan time)
+    {
+    }
 
-        // private string CheckDate(DateTime date)
-        // {
-        //     return date.IsEmpty() ? "" : date.ToShortDateString();
-        // }
-        //
-        // private void LoadLookups<T>(MultiQuery query, List<Tuple<Guid, string>> lookups, Expression<Func<T, string>> display) where T : Entity
-        // {
-        //     var table = query.Get<T>();
-        //     foreach (var row in table.Rows)
-        //         lookups.Add(new Tuple<Guid, string>(row.Get<T, Guid>(c => c.ID), row.Get(display)));
-        // }
-        //
-        // private void CategoryList_SelectionChanged(object sender, SelectionChangedEventArgs e)
-        // {
-        //     if (!IsReady)
-        //         return;
-        //
-        //     Orders.SelectedCategory = (Guid)CategoryList.SelectedValue;
-        //
-        //     settings.SelectedCategory = Orders.SelectedCategory;
-        //     new UserConfiguration<PurchaseScreenSettings>().Save(settings);
-        //
-        //     Refresh();
-        // }
-        //
-        // private void StatusList_SelectionChanged(object sender, SelectionChangedEventArgs e)
-        // {
-        //     if (!IsReady)
-        //         return;
-        //
-        //     Orders.ShowAll = StatusList.SelectedIndex == 1;
-        //
-        //     settings.ShowAll = Orders.ShowAll;
-        //     new UserConfiguration<PurchaseScreenSettings>().Save(settings);
-        //
-        //     Refresh();
-        // }
-        //
-        // private void Search_KeyUp(object sender, KeyEventArgs e)
-        // {
-        // }
-        //
-        private void SplitPanel_OnChanged(object sender, DynamicSplitPanelSettings e)
-        {
-            settings.ViewType = SplitPanel.View == DynamicSplitPanelView.Master ? ScreenViewType.Register :
-                SplitPanel.View == DynamicSplitPanelView.Detail ? ScreenViewType.Details : ScreenViewType.Combined;
-            settings.AnchorWidth = SplitPanel.AnchorWidth;
+    // private void LoadOrder(CoreRow row)
+    // {
+    //     Number.Text = row == null ? "" : row.Get<PurchaseOrder, string>(x => x.PONumber);
+    //
+    //     SupplierCode.Text = row == null ? "" : row.Get<PurchaseOrder, string>(x => x.SupplierLink.Code);
+    //     SupplierName.Text = row == null ? "" : row.Get<PurchaseOrder, string>(x => x.SupplierLink.Name);
+    //
+    //     Description.Text = row == null ? "" : row.Get<PurchaseOrder, string>(x => x.Description);
+    //
+    //     Issued.Text = row == null ? "" : CheckDate(row.Get<PurchaseOrder, DateTime>(x => x.IssuedDate));
+    //     IssuedBy.Text = row == null ? "" : row.Get<PurchaseOrder, string>(x => x.IssuedBy.Name);
+    //
+    //     DueDate.Text = row == null ? "" : CheckDate(row.Get<PurchaseOrder, DateTime>(x => x.DueDate));
+    //     ClosedDate.Text = row == null ? "" : CheckDate(row.Get<PurchaseOrder, DateTime>(x => x.ClosedDate));
+    // }
 
-            var newTag = settings.ViewType == ScreenViewType.Register ? settings.ViewType.ToString() : "";
-            if (Orders.ColumnsTag != newTag)
-            {
-                Orders.ColumnsTag = newTag;
-                Orders.Refresh(true, true);
-            }
+    // private string CheckDate(DateTime date)
+    // {
+    //     return date.IsEmpty() ? "" : date.ToShortDateString();
+    // }
+    //
+    // private void LoadLookups<T>(MultiQuery query, List<Tuple<Guid, string>> lookups, Expression<Func<T, string>> display) where T : Entity
+    // {
+    //     var table = query.Get<T>();
+    //     foreach (var row in table.Rows)
+    //         lookups.Add(new Tuple<Guid, string>(row.Get<T, Guid>(c => c.ID), row.Get(display)));
+    // }
+    //
+    // private void CategoryList_SelectionChanged(object sender, SelectionChangedEventArgs e)
+    // {
+    //     if (!IsReady)
+    //         return;
+    //
+    //     Orders.SelectedCategory = (Guid)CategoryList.SelectedValue;
+    //
+    //     settings.SelectedCategory = Orders.SelectedCategory;
+    //     new UserConfiguration<PurchaseScreenSettings>().Save(settings);
+    //
+    //     Refresh();
+    // }
+    //
+    // private void StatusList_SelectionChanged(object sender, SelectionChangedEventArgs e)
+    // {
+    //     if (!IsReady)
+    //         return;
+    //
+    //     Orders.ShowAll = StatusList.SelectedIndex == 1;
+    //
+    //     settings.ShowAll = Orders.ShowAll;
+    //     new UserConfiguration<PurchaseScreenSettings>().Save(settings);
+    //
+    //     Refresh();
+    // }
+    //
+    // private void Search_KeyUp(object sender, KeyEventArgs e)
+    // {
+    // }
+    //
+    private void SplitPanel_OnChanged(object sender, DynamicSplitPanelSettings e)
+    {
+        settings.ViewType = SplitPanel.View == DynamicSplitPanelView.Master ? ScreenViewType.Register :
+            SplitPanel.View == DynamicSplitPanelView.Detail ? ScreenViewType.Details : ScreenViewType.Combined;
+        settings.AnchorWidth = SplitPanel.AnchorWidth;
 
-            new UserConfiguration<PurchaseScreenSettings>().Save(settings);
-        }
-        
-        private PurchaseOrder[]? _orders = null;
-        
-        private void ReloadOrders()
+        var newTag = settings.ViewType == ScreenViewType.Register ? settings.ViewType.ToString() : "";
+        if (Orders.ColumnsTag != newTag)
         {
-            if (Orders.SelectedRows?.Any() == true)
-            {
-                _orders = Orders.LoadOrders(Orders.SelectedRows);
-                Orders.InitialiseEditorForm(PurchaseOrder, _orders);
-                PurchaseOrder.Visibility = Visibility.Visible;
-            }
-            else
-            {
-                _orders = null;
-                PurchaseOrder.Visibility = Visibility.Hidden;
-            }
+            Orders.ColumnsTag = newTag;
+            Orders.Refresh(true, true);
         }
 
-        private void SetChanged(bool changed)
+        new UserConfiguration<PurchaseScreenSettings>().Save(settings);
+    }
+    
+    private PurchaseOrder[]? _orders = null;
+    
+    private void ReloadOrders()
+    {
+        if (Orders.SelectedRows?.Any() == true)
+        {
+            _orders = Orders.LoadOrders(Orders.SelectedRows);
+            Orders.InitialiseEditorForm(PurchaseOrder, _orders);
+            PurchaseOrder.Visibility = Visibility.Visible;
+        }
+        else
         {
-            bChanged = changed;
-            Orders.IsEnabled = !changed;
-            PurchaseOrder.HideButtons = !changed;
+            _orders = null;
+            PurchaseOrder.Visibility = Visibility.Hidden;
         }
+    }
 
-        private void PurchaseOrder_OnOK()
+    private void SetChanged(bool changed)
+    {
+        bChanged = changed;
+        Orders.IsEnabled = !changed;
+        PurchaseOrder.HideButtons = !changed;
+    }
+
+    private void PurchaseOrder_OnOK()
+    {
+        using (new WaitCursor())
         {
-            using (new WaitCursor())
+            var cancel = new System.ComponentModel.CancelEventArgs();
+            PurchaseOrder.SaveItem(cancel);
+            Orders.Refresh(false, true);
+            if (!cancel.Cancel)
             {
-                var cancel = new System.ComponentModel.CancelEventArgs();
-                PurchaseOrder.SaveItem(cancel);
-                Orders.Refresh(false, true);
-                if (!cancel.Cancel)
-                {
-                    ReloadOrders();
-                    SetChanged(false);
-                }
+                ReloadOrders();
+                SetChanged(false);
             }
         }
+    }
 
-        private void PurchaseOrder_OnCancel()
-        {
-            ReloadOrders();
-            SetChanged(false);
-        }
+    private void PurchaseOrder_OnCancel()
+    {
+        ReloadOrders();
+        SetChanged(false);
+    }
 
-        private bool bChanged = false;
-        private void PurchaseOrder_OnOnChanged(object? sender, EventArgs e)
-        {
-            SetChanged(true);
-        }
+    private bool bChanged = false;
+    private void PurchaseOrder_OnOnChanged(object? sender, EventArgs e)
+    {
+        SetChanged(true);
     }
 }