MainWindow: Add statistics table in Leseabschluss
This commit is contained in:
@ -251,7 +251,7 @@ namespace Elwig.Windows {
|
||||
}
|
||||
|
||||
private void SeasonFinish_Expanded(object sender, RoutedEventArgs evt) {
|
||||
Height = 530;
|
||||
Height = 610;
|
||||
}
|
||||
|
||||
private void SeasonFinish_Collapsed(object sender, RoutedEventArgs evt) {
|
||||
@ -260,12 +260,32 @@ namespace Elwig.Windows {
|
||||
|
||||
private async void SeasonInput_TextChanged(object? sender, TextChangedEventArgs? evt) {
|
||||
using var ctx = new AppDbContext();
|
||||
var s0 = await ctx.Seasons.FindAsync(SeasonInput.Value);
|
||||
var year = SeasonInput.Value;
|
||||
var s0 = await ctx.Seasons.FindAsync(year);
|
||||
var valid = (s0 != null);
|
||||
DeliveryConfirmationButton.IsEnabled = valid;
|
||||
OverUnderDeliveryButton.IsEnabled = valid;
|
||||
PaymentButton.IsEnabled = valid;
|
||||
BreakdownButton.IsEnabled = valid;
|
||||
|
||||
if (valid) {
|
||||
var areaComs = Utils.ActiveAreaCommitments(ctx.AreaCommitments, year!.Value);
|
||||
var weightTotal = await ctx.DeliveryParts.Where(p => p.Year == year).SumAsync(p => p.Weight);
|
||||
var gebWeight = await ctx.DeliveryPartBuckets.Where(b => b.Year == year && b.Discr != "_").SumAsync(b => b.Value);
|
||||
SeasonStatMembersTotal.Text = $"{await ctx.Deliveries.Where(d => d.Year == year).Select(d => d.Member).Distinct().CountAsync():N0}";
|
||||
SeasonStatMembersGeb.Text = $"{await areaComs.Select(c => c.Member).Distinct().CountAsync():N0}";
|
||||
SeasonStatWeightTotal.Text = $"{weightTotal:N0} kg";
|
||||
SeasonStatWeightGeb.Text = $"{gebWeight:N0} kg";
|
||||
SeasonStatWeightUngeb.Text = $"{weightTotal - gebWeight:N0} kg";
|
||||
SeasonStatArea.Text = $"{await areaComs.SumAsync(c => c.Area):N0} m²";
|
||||
} else {
|
||||
SeasonStatMembersTotal.Text = "-";
|
||||
SeasonStatMembersGeb.Text = "-";
|
||||
SeasonStatWeightTotal.Text = "-";
|
||||
SeasonStatWeightGeb.Text = "-";
|
||||
SeasonStatWeightUngeb.Text = "-";
|
||||
SeasonStatArea.Text = "-";
|
||||
}
|
||||
}
|
||||
|
||||
private void DeliveryConfirmationButton_Click(object sender, RoutedEventArgs evt) {
|
||||
|
Reference in New Issue
Block a user