Windows: Add feature to save pdf in menu

This commit is contained in:
2024-03-28 16:54:51 +01:00
parent 9aa6cba1ff
commit b2f52072f8
6 changed files with 111 additions and 60 deletions

View File

@ -149,6 +149,12 @@ namespace Elwig.Windows {
await GenerateDeliveryNote(d.Year, d.DId, ExportMode.Show);
}
private async void Menu_DeliveryNote_SavePdf_Click(object sender, RoutedEventArgs evt) {
if (DeliveryList.SelectedItem is not Delivery d)
return;
await GenerateDeliveryNote(d.Year, d.DId, ExportMode.SavePdf);
}
private async void Menu_DeliveryNote_Print_Click(object sender, RoutedEventArgs evt) {
if (DeliveryList.SelectedItem is not Delivery d)
return;
@ -167,17 +173,7 @@ namespace Elwig.Windows {
using var ctx = new AppDbContext();
var d = (await ctx.Deliveries.FindAsync(year, did))!;
using var doc = new DeliveryNote(d, ctx);
await doc.Generate();
if (mode == ExportMode.Print && !App.Config.Debug) {
await doc.Print();
} else if (mode == ExportMode.Email) {
var success = await Utils.SendEmail(d.Member, $"{DeliveryNote.Name} Nr. {d.LsNr}", $"Im Anhang finden Sie den {DeliveryNote.Name} Nr. {d.LsNr}", [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, d.LsNr, (d.Member, $"{DeliveryNote.Name} Nr. {d.LsNr}", $"Im Anhang finden Sie den {DeliveryNote.Name} Nr. {d.LsNr}"));
} catch (Exception exc) {
MessageBox.Show(exc.Message, "Fehler", MessageBoxButton.OK, MessageBoxImage.Error);
}
@ -205,6 +201,10 @@ namespace Elwig.Windows {
await GenerateDeliveryJournal(1, ExportMode.SaveList);
}
private async void Menu_DeliveryJournal_SavePdfToday_Click(object sender, RoutedEventArgs evt) {
await GenerateDeliveryJournal(1, ExportMode.SavePdf);
}
private async void Menu_DeliveryJournal_ShowToday_Click(object sender, RoutedEventArgs evt) {
await GenerateDeliveryJournal(1, ExportMode.Show);
}
@ -217,6 +217,10 @@ namespace Elwig.Windows {
await GenerateDeliveryJournal(0, ExportMode.SaveList);
}
private async void Menu_DeliveryJournal_SavePdfFilters_Click(object sender, RoutedEventArgs evt) {
await GenerateDeliveryJournal(0, ExportMode.SavePdf);
}
private async void Menu_DeliveryJournal_ShowFilters_Click(object sender, RoutedEventArgs evt) {
await GenerateDeliveryJournal(0, ExportMode.Show);
}
@ -269,12 +273,7 @@ namespace Elwig.Windows {
try {
var data = await DeliveryJournalData.FromQuery(query, filterNames);
using var doc = new DeliveryJournal(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);
}
@ -286,6 +285,10 @@ namespace Elwig.Windows {
await GenerateWineQualityStatistics(1, ExportMode.Show);
}
private async void Menu_WineQualityStatistics_SavePdfToday_Click(object sender, RoutedEventArgs evt) {
await GenerateWineQualityStatistics(1, ExportMode.SavePdf);
}
private async void Menu_WineQualityStatistics_PrintToday_Click(object sender, RoutedEventArgs evt) {
await GenerateWineQualityStatistics(1, ExportMode.Print);
}
@ -294,6 +297,10 @@ namespace Elwig.Windows {
await GenerateWineQualityStatistics(0, ExportMode.Show);
}
private async void Menu_WineQualityStatistics_SavePdfFilters_Click(object sender, RoutedEventArgs evt) {
await GenerateWineQualityStatistics(0, ExportMode.SavePdf);
}
private async void Menu_WineQualityStatistics_PrintFilters_Click(object sender, RoutedEventArgs evt) {
await GenerateWineQualityStatistics(0, ExportMode.Print);
}
@ -317,12 +324,7 @@ namespace Elwig.Windows {
try {
var data = await WineQualityStatisticsData.FromQuery(query);
using var doc = new WineQualityStatistics(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);
}
@ -1278,11 +1280,13 @@ namespace Elwig.Windows {
if (DeliveryList.SelectedItem is Delivery d) {
DeleteDeliveryButton.IsEnabled = true;
Menu_DeliveryNote_Show.IsEnabled = !IsEditing && !IsCreating;
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;
} else {
DeleteDeliveryButton.IsEnabled = false;
Menu_DeliveryNote_Show.IsEnabled = false;
Menu_DeliveryNote_SavePdf.IsEnabled = false;
Menu_DeliveryNote_Print.IsEnabled = false;
Menu_DeliveryNote_Email.IsEnabled = false;
}