[#57] PaymentVariantsWindow: Use Task.Run()
All checks were successful
Test / Run tests (push) Successful in 1m49s
All checks were successful
Test / Run tests (push) Successful in 1m49s
This commit is contained in:
@@ -189,16 +189,41 @@ namespace Elwig.Services {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static async Task GenerateSummary(PaymentVar v, ExportMode mode) {
|
public static async Task GenerateSummary(PaymentVar v, ExportMode mode) {
|
||||||
Mouse.OverrideCursor = Cursors.AppStarting;
|
if (mode == ExportMode.SaveList) {
|
||||||
try {
|
var d = new SaveFileDialog() {
|
||||||
using var ctx = new AppDbContext();
|
FileName = $"Variantendaten-{v.Name.Trim().Replace(' ', '-')}.ods",
|
||||||
var data = await PaymentVariantSummaryData.ForPaymentVariant(v, ctx.PaymentVariantSummaryRows);
|
DefaultExt = "ods",
|
||||||
using var doc = new PaymentVariantSummary((await ctx.PaymentVariants.FindAsync(v.Year, v.AvNr))!, data);
|
Filter = "OpenDocument Format Spreadsheet (*.ods)|*.ods",
|
||||||
await Utils.ExportDocument(doc, mode);
|
Title = $"Variantendaten {v.Name} speichern unter - Elwig"
|
||||||
} catch (Exception exc) {
|
};
|
||||||
MessageBox.Show(exc.Message, "Fehler", MessageBoxButton.OK, MessageBoxImage.Error);
|
if (d.ShowDialog() == false)
|
||||||
|
return;
|
||||||
|
Mouse.OverrideCursor = Cursors.Wait;
|
||||||
|
await Task.Run(async () => {
|
||||||
|
try {
|
||||||
|
using var ctx = new AppDbContext();
|
||||||
|
var data = await PaymentVariantSummaryData.ForPaymentVariant(v, ctx.PaymentVariantSummaryRows);
|
||||||
|
using var ods = new OdsFile(d.FileName);
|
||||||
|
await ods.AddTable(data);
|
||||||
|
} catch (Exception exc) {
|
||||||
|
MessageBox.Show(exc.Message, "Fehler", MessageBoxButton.OK, MessageBoxImage.Error);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
Mouse.OverrideCursor = null;
|
||||||
|
} else {
|
||||||
|
Mouse.OverrideCursor = Cursors.Wait;
|
||||||
|
await Task.Run(async () => {
|
||||||
|
try {
|
||||||
|
using var ctx = new AppDbContext();
|
||||||
|
var data = await PaymentVariantSummaryData.ForPaymentVariant(v, ctx.PaymentVariantSummaryRows);
|
||||||
|
using var doc = new PaymentVariantSummary((await ctx.PaymentVariants.FindAsync(v.Year, v.AvNr))!, data);
|
||||||
|
await Utils.ExportDocument(doc, mode);
|
||||||
|
} catch (Exception exc) {
|
||||||
|
MessageBox.Show(exc.Message, "Fehler", MessageBoxButton.OK, MessageBoxImage.Error);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
Mouse.OverrideCursor = null;
|
||||||
}
|
}
|
||||||
Mouse.OverrideCursor = null;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static async Task GenerateEbics(int year, int avnr) {
|
public static async Task GenerateEbics(int year, int avnr) {
|
||||||
@@ -225,13 +250,15 @@ namespace Elwig.Services {
|
|||||||
Title = $"Überweisungsdaten speichern unter - Elwig",
|
Title = $"Überweisungsdaten speichern unter - Elwig",
|
||||||
};
|
};
|
||||||
if (d.ShowDialog() == true) {
|
if (d.ShowDialog() == true) {
|
||||||
Mouse.OverrideCursor = Cursors.AppStarting;
|
Mouse.OverrideCursor = Cursors.Wait;
|
||||||
try {
|
await Task.Run(async () => {
|
||||||
using var e = new Ebics(v, d.FileName, App.Client.ExportEbicsVersion, (Ebics.AddressMode)App.Client.ExportEbicsAddress);
|
try {
|
||||||
await e.ExportAsync(Transaction.FromPaymentVariant(v));
|
using var e = new Ebics(v, d.FileName, App.Client.ExportEbicsVersion, (Ebics.AddressMode)App.Client.ExportEbicsAddress);
|
||||||
} catch (Exception exc) {
|
await e.ExportAsync(Transaction.FromPaymentVariant(v));
|
||||||
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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -244,23 +271,26 @@ namespace Elwig.Services {
|
|||||||
Title = $"Buchungsliste speichern unter - Elwig"
|
Title = $"Buchungsliste speichern unter - Elwig"
|
||||||
};
|
};
|
||||||
if (d.ShowDialog() == true) {
|
if (d.ShowDialog() == true) {
|
||||||
Mouse.OverrideCursor = Cursors.AppStarting;
|
Mouse.OverrideCursor = Cursors.Wait;
|
||||||
try {
|
await Task.Run(async () => {
|
||||||
using var ctx = new AppDbContext();
|
try {
|
||||||
var tbl = await CreditNoteData.ForPaymentVariant(ctx, year, avnr);
|
using var ctx = new AppDbContext();
|
||||||
using var ods = new OdsFile(d.FileName);
|
var tbl = await CreditNoteData.ForPaymentVariant(ctx, year, avnr);
|
||||||
await ods.AddTable(tbl);
|
using var ods = new OdsFile(d.FileName);
|
||||||
} catch (Exception exc) {
|
await ods.AddTable(tbl);
|
||||||
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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static async Task<PaymentVar> CreatePaymentVariant(int year) {
|
public static async Task<PaymentVar> CreatePaymentVariant(int year) {
|
||||||
PaymentVar? v;
|
Mouse.OverrideCursor = Cursors.Wait;
|
||||||
using (var ctx = new AppDbContext()) {
|
var v = await Task.Run(async () => {
|
||||||
v = new PaymentVar {
|
using var ctx = new AppDbContext();
|
||||||
|
var v = new PaymentVar {
|
||||||
Year = year,
|
Year = year,
|
||||||
AvNr = await ctx.NextAvNr(year),
|
AvNr = await ctx.NextAvNr(year),
|
||||||
Name = "Neue Auszahlungsvariante",
|
Name = "Neue Auszahlungsvariante",
|
||||||
@@ -270,15 +300,18 @@ namespace Elwig.Services {
|
|||||||
};
|
};
|
||||||
ctx.Add(v);
|
ctx.Add(v);
|
||||||
await ctx.SaveChangesAsync();
|
await ctx.SaveChangesAsync();
|
||||||
}
|
return v;
|
||||||
|
});
|
||||||
App.HintContextChange();
|
App.HintContextChange();
|
||||||
|
Mouse.OverrideCursor = null;
|
||||||
return v;
|
return v;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static async Task<PaymentVar> Duplicate(this PaymentVar orig) {
|
public static async Task<PaymentVar> Duplicate(this PaymentVar orig) {
|
||||||
PaymentVar? n;
|
Mouse.OverrideCursor = Cursors.Wait;
|
||||||
using (var ctx = new AppDbContext()) {
|
var n = await Task.Run(async () => {
|
||||||
n = new PaymentVar {
|
using var ctx = new AppDbContext();
|
||||||
|
var n = new PaymentVar {
|
||||||
Year = orig.Year,
|
Year = orig.Year,
|
||||||
AvNr = await ctx.NextAvNr(orig.Year),
|
AvNr = await ctx.NextAvNr(orig.Year),
|
||||||
Name = $"{orig.Name} (Kopie)",
|
Name = $"{orig.Name} (Kopie)",
|
||||||
@@ -286,29 +319,31 @@ namespace Elwig.Services {
|
|||||||
DateString = $"{DateTime.Today:yyyy-MM-dd}",
|
DateString = $"{DateTime.Today:yyyy-MM-dd}",
|
||||||
Data = orig.Data,
|
Data = orig.Data,
|
||||||
};
|
};
|
||||||
|
|
||||||
ctx.Add(n);
|
ctx.Add(n);
|
||||||
await ctx.SaveChangesAsync();
|
await ctx.SaveChangesAsync();
|
||||||
}
|
return n;
|
||||||
|
});
|
||||||
App.HintContextChange();
|
App.HintContextChange();
|
||||||
|
Mouse.OverrideCursor = null;
|
||||||
return n;
|
return n;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static async Task<(int, int)> UpdatePaymentVariant(this PaymentVariantsViewModel vm, int? oldYear, int? oldAvNr) {
|
public static async Task<(int, int)> UpdatePaymentVariant(this PaymentVariantsViewModel vm, int? oldYear, int? oldAvNr) {
|
||||||
var year = oldYear ?? Utils.CurrentYear;
|
var year = oldYear ?? Utils.CurrentYear;
|
||||||
int avnr = 0;
|
int avnr = 0;
|
||||||
|
Mouse.OverrideCursor = Cursors.Wait;
|
||||||
|
await Task.Run(async () => {
|
||||||
|
var d = App.Config.Debug ? BillingData.FromJson(vm.Data ?? "{}") : vm.BillingData!;
|
||||||
|
d.ConsiderDelieryModifiers = vm.ConsiderModifiers;
|
||||||
|
d.ConsiderContractPenalties = vm.ConsiderPenalties;
|
||||||
|
d.ConsiderTotalPenalty = vm.ConsiderPenalty;
|
||||||
|
d.ConsiderAutoBusinessShares = vm.ConsiderAuto;
|
||||||
|
d.ConsiderCustomModifiers = vm.ConsiderCustom;
|
||||||
|
var modVal = vm.WeightModifier ?? 0;
|
||||||
|
d.NetWeightModifier = modVal > 0 ? modVal / 100.0 : 0;
|
||||||
|
d.GrossWeightModifier = modVal < 0 ? modVal / 100.0 : 0;
|
||||||
|
|
||||||
var d = App.Config.Debug ? BillingData.FromJson(vm.Data ?? "{}") : vm.BillingData!;
|
using var ctx = new AppDbContext();
|
||||||
d.ConsiderDelieryModifiers = vm.ConsiderModifiers;
|
|
||||||
d.ConsiderContractPenalties = vm.ConsiderPenalties;
|
|
||||||
d.ConsiderTotalPenalty = vm.ConsiderPenalty;
|
|
||||||
d.ConsiderAutoBusinessShares = vm.ConsiderAuto;
|
|
||||||
d.ConsiderCustomModifiers = vm.ConsiderCustom;
|
|
||||||
var modVal = vm.WeightModifier ?? 0;
|
|
||||||
d.NetWeightModifier = modVal > 0 ? modVal / 100.0 : 0;
|
|
||||||
d.GrossWeightModifier = modVal < 0 ? modVal / 100.0 : 0;
|
|
||||||
|
|
||||||
using (var ctx = new AppDbContext()) {
|
|
||||||
var v = new PaymentVar {
|
var v = new PaymentVar {
|
||||||
Year = year,
|
Year = year,
|
||||||
AvNr = oldAvNr ?? await ctx.NextAvNr(year),
|
AvNr = oldAvNr ?? await ctx.NextAvNr(year),
|
||||||
@@ -323,24 +358,65 @@ namespace Elwig.Services {
|
|||||||
avnr = v.AvNr;
|
avnr = v.AvNr;
|
||||||
ctx.Update(v);
|
ctx.Update(v);
|
||||||
await ctx.SaveChangesAsync();
|
await ctx.SaveChangesAsync();
|
||||||
}
|
});
|
||||||
vm.WeightModifierChanged = false;
|
vm.WeightModifierChanged = false;
|
||||||
App.HintContextChange();
|
App.HintContextChange();
|
||||||
|
Mouse.OverrideCursor = null;
|
||||||
return (year, avnr);
|
return (year, avnr);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static async Task DeletePaymentVariant(int year, int avnr) {
|
public static async Task DeletePaymentVariant(int year, int avnr) {
|
||||||
using (var ctx = new AppDbContext()) {
|
Mouse.OverrideCursor = Cursors.Wait;
|
||||||
|
await Task.Run(async () => {
|
||||||
|
using var ctx = new AppDbContext();
|
||||||
var v = (await ctx.PaymentVariants.FindAsync(year, avnr))!;
|
var v = (await ctx.PaymentVariants.FindAsync(year, avnr))!;
|
||||||
ctx.Remove(v);
|
ctx.Remove(v);
|
||||||
await ctx.SaveChangesAsync();
|
await ctx.SaveChangesAsync();
|
||||||
}
|
});
|
||||||
App.HintContextChange();
|
App.HintContextChange();
|
||||||
|
Mouse.OverrideCursor = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static async Task Calculate(int year, int avnr) {
|
public static async Task Calculate(int year, int avnr) {
|
||||||
var b = new BillingVariant(year, avnr);
|
Mouse.OverrideCursor = Cursors.Wait;
|
||||||
await b.Calculate();
|
await Task.Run(async () => {
|
||||||
|
try {
|
||||||
|
var b = new BillingVariant(year, avnr);
|
||||||
|
await b.Calculate();
|
||||||
|
} catch (Exception exc) {
|
||||||
|
MessageBox.Show(exc.Message, "Berechnungsfehler", MessageBoxButton.OK, MessageBoxImage.Error);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
App.HintContextChange();
|
||||||
|
Mouse.OverrideCursor = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static async Task Commit(int year, int avnr) {
|
||||||
|
Mouse.OverrideCursor = Cursors.Wait;
|
||||||
|
await Task.Run(async () => {
|
||||||
|
try {
|
||||||
|
var b = new BillingVariant(year, avnr);
|
||||||
|
await b.Commit();
|
||||||
|
} catch (Exception exc) {
|
||||||
|
MessageBox.Show(exc.Message, "Fehler", MessageBoxButton.OK, MessageBoxImage.Error);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
App.HintContextChange();
|
||||||
|
Mouse.OverrideCursor = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static async Task Revert(int year, int avnr) {
|
||||||
|
Mouse.OverrideCursor = Cursors.Wait;
|
||||||
|
await Task.Run(async () => {
|
||||||
|
try {
|
||||||
|
var b = new BillingVariant(year, avnr);
|
||||||
|
await b.Revert();
|
||||||
|
} catch (Exception exc) {
|
||||||
|
MessageBox.Show(exc.Message, "Fehler", MessageBoxButton.OK, MessageBoxImage.Error);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
App.HintContextChange();
|
||||||
|
Mouse.OverrideCursor = null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -124,14 +124,7 @@ namespace Elwig.Windows {
|
|||||||
if (PaymentVariantList.SelectedItem is not PaymentVar v)
|
if (PaymentVariantList.SelectedItem is not PaymentVar v)
|
||||||
return;
|
return;
|
||||||
ViewModel.CalculateIsEnabled = false;
|
ViewModel.CalculateIsEnabled = false;
|
||||||
Mouse.OverrideCursor = Cursors.AppStarting;
|
await PaymentVariantService.Calculate(v.Year, v.AvNr);
|
||||||
try {
|
|
||||||
await PaymentVariantService.Calculate(v.Year, v.AvNr);
|
|
||||||
} catch (Exception exc) {
|
|
||||||
MessageBox.Show(exc.Message, "Berechnungsfehler", MessageBoxButton.OK, MessageBoxImage.Error);
|
|
||||||
}
|
|
||||||
App.HintContextChange();
|
|
||||||
Mouse.OverrideCursor = null;
|
|
||||||
ViewModel.CalculateIsEnabled = true;
|
ViewModel.CalculateIsEnabled = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -161,24 +154,7 @@ namespace Elwig.Windows {
|
|||||||
private async void Menu_SummaryExport_Click(object sender, RoutedEventArgs evt) {
|
private async void Menu_SummaryExport_Click(object sender, RoutedEventArgs evt) {
|
||||||
if (PaymentVariantList.SelectedItem is not PaymentVar v)
|
if (PaymentVariantList.SelectedItem is not PaymentVar v)
|
||||||
return;
|
return;
|
||||||
var d = new SaveFileDialog() {
|
await PaymentVariantService.GenerateSummary(v, ExportMode.SaveList);
|
||||||
FileName = $"Variantendaten-{v.Name.Trim().Replace(' ', '-')}.ods",
|
|
||||||
DefaultExt = "ods",
|
|
||||||
Filter = "OpenDocument Format Spreadsheet (*.ods)|*.ods",
|
|
||||||
Title = $"Variantendaten {v.Name} speichern unter - Elwig"
|
|
||||||
};
|
|
||||||
if (d.ShowDialog() == false)
|
|
||||||
return;
|
|
||||||
Mouse.OverrideCursor = Cursors.AppStarting;
|
|
||||||
try {
|
|
||||||
using var ctx = new AppDbContext();
|
|
||||||
var data = await PaymentVariantSummaryData.ForPaymentVariant(v, ctx.PaymentVariantSummaryRows);
|
|
||||||
using var ods = new OdsFile(d.FileName);
|
|
||||||
await ods.AddTable(data);
|
|
||||||
} catch (Exception exc) {
|
|
||||||
MessageBox.Show(exc.Message, "Fehler", MessageBoxButton.OK, MessageBoxImage.Error);
|
|
||||||
}
|
|
||||||
Mouse.OverrideCursor = null;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private async void Menu_SummaryShow_Click(object sender, RoutedEventArgs evt) {
|
private async void Menu_SummaryShow_Click(object sender, RoutedEventArgs evt) {
|
||||||
@@ -203,16 +179,8 @@ namespace Elwig.Windows {
|
|||||||
if (PaymentVariantList.SelectedItem is not PaymentVar v)
|
if (PaymentVariantList.SelectedItem is not PaymentVar v)
|
||||||
return;
|
return;
|
||||||
ViewModel.CommitIsEnabled = false;
|
ViewModel.CommitIsEnabled = false;
|
||||||
Mouse.OverrideCursor = Cursors.AppStarting;
|
await PaymentVariantService.Commit(v.Year, v.AvNr);
|
||||||
try {
|
|
||||||
var b = new BillingVariant(v.Year, v.AvNr);
|
|
||||||
await b.Commit();
|
|
||||||
} catch (Exception exc) {
|
|
||||||
MessageBox.Show(exc.Message, "Fehler", MessageBoxButton.OK, MessageBoxImage.Error);
|
|
||||||
}
|
|
||||||
Mouse.OverrideCursor = null;
|
|
||||||
ViewModel.RevertIsEnabled = true;
|
ViewModel.RevertIsEnabled = true;
|
||||||
App.HintContextChange();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private async void RevertButton_Click(object sender, RoutedEventArgs evt) {
|
private async void RevertButton_Click(object sender, RoutedEventArgs evt) {
|
||||||
@@ -225,11 +193,7 @@ namespace Elwig.Windows {
|
|||||||
if (res != MessageBoxResult.Yes)
|
if (res != MessageBoxResult.Yes)
|
||||||
return;
|
return;
|
||||||
ViewModel.RevertIsEnabled = false;
|
ViewModel.RevertIsEnabled = false;
|
||||||
Mouse.OverrideCursor = Cursors.AppStarting;
|
await PaymentVariantService.Revert(v.Year, v.AvNr);
|
||||||
var b = new BillingVariant(v.Year, v.AvNr);
|
|
||||||
await b.Revert();
|
|
||||||
App.HintContextChange();
|
|
||||||
Mouse.OverrideCursor = null;
|
|
||||||
ViewModel.CommitIsEnabled = true;
|
ViewModel.CommitIsEnabled = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user