[#43] PaymentVariantWindow: Do not use Context from ContextWindow any more
This commit is contained in:
@ -56,6 +56,7 @@ namespace Elwig.Helpers {
|
|||||||
public DbSet<DeliveryPartModifier> DeliveryPartModifiers { get; private set; }
|
public DbSet<DeliveryPartModifier> DeliveryPartModifiers { get; private set; }
|
||||||
public DbSet<PaymentVar> PaymentVariants { get; private set; }
|
public DbSet<PaymentVar> PaymentVariants { get; private set; }
|
||||||
public DbSet<PaymentMember> MemberPayments { get; private set; }
|
public DbSet<PaymentMember> MemberPayments { get; private set; }
|
||||||
|
public DbSet<PaymentDeliveryPart> PaymentDeliveryParts { get; private set; }
|
||||||
public DbSet<Credit> Credits { get; private set; }
|
public DbSet<Credit> Credits { get; private set; }
|
||||||
|
|
||||||
public DbSet<OverUnderDeliveryRow> OverUnderDeliveryRows { get; private set; }
|
public DbSet<OverUnderDeliveryRow> OverUnderDeliveryRows { get; private set; }
|
||||||
|
@ -27,7 +27,9 @@ namespace Elwig.Windows {
|
|||||||
public PaymentVariantsWindow(int year) {
|
public PaymentVariantsWindow(int year) {
|
||||||
InitializeComponent();
|
InitializeComponent();
|
||||||
Year = year;
|
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";
|
Title = $"Auszahlungsvarianten - Lese {Year} - Elwig";
|
||||||
if (!App.Config.Debug) {
|
if (!App.Config.Debug) {
|
||||||
DataInput.Visibility = Visibility.Hidden;
|
DataInput.Visibility = Visibility.Hidden;
|
||||||
@ -35,7 +37,12 @@ namespace Elwig.Windows {
|
|||||||
}
|
}
|
||||||
|
|
||||||
protected override async Task OnRenewContext() {
|
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();
|
Update();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -151,17 +158,25 @@ namespace Elwig.Windows {
|
|||||||
|
|
||||||
private void UpdateSums() {
|
private void UpdateSums() {
|
||||||
if (PaymentVariantList.SelectedItem is PaymentVar v) {
|
if (PaymentVariantList.SelectedItem is PaymentVar v) {
|
||||||
|
using var ctx = new AppDbContext();
|
||||||
var sym = v.Season.Currency.Symbol;
|
var sym = v.Season.Currency.Symbol;
|
||||||
ModifierSum.Text = $"{v.DeliveryPartPayments.Sum(p => p.Amount - p.NetAmount):N2} {sym}";
|
var modSum = ctx.PaymentDeliveryParts
|
||||||
TotalSum.Text = $"{v.MemberPayments.Sum(p => p.Amount):N2} {sym}";
|
.Where(p => p.Year == v.Year && p.AvNr == v.AvNr)
|
||||||
if (v.Credits.Count == 0) {
|
.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}";
|
VatSum.Text = $"- {sym}";
|
||||||
DeductionSum.Text = $"- {sym}";
|
DeductionSum.Text = $"- {sym}";
|
||||||
PaymentSum.Text = $"- {sym}";
|
PaymentSum.Text = $"- {sym}";
|
||||||
} else {
|
} else {
|
||||||
VatSum.Text = $"{v.Credits.Sum(c => c.VatAmount):N2} {sym}";
|
VatSum.Text = $"{v.Season.DecFromDb(credits.Sum(c => c.VatAmountValue)):N2} {sym}";
|
||||||
DeductionSum.Text = $"{-v.Credits.Sum(c => c.Modifiers ?? 0):N2} {sym}";
|
DeductionSum.Text = $"{-v.Season.DecFromDb(credits.Sum(c => c.ModifiersValue ?? 0)):N2} {sym}";
|
||||||
PaymentSum.Text = $"{v.Credits.Sum(c => c.Amount):N2} {sym}";
|
PaymentSum.Text = $"{v.Season.DecFromDb(credits.Sum(c => c.AmountValue)):N2} {sym}";
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
ModifierSum.Text = "-";
|
ModifierSum.Text = "-";
|
||||||
@ -178,17 +193,18 @@ namespace Elwig.Windows {
|
|||||||
|
|
||||||
private async void AddButton_Click(object sender, RoutedEventArgs evt) {
|
private async void AddButton_Click(object sender, RoutedEventArgs evt) {
|
||||||
try {
|
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;
|
ctx.Add(v);
|
||||||
v.AvNr = await Context.NextAvNr(Year);
|
await ctx.SaveChangesAsync();
|
||||||
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();
|
|
||||||
await App.HintContextChange();
|
await App.HintContextChange();
|
||||||
|
|
||||||
ControlUtils.SelectListBoxItem(PaymentVariantList, v, v => (v as PaymentVar)?.AvNr);
|
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) {
|
private async void CopyButton_Click(object sender, RoutedEventArgs evt) {
|
||||||
if (PaymentVariantList.SelectedItem is not PaymentVar orig) return;
|
if (PaymentVariantList.SelectedItem is not PaymentVar orig) return;
|
||||||
try {
|
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;
|
ctx.Add(n);
|
||||||
n.AvNr = await Context.NextAvNr(Year);
|
await ctx.SaveChangesAsync();
|
||||||
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();
|
|
||||||
await App.HintContextChange();
|
await App.HintContextChange();
|
||||||
|
|
||||||
ControlUtils.SelectListBoxItem(PaymentVariantList, n, v => (v as PaymentVar)?.AvNr);
|
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) {
|
private async void DeleteButton_Click(object sender, RoutedEventArgs evt) {
|
||||||
if (PaymentVariantList.SelectedItem is not PaymentVar v || !v.TestVariant) return;
|
if (PaymentVariantList.SelectedItem is not PaymentVar v || !v.TestVariant) return;
|
||||||
try {
|
try {
|
||||||
Context.Remove(v);
|
using var ctx = new AppDbContext();
|
||||||
await Context.SaveChangesAsync();
|
ctx.Remove(v);
|
||||||
|
await ctx.SaveChangesAsync();
|
||||||
await App.HintContextChange();
|
await 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;
|
||||||
@ -261,7 +279,8 @@ namespace Elwig.Windows {
|
|||||||
private async void MailButton_Click(object sender, RoutedEventArgs evt) {
|
private async void MailButton_Click(object sender, RoutedEventArgs evt) {
|
||||||
if (PaymentVariantList.SelectedItem is not PaymentVar pv)
|
if (PaymentVariantList.SelectedItem is not PaymentVar pv)
|
||||||
return;
|
return;
|
||||||
var vars = await Context.PaymentVariants
|
using var ctx = new AppDbContext();
|
||||||
|
var vars = await ctx.PaymentVariants
|
||||||
.Where(v => pv.Year == v.Year)
|
.Where(v => pv.Year == v.Year)
|
||||||
.OrderBy(v => v.AvNr)
|
.OrderBy(v => v.AvNr)
|
||||||
.Select(v => v.AvNr)
|
.Select(v => v.AvNr)
|
||||||
@ -353,7 +372,8 @@ namespace Elwig.Windows {
|
|||||||
TransactionButton.IsEnabled = false;
|
TransactionButton.IsEnabled = false;
|
||||||
Mouse.OverrideCursor = Cursors.AppStarting;
|
Mouse.OverrideCursor = Cursors.AppStarting;
|
||||||
try {
|
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);
|
using var ods = new OdsFile(d.FileName);
|
||||||
await ods.AddTable(tbl);
|
await ods.AddTable(tbl);
|
||||||
} catch (Exception exc) {
|
} catch (Exception exc) {
|
||||||
@ -380,8 +400,12 @@ namespace Elwig.Windows {
|
|||||||
d.GrossWeightModifier = modVal < 0 ? modVal / 100.0 : 0;
|
d.GrossWeightModifier = modVal < 0 ? modVal / 100.0 : 0;
|
||||||
WeightModifierChanged = false;
|
WeightModifierChanged = false;
|
||||||
v.Data = JsonSerializer.Serialize(d.Data);
|
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();
|
await App.HintContextChange();
|
||||||
CommentInput_TextChanged(null, null);
|
CommentInput_TextChanged(null, null);
|
||||||
ConsiderModifiersInput_Changed(null, null);
|
ConsiderModifiersInput_Changed(null, null);
|
||||||
|
Reference in New Issue
Block a user