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