|
|
@@ -51,7 +51,13 @@ internal class BillStore : BaseStore<Bill>
|
|
|
.And(x => x.IsCustom).IsEqualTo(false),
|
|
|
Columns.Required<BillApproval>().Add(x => x.ID))
|
|
|
.ToList<BillApproval>();
|
|
|
- Provider.Delete(approvals, UserID);
|
|
|
+
|
|
|
+ if(approvals.Count > 0)
|
|
|
+ {
|
|
|
+ Provider.Delete(approvals, UserID);
|
|
|
+ bill.ApprovalStatus = BillApprovalStatus.Approved;
|
|
|
+ Provider.Save(bill);
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
private void UpdateBillApprovals(Bill bill)
|
|
|
@@ -111,6 +117,8 @@ internal class BillStore : BaseStore<Bill>
|
|
|
var toAdd = new List<BillApproval>();
|
|
|
var toRemove = new List<BillApproval>();
|
|
|
|
|
|
+ var statuses = new List<BillApprovalStatus>();
|
|
|
+
|
|
|
var newList = customApprovals.ToList();
|
|
|
foreach(var approval in autoApprovals)
|
|
|
{
|
|
|
@@ -118,6 +126,7 @@ internal class BillStore : BaseStore<Bill>
|
|
|
if (!approvals.Any(x => x.Employee.ID == approval.Employee.ID))
|
|
|
{
|
|
|
toAdd.Add(approval);
|
|
|
+ statuses.Add(approval.Status);
|
|
|
}
|
|
|
}
|
|
|
foreach(var approval in approvals)
|
|
|
@@ -126,6 +135,10 @@ internal class BillStore : BaseStore<Bill>
|
|
|
{
|
|
|
toRemove.Add(approval);
|
|
|
}
|
|
|
+ else
|
|
|
+ {
|
|
|
+ statuses.Add(approval.Status);
|
|
|
+ }
|
|
|
}
|
|
|
foreach(var approval in toAdd)
|
|
|
{
|
|
|
@@ -133,6 +146,13 @@ internal class BillStore : BaseStore<Bill>
|
|
|
}
|
|
|
Provider.Save(toAdd);
|
|
|
Provider.Delete(toRemove, UserID);
|
|
|
+
|
|
|
+ var status = Bill.CalculateApprovalStatus(statuses);
|
|
|
+ if(status != bill.ApprovalStatus)
|
|
|
+ {
|
|
|
+ bill.ApprovalStatus = status;
|
|
|
+ Provider.Save(bill);
|
|
|
+ }
|
|
|
}
|
|
|
catch(Exception e)
|
|
|
{
|