MailWindow: Fix small bugs and persist all settings
All checks were successful
Test / Run tests (push) Successful in 1m54s
All checks were successful
Test / Run tests (push) Successful in 1m54s
This commit is contained in:
@ -122,6 +122,26 @@ namespace Elwig.Windows {
|
||||
DeliveryConfirmationFooterInput.Text = App.Client.TextDeliveryConfirmation;
|
||||
CreditNoteFooterInput.Text = App.Client.TextCreditNote;
|
||||
|
||||
DocumentNonDeliverersInput.IsChecked = App.Client.MailIncludeNonDeliverers;
|
||||
DoublePagedInput.IsChecked = App.Client.MailDoublePaged;
|
||||
|
||||
switch (App.Client.MailSendPostal) {
|
||||
case 0: PostalNobodyInput.IsChecked = true; break;
|
||||
case 1: PostalNoEmailInput.IsChecked = true; break;
|
||||
case 2: PostalWishInput.IsChecked = true; break;
|
||||
case 3: PostalAllInput.IsChecked = true; break;
|
||||
}
|
||||
switch (App.Client.MailSendEmail) {
|
||||
case 0: EmailNobodyInput.IsChecked = true; break;
|
||||
case 1: EmailWishInput.IsChecked = true; break;
|
||||
case 2: EmailAllInput.IsChecked = true; break;
|
||||
}
|
||||
switch (App.Client.MailOrdering) {
|
||||
case 0: OrderMgNrInput.IsChecked = true; break;
|
||||
case 1: OrderNameInput.IsChecked = true; break;
|
||||
case 2: OrderPlzInput.IsChecked = true; break;
|
||||
}
|
||||
|
||||
PostalSender1.Text = App.Client.Sender1;
|
||||
PostalSender2.Text = App.Client.Sender2;
|
||||
PostalLocation.Text = App.BranchLocation;
|
||||
@ -312,7 +332,7 @@ namespace Elwig.Windows {
|
||||
if (idx == 0) {
|
||||
SelectedDocs.Add(new(DocType.MemberDataSheet, s, null));
|
||||
} else if (idx == 1) {
|
||||
SelectedDocs.Add(new(DocType.DeliveryConfirmation, s, (Year, DocumentNonDeliverersInput.IsChecked == true)));
|
||||
SelectedDocs.Add(new(DocType.DeliveryConfirmation, s, Year));
|
||||
RecipientsDeliveryMembersInput.IsChecked = true;
|
||||
} else if (idx >= 2) {
|
||||
var name = s.Split(" – ")[^1];
|
||||
@ -449,18 +469,26 @@ namespace Elwig.Windows {
|
||||
}
|
||||
|
||||
private void UpdatePostalEmailRecipients() {
|
||||
var modeEmail = EmailAllInput.IsChecked == true ? 2 : EmailWishInput.IsChecked == true ? 1 : 0;
|
||||
var modePostal = PostalAllInput.IsChecked == true ? 3 : PostalWishInput.IsChecked == true ? 2 : PostalNoEmailInput.IsChecked == true ? 1 : 0;
|
||||
EmailAllCount = Recipients.Count(m => m.EmailAddresses.Count > 0);
|
||||
EmailWishCount = Recipients.Count(m => m.EmailAddresses.Count > 0 && m.ContactViaEmail);
|
||||
PostalAllCount = Recipients.Count();
|
||||
PostalWishCount = Recipients.Count(m => m.ContactViaPost);
|
||||
var m = EmailAllInput.IsChecked == true ? 3 : EmailWishInput.IsChecked == true ? 2 : 1;
|
||||
PostalNoEmailCount = PostalAllCount - (m == 3 ? EmailAllCount : m == 2 ? EmailWishCount : 0);
|
||||
var countEmail = (modeEmail == 2 ? EmailAllCount : modeEmail == 1 ? EmailWishCount : 0);
|
||||
PostalNoEmailCount = PostalAllCount - countEmail;
|
||||
ResetDocuments();
|
||||
}
|
||||
|
||||
private async Task UpdateTextParameters() {
|
||||
private async Task UpdateClientParameters() {
|
||||
var changed = false;
|
||||
|
||||
var dcInclude = DocumentNonDeliverersInput.IsChecked ?? false;
|
||||
if (dcInclude != App.Client.MailIncludeNonDeliverers) {
|
||||
App.Client.MailIncludeNonDeliverers = dcInclude;
|
||||
changed = true;
|
||||
}
|
||||
|
||||
var dcText = DeliveryConfirmationFooterInput.Text.Trim();
|
||||
if (dcText.Length == 0) dcText = null;
|
||||
if (dcText != App.Client.TextDeliveryConfirmation) {
|
||||
@ -475,6 +503,53 @@ namespace Elwig.Windows {
|
||||
changed = true;
|
||||
}
|
||||
|
||||
var sendPostal = 0;
|
||||
if (PostalAllInput.IsChecked ?? false) {
|
||||
sendPostal = 3;
|
||||
} else if (PostalWishInput.IsChecked ?? false) {
|
||||
sendPostal = 2;
|
||||
} else if (PostalNoEmailInput.IsChecked ?? false) {
|
||||
sendPostal = 1;
|
||||
}
|
||||
if (sendPostal != App.Client.MailSendPostal) {
|
||||
App.Client.MailSendPostal = sendPostal;
|
||||
changed = true;
|
||||
}
|
||||
|
||||
var sendEmail = 0;
|
||||
if (EmailAllInput.IsChecked ?? false) {
|
||||
sendEmail = 2;
|
||||
} else if (EmailWishInput.IsChecked ?? false) {
|
||||
sendEmail = 1;
|
||||
}
|
||||
if (sendEmail != App.Client.MailSendEmail) {
|
||||
App.Client.MailSendEmail = sendEmail;
|
||||
changed = true;
|
||||
}
|
||||
|
||||
var ordering = 0;
|
||||
if (OrderNameInput.IsChecked ?? false) {
|
||||
ordering = 1;
|
||||
} else if (OrderPlzInput.IsChecked ?? false) {
|
||||
ordering = 2;
|
||||
}
|
||||
if (ordering != App.Client.MailOrdering) {
|
||||
App.Client.MailOrdering = ordering;
|
||||
changed = true;
|
||||
}
|
||||
|
||||
var mailDoublePaged = DoublePagedInput.IsChecked ?? false;
|
||||
if (mailDoublePaged != App.Client.MailDoublePaged) {
|
||||
App.Client.MailDoublePaged = mailDoublePaged;
|
||||
changed = true;
|
||||
}
|
||||
|
||||
var sender2 = PostalSender2.Text.Trim();
|
||||
if (sender2 != App.Client.Sender2) {
|
||||
App.Client.Sender2 = sender2;
|
||||
changed = true;
|
||||
}
|
||||
|
||||
var emailSubject = EmailSubjectInput.Text.Trim();
|
||||
if (emailSubject.Length == 0) emailSubject = null;
|
||||
if (emailSubject != App.Client.TextEmailSubject) {
|
||||
@ -519,7 +594,7 @@ namespace Elwig.Windows {
|
||||
GenerateButton.IsEnabled = false;
|
||||
|
||||
DisposeDocs();
|
||||
await UpdateTextParameters();
|
||||
await UpdateClientParameters();
|
||||
|
||||
using var ctx = new AppDbContext();
|
||||
|
||||
@ -562,8 +637,7 @@ namespace Elwig.Windows {
|
||||
Dictionary<(int, int), (IDictionary<int, CreditNoteDeliveryData>, IDictionary<int, PaymentMember>, BillingData)> cnData = [];
|
||||
foreach (var doc in docs) {
|
||||
if (doc.Type == DocType.DeliveryConfirmation) {
|
||||
var details = ((int, bool))doc.Details!;
|
||||
var year = details.Item1;
|
||||
var year = (int)doc.Details!;
|
||||
|
||||
try {
|
||||
var b = new Billing(year);
|
||||
@ -610,13 +684,11 @@ namespace Elwig.Windows {
|
||||
} else if (doc.Type == DocType.MemberDataSheet) {
|
||||
return [new GeneratedDoc(new MemberDataSheet(m, ctx) { Date = postalDate })];
|
||||
} else if (doc.Type == DocType.DeliveryConfirmation) {
|
||||
var details = ((int, bool))doc.Details!;
|
||||
var year = details.Item1;
|
||||
var include = details.Item2;
|
||||
var year = (int)doc.Details!;
|
||||
DeliveryConfirmationDeliveryData data;
|
||||
if (dcData[year].TryGetValue(m.MgNr, out var d)) {
|
||||
data = d;
|
||||
} else if (include) {
|
||||
} else if (App.Client.MailIncludeNonDeliverers) {
|
||||
data = DeliveryConfirmationDeliveryData.CreateEmpty(year, m);
|
||||
} else {
|
||||
return [];
|
||||
@ -727,6 +799,8 @@ namespace Elwig.Windows {
|
||||
Mouse.OverrideCursor = null;
|
||||
return;
|
||||
}
|
||||
} else {
|
||||
PrintDocument = null;
|
||||
}
|
||||
ProgressBar.Value = 100.0;
|
||||
|
||||
|
Reference in New Issue
Block a user