Ver código fonte

Fixed multi-select deletion on StockMovement grid

Kenric Nugteren 2 semanas atrás
pai
commit
55b8d2770b

+ 6 - 6
prs.desktop/Panels/Products/Locations/ProductStockMovementGrid.cs

@@ -236,12 +236,12 @@ public class ProductStockMovementGrid : DynamicDataGrid<StockMovement>, IDataMod
             return;
         }
 
-        var txnid = rows.First().Get<StockMovement, Guid>(x => x.Transaction);
-        var allrecords = new Client<StockMovement>().Query(
-            Filter<StockMovement>.Where(x => x.Transaction).IsEqualTo(txnid),
-            Columns.None<StockMovement>().Add(x => x.ID)
-        );
-        base.DeleteItems(allrecords.Rows.ToArray());
+        var transactionIDs = rows.Select(x => x.Get<StockMovement, Guid>(x => x.Transaction)).Distinct().ToArray();
+        var allIDs = Client.Query(
+            Filter<StockMovement>.Where(x => x.Transaction).InList(transactionIDs),
+            Columns.None<StockMovement>().Add(x => x.ID))
+            .Rows.Select(x => x.Get<StockMovement, Guid>(x => x.ID)).ToHashSet();
+        base.DeleteItems(Data.Rows.Where(x => allIDs.Contains(x.Get<StockMovement, Guid>(x => x.ID))).ToArray());
     }
 
     private void StockMovementGrid_BeforeRefresh(object sender, BeforeRefreshEventArgs args)