Windows: Add feature to save pdf in menu
This commit is contained in:
@ -99,6 +99,8 @@ namespace Elwig.Documents {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public async Task Generate(IProgress<double>? progress = null) {
|
public async Task Generate(IProgress<double>? progress = null) {
|
||||||
|
if (_pdfFile != null)
|
||||||
|
return;
|
||||||
progress?.Report(0.0);
|
progress?.Report(0.0);
|
||||||
if (this is PdfDocument) {
|
if (this is PdfDocument) {
|
||||||
// nothing to do
|
// nothing to do
|
||||||
|
@ -27,6 +27,7 @@ using System.Windows.Input;
|
|||||||
using LinqKit;
|
using LinqKit;
|
||||||
using System.Linq.Expressions;
|
using System.Linq.Expressions;
|
||||||
using Elwig.Models;
|
using Elwig.Models;
|
||||||
|
using Microsoft.Win32;
|
||||||
|
|
||||||
namespace Elwig.Helpers {
|
namespace Elwig.Helpers {
|
||||||
public static partial class Utils {
|
public static partial class Utils {
|
||||||
@ -478,6 +479,34 @@ namespace Elwig.Helpers {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static async Task ExportDocument(Document doc, ExportMode mode, string? filename = null, (Member, string, string)? emailData = null) {
|
||||||
|
if (mode == ExportMode.Print && !App.Config.Debug) {
|
||||||
|
await doc.Generate();
|
||||||
|
await doc.Print();
|
||||||
|
} else if (mode == ExportMode.Email && emailData is (Member, string, string) e) {
|
||||||
|
await doc.Generate();
|
||||||
|
var success = await SendEmail(e.Item1, e.Item2, e.Item3, [doc]);
|
||||||
|
if (success)
|
||||||
|
MessageBox.Show("Die E-Mail wurde erfolgreich verschickt!", "E-Mail verschickt",
|
||||||
|
MessageBoxButton.OK, MessageBoxImage.Information);
|
||||||
|
} else if (mode == ExportMode.SavePdf) {
|
||||||
|
var d = new SaveFileDialog() {
|
||||||
|
FileName = $"{NormalizeFileName(filename ?? doc.Title)}.pdf",
|
||||||
|
DefaultExt = "pdf",
|
||||||
|
Filter = "PDF-Datei (*.pdf)|*.pdf",
|
||||||
|
Title = $"{doc.Title} speichern unter - Elwig"
|
||||||
|
};
|
||||||
|
if (d.ShowDialog() == true) {
|
||||||
|
await doc.Generate();
|
||||||
|
doc.SaveTo(d.FileName);
|
||||||
|
Process.Start("explorer.exe", d.FileName);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
await doc.Generate();
|
||||||
|
doc.Show();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public static int? GetEntityIdentifier(object? obj) {
|
public static int? GetEntityIdentifier(object? obj) {
|
||||||
if (obj == null) {
|
if (obj == null) {
|
||||||
return null;
|
return null;
|
||||||
|
@ -53,36 +53,46 @@
|
|||||||
|
|
||||||
<Menu Grid.ColumnSpan="3" BorderThickness="0,0,0,1" BorderBrush="LightGray" Background="White">
|
<Menu Grid.ColumnSpan="3" BorderThickness="0,0,0,1" BorderBrush="LightGray" Background="White">
|
||||||
<MenuItem Header="Lieferschein">
|
<MenuItem Header="Lieferschein">
|
||||||
<MenuItem x:Name="Menu_DeliveryNote_Show" Header="...anzeigen" IsEnabled="False"
|
<MenuItem x:Name="Menu_DeliveryNote_Show" Header="...anzeigen (PDF)" IsEnabled="False"
|
||||||
Click="Menu_DeliveryNote_Show_Click" InputGestureText="Strg+P"/>
|
Click="Menu_DeliveryNote_Show_Click" InputGestureText="Strg+P"/>
|
||||||
|
<MenuItem x:Name="Menu_DeliveryNote_SavePdf" Header="...speichern... (PDF)" IsEnabled="False"
|
||||||
|
Click="Menu_DeliveryNote_SavePdf_Click"/>
|
||||||
<MenuItem x:Name="Menu_DeliveryNote_Print" Header="...drucken" IsEnabled="False"
|
<MenuItem x:Name="Menu_DeliveryNote_Print" Header="...drucken" IsEnabled="False"
|
||||||
Click="Menu_DeliveryNote_Print_Click" InputGestureText="Strg+Shift+P"/>
|
Click="Menu_DeliveryNote_Print_Click" InputGestureText="Strg+Shift+P"/>
|
||||||
<MenuItem x:Name="Menu_DeliveryNote_Email" Header="...per E-Mail schicken" IsEnabled="False"
|
<MenuItem x:Name="Menu_DeliveryNote_Email" Header="...per E-Mail schicken" IsEnabled="False"
|
||||||
Click="Menu_DeliveryNote_Email_Click"/>
|
Click="Menu_DeliveryNote_Email_Click"/>
|
||||||
</MenuItem>
|
</MenuItem>
|
||||||
<MenuItem Header="Lieferjournal">
|
<MenuItem Header="Lieferjournal">
|
||||||
<MenuItem x:Name="Menu_DeliveryJournal_SaveFilters" Header="...aus Filtern speichern (Excel)"
|
<MenuItem x:Name="Menu_DeliveryJournal_SaveFilters" Header="...aus Filtern speichern... (Excel)"
|
||||||
Click="Menu_DeliveryJournal_SaveFilters_Click" InputGestureText="Strg+L"/>
|
Click="Menu_DeliveryJournal_SaveFilters_Click" InputGestureText="Strg+L"/>
|
||||||
<MenuItem x:Name="Menu_DeliveryJournal_ShowFilters" Header="...aus Filtern anzeigen (PDF)"
|
<MenuItem x:Name="Menu_DeliveryJournal_ShowFilters" Header="...aus Filtern anzeigen (PDF)"
|
||||||
Click="Menu_DeliveryJournal_ShowFilters_Click" InputGestureText="Strg+O"/>
|
Click="Menu_DeliveryJournal_ShowFilters_Click" InputGestureText="Strg+O"/>
|
||||||
|
<MenuItem x:Name="Menu_DeliveryJournal_SavePdfFilters" Header="...aus Filtern speichern... (PDF)"
|
||||||
|
Click="Menu_DeliveryJournal_SavePdfFilters_Click"/>
|
||||||
<MenuItem x:Name="Menu_DeliveryJournal_PrintFilters" Header="...aus Filtern drucken"
|
<MenuItem x:Name="Menu_DeliveryJournal_PrintFilters" Header="...aus Filtern drucken"
|
||||||
Click="Menu_DeliveryJournal_PrintFilters_Click" InputGestureText="Strg+Shift+O"/>
|
Click="Menu_DeliveryJournal_PrintFilters_Click" InputGestureText="Strg+Shift+O"/>
|
||||||
<Separator/>
|
<Separator/>
|
||||||
<MenuItem x:Name="Menu_DeliveryJournal_SaveToday" Header="...von heute speichern (Excel)"
|
<MenuItem x:Name="Menu_DeliveryJournal_SaveToday" Header="...von heute speichern... (Excel)"
|
||||||
Click="Menu_DeliveryJournal_SaveToday_Click"/>
|
Click="Menu_DeliveryJournal_SaveToday_Click"/>
|
||||||
<MenuItem x:Name="Menu_DeliveryJournal_ShowToday" Header="...von heute anzeigen (PDF)"
|
<MenuItem x:Name="Menu_DeliveryJournal_ShowToday" Header="...von heute anzeigen (PDF)"
|
||||||
Click="Menu_DeliveryJournal_ShowToday_Click"/>
|
Click="Menu_DeliveryJournal_ShowToday_Click"/>
|
||||||
|
<MenuItem x:Name="Menu_DeliveryJournal_SavePdfToday" Header="...von heute speichern... (PDF)"
|
||||||
|
Click="Menu_DeliveryJournal_SavePdfToday_Click"/>
|
||||||
<MenuItem x:Name="Menu_DeliveryJournal_PrintToday" Header="...von heute drucken"
|
<MenuItem x:Name="Menu_DeliveryJournal_PrintToday" Header="...von heute drucken"
|
||||||
Click="Menu_DeliveryJournal_PrintToday_Click" InputGestureText="Strg+J"/>
|
Click="Menu_DeliveryJournal_PrintToday_Click" InputGestureText="Strg+J"/>
|
||||||
</MenuItem>
|
</MenuItem>
|
||||||
<MenuItem Header="Qualitätsstatistik">
|
<MenuItem Header="Qualitätsstatistik">
|
||||||
<MenuItem x:Name="Menu_WineQualityStatistics_ShowFilters" Header="...aus Filtern anzeigen"
|
<MenuItem x:Name="Menu_WineQualityStatistics_ShowFilters" Header="...aus Filtern anzeigen (PDF)"
|
||||||
Click="Menu_WineQualityStatistics_ShowFilters_Click"/>
|
Click="Menu_WineQualityStatistics_ShowFilters_Click"/>
|
||||||
|
<MenuItem x:Name="Menu_WineQualityStatistics_SavePdfFilters" Header="...aus Filtern speichern... (PDF)"
|
||||||
|
Click="Menu_WineQualityStatistics_SavePdfFilters_Click"/>
|
||||||
<MenuItem x:Name="Menu_WineQualityStatistics_PrintFilters" Header="...aus Filtern drucken"
|
<MenuItem x:Name="Menu_WineQualityStatistics_PrintFilters" Header="...aus Filtern drucken"
|
||||||
Click="Menu_WineQualityStatistics_PrintFilters_Click"/>
|
Click="Menu_WineQualityStatistics_PrintFilters_Click"/>
|
||||||
<Separator/>
|
<Separator/>
|
||||||
<MenuItem x:Name="Menu_WineQualityStatistics_ShowToday" Header="...von heute anzeigen"
|
<MenuItem x:Name="Menu_WineQualityStatistics_ShowToday" Header="...von heute anzeigen (PDF)"
|
||||||
Click="Menu_WineQualityStatistics_ShowToday_Click"/>
|
Click="Menu_WineQualityStatistics_ShowToday_Click"/>
|
||||||
|
<MenuItem x:Name="Menu_WineQualityStatistics_SavePdfToday" Header="...von heute speichern... (PDF)"
|
||||||
|
Click="Menu_WineQualityStatistics_SavePdfToday_Click"/>
|
||||||
<MenuItem x:Name="Menu_WineQualityStatistics_PrintToday" Header="...von heute drucken"
|
<MenuItem x:Name="Menu_WineQualityStatistics_PrintToday" Header="...von heute drucken"
|
||||||
Click="Menu_WineQualityStatistics_PrintToday_Click" InputGestureText="Strg+Q"/>
|
Click="Menu_WineQualityStatistics_PrintToday_Click" InputGestureText="Strg+Q"/>
|
||||||
</MenuItem>
|
</MenuItem>
|
||||||
|
@ -149,6 +149,12 @@ namespace Elwig.Windows {
|
|||||||
await GenerateDeliveryNote(d.Year, d.DId, ExportMode.Show);
|
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) {
|
private async void Menu_DeliveryNote_Print_Click(object sender, RoutedEventArgs evt) {
|
||||||
if (DeliveryList.SelectedItem is not Delivery d)
|
if (DeliveryList.SelectedItem is not Delivery d)
|
||||||
return;
|
return;
|
||||||
@ -167,17 +173,7 @@ namespace Elwig.Windows {
|
|||||||
using var ctx = new AppDbContext();
|
using var ctx = new AppDbContext();
|
||||||
var d = (await ctx.Deliveries.FindAsync(year, did))!;
|
var d = (await ctx.Deliveries.FindAsync(year, did))!;
|
||||||
using var doc = new DeliveryNote(d, ctx);
|
using var doc = new DeliveryNote(d, ctx);
|
||||||
await doc.Generate();
|
await Utils.ExportDocument(doc, mode, d.LsNr, (d.Member, $"{DeliveryNote.Name} Nr. {d.LsNr}", $"Im Anhang finden Sie den {DeliveryNote.Name} Nr. {d.LsNr}"));
|
||||||
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();
|
|
||||||
}
|
|
||||||
} catch (Exception exc) {
|
} catch (Exception exc) {
|
||||||
MessageBox.Show(exc.Message, "Fehler", MessageBoxButton.OK, MessageBoxImage.Error);
|
MessageBox.Show(exc.Message, "Fehler", MessageBoxButton.OK, MessageBoxImage.Error);
|
||||||
}
|
}
|
||||||
@ -205,6 +201,10 @@ namespace Elwig.Windows {
|
|||||||
await GenerateDeliveryJournal(1, ExportMode.SaveList);
|
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) {
|
private async void Menu_DeliveryJournal_ShowToday_Click(object sender, RoutedEventArgs evt) {
|
||||||
await GenerateDeliveryJournal(1, ExportMode.Show);
|
await GenerateDeliveryJournal(1, ExportMode.Show);
|
||||||
}
|
}
|
||||||
@ -217,6 +217,10 @@ namespace Elwig.Windows {
|
|||||||
await GenerateDeliveryJournal(0, ExportMode.SaveList);
|
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) {
|
private async void Menu_DeliveryJournal_ShowFilters_Click(object sender, RoutedEventArgs evt) {
|
||||||
await GenerateDeliveryJournal(0, ExportMode.Show);
|
await GenerateDeliveryJournal(0, ExportMode.Show);
|
||||||
}
|
}
|
||||||
@ -269,12 +273,7 @@ namespace Elwig.Windows {
|
|||||||
try {
|
try {
|
||||||
var data = await DeliveryJournalData.FromQuery(query, filterNames);
|
var data = await DeliveryJournalData.FromQuery(query, filterNames);
|
||||||
using var doc = new DeliveryJournal(string.Join(" / ", filterNames), data);
|
using var doc = new DeliveryJournal(string.Join(" / ", filterNames), data);
|
||||||
await doc.Generate();
|
await Utils.ExportDocument(doc, exportMode);
|
||||||
if (exportMode == ExportMode.Print && !App.Config.Debug) {
|
|
||||||
await doc.Print();
|
|
||||||
} else {
|
|
||||||
doc.Show();
|
|
||||||
}
|
|
||||||
} catch (Exception exc) {
|
} catch (Exception exc) {
|
||||||
MessageBox.Show(exc.Message, "Fehler", MessageBoxButton.OK, MessageBoxImage.Error);
|
MessageBox.Show(exc.Message, "Fehler", MessageBoxButton.OK, MessageBoxImage.Error);
|
||||||
}
|
}
|
||||||
@ -286,6 +285,10 @@ namespace Elwig.Windows {
|
|||||||
await GenerateWineQualityStatistics(1, ExportMode.Show);
|
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) {
|
private async void Menu_WineQualityStatistics_PrintToday_Click(object sender, RoutedEventArgs evt) {
|
||||||
await GenerateWineQualityStatistics(1, ExportMode.Print);
|
await GenerateWineQualityStatistics(1, ExportMode.Print);
|
||||||
}
|
}
|
||||||
@ -294,6 +297,10 @@ namespace Elwig.Windows {
|
|||||||
await GenerateWineQualityStatistics(0, ExportMode.Show);
|
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) {
|
private async void Menu_WineQualityStatistics_PrintFilters_Click(object sender, RoutedEventArgs evt) {
|
||||||
await GenerateWineQualityStatistics(0, ExportMode.Print);
|
await GenerateWineQualityStatistics(0, ExportMode.Print);
|
||||||
}
|
}
|
||||||
@ -317,12 +324,7 @@ namespace Elwig.Windows {
|
|||||||
try {
|
try {
|
||||||
var data = await WineQualityStatisticsData.FromQuery(query);
|
var data = await WineQualityStatisticsData.FromQuery(query);
|
||||||
using var doc = new WineQualityStatistics(string.Join(" / ", filterNames), data);
|
using var doc = new WineQualityStatistics(string.Join(" / ", filterNames), data);
|
||||||
await doc.Generate();
|
await Utils.ExportDocument(doc, exportMode);
|
||||||
if (exportMode == ExportMode.Print && !App.Config.Debug) {
|
|
||||||
await doc.Print();
|
|
||||||
} else {
|
|
||||||
doc.Show();
|
|
||||||
}
|
|
||||||
} catch (Exception exc) {
|
} catch (Exception exc) {
|
||||||
MessageBox.Show(exc.Message, "Fehler", MessageBoxButton.OK, MessageBoxImage.Error);
|
MessageBox.Show(exc.Message, "Fehler", MessageBoxButton.OK, MessageBoxImage.Error);
|
||||||
}
|
}
|
||||||
@ -1278,11 +1280,13 @@ namespace Elwig.Windows {
|
|||||||
if (DeliveryList.SelectedItem is Delivery d) {
|
if (DeliveryList.SelectedItem is Delivery d) {
|
||||||
DeleteDeliveryButton.IsEnabled = true;
|
DeleteDeliveryButton.IsEnabled = true;
|
||||||
Menu_DeliveryNote_Show.IsEnabled = !IsEditing && !IsCreating;
|
Menu_DeliveryNote_Show.IsEnabled = !IsEditing && !IsCreating;
|
||||||
|
Menu_DeliveryNote_SavePdf.IsEnabled = !IsEditing && !IsCreating;
|
||||||
Menu_DeliveryNote_Print.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_DeliveryNote_Email.IsEnabled = !IsEditing && !IsCreating && App.Config.Smtp != null && d.Member.EmailAddresses.Count > 0;
|
||||||
} else {
|
} else {
|
||||||
DeleteDeliveryButton.IsEnabled = false;
|
DeleteDeliveryButton.IsEnabled = false;
|
||||||
Menu_DeliveryNote_Show.IsEnabled = false;
|
Menu_DeliveryNote_Show.IsEnabled = false;
|
||||||
|
Menu_DeliveryNote_SavePdf.IsEnabled = false;
|
||||||
Menu_DeliveryNote_Print.IsEnabled = false;
|
Menu_DeliveryNote_Print.IsEnabled = false;
|
||||||
Menu_DeliveryNote_Email.IsEnabled = false;
|
Menu_DeliveryNote_Email.IsEnabled = false;
|
||||||
}
|
}
|
||||||
|
@ -52,16 +52,20 @@
|
|||||||
Click="Menu_Contact_Letterhead_Click"/>
|
Click="Menu_Contact_Letterhead_Click"/>
|
||||||
</MenuItem>
|
</MenuItem>
|
||||||
<MenuItem Header="Stammdatenblatt">
|
<MenuItem Header="Stammdatenblatt">
|
||||||
<MenuItem x:Name="Menu_MemberDataSheet_Show" Header="...anzeigen" IsEnabled="False"
|
<MenuItem x:Name="Menu_MemberDataSheet_Show" Header="...anzeigen (PDF)" IsEnabled="False"
|
||||||
Click="Menu_MemberDataSheet_Show_Click" InputGestureText="Strg+P"/>
|
Click="Menu_MemberDataSheet_Show_Click" InputGestureText="Strg+P"/>
|
||||||
|
<MenuItem x:Name="Menu_MemberDataSheet_SavePdf" Header="...speichern... (PDF)" IsEnabled="False"
|
||||||
|
Click="Menu_MemberDataSheet_SavePdf_Click"/>
|
||||||
<MenuItem x:Name="Menu_MemberDataSheet_Print" Header="...drucken" IsEnabled="False"
|
<MenuItem x:Name="Menu_MemberDataSheet_Print" Header="...drucken" IsEnabled="False"
|
||||||
Click="Menu_MemberDataSheet_Print_Click" InputGestureText="Strg+Shift+P"/>
|
Click="Menu_MemberDataSheet_Print_Click" InputGestureText="Strg+Shift+P"/>
|
||||||
<MenuItem x:Name="Menu_MemberDataSheet_Email" Header="...per E-Mail schicken" IsEnabled="False"
|
<MenuItem x:Name="Menu_MemberDataSheet_Email" Header="...per E-Mail schicken" IsEnabled="False"
|
||||||
Click="Menu_MemberDataSheet_Email_Click"/>
|
Click="Menu_MemberDataSheet_Email_Click"/>
|
||||||
</MenuItem>
|
</MenuItem>
|
||||||
<MenuItem Header="Anlieferungsbestätigung" x:Name="Menu_DeliveryConfirmation">
|
<MenuItem Header="Anlieferungsbestätigung" x:Name="Menu_DeliveryConfirmation">
|
||||||
<MenuItem x:Name="Menu_DeliveryConfirmation_Show" Header="...anzeigen" IsEnabled="False"
|
<MenuItem x:Name="Menu_DeliveryConfirmation_Show" Header="...anzeigen (PDF)" IsEnabled="False"
|
||||||
Click="Menu_DeliveryConfirmation_Show_Click"/>
|
Click="Menu_DeliveryConfirmation_Show_Click"/>
|
||||||
|
<MenuItem x:Name="Menu_DeliveryConfirmation_SavePdf" Header="...speichern... (PDF)" IsEnabled="False"
|
||||||
|
Click="Menu_DeliveryConfirmation_SavePdf_Click"/>
|
||||||
<MenuItem x:Name="Menu_DeliveryConfirmation_Print" Header="...drucken" IsEnabled="False"
|
<MenuItem x:Name="Menu_DeliveryConfirmation_Print" Header="...drucken" IsEnabled="False"
|
||||||
Click="Menu_DeliveryConfirmation_Print_Click"/>
|
Click="Menu_DeliveryConfirmation_Print_Click"/>
|
||||||
<MenuItem x:Name="Menu_DeliveryConfirmation_Email" Header="...per E-Mail schicken" IsEnabled="False"
|
<MenuItem x:Name="Menu_DeliveryConfirmation_Email" Header="...per E-Mail schicken" IsEnabled="False"
|
||||||
@ -72,6 +76,8 @@
|
|||||||
Click="Menu_List_SaveActive_Click" InputGestureText="Strg+L"/>
|
Click="Menu_List_SaveActive_Click" InputGestureText="Strg+L"/>
|
||||||
<MenuItem x:Name="Menu_List_ShowActive" Header="...mit Aktiven anzeigen (PDF)"
|
<MenuItem x:Name="Menu_List_ShowActive" Header="...mit Aktiven anzeigen (PDF)"
|
||||||
Click="Menu_List_ShowActive_Click" InputGestureText="Strg+O"/>
|
Click="Menu_List_ShowActive_Click" InputGestureText="Strg+O"/>
|
||||||
|
<MenuItem x:Name="Menu_List_SavePdfActive" Header="...mit Aktiven speichern... (PDF)"
|
||||||
|
Click="Menu_List_SavePdfActive_Click"/>
|
||||||
<MenuItem x:Name="Menu_List_PrintActive" Header="...mit Aktiven drucken"
|
<MenuItem x:Name="Menu_List_PrintActive" Header="...mit Aktiven drucken"
|
||||||
Click="Menu_List_PrintActive_Click" InputGestureText="Strg+Shift+O"/>
|
Click="Menu_List_PrintActive_Click" InputGestureText="Strg+Shift+O"/>
|
||||||
<Separator/>
|
<Separator/>
|
||||||
@ -79,6 +85,8 @@
|
|||||||
Click="Menu_List_SaveFilters_Click"/>
|
Click="Menu_List_SaveFilters_Click"/>
|
||||||
<MenuItem x:Name="Menu_List_ShowFilters" Header="...aus Filtern anzeigen (PDF)"
|
<MenuItem x:Name="Menu_List_ShowFilters" Header="...aus Filtern anzeigen (PDF)"
|
||||||
Click="Menu_List_ShowFilters_Click"/>
|
Click="Menu_List_ShowFilters_Click"/>
|
||||||
|
<MenuItem x:Name="Menu_List_SavePdfFilters" Header="...aus Filtern speichern... (PDF)"
|
||||||
|
Click="Menu_List_SavePdfFilters_Click"/>
|
||||||
<MenuItem x:Name="Menu_List_PrintFilters" Header="...aus Filtern drucken"
|
<MenuItem x:Name="Menu_List_PrintFilters" Header="...aus Filtern drucken"
|
||||||
Click="Menu_List_PrintFilters_Click"/>
|
Click="Menu_List_PrintFilters_Click"/>
|
||||||
<Separator/>
|
<Separator/>
|
||||||
@ -86,6 +94,8 @@
|
|||||||
Click="Menu_List_SaveAll_Click"/>
|
Click="Menu_List_SaveAll_Click"/>
|
||||||
<MenuItem x:Name="Menu_List_ShowAll" Header="...mit allen anzeigen (PDF)"
|
<MenuItem x:Name="Menu_List_ShowAll" Header="...mit allen anzeigen (PDF)"
|
||||||
Click="Menu_List_ShowAll_Click"/>
|
Click="Menu_List_ShowAll_Click"/>
|
||||||
|
<MenuItem x:Name="Menu_List_SavePdfAll" Header="...mit allen speichern... (PDF)"
|
||||||
|
Click="Menu_List_SavePdfAll_Click"/>
|
||||||
<MenuItem x:Name="Menu_List_PrintAll" Header="...mit allen drucken"
|
<MenuItem x:Name="Menu_List_PrintAll" Header="...mit allen drucken"
|
||||||
Click="Menu_List_PrintAll_Click"/>
|
Click="Menu_List_PrintAll_Click"/>
|
||||||
<Separator/>
|
<Separator/>
|
||||||
|
@ -320,9 +320,12 @@ namespace Elwig.Windows {
|
|||||||
Menu_DeliveryConfirmation.Items.Clear();
|
Menu_DeliveryConfirmation.Items.Clear();
|
||||||
foreach (var s in await ctx.Seasons.OrderByDescending(s => s.Year).ToListAsync()) {
|
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 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;
|
show.Click += Menu_DeliveryConfirmation_Show_Click;
|
||||||
i.Items.Add(show);
|
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" };
|
var print = new MenuItem { Header = "...drucken" };
|
||||||
print.Click += Menu_DeliveryConfirmation_Print_Click;
|
print.Click += Menu_DeliveryConfirmation_Print_Click;
|
||||||
i.Items.Add(print);
|
i.Items.Add(print);
|
||||||
@ -573,6 +576,12 @@ namespace Elwig.Windows {
|
|||||||
await GenerateMemberDataSheet(m, ExportMode.Show);
|
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) {
|
private async void Menu_MemberDataSheet_Print_Click(object sender, RoutedEventArgs evt) {
|
||||||
if (MemberList.SelectedItem is not Member m)
|
if (MemberList.SelectedItem is not Member m)
|
||||||
return;
|
return;
|
||||||
@ -590,17 +599,7 @@ namespace Elwig.Windows {
|
|||||||
try {
|
try {
|
||||||
using var ctx = new AppDbContext();
|
using var ctx = new AppDbContext();
|
||||||
using var doc = new MemberDataSheet(m, ctx);
|
using var doc = new MemberDataSheet(m, ctx);
|
||||||
await doc.Generate();
|
await Utils.ExportDocument(doc, mode, emailData: (m, MemberDataSheet.Name, "Im Anhang finden Sie das aktuelle Stammdatenblatt"));
|
||||||
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();
|
|
||||||
}
|
|
||||||
} catch (Exception exc) {
|
} catch (Exception exc) {
|
||||||
MessageBox.Show(exc.Message, "Fehler", MessageBoxButton.OK, MessageBoxImage.Error);
|
MessageBox.Show(exc.Message, "Fehler", MessageBoxButton.OK, MessageBoxImage.Error);
|
||||||
}
|
}
|
||||||
@ -614,6 +613,13 @@ namespace Elwig.Windows {
|
|||||||
await GenerateDeliveryConfirmation(m, s, ExportMode.Show);
|
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) {
|
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];
|
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))
|
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();
|
using var ctx = new AppDbContext();
|
||||||
var data = await DeliveryConfirmationDeliveryData.ForMember(ctx.DeliveryParts, year, m);
|
var data = await DeliveryConfirmationDeliveryData.ForMember(ctx.DeliveryParts, year, m);
|
||||||
using var doc = new DeliveryConfirmation(ctx, year, m, data);
|
using var doc = new DeliveryConfirmation(ctx, year, m, data);
|
||||||
await doc.Generate();
|
await Utils.ExportDocument(doc, mode, emailData: (m, $"{DeliveryConfirmation.Name} {year}", $"Im Anhang finden Sie die Anlieferungsbestätigung {year}"));
|
||||||
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();
|
|
||||||
}
|
|
||||||
} catch (Exception exc) {
|
} catch (Exception exc) {
|
||||||
MessageBox.Show(exc.Message, "Fehler", MessageBoxButton.OK, MessageBoxImage.Error);
|
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_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_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_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_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_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_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_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_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_PrintAll_Click(object sender, RoutedEventArgs evt) { await GenerateMemberList(2, ExportMode.Print); }
|
||||||
|
|
||||||
private async void Menu_List_Order_Click(object sender, RoutedEventArgs evt) {
|
private async void Menu_List_Order_Click(object sender, RoutedEventArgs evt) {
|
||||||
@ -739,12 +738,7 @@ namespace Elwig.Windows {
|
|||||||
try {
|
try {
|
||||||
var data = await MemberListData.FromQuery(query, filterNames);
|
var data = await MemberListData.FromQuery(query, filterNames);
|
||||||
using var doc = new MemberList(string.Join(" / ", filterNames), data);
|
using var doc = new MemberList(string.Join(" / ", filterNames), data);
|
||||||
await doc.Generate();
|
await Utils.ExportDocument(doc, exportMode);
|
||||||
if (exportMode == ExportMode.Print && !App.Config.Debug) {
|
|
||||||
await doc.Print();
|
|
||||||
} else {
|
|
||||||
doc.Show();
|
|
||||||
}
|
|
||||||
} catch (Exception exc) {
|
} catch (Exception exc) {
|
||||||
MessageBox.Show(exc.Message, "Fehler", MessageBoxButton.OK, MessageBoxImage.Error);
|
MessageBox.Show(exc.Message, "Fehler", MessageBoxButton.OK, MessageBoxImage.Error);
|
||||||
}
|
}
|
||||||
@ -1059,9 +1053,10 @@ namespace Elwig.Windows {
|
|||||||
Menu_MemberDataSheet_Print.IsEnabled = true;
|
Menu_MemberDataSheet_Print.IsEnabled = true;
|
||||||
Menu_MemberDataSheet_Email.IsEnabled = App.Config.Smtp != null && m.EmailAddresses.Count > 0;
|
Menu_MemberDataSheet_Email.IsEnabled = App.Config.Smtp != null && m.EmailAddresses.Count > 0;
|
||||||
Menu_MemberDataSheet_Show.IsEnabled = true;
|
Menu_MemberDataSheet_Show.IsEnabled = true;
|
||||||
|
Menu_MemberDataSheet_SavePdf.IsEnabled = true;
|
||||||
foreach (var i in Menu_DeliveryConfirmation.Items.Cast<MenuItem>()) {
|
foreach (var i in Menu_DeliveryConfirmation.Items.Cast<MenuItem>()) {
|
||||||
i.IsEnabled = true;
|
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();
|
FinishInputFilling();
|
||||||
@ -1073,6 +1068,7 @@ namespace Elwig.Windows {
|
|||||||
Menu_MemberDataSheet_Print.IsEnabled = false;
|
Menu_MemberDataSheet_Print.IsEnabled = false;
|
||||||
Menu_MemberDataSheet_Email.IsEnabled = false;
|
Menu_MemberDataSheet_Email.IsEnabled = false;
|
||||||
Menu_MemberDataSheet_Show.IsEnabled = false;
|
Menu_MemberDataSheet_Show.IsEnabled = false;
|
||||||
|
Menu_MemberDataSheet_SavePdf.IsEnabled = false;
|
||||||
foreach (var i in Menu_DeliveryConfirmation.Items.Cast<MenuItem>()) {
|
foreach (var i in Menu_DeliveryConfirmation.Items.Cast<MenuItem>()) {
|
||||||
i.IsEnabled = false;
|
i.IsEnabled = false;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user