OriginHierarchyWindow: Add deactivation confirmation and status bar

This commit is contained in:
2023-11-25 00:20:14 +01:00
parent c25bfc9f1b
commit 2bca2aed97
2 changed files with 74 additions and 0 deletions

View File

@ -75,6 +75,35 @@ namespace Elwig.Windows {
UpdateButtons();
}
private async Task UpdateStatusBar() {
StatusKgName.Text = "Katastralgemeinde: ";
StatusWbRds.Text = "Riede: ";
StatusDefaultKgs.Text = "Stammgemeinde: ";
StatusAreaCommitments.Text = "Flächenbindungen: ";
StatusDeliveries.Text = "Lieferungen: ";
if (WbGlKgs.SelectedItem is AT_Kg k && k.WbKg != null) {
StatusKgName.Text += $"{k.Name} ({k.KgNr:00000})";
var reeds = await Context.WbRde.Where(r => r.KgNr == k.KgNr).CountAsync();
StatusWbRds.Text += $"{reeds:N0}";
var activeMembers = await Context.Members.Where(m => m.IsActive && m.DefaultKgNr == k.KgNr).CountAsync();
var allMembers = await Context.Members.Where(m => m.DefaultKgNr == k.KgNr).CountAsync();
StatusDefaultKgs.Text += $"{activeMembers:N0} ({allMembers:N0})";
var year = Utils.CurrentNextSeason;
var activeAreaComs = await Context.AreaCommitments.Where(c => c.KgNr == k.KgNr && c.YearFrom <= year && (c.YearTo == null || c.YearTo >= year)).CountAsync();
var allAreaComs = await Context.AreaCommitments.Where(c => c.KgNr == k.KgNr).CountAsync();
StatusAreaCommitments.Text += $"{activeAreaComs:N0} ({allAreaComs:N0})";
var deliveryParts = await Context.DeliveryParts.Where(p => p.KgNr == k.KgNr).CountAsync();
var deliveries = await Context.Deliveries.Where(d => d.Parts.Any(p => p.KgNr == k.KgNr)).CountAsync();
StatusDeliveries.Text += $"{deliveries:N0} ({deliveryParts:N0})";
} else {
StatusKgName.Text += "-";
StatusWbRds.Text += "-";
StatusDefaultKgs.Text += "-";
StatusAreaCommitments.Text += "-";
StatusDeliveries.Text += "-";
}
}
private async Task UpdateWbRds() {
WbRdsHeader.Content = "Riede";
if (WbGlKgs.SelectedItem is AT_Kg k) {
@ -107,6 +136,7 @@ namespace Elwig.Windows {
ControlUtils.SelectListBoxItem(WbKgs, k => (k as AT_Kg)?.KgNr, k.KgNr);
isUpdating = false;
}
await UpdateStatusBar();
}
private void WbKgs_SelectionChanged(object sender, SelectionChangedEventArgs e) {
@ -161,6 +191,10 @@ namespace Elwig.Windows {
private async void DeactivateKgButton_Click(object sender, RoutedEventArgs e) {
if (WbGlKgs.SelectedItem is not AT_Kg k || k.WbKg == null) return;
var r = MessageBox.Show(
$"Sollen alle Riede und Stammgemeinden-Einträge von der KG {k.Name} wirklich unwiderruflich gelöscht werden?",
"Katastralgemeinde deaktivieren", MessageBoxButton.YesNo, MessageBoxImage.Warning, MessageBoxResult.No);
if (r != MessageBoxResult.Yes) return;
try {
Context.Remove(k.WbKg);
await Context.SaveChangesAsync();