Bladeren bron

Fixed double refresh problem on Summary screen

Kenric Nugteren 1 jaar geleden
bovenliggende
commit
a3eb798a9d
2 gewijzigde bestanden met toevoegingen van 30 en 37 verwijderingen
  1. 1 1
      prs.desktop/Panels/Jobs/JobPanel.xaml.cs
  2. 29 36
      prs.desktop/Panels/Jobs/JobSummaryGrid.cs

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

@@ -545,9 +545,9 @@ namespace PRSDesktop
 
         private void JobGrid_OnSelectItem(object sender, DynamicGridSelectionEventArgs e)
         {
-            lastselection = DateTime.Now;
             if (IsReady && !_jobGridRefreshing)
             {
+                lastselection = DateTime.Now;
                 settings.CurrentJob = e.Rows?.FirstOrDefault()?.Get<Job, Guid>(x => x.ID) ?? Guid.Empty;
                 new UserConfiguration<JobScreenSettings>().Save(settings);
             }

+ 29 - 36
prs.desktop/Panels/Jobs/JobSummaryGrid.cs

@@ -421,7 +421,7 @@ namespace PRSDesktop
             Action<CoreTable?, Exception?> action)
         {
             
-            Filter<JobMaterial>? filter = Job.ID == Guid.Empty
+            var filter = Job.ID == Guid.Empty
                 ? new Filter<JobMaterial>().None()
                 : new Filter<JobMaterial>(x => x.Job.ID).IsEqualTo(Job.ID)
                     .And(x => x.Product.ID).IsNotEqualTo(Guid.Empty);
@@ -431,7 +431,7 @@ namespace PRSDesktop
             Progress.ShowModal("Loading Data", 
                 (progress) =>
                 {
-                    CoreTable table = new CoreTable();
+                    var table = new CoreTable();
                     table.LoadColumns(columns);
                     
                     var data = new Client<JobMaterial>().Query(filter, columns, orderby);
@@ -439,40 +439,33 @@ namespace PRSDesktop
                     
                     if (pids.Any())
                     {
-
-                        MultiQuery query = new MultiQuery();
-
-                        query.Add<StockHolding>(
-                            new Filter<StockHolding>(x => x.Product.ID).InList(pids)
-                                .And(x => x.Units).IsNotEqualTo(0.0F)
-                                .And(new Filter<StockHolding>(x => x.Job.ID).IsEqualTo(Guid.Empty).Or(x=>x.Job.ID).IsNotEqualTo(Job.ID)),
-                            new Columns<StockHolding>(x => x.Product.ID)
-                                .Add(x => x.Style.ID)
-                                .Add(x => x.Dimensions.UnitSize)
-                                .Add(x => x.Units)
-                                .Add(x => x.Job.ID)
-                                .Add(x => x.Job.JobStatus.Active)
-                        );
-
-                        query.Add<PurchaseOrderItem>(
-                            new Filter<PurchaseOrderItem>(x => x.ReceivedDate).IsEqualTo(DateTime.MinValue)
-                                .And(x => x.Product.ID).InList(pids)
-                                .And(new Filter<PurchaseOrderItem>(x => x.Job.ID).IsEqualTo(Guid.Empty).Or(x=>x.Job.ID).IsNotEqualTo(Job.ID)),
-                            new Columns<PurchaseOrderItem>(x => x.Product.ID)
-                                .Add(x => x.Style.ID)
-                                .Add(x => x.Dimensions.UnitSize)
-                                .Add(x => x.Qty)
-                                .Add(x => x.Job.ID)
-                                .Add(x => x.Job.JobStatus.Active)
-                        );
-
-                        query.Query();
-
-                        var freestock = query.Get<StockHolding>();
-                        Columns<StockHolding> freestockcolumns = new Columns<StockHolding>(freestock.Columns.Select(x => x.ColumnName));
-
-                        var freeorders = query.Get<PurchaseOrderItem>();
-                        Columns<PurchaseOrderItem> freeordercolumns = new Columns<PurchaseOrderItem>(freeorders.Columns.Select(x => x.ColumnName));
+                        var results = Client.QueryMultiple(
+                            new KeyedQueryDef<StockHolding>(
+                                new Filter<StockHolding>(x => x.Product.ID).InList(pids)
+                                    .And(x => x.Units).IsNotEqualTo(0.0F)
+                                    .And(new Filter<StockHolding>(x => x.Job.ID).IsEqualTo(Guid.Empty).Or(x => x.Job.ID).IsNotEqualTo(Job.ID)),
+                                new Columns<StockHolding>(x => x.Product.ID)
+                                    .Add(x => x.Style.ID)
+                                    .Add(x => x.Dimensions.UnitSize)
+                                    .Add(x => x.Units)
+                                    .Add(x => x.Job.ID)
+                                    .Add(x => x.Job.JobStatus.Active)),
+                            new KeyedQueryDef<PurchaseOrderItem>(
+                                new Filter<PurchaseOrderItem>(x => x.ReceivedDate).IsEqualTo(DateTime.MinValue)
+                                    .And(x => x.Product.ID).InList(pids)
+                                    .And(new Filter<PurchaseOrderItem>(x => x.Job.ID).IsEqualTo(Guid.Empty).Or(x => x.Job.ID).IsNotEqualTo(Job.ID)),
+                                new Columns<PurchaseOrderItem>(x => x.Product.ID)
+                                    .Add(x => x.Style.ID)
+                                    .Add(x => x.Dimensions.UnitSize)
+                                    .Add(x => x.Qty)
+                                    .Add(x => x.Job.ID)
+                                    .Add(x => x.Job.JobStatus.Active)));
+
+                        var freestock = results.Get<StockHolding>();
+                        var freestockcolumns = new Columns<StockHolding>(freestock.Columns.Select(x => x.ColumnName));
+
+                        var freeorders = results.Get<PurchaseOrderItem>();
+                        var freeordercolumns = new Columns<PurchaseOrderItem>(freeorders.Columns.Select(x => x.ColumnName));
 
                         var hasStyle = StyleColumnVisible();
                         var keys = GetKeys(data.Rows, columns, hasStyle);