|
@@ -1,4 +1,9 @@
|
|
|
using Comal.Classes;
|
|
|
+using InABox.Core;
|
|
|
+using NPOI.HPSF;
|
|
|
+using System;
|
|
|
+using System.Collections.Generic;
|
|
|
+using System.Linq;
|
|
|
|
|
|
namespace Comal.Stores
|
|
|
{
|
|
@@ -21,6 +26,28 @@ namespace Comal.Stores
|
|
|
protected override void BeforeDelete(PurchaseOrder entity)
|
|
|
{
|
|
|
UnlinkTrackingKanban<PurchaseOrderKanban, PurchaseOrder, PurchaseOrderLink>(entity);
|
|
|
+ DeleteStockMovements(entity);
|
|
|
}
|
|
|
+
|
|
|
+ private void DeleteStockMovements(PurchaseOrder entity)
|
|
|
+ {
|
|
|
+ var items = Provider.Query(
|
|
|
+ new Filter<PurchaseOrderItem>(x => x.PurchaseOrderLink.ID).IsEqualTo(entity.ID),
|
|
|
+ new Columns<PurchaseOrderItem>(x => x.ID)
|
|
|
+ ).Rows.Select(x => x.ToObject<PurchaseOrderItem>());
|
|
|
+
|
|
|
+ List<Guid> ids = new List<Guid>();
|
|
|
+ foreach ( var item in items)
|
|
|
+ ids.Add(item.ID);
|
|
|
+
|
|
|
+ var movements = Provider.Query(
|
|
|
+ new Filter<StockMovement>(x => x.OrderItem.ID).InList(ids.ToArray()),
|
|
|
+ new Columns<StockMovement>(x => x.ID)
|
|
|
+ ).Rows.Select(x => x.ToObject<StockMovement>());
|
|
|
+
|
|
|
+ if (movements.Any())
|
|
|
+ FindSubStore<StockMovement>().Delete(movements, "Purchase Order Deleted");
|
|
|
+ }
|
|
|
+
|
|
|
}
|
|
|
}
|