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);
|
deliveryAncmtQuery = deliveryAncmtQuery.Where(a => a.Year == s.Year && a.DsNr == s.DsNr);
|
||||||
filterNames.Add($"{s.Date:dd.MM.yyyy} – {s.Branch.Name} – {s.Description}");
|
filterNames.Add($"{s.Date:dd.MM.yyyy} – {s.Branch.Name} – {s.Description}");
|
||||||
} else {
|
} 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}");
|
filterNames.Add($"{vm.FilterSeason}");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -14,6 +14,8 @@ namespace Elwig.ViewModels {
|
|||||||
[ObservableProperty]
|
[ObservableProperty]
|
||||||
private bool _filterOnlyUpcoming;
|
private bool _filterOnlyUpcoming;
|
||||||
[ObservableProperty]
|
[ObservableProperty]
|
||||||
|
private bool _filterFromAllSchedules;
|
||||||
|
[ObservableProperty]
|
||||||
private string? _filterSeasonString;
|
private string? _filterSeasonString;
|
||||||
public int? FilterSeason {
|
public int? FilterSeason {
|
||||||
get => int.TryParse(FilterSeasonString, out var year) ? year : null;
|
get => int.TryParse(FilterSeasonString, out var year) ? year : null;
|
||||||
|
@ -81,7 +81,7 @@
|
|||||||
|
|
||||||
<Grid Grid.Row="1" Margin="5,0,0,0">
|
<Grid Grid.Row="1" Margin="5,0,0,0">
|
||||||
<Grid.RowDefinitions>
|
<Grid.RowDefinitions>
|
||||||
<RowDefinition Height="35"/>
|
<RowDefinition Height="42"/>
|
||||||
<RowDefinition Height="1*" MinHeight="100"/>
|
<RowDefinition Height="1*" MinHeight="100"/>
|
||||||
<RowDefinition Height="5"/>
|
<RowDefinition Height="5"/>
|
||||||
<RowDefinition Height="2*" MinHeight="100"/>
|
<RowDefinition Height="2*" MinHeight="100"/>
|
||||||
@ -94,7 +94,7 @@
|
|||||||
</Grid.ColumnDefinitions>
|
</Grid.ColumnDefinitions>
|
||||||
|
|
||||||
<TextBox x:Name="SearchInput" Text="{Binding SearchQuery, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" IsEnabled="{Binding EnableSearchInputs}"
|
<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">
|
TextChanged="SearchInput_TextChanged">
|
||||||
<TextBox.ToolTip>
|
<TextBox.ToolTip>
|
||||||
<TextBlock>
|
<TextBlock>
|
||||||
@ -111,11 +111,14 @@
|
|||||||
</TextBox>
|
</TextBox>
|
||||||
<ctrl:IntegerUpDown x:Name="SeasonInput" Text="{Binding FilterSeasonString, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" IsEnabled="{Binding EnableSearchInputs}"
|
<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"
|
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"/>
|
TextChanged="SeasonInput_TextChanged"/>
|
||||||
<CheckBox x:Name="OnlyUpcomingInput" Content="Nur zukünftige" IsChecked="{Binding FilterOnlyUpcoming, Mode=TwoWay}" IsEnabled="{Binding EnableSearchInputs}"
|
<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"/>
|
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}"
|
<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}"
|
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(CtrlP, Menu_DeliveryAncmtList_ShowSelected_Click));
|
||||||
CommandBindings.Add(new CommandBinding(CtrlShiftP, Menu_DeliveryAncmtList_PrintSelected_Click));
|
CommandBindings.Add(new CommandBinding(CtrlShiftP, Menu_DeliveryAncmtList_PrintSelected_Click));
|
||||||
ExemptInputs = [
|
ExemptInputs = [
|
||||||
SearchInput, SeasonInput, OnlyUpcomingInput, DeliveryScheduleList, DeliveryAncmtList,
|
SearchInput, SeasonInput, OnlyUpcomingInput, FromAllSchedulesInput, DeliveryScheduleList, DeliveryAncmtList,
|
||||||
];
|
];
|
||||||
RequiredInputs = [
|
RequiredInputs = [
|
||||||
MgNrInput, MemberInput, DeliveryScheduleInput, SortIdInput, WineVarietyInput, WeightInput,
|
MgNrInput, MemberInput, DeliveryScheduleInput, SortIdInput, WineVarietyInput, WeightInput,
|
||||||
@ -93,7 +93,7 @@ namespace Elwig.Windows {
|
|||||||
.ToListAsync();
|
.ToListAsync();
|
||||||
ControlUtils.RenewItemsSource(DeliveryScheduleList, deliverySchedules
|
ControlUtils.RenewItemsSource(DeliveryScheduleList, deliverySchedules
|
||||||
.Where(s => !ViewModel.FilterOnlyUpcoming || s.DateString.CompareTo(Utils.Today.ToString("yyyy-MM-dd")) >= 0)
|
.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);
|
ControlUtils.RenewItemsSource(DeliveryScheduleInput, deliverySchedules, DeliveryScheduleInput_SelectionChanged);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -187,11 +187,13 @@ namespace Elwig.Windows {
|
|||||||
Menu_DeliveryAncmtList_ShowSelected.IsEnabled = !IsEditing && !IsCreating;
|
Menu_DeliveryAncmtList_ShowSelected.IsEnabled = !IsEditing && !IsCreating;
|
||||||
Menu_DeliveryAncmtList_SavePdfSelected.IsEnabled = !IsEditing && !IsCreating;
|
Menu_DeliveryAncmtList_SavePdfSelected.IsEnabled = !IsEditing && !IsCreating;
|
||||||
Menu_DeliveryAncmtList_PrintSelected.IsEnabled = !IsEditing && !IsCreating;
|
Menu_DeliveryAncmtList_PrintSelected.IsEnabled = !IsEditing && !IsCreating;
|
||||||
|
ViewModel.FilterFromAllSchedules = false;
|
||||||
} else {
|
} else {
|
||||||
Menu_DeliveryAncmtList_SaveSelected.IsEnabled = false;
|
Menu_DeliveryAncmtList_SaveSelected.IsEnabled = false;
|
||||||
Menu_DeliveryAncmtList_ShowSelected.IsEnabled = false;
|
Menu_DeliveryAncmtList_ShowSelected.IsEnabled = false;
|
||||||
Menu_DeliveryAncmtList_SavePdfSelected.IsEnabled = false;
|
Menu_DeliveryAncmtList_SavePdfSelected.IsEnabled = false;
|
||||||
Menu_DeliveryAncmtList_PrintSelected.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) {
|
private async void OnlyUpcomingInput_Changed(object sender, RoutedEventArgs evt) {
|
||||||
await RefreshDeliveryScheduleList();
|
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) {
|
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) {
|
private async void NewDeliveryAncmtButton_Click(object? sender, RoutedEventArgs? evt) {
|
||||||
IsCreating = true;
|
IsCreating = true;
|
||||||
DeliveryAncmtList.IsEnabled = false;
|
DeliveryAncmtList.IsEnabled = false;
|
||||||
|
var mgnr = ViewModel.MgNr;
|
||||||
ViewModel.SelectedDeliveryAncmt = null;
|
ViewModel.SelectedDeliveryAncmt = null;
|
||||||
|
|
||||||
using var ctx = new AppDbContext();
|
using var ctx = new AppDbContext();
|
||||||
@ -259,6 +272,7 @@ namespace Elwig.Windows {
|
|||||||
ShowSaveResetCancelButtons();
|
ShowSaveResetCancelButtons();
|
||||||
UnlockInputs();
|
UnlockInputs();
|
||||||
InitInputs();
|
InitInputs();
|
||||||
|
ViewModel.MgNr = mgnr;
|
||||||
ViewModel.EnableSearchInputs = false;
|
ViewModel.EnableSearchInputs = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -337,6 +351,7 @@ namespace Elwig.Windows {
|
|||||||
await RefreshList();
|
await RefreshList();
|
||||||
await RefreshInputs();
|
await RefreshInputs();
|
||||||
ViewModel.SearchQuery = "";
|
ViewModel.SearchQuery = "";
|
||||||
|
ControlUtils.SelectItemWithPk(DeliveryScheduleList, year, dsnr);
|
||||||
if (sortid != null)
|
if (sortid != null)
|
||||||
ControlUtils.SelectItemWithPk(DeliveryAncmtList, year, dsnr, mgnr, sortid);
|
ControlUtils.SelectItemWithPk(DeliveryAncmtList, year, dsnr, mgnr, sortid);
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user