MailWindow: Add try/catch block around document creation
This commit is contained in:
@ -427,41 +427,46 @@ namespace Elwig.Windows {
|
||||
var memberDocs = recipients.Select(m => new {
|
||||
Member = m,
|
||||
Docs = docs.SelectMany<SelectedDoc, GeneratedDoc>(doc => {
|
||||
if (doc.Type == DocType.Custom) {
|
||||
return [new GeneratedDoc((string)doc.Details!)];
|
||||
} else if (doc.Type == DocType.MemberDataSheet) {
|
||||
return [new GeneratedDoc(new MemberDataSheet(m, Context))];
|
||||
} else if (doc.Type == DocType.DeliveryConfirmation) {
|
||||
var details = ((int, bool))doc.Details!;
|
||||
var year = details.Item1;
|
||||
var include = details.Item2;
|
||||
DeliveryConfirmationDeliveryData data;
|
||||
if (dcData[year].TryGetValue(m.MgNr, out var d)) {
|
||||
data = d;
|
||||
} else if (include) {
|
||||
data = DeliveryConfirmationDeliveryData.CreateEmpty(year, m);
|
||||
} else {
|
||||
return [];
|
||||
}
|
||||
return [new GeneratedDoc(new DeliveryConfirmation(Context, year, m, data))];
|
||||
} else if (doc.Type == DocType.CreditNote) {
|
||||
var details = ((int, int))doc.Details!;
|
||||
var year = details.Item1;
|
||||
var avnr = details.Item2;
|
||||
var data = cnData[(year, avnr)];
|
||||
try {
|
||||
return [new GeneratedDoc(new CreditNote(
|
||||
try {
|
||||
if (doc.Type == DocType.Custom) {
|
||||
return [new GeneratedDoc((string)doc.Details!)];
|
||||
} else if (doc.Type == DocType.MemberDataSheet) {
|
||||
return [new GeneratedDoc(new MemberDataSheet(m, Context))];
|
||||
} else if (doc.Type == DocType.DeliveryConfirmation) {
|
||||
var details = ((int, bool))doc.Details!;
|
||||
var year = details.Item1;
|
||||
var include = details.Item2;
|
||||
DeliveryConfirmationDeliveryData data;
|
||||
if (dcData[year].TryGetValue(m.MgNr, out var d)) {
|
||||
data = d;
|
||||
} else if (include) {
|
||||
data = DeliveryConfirmationDeliveryData.CreateEmpty(year, m);
|
||||
} else {
|
||||
return [];
|
||||
}
|
||||
return [new GeneratedDoc(new DeliveryConfirmation(Context, year, m, data))];
|
||||
} else if (doc.Type == DocType.CreditNote) {
|
||||
var details = ((int, int))doc.Details!;
|
||||
var year = details.Item1;
|
||||
var avnr = details.Item2;
|
||||
var data = cnData[(year, avnr)];
|
||||
try {
|
||||
return [new GeneratedDoc(new CreditNote(
|
||||
Context, data.Item2[m.MgNr], data.Item1[m.MgNr],
|
||||
data.Item3.ConsiderContractPenalties,
|
||||
data.Item3.ConsiderTotalPenalty,
|
||||
data.Item3.ConsiderAutoBusinessShares,
|
||||
Context.GetMemberUnderDelivery(year, m.MgNr).GetAwaiter().GetResult()
|
||||
))];
|
||||
} catch (Exception) {
|
||||
return [];
|
||||
} catch (Exception) {
|
||||
return [];
|
||||
}
|
||||
} else {
|
||||
throw new NotImplementedException("Invalid DocType");
|
||||
}
|
||||
} else {
|
||||
throw new NotImplementedException("Invalid DocType");
|
||||
} catch (Exception exc) {
|
||||
MessageBox.Show(exc.Message, "Fehler", MessageBoxButton.OK, MessageBoxImage.Error);
|
||||
return [];
|
||||
}
|
||||
}).ToList()
|
||||
}).ToList();
|
||||
|
Reference in New Issue
Block a user