OriginHierarchyWindow: Add deactivation confirmation and status bar
This commit is contained in:
@ -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();
|
||||
|
Reference in New Issue
Block a user