Elwig: Rename AreaCom to AreaCmt
This commit is contained in:
@@ -608,8 +608,8 @@ namespace Elwig.Windows {
|
||||
InputLostFocus((TextBox)sender, Validator.CheckUpperCase);
|
||||
}
|
||||
|
||||
protected void AreaComTypeDetailsButton_Click(object sender, RoutedEventArgs? evt) {
|
||||
App.FocusBaseDataAreaComType();
|
||||
protected void AreaCmtTypeDetailsButton_Click(object sender, RoutedEventArgs? evt) {
|
||||
App.FocusBaseDataAreaCmtType();
|
||||
}
|
||||
|
||||
protected void AddressInput_TextChanged(object sender, TextChangedEventArgs? evt) {
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<local:AdministrationWindow
|
||||
x:Class="Elwig.Windows.AreaComAdminWindow"
|
||||
x:Class="Elwig.Windows.AreaCmtAdminWindow"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||
@@ -9,7 +9,7 @@
|
||||
xmlns:vm="clr-namespace:Elwig.ViewModels"
|
||||
Title="{Binding Title}" Height="600" MinHeight="550" Width="1000" MinWidth="860">
|
||||
<Window.DataContext>
|
||||
<vm:AreaComAdminViewModel/>
|
||||
<vm:AreaCmtAdminViewModel/>
|
||||
</Window.DataContext>
|
||||
<Window.Resources>
|
||||
<Style TargetType="Label">
|
||||
@@ -110,10 +110,10 @@
|
||||
</DataGridTextColumn.CellStyle>
|
||||
</DataGridTextColumn>
|
||||
<DataGridTextColumn Header="Katastralgemeinde" Binding="{Binding Kg.AtKg.Name}" Width="130"/>
|
||||
<DataGridTextColumn Header="Sorte" Binding="{Binding Latest.AreaComType.VtrgId}" Width="50">
|
||||
<DataGridTextColumn Header="Sorte" Binding="{Binding Latest.AreaCmtType.VtrgId}" Width="50">
|
||||
<DataGridTextColumn.CellStyle>
|
||||
<Style>
|
||||
<Setter Property="TextBlock.Foreground" Value="{Binding Latest.AreaComType.WineVar.Color}"/>
|
||||
<Setter Property="TextBlock.Foreground" Value="{Binding Latest.AreaCmtType.WineVar.Color}"/>
|
||||
<Setter Property="TextBlock.TextAlignment" Value="Center"/>
|
||||
</Style>
|
||||
</DataGridTextColumn.CellStyle>
|
||||
@@ -229,7 +229,7 @@
|
||||
<TextBlock Text="{Binding YearFrom}" Width="28" TextAlignment="Right" Margin="0,0,0,0"/>
|
||||
<TextBlock Text="–" TextAlignment="Center" Margin="0,0,0,0"/>
|
||||
<TextBlock Text="{Binding YearTo}" Width="28" TextAlignment="Left" Margin="0,0,0,0"/>
|
||||
<TextBlock Text="{Binding VtrgId}" Width="40" TextAlignment="Center" Foreground="{Binding AreaComType.WineVar.Color}"/>
|
||||
<TextBlock Text="{Binding VtrgId}" Width="40" TextAlignment="Center" Foreground="{Binding AreaCmtType.WineVar.Color}"/>
|
||||
<TextBlock Text="{Binding Area, StringFormat='{}{0:N0} m²'}" Width="60" TextAlignment="Right" Padding="0,0,10,0"/>
|
||||
<TextBlock Text="{Binding Member.AdministrativeName}"/>
|
||||
</StackPanel>
|
||||
@@ -268,11 +268,11 @@
|
||||
TextChanged="IntegerInput_TextChanged"/>
|
||||
|
||||
<Label Content="Vertragsart:" Margin="10,70,0,0" Grid.Column="0"/>
|
||||
<ComboBox x:Name="AreaComTypeInput" SelectedItem="{Binding AreaComType, Mode=TwoWay}" ItemsSource="{Binding AreaComTypeSource, Mode=TwoWay}"
|
||||
<ComboBox x:Name="AreaCmtTypeInput" SelectedItem="{Binding AreaCmtType, Mode=TwoWay}" ItemsSource="{Binding AreaCmtTypeSource, Mode=TwoWay}"
|
||||
ItemTemplate="{StaticResource AreaCommitmentTypeTemplate}" TextSearch.TextPath="DisplayName"
|
||||
HorizontalAlignment="Stretch" Margin="0,70,40,10" Grid.Column="1"/>
|
||||
<Button x:Name="AreaComTypeDetailsButton" Content="" FontFamily="Segoe MDL2 Assets" FontSize="14" Padding="0,1,0,0"
|
||||
Click="AreaComTypeDetailsButton_Click"
|
||||
<Button x:Name="AreaCmtTypeDetailsButton" Content="" FontFamily="Segoe MDL2 Assets" FontSize="14" Padding="0,1,0,0"
|
||||
Click="AreaCmtTypeDetailsButton_Click"
|
||||
Grid.Column="3" VerticalAlignment="Top" HorizontalAlignment="Right" Width="25" Height="25" Margin="10,70,10,10"/>
|
||||
|
||||
<Label Content="Bewirt.-Art:" Margin="10,100,0,0" Grid.Column="0"/>
|
||||
+38
-38
@@ -12,13 +12,13 @@ using System.Windows.Controls;
|
||||
using System.Windows.Input;
|
||||
|
||||
namespace Elwig.Windows {
|
||||
public partial class AreaComAdminWindow : AdministrationWindow {
|
||||
public partial class AreaCmtAdminWindow : AdministrationWindow {
|
||||
|
||||
public AreaComAdminViewModel ViewModel => (AreaComAdminViewModel)DataContext;
|
||||
public AreaCmtAdminViewModel ViewModel => (AreaCmtAdminViewModel)DataContext;
|
||||
|
||||
private readonly RoutedCommand CtrlF = new("CtrlF", typeof(AreaComAdminWindow), [new KeyGesture(Key.F, ModifierKeys.Control)]);
|
||||
private readonly RoutedCommand CtrlF = new("CtrlF", typeof(AreaCmtAdminWindow), [new KeyGesture(Key.F, ModifierKeys.Control)]);
|
||||
|
||||
public AreaComAdminWindow(int mgnr) {
|
||||
public AreaCmtAdminWindow(int mgnr) {
|
||||
InitializeComponent();
|
||||
CommandBindings.Add(new CommandBinding(CtrlF, FocusSearchInput));
|
||||
using var ctx = new AppDbContext();
|
||||
@@ -30,7 +30,7 @@ namespace Elwig.Windows {
|
||||
];
|
||||
RequiredInputs = [
|
||||
FbNrInput, MgNrInput, MemberInput, YearFromInput, KgInput, RdInput,
|
||||
GstNrInput, AreaInput, AreaComTypeInput, WineCultivationInput
|
||||
GstNrInput, AreaInput, AreaCmtTypeInput, WineCultivationInput
|
||||
];
|
||||
|
||||
ControlUtils.InitializeDelayTimer(SearchInput, SearchInput_TextChanged);
|
||||
@@ -50,13 +50,13 @@ namespace Elwig.Windows {
|
||||
var cursor = Mouse.OverrideCursor != null;
|
||||
if (!cursor) Mouse.OverrideCursor = Cursors.Wait;
|
||||
var query = (vm.SearchQuery, vm.FilterSeason);
|
||||
var (filterNames, filter, contracts, areaComs, areaComCount, stat) = await Task.Run(async () => {
|
||||
var (filterNames, filter, contracts, areaCmts, areaCmtCount, stat) = await Task.Run(async () => {
|
||||
using var ctx = new AppDbContext();
|
||||
var (filterNames, contractQuery, areaComQuery, filter) = await vm.GetFilters(ctx);
|
||||
var (filterNames, contractQuery, areaCmtQuery, filter) = await vm.GetFilters(ctx);
|
||||
var contracts = await contractQuery
|
||||
.Include(c => c.Revisions).ThenInclude(a => a.Member)
|
||||
.ToListAsync();
|
||||
var areaComs = await areaComQuery.ToListAsync();
|
||||
var areaCmts = await areaCmtQuery.ToListAsync();
|
||||
|
||||
if (filter.Count > 0 && contracts.Count > 0) {
|
||||
var dict = contracts.AsParallel()
|
||||
@@ -68,11 +68,11 @@ namespace Elwig.Windows {
|
||||
.Select(a => a.Key)];
|
||||
}
|
||||
|
||||
var areaComCount = await areaComQuery.CountAsync();
|
||||
var areaCmtCount = await areaCmtQuery.CountAsync();
|
||||
var season = await ctx.FetchSeasons().FirstOrDefaultAsync();
|
||||
var stat = await AreaComService.GenerateToolTipData(areaComQuery, season?.MaxKgPerHa ?? 10_000);
|
||||
var stat = await AreaCmtService.GenerateToolTipData(areaCmtQuery, season?.MaxKgPerHa ?? 10_000);
|
||||
|
||||
return (filterNames, filter, contracts, areaComs, areaComCount, stat);
|
||||
return (filterNames, filter, contracts, areaCmts, areaCmtCount, stat);
|
||||
});
|
||||
if (!cursor) Mouse.OverrideCursor = null;
|
||||
if (query != (ViewModel.SearchQuery, ViewModel.FilterSeason)) return;
|
||||
@@ -83,16 +83,16 @@ namespace Elwig.Windows {
|
||||
RefreshInputs();
|
||||
|
||||
if (filter.Count == 0) {
|
||||
ViewModel.StatusAreaCommitments = $"{areaComCount:N0}";
|
||||
ViewModel.StatusAreaCommitments = $"{areaCmtCount:N0}";
|
||||
var (text, gridData) = stat;
|
||||
ViewModel.StatusArea = text;
|
||||
ViewModel.StatusAreaToolTip = AreaComService.GenerateToolTip(gridData);
|
||||
ViewModel.StatusAreaToolTip = AreaCmtService.GenerateToolTip(gridData);
|
||||
} else {
|
||||
ViewModel.StatusAreaCommitments = $"{contracts.Count:N0}";
|
||||
ViewModel.StatusArea = $"{areaComs.Sum(a => a.Area):N0} m²";
|
||||
ViewModel.StatusArea = $"{areaCmts.Sum(a => a.Area):N0} m²";
|
||||
ViewModel.StatusAreaToolTip = null;
|
||||
}
|
||||
var groups = areaComs.GroupBy(a => $"{a.AreaComType.SortId}{a.AreaComType.AttrId}").Select(a => (a.Key, a.Sum(b => b.Area))).OrderByDescending(a => a.Item2).ToList();
|
||||
var groups = areaCmts.GroupBy(a => $"{a.AreaCmtType.SortId}{a.AreaCmtType.AttrId}").Select(a => (a.Key, a.Sum(b => b.Area))).OrderByDescending(a => a.Item2).ToList();
|
||||
ViewModel.StatusContracts = $"{groups.Count:N0}";
|
||||
if (groups.Count > 0)
|
||||
ViewModel.StatusContracts += $" ({string.Join(", ", groups.Select(g => g.Key))})";
|
||||
@@ -100,7 +100,7 @@ namespace Elwig.Windows {
|
||||
|
||||
private async Task RefreshRevisions() {
|
||||
using var ctx = new AppDbContext();
|
||||
if (AreaCommitmentList.SelectedItem is AreaComContract c) {
|
||||
if (AreaCommitmentList.SelectedItem is AreaCmtContract c) {
|
||||
ControlUtils.RenewItemsSource(RevisionList, c.Revisions.OrderByDescending(p => p.RevNr).ToList(), RevisionList_SelectionChanged, ControlUtils.RenewSourceDefault.First);
|
||||
} else {
|
||||
RevisionList.ItemsSource = null;
|
||||
@@ -109,11 +109,11 @@ namespace Elwig.Windows {
|
||||
|
||||
private void RefreshInputs(bool validate = false) {
|
||||
ClearInputStates();
|
||||
if (RevisionList.SelectedItem is AreaCom a) {
|
||||
if (RevisionList.SelectedItem is AreaCmt a) {
|
||||
EditAreaCommitmentButton.IsEnabled = true;
|
||||
DeleteAreaCommitmentButton.IsEnabled = true;
|
||||
FillInputs(a);
|
||||
} else if (AreaCommitmentList.SelectedItem is AreaComContract c) {
|
||||
} else if (AreaCommitmentList.SelectedItem is AreaCmtContract c) {
|
||||
EditAreaCommitmentButton.IsEnabled = true;
|
||||
DeleteAreaCommitmentButton.IsEnabled = true;
|
||||
FillInputs(c);
|
||||
@@ -128,14 +128,14 @@ namespace Elwig.Windows {
|
||||
GC.Collect();
|
||||
}
|
||||
|
||||
private void FillInputs(AreaComContract c) {
|
||||
private void FillInputs(AreaCmtContract c) {
|
||||
ClearOriginalValues();
|
||||
ClearDefaultValues();
|
||||
ViewModel.FillInputs(c);
|
||||
FinishInputFilling();
|
||||
}
|
||||
|
||||
private void FillInputs(AreaCom a) {
|
||||
private void FillInputs(AreaCmt a) {
|
||||
FillInputs(a.Contract);
|
||||
ClearOriginalValues();
|
||||
ClearDefaultValues();
|
||||
@@ -170,7 +170,7 @@ namespace Elwig.Windows {
|
||||
.Select(k => k.AtKg)
|
||||
.OrderBy(k => k.Name)
|
||||
.ToListAsync());
|
||||
ControlUtils.RenewItemsSource(AreaComTypeInput, await ctx.AreaCommitmentTypes
|
||||
ControlUtils.RenewItemsSource(AreaCmtTypeInput, await ctx.AreaCommitmentTypes
|
||||
.Include(c => c.WineVar)
|
||||
.Include(c => c.WineAttr)
|
||||
.OrderBy(v => v.VtrgId)
|
||||
@@ -228,10 +228,10 @@ namespace Elwig.Windows {
|
||||
}
|
||||
|
||||
private async void DeleteAreaCommitmentButton_Click(object? sender, RoutedEventArgs? evt) {
|
||||
if (RevisionList.SelectedItem is not AreaCom a)
|
||||
if (RevisionList.SelectedItem is not AreaCmt a)
|
||||
return;
|
||||
|
||||
var d = new AreaComModifyDialog(a.YearFrom, a.YearTo, a.Area, true, RevisionList.ItemsSource.Cast<object>().FirstOrDefault() != a);
|
||||
var d = new AreaCmtModifyDialog(a.YearFrom, a.YearTo, a.Area, true, RevisionList.ItemsSource.Cast<object>().FirstOrDefault() != a);
|
||||
if (d.ShowDialog() != true)
|
||||
return;
|
||||
|
||||
@@ -241,7 +241,7 @@ namespace Elwig.Windows {
|
||||
ViewModel.YearTo = yearTo;
|
||||
await ViewModel.UpdateAreaCommitment(a.FbNr, a.RevNr);
|
||||
} else {
|
||||
await AreaComService.DeleteAreaCom(a.FbNr);
|
||||
await AreaCmtService.DeleteAreaCmt(a.FbNr);
|
||||
}
|
||||
App.HintContextChange();
|
||||
} catch (Exception exc) {
|
||||
@@ -260,9 +260,9 @@ namespace Elwig.Windows {
|
||||
SaveButton.IsEnabled = false;
|
||||
|
||||
int? yearTo = null;
|
||||
if (InputHasChanged(AreaInput) || InputHasChanged(AreaComTypeInput) || InputHasChanged(MgNrInput)) {
|
||||
var a = (RevisionList.SelectedItem as AreaCom)!;
|
||||
var d = new AreaComModifyDialog(a.YearFrom, a.YearTo, a.Area, false, RevisionList.ItemsSource.Cast<object>().FirstOrDefault() != a);
|
||||
if (InputHasChanged(AreaInput) || InputHasChanged(AreaCmtTypeInput) || InputHasChanged(MgNrInput)) {
|
||||
var a = (RevisionList.SelectedItem as AreaCmt)!;
|
||||
var d = new AreaCmtModifyDialog(a.YearFrom, a.YearTo, a.Area, false, RevisionList.ItemsSource.Cast<object>().FirstOrDefault() != a);
|
||||
if (d.ShowDialog() != true) {
|
||||
SaveButton.IsEnabled = true;
|
||||
return;
|
||||
@@ -273,13 +273,13 @@ namespace Elwig.Windows {
|
||||
int fbnr, revnr;
|
||||
Mouse.OverrideCursor = Cursors.Wait;
|
||||
try {
|
||||
AreaCom? temp = null;
|
||||
AreaCmt? temp = null;
|
||||
if (yearTo != null && (!ViewModel.YearTo.HasValue || yearTo < ViewModel.YearTo)) {
|
||||
temp = new AreaCom {
|
||||
temp = new AreaCmt {
|
||||
MgNr = ViewModel.MgNr!.Value,
|
||||
YearFrom = ViewModel.YearFrom,
|
||||
YearTo = ViewModel.YearTo,
|
||||
VtrgId = ViewModel.AreaComType!.VtrgId,
|
||||
VtrgId = ViewModel.AreaCmtType!.VtrgId,
|
||||
CultId = ViewModel.WineCult?.CultId,
|
||||
GstNr = ViewModel.GstNr?.Trim() ?? "-",
|
||||
Area = ViewModel.Area!.Value,
|
||||
@@ -287,11 +287,11 @@ namespace Elwig.Windows {
|
||||
RefreshInputs();
|
||||
ViewModel.YearTo = yearTo;
|
||||
}
|
||||
(fbnr, revnr) = await ViewModel.UpdateAreaCommitment((AreaCommitmentList.SelectedItem as AreaComContract)?.FbNr, (RevisionList.SelectedItem as AreaCom)?.RevNr);
|
||||
if (temp is AreaCom t) {
|
||||
(fbnr, revnr) = await ViewModel.UpdateAreaCommitment((AreaCommitmentList.SelectedItem as AreaCmtContract)?.FbNr, (RevisionList.SelectedItem as AreaCmt)?.RevNr);
|
||||
if (temp is AreaCmt t) {
|
||||
t.YearFrom = yearTo + 1;
|
||||
ViewModel.FillInputs(t);
|
||||
(fbnr, revnr) = await ViewModel.UpdateAreaCommitment((AreaCommitmentList.SelectedItem as AreaComContract)?.FbNr, null);
|
||||
(fbnr, revnr) = await ViewModel.UpdateAreaCommitment((AreaCommitmentList.SelectedItem as AreaCmtContract)?.FbNr, null);
|
||||
}
|
||||
App.HintContextChange();
|
||||
} catch (Exception exc) {
|
||||
@@ -415,7 +415,7 @@ namespace Elwig.Windows {
|
||||
|
||||
private void RevisionList_SelectionChanged(object? sender, SelectionChangedEventArgs? evt) {
|
||||
RefreshInputs();
|
||||
if (RevisionList.SelectedItem is AreaCom c) {
|
||||
if (RevisionList.SelectedItem is AreaCmt c) {
|
||||
EditAreaCommitmentButton.IsEnabled = true;
|
||||
} else {
|
||||
EditAreaCommitmentButton.IsEnabled = false;
|
||||
@@ -495,12 +495,12 @@ namespace Elwig.Windows {
|
||||
RdInput.SelectedIndex = s.Count();
|
||||
}
|
||||
|
||||
protected void InputTextChanged(TextBox input, Func<TextBox, bool, AreaComContract?, ValidationResult> checker) {
|
||||
InputTextChanged(input, checker(input, SenderIsRequired(input), (AreaComContract)AreaCommitmentList.SelectedItem));
|
||||
protected void InputTextChanged(TextBox input, Func<TextBox, bool, AreaCmtContract?, ValidationResult> checker) {
|
||||
InputTextChanged(input, checker(input, SenderIsRequired(input), (AreaCmtContract)AreaCommitmentList.SelectedItem));
|
||||
}
|
||||
|
||||
protected void InputLostFocus(TextBox input, Func<TextBox, bool, AreaComContract?, ValidationResult> checker, string? msg = null) {
|
||||
InputLostFocus(input, checker(input, SenderIsRequired(input), (AreaComContract)AreaCommitmentList.SelectedItem), msg);
|
||||
protected void InputLostFocus(TextBox input, Func<TextBox, bool, AreaCmtContract?, ValidationResult> checker, string? msg = null) {
|
||||
InputLostFocus(input, checker(input, SenderIsRequired(input), (AreaCmtContract)AreaCommitmentList.SelectedItem), msg);
|
||||
}
|
||||
|
||||
private void FbNrInput_TextChanged(object sender, RoutedEventArgs evt) {
|
||||
@@ -566,7 +566,7 @@
|
||||
Checked="CheckBox_Changed" Unchecked="CheckBox_Changed"/>
|
||||
</Grid>
|
||||
</GroupBox>
|
||||
<GroupBox x:Name="ParameterAreaComGroup" Header="Berechnung Flächenbindungen (aktuelle Saison)" Margin="10,10,10,0" VerticalAlignment="Top">
|
||||
<GroupBox x:Name="ParameterAreaCmtGroup" Header="Berechnung Flächenbindungen (aktuelle Saison)" Margin="10,10,10,0" VerticalAlignment="Top">
|
||||
<Grid>
|
||||
<CheckBox x:Name="ParameterAllowAttrIntoLowerInput" Content="Erlauben Lieferungen auch auf (konfigurierte) "schlechtere" Flächenbindungen aufzuteilen"
|
||||
VerticalAlignment="Top" HorizontalAlignment="Left" Margin="10,10,10,10"
|
||||
|
||||
@@ -13,8 +13,8 @@ namespace Elwig.Windows {
|
||||
public partial class BaseDataWindow {
|
||||
|
||||
private Dictionary<string, string?>? _acts = null;
|
||||
private Dictionary<AreaComType, string>? _actIds = null;
|
||||
private ObservableCollection<AreaComType>? _actList = null;
|
||||
private Dictionary<AreaCmtType, string>? _actIds = null;
|
||||
private ObservableCollection<AreaCmtType>? _actList = null;
|
||||
private bool _actChanged = false;
|
||||
private bool _actUpdate = false;
|
||||
|
||||
@@ -73,7 +73,7 @@ namespace Elwig.Windows {
|
||||
private void AreaCommitmentTypeList_SelectionChanged(object? sender, SelectionChangedEventArgs? evt) {
|
||||
UpdateButtons();
|
||||
_actUpdate = true;
|
||||
if (AreaCommitmentTypeList.SelectedItem is AreaComType type) {
|
||||
if (AreaCommitmentTypeList.SelectedItem is AreaCmtType type) {
|
||||
AreaCommitmentTypeIdInput.Text = $"{type.SortId}{type.AttrId}";
|
||||
ControlUtils.SelectItemWithPk(AreaCommitmentTypeWineVariantInput, type.SortId);
|
||||
ControlUtils.SelectItemWithPk(AreaCommitmentTypeWineAttributeInput, type.AttrId);
|
||||
@@ -96,7 +96,7 @@ namespace Elwig.Windows {
|
||||
private void AreaCommitmentTypeAddButton_Click(object sender, RoutedEventArgs evt) {
|
||||
if (_actList == null) return;
|
||||
_actChanged = true;
|
||||
var item = new AreaComType { VtrgId = "", SortId = "" };
|
||||
var item = new AreaCmtType { VtrgId = "", SortId = "" };
|
||||
_actList.Add(item);
|
||||
AreaCommitmentTypeList.SelectedItem = item;
|
||||
UpdateButtons();
|
||||
@@ -114,7 +114,7 @@ namespace Elwig.Windows {
|
||||
}
|
||||
|
||||
private void AreaCommitmentType_Changed(object? sender, RoutedEventArgs? evt) {
|
||||
if (_actUpdate || (!IsEditing && !IsCreating) || AreaCommitmentTypeList.SelectedItem is not AreaComType attr || _acts == null || _actIds == null) return;
|
||||
if (_actUpdate || (!IsEditing && !IsCreating) || AreaCommitmentTypeList.SelectedItem is not AreaCmtType attr || _acts == null || _actIds == null) return;
|
||||
_actChanged = true;
|
||||
|
||||
var v = AreaCommitmentTypeWineVariantInput.SelectedItem as WineVar;
|
||||
|
||||
@@ -37,7 +37,7 @@ namespace Elwig.Windows {
|
||||
];
|
||||
WineAttributeFillLowerInput.Visibility = Visibility.Hidden;
|
||||
WineAttributeFillLowerLabel.Visibility = Visibility.Hidden;
|
||||
ParameterAreaComGroup.Header = ParameterAreaComGroup.Header.ToString()!.Split('(')[0] + $"({Utils.CurrentLastSeason})";
|
||||
ParameterAreaCmtGroup.Header = ParameterAreaCmtGroup.Header.ToString()!.Split('(')[0] + $"({Utils.CurrentLastSeason})";
|
||||
LockInputs();
|
||||
}
|
||||
|
||||
|
||||
@@ -126,7 +126,7 @@
|
||||
<RadioButton GroupName="Recipients" x:Name="RecipientsActiveMembersInput" Content="aktive Mitglieder"
|
||||
Margin="10,10,10,10" VerticalAlignment="Top" HorizontalAlignment="Left"
|
||||
Checked="RecipientsInput_Changed" Unchecked="RecipientsInput_Changed"/>
|
||||
<RadioButton GroupName="Recipients" x:Name="RecipientsAreaComMembersInput" Content="Mitglieder mit Flächenbindung"
|
||||
<RadioButton GroupName="Recipients" x:Name="RecipientsAreaCmtMembersInput" Content="Mitglieder mit Flächenbindung"
|
||||
Margin="10,30,10,10" VerticalAlignment="Top" HorizontalAlignment="Left"
|
||||
Checked="RecipientsInput_Changed" Unchecked="RecipientsInput_Changed"/>
|
||||
<RadioButton GroupName="Recipients" x:Name="RecipientsDeliveryAncmtMembersInput" Content="Mitglieder mit Anmeldung"
|
||||
@@ -178,8 +178,8 @@
|
||||
Margin="180,255,10,10" VerticalAlignment="Top" HorizontalAlignment="Left"
|
||||
Checked="MemberInput_Checked"/>
|
||||
|
||||
<Label Content="Vtrg.:" x:Name="MemberAreaComLabel" Margin="10,280,0,10"/>
|
||||
<ctrl:CheckComboBox x:Name="MemberAreaComInput" AllItemsSelectedContent="Alle Vertragsarten" Delimiter=", " DisplayMemberPath="VtrgId"
|
||||
<Label Content="Vtrg.:" x:Name="MemberAreaCmtLabel" Margin="10,280,0,10"/>
|
||||
<ctrl:CheckComboBox x:Name="MemberAreaCmtInput" AllItemsSelectedContent="Alle Vertragsarten" Delimiter=", " DisplayMemberPath="VtrgId"
|
||||
IsSelectAllActive="True" SelectAllContent="Alle Vertragsarten"
|
||||
Margin="50,280,10,10" VerticalAlignment="Top" HorizontalAlignment="Stretch" Height="25"
|
||||
SelectionChanged="MemberInput_SelectionChanged"/>
|
||||
|
||||
@@ -181,13 +181,13 @@ namespace Elwig.Windows {
|
||||
MemberKgInput.SelectAll();
|
||||
MemberKgInput.SelectionChanged += MemberInput_SelectionChanged;
|
||||
}
|
||||
ControlUtils.RenewItemsSource(MemberAreaComInput, await ctx.AreaCommitmentTypes
|
||||
ControlUtils.RenewItemsSource(MemberAreaCmtInput, await ctx.AreaCommitmentTypes
|
||||
.OrderBy(a => a.VtrgId)
|
||||
.ToListAsync(), MemberInput_SelectionChanged);
|
||||
if (MemberAreaComInput.SelectedItems.Count == 0) {
|
||||
MemberAreaComInput.SelectionChanged -= MemberInput_SelectionChanged;
|
||||
MemberAreaComInput.SelectAll();
|
||||
MemberAreaComInput.SelectionChanged += MemberInput_SelectionChanged;
|
||||
if (MemberAreaCmtInput.SelectedItems.Count == 0) {
|
||||
MemberAreaCmtInput.SelectionChanged -= MemberInput_SelectionChanged;
|
||||
MemberAreaCmtInput.SelectAll();
|
||||
MemberAreaCmtInput.SelectionChanged += MemberInput_SelectionChanged;
|
||||
}
|
||||
ControlUtils.RenewItemsSource(MemberDeliveryAncmtInput, await ctx.DeliverySchedules
|
||||
.Where(s => s.Year == Year)
|
||||
@@ -412,8 +412,8 @@ namespace Elwig.Windows {
|
||||
MemberOfficerYesInput.Visibility = vis;
|
||||
MemberOfficerNoInput.Visibility = vis;
|
||||
MemberOfficerIndifferentInput.Visibility = vis;
|
||||
MemberAreaComInput.Visibility = RecipientsAreaComMembersInput.IsChecked == true ? Visibility.Visible : Visibility.Hidden;
|
||||
MemberAreaComLabel.Visibility = RecipientsAreaComMembersInput.IsChecked == true ? Visibility.Visible : Visibility.Hidden;
|
||||
MemberAreaCmtInput.Visibility = RecipientsAreaCmtMembersInput.IsChecked == true ? Visibility.Visible : Visibility.Hidden;
|
||||
MemberAreaCmtLabel.Visibility = RecipientsAreaCmtMembersInput.IsChecked == true ? Visibility.Visible : Visibility.Hidden;
|
||||
MemberDeliveryAncmtInput.Visibility = RecipientsDeliveryAncmtMembersInput.IsChecked == true ? Visibility.Visible : Visibility.Hidden;
|
||||
MemberDeliveryAncmtLabel.Visibility = RecipientsDeliveryAncmtMembersInput.IsChecked == true ? Visibility.Visible : Visibility.Hidden;
|
||||
MemberCustomInput.Visibility = RecipientsCustomInput.IsChecked == true ? Visibility.Visible : Visibility.Hidden;
|
||||
@@ -465,8 +465,8 @@ namespace Elwig.Windows {
|
||||
query = query.Where(m => !m.IsOfficer);
|
||||
}
|
||||
|
||||
if (RecipientsAreaComMembersInput.IsChecked == true) {
|
||||
var vtrg = MemberAreaComInput.SelectedItems.Cast<AreaComType>().Select(a => a.VtrgId).ToList();
|
||||
if (RecipientsAreaCmtMembersInput.IsChecked == true) {
|
||||
var vtrg = MemberAreaCmtInput.SelectedItems.Cast<AreaCmtType>().Select(a => a.VtrgId).ToList();
|
||||
query = query.Where(m => m.IsActive && m.AreaCommitments.AsQueryable().Where(Utils.ActiveAreaCommitments(Year)).Any(c => vtrg.Contains(c.VtrgId)));
|
||||
} else if (RecipientsDeliveryAncmtMembersInput.IsChecked == true) {
|
||||
var dsnrs = MemberDeliveryAncmtInput.SelectedItems.Cast<DeliverySchedule>().Select(s => s.DsNr).ToList();
|
||||
|
||||
@@ -414,11 +414,11 @@ namespace Elwig.Windows {
|
||||
if (valid) {
|
||||
await Task.Run(async () => {
|
||||
var membersTotal = await ctx.Deliveries.Where(d => d.Year == year).Select(d => d.Member).Distinct().CountAsync();
|
||||
var areaComs = Utils.ActiveAreaCommitments(ctx.AreaCommitments, year!.Value);
|
||||
var membersCtrd = await areaComs.Select(c => c.Member).Distinct().CountAsync();
|
||||
var areaCmts = Utils.ActiveAreaCommitments(ctx.AreaCommitments, year!.Value);
|
||||
var membersCtrd = await areaCmts.Select(c => c.Member).Distinct().CountAsync();
|
||||
var weightTotal = await ctx.DeliveryParts.Where(p => p.Year == year).SumAsync(p => p.Weight);
|
||||
var ctrdWeight = await ctx.DeliveryPartBuckets.Where(b => b.Year == year && b.Discr != "_").SumAsync(b => b.Value);
|
||||
var area = await areaComs.SumAsync(c => c.Area);
|
||||
var area = await areaCmts.SumAsync(c => c.Area);
|
||||
await App.MainDispatcher.BeginInvoke(() => {
|
||||
if (year != SeasonInput.Value) return;
|
||||
SeasonStatMembersTotal.Text = $"{membersTotal:N0}";
|
||||
@@ -462,7 +462,7 @@ namespace Elwig.Windows {
|
||||
|
||||
using var ctx = new AppDbContext();
|
||||
var tbl1 = await OverUnderDeliveryData.ForSeason(ctx.OverUnderDeliveryRows, year);
|
||||
var tbl2 = await AreaComUnderDeliveryData.ForSeason(ctx.AreaComUnderDeliveryRows, year);
|
||||
var tbl2 = await AreaCmtUnderDeliveryData.ForSeason(ctx.AreaCmtUnderDeliveryRows, year);
|
||||
using var ods = new OdsFile(filename);
|
||||
if (App.Client.HasRedWhite) {
|
||||
await ods.AddTable(tbl1.Red);
|
||||
@@ -524,8 +524,8 @@ namespace Elwig.Windows {
|
||||
App.HintContextChange();
|
||||
|
||||
using var ctx = new AppDbContext();
|
||||
var tbl1 = await MemberAreaComTotalsData.ForSeason(ctx.MemberAreaComTotalsRows, year);
|
||||
var tbl2 = await MemberAreaComsData.ForSeason(ctx.MemberAreaComsRows, year);
|
||||
var tbl1 = await MemberAreaCmtTotalsData.ForSeason(ctx.MemberAreaCmtTotalsRows, year);
|
||||
var tbl2 = await MemberAreaCmtsData.ForSeason(ctx.MemberAreaCmtsRows, year);
|
||||
using var ods = new OdsFile(filename);
|
||||
await ods.AddTable(tbl1);
|
||||
await ods.AddTable(tbl2);
|
||||
|
||||
@@ -474,8 +474,8 @@ namespace Elwig.Windows {
|
||||
IsCreating = true;
|
||||
MemberList.IsEnabled = false;
|
||||
ViewModel.SelectedMember = null;
|
||||
ViewModel.TransferPredecessorAreaComs = null;
|
||||
ViewModel.CancelAreaComs = null;
|
||||
ViewModel.TransferPredecessorAreaCmts = null;
|
||||
ViewModel.CancelAreaCmts = null;
|
||||
HideNewEditDeleteButtons();
|
||||
ShowSaveResetCancelButtons();
|
||||
UnlockInputs();
|
||||
@@ -495,8 +495,8 @@ namespace Elwig.Windows {
|
||||
|
||||
IsEditing = true;
|
||||
MemberList.IsEnabled = false;
|
||||
ViewModel.TransferPredecessorAreaComs = null;
|
||||
ViewModel.CancelAreaComs = null;
|
||||
ViewModel.TransferPredecessorAreaCmts = null;
|
||||
ViewModel.CancelAreaCmts = null;
|
||||
|
||||
HideNewEditDeleteButtons();
|
||||
ShowSaveResetCancelButtons();
|
||||
@@ -517,17 +517,17 @@ namespace Elwig.Windows {
|
||||
if (ViewModel.SelectedMember is not Member m)
|
||||
return;
|
||||
|
||||
int areaComs = 0, deliveries = 0, credits = 0;
|
||||
int areaCmts = 0, deliveries = 0, credits = 0;
|
||||
using (var ctx = new AppDbContext()) {
|
||||
areaComs = await ctx.AreaCommitments.Where(c => c.MgNr == m.MgNr).CountAsync();
|
||||
areaCmts = await ctx.AreaCommitments.Where(c => c.MgNr == m.MgNr).CountAsync();
|
||||
deliveries = await ctx.Deliveries.Where(d => d.MgNr == m.MgNr).CountAsync();
|
||||
credits = await ctx.Credits.Where(c => c.MgNr == m.MgNr).CountAsync();
|
||||
}
|
||||
var d = new DeleteMemberDialog(m.MgNr, m.AdministrativeName, areaComs, deliveries, credits);
|
||||
var d = new DeleteMemberDialog(m.MgNr, m.AdministrativeName, areaCmts, deliveries, credits);
|
||||
if (d.ShowDialog() == true) {
|
||||
Mouse.OverrideCursor = Cursors.Wait;
|
||||
try {
|
||||
await MemberService.DeleteMember(m.MgNr, d.DeletePaymentData, d.DeleteDeliveries, d.DeleteAreaComs);
|
||||
await MemberService.DeleteMember(m.MgNr, d.DeletePaymentData, d.DeleteDeliveries, d.DeleteAreaCmts);
|
||||
App.HintContextChange();
|
||||
} catch (Exception exc) {
|
||||
InteractionService.ShowDbException("Mitglied löschen", exc);
|
||||
@@ -580,8 +580,8 @@ namespace Elwig.Windows {
|
||||
}
|
||||
|
||||
private async void ResetButton_Click(object? sender, RoutedEventArgs? evt) {
|
||||
ViewModel.TransferPredecessorAreaComs = null;
|
||||
ViewModel.CancelAreaComs = null;
|
||||
ViewModel.TransferPredecessorAreaCmts = null;
|
||||
ViewModel.CancelAreaCmts = null;
|
||||
if (IsEditing) {
|
||||
RefreshInputs();
|
||||
} else if (IsCreating) {
|
||||
@@ -595,8 +595,8 @@ namespace Elwig.Windows {
|
||||
IsEditing = false;
|
||||
IsCreating = false;
|
||||
MemberList.IsEnabled = true;
|
||||
ViewModel.TransferPredecessorAreaComs = null;
|
||||
ViewModel.CancelAreaComs = null;
|
||||
ViewModel.TransferPredecessorAreaCmts = null;
|
||||
ViewModel.CancelAreaCmts = null;
|
||||
HideSaveResetCancelButtons();
|
||||
ShowNewEditDeleteButtons();
|
||||
RefreshInputs();
|
||||
@@ -610,7 +610,7 @@ namespace Elwig.Windows {
|
||||
}
|
||||
|
||||
private void AreaCommitmentButton_Click(object sender, RoutedEventArgs evt) {
|
||||
App.FocusMemberAreaComs(ViewModel.SelectedMember!.MgNr);
|
||||
App.FocusMemberAreaCmts(ViewModel.SelectedMember!.MgNr);
|
||||
}
|
||||
|
||||
private void DeliveryButton_Click(object sender, RoutedEventArgs evt) {
|
||||
@@ -920,10 +920,10 @@ namespace Elwig.Windows {
|
||||
if (ViewModel.MgNr == mgnr)
|
||||
return;
|
||||
using var ctx = new AppDbContext();
|
||||
var areaComs = await ctx.AreaCommitments
|
||||
var areaCmts = await ctx.AreaCommitments
|
||||
.Where(c => c.MgNr == mgnr && (c.YearTo == null || c.YearTo >= Utils.FollowingSeason))
|
||||
.ToListAsync();
|
||||
if (areaComs.Count == 0)
|
||||
if (areaCmts.Count == 0)
|
||||
return;
|
||||
|
||||
var oldMember = await ctx.FetchMembers(mgnr).SingleAsync();
|
||||
@@ -931,10 +931,10 @@ namespace Elwig.Windows {
|
||||
$"{ViewModel.Prefix}{(!string.IsNullOrWhiteSpace(ViewModel.Prefix) ? " " : "")}" +
|
||||
$"{ViewModel.GivenName}{(!string.IsNullOrWhiteSpace(ViewModel.GivenName) ? " " : "")}" +
|
||||
$"{ViewModel.Suffix}{(!string.IsNullOrWhiteSpace(ViewModel.Suffix) ? " " : "")}";
|
||||
var d = new AreaComTransferDialog(oldMember.AdministrativeName, newName, areaComs.Count, areaComs.Sum(c => c.Area));
|
||||
var d = new AreaCmtTransferDialog(oldMember.AdministrativeName, newName, areaCmts.Count, areaCmts.Sum(c => c.Area));
|
||||
if (d.ShowDialog() != true)
|
||||
return;
|
||||
ViewModel.TransferPredecessorAreaComs = d.SuccessorSeason;
|
||||
ViewModel.TransferPredecessorAreaCmts = d.SuccessorSeason;
|
||||
if (IsEditing)
|
||||
SetOriginalValue(PredecessorMgNrInput, -1); // hack to allow user to save
|
||||
UpdateButtons();
|
||||
@@ -979,13 +979,13 @@ namespace Elwig.Windows {
|
||||
return;
|
||||
if ((IsEditing || IsCreating) && ViewModel.IsActive == false && ViewModel.MgNr is int mgnr) {
|
||||
using var ctx = new AppDbContext();
|
||||
var areaComs = await ctx.AreaCommitments
|
||||
var areaCmts = await ctx.AreaCommitments
|
||||
.Where(c => c.MgNr == mgnr && (c.YearTo == null || c.YearTo >= Utils.FollowingSeason))
|
||||
.ToListAsync();
|
||||
if (areaComs.Count > 0) {
|
||||
var d = new AreaComTransferDialog(m.AdministrativeName, areaComs.Count, areaComs.Sum(c => c.Area));
|
||||
if (areaCmts.Count > 0) {
|
||||
var d = new AreaCmtTransferDialog(m.AdministrativeName, areaCmts.Count, areaCmts.Sum(c => c.Area));
|
||||
if (d.ShowDialog() == true) {
|
||||
ViewModel.CancelAreaComs = d.CancelSeason;
|
||||
ViewModel.CancelAreaCmts = d.CancelSeason;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -99,9 +99,9 @@ namespace Elwig.Windows {
|
||||
var allMembers = await ctx.Members.Where(m => m.DefaultKgNr == k.KgNr).CountAsync();
|
||||
StatusDefaultKgs.Text += $"{activeMembers:N0} ({allMembers:N0})";
|
||||
var year = Utils.CurrentNextSeason;
|
||||
var activeAreaComs = await Utils.ActiveAreaCommitments(ctx.AreaCommitments.Where(c => c.Contract.KgNr == k.KgNr), year).CountAsync();
|
||||
var allAreaComs = await ctx.AreaCommitments.Where(c => c.Contract.KgNr == k.KgNr).CountAsync();
|
||||
StatusAreaCommitments.Text += $"{activeAreaComs:N0} ({allAreaComs:N0})";
|
||||
var activeAreaCmts = await Utils.ActiveAreaCommitments(ctx.AreaCommitments.Where(c => c.Contract.KgNr == k.KgNr), year).CountAsync();
|
||||
var allAreaCmts = await ctx.AreaCommitments.Where(c => c.Contract.KgNr == k.KgNr).CountAsync();
|
||||
StatusAreaCommitments.Text += $"{activeAreaCmts:N0} ({allAreaCmts:N0})";
|
||||
var deliveryParts = await ctx.DeliveryParts.Where(p => p.KgNr == k.KgNr).CountAsync();
|
||||
var deliveries = await ctx.Deliveries.Where(d => d.Parts.Any(p => p.KgNr == k.KgNr)).CountAsync();
|
||||
StatusDeliveries.Text += $"{deliveries:N0} ({deliveryParts:N0})";
|
||||
|
||||
@@ -54,9 +54,9 @@ namespace Elwig.Windows {
|
||||
var contracts = await ctx.AreaCommitmentTypes.ToDictionaryAsync(t => t.VtrgId, t => t);
|
||||
|
||||
var (tbl1, _, _) = await OverUnderDeliveryData.ForSeason(ctx.OverUnderDeliveryRows, Year);
|
||||
var tbl2 = await AreaComUnderDeliveryData.ForSeason(ctx.AreaComUnderDeliveryRows, Year);
|
||||
var tbl2 = await AreaCmtUnderDeliveryData.ForSeason(ctx.AreaCmtUnderDeliveryRows, Year);
|
||||
var weight = tbl1.Rows.ToDictionary(r => r.MgNr, r => r.WeightTotal);
|
||||
var areaComs = tbl2.Rows.ToDictionary(r => r.MgNr, r => r.VtrgIds.Zip(r.UnderDeliveries).ToDictionary(r => r.First, r => r.Second));
|
||||
var areaCmts = tbl2.Rows.ToDictionary(r => r.MgNr, r => r.VtrgIds.Zip(r.UnderDeliveries).ToDictionary(r => r.First, r => r.Second));
|
||||
CustomPayments = await ctx.CustomPayments.Where(p => p.Year == Year).ToDictionaryAsync(p => p.MgNr, p => p);
|
||||
|
||||
var history = await ctx.MemberHistory
|
||||
@@ -93,7 +93,7 @@ namespace Elwig.Windows {
|
||||
(season.PenaltyPerShareAmount * Math.Floor(m.OverUnder / season.MinKgPerShare ?? 0m) ?? 0) +
|
||||
(m.Weight == 0 ? (-season.PenaltyNone ?? 0) + (-season.PenaltyPerShareNone * m.SharesActive ?? 0) : 0)
|
||||
: (decimal?)null,
|
||||
PenaltyAc = areaComs.TryGetValue(m.MgNr, out var c) ? c.Select(r => {
|
||||
PenaltyAc = areaCmts.TryGetValue(m.MgNr, out var c) ? c.Select(r => {
|
||||
var con = contracts[r.Key];
|
||||
return (r.Value.Kg * con.PenaltyPerKg ?? 0) + (r.Value.Kg < 0 ? con.PenaltyAmount ?? 0 : 0) + (r.Value.Percent == -100 ? con.PenaltyNone ?? 0 : 0);
|
||||
}).Sum() : (decimal?)null,
|
||||
|
||||
Reference in New Issue
Block a user