|
@@ -0,0 +1,31 @@
|
|
|
+using Comal.Classes;
|
|
|
+using Comal.Stores;
|
|
|
+using InABox.Core;
|
|
|
+using System;
|
|
|
+using System.Collections.Generic;
|
|
|
+using System.Text;
|
|
|
+
|
|
|
+namespace PRSStores;
|
|
|
+
|
|
|
+public class StockMovementBatchStore : BaseStore<StockMovementBatch>
|
|
|
+{
|
|
|
+ protected override void BeforeDelete(StockMovementBatch entity)
|
|
|
+ {
|
|
|
+ base.BeforeDelete(entity);
|
|
|
+
|
|
|
+ UpdateStockHoldings(entity);
|
|
|
+ }
|
|
|
+
|
|
|
+ private void UpdateStockHoldings(StockMovementBatch entity)
|
|
|
+ {
|
|
|
+ var movements = Provider.Query(
|
|
|
+ new Filter<StockMovement>(x => x.Batch.ID).IsEqualTo(entity.ID),
|
|
|
+ new Columns<StockMovement>(x => x.ID));
|
|
|
+ foreach(var row in movements.Rows)
|
|
|
+ {
|
|
|
+ // We need to do this in before delete, because aotherwise we wont have the data
|
|
|
+ // that we need to pull to properly update the stockholdings
|
|
|
+ StockHoldingStore.UpdateStockHolding(row.Get<StockMovement, Guid>(x => x.ID), StockHoldingStore.Action.Decrease);
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|