[#43] PaymentVariantWindow: Do not use Context from ContextWindow any more
This commit is contained in:
@ -27,7 +27,9 @@ namespace Elwig.Windows {
|
||||
public PaymentVariantsWindow(int year) {
|
||||
InitializeComponent();
|
||||
Year = year;
|
||||
SeasonLocked = Context.Seasons.Find(Year + 1) != null;
|
||||
using (var ctx = new AppDbContext()) {
|
||||
SeasonLocked = ctx.Seasons.Find(Year + 1) != null;
|
||||
}
|
||||
Title = $"Auszahlungsvarianten - Lese {Year} - Elwig";
|
||||
if (!App.Config.Debug) {
|
||||
DataInput.Visibility = Visibility.Hidden;
|
||||
@ -35,7 +37,12 @@ namespace Elwig.Windows {
|
||||
}
|
||||
|
||||
protected override async Task OnRenewContext() {
|
||||
ControlUtils.RenewItemsSource(PaymentVariantList, await Context.PaymentVariants.Where(v => v.Year == Year).OrderBy(v => v.AvNr).ToListAsync(), v => (v as PaymentVar)?.AvNr);
|
||||
using var ctx = new AppDbContext();
|
||||
ControlUtils.RenewItemsSource(PaymentVariantList, await ctx.PaymentVariants
|
||||
.Where(v => v.Year == Year)
|
||||
.OrderBy(v => v.AvNr)
|
||||
.Include(v => v.Season.Currency)
|
||||
.ToListAsync(), v => (v as PaymentVar)?.AvNr);
|
||||
Update();
|
||||
}
|
||||
|
||||
@ -151,17 +158,25 @@ namespace Elwig.Windows {
|
||||
|
||||
private void UpdateSums() {
|
||||
if (PaymentVariantList.SelectedItem is PaymentVar v) {
|
||||
using var ctx = new AppDbContext();
|
||||
var sym = v.Season.Currency.Symbol;
|
||||
ModifierSum.Text = $"{v.DeliveryPartPayments.Sum(p => p.Amount - p.NetAmount):N2} {sym}";
|
||||
TotalSum.Text = $"{v.MemberPayments.Sum(p => p.Amount):N2} {sym}";
|
||||
if (v.Credits.Count == 0) {
|
||||
var modSum = ctx.PaymentDeliveryParts
|
||||
.Where(p => p.Year == v.Year && p.AvNr == v.AvNr)
|
||||
.Sum(p => p.AmountValue - p.NetAmountValue);
|
||||
ModifierSum.Text = $"{v.Season.DecFromDb(modSum):N2} {sym}";
|
||||
var totalSum = ctx.MemberPayments
|
||||
.Where(p => p.Year == v.Year && p.AvNr == v.AvNr)
|
||||
.Sum(p => p.AmountValue);
|
||||
TotalSum.Text = $"{v.Season.DecFromDb(totalSum):N2} {sym}";
|
||||
var credits = ctx.Credits.Where(c => c.Year == v.Year && c.AvNr == v.AvNr);
|
||||
if (!credits.Any()) {
|
||||
VatSum.Text = $"- {sym}";
|
||||
DeductionSum.Text = $"- {sym}";
|
||||
PaymentSum.Text = $"- {sym}";
|
||||
} else {
|
||||
VatSum.Text = $"{v.Credits.Sum(c => c.VatAmount):N2} {sym}";
|
||||
DeductionSum.Text = $"{-v.Credits.Sum(c => c.Modifiers ?? 0):N2} {sym}";
|
||||
PaymentSum.Text = $"{v.Credits.Sum(c => c.Amount):N2} {sym}";
|
||||
VatSum.Text = $"{v.Season.DecFromDb(credits.Sum(c => c.VatAmountValue)):N2} {sym}";
|
||||
DeductionSum.Text = $"{-v.Season.DecFromDb(credits.Sum(c => c.ModifiersValue ?? 0)):N2} {sym}";
|
||||
PaymentSum.Text = $"{v.Season.DecFromDb(credits.Sum(c => c.AmountValue)):N2} {sym}";
|
||||
}
|
||||
} else {
|
||||
ModifierSum.Text = "-";
|
||||
@ -178,17 +193,18 @@ namespace Elwig.Windows {
|
||||
|
||||
private async void AddButton_Click(object sender, RoutedEventArgs evt) {
|
||||
try {
|
||||
PaymentVar v = Context.CreateProxy<PaymentVar>();
|
||||
using var ctx = new AppDbContext();
|
||||
var v = new PaymentVar {
|
||||
Year = Year,
|
||||
AvNr = await ctx.NextAvNr(Year),
|
||||
Name = "Neue Auszahlungsvariante",
|
||||
TestVariant = true,
|
||||
DateString = $"{DateTime.Today:yyyy-MM-dd}",
|
||||
Data = "{\"mode\": \"elwig\", \"version\": 1, \"payment\": {}, \"curves\": []}",
|
||||
};
|
||||
|
||||
v.Year = Year;
|
||||
v.AvNr = await Context.NextAvNr(Year);
|
||||
v.Name = "Neue Auszahlungsvariante";
|
||||
v.TestVariant = true;
|
||||
v.DateString = $"{DateTime.Today:yyyy-MM-dd}";
|
||||
v.Data = "{\"mode\": \"elwig\", \"version\": 1, \"payment\": {}, \"curves\": []}";
|
||||
|
||||
await Context.AddAsync(v);
|
||||
await Context.SaveChangesAsync();
|
||||
ctx.Add(v);
|
||||
await ctx.SaveChangesAsync();
|
||||
await App.HintContextChange();
|
||||
|
||||
ControlUtils.SelectListBoxItem(PaymentVariantList, v, v => (v as PaymentVar)?.AvNr);
|
||||
@ -202,17 +218,18 @@ namespace Elwig.Windows {
|
||||
private async void CopyButton_Click(object sender, RoutedEventArgs evt) {
|
||||
if (PaymentVariantList.SelectedItem is not PaymentVar orig) return;
|
||||
try {
|
||||
PaymentVar n = Context.CreateProxy<PaymentVar>();
|
||||
using var ctx = new AppDbContext();
|
||||
var n = new PaymentVar {
|
||||
Year = orig.Year,
|
||||
AvNr = await ctx.NextAvNr(Year),
|
||||
Name = $"{orig.Name} (Kopie)",
|
||||
TestVariant = true,
|
||||
DateString = $"{DateTime.Today:yyyy-MM-dd}",
|
||||
Data = orig.Data,
|
||||
};
|
||||
|
||||
n.Year = orig.Year;
|
||||
n.AvNr = await Context.NextAvNr(Year);
|
||||
n.Name = $"{orig.Name} (Kopie)";
|
||||
n.TestVariant = true;
|
||||
n.DateString = $"{DateTime.Today:yyyy-MM-dd}";
|
||||
n.Data = orig.Data;
|
||||
|
||||
await Context.AddAsync(n);
|
||||
await Context.SaveChangesAsync();
|
||||
ctx.Add(n);
|
||||
await ctx.SaveChangesAsync();
|
||||
await App.HintContextChange();
|
||||
|
||||
ControlUtils.SelectListBoxItem(PaymentVariantList, n, v => (v as PaymentVar)?.AvNr);
|
||||
@ -226,8 +243,9 @@ namespace Elwig.Windows {
|
||||
private async void DeleteButton_Click(object sender, RoutedEventArgs evt) {
|
||||
if (PaymentVariantList.SelectedItem is not PaymentVar v || !v.TestVariant) return;
|
||||
try {
|
||||
Context.Remove(v);
|
||||
await Context.SaveChangesAsync();
|
||||
using var ctx = new AppDbContext();
|
||||
ctx.Remove(v);
|
||||
await ctx.SaveChangesAsync();
|
||||
await App.HintContextChange();
|
||||
} catch (Exception exc) {
|
||||
var str = "Der Eintrag konnte nicht in der Datenbank aktualisiert werden!\n\n" + exc.Message;
|
||||
@ -261,7 +279,8 @@ namespace Elwig.Windows {
|
||||
private async void MailButton_Click(object sender, RoutedEventArgs evt) {
|
||||
if (PaymentVariantList.SelectedItem is not PaymentVar pv)
|
||||
return;
|
||||
var vars = await Context.PaymentVariants
|
||||
using var ctx = new AppDbContext();
|
||||
var vars = await ctx.PaymentVariants
|
||||
.Where(v => pv.Year == v.Year)
|
||||
.OrderBy(v => v.AvNr)
|
||||
.Select(v => v.AvNr)
|
||||
@ -353,7 +372,8 @@ namespace Elwig.Windows {
|
||||
TransactionButton.IsEnabled = false;
|
||||
Mouse.OverrideCursor = Cursors.AppStarting;
|
||||
try {
|
||||
var tbl = await CreditNoteData.ForPaymentVariant(Context, v.Year, v.AvNr);
|
||||
using var ctx = new AppDbContext();
|
||||
var tbl = await CreditNoteData.ForPaymentVariant(ctx, v.Year, v.AvNr);
|
||||
using var ods = new OdsFile(d.FileName);
|
||||
await ods.AddTable(tbl);
|
||||
} catch (Exception exc) {
|
||||
@ -380,8 +400,12 @@ namespace Elwig.Windows {
|
||||
d.GrossWeightModifier = modVal < 0 ? modVal / 100.0 : 0;
|
||||
WeightModifierChanged = false;
|
||||
v.Data = JsonSerializer.Serialize(d.Data);
|
||||
Context.Update(v);
|
||||
await Context.SaveChangesAsync();
|
||||
|
||||
using (var ctx = new AppDbContext()) {
|
||||
ctx.Update(v);
|
||||
await ctx.SaveChangesAsync();
|
||||
}
|
||||
|
||||
await App.HintContextChange();
|
||||
CommentInput_TextChanged(null, null);
|
||||
ConsiderModifiersInput_Changed(null, null);
|
||||
|
Reference in New Issue
Block a user