[#3] Windows: Add option to export selected member or delivery only
All checks were successful
Test / Run tests (push) Successful in 2m23s

This commit is contained in:
2024-07-30 14:24:53 +02:00
parent f69d2809f3
commit db4de5b5fe
6 changed files with 149 additions and 60 deletions

View File

@ -124,6 +124,11 @@
<MenuItem x:Name="Menu_Bki_SaveList" Header="Traubentransportscheinliste speichern..."/>
</MenuItem>
<MenuItem Header="Export">
<MenuItem x:Name="Menu_Export_ExportSelected" Header="...von ausgewählter Lieferung speichern..." IsEnabled="False"
Click="Menu_Export_ExportSelected_Click"/>
<MenuItem x:Name="Menu_Export_UploadSelected" Header="...von ausgewählter Lieferung hochladen" IsEnabled="False"
Click="Menu_Export_UploadSelected_Click"/>
<Separator/>
<MenuItem x:Name="Menu_Export_ExportFilters" Header="...aus Filtern speichern..."
Click="Menu_Export_ExportFilters_Click"/>
<MenuItem x:Name="Menu_Export_UploadFilters" Header="...aus Filtern hochladen"
@ -192,6 +197,7 @@
HorizontalAlignment="Right" Margin="0,24,10,0" VerticalAlignment="Top" Grid.Column="1" Grid.ColumnSpan="2"
Checked="AllSeasonsInput_Changed" Unchecked="AllSeasonsInput_Changed"/>
<DataGrid x:Name="DeliveryList" AutoGenerateColumns="False" HeadersVisibility="Column" IsReadOnly="True" GridLinesVisibility="None" SelectionMode="Single"
ItemsSource="{Binding Deliveries, Mode=TwoWay}" SelectedItem="{Binding SelectedDelivery, Mode=TwoWay}"
SelectionChanged="DeliveryList_SelectionChanged"
CanUserDeleteRows="False" CanUserResizeRows="False" CanUserAddRows="False"
Margin="5,0,5,0" Grid.Row="1" FontSize="14" Grid.ColumnSpan="3">

View File

@ -175,33 +175,55 @@ namespace Elwig.Windows {
}
}
private async void Menu_DeliveryJournal_SaveToday_Click(object sender, RoutedEventArgs evt) { await ViewModel.GenerateDeliveryJournal(1, ExportMode.SaveList); }
private async void Menu_DeliveryJournal_SavePdfToday_Click(object sender, RoutedEventArgs evt) { await ViewModel.GenerateDeliveryJournal(1, ExportMode.SavePdf); }
private async void Menu_DeliveryJournal_ShowToday_Click(object sender, RoutedEventArgs evt) { await ViewModel.GenerateDeliveryJournal(1, ExportMode.Show); }
private async void Menu_Export_ExportSeason_Click(object sender, RoutedEventArgs evt) { await ViewModel.GenerateDeliveryJournal(2, ExportMode.Export); }
private async void Menu_DeliveryJournal_PrintToday_Click(object sender, RoutedEventArgs evt) { await ViewModel.GenerateDeliveryJournal(1, ExportMode.Print); }
private async void Menu_DeliveryJournal_SaveFilters_Click(object sender, RoutedEventArgs evt) { await ViewModel.GenerateDeliveryJournal(0, ExportMode.SaveList); }
private async void Menu_DeliveryJournal_SavePdfFilters_Click(object sender, RoutedEventArgs evt) { await ViewModel.GenerateDeliveryJournal(0, ExportMode.SavePdf); }
private async void Menu_DeliveryJournal_ShowFilters_Click(object sender, RoutedEventArgs evt) { await ViewModel.GenerateDeliveryJournal(0, ExportMode.Show); }
private async void Menu_DeliveryJournal_PrintFilters_Click(object sender, RoutedEventArgs evt) { await ViewModel.GenerateDeliveryJournal(0, ExportMode.Print); }
private async void Menu_Export_ExportFilters_Click(object sender, RoutedEventArgs evt) { await ViewModel.GenerateDeliveryJournal(0, ExportMode.Export); }
private async void Menu_DeliveryJournal_SaveToday_Click(object sender, RoutedEventArgs evt) =>
await ViewModel.GenerateDeliveryJournal(DeliveryService.ExportSubject.FromToday, ExportMode.SaveList);
private async void Menu_DeliveryJournal_SavePdfToday_Click(object sender, RoutedEventArgs evt) =>
await ViewModel.GenerateDeliveryJournal(DeliveryService.ExportSubject.FromToday, ExportMode.SavePdf);
private async void Menu_DeliveryJournal_ShowToday_Click(object sender, RoutedEventArgs evt) =>
await ViewModel.GenerateDeliveryJournal(DeliveryService.ExportSubject.FromToday, ExportMode.Show);
private async void Menu_DeliveryJournal_PrintToday_Click(object sender, RoutedEventArgs evt) =>
await ViewModel.GenerateDeliveryJournal(DeliveryService.ExportSubject.FromToday, ExportMode.Print);
private async void Menu_DeliveryJournal_SaveFilters_Click(object sender, RoutedEventArgs evt) =>
await ViewModel.GenerateDeliveryJournal(DeliveryService.ExportSubject.FromFilters, ExportMode.SaveList);
private async void Menu_DeliveryJournal_SavePdfFilters_Click(object sender, RoutedEventArgs evt) =>
await ViewModel.GenerateDeliveryJournal(DeliveryService.ExportSubject.FromFilters, ExportMode.SavePdf);
private async void Menu_DeliveryJournal_ShowFilters_Click(object sender, RoutedEventArgs evt) =>
await ViewModel.GenerateDeliveryJournal(DeliveryService.ExportSubject.FromFilters, ExportMode.Show);
private async void Menu_DeliveryJournal_PrintFilters_Click(object sender, RoutedEventArgs evt) =>
await ViewModel.GenerateDeliveryJournal(DeliveryService.ExportSubject.FromFilters, ExportMode.Print);
private async void Menu_Export_ExportSeason_Click(object sender, RoutedEventArgs evt) =>
await ViewModel.GenerateDeliveryJournal(DeliveryService.ExportSubject.FromSeasonAndBranch, ExportMode.Export);
private async void Menu_Export_ExportFilters_Click(object sender, RoutedEventArgs evt) =>
await ViewModel.GenerateDeliveryJournal(DeliveryService.ExportSubject.FromFilters, ExportMode.Export);
private async void Menu_Export_ExportSelected_Click(object sender, RoutedEventArgs evt) =>
await ViewModel.GenerateDeliveryJournal(DeliveryService.ExportSubject.Selected, ExportMode.Export);
private async void Menu_Export_UploadSeason_Click(object sender, RoutedEventArgs evt) {
if (App.Config.SyncUrl == null) return;
await ViewModel.GenerateDeliveryJournal(2, ExportMode.Upload);
await ViewModel.GenerateDeliveryJournal(DeliveryService.ExportSubject.FromSeasonAndBranch, ExportMode.Upload);
}
private async void Menu_Export_UploadFilters_Click(object sender, RoutedEventArgs evt) {
if (App.Config.SyncUrl == null) return;
await ViewModel.GenerateDeliveryJournal(0, ExportMode.Upload);
await ViewModel.GenerateDeliveryJournal(DeliveryService.ExportSubject.FromFilters, ExportMode.Upload);
}
private async void Menu_Export_UploadSelected_Click(object sender, RoutedEventArgs evt) {
if (App.Config.SyncUrl == null) return;
await ViewModel.GenerateDeliveryJournal(DeliveryService.ExportSubject.FromSeasonAndBranch, ExportMode.Upload);
}
private async void Menu_WineQualityStatistics_ShowToday_Click(object sender, RoutedEventArgs evt) { await ViewModel.GenerateWineQualityStatistics(1, ExportMode.Show); }
private async void Menu_WineQualityStatistics_SavePdfToday_Click(object sender, RoutedEventArgs evt) { await ViewModel.GenerateWineQualityStatistics(1, ExportMode.SavePdf); }
private async void Menu_WineQualityStatistics_PrintToday_Click(object sender, RoutedEventArgs evt) { await ViewModel.GenerateWineQualityStatistics(1, ExportMode.Print); }
private async void Menu_WineQualityStatistics_ShowFilters_Click(object sender, RoutedEventArgs evt) { await ViewModel.GenerateWineQualityStatistics(0, ExportMode.Show); }
private async void Menu_WineQualityStatistics_SavePdfFilters_Click(object sender, RoutedEventArgs evt) { await ViewModel.GenerateWineQualityStatistics(0, ExportMode.SavePdf); }
private async void Menu_WineQualityStatistics_PrintFilters_Click(object sender, RoutedEventArgs evt) { await ViewModel.GenerateWineQualityStatistics(0, ExportMode.Print); }
private async void Menu_WineQualityStatistics_ShowToday_Click(object sender, RoutedEventArgs evt) =>
await ViewModel.GenerateWineQualityStatistics(DeliveryService.ExportSubject.FromToday, ExportMode.Show);
private async void Menu_WineQualityStatistics_SavePdfToday_Click(object sender, RoutedEventArgs evt) =>
await ViewModel.GenerateWineQualityStatistics(DeliveryService.ExportSubject.FromToday, ExportMode.SavePdf);
private async void Menu_WineQualityStatistics_PrintToday_Click(object sender, RoutedEventArgs evt) =>
await ViewModel.GenerateWineQualityStatistics(DeliveryService.ExportSubject.FromToday, ExportMode.Print);
private async void Menu_WineQualityStatistics_ShowFilters_Click(object sender, RoutedEventArgs evt) =>
await ViewModel.GenerateWineQualityStatistics(DeliveryService.ExportSubject.FromFilters, ExportMode.Show);
private async void Menu_WineQualityStatistics_SavePdfFilters_Click(object sender, RoutedEventArgs evt) =>
await ViewModel.GenerateWineQualityStatistics(DeliveryService.ExportSubject.FromFilters, ExportMode.SavePdf);
private async void Menu_WineQualityStatistics_PrintFilters_Click(object sender, RoutedEventArgs evt) =>
await ViewModel.GenerateWineQualityStatistics(DeliveryService.ExportSubject.FromFilters, ExportMode.Print);
private async void Menu_WineQualityStatistics_Mode_Click(object sender, RoutedEventArgs evt) {
Menu_WineQualityStatistics.IsSubmenuOpen = true;
@ -598,12 +620,16 @@ namespace Elwig.Windows {
Menu_DeliveryNote_SavePdf.IsEnabled = !IsEditing && !IsCreating;
Menu_DeliveryNote_Print.IsEnabled = !IsEditing && !IsCreating;
Menu_DeliveryNote_Email.IsEnabled = !IsEditing && !IsCreating && App.Config.Smtp != null && d.Member.EmailAddresses.Count > 0;
Menu_Export_ExportSelected.IsEnabled = !IsEditing && !IsCreating;
Menu_Export_UploadSelected.IsEnabled = !IsEditing && !IsCreating && App.Config.SyncUrl != null;
} else {
DeleteDeliveryButton.IsEnabled = false;
Menu_DeliveryNote_Show.IsEnabled = false;
Menu_DeliveryNote_SavePdf.IsEnabled = false;
Menu_DeliveryNote_Print.IsEnabled = false;
Menu_DeliveryNote_Email.IsEnabled = false;
Menu_Export_ExportSelected.IsEnabled = false;
Menu_Export_UploadSelected.IsEnabled = false;
}
}

