Compare commits
1 Commits
Author | SHA1 | Date | |
---|---|---|---|
318fb5dc7b |
13
CHANGELOG.md
13
CHANGELOG.md
@ -3,6 +3,19 @@ Changelog
|
|||||||
=========
|
=========
|
||||||
|
|
||||||
|
|
||||||
|
[v0.13.9][v0.13.9] (2025-05-05) {#v0.13.9}
|
||||||
|
------------------------------------------
|
||||||
|
|
||||||
|
### Sonstiges {#v0.13.9-misc}
|
||||||
|
|
||||||
|
* Abhängigkeiten aktualisiert. (bf0db37872, 4af2fa256e, d1c07ee92a, 41c5288fc5)
|
||||||
|
* Automatisches Aktualisieren der Synchroisations-URL (`https://elwig.at/clients/` -> `https://sync.elwig.at/`). (e50e7337e6)
|
||||||
|
|
||||||
|
[v0.13.9]: https://git.necronda.net/winzer/elwig/releases/tag/v0.13.9
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
[v0.13.8][v0.13.8] (2025-02-21) {#v0.13.8}
|
[v0.13.8][v0.13.8] (2025-02-21) {#v0.13.8}
|
||||||
------------------------------------------
|
------------------------------------------
|
||||||
|
|
||||||
|
@ -197,12 +197,10 @@ namespace Elwig {
|
|||||||
var ch = CurrentLastWrite;
|
var ch = CurrentLastWrite;
|
||||||
if (ch > CurrentApp.LastChanged)
|
if (ch > CurrentApp.LastChanged)
|
||||||
CurrentApp.LastChanged = ch;
|
CurrentApp.LastChanged = ch;
|
||||||
MainDispatcher.Invoke(() => {
|
|
||||||
foreach (Window w in CurrentApp.Windows) {
|
foreach (Window w in CurrentApp.Windows) {
|
||||||
if (w is not ContextWindow c) continue;
|
if (w is not ContextWindow c) continue;
|
||||||
MainDispatcher.BeginInvoke(c.HintContextChange);
|
MainDispatcher.BeginInvoke(c.HintContextChange);
|
||||||
}
|
}
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void OnAutoUpdateTimer(object? sender, EventArgs? evt) {
|
private void OnAutoUpdateTimer(object? sender, EventArgs? evt) {
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
<UseWPF>true</UseWPF>
|
<UseWPF>true</UseWPF>
|
||||||
<PreserveCompilationContext>true</PreserveCompilationContext>
|
<PreserveCompilationContext>true</PreserveCompilationContext>
|
||||||
<ApplicationIcon>Resources\Images\Elwig.ico</ApplicationIcon>
|
<ApplicationIcon>Resources\Images\Elwig.ico</ApplicationIcon>
|
||||||
<Version>0.13.8</Version>
|
<Version>0.13.9</Version>
|
||||||
<SatelliteResourceLanguages>de-AT</SatelliteResourceLanguages>
|
<SatelliteResourceLanguages>de-AT</SatelliteResourceLanguages>
|
||||||
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
|
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
|
||||||
<ApplicationManifest>app.manifest</ApplicationManifest>
|
<ApplicationManifest>app.manifest</ApplicationManifest>
|
||||||
|
@ -499,11 +499,9 @@ namespace Elwig.Helpers {
|
|||||||
if (App.Config.Smtp == null)
|
if (App.Config.Smtp == null)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
Mouse.OverrideCursor = Cursors.Wait;
|
|
||||||
|
|
||||||
var success = await Task.Run(async () => {
|
|
||||||
SmtpClient? client = null;
|
SmtpClient? client = null;
|
||||||
try {
|
try {
|
||||||
|
Mouse.OverrideCursor = Cursors.AppStarting;
|
||||||
client = await GetSmtpClient();
|
client = await GetSmtpClient();
|
||||||
|
|
||||||
using var msg = new MimeMessage();
|
using var msg = new MimeMessage();
|
||||||
@ -526,12 +524,9 @@ namespace Elwig.Helpers {
|
|||||||
if (client != null)
|
if (client != null)
|
||||||
await client.DisconnectAsync(true);
|
await client.DisconnectAsync(true);
|
||||||
client?.Dispose();
|
client?.Dispose();
|
||||||
|
Mouse.OverrideCursor = null;
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
});
|
|
||||||
|
|
||||||
Mouse.OverrideCursor = null;
|
|
||||||
return success;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static async Task ExportDocument(Document doc, ExportMode mode, string? filename = null, (Member, string, string)? emailData = null) {
|
public static async Task ExportDocument(Document doc, ExportMode mode, string? filename = null, (Member, string, string)? emailData = null) {
|
||||||
|
@ -108,8 +108,7 @@ namespace Elwig.Services {
|
|||||||
public static async Task<int> UpdateAreaCommitment(this AreaComAdminViewModel vm, int? oldFbNr) {
|
public static async Task<int> UpdateAreaCommitment(this AreaComAdminViewModel vm, int? oldFbNr) {
|
||||||
int newFbNr = (int)vm.FbNr!;
|
int newFbNr = (int)vm.FbNr!;
|
||||||
|
|
||||||
await Task.Run(async () => {
|
using (var ctx = new AppDbContext()) {
|
||||||
using var ctx = new AppDbContext();
|
|
||||||
var a = new AreaCom {
|
var a = new AreaCom {
|
||||||
FbNr = oldFbNr ?? newFbNr,
|
FbNr = oldFbNr ?? newFbNr,
|
||||||
MgNr = (int)vm.MgNr!,
|
MgNr = (int)vm.MgNr!,
|
||||||
@ -141,7 +140,7 @@ namespace Elwig.Services {
|
|||||||
if (newFbNr != a.FbNr) {
|
if (newFbNr != a.FbNr) {
|
||||||
await ctx.Database.ExecuteSqlAsync($"UPDATE area_commitment SET fbnr = {newFbNr} WHERE fbnr = {oldFbNr}");
|
await ctx.Database.ExecuteSqlAsync($"UPDATE area_commitment SET fbnr = {newFbNr} WHERE fbnr = {oldFbNr}");
|
||||||
}
|
}
|
||||||
});
|
}
|
||||||
|
|
||||||
App.HintContextChange();
|
App.HintContextChange();
|
||||||
|
|
||||||
@ -254,16 +253,5 @@ namespace Elwig.Services {
|
|||||||
}
|
}
|
||||||
return grid;
|
return grid;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static async Task DeleteAreaCom(int fbnr) {
|
|
||||||
await Task.Run(async () => {
|
|
||||||
using var ctx = new AppDbContext();
|
|
||||||
var l = (await ctx.AreaCommitments.FindAsync(fbnr))!;
|
|
||||||
ctx.Remove(l);
|
|
||||||
await ctx.SaveChangesAsync();
|
|
||||||
});
|
|
||||||
|
|
||||||
App.HintContextChange();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -430,10 +430,9 @@ namespace Elwig.Services {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static async Task<DeliveryPart> UpdateDeliveryPart(this DeliveryAdminViewModel vm, int? oldYear, int? oldDid, int? oldDpnr, bool dateHasChanged, bool timeHasChanged, bool timeIsDefault) {
|
public static async Task<DeliveryPart> UpdateDeliveryPart(this DeliveryAdminViewModel vm, int? oldYear, int? oldDid, int? oldDpnr, bool dateHasChanged, bool timeHasChanged, bool timeIsDefault) {
|
||||||
var p = await Task.Run(async () => {
|
|
||||||
DeliveryPart p;
|
DeliveryPart p;
|
||||||
|
|
||||||
using var ctx = new AppDbContext();
|
using (var ctx = new AppDbContext()) {
|
||||||
int year = oldYear ?? Utils.CurrentYear;
|
int year = oldYear ?? Utils.CurrentYear;
|
||||||
int did = oldDid ?? await ctx.NextDId(year);
|
int did = oldDid ?? await ctx.NextDId(year);
|
||||||
int dpnr = oldDpnr ?? await ctx.NextDPNr(year, did);
|
int dpnr = oldDpnr ?? await ctx.NextDPNr(year, did);
|
||||||
@ -525,9 +524,7 @@ namespace Elwig.Services {
|
|||||||
}
|
}
|
||||||
|
|
||||||
await ctx.SaveChangesAsync();
|
await ctx.SaveChangesAsync();
|
||||||
|
}
|
||||||
return p;
|
|
||||||
});
|
|
||||||
|
|
||||||
App.HintContextChange();
|
App.HintContextChange();
|
||||||
|
|
||||||
@ -535,10 +532,9 @@ namespace Elwig.Services {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static async Task<Delivery> SplitDeliveryToMember(int year, int did, int[] weights, int mgnr) {
|
public static async Task<Delivery> SplitDeliveryToMember(int year, int did, int[] weights, int mgnr) {
|
||||||
var n = await Task.Run(async () => {
|
|
||||||
Delivery n;
|
Delivery n;
|
||||||
|
|
||||||
using var ctx = new AppDbContext();
|
using (var ctx = new AppDbContext()) {
|
||||||
bool anyLeft = false;
|
bool anyLeft = false;
|
||||||
var d = (await ctx.Deliveries.FindAsync(year, did))!;
|
var d = (await ctx.Deliveries.FindAsync(year, did))!;
|
||||||
var lnr = await ctx.NextLNr(d.Date, d.ZwstId);
|
var lnr = await ctx.NextLNr(d.Date, d.ZwstId);
|
||||||
@ -581,9 +577,7 @@ namespace Elwig.Services {
|
|||||||
await ctx.SaveChangesAsync();
|
await ctx.SaveChangesAsync();
|
||||||
if (!anyLeft)
|
if (!anyLeft)
|
||||||
await ctx.Database.ExecuteSqlAsync($"DELETE FROM delivery WHERE (year, did) = ({d.Year}, {d.DId})");
|
await ctx.Database.ExecuteSqlAsync($"DELETE FROM delivery WHERE (year, did) = ({d.Year}, {d.DId})");
|
||||||
|
}
|
||||||
return n;
|
|
||||||
});
|
|
||||||
|
|
||||||
App.HintContextChange();
|
App.HintContextChange();
|
||||||
|
|
||||||
@ -591,9 +585,9 @@ namespace Elwig.Services {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static async Task<Delivery> SplitDeliveryToLsNr(int year, int did, int[] weights, string lsnr) {
|
public static async Task<Delivery> SplitDeliveryToLsNr(int year, int did, int[] weights, string lsnr) {
|
||||||
var n = await Task.Run(async () => {
|
|
||||||
Delivery n;
|
Delivery n;
|
||||||
using var ctx = new AppDbContext();
|
|
||||||
|
using (var ctx = new AppDbContext()) {
|
||||||
var anyLeft = false;
|
var anyLeft = false;
|
||||||
n = (await ctx.Deliveries.FirstAsync(d => d.LsNr == lsnr))!;
|
n = (await ctx.Deliveries.FirstAsync(d => d.LsNr == lsnr))!;
|
||||||
var d = (await ctx.Deliveries.FindAsync(year, did))!;
|
var d = (await ctx.Deliveries.FindAsync(year, did))!;
|
||||||
@ -622,9 +616,7 @@ namespace Elwig.Services {
|
|||||||
await ctx.SaveChangesAsync();
|
await ctx.SaveChangesAsync();
|
||||||
if (!anyLeft && n.LsNr != d.LsNr)
|
if (!anyLeft && n.LsNr != d.LsNr)
|
||||||
await ctx.Database.ExecuteSqlAsync($"DELETE FROM delivery WHERE (year, did) = ({d.Year}, {d.DId})");
|
await ctx.Database.ExecuteSqlAsync($"DELETE FROM delivery WHERE (year, did) = ({d.Year}, {d.DId})");
|
||||||
|
}
|
||||||
return n;
|
|
||||||
});
|
|
||||||
|
|
||||||
App.HintContextChange();
|
App.HintContextChange();
|
||||||
|
|
||||||
@ -632,8 +624,7 @@ namespace Elwig.Services {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static async Task DepreciateDelivery(int year, int did, int[] weights) {
|
public static async Task DepreciateDelivery(int year, int did, int[] weights) {
|
||||||
await Task.Run(async () => {
|
using (var ctx = new AppDbContext()) {
|
||||||
using var ctx = new AppDbContext();
|
|
||||||
var d = (await ctx.Deliveries.FindAsync(year, did))!;
|
var d = (await ctx.Deliveries.FindAsync(year, did))!;
|
||||||
var dpnr = await ctx.NextDPNr(year, did);
|
var dpnr = await ctx.NextDPNr(year, did);
|
||||||
foreach (var (p, w) in d.Parts.ToList().Zip(weights)) {
|
foreach (var (p, w) in d.Parts.ToList().Zip(weights)) {
|
||||||
@ -657,14 +648,13 @@ namespace Elwig.Services {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
await ctx.SaveChangesAsync();
|
await ctx.SaveChangesAsync();
|
||||||
});
|
}
|
||||||
|
|
||||||
App.HintContextChange();
|
App.HintContextChange();
|
||||||
}
|
}
|
||||||
|
|
||||||
public static async Task GenerateDeliveryNote(int year, int did, ExportMode mode) {
|
public static async Task GenerateDeliveryNote(int year, int did, ExportMode mode) {
|
||||||
Mouse.OverrideCursor = Cursors.Wait;
|
Mouse.OverrideCursor = Cursors.AppStarting;
|
||||||
await Task.Run(async () => {
|
|
||||||
try {
|
try {
|
||||||
using var ctx = new AppDbContext();
|
using var ctx = new AppDbContext();
|
||||||
var d = (await ctx.Deliveries.FindAsync(year, did))!;
|
var d = (await ctx.Deliveries.FindAsync(year, did))!;
|
||||||
@ -673,7 +663,6 @@ namespace Elwig.Services {
|
|||||||
} catch (Exception exc) {
|
} catch (Exception exc) {
|
||||||
MessageBox.Show(exc.Message, "Fehler", MessageBoxButton.OK, MessageBoxImage.Error);
|
MessageBox.Show(exc.Message, "Fehler", MessageBoxButton.OK, MessageBoxImage.Error);
|
||||||
}
|
}
|
||||||
});
|
|
||||||
Mouse.OverrideCursor = null;
|
Mouse.OverrideCursor = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -718,8 +707,7 @@ namespace Elwig.Services {
|
|||||||
Title = $"{DeliveryJournal.Name} speichern unter - Elwig"
|
Title = $"{DeliveryJournal.Name} speichern unter - Elwig"
|
||||||
};
|
};
|
||||||
if (d.ShowDialog() == true) {
|
if (d.ShowDialog() == true) {
|
||||||
Mouse.OverrideCursor = Cursors.Wait;
|
Mouse.OverrideCursor = Cursors.AppStarting;
|
||||||
await Task.Run(async () => {
|
|
||||||
try {
|
try {
|
||||||
var data = await DeliveryJournalData.FromQuery(query, filterNames);
|
var data = await DeliveryJournalData.FromQuery(query, filterNames);
|
||||||
using var ods = new OdsFile(d.FileName);
|
using var ods = new OdsFile(d.FileName);
|
||||||
@ -727,7 +715,6 @@ namespace Elwig.Services {
|
|||||||
} catch (Exception exc) {
|
} catch (Exception exc) {
|
||||||
MessageBox.Show(exc.Message, "Fehler", MessageBoxButton.OK, MessageBoxImage.Error);
|
MessageBox.Show(exc.Message, "Fehler", MessageBoxButton.OK, MessageBoxImage.Error);
|
||||||
}
|
}
|
||||||
});
|
|
||||||
Mouse.OverrideCursor = null;
|
Mouse.OverrideCursor = null;
|
||||||
}
|
}
|
||||||
} else if (mode == ExportMode.Export) {
|
} else if (mode == ExportMode.Export) {
|
||||||
@ -738,8 +725,7 @@ namespace Elwig.Services {
|
|||||||
Title = $"{DeliveryJournal.Name} speichern unter - Elwig"
|
Title = $"{DeliveryJournal.Name} speichern unter - Elwig"
|
||||||
};
|
};
|
||||||
if (d.ShowDialog() == true) {
|
if (d.ShowDialog() == true) {
|
||||||
Mouse.OverrideCursor = Cursors.Wait;
|
Mouse.OverrideCursor = Cursors.AppStarting;
|
||||||
await Task.Run(async () => {
|
|
||||||
try {
|
try {
|
||||||
await ElwigData.Export(d.FileName, await query
|
await ElwigData.Export(d.FileName, await query
|
||||||
.Select(p => p.Delivery)
|
.Select(p => p.Delivery)
|
||||||
@ -751,12 +737,10 @@ namespace Elwig.Services {
|
|||||||
} catch (Exception exc) {
|
} catch (Exception exc) {
|
||||||
MessageBox.Show(exc.Message, "Fehler", MessageBoxButton.OK, MessageBoxImage.Error);
|
MessageBox.Show(exc.Message, "Fehler", MessageBoxButton.OK, MessageBoxImage.Error);
|
||||||
}
|
}
|
||||||
});
|
|
||||||
Mouse.OverrideCursor = null;
|
Mouse.OverrideCursor = null;
|
||||||
}
|
}
|
||||||
} else if (mode == ExportMode.Upload && App.Config.SyncUrl != null) {
|
} else if (mode == ExportMode.Upload && App.Config.SyncUrl != null) {
|
||||||
Mouse.OverrideCursor = Cursors.Wait;
|
Mouse.OverrideCursor = Cursors.AppStarting;
|
||||||
await Task.Run(async () => {
|
|
||||||
try {
|
try {
|
||||||
var filename = $"{DateTime.Now:yyyy-MM-dd_HH-mm-ss}_{App.ZwstId}.elwig.zip";
|
var filename = $"{DateTime.Now:yyyy-MM-dd_HH-mm-ss}_{App.ZwstId}.elwig.zip";
|
||||||
var path = Path.Combine(App.TempPath, filename);
|
var path = Path.Combine(App.TempPath, filename);
|
||||||
@ -783,11 +767,9 @@ namespace Elwig.Services {
|
|||||||
} catch (Exception exc) {
|
} catch (Exception exc) {
|
||||||
MessageBox.Show(exc.Message, "Fehler", MessageBoxButton.OK, MessageBoxImage.Error);
|
MessageBox.Show(exc.Message, "Fehler", MessageBoxButton.OK, MessageBoxImage.Error);
|
||||||
}
|
}
|
||||||
});
|
|
||||||
Mouse.OverrideCursor = null;
|
Mouse.OverrideCursor = null;
|
||||||
} else {
|
} else {
|
||||||
Mouse.OverrideCursor = Cursors.Wait;
|
Mouse.OverrideCursor = Cursors.AppStarting;
|
||||||
await Task.Run(async () => {
|
|
||||||
try {
|
try {
|
||||||
var data = await DeliveryJournalData.FromQuery(query, filterNames);
|
var data = await DeliveryJournalData.FromQuery(query, filterNames);
|
||||||
using var doc = new DeliveryJournal(string.Join(" / ", filterNames), data);
|
using var doc = new DeliveryJournal(string.Join(" / ", filterNames), data);
|
||||||
@ -795,7 +777,6 @@ namespace Elwig.Services {
|
|||||||
} catch (Exception exc) {
|
} catch (Exception exc) {
|
||||||
MessageBox.Show(exc.Message, "Fehler", MessageBoxButton.OK, MessageBoxImage.Error);
|
MessageBox.Show(exc.Message, "Fehler", MessageBoxButton.OK, MessageBoxImage.Error);
|
||||||
}
|
}
|
||||||
});
|
|
||||||
Mouse.OverrideCursor = null;
|
Mouse.OverrideCursor = null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -817,8 +798,7 @@ namespace Elwig.Services {
|
|||||||
throw new ArgumentException("Invalid value for ExportSubject");
|
throw new ArgumentException("Invalid value for ExportSubject");
|
||||||
}
|
}
|
||||||
|
|
||||||
Mouse.OverrideCursor = Cursors.Wait;
|
Mouse.OverrideCursor = Cursors.AppStarting;
|
||||||
await Task.Run(async () => {
|
|
||||||
try {
|
try {
|
||||||
var data = await WineQualityStatisticsData.FromQuery(query, App.Client.OrderingMemberList);
|
var data = await WineQualityStatisticsData.FromQuery(query, App.Client.OrderingMemberList);
|
||||||
using var doc = new WineQualityStatistics(string.Join(" / ", filterNames), data);
|
using var doc = new WineQualityStatistics(string.Join(" / ", filterNames), data);
|
||||||
@ -826,7 +806,6 @@ namespace Elwig.Services {
|
|||||||
} catch (Exception exc) {
|
} catch (Exception exc) {
|
||||||
MessageBox.Show(exc.Message, "Fehler", MessageBoxButton.OK, MessageBoxImage.Error);
|
MessageBox.Show(exc.Message, "Fehler", MessageBoxButton.OK, MessageBoxImage.Error);
|
||||||
}
|
}
|
||||||
});
|
|
||||||
Mouse.OverrideCursor = null;
|
Mouse.OverrideCursor = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -850,8 +829,7 @@ namespace Elwig.Services {
|
|||||||
Title = $"Lieferstatistik pro Ort speichern unter - Elwig"
|
Title = $"Lieferstatistik pro Ort speichern unter - Elwig"
|
||||||
};
|
};
|
||||||
if (d.ShowDialog() == true) {
|
if (d.ShowDialog() == true) {
|
||||||
Mouse.OverrideCursor = Cursors.Wait;
|
Mouse.OverrideCursor = Cursors.AppStarting;
|
||||||
await Task.Run(async () => {
|
|
||||||
try {
|
try {
|
||||||
using var ods = new OdsFile(d.FileName);
|
using var ods = new OdsFile(d.FileName);
|
||||||
var tbl = await WineLocalityStatisticsData.FromQuery(query, filterNames);
|
var tbl = await WineLocalityStatisticsData.FromQuery(query, filterNames);
|
||||||
@ -859,7 +837,6 @@ namespace Elwig.Services {
|
|||||||
} catch (Exception exc) {
|
} catch (Exception exc) {
|
||||||
MessageBox.Show(exc.Message, "Fehler", MessageBoxButton.OK, MessageBoxImage.Error);
|
MessageBox.Show(exc.Message, "Fehler", MessageBoxButton.OK, MessageBoxImage.Error);
|
||||||
}
|
}
|
||||||
});
|
|
||||||
Mouse.OverrideCursor = null;
|
Mouse.OverrideCursor = null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -898,8 +875,7 @@ namespace Elwig.Services {
|
|||||||
Title = $"{DeliveryDepreciationList.Name} speichern unter - Elwig"
|
Title = $"{DeliveryDepreciationList.Name} speichern unter - Elwig"
|
||||||
};
|
};
|
||||||
if (d.ShowDialog() == true) {
|
if (d.ShowDialog() == true) {
|
||||||
Mouse.OverrideCursor = Cursors.Wait;
|
Mouse.OverrideCursor = Cursors.AppStarting;
|
||||||
await Task.Run(async () => {
|
|
||||||
try {
|
try {
|
||||||
using var ods = new OdsFile(d.FileName);
|
using var ods = new OdsFile(d.FileName);
|
||||||
var tblTotal = await DeliveryJournalData.FromQuery(query, filterNames);
|
var tblTotal = await DeliveryJournalData.FromQuery(query, filterNames);
|
||||||
@ -915,12 +891,10 @@ namespace Elwig.Services {
|
|||||||
} catch (Exception exc) {
|
} catch (Exception exc) {
|
||||||
MessageBox.Show(exc.Message, "Fehler", MessageBoxButton.OK, MessageBoxImage.Error);
|
MessageBox.Show(exc.Message, "Fehler", MessageBoxButton.OK, MessageBoxImage.Error);
|
||||||
}
|
}
|
||||||
});
|
|
||||||
Mouse.OverrideCursor = null;
|
Mouse.OverrideCursor = null;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
Mouse.OverrideCursor = Cursors.Wait;
|
Mouse.OverrideCursor = Cursors.AppStarting;
|
||||||
await Task.Run(async () => {
|
|
||||||
try {
|
try {
|
||||||
var data = await DeliveryJournalData.FromQuery(query, filterNames);
|
var data = await DeliveryJournalData.FromQuery(query, filterNames);
|
||||||
using var doc = new DeliveryDepreciationList(string.Join(" / ", filterNames), data);
|
using var doc = new DeliveryDepreciationList(string.Join(" / ", filterNames), data);
|
||||||
@ -928,7 +902,6 @@ namespace Elwig.Services {
|
|||||||
} catch (Exception exc) {
|
} catch (Exception exc) {
|
||||||
MessageBox.Show(exc.Message, "Fehler", MessageBoxButton.OK, MessageBoxImage.Error);
|
MessageBox.Show(exc.Message, "Fehler", MessageBoxButton.OK, MessageBoxImage.Error);
|
||||||
}
|
}
|
||||||
});
|
|
||||||
Mouse.OverrideCursor = null;
|
Mouse.OverrideCursor = null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1097,12 +1070,10 @@ namespace Elwig.Services {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static async Task DeleteDelivery(string lsnr) {
|
public static async Task DeleteDelivery(string lsnr) {
|
||||||
await Task.Run(async () => {
|
using (var ctx = new AppDbContext()) {
|
||||||
using var ctx = new AppDbContext();
|
|
||||||
await ctx.Deliveries.Where(d => d.LsNr == lsnr).ExecuteDeleteAsync();
|
await ctx.Deliveries.Where(d => d.LsNr == lsnr).ExecuteDeleteAsync();
|
||||||
await ctx.SaveChangesAsync();
|
await ctx.SaveChangesAsync();
|
||||||
});
|
}
|
||||||
|
|
||||||
App.HintContextChange();
|
App.HintContextChange();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -367,8 +367,7 @@ namespace Elwig.Services {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static async Task GenerateMemberDataSheet(Member m, ExportMode mode) {
|
public static async Task GenerateMemberDataSheet(Member m, ExportMode mode) {
|
||||||
Mouse.OverrideCursor = Cursors.Wait;
|
Mouse.OverrideCursor = Cursors.AppStarting;
|
||||||
await Task.Run(async () => {
|
|
||||||
try {
|
try {
|
||||||
using var ctx = new AppDbContext();
|
using var ctx = new AppDbContext();
|
||||||
using var doc = new MemberDataSheet(m, ctx);
|
using var doc = new MemberDataSheet(m, ctx);
|
||||||
@ -376,13 +375,11 @@ namespace Elwig.Services {
|
|||||||
} catch (Exception exc) {
|
} catch (Exception exc) {
|
||||||
MessageBox.Show(exc.Message, "Fehler", MessageBoxButton.OK, MessageBoxImage.Error);
|
MessageBox.Show(exc.Message, "Fehler", MessageBoxButton.OK, MessageBoxImage.Error);
|
||||||
}
|
}
|
||||||
});
|
|
||||||
Mouse.OverrideCursor = null;
|
Mouse.OverrideCursor = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static async Task GenerateDeliveryConfirmation(Member m, int year, ExportMode mode) {
|
public static async Task GenerateDeliveryConfirmation(Member m, int year, ExportMode mode) {
|
||||||
Mouse.OverrideCursor = Cursors.Wait;
|
Mouse.OverrideCursor = Cursors.AppStarting;
|
||||||
await Task.Run(async () => {
|
|
||||||
try {
|
try {
|
||||||
var b = new Billing(year);
|
var b = new Billing(year);
|
||||||
await b.FinishSeason();
|
await b.FinishSeason();
|
||||||
@ -396,13 +393,11 @@ namespace Elwig.Services {
|
|||||||
} catch (Exception exc) {
|
} catch (Exception exc) {
|
||||||
MessageBox.Show(exc.Message, "Fehler", MessageBoxButton.OK, MessageBoxImage.Error);
|
MessageBox.Show(exc.Message, "Fehler", MessageBoxButton.OK, MessageBoxImage.Error);
|
||||||
}
|
}
|
||||||
});
|
|
||||||
Mouse.OverrideCursor = null;
|
Mouse.OverrideCursor = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static async Task GenerateCreditNote(Member m, int year, int avnr, ExportMode mode) {
|
public static async Task GenerateCreditNote(Member m, int year, int avnr, ExportMode mode) {
|
||||||
Mouse.OverrideCursor = Cursors.Wait;
|
Mouse.OverrideCursor = Cursors.AppStarting;
|
||||||
await Task.Run(async () => {
|
|
||||||
try {
|
try {
|
||||||
using var ctx = new AppDbContext();
|
using var ctx = new AppDbContext();
|
||||||
var v = (await ctx.PaymentVariants.FindAsync(year, avnr))!;
|
var v = (await ctx.PaymentVariants.FindAsync(year, avnr))!;
|
||||||
@ -417,7 +412,6 @@ namespace Elwig.Services {
|
|||||||
} catch (Exception exc) {
|
} catch (Exception exc) {
|
||||||
MessageBox.Show(exc.Message, "Fehler", MessageBoxButton.OK, MessageBoxImage.Error);
|
MessageBox.Show(exc.Message, "Fehler", MessageBoxButton.OK, MessageBoxImage.Error);
|
||||||
}
|
}
|
||||||
});
|
|
||||||
Mouse.OverrideCursor = null;
|
Mouse.OverrideCursor = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -470,8 +464,7 @@ namespace Elwig.Services {
|
|||||||
Title = $"{MemberList.Name} speichern unter - Elwig"
|
Title = $"{MemberList.Name} speichern unter - Elwig"
|
||||||
};
|
};
|
||||||
if (d.ShowDialog() == true) {
|
if (d.ShowDialog() == true) {
|
||||||
Mouse.OverrideCursor = Cursors.Wait;
|
Mouse.OverrideCursor = Cursors.AppStarting;
|
||||||
await Task.Run(async () => {
|
|
||||||
try {
|
try {
|
||||||
var data = await MemberListData.FromQuery(query, filterNames, filterNames.Where(f => f.StartsWith("Flächenbindung")).Select(f => f.Split(' ')[^1]));
|
var data = await MemberListData.FromQuery(query, filterNames, filterNames.Where(f => f.StartsWith("Flächenbindung")).Select(f => f.Split(' ')[^1]));
|
||||||
using var ods = new OdsFile(d.FileName);
|
using var ods = new OdsFile(d.FileName);
|
||||||
@ -479,7 +472,6 @@ namespace Elwig.Services {
|
|||||||
} catch (Exception exc) {
|
} catch (Exception exc) {
|
||||||
MessageBox.Show(exc.Message, "Fehler", MessageBoxButton.OK, MessageBoxImage.Error);
|
MessageBox.Show(exc.Message, "Fehler", MessageBoxButton.OK, MessageBoxImage.Error);
|
||||||
}
|
}
|
||||||
});
|
|
||||||
Mouse.OverrideCursor = null;
|
Mouse.OverrideCursor = null;
|
||||||
}
|
}
|
||||||
} else if (mode == ExportMode.Export) {
|
} else if (mode == ExportMode.Export) {
|
||||||
@ -490,8 +482,7 @@ namespace Elwig.Services {
|
|||||||
Title = $"{MemberList.Name} speichern unter - Elwig"
|
Title = $"{MemberList.Name} speichern unter - Elwig"
|
||||||
};
|
};
|
||||||
if (d.ShowDialog() == true) {
|
if (d.ShowDialog() == true) {
|
||||||
Mouse.OverrideCursor = Cursors.Wait;
|
Mouse.OverrideCursor = Cursors.AppStarting;
|
||||||
await Task.Run(async () => {
|
|
||||||
try {
|
try {
|
||||||
var members = await query
|
var members = await query
|
||||||
.OrderBy(m => m.MgNr)
|
.OrderBy(m => m.MgNr)
|
||||||
@ -508,12 +499,10 @@ namespace Elwig.Services {
|
|||||||
} catch (Exception exc) {
|
} catch (Exception exc) {
|
||||||
MessageBox.Show(exc.Message, "Fehler", MessageBoxButton.OK, MessageBoxImage.Error);
|
MessageBox.Show(exc.Message, "Fehler", MessageBoxButton.OK, MessageBoxImage.Error);
|
||||||
}
|
}
|
||||||
});
|
|
||||||
Mouse.OverrideCursor = null;
|
Mouse.OverrideCursor = null;
|
||||||
}
|
}
|
||||||
} else if (mode == ExportMode.Upload && App.Config.SyncUrl != null) {
|
} else if (mode == ExportMode.Upload && App.Config.SyncUrl != null) {
|
||||||
Mouse.OverrideCursor = Cursors.Wait;
|
Mouse.OverrideCursor = Cursors.AppStarting;
|
||||||
await Task.Run(async () => {
|
|
||||||
try {
|
try {
|
||||||
var filename = $"{DateTime.Now:yyyy-MM-dd_HH-mm-ss}_{App.ZwstId}.elwig.zip";
|
var filename = $"{DateTime.Now:yyyy-MM-dd_HH-mm-ss}_{App.ZwstId}.elwig.zip";
|
||||||
var path = Path.Combine(App.TempPath, filename);
|
var path = Path.Combine(App.TempPath, filename);
|
||||||
@ -544,11 +533,9 @@ namespace Elwig.Services {
|
|||||||
} catch (Exception exc) {
|
} catch (Exception exc) {
|
||||||
MessageBox.Show(exc.Message, "Fehler", MessageBoxButton.OK, MessageBoxImage.Error);
|
MessageBox.Show(exc.Message, "Fehler", MessageBoxButton.OK, MessageBoxImage.Error);
|
||||||
}
|
}
|
||||||
});
|
|
||||||
Mouse.OverrideCursor = null;
|
Mouse.OverrideCursor = null;
|
||||||
} else {
|
} else {
|
||||||
Mouse.OverrideCursor = Cursors.Wait;
|
Mouse.OverrideCursor = Cursors.AppStarting;
|
||||||
await Task.Run(async () => {
|
|
||||||
try {
|
try {
|
||||||
var data = await MemberListData.FromQuery(query, filterNames, filterNames.Where(f => f.StartsWith("Flächenbindung")).Select(f => f.Split(' ')[^1]));
|
var data = await MemberListData.FromQuery(query, filterNames, filterNames.Where(f => f.StartsWith("Flächenbindung")).Select(f => f.Split(' ')[^1]));
|
||||||
using var doc = new MemberList(string.Join(" / ", filterNames), data);
|
using var doc = new MemberList(string.Join(" / ", filterNames), data);
|
||||||
@ -556,13 +543,14 @@ namespace Elwig.Services {
|
|||||||
} catch (Exception exc) {
|
} catch (Exception exc) {
|
||||||
MessageBox.Show(exc.Message, "Fehler", MessageBoxButton.OK, MessageBoxImage.Error);
|
MessageBox.Show(exc.Message, "Fehler", MessageBoxButton.OK, MessageBoxImage.Error);
|
||||||
}
|
}
|
||||||
});
|
|
||||||
Mouse.OverrideCursor = null;
|
Mouse.OverrideCursor = null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static async Task<int> UpdateMember(this MemberAdminViewModel vm, int? oldMgNr) {
|
public static async Task<int> UpdateMember(this MemberAdminViewModel vm, int? oldMgNr) {
|
||||||
var newMgNr = (int)vm.MgNr!;
|
var newMgNr = (int)vm.MgNr!;
|
||||||
|
|
||||||
|
using (var ctx = new AppDbContext()) {
|
||||||
var m = new Member {
|
var m = new Member {
|
||||||
MgNr = oldMgNr ?? newMgNr,
|
MgNr = oldMgNr ?? newMgNr,
|
||||||
PredecessorMgNr = vm.PredecessorMgNr,
|
PredecessorMgNr = vm.PredecessorMgNr,
|
||||||
@ -600,8 +588,6 @@ namespace Elwig.Services {
|
|||||||
ContactViaEmail = vm.ContactViaEmail,
|
ContactViaEmail = vm.ContactViaEmail,
|
||||||
};
|
};
|
||||||
|
|
||||||
await Task.Run(async () => {
|
|
||||||
using var ctx = new AppDbContext();
|
|
||||||
if (oldMgNr != null) {
|
if (oldMgNr != null) {
|
||||||
ctx.Update(m);
|
ctx.Update(m);
|
||||||
} else {
|
} else {
|
||||||
@ -684,7 +670,7 @@ namespace Elwig.Services {
|
|||||||
if (newMgNr != m.MgNr) {
|
if (newMgNr != m.MgNr) {
|
||||||
await ctx.Database.ExecuteSqlAsync($"UPDATE member SET mgnr = {newMgNr} WHERE mgnr = {oldMgNr}");
|
await ctx.Database.ExecuteSqlAsync($"UPDATE member SET mgnr = {newMgNr} WHERE mgnr = {oldMgNr}");
|
||||||
}
|
}
|
||||||
});
|
}
|
||||||
|
|
||||||
App.HintContextChange();
|
App.HintContextChange();
|
||||||
|
|
||||||
@ -692,8 +678,7 @@ namespace Elwig.Services {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static async Task DeleteMember(int mgnr, bool deletePaymentData, bool deleteDeliveries, bool deleteAreaComs) {
|
public static async Task DeleteMember(int mgnr, bool deletePaymentData, bool deleteDeliveries, bool deleteAreaComs) {
|
||||||
await Task.Run(async () => {
|
using (var ctx = new AppDbContext()) {
|
||||||
using var ctx = new AppDbContext();
|
|
||||||
var l = (await ctx.Members.FindAsync(mgnr))!;
|
var l = (await ctx.Members.FindAsync(mgnr))!;
|
||||||
if (deletePaymentData) {
|
if (deletePaymentData) {
|
||||||
ctx.RemoveRange(l.Credits);
|
ctx.RemoveRange(l.Credits);
|
||||||
@ -706,8 +691,7 @@ namespace Elwig.Services {
|
|||||||
}
|
}
|
||||||
ctx.Remove(l);
|
ctx.Remove(l);
|
||||||
await ctx.SaveChangesAsync();
|
await ctx.SaveChangesAsync();
|
||||||
});
|
}
|
||||||
|
|
||||||
App.HintContextChange();
|
App.HintContextChange();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -203,9 +203,13 @@ namespace Elwig.Windows {
|
|||||||
$"Soll die Flächenbindung {a.GstNr} ({a.Area} m²) wirklich unwiderruflich gelöscht werden?",
|
$"Soll die Flächenbindung {a.GstNr} ({a.Area} m²) wirklich unwiderruflich gelöscht werden?",
|
||||||
"Flächenbindung löschen", MessageBoxButton.OKCancel, MessageBoxImage.Warning, MessageBoxResult.Cancel);
|
"Flächenbindung löschen", MessageBoxButton.OKCancel, MessageBoxImage.Warning, MessageBoxResult.Cancel);
|
||||||
if (r == MessageBoxResult.OK) {
|
if (r == MessageBoxResult.OK) {
|
||||||
Mouse.OverrideCursor = Cursors.Wait;
|
Mouse.OverrideCursor = Cursors.AppStarting;
|
||||||
try {
|
try {
|
||||||
await AreaComService.DeleteAreaCom(a.FbNr);
|
using (var ctx = new AppDbContext()) {
|
||||||
|
ctx.Remove(a);
|
||||||
|
await ctx.SaveChangesAsync();
|
||||||
|
}
|
||||||
|
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;
|
||||||
if (exc.InnerException != null) str += "\n\n" + exc.InnerException.Message;
|
if (exc.InnerException != null) str += "\n\n" + exc.InnerException.Message;
|
||||||
@ -223,7 +227,7 @@ namespace Elwig.Windows {
|
|||||||
|
|
||||||
private async void AreaCommitmentSaveButton_Click(object? sender, RoutedEventArgs? evt) {
|
private async void AreaCommitmentSaveButton_Click(object? sender, RoutedEventArgs? evt) {
|
||||||
AreaCommitmentSaveButton.IsEnabled = false;
|
AreaCommitmentSaveButton.IsEnabled = false;
|
||||||
Mouse.OverrideCursor = Cursors.Wait;
|
Mouse.OverrideCursor = Cursors.AppStarting;
|
||||||
|
|
||||||
int fbnr;
|
int fbnr;
|
||||||
try {
|
try {
|
||||||
@ -233,8 +237,9 @@ namespace Elwig.Windows {
|
|||||||
if (exc.InnerException != null) str += "\n\n" + exc.InnerException.Message;
|
if (exc.InnerException != null) str += "\n\n" + exc.InnerException.Message;
|
||||||
MessageBox.Show(str, "Flächenbindung aktualisieren", MessageBoxButton.OK, MessageBoxImage.Error);
|
MessageBox.Show(str, "Flächenbindung aktualisieren", MessageBoxButton.OK, MessageBoxImage.Error);
|
||||||
AreaCommitmentSaveButton.IsEnabled = true;
|
AreaCommitmentSaveButton.IsEnabled = true;
|
||||||
Mouse.OverrideCursor = null;
|
|
||||||
return;
|
return;
|
||||||
|
} finally {
|
||||||
|
Mouse.OverrideCursor = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
IsEditing = false;
|
IsEditing = false;
|
||||||
@ -247,7 +252,6 @@ namespace Elwig.Windows {
|
|||||||
FinishInputFilling();
|
FinishInputFilling();
|
||||||
await RefreshList();
|
await RefreshList();
|
||||||
RefreshInputs();
|
RefreshInputs();
|
||||||
Mouse.OverrideCursor = null;
|
|
||||||
ViewModel.SearchQuery = "";
|
ViewModel.SearchQuery = "";
|
||||||
ControlUtils.SelectItem(AreaCommitmentList, AreaCommitmentList.ItemsSource.Cast<AreaCom>().Where(a => a.FbNr == fbnr).FirstOrDefault());
|
ControlUtils.SelectItem(AreaCommitmentList, AreaCommitmentList.ItemsSource.Cast<AreaCom>().Where(a => a.FbNr == fbnr).FirstOrDefault());
|
||||||
}
|
}
|
||||||
|
@ -157,7 +157,7 @@ namespace Elwig.Windows {
|
|||||||
}
|
}
|
||||||
var d = new NewSeasonDialog(s, currencies);
|
var d = new NewSeasonDialog(s, currencies);
|
||||||
if (d.ShowDialog() == true) {
|
if (d.ShowDialog() == true) {
|
||||||
Mouse.OverrideCursor = Cursors.Wait;
|
Mouse.OverrideCursor = Cursors.AppStarting;
|
||||||
try {
|
try {
|
||||||
using var ctx = new AppDbContext();
|
using var ctx = new AppDbContext();
|
||||||
ctx.Add(new Season {
|
ctx.Add(new Season {
|
||||||
@ -209,7 +209,7 @@ namespace Elwig.Windows {
|
|||||||
$"Soll die Saison {s.Year} wirklich unwiderruflich gelöscht werden?",
|
$"Soll die Saison {s.Year} wirklich unwiderruflich gelöscht werden?",
|
||||||
"Saison löschen", MessageBoxButton.OKCancel, MessageBoxImage.Warning, MessageBoxResult.Cancel);
|
"Saison löschen", MessageBoxButton.OKCancel, MessageBoxImage.Warning, MessageBoxResult.Cancel);
|
||||||
if (r == MessageBoxResult.OK) {
|
if (r == MessageBoxResult.OK) {
|
||||||
Mouse.OverrideCursor = Cursors.Wait;
|
Mouse.OverrideCursor = Cursors.AppStarting;
|
||||||
try {
|
try {
|
||||||
using var ctx = new AppDbContext();
|
using var ctx = new AppDbContext();
|
||||||
ctx.Remove(s);
|
ctx.Remove(s);
|
||||||
|
@ -318,7 +318,8 @@ namespace Elwig.Windows {
|
|||||||
|
|
||||||
private async void SaveButton_Click(object? sender, RoutedEventArgs? evt) {
|
private async void SaveButton_Click(object? sender, RoutedEventArgs? evt) {
|
||||||
SaveButton.IsEnabled = false;
|
SaveButton.IsEnabled = false;
|
||||||
Mouse.OverrideCursor = Cursors.Wait;
|
Mouse.OverrideCursor = Cursors.AppStarting;
|
||||||
|
|
||||||
try {
|
try {
|
||||||
await Save();
|
await Save();
|
||||||
} catch (Exception exc) {
|
} catch (Exception exc) {
|
||||||
@ -326,8 +327,9 @@ namespace Elwig.Windows {
|
|||||||
if (exc.InnerException != null) str += "\n\n" + exc.InnerException.Message;
|
if (exc.InnerException != null) str += "\n\n" + exc.InnerException.Message;
|
||||||
MessageBox.Show(str, "Stammdaten aktualisieren", MessageBoxButton.OK, MessageBoxImage.Error);
|
MessageBox.Show(str, "Stammdaten aktualisieren", MessageBoxButton.OK, MessageBoxImage.Error);
|
||||||
SaveButton.IsEnabled = true;
|
SaveButton.IsEnabled = true;
|
||||||
Mouse.OverrideCursor = null;
|
|
||||||
return;
|
return;
|
||||||
|
} finally {
|
||||||
|
Mouse.OverrideCursor = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
IsEditing = false;
|
IsEditing = false;
|
||||||
@ -347,7 +349,6 @@ namespace Elwig.Windows {
|
|||||||
}
|
}
|
||||||
|
|
||||||
App.HintContextChange();
|
App.HintContextChange();
|
||||||
Mouse.OverrideCursor = null;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void FillInputs(ClientParameters p, Season? s) {
|
private void FillInputs(ClientParameters p, Season? s) {
|
||||||
|
@ -719,7 +719,7 @@ namespace Elwig.Windows {
|
|||||||
private async void NewDeliveryPartButton_Click(object sender, RoutedEventArgs evt) {
|
private async void NewDeliveryPartButton_Click(object sender, RoutedEventArgs evt) {
|
||||||
FinishButton.IsEnabled = false;
|
FinishButton.IsEnabled = false;
|
||||||
NewDeliveryPartButton.IsEnabled = false;
|
NewDeliveryPartButton.IsEnabled = false;
|
||||||
Mouse.OverrideCursor = Cursors.Wait;
|
Mouse.OverrideCursor = Cursors.AppStarting;
|
||||||
DeliveryPartList.IsEnabled = false;
|
DeliveryPartList.IsEnabled = false;
|
||||||
|
|
||||||
DeliveryPart? p;
|
DeliveryPart? p;
|
||||||
@ -757,7 +757,7 @@ namespace Elwig.Windows {
|
|||||||
private async void FinishButton_Click(object sender, RoutedEventArgs evt) {
|
private async void FinishButton_Click(object sender, RoutedEventArgs evt) {
|
||||||
FinishButton.IsEnabled = false;
|
FinishButton.IsEnabled = false;
|
||||||
NewDeliveryPartButton.IsEnabled = false;
|
NewDeliveryPartButton.IsEnabled = false;
|
||||||
Mouse.OverrideCursor = Cursors.Wait;
|
Mouse.OverrideCursor = Cursors.AppStarting;
|
||||||
DeliveryPartList.IsEnabled = false;
|
DeliveryPartList.IsEnabled = false;
|
||||||
|
|
||||||
DeliveryPart? p;
|
DeliveryPart? p;
|
||||||
@ -888,7 +888,7 @@ namespace Elwig.Windows {
|
|||||||
if (res == null)
|
if (res == null)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
Mouse.OverrideCursor = Cursors.Wait;
|
Mouse.OverrideCursor = Cursors.AppStarting;
|
||||||
try {
|
try {
|
||||||
var id = res.Value.Item1;
|
var id = res.Value.Item1;
|
||||||
var weights = res.Value.Item2;
|
var weights = res.Value.Item2;
|
||||||
@ -959,7 +959,7 @@ namespace Elwig.Windows {
|
|||||||
$"Soll die Lieferung {d.LsNr} ({d.Member.AdministrativeName}, MgNr. {d.Member.MgNr}) wirklich unwiderruflich gelöscht werden?",
|
$"Soll die Lieferung {d.LsNr} ({d.Member.AdministrativeName}, MgNr. {d.Member.MgNr}) wirklich unwiderruflich gelöscht werden?",
|
||||||
"Lieferung löschen", MessageBoxButton.OKCancel, MessageBoxImage.Warning, MessageBoxResult.Cancel);
|
"Lieferung löschen", MessageBoxButton.OKCancel, MessageBoxImage.Warning, MessageBoxResult.Cancel);
|
||||||
if (r == MessageBoxResult.OK) {
|
if (r == MessageBoxResult.OK) {
|
||||||
Mouse.OverrideCursor = Cursors.Wait;
|
Mouse.OverrideCursor = Cursors.AppStarting;
|
||||||
try {
|
try {
|
||||||
await DeliveryService.DeleteDelivery(d.LsNr);
|
await DeliveryService.DeleteDelivery(d.LsNr);
|
||||||
} catch (Exception exc) {
|
} catch (Exception exc) {
|
||||||
@ -979,7 +979,7 @@ namespace Elwig.Windows {
|
|||||||
|
|
||||||
private async void SaveButton_Click(object? sender, RoutedEventArgs? evt) {
|
private async void SaveButton_Click(object? sender, RoutedEventArgs? evt) {
|
||||||
SaveButton.IsEnabled = false;
|
SaveButton.IsEnabled = false;
|
||||||
Mouse.OverrideCursor = Cursors.Wait;
|
Mouse.OverrideCursor = Cursors.AppStarting;
|
||||||
|
|
||||||
DeliveryPart? p;
|
DeliveryPart? p;
|
||||||
try {
|
try {
|
||||||
@ -996,8 +996,9 @@ namespace Elwig.Windows {
|
|||||||
if (exc.InnerException != null) str += "\n\n" + exc.InnerException.Message;
|
if (exc.InnerException != null) str += "\n\n" + exc.InnerException.Message;
|
||||||
MessageBox.Show(str, "Lieferung aktualisieren", MessageBoxButton.OK, MessageBoxImage.Error);
|
MessageBox.Show(str, "Lieferung aktualisieren", MessageBoxButton.OK, MessageBoxImage.Error);
|
||||||
SaveButton.IsEnabled = true;
|
SaveButton.IsEnabled = true;
|
||||||
Mouse.OverrideCursor = null;
|
|
||||||
return;
|
return;
|
||||||
|
} finally {
|
||||||
|
Mouse.OverrideCursor = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
IsEditing = false;
|
IsEditing = false;
|
||||||
@ -1014,7 +1015,6 @@ namespace Elwig.Windows {
|
|||||||
await RefreshDeliveryParts();
|
await RefreshDeliveryParts();
|
||||||
RefreshInputs();
|
RefreshInputs();
|
||||||
|
|
||||||
Mouse.OverrideCursor = null;
|
|
||||||
DepreciateButton.IsEnabled = true;
|
DepreciateButton.IsEnabled = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -62,7 +62,7 @@ namespace Elwig.Windows {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private async void Menu_Help_Smtp_Click(object sender, RoutedEventArgs evt) {
|
private async void Menu_Help_Smtp_Click(object sender, RoutedEventArgs evt) {
|
||||||
Mouse.OverrideCursor = Cursors.Wait;
|
Mouse.OverrideCursor = Cursors.AppStarting;
|
||||||
try {
|
try {
|
||||||
using var client = await Utils.GetSmtpClient();
|
using var client = await Utils.GetSmtpClient();
|
||||||
await client!.DisconnectAsync(true);
|
await client!.DisconnectAsync(true);
|
||||||
@ -133,10 +133,8 @@ namespace Elwig.Windows {
|
|||||||
Multiselect = true,
|
Multiselect = true,
|
||||||
};
|
};
|
||||||
if (d.ShowDialog() == true) {
|
if (d.ShowDialog() == true) {
|
||||||
Mouse.OverrideCursor = Cursors.Wait;
|
Mouse.OverrideCursor = Cursors.AppStarting;
|
||||||
await Task.Run(async () => {
|
|
||||||
await ElwigData.Import(d.FileNames, ElwigData.ImportMode.Interactively);
|
await ElwigData.Import(d.FileNames, ElwigData.ImportMode.Interactively);
|
||||||
});
|
|
||||||
}
|
}
|
||||||
} catch (Exception exc) {
|
} catch (Exception exc) {
|
||||||
MessageBox.Show(exc.Message, "Fehler", MessageBoxButton.OK, MessageBoxImage.Error);
|
MessageBox.Show(exc.Message, "Fehler", MessageBoxButton.OK, MessageBoxImage.Error);
|
||||||
@ -147,8 +145,7 @@ namespace Elwig.Windows {
|
|||||||
private async void DownloadButton_Click(object sender, RoutedEventArgs evt) {
|
private async void DownloadButton_Click(object sender, RoutedEventArgs evt) {
|
||||||
if (App.Config.SyncUrl == null)
|
if (App.Config.SyncUrl == null)
|
||||||
return;
|
return;
|
||||||
Mouse.OverrideCursor = Cursors.Wait;
|
Mouse.OverrideCursor = Cursors.AppStarting;
|
||||||
await Task.Run(async () => {
|
|
||||||
try {
|
try {
|
||||||
var data = await Utils.GetExportMetaData(App.Config.SyncUrl, App.Config.SyncUsername, App.Config.SyncPassword);
|
var data = await Utils.GetExportMetaData(App.Config.SyncUrl, App.Config.SyncUsername, App.Config.SyncPassword);
|
||||||
var files = data
|
var files = data
|
||||||
@ -184,15 +181,13 @@ namespace Elwig.Windows {
|
|||||||
} catch (Exception exc) {
|
} catch (Exception exc) {
|
||||||
MessageBox.Show(exc.Message, "Fehler", MessageBoxButton.OK, MessageBoxImage.Error);
|
MessageBox.Show(exc.Message, "Fehler", MessageBoxButton.OK, MessageBoxImage.Error);
|
||||||
}
|
}
|
||||||
});
|
|
||||||
Mouse.OverrideCursor = null;
|
Mouse.OverrideCursor = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
private async void UploadButton_Click(object sender, RoutedEventArgs evt) {
|
private async void UploadButton_Click(object sender, RoutedEventArgs evt) {
|
||||||
if (App.Config.SyncUrl == null)
|
if (App.Config.SyncUrl == null)
|
||||||
return;
|
return;
|
||||||
Mouse.OverrideCursor = Cursors.Wait;
|
Mouse.OverrideCursor = Cursors.AppStarting;
|
||||||
await Task.Run(async () => {
|
|
||||||
try {
|
try {
|
||||||
var path = Path.Combine(App.TempPath, $"{DateTime.Now:yyyy-MM-dd_HH-mm-ss}_{App.ZwstId}.elwig.zip");
|
var path = Path.Combine(App.TempPath, $"{DateTime.Now:yyyy-MM-dd_HH-mm-ss}_{App.ZwstId}.elwig.zip");
|
||||||
using var ctx = new AppDbContext();
|
using var ctx = new AppDbContext();
|
||||||
@ -221,7 +216,6 @@ namespace Elwig.Windows {
|
|||||||
} catch (Exception exc) {
|
} catch (Exception exc) {
|
||||||
MessageBox.Show(exc.Message, "Lieferungen hochladen", MessageBoxButton.OK, MessageBoxImage.Error);
|
MessageBox.Show(exc.Message, "Lieferungen hochladen", MessageBoxButton.OK, MessageBoxImage.Error);
|
||||||
}
|
}
|
||||||
});
|
|
||||||
Mouse.OverrideCursor = null;
|
Mouse.OverrideCursor = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -276,31 +270,24 @@ namespace Elwig.Windows {
|
|||||||
AreaCommitmentsButton.IsEnabled = valid;
|
AreaCommitmentsButton.IsEnabled = valid;
|
||||||
BreakdownMemberVarietyButton.IsEnabled = valid;
|
BreakdownMemberVarietyButton.IsEnabled = valid;
|
||||||
|
|
||||||
|
if (valid) {
|
||||||
|
var areaComs = Utils.ActiveAreaCommitments(ctx.AreaCommitments, year!.Value);
|
||||||
|
var weightTotal = await ctx.DeliveryParts.Where(p => p.Year == year).SumAsync(p => p.Weight);
|
||||||
|
var gebWeight = await ctx.DeliveryPartBuckets.Where(b => b.Year == year && b.Discr != "_").SumAsync(b => b.Value);
|
||||||
|
SeasonStatMembersTotal.Text = $"{await ctx.Deliveries.Where(d => d.Year == year).Select(d => d.Member).Distinct().CountAsync():N0}";
|
||||||
|
SeasonStatMembersGeb.Text = $"{await areaComs.Select(c => c.Member).Distinct().CountAsync():N0}";
|
||||||
|
SeasonStatWeightTotal.Text = $"{weightTotal:N0} kg";
|
||||||
|
SeasonStatWeightGeb.Text = $"{gebWeight:N0} kg";
|
||||||
|
SeasonStatWeightUngeb.Text = $"{weightTotal - gebWeight:N0} kg";
|
||||||
|
SeasonStatArea.Text = $"{await areaComs.SumAsync(c => c.Area):N0} m²";
|
||||||
|
} else {
|
||||||
SeasonStatMembersTotal.Text = "-";
|
SeasonStatMembersTotal.Text = "-";
|
||||||
SeasonStatMembersGeb.Text = "-";
|
SeasonStatMembersGeb.Text = "-";
|
||||||
SeasonStatWeightTotal.Text = "-";
|
SeasonStatWeightTotal.Text = "-";
|
||||||
SeasonStatWeightGeb.Text = "-";
|
SeasonStatWeightGeb.Text = "-";
|
||||||
SeasonStatWeightUngeb.Text = "-";
|
SeasonStatWeightUngeb.Text = "-";
|
||||||
SeasonStatArea.Text = "-";
|
SeasonStatArea.Text = "-";
|
||||||
if (valid) {
|
}
|
||||||
await Task.Run(async () => {
|
|
||||||
var membersTotal = await ctx.Deliveries.Where(d => d.Year == year).Select(d => d.Member).Distinct().CountAsync();
|
|
||||||
var areaComs = Utils.ActiveAreaCommitments(ctx.AreaCommitments, year!.Value);
|
|
||||||
var membersGeb = await areaComs.Select(c => c.Member).Distinct().CountAsync();
|
|
||||||
var weightTotal = await ctx.DeliveryParts.Where(p => p.Year == year).SumAsync(p => p.Weight);
|
|
||||||
var gebWeight = await ctx.DeliveryPartBuckets.Where(b => b.Year == year && b.Discr != "_").SumAsync(b => b.Value);
|
|
||||||
var area = await areaComs.SumAsync(c => c.Area);
|
|
||||||
await App.MainDispatcher.BeginInvoke(() => {
|
|
||||||
if (year != SeasonInput.Value) return;
|
|
||||||
SeasonStatMembersTotal.Text = $"{membersTotal:N0}";
|
|
||||||
SeasonStatMembersGeb.Text = $"{membersGeb:N0}";
|
|
||||||
SeasonStatWeightTotal.Text = $"{weightTotal:N0} kg";
|
|
||||||
SeasonStatWeightGeb.Text = $"{gebWeight:N0} kg";
|
|
||||||
SeasonStatWeightUngeb.Text = $"{weightTotal - gebWeight:N0} kg";
|
|
||||||
SeasonStatArea.Text = $"{area:N0} m²";
|
|
||||||
});
|
|
||||||
});
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void DeliveryConfirmationButton_Click(object sender, RoutedEventArgs evt) {
|
private void DeliveryConfirmationButton_Click(object sender, RoutedEventArgs evt) {
|
||||||
@ -328,8 +315,7 @@ namespace Elwig.Windows {
|
|||||||
if (d.ShowDialog() == false)
|
if (d.ShowDialog() == false)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
Mouse.OverrideCursor = Cursors.Wait;
|
Mouse.OverrideCursor = Cursors.AppStarting;
|
||||||
await Task.Run(async () => {
|
|
||||||
try {
|
try {
|
||||||
var b = new Billing(year);
|
var b = new Billing(year);
|
||||||
await b.FinishSeason();
|
await b.FinishSeason();
|
||||||
@ -345,7 +331,6 @@ namespace Elwig.Windows {
|
|||||||
} catch (Exception exc) {
|
} catch (Exception exc) {
|
||||||
MessageBox.Show(exc.Message, "Fehler", MessageBoxButton.OK, MessageBoxImage.Error);
|
MessageBox.Show(exc.Message, "Fehler", MessageBoxButton.OK, MessageBoxImage.Error);
|
||||||
}
|
}
|
||||||
});
|
|
||||||
Mouse.OverrideCursor = null;
|
Mouse.OverrideCursor = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -361,8 +346,7 @@ namespace Elwig.Windows {
|
|||||||
if (d.ShowDialog() == false)
|
if (d.ShowDialog() == false)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
Mouse.OverrideCursor = Cursors.Wait;
|
Mouse.OverrideCursor = Cursors.AppStarting;
|
||||||
await Task.Run(async () => {
|
|
||||||
try {
|
try {
|
||||||
var b = new Billing(year);
|
var b = new Billing(year);
|
||||||
await b.FinishSeason();
|
await b.FinishSeason();
|
||||||
@ -380,7 +364,6 @@ namespace Elwig.Windows {
|
|||||||
} catch (Exception exc) {
|
} catch (Exception exc) {
|
||||||
MessageBox.Show(exc.Message, "Fehler", MessageBoxButton.OK, MessageBoxImage.Error);
|
MessageBox.Show(exc.Message, "Fehler", MessageBoxButton.OK, MessageBoxImage.Error);
|
||||||
}
|
}
|
||||||
});
|
|
||||||
Mouse.OverrideCursor = null;
|
Mouse.OverrideCursor = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -396,8 +379,7 @@ namespace Elwig.Windows {
|
|||||||
if (d.ShowDialog() == false)
|
if (d.ShowDialog() == false)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
Mouse.OverrideCursor = Cursors.Wait;
|
Mouse.OverrideCursor = Cursors.AppStarting;
|
||||||
await Task.Run(async () => {
|
|
||||||
try {
|
try {
|
||||||
var b = new Billing(year);
|
var b = new Billing(year);
|
||||||
await b.FinishSeason();
|
await b.FinishSeason();
|
||||||
@ -411,7 +393,6 @@ namespace Elwig.Windows {
|
|||||||
} catch (Exception exc) {
|
} catch (Exception exc) {
|
||||||
MessageBox.Show(exc.Message, "Fehler", MessageBoxButton.OK, MessageBoxImage.Error);
|
MessageBox.Show(exc.Message, "Fehler", MessageBoxButton.OK, MessageBoxImage.Error);
|
||||||
}
|
}
|
||||||
});
|
|
||||||
Mouse.OverrideCursor = null;
|
Mouse.OverrideCursor = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -427,8 +408,7 @@ namespace Elwig.Windows {
|
|||||||
if (d.ShowDialog() == false)
|
if (d.ShowDialog() == false)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
Mouse.OverrideCursor = Cursors.Wait;
|
Mouse.OverrideCursor = Cursors.AppStarting;
|
||||||
await Task.Run(async () => {
|
|
||||||
try {
|
try {
|
||||||
var b = new Billing(year);
|
var b = new Billing(year);
|
||||||
await b.FinishSeason();
|
await b.FinishSeason();
|
||||||
@ -442,7 +422,6 @@ namespace Elwig.Windows {
|
|||||||
} catch (Exception exc) {
|
} catch (Exception exc) {
|
||||||
MessageBox.Show(exc.Message, "Fehler", MessageBoxButton.OK, MessageBoxImage.Error);
|
MessageBox.Show(exc.Message, "Fehler", MessageBoxButton.OK, MessageBoxImage.Error);
|
||||||
}
|
}
|
||||||
});
|
|
||||||
Mouse.OverrideCursor = null;
|
Mouse.OverrideCursor = null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -389,7 +389,7 @@ namespace Elwig.Windows {
|
|||||||
}
|
}
|
||||||
var d = new DeleteMemberDialog(m.MgNr, m.AdministrativeName, areaComs, deliveries, credits);
|
var d = new DeleteMemberDialog(m.MgNr, m.AdministrativeName, areaComs, deliveries, credits);
|
||||||
if (d.ShowDialog() == true) {
|
if (d.ShowDialog() == true) {
|
||||||
Mouse.OverrideCursor = Cursors.Wait;
|
Mouse.OverrideCursor = Cursors.AppStarting;
|
||||||
try {
|
try {
|
||||||
await MemberService.DeleteMember(m.MgNr, d.DeletePaymentData, d.DeleteDeliveries, d.DeleteAreaComs);
|
await MemberService.DeleteMember(m.MgNr, d.DeletePaymentData, d.DeleteDeliveries, d.DeleteAreaComs);
|
||||||
} catch (Exception exc) {
|
} catch (Exception exc) {
|
||||||
@ -408,7 +408,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.Wait;
|
Mouse.OverrideCursor = Cursors.AppStarting;
|
||||||
SaveButton.IsEnabled = false;
|
SaveButton.IsEnabled = false;
|
||||||
|
|
||||||
int mgnr;
|
int mgnr;
|
||||||
@ -419,8 +419,9 @@ namespace Elwig.Windows {
|
|||||||
if (exc.InnerException != null) str += "\n\n" + exc.InnerException.Message;
|
if (exc.InnerException != null) str += "\n\n" + exc.InnerException.Message;
|
||||||
MessageBox.Show(str, "Mitglied aktualisieren", MessageBoxButton.OK, MessageBoxImage.Error);
|
MessageBox.Show(str, "Mitglied aktualisieren", MessageBoxButton.OK, MessageBoxImage.Error);
|
||||||
SaveButton.IsEnabled = true;
|
SaveButton.IsEnabled = true;
|
||||||
Mouse.OverrideCursor = null;
|
|
||||||
return;
|
return;
|
||||||
|
} finally {
|
||||||
|
Mouse.OverrideCursor = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
IsEditing = false;
|
IsEditing = false;
|
||||||
@ -435,7 +436,6 @@ namespace Elwig.Windows {
|
|||||||
await RefreshList();
|
await RefreshList();
|
||||||
RefreshInputs();
|
RefreshInputs();
|
||||||
ViewModel.SearchQuery = "";
|
ViewModel.SearchQuery = "";
|
||||||
Mouse.OverrideCursor = null;
|
|
||||||
if (mgnr is int m)
|
if (mgnr is int m)
|
||||||
FocusMember(m);
|
FocusMember(m);
|
||||||
}
|
}
|
||||||
@ -491,9 +491,8 @@ namespace Elwig.Windows {
|
|||||||
|
|
||||||
private async void Menu_Contact_Letterhead_Click(object sender, RoutedEventArgs evt) {
|
private async void Menu_Contact_Letterhead_Click(object sender, RoutedEventArgs evt) {
|
||||||
if (ViewModel.SelectedMember is not Member m) return;
|
if (ViewModel.SelectedMember is not Member m) return;
|
||||||
Mouse.OverrideCursor = Cursors.Wait;
|
Mouse.OverrideCursor = Cursors.AppStarting;
|
||||||
try {
|
try {
|
||||||
await Task.Run(async () => {
|
|
||||||
using var doc = new Letterhead(m);
|
using var doc = new Letterhead(m);
|
||||||
await doc.Generate();
|
await doc.Generate();
|
||||||
if (!App.Config.Debug) {
|
if (!App.Config.Debug) {
|
||||||
@ -501,7 +500,6 @@ namespace Elwig.Windows {
|
|||||||
} else {
|
} else {
|
||||||
doc.Show();
|
doc.Show();
|
||||||
}
|
}
|
||||||
});
|
|
||||||
} catch (Exception exc) {
|
} catch (Exception exc) {
|
||||||
MessageBox.Show(exc.Message, "Fehler", MessageBoxButton.OK, MessageBoxImage.Error);
|
MessageBox.Show(exc.Message, "Fehler", MessageBoxButton.OK, MessageBoxImage.Error);
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user