|
@@ -43,9 +43,26 @@ internal class BillStore : BaseStore<Bill>
|
|
|
//UpdateAggregate<Supplier>(entity, entity.SupplierLink, Sum<Supplier>(b => b.Balance, s => s.Balance));
|
|
|
}
|
|
|
|
|
|
+ private void ClearBillApprovals(Bill bill)
|
|
|
+ {
|
|
|
+ // We need to clear all automatic bill approvals.
|
|
|
+ var approvals = Provider.Query(
|
|
|
+ new Filter<BillApproval>(x => x.Bill.ID).IsEqualTo(bill.ID)
|
|
|
+ .And(x => x.IsCustom).IsEqualTo(false),
|
|
|
+ Columns.Required<BillApproval>().Add(x => x.ID))
|
|
|
+ .ToList<BillApproval>();
|
|
|
+ Provider.Delete(approvals, UserID);
|
|
|
+ }
|
|
|
+
|
|
|
private void UpdateBillApprovals(Bill bill)
|
|
|
{
|
|
|
- if (bill.ID == Guid.Empty || bill.ApprovalSet.ID == Guid.Empty) return;
|
|
|
+ if (bill.ID == Guid.Empty) return;
|
|
|
+
|
|
|
+ if(bill.ApprovalSet.ID == Guid.Empty)
|
|
|
+ {
|
|
|
+ ClearBillApprovals(bill);
|
|
|
+ return;
|
|
|
+ }
|
|
|
|
|
|
var setEmployees = Provider.Query(
|
|
|
new Filter<BillApprovalSetEmployee>(x => x.ApprovalSet.ID).IsEqualTo(bill.ApprovalSet.ID),
|