|
@@ -140,18 +140,31 @@ public partial class SupplierBillPanel : UserControl, IPanel<Bill>, IPropertiesP
|
|
|
{
|
|
|
_approval.Approved = DateTime.Now;
|
|
|
EditLayout.IsApproved = true;
|
|
|
- _approvalPage?.SaveItem(_approval);
|
|
|
- _approvalPage?.Refresh(false, true);
|
|
|
- _approvalPage?.DoChanged();
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
_approval.Approved = DateTime.MinValue;
|
|
|
EditLayout.IsApproved = false;
|
|
|
- _approvalPage?.SaveItem(_approval);
|
|
|
- _approvalPage?.Refresh(false, true);
|
|
|
- _approvalPage?.DoChanged();
|
|
|
}
|
|
|
+ Bill.DoChanged();
|
|
|
+
|
|
|
+ if(_approvalPage is not null)
|
|
|
+ {
|
|
|
+ _approvalPage.SaveItem(_approval);
|
|
|
+ _approvalPage.Refresh(false, true);
|
|
|
+ _approvalPage.DoChanged();
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ private void SaveApproval()
|
|
|
+ {
|
|
|
+ if (_approvalPage is not null || _approval is null) return;
|
|
|
+ Client.Save(_approval, "Approval updated by user.");
|
|
|
+ }
|
|
|
+
|
|
|
+ private void CancelApproval()
|
|
|
+ {
|
|
|
+ UpdateApproval();
|
|
|
}
|
|
|
|
|
|
private void UpdateApproval()
|
|
@@ -161,25 +174,31 @@ public partial class SupplierBillPanel : UserControl, IPanel<Bill>, IPropertiesP
|
|
|
if(Bill.Pages.TryGetPage<DynamicOneToManyGrid<Bill, BillApproval>>(out _approvalPage))
|
|
|
{
|
|
|
_approval = _approvalPage.Items.FirstOrDefault(x => x.Employee.ID == App.EmployeeID);
|
|
|
-
|
|
|
- EditLayout.CanApprove = _approval is not null;
|
|
|
- EditLayout.IsApproved = _approval is not null ? _approval.Approved != DateTime.MinValue : false;
|
|
|
-
|
|
|
- if(Bill.Pages.TryGetPage(out _billLinePage))
|
|
|
- {
|
|
|
- _billLinePage.OnChanged += BillLinePage_OnChanged;
|
|
|
-
|
|
|
- EditLayout.BillAmount = _billLinePage.Items.Sum(x => x.IncTax);
|
|
|
- EditLayout.POAmount = _billLinePage.Items.Sum(x =>
|
|
|
- {
|
|
|
- return x.OrderItem.IncTax + x.Consignment.IncTax;
|
|
|
- });
|
|
|
- }
|
|
|
+ _approvalPage.OnChanged -= _approvalPage_OnChanged;
|
|
|
+ _approvalPage.OnChanged += _approvalPage_OnChanged;
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
- _approval = null;
|
|
|
- EditLayout.CanApprove = false;
|
|
|
+ _approval = Client.Query<BillApproval>(
|
|
|
+ new Filter<BillApproval>(x => x.Employee.ID).IsEqualTo(App.EmployeeID)
|
|
|
+ .And(x => x.Bill.ID).IsEqualTo(_bills[0].ID),
|
|
|
+ Columns.Required<BillApproval>().Add(x => x.Approved))
|
|
|
+ .ToObjects<BillApproval>().FirstOrDefault();
|
|
|
+ }
|
|
|
+
|
|
|
+ EditLayout.CanApprove = _approval is not null;
|
|
|
+ EditLayout.IsApproved = _approval is not null ? _approval.Approved != DateTime.MinValue : false;
|
|
|
+
|
|
|
+ if(Bill.Pages.TryGetPage(out _billLinePage))
|
|
|
+ {
|
|
|
+ _billLinePage.OnChanged -= BillLinePage_OnChanged;
|
|
|
+ _billLinePage.OnChanged += BillLinePage_OnChanged;
|
|
|
+
|
|
|
+ EditLayout.BillAmount = _billLinePage.Items.Sum(x => x.IncTax);
|
|
|
+ EditLayout.POAmount = _billLinePage.Items.Sum(x =>
|
|
|
+ {
|
|
|
+ return x.OrderItem.IncTax + x.Consignment.IncTax;
|
|
|
+ });
|
|
|
}
|
|
|
}
|
|
|
else
|
|
@@ -189,6 +208,12 @@ public partial class SupplierBillPanel : UserControl, IPanel<Bill>, IPropertiesP
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ private void _approvalPage_OnChanged(object? sender, EventArgs e)
|
|
|
+ {
|
|
|
+ EditLayout.CanApprove = _approval is not null;
|
|
|
+ EditLayout.IsApproved = _approval is not null ? _approval.Approved != DateTime.MinValue : false;
|
|
|
+ }
|
|
|
+
|
|
|
private void BillLinePage_OnChanged(object? sender, EventArgs e)
|
|
|
{
|
|
|
if (_billLinePage is null) return;
|
|
@@ -287,6 +312,7 @@ public partial class SupplierBillPanel : UserControl, IPanel<Bill>, IPropertiesP
|
|
|
Bill.SaveItem(cancel);
|
|
|
if (!cancel.Cancel)
|
|
|
{
|
|
|
+ SaveApproval();
|
|
|
if(_editRows is not null && _bills is not null)
|
|
|
{
|
|
|
Bills.UpdateRows(_editRows, _bills);
|
|
@@ -299,6 +325,7 @@ public partial class SupplierBillPanel : UserControl, IPanel<Bill>, IPropertiesP
|
|
|
|
|
|
private void Bill_OnOnCancel()
|
|
|
{
|
|
|
+ CancelApproval();
|
|
|
ReloadBills();
|
|
|
SetChanged(false);
|
|
|
}
|