[#31] MemberAdminWindow: Rework menu and add more features
This commit is contained in:
@ -45,20 +45,56 @@
|
||||
</Grid.ColumnDefinitions>
|
||||
|
||||
<Menu Grid.ColumnSpan="3" BorderThickness="0,0,0,1" BorderBrush="LightGray" Background="White">
|
||||
<MenuItem Header="Mitglied">
|
||||
<MenuItem x:Name="Menu_Member_SendEmail" Header="E-Mail senden" IsEnabled="False"
|
||||
Click="Menu_Member_SendEmail_Click"/>
|
||||
<MenuItem Header="Kontaktieren">
|
||||
<MenuItem x:Name="Menu_Contact_Email" Header="E-Mail senden..." IsEnabled="False"
|
||||
Click="Menu_Contact_Email_Click"/>
|
||||
<MenuItem x:Name="Menu_Contact_Letterhead" Header="Briefkopf drucken" IsEnabled="False"
|
||||
Click="Menu_Contact_Letterhead_Click"/>
|
||||
</MenuItem>
|
||||
<MenuItem Header="Drucken">
|
||||
<MenuItem x:Name="Menu_Print_Letterhead" Header="Briefkopf drucken"
|
||||
Click="Menu_Print_Letterhead_Click"/>
|
||||
<MenuItem x:Name="Menu_Show_MemberDataSheet" Header="Stammdatenblatt anzeigen" IsEnabled="False"
|
||||
Click="Menu_Show_MemberDataSheet_Click" InputGestureText="Strg+P"/>
|
||||
<MenuItem x:Name="Menu_Print_MemberDataSheet" Header="Stammdatenblatt drucken" IsEnabled="False"
|
||||
Click="Menu_Print_MemberDataSheet_Click" InputGestureText="Strg+Shift+P"/>
|
||||
<MenuItem Header="Stammdatenblatt">
|
||||
<MenuItem x:Name="Menu_MemberDataSheet_Show" Header="...anzeigen" IsEnabled="False"
|
||||
Click="Menu_MemberDataSheet_Show_Click" InputGestureText="Strg+P"/>
|
||||
<MenuItem x:Name="Menu_MemberDataSheet_Print" Header="...drucken" IsEnabled="False"
|
||||
Click="Menu_MemberDataSheet_Print_Click" InputGestureText="Strg+Shift+P"/>
|
||||
<MenuItem x:Name="Menu_MemberDataSheet_Email" Header="...per E-Mail schicken" IsEnabled="False"
|
||||
Click="Menu_MemberDataSheet_Email_Click"/>
|
||||
</MenuItem>
|
||||
<MenuItem Header="Werkzeuge">
|
||||
<MenuItem Header="Alle Mitglieder überprüfen"/>
|
||||
<MenuItem Header="Anlieferungsbestätigung" x:Name="Menu_DeliveryConfirmation">
|
||||
<MenuItem x:Name="Menu_DeliveryConfirmation_Show" Header="...anzeigen" IsEnabled="False"
|
||||
Click="Menu_DeliveryConfirmation_Show_Click"/>
|
||||
<MenuItem x:Name="Menu_DeliveryConfirmation_Print" Header="...drucken" IsEnabled="False"
|
||||
Click="Menu_DeliveryConfirmation_Print_Click"/>
|
||||
<MenuItem x:Name="Menu_DeliveryConfirmation_Email" Header="...per E-Mail schicken" IsEnabled="False"
|
||||
Click="Menu_DeliveryConfirmation_Email_Click"/>
|
||||
</MenuItem>
|
||||
<MenuItem Header="Mitgliederliste" x:Name="Menu_List">
|
||||
<MenuItem x:Name="Menu_List_SaveActive" Header="...mit Aktiven speichern (Excel)"
|
||||
Click="Menu_List_SaveActive_Click" InputGestureText="Strg+L"/>
|
||||
<MenuItem x:Name="Menu_List_ShowActive" Header="...mit Aktiven anzeigen (PDF)"
|
||||
Click="Menu_List_ShowActive_Click" InputGestureText="Strg+O"/>
|
||||
<MenuItem x:Name="Menu_List_PrintActive" Header="...mit Aktiven drucken"
|
||||
Click="Menu_List_PrintActive_Click" InputGestureText="Strg+Shift+O"/>
|
||||
<Separator/>
|
||||
<MenuItem x:Name="Menu_List_SaveFilters" Header="...aus Filtern speichern (Excel)"
|
||||
Click="Menu_List_SaveFilters_Click"/>
|
||||
<MenuItem x:Name="Menu_List_ShowFilters" Header="...aus Filtern anzeigen (PDF)"
|
||||
Click="Menu_List_ShowFilters_Click"/>
|
||||
<MenuItem x:Name="Menu_List_PrintFilters" Header="...aus Filtern drucken"
|
||||
Click="Menu_List_PrintFilters_Click"/>
|
||||
<Separator/>
|
||||
<MenuItem x:Name="Menu_List_SaveAll" Header="...mit allen speichern (Excel)"
|
||||
Click="Menu_List_SaveAll_Click"/>
|
||||
<MenuItem x:Name="Menu_List_ShowAll" Header="...mit allen anzeigen (PDF)"
|
||||
Click="Menu_List_ShowAll_Click"/>
|
||||
<MenuItem x:Name="Menu_List_PrintAll" Header="...mit allen drucken"
|
||||
Click="Menu_List_PrintAll_Click"/>
|
||||
<Separator/>
|
||||
<MenuItem x:Name="Menu_List_OrderMgNr" Header="...nach MgNr. sortieren" IsCheckable="True" IsChecked="True"
|
||||
Click="Menu_List_Order_Click"/>
|
||||
<MenuItem x:Name="Menu_List_OrderName" Header="...nach Nachname, Vorname sortieren" IsCheckable="True"
|
||||
Click="Menu_List_Order_Click"/>
|
||||
<MenuItem x:Name="Menu_List_OrderOrt" Header="...nach Stamm-KG, Name sortieren" IsCheckable="True"
|
||||
Click="Menu_List_Order_Click"/>
|
||||
</MenuItem>
|
||||
</Menu>
|
||||
|
||||
@ -256,8 +292,8 @@
|
||||
<TextBox x:Name="EmailAddress7Input" Margin="0,190,10,0" Grid.Column="1" Grid.ColumnSpan="2"
|
||||
TextChanged="EmailAddressInput_TextChanged" LostFocus="EmailAddressInput_LostFocus"/>
|
||||
|
||||
<Label x:Name="EmailAddress8Label" Content="E-Mail-Adresse:" Margin="10,210,0,0" Grid.Column="0"/>
|
||||
<TextBox x:Name="EmailAddress8Input" Margin="0,210,10,0" Grid.Column="1" Grid.ColumnSpan="2"
|
||||
<Label x:Name="EmailAddress8Label" Content="E-Mail-Adresse:" Margin="10,220,0,0" Grid.Column="0"/>
|
||||
<TextBox x:Name="EmailAddress8Input" Margin="0,220,10,0" Grid.Column="1" Grid.ColumnSpan="2"
|
||||
TextChanged="EmailAddressInput_TextChanged" LostFocus="EmailAddressInput_LostFocus"/>
|
||||
|
||||
<Label x:Name="EmailAddress9Label" Content="E-Mail-Adresse:" Margin="10,250,0,0" Grid.Column="0"/>
|
||||
|
@ -11,6 +11,7 @@ using System.Threading.Tasks;
|
||||
using System.Collections.ObjectModel;
|
||||
using Elwig.Documents;
|
||||
using System.Diagnostics;
|
||||
using Elwig.Models.Dtos;
|
||||
|
||||
namespace Elwig.Windows {
|
||||
public partial class MemberAdminWindow : AdministrationWindow {
|
||||
@ -23,16 +24,22 @@ namespace Elwig.Windows {
|
||||
private readonly (Label Label, TextBox Address)[] EmailAddressInputs;
|
||||
|
||||
private readonly RoutedCommand CtrlF = new("CtrlF", typeof(MemberAdminWindow), [new KeyGesture(Key.F, ModifierKeys.Control)]);
|
||||
private readonly RoutedCommand CtrlL = new("CtrlL", typeof(MemberAdminWindow), [new KeyGesture(Key.L, ModifierKeys.Control)]);
|
||||
private readonly RoutedCommand CtrlP = new("CtrlP", typeof(MemberAdminWindow), [new KeyGesture(Key.P, ModifierKeys.Control)]);
|
||||
private readonly RoutedCommand CtrlO = new("CtrlO", typeof(MemberAdminWindow), [new KeyGesture(Key.O, ModifierKeys.Control)]);
|
||||
private readonly RoutedCommand CtrlShiftP = new("CtrlShiftP", typeof(MemberAdminWindow), [new KeyGesture(Key.P, ModifierKeys.Control | ModifierKeys.Shift)]);
|
||||
private readonly RoutedCommand CtrlShiftO = new("CtrlShiftO", typeof(MemberAdminWindow), [new KeyGesture(Key.O, ModifierKeys.Control | ModifierKeys.Shift)]);
|
||||
|
||||
protected static ObservableCollection<KeyValuePair<string, string>> PhoneNrTypes { get; set; } = new(Utils.PhoneNrTypes);
|
||||
|
||||
public MemberAdminWindow() {
|
||||
InitializeComponent();
|
||||
CommandBindings.Add(new CommandBinding(CtrlF, FocusSearchInput));
|
||||
CommandBindings.Add(new CommandBinding(CtrlP, Menu_Show_MemberDataSheet_Click));
|
||||
CommandBindings.Add(new CommandBinding(CtrlShiftP, Menu_Print_MemberDataSheet_Click));
|
||||
CommandBindings.Add(new CommandBinding(CtrlL, Menu_List_SaveActive_Click));
|
||||
CommandBindings.Add(new CommandBinding(CtrlP, Menu_MemberDataSheet_Show_Click));
|
||||
CommandBindings.Add(new CommandBinding(CtrlO, Menu_List_ShowActive_Click));
|
||||
CommandBindings.Add(new CommandBinding(CtrlShiftP, Menu_MemberDataSheet_Print_Click));
|
||||
CommandBindings.Add(new CommandBinding(CtrlShiftO, Menu_List_PrintActive_Click));
|
||||
ExemptInputs = [
|
||||
SearchInput, ActiveMemberInput, MemberList,
|
||||
];
|
||||
@ -67,6 +74,15 @@ namespace Elwig.Windows {
|
||||
|
||||
InitializeDelayTimer(SearchInput, SearchInput_TextChanged);
|
||||
SearchInput.TextChanged -= SearchInput_TextChanged;
|
||||
|
||||
Menu_List_OrderMgNr.IsChecked = false;
|
||||
Menu_List_OrderName.IsChecked = false;
|
||||
Menu_List_OrderOrt.IsChecked = false;
|
||||
switch (App.Client.OrderingMemberList) {
|
||||
case 0: Menu_List_OrderMgNr.IsChecked = true; break;
|
||||
case 1: Menu_List_OrderName.IsChecked = true; break;
|
||||
case 2: Menu_List_OrderOrt.IsChecked = true; break;
|
||||
}
|
||||
}
|
||||
|
||||
private void Window_Loaded(object sender, RoutedEventArgs evt) {
|
||||
@ -271,6 +287,22 @@ namespace Elwig.Windows {
|
||||
await base.OnRenewContext(ctx);
|
||||
ControlUtils.RenewItemsSource(BranchInput, await ctx.Branches.OrderBy(b => b.Name).ToListAsync());
|
||||
ControlUtils.RenewItemsSource(DefaultKgInput, await ctx.WbKgs.Select(k => k.AtKg).OrderBy(k => k.Name).ToListAsync());
|
||||
|
||||
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" };
|
||||
show.Click += Menu_DeliveryConfirmation_Show_Click;
|
||||
i.Items.Add(show);
|
||||
var print = new MenuItem { Header = "...drucken" };
|
||||
print.Click += Menu_DeliveryConfirmation_Print_Click;
|
||||
i.Items.Add(print);
|
||||
Menu_DeliveryConfirmation.Items.Add(i);
|
||||
var email = new MenuItem { Header = "...per E-Mail schicken" };
|
||||
email.Click += Menu_DeliveryConfirmation_Email_Click;
|
||||
i.Items.Add(email);
|
||||
}
|
||||
|
||||
await RefreshMemberList();
|
||||
StatusMembers.Text = $"Mitglieder: {await ctx.Members.CountAsync(m => m.IsActive):N0} ({await ctx.Members.CountAsync():N0})";
|
||||
StatusBusinessShares.Text = $"Geschäftsanteile: {await ctx.Members.Where(m => m.IsActive).SumAsync(m => m.BusinessShares):N0} ({await ctx.Members.SumAsync(m => m.BusinessShares):N0})";
|
||||
@ -443,17 +475,17 @@ namespace Elwig.Windows {
|
||||
}
|
||||
|
||||
private async void SearchInput_TextChanged(object sender, RoutedEventArgs evt) {
|
||||
TextFilter = SearchInput.Text.ToLower().Split(" ").ToList().FindAll(e => e.Length > 0);
|
||||
TextFilter = SearchInput.Text.ToLower().Split(' ').ToList().FindAll(e => e.Length > 0);
|
||||
await RefreshMemberListQuery(true);
|
||||
}
|
||||
|
||||
private void Menu_Member_SendEmail_Click(object sender, RoutedEventArgs evt) {
|
||||
private void Menu_Contact_Email_Click(object sender, RoutedEventArgs evt) {
|
||||
if (MemberList.SelectedItem is not Member m)
|
||||
return;
|
||||
Utils.MailTo(m.EmailAddresses.Select(a => a.Address));
|
||||
}
|
||||
|
||||
private async void Menu_Print_Letterhead_Click(object sender, RoutedEventArgs evt) {
|
||||
private async void Menu_Contact_Letterhead_Click(object sender, RoutedEventArgs evt) {
|
||||
if (MemberList.SelectedItem is not Member m)
|
||||
return;
|
||||
Mouse.OverrideCursor = Cursors.AppStarting;
|
||||
@ -471,18 +503,39 @@ namespace Elwig.Windows {
|
||||
Mouse.OverrideCursor = null;
|
||||
}
|
||||
|
||||
private async void Menu_Print_MemberDataSheet_Click(object sender, RoutedEventArgs evt) {
|
||||
private async void Menu_MemberDataSheet_Show_Click(object sender, RoutedEventArgs evt) {
|
||||
if (MemberList.SelectedItem is not Member m)
|
||||
return;
|
||||
await GenerateMemberDataSheet(m, 0);
|
||||
}
|
||||
|
||||
private async void Menu_MemberDataSheet_Print_Click(object sender, RoutedEventArgs evt) {
|
||||
if (MemberList.SelectedItem is not Member m)
|
||||
return;
|
||||
await GenerateMemberDataSheet(m, 1);
|
||||
}
|
||||
|
||||
private async void Menu_MemberDataSheet_Email_Click(object sender, RoutedEventArgs evt) {
|
||||
if (MemberList.SelectedItem is not Member m)
|
||||
return;
|
||||
await GenerateMemberDataSheet(m, 2);
|
||||
}
|
||||
|
||||
private static async Task GenerateMemberDataSheet(Member m, int mode) {
|
||||
Mouse.OverrideCursor = Cursors.AppStarting;
|
||||
try {
|
||||
using var ctx = new AppDbContext();
|
||||
using var doc = new MemberDataSheet(m, ctx);
|
||||
await doc.Generate();
|
||||
if (App.Config.Debug) {
|
||||
doc.Show();
|
||||
} else {
|
||||
if (mode == 1 && !App.Config.Debug) {
|
||||
await doc.Print();
|
||||
} else if (mode == 2) {
|
||||
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) {
|
||||
MessageBox.Show(exc.Message, "Fehler", MessageBoxButton.OK, MessageBoxImage.Error);
|
||||
@ -490,21 +543,118 @@ namespace Elwig.Windows {
|
||||
Mouse.OverrideCursor = null;
|
||||
}
|
||||
|
||||
private async void Menu_Show_MemberDataSheet_Click(object sender, RoutedEventArgs evt) {
|
||||
if (MemberList.SelectedItem is not Member m)
|
||||
private async void Menu_DeliveryConfirmation_Show_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, 0);
|
||||
}
|
||||
|
||||
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))
|
||||
return;
|
||||
await GenerateDeliveryConfirmation(m, s, 1);
|
||||
}
|
||||
|
||||
private async void Menu_DeliveryConfirmation_Email_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, 2);
|
||||
}
|
||||
|
||||
private static async Task GenerateDeliveryConfirmation(Member m, int year, int mode) {
|
||||
Mouse.OverrideCursor = Cursors.AppStarting;
|
||||
try {
|
||||
using var ctx = new AppDbContext();
|
||||
using var doc = new MemberDataSheet(m, ctx);
|
||||
var data = await DeliveryConfirmationDeliveryData.ForMember(ctx.DeliveryParts, year, m);
|
||||
using var doc = new DeliveryConfirmation(ctx, year, m, data);
|
||||
await doc.Generate();
|
||||
doc.Show();
|
||||
if (mode == 1 && !App.Config.Debug) {
|
||||
await doc.Print();
|
||||
} else if (mode == 2) {
|
||||
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) {
|
||||
MessageBox.Show(exc.Message, "Fehler", MessageBoxButton.OK, MessageBoxImage.Error);
|
||||
}
|
||||
Mouse.OverrideCursor = null;
|
||||
}
|
||||
|
||||
private async void Menu_List_SaveActive_Click(object sender, RoutedEventArgs evt) { await GenerateMemberList(0, 0); }
|
||||
private async void Menu_List_ShowActive_Click(object sender, RoutedEventArgs evt) { await GenerateMemberList(0, 1); }
|
||||
private async void Menu_List_PrintActive_Click(object sender, RoutedEventArgs evt) { await GenerateMemberList(0, 2); }
|
||||
private async void Menu_List_SaveFilters_Click(object sender, RoutedEventArgs evt) { await GenerateMemberList(1, 0); }
|
||||
private async void Menu_List_ShowFilters_Click(object sender, RoutedEventArgs evt) { await GenerateMemberList(1, 1); }
|
||||
private async void Menu_List_PrintFilters_Click(object sender, RoutedEventArgs evt) { await GenerateMemberList(1, 2); }
|
||||
private async void Menu_List_SaveAll_Click(object sender, RoutedEventArgs evt) { await GenerateMemberList(2, 0); }
|
||||
private async void Menu_List_ShowAll_Click(object sender, RoutedEventArgs evt) { await GenerateMemberList(2, 1); }
|
||||
private async void Menu_List_PrintAll_Click(object sender, RoutedEventArgs evt) { await GenerateMemberList(2, 2); }
|
||||
|
||||
private async void Menu_List_Order_Click(object sender, RoutedEventArgs evt) {
|
||||
Menu_List.IsSubmenuOpen = true;
|
||||
if (sender == Menu_List_OrderMgNr) {
|
||||
App.Client.OrderingMemberList = 0;
|
||||
Menu_List_OrderMgNr.IsChecked = true;
|
||||
Menu_List_OrderName.IsChecked = false;
|
||||
Menu_List_OrderOrt.IsChecked = false;
|
||||
} else if (sender == Menu_List_OrderName) {
|
||||
App.Client.OrderingMemberList = 1;
|
||||
Menu_List_OrderMgNr.IsChecked = false;
|
||||
Menu_List_OrderName.IsChecked = true;
|
||||
Menu_List_OrderOrt.IsChecked = false;
|
||||
} else if (sender == Menu_List_OrderOrt) {
|
||||
App.Client.OrderingMemberList = 2;
|
||||
Menu_List_OrderMgNr.IsChecked = false;
|
||||
Menu_List_OrderName.IsChecked = false;
|
||||
Menu_List_OrderOrt.IsChecked = true;
|
||||
}
|
||||
await App.Client.UpdateValues();
|
||||
}
|
||||
|
||||
private async Task GenerateMemberList(int modeWho, int modeWhat) {
|
||||
using var ctx = new AppDbContext();
|
||||
IQueryable<Member> list;
|
||||
if (modeWho == 0) {
|
||||
list = ctx.Members.Where(m => m.IsActive);
|
||||
} else if (modeWho == 1) {
|
||||
list = ctx.Members; // TODO
|
||||
} else {
|
||||
list = ctx.Members;
|
||||
}
|
||||
|
||||
if (Menu_List_OrderMgNr.IsChecked) {
|
||||
list = list.OrderBy(m => m.MgNr);
|
||||
} else if (Menu_List_OrderName.IsChecked) {
|
||||
list = list
|
||||
.OrderBy(m => m.FamilyName)
|
||||
.ThenBy(m => m.GivenName)
|
||||
.ThenBy(m => m.MgNr);
|
||||
} else if (Menu_List_OrderOrt.IsChecked) {
|
||||
list = list
|
||||
.OrderBy(m => m.DefaultWbKg!.AtKg.Name)
|
||||
.ThenBy(m => m.FamilyName)
|
||||
.ThenBy(m => m.GivenName)
|
||||
.ThenBy(m => m.MgNr);
|
||||
}
|
||||
|
||||
if (modeWhat == 0) {
|
||||
|
||||
} else if (modeWhat == 1) {
|
||||
|
||||
} else if (modeWhat == 2) {
|
||||
|
||||
}
|
||||
|
||||
// TODO
|
||||
}
|
||||
|
||||
private void FocusSearchInput(object sender, RoutedEventArgs evt) {
|
||||
if (!IsEditing && !IsCreating) {
|
||||
SearchInput.Focus();
|
||||
@ -807,19 +957,28 @@ namespace Elwig.Windows {
|
||||
StatusAreaCommitment.Text = $"Gebundene Fläche: {m.ActiveAreaCommitments(ctx).Select(c => c.Area).Sum():N0} m²";
|
||||
}
|
||||
|
||||
Menu_Member_SendEmail.IsEnabled = m.EmailAddresses.Count > 0;
|
||||
Menu_Print_Letterhead.IsEnabled = true;
|
||||
Menu_Show_MemberDataSheet.IsEnabled = true;
|
||||
Menu_Print_MemberDataSheet.IsEnabled = true;
|
||||
Menu_Contact_Email.IsEnabled = m.EmailAddresses.Count > 0;
|
||||
Menu_Contact_Letterhead.IsEnabled = true;
|
||||
Menu_MemberDataSheet_Print.IsEnabled = true;
|
||||
Menu_MemberDataSheet_Email.IsEnabled = App.Config.Smtp != null && m.EmailAddresses.Count > 0;
|
||||
Menu_MemberDataSheet_Show.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;
|
||||
}
|
||||
|
||||
FinishInputFilling();
|
||||
}
|
||||
|
||||
new protected void ClearInputs(bool validate = false) {
|
||||
Menu_Member_SendEmail.IsEnabled = false;
|
||||
Menu_Print_Letterhead.IsEnabled = false;
|
||||
Menu_Show_MemberDataSheet.IsEnabled = false;
|
||||
Menu_Print_MemberDataSheet.IsEnabled = false;
|
||||
Menu_Contact_Email.IsEnabled = false;
|
||||
Menu_Contact_Letterhead.IsEnabled = false;
|
||||
Menu_MemberDataSheet_Print.IsEnabled = false;
|
||||
Menu_MemberDataSheet_Email.IsEnabled = false;
|
||||
Menu_MemberDataSheet_Show.IsEnabled = false;
|
||||
foreach (var i in Menu_DeliveryConfirmation.Items.Cast<MenuItem>()) {
|
||||
i.IsEnabled = false;
|
||||
}
|
||||
MemberReferenceButton.IsEnabled = false;
|
||||
StatusDeliveriesLastSeason.Text = $"Lieferungen ({Utils.CurrentLastSeason - 1}): -";
|
||||
StatusDeliveriesThisSeason.Text = $"Lieferungen ({Utils.CurrentLastSeason}): -";
|
||||
|
Reference in New Issue
Block a user