MemberAdminWindow: Add more letterhead sorting options
This commit is contained in:
@ -59,6 +59,8 @@
|
|||||||
Click="Menu_Print_Letterheads_MgNr_Click"/>
|
Click="Menu_Print_Letterheads_MgNr_Click"/>
|
||||||
<MenuItem x:Name="Menu_Print_Letterheads_Name" Header="nach Name sortiert" IsEnabled="False" Tag="Print"
|
<MenuItem x:Name="Menu_Print_Letterheads_Name" Header="nach Name sortiert" IsEnabled="False" Tag="Print"
|
||||||
Click="Menu_Print_Letterheads_Name_Click"/>
|
Click="Menu_Print_Letterheads_Name_Click"/>
|
||||||
|
<MenuItem x:Name="Menu_Print_Letterheads_Plz" Header="nach PLZ, Ort, Name sortiert" IsEnabled="False" Tag="Print"
|
||||||
|
Click="Menu_Print_Letterheads_Plz_Click"/>
|
||||||
</MenuItem>
|
</MenuItem>
|
||||||
</MenuItem>
|
</MenuItem>
|
||||||
<MenuItem Header="Rundschreiben">
|
<MenuItem Header="Rundschreiben">
|
||||||
|
@ -291,7 +291,7 @@ namespace Elwig.Windows {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private async void Menu_Print_Letterheads_MgNr_Click(object sender, RoutedEventArgs evt) {
|
private async Task PrintLetterheads(int ordering) {
|
||||||
var n = await Context.Members.CountAsync(m => m.IsActive);
|
var n = await Context.Members.CountAsync(m => m.IsActive);
|
||||||
var res = MessageBox.Show(
|
var res = MessageBox.Show(
|
||||||
$"Sollen wirklich {n} Seiten gedruckt werden?", "Ausdruck Bestätigen",
|
$"Sollen wirklich {n} Seiten gedruckt werden?", "Ausdruck Bestätigen",
|
||||||
@ -299,10 +299,25 @@ namespace Elwig.Windows {
|
|||||||
if (res != MessageBoxResult.Yes)
|
if (res != MessageBoxResult.Yes)
|
||||||
return;
|
return;
|
||||||
Mouse.OverrideCursor = Cursors.AppStarting;
|
Mouse.OverrideCursor = Cursors.AppStarting;
|
||||||
using var doc = await Document.Merge(Context.Members
|
var members = Context.Members.Where(m => m.IsActive && m.ContactViaPost);
|
||||||
.Where(m => m.IsActive && m.ContactViaPost)
|
switch (ordering) {
|
||||||
.OrderBy(m => m.MgNr)
|
case 0: members = members
|
||||||
.Select(m => new Letterhead(m)));
|
.OrderBy(m => m.MgNr);
|
||||||
|
break;
|
||||||
|
case 1: members = members
|
||||||
|
.OrderBy(m => m.FamilyName)
|
||||||
|
.ThenBy(m => m.GivenName)
|
||||||
|
.ThenBy(m => m.MgNr);
|
||||||
|
break;
|
||||||
|
case 2: members = members
|
||||||
|
.OrderBy(m => m.PostalDest.AtPlz.Plz)
|
||||||
|
.ThenBy(m => m.PostalDest.AtPlz.Ort.Name)
|
||||||
|
.ThenBy(m => m.FamilyName)
|
||||||
|
.ThenBy(m => m.GivenName)
|
||||||
|
.ThenBy(m => m.MgNr);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
using var doc = await Document.Merge((await members.ToListAsync()).Select(m => new Letterhead(m)));
|
||||||
await doc.Generate();
|
await doc.Generate();
|
||||||
Mouse.OverrideCursor = null;
|
Mouse.OverrideCursor = null;
|
||||||
if (App.Config.Debug) {
|
if (App.Config.Debug) {
|
||||||
@ -312,26 +327,16 @@ namespace Elwig.Windows {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private async void Menu_Print_Letterheads_Name_Click(object sender, RoutedEventArgs evt) {
|
private async void Menu_Print_Letterheads_MgNr_Click(object sender, RoutedEventArgs evt) {
|
||||||
var n = await Context.Members.CountAsync(m => m.IsActive);
|
await PrintLetterheads(0);
|
||||||
var res = MessageBox.Show(
|
|
||||||
$"Sollen wirklich {n} Seiten gedruckt werden?", "Ausdruck Bestätigen",
|
|
||||||
MessageBoxButton.YesNo, MessageBoxImage.Warning, MessageBoxResult.No);
|
|
||||||
if (res != MessageBoxResult.Yes)
|
|
||||||
return;
|
|
||||||
Mouse.OverrideCursor = Cursors.AppStarting;
|
|
||||||
using var doc = await Document.Merge(Context.Members
|
|
||||||
.Where(m => m.IsActive && m.ContactViaPost)
|
|
||||||
.OrderBy(m => m.FamilyName)
|
|
||||||
.ThenBy(m => m.GivenName)
|
|
||||||
.Select(m => new Letterhead(m)));
|
|
||||||
await doc.Generate();
|
|
||||||
Mouse.OverrideCursor = null;
|
|
||||||
if (App.Config.Debug) {
|
|
||||||
doc.Show();
|
|
||||||
} else {
|
|
||||||
await doc.Print();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private async void Menu_Print_Letterheads_Name_Click(object sender, RoutedEventArgs evt) {
|
||||||
|
await PrintLetterheads(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
private async void Menu_Print_Letterheads_Plz_Click(object sender, RoutedEventArgs evt) {
|
||||||
|
await PrintLetterheads(2);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void FocusSearchInput(object sender, RoutedEventArgs evt) {
|
private void FocusSearchInput(object sender, RoutedEventArgs evt) {
|
||||||
|
Reference in New Issue
Block a user