Windows: Add feature to save pdf in menu
This commit is contained in:
@ -320,9 +320,12 @@ namespace Elwig.Windows {
|
||||
Menu_DeliveryConfirmation.Items.Clear();
|
||||
foreach (var s in await ctx.Seasons.OrderByDescending(s => s.Year).ToListAsync()) {
|
||||
var i = new MenuItem { Header = $"Saison {s.Year}...", IsEnabled = MemberList.SelectedItem != null };
|
||||
var show = new MenuItem { Header = "...anzeigen" };
|
||||
var show = new MenuItem { Header = "...anzeigen (PDF)" };
|
||||
show.Click += Menu_DeliveryConfirmation_Show_Click;
|
||||
i.Items.Add(show);
|
||||
var pdf = new MenuItem { Header = "...speichern... (PDF)" };
|
||||
pdf.Click += Menu_DeliveryConfirmation_Email_Click;
|
||||
i.Items.Add(pdf);
|
||||
var print = new MenuItem { Header = "...drucken" };
|
||||
print.Click += Menu_DeliveryConfirmation_Print_Click;
|
||||
i.Items.Add(print);
|
||||
@ -573,6 +576,12 @@ namespace Elwig.Windows {
|
||||
await GenerateMemberDataSheet(m, ExportMode.Show);
|
||||
}
|
||||
|
||||
private async void Menu_MemberDataSheet_SavePdf_Click(object sender, RoutedEventArgs evt) {
|
||||
if (MemberList.SelectedItem is not Member m)
|
||||
return;
|
||||
await GenerateMemberDataSheet(m, ExportMode.SavePdf);
|
||||
}
|
||||
|
||||
private async void Menu_MemberDataSheet_Print_Click(object sender, RoutedEventArgs evt) {
|
||||
if (MemberList.SelectedItem is not Member m)
|
||||
return;
|
||||
@ -590,17 +599,7 @@ namespace Elwig.Windows {
|
||||
try {
|
||||
using var ctx = new AppDbContext();
|
||||
using var doc = new MemberDataSheet(m, ctx);
|
||||
await doc.Generate();
|
||||
if (mode == ExportMode.Print && !App.Config.Debug) {
|
||||
await doc.Print();
|
||||
} else if (mode == ExportMode.Email) {
|
||||
var success = await Utils.SendEmail(m, MemberDataSheet.Name, "Im Anhang finden Sie das aktuelle Stammdatenblatt", [doc]);
|
||||
if (success)
|
||||
MessageBox.Show("Die E-Mail wurde erfolgreich verschickt!", "E-Mail verschickt",
|
||||
MessageBoxButton.OK, MessageBoxImage.Information);
|
||||
} else {
|
||||
doc.Show();
|
||||
}
|
||||
await Utils.ExportDocument(doc, mode, emailData: (m, MemberDataSheet.Name, "Im Anhang finden Sie das aktuelle Stammdatenblatt"));
|
||||
} catch (Exception exc) {
|
||||
MessageBox.Show(exc.Message, "Fehler", MessageBoxButton.OK, MessageBoxImage.Error);
|
||||
}
|
||||
@ -614,6 +613,13 @@ namespace Elwig.Windows {
|
||||
await GenerateDeliveryConfirmation(m, s, ExportMode.Show);
|
||||
}
|
||||
|
||||
private async void Menu_DeliveryConfirmation_SavePdf_Click(object sender, RoutedEventArgs evt) {
|
||||
var season = ((sender as MenuItem)?.Parent as MenuItem)?.Header?.ToString()?.Split(' ')[^1].Split('.')[0];
|
||||
if (MemberList.SelectedItem is not Member m || season == null || !int.TryParse(season, out var s))
|
||||
return;
|
||||
await GenerateDeliveryConfirmation(m, s, ExportMode.SavePdf);
|
||||
}
|
||||
|
||||
private async void Menu_DeliveryConfirmation_Print_Click(object sender, RoutedEventArgs evt) {
|
||||
var season = ((sender as MenuItem)?.Parent as MenuItem)?.Header?.ToString()?.Split(' ')[^1].Split('.')[0];
|
||||
if (MemberList.SelectedItem is not Member m || season == null || !int.TryParse(season, out var s))
|
||||
@ -634,17 +640,7 @@ namespace Elwig.Windows {
|
||||
using var ctx = new AppDbContext();
|
||||
var data = await DeliveryConfirmationDeliveryData.ForMember(ctx.DeliveryParts, year, m);
|
||||
using var doc = new DeliveryConfirmation(ctx, year, m, data);
|
||||
await doc.Generate();
|
||||
if (mode == ExportMode.Print && !App.Config.Debug) {
|
||||
await doc.Print();
|
||||
} else if (mode == ExportMode.Email) {
|
||||
var success = await Utils.SendEmail(m, $"{DeliveryConfirmation.Name} {year}", $"Im Anhang finden Sie die Anlieferungsbestätigung {year}", [doc]);
|
||||
if (success)
|
||||
MessageBox.Show("Die E-Mail wurde erfolgreich verschickt!", "E-Mail verschickt",
|
||||
MessageBoxButton.OK, MessageBoxImage.Information);
|
||||
} else {
|
||||
doc.Show();
|
||||
}
|
||||
await Utils.ExportDocument(doc, mode, emailData: (m, $"{DeliveryConfirmation.Name} {year}", $"Im Anhang finden Sie die Anlieferungsbestätigung {year}"));
|
||||
} catch (Exception exc) {
|
||||
MessageBox.Show(exc.Message, "Fehler", MessageBoxButton.OK, MessageBoxImage.Error);
|
||||
}
|
||||
@ -653,12 +649,15 @@ namespace Elwig.Windows {
|
||||
|
||||
private async void Menu_List_SaveActive_Click(object sender, RoutedEventArgs evt) { await GenerateMemberList(0, ExportMode.SaveList); }
|
||||
private async void Menu_List_ShowActive_Click(object sender, RoutedEventArgs evt) { await GenerateMemberList(0, ExportMode.Show); }
|
||||
private async void Menu_List_SavePdfActive_Click(object sender, RoutedEventArgs evt) { await GenerateMemberList(0, ExportMode.SavePdf); }
|
||||
private async void Menu_List_PrintActive_Click(object sender, RoutedEventArgs evt) { await GenerateMemberList(0, ExportMode.Print); }
|
||||
private async void Menu_List_SaveFilters_Click(object sender, RoutedEventArgs evt) { await GenerateMemberList(1, ExportMode.SaveList); }
|
||||
private async void Menu_List_ShowFilters_Click(object sender, RoutedEventArgs evt) { await GenerateMemberList(1, ExportMode.Show); }
|
||||
private async void Menu_List_SavePdfFilters_Click(object sender, RoutedEventArgs evt) { await GenerateMemberList(1, ExportMode.SavePdf); }
|
||||
private async void Menu_List_PrintFilters_Click(object sender, RoutedEventArgs evt) { await GenerateMemberList(1, ExportMode.Print); }
|
||||
private async void Menu_List_SaveAll_Click(object sender, RoutedEventArgs evt) { await GenerateMemberList(2, ExportMode.SaveList); }
|
||||
private async void Menu_List_ShowAll_Click(object sender, RoutedEventArgs evt) { await GenerateMemberList(2, ExportMode.Show); }
|
||||
private async void Menu_List_SavePdfAll_Click(object sender, RoutedEventArgs evt) { await GenerateMemberList(2, ExportMode.SavePdf); }
|
||||
private async void Menu_List_PrintAll_Click(object sender, RoutedEventArgs evt) { await GenerateMemberList(2, ExportMode.Print); }
|
||||
|
||||
private async void Menu_List_Order_Click(object sender, RoutedEventArgs evt) {
|
||||
@ -739,12 +738,7 @@ namespace Elwig.Windows {
|
||||
try {
|
||||
var data = await MemberListData.FromQuery(query, filterNames);
|
||||
using var doc = new MemberList(string.Join(" / ", filterNames), data);
|
||||
await doc.Generate();
|
||||
if (exportMode == ExportMode.Print && !App.Config.Debug) {
|
||||
await doc.Print();
|
||||
} else {
|
||||
doc.Show();
|
||||
}
|
||||
await Utils.ExportDocument(doc, exportMode);
|
||||
} catch (Exception exc) {
|
||||
MessageBox.Show(exc.Message, "Fehler", MessageBoxButton.OK, MessageBoxImage.Error);
|
||||
}
|
||||
@ -1059,9 +1053,10 @@ namespace Elwig.Windows {
|
||||
Menu_MemberDataSheet_Print.IsEnabled = true;
|
||||
Menu_MemberDataSheet_Email.IsEnabled = App.Config.Smtp != null && m.EmailAddresses.Count > 0;
|
||||
Menu_MemberDataSheet_Show.IsEnabled = true;
|
||||
Menu_MemberDataSheet_SavePdf.IsEnabled = true;
|
||||
foreach (var i in Menu_DeliveryConfirmation.Items.Cast<MenuItem>()) {
|
||||
i.IsEnabled = true;
|
||||
(i.Items[2] as MenuItem)!.IsEnabled = App.Config.Smtp != null && m.EmailAddresses.Count > 0;
|
||||
(i.Items[^1] as MenuItem)!.IsEnabled = App.Config.Smtp != null && m.EmailAddresses.Count > 0;
|
||||
}
|
||||
|
||||
FinishInputFilling();
|
||||
@ -1073,6 +1068,7 @@ namespace Elwig.Windows {
|
||||
Menu_MemberDataSheet_Print.IsEnabled = false;
|
||||
Menu_MemberDataSheet_Email.IsEnabled = false;
|
||||
Menu_MemberDataSheet_Show.IsEnabled = false;
|
||||
Menu_MemberDataSheet_SavePdf.IsEnabled = false;
|
||||
foreach (var i in Menu_DeliveryConfirmation.Items.Cast<MenuItem>()) {
|
||||
i.IsEnabled = false;
|
||||
}
|
||||
|
Reference in New Issue
Block a user