diff --git a/Elwig/Windows/OriginHierarchyWindow.xaml b/Elwig/Windows/OriginHierarchyWindow.xaml
index 79cdc72..a5c419f 100644
--- a/Elwig/Windows/OriginHierarchyWindow.xaml
+++ b/Elwig/Windows/OriginHierarchyWindow.xaml
@@ -21,6 +21,7 @@
+
@@ -70,5 +71,44 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Elwig/Windows/OriginHierarchyWindow.xaml.cs b/Elwig/Windows/OriginHierarchyWindow.xaml.cs
index 6fee117..adb1650 100644
--- a/Elwig/Windows/OriginHierarchyWindow.xaml.cs
+++ b/Elwig/Windows/OriginHierarchyWindow.xaml.cs
@@ -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();