OriginHierarchyWindow: Add deactivation confirmation and status bar
This commit is contained in:
@ -21,6 +21,7 @@
|
||||
<RowDefinition Height="1*"/>
|
||||
<RowDefinition Height="25"/>
|
||||
<RowDefinition Height="1*"/>
|
||||
<RowDefinition Height="25"/>
|
||||
</Grid.RowDefinitions>
|
||||
|
||||
<Label Content="Weinbaugebiete" Margin="10,0,0,0" VerticalAlignment="Top" Grid.RowSpan="3"/>
|
||||
@ -70,5 +71,44 @@
|
||||
<Label x:Name="WbRdsHeader" Content="Riede" Margin="0,0,0,0" VerticalAlignment="Top" Grid.Column="6" Grid.RowSpan="3"/>
|
||||
<ListBox x:Name="WbRds" Margin="0,25,10,10" Grid.Column="6" Grid.RowSpan="3"
|
||||
DisplayMemberPath="Name" TextSearch.TextPath="Name"/>
|
||||
|
||||
<StatusBar Grid.Row="3" Grid.ColumnSpan="7" BorderThickness="0,1,0,0" BorderBrush="Gray">
|
||||
<StatusBar.ItemsPanel>
|
||||
<ItemsPanelTemplate>
|
||||
<Grid>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="1.5*"/>
|
||||
<ColumnDefinition Width="Auto"/>
|
||||
<ColumnDefinition Width="*"/>
|
||||
<ColumnDefinition Width="Auto"/>
|
||||
<ColumnDefinition Width="*"/>
|
||||
<ColumnDefinition Width="Auto"/>
|
||||
<ColumnDefinition Width="*"/>
|
||||
<ColumnDefinition Width="Auto"/>
|
||||
<ColumnDefinition Width="*"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
</Grid>
|
||||
</ItemsPanelTemplate>
|
||||
</StatusBar.ItemsPanel>
|
||||
<StatusBarItem>
|
||||
<TextBlock Name="StatusKgName" Text="Katastralgemeinde: -"/>
|
||||
</StatusBarItem>
|
||||
<Separator Grid.Column="1"/>
|
||||
<StatusBarItem Grid.Column="2">
|
||||
<TextBlock Name="StatusWbRds" Text="Riede: -"/>
|
||||
</StatusBarItem>
|
||||
<Separator Grid.Column="3"/>
|
||||
<StatusBarItem Grid.Column="4">
|
||||
<TextBlock Name="StatusDefaultKgs" Text="Stammgemeinde: -"/>
|
||||
</StatusBarItem>
|
||||
<Separator Grid.Column="5"/>
|
||||
<StatusBarItem Grid.Column="6">
|
||||
<TextBlock Name="StatusAreaCommitments" Text="Flächenbindungen: -"/>
|
||||
</StatusBarItem>
|
||||
<Separator Grid.Column="7"/>
|
||||
<StatusBarItem Grid.Column="8">
|
||||
<TextBlock Name="StatusDeliveries" Text="Lieferungen: -"/>
|
||||
</StatusBarItem>
|
||||
</StatusBar>
|
||||
</Grid>
|
||||
</local:ContextWindow>
|
||||
|
@ -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