View File

@ -125,6 +125,11 @@
Click="Menu_List_Order_Click"/>
</MenuItem>
<MenuItem Header="Export">
<MenuItem x:Name="Menu_Export_ExportSelected" Header="...von ausgewähltem Mitglied speichern..." IsEnabled="False"
Click="Menu_Export_ExportSelected_Click"/>
<MenuItem x:Name="Menu_Export_UploadSelected" Header="...von ausgewähltem Mitglied hochladen" IsEnabled="False"
Click="Menu_Export_UploadSelected_Click"/>
<Separator/>
<MenuItem x:Name="Menu_Export_ExportFilters" Header="...aus Filtern speichern..."
Click="Menu_Export_ExportFilters_Click"/>
<MenuItem x:Name="Menu_Export_UploadFilters" Header="...aus Filtern hochladen"

View File

@ -282,6 +282,13 @@ namespace Elwig.Windows {
private async void MemberList_SelectionChanged(object sender, RoutedEventArgs evt) {
await RefreshInputs();
if (MemberList.SelectedItem is Member m) {
Menu_Export_ExportSelected.IsEnabled = !IsEditing && !IsCreating;
Menu_Export_UploadSelected.IsEnabled = !IsEditing && !IsCreating && App.Config.SyncUrl != null;
} else {
Menu_Export_ExportSelected.IsEnabled = false;
Menu_Export_UploadSelected.IsEnabled = false;
}
}
private async void ActiveMemberInput_Changed(object sender, RoutedEventArgs evt) {
@ -551,32 +558,52 @@ namespace Elwig.Windows {
await MemberService.GenerateCreditNote(m, (int)year, (int)avnr, ExportMode.Email);
}
private async void Menu_List_SaveActive_Click(object sender, RoutedEventArgs evt) { await ViewModel.GenerateMemberList(0, ExportMode.SaveList); }
private async void Menu_List_ShowActive_Click(object sender, RoutedEventArgs evt) { await ViewModel.GenerateMemberList(0, ExportMode.Show); }
private async void Menu_List_SavePdfActive_Click(object sender, RoutedEventArgs evt) { await ViewModel.GenerateMemberList(0, ExportMode.SavePdf); }
private async void Menu_List_PrintActive_Click(object sender, RoutedEventArgs evt) { await ViewModel.GenerateMemberList(0, ExportMode.Print); }
private async void Menu_List_SaveFilters_Click(object sender, RoutedEventArgs evt) { await ViewModel.GenerateMemberList(1, ExportMode.SaveList); }
private async void Menu_List_ShowFilters_Click(object sender, RoutedEventArgs evt) { await ViewModel.GenerateMemberList(1, ExportMode.Show); }
private async void Menu_List_SavePdfFilters_Click(object sender, RoutedEventArgs evt) { await ViewModel.GenerateMemberList(1, ExportMode.SavePdf); }
private async void Menu_List_PrintFilters_Click(object sender, RoutedEventArgs evt) { await ViewModel.GenerateMemberList(1, ExportMode.Print); }
private async void Menu_List_SaveAll_Click(object sender, RoutedEventArgs evt) { await ViewModel.GenerateMemberList(2, ExportMode.SaveList); }
private async void Menu_List_ShowAll_Click(object sender, RoutedEventArgs evt) { await ViewModel.GenerateMemberList(2, ExportMode.Show); }
private async void Menu_List_SavePdfAll_Click(object sender, RoutedEventArgs evt) { await ViewModel.GenerateMemberList(2, ExportMode.SavePdf); }
private async void Menu_List_PrintAll_Click(object sender, RoutedEventArgs evt) { await ViewModel.GenerateMemberList(2, ExportMode.Print); }
private async void Menu_List_SaveActive_Click(object sender, RoutedEventArgs evt) =>
await ViewModel.GenerateMemberList(MemberService.ExportSubject.AllActive, ExportMode.SaveList);
private async void Menu_List_ShowActive_Click(object sender, RoutedEventArgs evt) =>
await ViewModel.GenerateMemberList(MemberService.ExportSubject.AllActive, ExportMode.Show);
private async void Menu_List_SavePdfActive_Click(object sender, RoutedEventArgs evt) =>
await ViewModel.GenerateMemberList(MemberService.ExportSubject.AllActive, ExportMode.SavePdf);
private async void Menu_List_PrintActive_Click(object sender, RoutedEventArgs evt) =>
await ViewModel.GenerateMemberList(MemberService.ExportSubject.AllActive, ExportMode.Print);
private async void Menu_List_SaveFilters_Click(object sender, RoutedEventArgs evt) =>
await ViewModel.GenerateMemberList(MemberService.ExportSubject.FromFilters, ExportMode.SaveList);
private async void Menu_List_ShowFilters_Click(object sender, RoutedEventArgs evt) =>
await ViewModel.GenerateMemberList(MemberService.ExportSubject.FromFilters, ExportMode.Show);
private async void Menu_List_SavePdfFilters_Click(object sender, RoutedEventArgs evt) =>
await ViewModel.GenerateMemberList(MemberService.ExportSubject.FromFilters, ExportMode.SavePdf);
private async void Menu_List_PrintFilters_Click(object sender, RoutedEventArgs evt) =>
await ViewModel.GenerateMemberList(MemberService.ExportSubject.FromFilters, ExportMode.Print);
private async void Menu_List_SaveAll_Click(object sender, RoutedEventArgs evt) =>
await ViewModel.GenerateMemberList(MemberService.ExportSubject.All, ExportMode.SaveList);
private async void Menu_List_ShowAll_Click(object sender, RoutedEventArgs evt) =>
await ViewModel.GenerateMemberList(MemberService.ExportSubject.All, ExportMode.Show);
private async void Menu_List_SavePdfAll_Click(object sender, RoutedEventArgs evt) =>
await ViewModel.GenerateMemberList(MemberService.ExportSubject.All, ExportMode.SavePdf);
private async void Menu_List_PrintAll_Click(object sender, RoutedEventArgs evt) =>
await ViewModel.GenerateMemberList(MemberService.ExportSubject.All, ExportMode.Print);
private async void Menu_Export_ExportAll_Click(object sender, RoutedEventArgs evt) { await ViewModel.GenerateMemberList(2, ExportMode.Export); }
private async void Menu_Export_ExportFilters_Click(object sender, RoutedEventArgs evt) { await ViewModel.GenerateMemberList(1, ExportMode.Export); }
private async void Menu_Export_ExportAll_Click(object sender, RoutedEventArgs evt) =>
await ViewModel.GenerateMemberList(MemberService.ExportSubject.All, ExportMode.Export);
private async void Menu_Export_ExportFilters_Click(object sender, RoutedEventArgs evt) =>
await ViewModel.GenerateMemberList(MemberService.ExportSubject.FromFilters, ExportMode.Export);
private async void Menu_Export_ExportSelected_Click(object sender, RoutedEventArgs evt) =>
await ViewModel.GenerateMemberList(MemberService.ExportSubject.Selected, ExportMode.Export);
private async void Menu_Export_UploadAll_Click(object sender, RoutedEventArgs evt) {
if (App.Config.SyncUrl == null) return;
await ViewModel.GenerateMemberList(2, ExportMode.Upload);
await ViewModel.GenerateMemberList(MemberService.ExportSubject.All, ExportMode.Upload);
}
private async void Menu_Export_UploadFilters_Click(object sender, RoutedEventArgs evt) {
if (App.Config.SyncUrl == null) return;
await ViewModel.GenerateMemberList(1, ExportMode.Upload);
await ViewModel.GenerateMemberList(MemberService.ExportSubject.FromFilters, ExportMode.Upload);
}
private async void Menu_Export_UploadSelected_Click(object sender, RoutedEventArgs evt) {
if (App.Config.SyncUrl == null) return;
await ViewModel.GenerateMemberList(MemberService.ExportSubject.Selected, ExportMode.Upload);
}
private async void Menu_List_Order_Click(object sender, RoutedEventArgs evt) {
Menu_List.IsSubmenuOpen = true;