Compare commits
5 Commits
64832e9a53
...
8ff576257b
Author | SHA1 | Date | |
---|---|---|---|
8ff576257b | |||
6eaa928147 | |||
070dda1bde | |||
b6bfc60ab8 | |||
8aaa22fcb4 |
@@ -211,7 +211,8 @@ namespace Elwig.Services {
|
|||||||
int newMgNr = vm.MgNr!.Value;
|
int newMgNr = vm.MgNr!.Value;
|
||||||
string newSortId = vm.SortId!;
|
string newSortId = vm.SortId!;
|
||||||
|
|
||||||
using (var ctx = new AppDbContext()) {
|
await Task.Run(async () => {
|
||||||
|
using var ctx = new AppDbContext();
|
||||||
var a = new DeliveryAncmt {
|
var a = new DeliveryAncmt {
|
||||||
Year = oldYear ?? year,
|
Year = oldYear ?? year,
|
||||||
DsNr = oldDsNr ?? dsnr,
|
DsNr = oldDsNr ?? dsnr,
|
||||||
@@ -232,7 +233,7 @@ namespace Elwig.Services {
|
|||||||
if (oldDsNr != null && (oldYear != year || oldDsNr != dsnr || oldMgNr != newMgNr || oldSortId != newSortId)) {
|
if (oldDsNr != null && (oldYear != year || oldDsNr != dsnr || oldMgNr != newMgNr || oldSortId != newSortId)) {
|
||||||
await ctx.Database.ExecuteSqlAsync($"UPDATE delivery_announcement SET year = {year}, dsnr = {dsnr}, mgnr = {newMgNr}, sortid = {newSortId} WHERE (year, dsnr, mgnr, sortid) = ({a.Year}, {a.DsNr}, {a.MgNr}, {a.SortId})");
|
await ctx.Database.ExecuteSqlAsync($"UPDATE delivery_announcement SET year = {year}, dsnr = {dsnr}, mgnr = {newMgNr}, sortid = {newSortId} WHERE (year, dsnr, mgnr, sortid) = ({a.Year}, {a.DsNr}, {a.MgNr}, {a.SortId})");
|
||||||
}
|
}
|
||||||
}
|
});
|
||||||
|
|
||||||
App.HintContextChange();
|
App.HintContextChange();
|
||||||
|
|
||||||
@@ -269,25 +270,29 @@ namespace Elwig.Services {
|
|||||||
Title = $"{DeliveryAncmtList.Name} speichern unter - Elwig"
|
Title = $"{DeliveryAncmtList.Name} speichern unter - Elwig"
|
||||||
};
|
};
|
||||||
if (d.ShowDialog() == true) {
|
if (d.ShowDialog() == true) {
|
||||||
Mouse.OverrideCursor = Cursors.AppStarting;
|
Mouse.OverrideCursor = Cursors.Wait;
|
||||||
try {
|
await Task.Run(async () => {
|
||||||
var data = await DeliveryAncmtListData.FromQuery(query, filterNames);
|
try {
|
||||||
using var ods = new OdsFile(d.FileName);
|
var data = await DeliveryAncmtListData.FromQuery(query, filterNames);
|
||||||
await ods.AddTable(data);
|
using var ods = new OdsFile(d.FileName);
|
||||||
} catch (Exception exc) {
|
await ods.AddTable(data);
|
||||||
MessageBox.Show(exc.Message, "Fehler", MessageBoxButton.OK, MessageBoxImage.Error);
|
} catch (Exception exc) {
|
||||||
}
|
MessageBox.Show(exc.Message, "Fehler", MessageBoxButton.OK, MessageBoxImage.Error);
|
||||||
|
}
|
||||||
|
});
|
||||||
Mouse.OverrideCursor = null;
|
Mouse.OverrideCursor = null;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
Mouse.OverrideCursor = Cursors.AppStarting;
|
Mouse.OverrideCursor = Cursors.Wait;
|
||||||
try {
|
await Task.Run(async () => {
|
||||||
var data = await DeliveryAncmtListData.FromQuery(query, filterNames);
|
try {
|
||||||
using var doc = new DeliveryAncmtList(string.Join(" / ", filterNames), data);
|
var data = await DeliveryAncmtListData.FromQuery(query, filterNames);
|
||||||
await Utils.ExportDocument(doc, mode);
|
using var doc = new DeliveryAncmtList(string.Join(" / ", filterNames), data);
|
||||||
} catch (Exception exc) {
|
await Utils.ExportDocument(doc, mode);
|
||||||
MessageBox.Show(exc.Message, "Fehler", MessageBoxButton.OK, MessageBoxImage.Error);
|
} catch (Exception exc) {
|
||||||
}
|
MessageBox.Show(exc.Message, "Fehler", MessageBoxButton.OK, MessageBoxImage.Error);
|
||||||
|
}
|
||||||
|
});
|
||||||
Mouse.OverrideCursor = null;
|
Mouse.OverrideCursor = null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -152,7 +152,8 @@ namespace Elwig.Services {
|
|||||||
public static async Task UpdateDeliverySchedule(this DeliveryScheduleAdminViewModel vm, int? oldYear, int? oldDsNr) {
|
public static async Task UpdateDeliverySchedule(this DeliveryScheduleAdminViewModel vm, int? oldYear, int? oldDsNr) {
|
||||||
int year = vm.Date!.Value.Year;
|
int year = vm.Date!.Value.Year;
|
||||||
|
|
||||||
using (var ctx = new AppDbContext()) {
|
await Task.Run(async () => {
|
||||||
|
using var ctx = new AppDbContext();
|
||||||
var s = new DeliverySchedule {
|
var s = new DeliverySchedule {
|
||||||
Year = oldYear ?? year,
|
Year = oldYear ?? year,
|
||||||
DsNr = oldDsNr ?? await ctx.NextDsNr(year),
|
DsNr = oldDsNr ?? await ctx.NextDsNr(year),
|
||||||
@@ -181,7 +182,7 @@ namespace Elwig.Services {
|
|||||||
.ToList(), vm.MainVarieties.Select(v => (v, 1)).Union(vm.OtherVarieties.Select(v => (v, 2))).ToList());
|
.ToList(), vm.MainVarieties.Select(v => (v, 1)).Union(vm.OtherVarieties.Select(v => (v, 2))).ToList());
|
||||||
|
|
||||||
await ctx.SaveChangesAsync();
|
await ctx.SaveChangesAsync();
|
||||||
}
|
});
|
||||||
|
|
||||||
App.HintContextChange();
|
App.HintContextChange();
|
||||||
}
|
}
|
||||||
|
@@ -639,10 +639,11 @@ namespace Elwig.Windows {
|
|||||||
|
|
||||||
private async void SaveButton_Click(object sender, RoutedEventArgs e) {
|
private async void SaveButton_Click(object sender, RoutedEventArgs e) {
|
||||||
SaveButton.IsEnabled = false;
|
SaveButton.IsEnabled = false;
|
||||||
Mouse.OverrideCursor = Cursors.AppStarting;
|
Mouse.OverrideCursor = Cursors.Wait;
|
||||||
|
|
||||||
try {
|
try {
|
||||||
using (var ctx = new AppDbContext()) {
|
await Task.Run(async () => {
|
||||||
|
using var ctx = new AppDbContext();
|
||||||
var origData = BillingData.FromJson(PaymentVar.Data);
|
var origData = BillingData.FromJson(PaymentVar.Data);
|
||||||
var data = BillingData.FromGraphEntries(GraphEntries, origData, Utils.GetVaributes(ctx, Year),
|
var data = BillingData.FromGraphEntries(GraphEntries, origData, Utils.GetVaributes(ctx, Year),
|
||||||
AllVaributesAssigned, AllVaributesAssignedAbgew);
|
AllVaributesAssigned, AllVaributesAssignedAbgew);
|
||||||
@@ -650,27 +651,31 @@ namespace Elwig.Windows {
|
|||||||
PaymentVar.Data = data.ToJsonString();
|
PaymentVar.Data = data.ToJsonString();
|
||||||
ctx.Update(PaymentVar);
|
ctx.Update(PaymentVar);
|
||||||
await ctx.SaveChangesAsync();
|
await ctx.SaveChangesAsync();
|
||||||
}
|
});
|
||||||
try {
|
|
||||||
var b = new BillingVariant(PaymentVar.Year, PaymentVar.AvNr);
|
|
||||||
await b.Calculate();
|
|
||||||
} catch (Exception exc) {
|
|
||||||
MessageBox.Show(exc.Message, "Berechnungsfehler", MessageBoxButton.OK, MessageBoxImage.Error);
|
|
||||||
}
|
|
||||||
LockContext = false;
|
|
||||||
App.HintContextChange();
|
|
||||||
} catch (Exception exc) {
|
} catch (Exception exc) {
|
||||||
|
Mouse.OverrideCursor = null;
|
||||||
var str = "Der Eintrag konnte nicht in der Datenbank gespeichert werden!\n\n" + exc.Message;
|
var str = "Der Eintrag konnte nicht in der Datenbank gespeichert werden!\n\n" + exc.Message;
|
||||||
if (exc.InnerException != null) str += "\n\n" + exc.InnerException.Message;
|
if (exc.InnerException != null) str += "\n\n" + exc.InnerException.Message;
|
||||||
MessageBox.Show(str, "Auszahlungsvariante speichern", MessageBoxButton.OK, MessageBoxImage.Error);
|
MessageBox.Show(str, "Auszahlungsvariante speichern", MessageBoxButton.OK, MessageBoxImage.Error);
|
||||||
SaveButton.IsEnabled = true;
|
SaveButton.IsEnabled = true;
|
||||||
return;
|
return;
|
||||||
} finally {
|
|
||||||
Mouse.OverrideCursor = null;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
await Task.Run(async () => {
|
||||||
|
var b = new BillingVariant(PaymentVar.Year, PaymentVar.AvNr);
|
||||||
|
await b.Calculate();
|
||||||
|
});
|
||||||
|
} catch (Exception exc) {
|
||||||
|
MessageBox.Show(exc.Message, "Berechnungsfehler", MessageBoxButton.OK, MessageBoxImage.Error);
|
||||||
|
}
|
||||||
|
|
||||||
|
LockContext = false;
|
||||||
|
App.HintContextChange();
|
||||||
LockContext = true;
|
LockContext = true;
|
||||||
SetHasChanged(false);
|
SetHasChanged(false);
|
||||||
|
|
||||||
|
Mouse.OverrideCursor = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void EnableTextBox(TextBox u) {
|
private void EnableTextBox(TextBox u) {
|
||||||
|
@@ -317,18 +317,19 @@ namespace Elwig.Windows {
|
|||||||
$"Soll die Anmeldung wirklich unwiderruflich gelöscht werden?",
|
$"Soll die Anmeldung wirklich unwiderruflich gelöscht werden?",
|
||||||
"Anmeldung löschen", MessageBoxButton.OKCancel, MessageBoxImage.Warning, MessageBoxResult.Cancel);
|
"Anmeldung löschen", MessageBoxButton.OKCancel, MessageBoxImage.Warning, MessageBoxResult.Cancel);
|
||||||
if (r == MessageBoxResult.OK) {
|
if (r == MessageBoxResult.OK) {
|
||||||
Mouse.OverrideCursor = Cursors.AppStarting;
|
Mouse.OverrideCursor = Cursors.Wait;
|
||||||
try {
|
await Task.Run(async () => {
|
||||||
using (var ctx = new AppDbContext()) {
|
try {
|
||||||
|
using var ctx = new AppDbContext();
|
||||||
ctx.Remove(a);
|
ctx.Remove(a);
|
||||||
await ctx.SaveChangesAsync();
|
await ctx.SaveChangesAsync();
|
||||||
|
} catch (Exception exc) {
|
||||||
|
var str = "Der Eintrag konnte nicht in der Datenbank aktualisiert werden!\n\n" + exc.Message;
|
||||||
|
if (exc.InnerException != null) str += "\n\n" + exc.InnerException.Message;
|
||||||
|
MessageBox.Show(str, "Anmeldung löschen", MessageBoxButton.OK, MessageBoxImage.Error);
|
||||||
}
|
}
|
||||||
App.HintContextChange();
|
});
|
||||||
} catch (Exception exc) {
|
App.HintContextChange();
|
||||||
var str = "Der Eintrag konnte nicht in der Datenbank aktualisiert werden!\n\n" + exc.Message;
|
|
||||||
if (exc.InnerException != null) str += "\n\n" + exc.InnerException.Message;
|
|
||||||
MessageBox.Show(str, "Anmeldung löschen", MessageBoxButton.OK, MessageBoxImage.Error);
|
|
||||||
}
|
|
||||||
Mouse.OverrideCursor = null;
|
Mouse.OverrideCursor = null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -340,7 +341,7 @@ namespace Elwig.Windows {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private async void SaveButton_Click(object? sender, RoutedEventArgs? evt) {
|
private async void SaveButton_Click(object? sender, RoutedEventArgs? evt) {
|
||||||
Mouse.OverrideCursor = Cursors.AppStarting;
|
Mouse.OverrideCursor = Cursors.Wait;
|
||||||
SaveButton.IsEnabled = false;
|
SaveButton.IsEnabled = false;
|
||||||
|
|
||||||
int year = -1, dsnr = -1, mgnr = -1;
|
int year = -1, dsnr = -1, mgnr = -1;
|
||||||
|
@@ -177,18 +177,19 @@ namespace Elwig.Windows {
|
|||||||
$"Soll der Leseplan \"{s.Description}\" vom {s.Date:dd.MM.yyyy} wirklich unwiderruflich gelöscht werden?",
|
$"Soll der Leseplan \"{s.Description}\" vom {s.Date:dd.MM.yyyy} wirklich unwiderruflich gelöscht werden?",
|
||||||
"Leseplan löschen", MessageBoxButton.OKCancel, MessageBoxImage.Warning, MessageBoxResult.Cancel);
|
"Leseplan löschen", MessageBoxButton.OKCancel, MessageBoxImage.Warning, MessageBoxResult.Cancel);
|
||||||
if (r == MessageBoxResult.OK) {
|
if (r == MessageBoxResult.OK) {
|
||||||
Mouse.OverrideCursor = Cursors.AppStarting;
|
Mouse.OverrideCursor = Cursors.Wait;
|
||||||
try {
|
await Task.Run(async () => {
|
||||||
using (var ctx = new AppDbContext()) {
|
try {
|
||||||
|
using var ctx = new AppDbContext();
|
||||||
ctx.Remove(s);
|
ctx.Remove(s);
|
||||||
await ctx.SaveChangesAsync();
|
await ctx.SaveChangesAsync();
|
||||||
|
} catch (Exception exc) {
|
||||||
|
var str = "Der Eintrag konnte nicht in der Datenbank aktualisiert werden!\n\n" + exc.Message;
|
||||||
|
if (exc.InnerException != null) str += "\n\n" + exc.InnerException.Message;
|
||||||
|
MessageBox.Show(str, "Leseplan löschen", MessageBoxButton.OK, MessageBoxImage.Error);
|
||||||
}
|
}
|
||||||
App.HintContextChange();
|
});
|
||||||
} catch (Exception exc) {
|
App.HintContextChange();
|
||||||
var str = "Der Eintrag konnte nicht in der Datenbank aktualisiert werden!\n\n" + exc.Message;
|
|
||||||
if (exc.InnerException != null) str += "\n\n" + exc.InnerException.Message;
|
|
||||||
MessageBox.Show(str, "Leseplan löschen", MessageBoxButton.OK, MessageBoxImage.Error);
|
|
||||||
}
|
|
||||||
Mouse.OverrideCursor = null;
|
Mouse.OverrideCursor = null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -200,7 +201,7 @@ namespace Elwig.Windows {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private async void SaveButton_Click(object? sender, RoutedEventArgs? evt) {
|
private async void SaveButton_Click(object? sender, RoutedEventArgs? evt) {
|
||||||
Mouse.OverrideCursor = Cursors.AppStarting;
|
Mouse.OverrideCursor = Cursors.Wait;
|
||||||
SaveButton.IsEnabled = false;
|
SaveButton.IsEnabled = false;
|
||||||
|
|
||||||
try {
|
try {
|
||||||
|
@@ -602,7 +602,7 @@ namespace Elwig.Windows {
|
|||||||
PreviewButton.IsEnabled = false;
|
PreviewButton.IsEnabled = false;
|
||||||
PrintButton.IsEnabled = false;
|
PrintButton.IsEnabled = false;
|
||||||
EmailButton.IsEnabled = false;
|
EmailButton.IsEnabled = false;
|
||||||
Mouse.OverrideCursor = Cursors.AppStarting;
|
Mouse.OverrideCursor = Cursors.Wait;
|
||||||
GenerateButton.IsEnabled = false;
|
GenerateButton.IsEnabled = false;
|
||||||
|
|
||||||
DisposeDocs();
|
DisposeDocs();
|
||||||
@@ -828,25 +828,27 @@ namespace Elwig.Windows {
|
|||||||
EmailButton.IsEnabled = EmailDocuments != null && App.Config.Smtp != null;
|
EmailButton.IsEnabled = EmailDocuments != null && App.Config.Smtp != null;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void PreviewButton_Click(object sender, RoutedEventArgs evt) {
|
private async void PreviewButton_Click(object sender, RoutedEventArgs evt) {
|
||||||
var d = new OpenFolderDialog() {
|
var d = new OpenFolderDialog() {
|
||||||
Title = "Ordner auswählen - Elwig",
|
Title = "Ordner auswählen - Elwig",
|
||||||
};
|
};
|
||||||
if (d.ShowDialog() == true) {
|
if (d.ShowDialog() == true) {
|
||||||
Mouse.OverrideCursor = Cursors.AppStarting;
|
Mouse.OverrideCursor = Cursors.Wait;
|
||||||
PrintDocument?.SaveTo($"{d.FolderName}/Print.pdf");
|
await Task.Run(() => {
|
||||||
if (EmailDocuments != null) {
|
PrintDocument?.SaveTo($"{d.FolderName}/Print.pdf");
|
||||||
foreach (var (m, docs) in EmailDocuments) {
|
if (EmailDocuments != null) {
|
||||||
var folder = $"{d.FolderName}/E-Mail/{m.AdministrativeName.Trim()}";
|
foreach (var (m, docs) in EmailDocuments) {
|
||||||
Directory.CreateDirectory(folder);
|
var folder = $"{d.FolderName}/E-Mail/{m.AdministrativeName.Trim()}";
|
||||||
foreach (var item in docs.Select((d, i) => new { Index = i, Doc = d })) {
|
Directory.CreateDirectory(folder);
|
||||||
var doc = item.Doc;
|
foreach (var item in docs.Select((d, i) => new { Index = i, Doc = d })) {
|
||||||
var name = Utils.NormalizeFileName(doc.Title);
|
var doc = item.Doc;
|
||||||
doc.SaveTo($"{folder}/{item.Index + 1:00}.{name}.pdf");
|
var name = Utils.NormalizeFileName(doc.Title);
|
||||||
}
|
doc.SaveTo($"{folder}/{item.Index + 1:00}.{name}.pdf");
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
});
|
||||||
Mouse.OverrideCursor = null;
|
Mouse.OverrideCursor = null;
|
||||||
Process.Start("explorer.exe", d.FolderName);
|
Process.Start("explorer.exe", d.FolderName);
|
||||||
}
|
}
|
||||||
@@ -862,20 +864,22 @@ namespace Elwig.Windows {
|
|||||||
var res = MessageBox.Show($"Sollen {PrintDocument.Pages} Blätter ({PrintDocument.TotalPages} Seiten) gedruckt werden?",
|
var res = MessageBox.Show($"Sollen {PrintDocument.Pages} Blätter ({PrintDocument.TotalPages} Seiten) gedruckt werden?",
|
||||||
"Rundschreiben drucken", MessageBoxButton.YesNo, MessageBoxImage.Question, MessageBoxResult.No);
|
"Rundschreiben drucken", MessageBoxButton.YesNo, MessageBoxImage.Question, MessageBoxResult.No);
|
||||||
if (res == MessageBoxResult.Yes) {
|
if (res == MessageBoxResult.Yes) {
|
||||||
Mouse.OverrideCursor = Cursors.AppStarting;
|
Mouse.OverrideCursor = Cursors.Wait;
|
||||||
if (App.Config.Debug) {
|
await Task.Run(async () => {
|
||||||
PrintDocument.Show();
|
if (App.Config.Debug) {
|
||||||
} else {
|
PrintDocument.Show();
|
||||||
await PrintDocument.Print();
|
} else {
|
||||||
await Utils.AddSentMails(
|
await PrintDocument.Print();
|
||||||
PrintMemberDocuments.Select(d => (
|
await Utils.AddSentMails(
|
||||||
"postal", d.Key.MgNr, d.Key.AdministrativeName,
|
PrintMemberDocuments.Select(d => (
|
||||||
new string[] { d.Value.Select(d => (d as BusinessDocument)?.Address).FirstOrDefault(a => a != null) ?? d.Key.FullAddress },
|
"postal", d.Key.MgNr, d.Key.AdministrativeName,
|
||||||
d.Value.Select(d => d.Title).FirstOrDefault("Briefkopf"),
|
new string[] { d.Value.Select(d => (d as BusinessDocument)?.Address).FirstOrDefault(a => a != null) ?? d.Key.FullAddress },
|
||||||
d.Value.Select(d => d.Title).ToArray()
|
d.Value.Select(d => d.Title).FirstOrDefault("Briefkopf"),
|
||||||
))
|
d.Value.Select(d => d.Title).ToArray()
|
||||||
);
|
))
|
||||||
}
|
);
|
||||||
|
}
|
||||||
|
});
|
||||||
Mouse.OverrideCursor = null;
|
Mouse.OverrideCursor = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -893,8 +897,8 @@ namespace Elwig.Windows {
|
|||||||
|
|
||||||
SmtpClient? client = null;
|
SmtpClient? client = null;
|
||||||
try {
|
try {
|
||||||
Mouse.OverrideCursor = Cursors.AppStarting;
|
Mouse.OverrideCursor = Cursors.Wait;
|
||||||
client = await Utils.GetSmtpClient();
|
client = await Task.Run(Utils.GetSmtpClient);
|
||||||
Mouse.OverrideCursor = null;
|
Mouse.OverrideCursor = null;
|
||||||
|
|
||||||
var res = MessageBox.Show($"Sollen {EmailDocuments.Count:N0} E-Mails verschickt werden?",
|
var res = MessageBox.Show($"Sollen {EmailDocuments.Count:N0} E-Mails verschickt werden?",
|
||||||
@@ -903,31 +907,33 @@ namespace Elwig.Windows {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
Mouse.OverrideCursor = Cursors.AppStarting;
|
Mouse.OverrideCursor = Cursors.Wait;
|
||||||
var subject = EmailSubjectInput.Text;
|
var subject = EmailSubjectInput.Text;
|
||||||
var text = EmailBodyInput.Text;
|
var text = EmailBodyInput.Text;
|
||||||
await Utils.AddSentMailBody(subject, text, EmailDocuments.Count);
|
await Task.Run(async () => {
|
||||||
foreach (var (m, docs) in EmailDocuments) {
|
await Utils.AddSentMailBody(subject, text, EmailDocuments.Count);
|
||||||
using var msg = new MimeMessage();
|
foreach (var (m, docs) in EmailDocuments) {
|
||||||
msg.From.Add(new MailboxAddress(App.Client.NameFull, App.Config.Smtp.Value.From));
|
using var msg = new MimeMessage();
|
||||||
msg.To.AddRange(m.EmailAddresses.OrderBy(a => a.Nr).Select(a => new MailboxAddress(m.AdministrativeName, a.Address)));
|
msg.From.Add(new MailboxAddress(App.Client.NameFull, App.Config.Smtp.Value.From));
|
||||||
msg.Subject = subject;
|
msg.To.AddRange(m.EmailAddresses.OrderBy(a => a.Nr).Select(a => new MailboxAddress(m.AdministrativeName, a.Address)));
|
||||||
var body = new Multipart("mixed") {
|
msg.Subject = subject;
|
||||||
new TextPart("plain") { Text = text }
|
var body = new Multipart("mixed") {
|
||||||
};
|
new TextPart("plain") { Text = text }
|
||||||
foreach (var doc in docs) {
|
};
|
||||||
var name = Utils.NormalizeFileName(doc.Title);
|
foreach (var doc in docs) {
|
||||||
body.Add(doc.AsEmailAttachment($"{name}.pdf"));
|
var name = Utils.NormalizeFileName(doc.Title);
|
||||||
|
body.Add(doc.AsEmailAttachment($"{name}.pdf"));
|
||||||
|
}
|
||||||
|
msg.Body = body;
|
||||||
|
await client!.SendAsync(msg);
|
||||||
|
await Utils.AddSentMails([(
|
||||||
|
"email", m.MgNr, m.AdministrativeName,
|
||||||
|
m.EmailAddresses.OrderBy(a => a.Nr).Select(a => a.Address).ToArray(),
|
||||||
|
subject,
|
||||||
|
docs.Select(d => d.Title).ToArray()
|
||||||
|
)]);
|
||||||
}
|
}
|
||||||
msg.Body = body;
|
});
|
||||||
await client!.SendAsync(msg);
|
|
||||||
await Utils.AddSentMails([(
|
|
||||||
"email", m.MgNr, m.AdministrativeName,
|
|
||||||
m.EmailAddresses.OrderBy(a => a.Nr).Select(a => a.Address).ToArray(),
|
|
||||||
subject,
|
|
||||||
docs.Select(d => d.Title).ToArray()
|
|
||||||
)]);
|
|
||||||
}
|
|
||||||
|
|
||||||
MessageBox.Show("Erfolgreich alle E-Mails verschickt!", "Rundschreiben verschicken", MessageBoxButton.OK, MessageBoxImage.Information);
|
MessageBox.Show("Erfolgreich alle E-Mails verschickt!", "Rundschreiben verschicken", MessageBoxButton.OK, MessageBoxImage.Information);
|
||||||
} catch (Exception exc) {
|
} catch (Exception exc) {
|
||||||
|
@@ -156,7 +156,7 @@ namespace Elwig.Windows {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private async void AutoAdjustBsButton_Click(object sender, RoutedEventArgs evt) {
|
private async void AutoAdjustBsButton_Click(object sender, RoutedEventArgs evt) {
|
||||||
Mouse.OverrideCursor = Cursors.AppStarting;
|
Mouse.OverrideCursor = Cursors.Wait;
|
||||||
try {
|
try {
|
||||||
int? kg = AllowanceKgInput.Text == "" ? null : int.Parse(AllowanceKgInput.Text);
|
int? kg = AllowanceKgInput.Text == "" ? null : int.Parse(AllowanceKgInput.Text);
|
||||||
double? bs = AllowanceBsInput.Text == "" ? null : double.Parse(AllowanceBsInput.Text);
|
double? bs = AllowanceBsInput.Text == "" ? null : double.Parse(AllowanceBsInput.Text);
|
||||||
@@ -169,10 +169,12 @@ namespace Elwig.Windows {
|
|||||||
App.Client.AutoAdjustBs.AllowanceKgPerBs = kgPerBs;
|
App.Client.AutoAdjustBs.AllowanceKgPerBs = kgPerBs;
|
||||||
App.Client.AutoAdjustBs.AllowancePercent = percent;
|
App.Client.AutoAdjustBs.AllowancePercent = percent;
|
||||||
App.Client.AutoAdjustBs.MinBs = minBs;
|
App.Client.AutoAdjustBs.MinBs = minBs;
|
||||||
await App.Client.UpdateValues();
|
|
||||||
|
|
||||||
var b = new Billing(Year);
|
await Task.Run(async () => {
|
||||||
await b.AutoAdjustBusinessShares(new DateOnly(Year, 11, 30), kg ?? default, bs ?? default, kgPerBs ?? default, percent / 100.0 ?? default, minBs ?? default);
|
await App.Client.UpdateValues();
|
||||||
|
var b = new Billing(Year);
|
||||||
|
await b.AutoAdjustBusinessShares(new DateOnly(Year, 11, 30), kg ?? default, bs ?? default, kgPerBs ?? default, percent / 100.0 ?? default, minBs ?? default);
|
||||||
|
});
|
||||||
App.HintContextChange();
|
App.HintContextChange();
|
||||||
} catch (Exception exc) {
|
} catch (Exception exc) {
|
||||||
var str = "Der Eintrag konnte nicht in der Datenbank aktualisiert werden!\n\n" + exc.Message;
|
var str = "Der Eintrag konnte nicht in der Datenbank aktualisiert werden!\n\n" + exc.Message;
|
||||||
@@ -183,10 +185,12 @@ namespace Elwig.Windows {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private async void UnAdjustBsButton_Click(object sender, RoutedEventArgs evt) {
|
private async void UnAdjustBsButton_Click(object sender, RoutedEventArgs evt) {
|
||||||
Mouse.OverrideCursor = Cursors.AppStarting;
|
Mouse.OverrideCursor = Cursors.Wait;
|
||||||
try {
|
try {
|
||||||
var b = new Billing(Year);
|
await Task.Run(async () => {
|
||||||
await b.UnAdjustBusinessShares();
|
var b = new Billing(Year);
|
||||||
|
await b.UnAdjustBusinessShares();
|
||||||
|
});
|
||||||
App.HintContextChange();
|
App.HintContextChange();
|
||||||
} catch (Exception exc) {
|
} catch (Exception exc) {
|
||||||
var str = "Der Eintrag konnte nicht in der Datenbank aktualisiert werden!\n\n" + exc.Message;
|
var str = "Der Eintrag konnte nicht in der Datenbank aktualisiert werden!\n\n" + exc.Message;
|
||||||
@@ -281,29 +285,31 @@ namespace Elwig.Windows {
|
|||||||
|
|
||||||
private async void CustomButton_Click(object sender, RoutedEventArgs evt) {
|
private async void CustomButton_Click(object sender, RoutedEventArgs evt) {
|
||||||
if (MemberInput.SelectedItem is not Member m) return;
|
if (MemberInput.SelectedItem is not Member m) return;
|
||||||
Mouse.OverrideCursor = Cursors.AppStarting;
|
Mouse.OverrideCursor = Cursors.Wait;
|
||||||
try {
|
try {
|
||||||
using var ctx = new AppDbContext();
|
await Task.Run(async () => {
|
||||||
if (CustomPayments?.TryGetValue(m.MgNr, out var p) == true) {
|
using var ctx = new AppDbContext();
|
||||||
ctx.Remove(p);
|
if (CustomPayments?.TryGetValue(m.MgNr, out var p) == true) {
|
||||||
}
|
ctx.Remove(p);
|
||||||
if (sender == SaveCustomButton) {
|
}
|
||||||
var modAbs = decimal.TryParse(CustomModAbsInput.Text, out var n1) ? (decimal?)n1 : null;
|
if (sender == SaveCustomButton) {
|
||||||
var modRel = decimal.TryParse(CustomModRelInput.Text, out var n2) ? (decimal?)n2 / 100 : null;
|
var modAbs = decimal.TryParse(CustomModAbsInput.Text, out var n1) ? (decimal?)n1 : null;
|
||||||
var amount = decimal.TryParse(CustomAmountInput.Text, out var n3) ? (decimal?)n3 : null;
|
var modRel = decimal.TryParse(CustomModRelInput.Text, out var n2) ? (decimal?)n2 / 100 : null;
|
||||||
var modText = CustomModCommentInput.Text.Trim();
|
var amount = decimal.TryParse(CustomAmountInput.Text, out var n3) ? (decimal?)n3 : null;
|
||||||
var text = CustomCommentInput.Text.Trim();
|
var modText = CustomModCommentInput.Text.Trim();
|
||||||
ctx.Add(new PaymentCustom {
|
var text = CustomCommentInput.Text.Trim();
|
||||||
MgNr = m.MgNr,
|
ctx.Add(new PaymentCustom {
|
||||||
Year = Year,
|
MgNr = m.MgNr,
|
||||||
ModAbs = modAbs,
|
Year = Year,
|
||||||
ModRel = modRel,
|
ModAbs = modAbs,
|
||||||
ModComment = modText == "" ? null : modText,
|
ModRel = modRel,
|
||||||
Amount = amount,
|
ModComment = modText == "" ? null : modText,
|
||||||
Comment = text == "" ? null : text,
|
Amount = amount,
|
||||||
});
|
Comment = text == "" ? null : text,
|
||||||
}
|
});
|
||||||
await ctx.SaveChangesAsync();
|
}
|
||||||
|
await ctx.SaveChangesAsync();
|
||||||
|
});
|
||||||
} catch (Exception exc) {
|
} catch (Exception exc) {
|
||||||
var str = "Der Eintrag konnte nicht in der Datenbank aktualisiert werden!\n\n" + exc.Message;
|
var str = "Der Eintrag konnte nicht in der Datenbank aktualisiert werden!\n\n" + exc.Message;
|
||||||
if (exc.InnerException != null) str += "\n\n" + exc.InnerException.Message;
|
if (exc.InnerException != null) str += "\n\n" + exc.InnerException.Message;
|
||||||
|
Reference in New Issue
Block a user