Kenric Nugteren 1 год назад
Родитель
Сommit
b95fd8a502

+ 1 - 0
.gitignore

@@ -226,3 +226,4 @@ prs.mobile/comal.timesheet.sln
 prs.server/PRSServer.sln
 prs.mobile/comal.timesheets/CustomControls/DataGrid/Views/Templates/._ViewCell2Columns.xaml
 prs.mobile/comal.timesheets/CustomControls/DataGrid/Views/Templates/._ViewCell2Columns.xaml.cs
+prs.desktop/Properties/launchSettings.json

+ 0 - 3
prs.desktop/Panels/Invoices/InvoicePanel.xaml.cs

@@ -99,9 +99,6 @@ namespace PRSDesktop
 
         private void Invoices_OnSelectItem(object sender, DynamicGridSelectionEventArgs e)
         {
-            if (!IsReady)
-                return;
-            
             var _invoice = e.Rows?.FirstOrDefault()?.ToObject<Invoice>() ?? new Invoice();
             
             Parts.Invoice = _invoice;

+ 3 - 3
prs.desktop/Panels/Jobs/JobPanel.xaml.cs

@@ -425,7 +425,7 @@ namespace PRSDesktop
 
         private void Timer_Tick(object? sender, EventArgs e)
         {
-            if (lastselection < DateTime.Now.AddMilliseconds(-500))
+            if (lastselection < DateTime.Now.AddMilliseconds(-500) && !_jobGridRefreshing)
             {
                 lastselection = DateTime.MaxValue;
                 
@@ -534,7 +534,7 @@ namespace PRSDesktop
             panel.Refresh();
         }
 
-        private void RefreshGrid<T>(TabItem container, ref T grid, Job job) where T : IDynamicGrid, IJobControl, IDataModelSource, new()
+        private void RefreshGrid<T>(TabItem container, ref T? grid, Job job) where T : IDynamicGrid, IJobControl, IDataModelSource, new()
         {
             var bInitialised = false;
             if (grid == null)
@@ -564,7 +564,7 @@ namespace PRSDesktop
 
         private void JobGrid_OnSelectItem(object sender, DynamicGridSelectionEventArgs e)
         {
-            if (IsReady && !_jobGridRefreshing)
+            if (!_jobGridRefreshing)
             {
                 lastselection = DateTime.Now;
                 settings.CurrentJob = e.Rows?.FirstOrDefault()?.Get<Job, Guid>(x => x.ID) ?? Guid.Empty;

+ 5 - 6
prs.desktop/Panels/Products/Locations/StockHoldingGrid.cs

@@ -61,8 +61,6 @@ namespace PRSDesktop
             TransferButton.Margin = new Thickness(20, TransferButton.Margin.Top, TransferButton.Margin.Right, TransferButton.Margin.Bottom);
             TransferButton.IsEnabled = false;
 
-            OnSelectItem += SelectItem;
-
             HiddenColumns.Add(x => x.Product.ID);
             HiddenColumns.Add(x => x.Product.Deleted);
             HiddenColumns.Add(x => x.Job.ID);
@@ -100,12 +98,13 @@ namespace PRSDesktop
 
         public IStockLocation Location { get; set; }
 
-
-        private void SelectItem(object sender, DynamicGridSelectionEventArgs e)
+        protected override void SelectItems(CoreRow[]? rows)
         {
+            base.SelectItems(rows);
+
             ReceiveButton.IsEnabled = Location != null && Location.ID != Guid.Empty;
-            IssueButton.IsEnabled = Location != null && Location.ID != Guid.Empty && e.Rows?.Any() == true;
-            TransferButton.IsEnabled = Location != null && Location.ID != Guid.Empty && e.Rows?.Any() == true;
+            IssueButton.IsEnabled = Location != null && Location.ID != Guid.Empty && rows?.Any() == true;
+            TransferButton.IsEnabled = Location != null && Location.ID != Guid.Empty && rows?.Any() == true;
         }
 
         private void CheckStockMovementGrid()

+ 2 - 2
prs.desktop/Panels/Products/Locations/StockLocationPanel.xaml.cs

@@ -330,12 +330,12 @@ namespace PRSDesktop
             return result;
         }
 
-        private void Holdings_OnChanged(object sender, EventArgs args)
+        private void Holdings_OnChanged(object? sender, EventArgs args)
         {
             Movements.Refresh(false, true);
         }
 
-        private void Movements_OnChanged(object sender, EventArgs args)
+        private void Movements_OnChanged(object? sender, EventArgs args)
         {
             Holdings.Refresh(false, true);
         }

+ 0 - 5
prs.desktop/Panels/Products/Movements/StockMovementPanel.xaml.cs

@@ -193,11 +193,6 @@ public partial class StockMovementPanel : UserControl, IPanel<StockMovement>
         Refresh();
     }
 
-    public BitmapImage Image()
-    {
-        return null;
-    }
-
     private void Batches_OnSelectItem(object sender, DynamicGridSelectionEventArgs e)
     {
         var row = e.Rows?.FirstOrDefault();

+ 16 - 11
prs.desktop/Panels/Products/Reservation Management/JobRequisitionReviewGrid.cs

@@ -95,8 +95,6 @@ namespace PRSDesktop
             if (Security.CanEdit<JobRequisitionItem>())
                 ActionColumns.Add(new DynamicMenuColumn(BuildMenu));
 
-            OnSelectItem += JobRequisitionReviewGrid_OnSelectItem;
-
             ColumnsTag = "JobRequisitionReview";
 
             CoreTable table = new Client<Employee>().Query(new Filter<Employee>(x => x.UserLink.UserID).IsEqualTo(ClientFactory.UserID), new Columns<Employee>(x => x.ID, x => x.Name));
@@ -233,9 +231,10 @@ namespace PRSDesktop
             return result;
         }
 
-        private void JobRequisitionReviewGrid_OnSelectItem(object sender, DynamicGridSelectionEventArgs e)
+        protected override void SelectItems(CoreRow[]? rows)
         {
-            OnJobRequiItemSelected?.Invoke(SelectedRows);
+            base.SelectItems(rows);
+            OnJobRequiItemSelected?.Invoke(rows ?? Array.Empty<CoreRow>());
         }
 
         private bool CreateTreatmentPO(Button button, CoreRow[] rows)
@@ -328,9 +327,11 @@ namespace PRSDesktop
             OnGridRefresh?.Invoke();
         }
 
-        private void SplitLine_Clicked(CoreRow row)
+        private void SplitLine_Clicked(CoreRow? row)
         {
-            JobRequisitionItem item = row.ToObject<JobRequisitionItem>();
+            if (row is null) return;
+
+            var item = row.ToObject<JobRequisitionItem>();
             if (CheckValidAction(item, false))
             {
                 int units = Convert.ToInt32(item.Qty);
@@ -341,16 +342,20 @@ namespace PRSDesktop
             }
         }
 
-        private void Archive_Clicked(CoreRow row)
+        private void Archive_Clicked(CoreRow? row)
         {
-            JobRequisitionItem item = row.ToObject<JobRequisitionItem>();
+            if (row is null) return;
+
+            var item = row.ToObject<JobRequisitionItem>();
             item.Archived = DateTime.Now;
             SaveRow(row, JobRequisitionItemStatus.Archived, "Line marked as Archived by " + empName + " on " + DateTime.Now.ToString("dd MMM yy"));
         }
 
-        private void OrderRequired_Clicked(CoreRow row)
+        private void OrderRequired_Clicked(CoreRow? row)
         {
-            JobRequisitionItem item = row.ToObject<JobRequisitionItem>();
+            if (row is null) return;
+
+            var item = row.ToObject<JobRequisitionItem>();
             if (CheckValidAction(item, false))
                 SaveRow(row, JobRequisitionItemStatus.OrderRequired, "Line marked as Order Required by " + empName + " on " + DateTime.Now.ToString("dd MMM yy"));
         }
@@ -590,7 +595,7 @@ namespace PRSDesktop
         }
 
 
-        private void BuildMenu(DynamicMenuColumn column, CoreRow row)
+        private void BuildMenu(DynamicMenuColumn column, CoreRow? row)
         {
             // column.AddItem("Treatment Required", PRSDesktop.Resources.palette, TreatmentRequired_Clicked);
             column.AddItem("Order Required", PRSDesktop.Resources.purchase, OrderRequired_Clicked);

+ 1 - 1
prs.desktop/Panels/Tasks/TaskGrid.cs

@@ -31,7 +31,7 @@ public class TaskGrid : DynamicDataGrid<Kanban>, ITaskControl, IDefaultGrid
     {
         base.DoReconfigure(options);
 
-        options.AddRange(DynamicGridOption.SelectColumns, DynamicGridOption.FilterRows);
+        options.AddRange(DynamicGridOption.SelectColumns, DynamicGridOption.FilterRows, DynamicGridOption.RecordCount);
     }
 
     public Guid MyID { get; set; } = CoreUtils.FullGuid;