PaymentVariantsWindow: Use async for UpdateSums()

This commit is contained in:
2024-03-15 17:25:42 +01:00
parent 711bab5d33
commit b7d33e6d89

View File

@ -43,10 +43,10 @@ namespace Elwig.Windows {
.OrderBy(v => v.AvNr)
.Include(v => v.Season.Currency)
.ToListAsync(), v => (v as PaymentVar)?.AvNr);
Update();
await Update();
}
private void Update() {
private async Task Update() {
if (PaymentVariantList.SelectedItem is PaymentVar v) {
var locked = !v.TestVariant;
DeleteButton.IsEnabled = !locked;
@ -139,7 +139,7 @@ namespace Elwig.Windows {
DataInput.Text = "";
DataInput.IsReadOnly = true;
}
UpdateSums();
await UpdateSums();
UpdateSaveButton();
}
@ -156,17 +156,17 @@ namespace Elwig.Windows {
CommitButton.IsEnabled = CalculateButton.IsEnabled;
}
private void UpdateSums() {
private async Task UpdateSums() {
if (PaymentVariantList.SelectedItem is PaymentVar v) {
using var ctx = new AppDbContext();
var sym = v.Season.Currency.Symbol;
var modSum = ctx.PaymentDeliveryParts
var modSum = await ctx.PaymentDeliveryParts
.Where(p => p.Year == v.Year && p.AvNr == v.AvNr)
.Sum(p => p.AmountValue - p.NetAmountValue);
.SumAsync(p => p.AmountValue - p.NetAmountValue);
ModifierSum.Text = $"{v.Season.DecFromDb(modSum):N2} {sym}";
var totalSum = ctx.MemberPayments
var totalSum = await ctx.MemberPayments
.Where(p => p.Year == v.Year && p.AvNr == v.AvNr)
.Sum(p => p.AmountValue);
.SumAsync(p => p.AmountValue);
TotalSum.Text = $"{v.Season.DecFromDb(totalSum):N2} {sym}";
var credits = ctx.Credits.Where(c => c.Year == v.Year && c.AvNr == v.AvNr);
if (!credits.Any()) {
@ -174,9 +174,9 @@ namespace Elwig.Windows {
DeductionSum.Text = $"- {sym}";
PaymentSum.Text = $"- {sym}";
} else {
VatSum.Text = $"{v.Season.DecFromDb(credits.Sum(c => c.VatAmountValue)):N2} {sym}";
DeductionSum.Text = $"{-v.Season.DecFromDb(credits.Sum(c => c.ModifiersValue ?? 0)):N2} {sym}";
PaymentSum.Text = $"{v.Season.DecFromDb(credits.Sum(c => c.AmountValue)):N2} {sym}";
VatSum.Text = $"{v.Season.DecFromDb(await credits.SumAsync(c => c.VatAmountValue)):N2} {sym}";
DeductionSum.Text = $"{-v.Season.DecFromDb(await credits.SumAsync(c => c.ModifiersValue ?? 0)):N2} {sym}";
PaymentSum.Text = $"{v.Season.DecFromDb(await credits.SumAsync(c => c.AmountValue)):N2} {sym}";
}
} else {
ModifierSum.Text = "-";
@ -187,8 +187,8 @@ namespace Elwig.Windows {
}
}
private void PaymentVariantList_SelectionChanged(object sender, SelectionChangedEventArgs evt) {
Update();
private async void PaymentVariantList_SelectionChanged(object sender, SelectionChangedEventArgs evt) {
await Update();
}
private async void AddButton_Click(object sender, RoutedEventArgs evt) {