OriginHierarchyWindow: Add deactivation confirmation and status bar
This commit is contained in:
@ -21,6 +21,7 @@
|
|||||||
<RowDefinition Height="1*"/>
|
<RowDefinition Height="1*"/>
|
||||||
<RowDefinition Height="25"/>
|
<RowDefinition Height="25"/>
|
||||||
<RowDefinition Height="1*"/>
|
<RowDefinition Height="1*"/>
|
||||||
|
<RowDefinition Height="25"/>
|
||||||
</Grid.RowDefinitions>
|
</Grid.RowDefinitions>
|
||||||
|
|
||||||
<Label Content="Weinbaugebiete" Margin="10,0,0,0" VerticalAlignment="Top" Grid.RowSpan="3"/>
|
<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"/>
|
<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"
|
<ListBox x:Name="WbRds" Margin="0,25,10,10" Grid.Column="6" Grid.RowSpan="3"
|
||||||
DisplayMemberPath="Name" TextSearch.TextPath="Name"/>
|
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>
|
</Grid>
|
||||||
</local:ContextWindow>
|
</local:ContextWindow>
|
||||||
|
@ -75,6 +75,35 @@ namespace Elwig.Windows {
|
|||||||
UpdateButtons();
|
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() {
|
private async Task UpdateWbRds() {
|
||||||
WbRdsHeader.Content = "Riede";
|
WbRdsHeader.Content = "Riede";
|
||||||
if (WbGlKgs.SelectedItem is AT_Kg k) {
|
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);
|
ControlUtils.SelectListBoxItem(WbKgs, k => (k as AT_Kg)?.KgNr, k.KgNr);
|
||||||
isUpdating = false;
|
isUpdating = false;
|
||||||
}
|
}
|
||||||
|
await UpdateStatusBar();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void WbKgs_SelectionChanged(object sender, SelectionChangedEventArgs e) {
|
private void WbKgs_SelectionChanged(object sender, SelectionChangedEventArgs e) {
|
||||||
@ -161,6 +191,10 @@ namespace Elwig.Windows {
|
|||||||
|
|
||||||
private async void DeactivateKgButton_Click(object sender, RoutedEventArgs e) {
|
private async void DeactivateKgButton_Click(object sender, RoutedEventArgs e) {
|
||||||
if (WbGlKgs.SelectedItem is not AT_Kg k || k.WbKg == null) return;
|
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 {
|
try {
|
||||||
Context.Remove(k.WbKg);
|
Context.Remove(k.WbKg);
|
||||||
await Context.SaveChangesAsync();
|
await Context.SaveChangesAsync();
|
||||||
|
Reference in New Issue
Block a user