DeliveryAncmtAdminWindow: Add option to search in all delivery schedules and init mgnr with selected
All checks were successful
Test / Run tests (push) Successful in 2m2s
All checks were successful
Test / Run tests (push) Successful in 2m2s
This commit is contained in:
@ -46,7 +46,7 @@ namespace Elwig.Services {
|
||||
deliveryAncmtQuery = deliveryAncmtQuery.Where(a => a.Year == s.Year && a.DsNr == s.DsNr);
|
||||
filterNames.Add($"{s.Date:dd.MM.yyyy} – {s.Branch.Name} – {s.Description}");
|
||||
} else {
|
||||
deliveryAncmtQuery = deliveryAncmtQuery.Where(a => a.Year == vm.FilterSeason);
|
||||
deliveryAncmtQuery = deliveryAncmtQuery.Where(a => a.Year == vm.FilterSeason && (!vm.FilterOnlyUpcoming || a.Schedule.DateString.CompareTo(Utils.Today.ToString("yyyy-MM-dd")) >= 0));
|
||||
filterNames.Add($"{vm.FilterSeason}");
|
||||
}
|
||||
|
||||
|
@ -14,6 +14,8 @@ namespace Elwig.ViewModels {
|
||||
[ObservableProperty]
|
||||
private bool _filterOnlyUpcoming;
|
||||
[ObservableProperty]
|
||||
private bool _filterFromAllSchedules;
|
||||
[ObservableProperty]
|
||||
private string? _filterSeasonString;
|
||||
public int? FilterSeason {
|
||||
get => int.TryParse(FilterSeasonString, out var year) ? year : null;
|
||||
|
@ -81,7 +81,7 @@
|
||||
|
||||
<Grid Grid.Row="1" Margin="5,0,0,0">
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="35"/>
|
||||
<RowDefinition Height="42"/>
|
||||
<RowDefinition Height="1*" MinHeight="100"/>
|
||||
<RowDefinition Height="5"/>
|
||||
<RowDefinition Height="2*" MinHeight="100"/>
|
||||
@ -94,7 +94,7 @@
|
||||
</Grid.ColumnDefinitions>
|
||||
|
||||
<TextBox x:Name="SearchInput" Text="{Binding SearchQuery, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" IsEnabled="{Binding EnableSearchInputs}"
|
||||
Grid.ColumnSpan="3" Margin="5,5,174,0" IsReadOnly="False"
|
||||
Grid.ColumnSpan="3" Margin="5,10,174,0" IsReadOnly="False"
|
||||
TextChanged="SearchInput_TextChanged">
|
||||
<TextBox.ToolTip>
|
||||
<TextBlock>
|
||||
@ -111,11 +111,14 @@
|
||||
</TextBox>
|
||||
<ctrl:IntegerUpDown x:Name="SeasonInput" Text="{Binding FilterSeasonString, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" IsEnabled="{Binding EnableSearchInputs}"
|
||||
Grid.ColumnSpan="3" Height="25" Width="56" FontSize="14" Minimum="1900" Maximum="9999"
|
||||
Margin="5,5,113,0" VerticalAlignment="Top" HorizontalAlignment="Right"
|
||||
Margin="5,10,113,0" VerticalAlignment="Top" HorizontalAlignment="Right"
|
||||
TextChanged="SeasonInput_TextChanged"/>
|
||||
<CheckBox x:Name="OnlyUpcomingInput" Content="Nur zukünftige" IsChecked="{Binding FilterOnlyUpcoming, Mode=TwoWay}" IsEnabled="{Binding EnableSearchInputs}"
|
||||
HorizontalAlignment="Right" Margin="0,10,10,0" VerticalAlignment="Top" Grid.Column="0" Grid.ColumnSpan="3"
|
||||
HorizontalAlignment="Right" Margin="0,7,10,0" VerticalAlignment="Top" Grid.Column="0" Grid.ColumnSpan="3"
|
||||
Checked="OnlyUpcomingInput_Changed" Unchecked="OnlyUpcomingInput_Changed"/>
|
||||
<CheckBox x:Name="FromAllSchedulesInput" Content="Alle Lesepläne" IsChecked="{Binding FilterFromAllSchedules, Mode=TwoWay}" IsEnabled="{Binding EnableSearchInputs}"
|
||||
HorizontalAlignment="Right" Margin="0,24,13.5,0" VerticalAlignment="Top" Grid.Column="0" Grid.ColumnSpan="3"
|
||||
Checked="FromAllSchedulesInput_Changed" Unchecked="FromAllSchedulesInput_Changed"/>
|
||||
|
||||
<ListBox x:Name="DeliveryScheduleList" SelectedItem="{Binding SelectedDeliverySchedule, Mode=TwoWay}" ItemsSource="{Binding DeliverySchedules, Mode=TwoWay}"
|
||||
Grid.Row="1" Grid.ColumnSpan="3" Margin="5,0,5,5" VerticalAlignment="Stretch" IsEnabled="{Binding EnableSearchInputs}"
|
||||
|
@ -25,7 +25,7 @@ namespace Elwig.Windows {
|
||||
CommandBindings.Add(new CommandBinding(CtrlP, Menu_DeliveryAncmtList_ShowSelected_Click));
|
||||
CommandBindings.Add(new CommandBinding(CtrlShiftP, Menu_DeliveryAncmtList_PrintSelected_Click));
|
||||
ExemptInputs = [
|
||||
SearchInput, SeasonInput, OnlyUpcomingInput, DeliveryScheduleList, DeliveryAncmtList,
|
||||
SearchInput, SeasonInput, OnlyUpcomingInput, FromAllSchedulesInput, DeliveryScheduleList, DeliveryAncmtList,
|
||||
];
|
||||
RequiredInputs = [
|
||||
MgNrInput, MemberInput, DeliveryScheduleInput, SortIdInput, WineVarietyInput, WeightInput,
|
||||
@ -93,7 +93,7 @@ namespace Elwig.Windows {
|
||||
.ToListAsync();
|
||||
ControlUtils.RenewItemsSource(DeliveryScheduleList, deliverySchedules
|
||||
.Where(s => !ViewModel.FilterOnlyUpcoming || s.DateString.CompareTo(Utils.Today.ToString("yyyy-MM-dd")) >= 0)
|
||||
.ToList(), DeliveryScheduleList_SelectionChanged, ControlUtils.RenewSourceDefault.First);
|
||||
.ToList(), DeliveryScheduleList_SelectionChanged, ViewModel.FilterFromAllSchedules ? ControlUtils.RenewSourceDefault.None : ControlUtils.RenewSourceDefault.First);
|
||||
ControlUtils.RenewItemsSource(DeliveryScheduleInput, deliverySchedules, DeliveryScheduleInput_SelectionChanged);
|
||||
}
|
||||
|
||||
@ -187,11 +187,13 @@ namespace Elwig.Windows {
|
||||
Menu_DeliveryAncmtList_ShowSelected.IsEnabled = !IsEditing && !IsCreating;
|
||||
Menu_DeliveryAncmtList_SavePdfSelected.IsEnabled = !IsEditing && !IsCreating;
|
||||
Menu_DeliveryAncmtList_PrintSelected.IsEnabled = !IsEditing && !IsCreating;
|
||||
ViewModel.FilterFromAllSchedules = false;
|
||||
} else {
|
||||
Menu_DeliveryAncmtList_SaveSelected.IsEnabled = false;
|
||||
Menu_DeliveryAncmtList_ShowSelected.IsEnabled = false;
|
||||
Menu_DeliveryAncmtList_SavePdfSelected.IsEnabled = false;
|
||||
Menu_DeliveryAncmtList_PrintSelected.IsEnabled = false;
|
||||
ViewModel.FilterFromAllSchedules = true;
|
||||
}
|
||||
}
|
||||
|
||||
@ -201,6 +203,16 @@ namespace Elwig.Windows {
|
||||
|
||||
private async void OnlyUpcomingInput_Changed(object sender, RoutedEventArgs evt) {
|
||||
await RefreshDeliveryScheduleList();
|
||||
await RefreshList(true);
|
||||
}
|
||||
|
||||
private async void FromAllSchedulesInput_Changed(object sender, RoutedEventArgs evt) {
|
||||
if (ViewModel.FilterFromAllSchedules) {
|
||||
DeliveryScheduleList.SelectedItem = null;
|
||||
} else if (DeliveryScheduleList.SelectedItem == null) {
|
||||
ViewModel.FilterFromAllSchedules = true;
|
||||
}
|
||||
await RefreshList(true);
|
||||
}
|
||||
|
||||
private async void SearchInput_TextChanged(object sender, TextChangedEventArgs evt) {
|
||||
@ -243,6 +255,7 @@ namespace Elwig.Windows {
|
||||
private async void NewDeliveryAncmtButton_Click(object? sender, RoutedEventArgs? evt) {
|
||||
IsCreating = true;
|
||||
DeliveryAncmtList.IsEnabled = false;
|
||||
var mgnr = ViewModel.MgNr;
|
||||
ViewModel.SelectedDeliveryAncmt = null;
|
||||
|
||||
using var ctx = new AppDbContext();
|
||||
@ -259,6 +272,7 @@ namespace Elwig.Windows {
|
||||
ShowSaveResetCancelButtons();
|
||||
UnlockInputs();
|
||||
InitInputs();
|
||||
ViewModel.MgNr = mgnr;
|
||||
ViewModel.EnableSearchInputs = false;
|
||||
}
|
||||
|
||||
@ -337,6 +351,7 @@ namespace Elwig.Windows {
|
||||
await RefreshList();
|
||||
await RefreshInputs();
|
||||
ViewModel.SearchQuery = "";
|
||||
ControlUtils.SelectItemWithPk(DeliveryScheduleList, year, dsnr);
|
||||
if (sortid != null)
|
||||
ControlUtils.SelectItemWithPk(DeliveryAncmtList, year, dsnr, mgnr, sortid);
|
||||
}
|
||||
|
Reference in New Issue
Block a user