[#46] PaymentAdjustmentWindow: Persist parameters in ClientParameters
All checks were successful
Test / Run tests (push) Successful in 1m53s
All checks were successful
Test / Run tests (push) Successful in 1m53s
This commit is contained in:
@ -1,6 +1,7 @@
|
|||||||
using Elwig.Models.Entities;
|
using Elwig.Models.Entities;
|
||||||
using Microsoft.Data.Sqlite;
|
using Microsoft.Data.Sqlite;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
|
using System.Globalization;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
@ -69,6 +70,8 @@ namespace Elwig.Helpers {
|
|||||||
public int ExportEbicsVersion;
|
public int ExportEbicsVersion;
|
||||||
public int ExportEbicsAddress;
|
public int ExportEbicsAddress;
|
||||||
|
|
||||||
|
public (int? AllowanceKg, double? AllowanceBs, int? AllowanceKgPerBs, double? AllowancePercent, int? MinBs) AutoAdjustBs;
|
||||||
|
|
||||||
public ClientParameters(AppDbContext ctx) : this(ctx.ClientParameters.ToDictionary(e => e.Param, e => e.Value)) { }
|
public ClientParameters(AppDbContext ctx) : this(ctx.ClientParameters.ToDictionary(e => e.Param, e => e.Value)) { }
|
||||||
|
|
||||||
public ClientParameters(Dictionary<string, string?> parameters) {
|
public ClientParameters(Dictionary<string, string?> parameters) {
|
||||||
@ -138,6 +141,15 @@ namespace Elwig.Helpers {
|
|||||||
case "LINES": ExportEbicsAddress = 1; break;
|
case "LINES": ExportEbicsAddress = 1; break;
|
||||||
case "FULL": ExportEbicsAddress = 2; break;
|
case "FULL": ExportEbicsAddress = 2; break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var autoAdjust = (parameters.GetValueOrDefault("AUTOADJUST_BUSINESSSHARES") ?? "").Split(';');
|
||||||
|
AutoAdjustBs = autoAdjust.Length == 5 ? (
|
||||||
|
int.TryParse(autoAdjust[0], out var v1) ? v1 : null,
|
||||||
|
double.TryParse(autoAdjust[1], out var v2) ? v2 : null,
|
||||||
|
int.TryParse(autoAdjust[2], out var v3) ? v3 : null,
|
||||||
|
double.TryParse(autoAdjust[3], out var v4) ? v4 : null,
|
||||||
|
int.TryParse(autoAdjust[4], out var v5) ? v5 : null
|
||||||
|
) : (null, null, null, null, null);
|
||||||
} catch {
|
} catch {
|
||||||
throw new KeyNotFoundException();
|
throw new KeyNotFoundException();
|
||||||
}
|
}
|
||||||
@ -171,6 +183,9 @@ namespace Elwig.Helpers {
|
|||||||
case 1: exportEbicsAddress = "LINES"; break;
|
case 1: exportEbicsAddress = "LINES"; break;
|
||||||
case 2: exportEbicsAddress = "FULL"; break;
|
case 2: exportEbicsAddress = "FULL"; break;
|
||||||
}
|
}
|
||||||
|
string autoAdjust = $"{AutoAdjustBs.AllowanceKg};{AutoAdjustBs.AllowanceBs?.ToString(CultureInfo.InvariantCulture)};" +
|
||||||
|
$"{AutoAdjustBs.AllowanceKgPerBs};{AutoAdjustBs.AllowancePercent?.ToString(CultureInfo.InvariantCulture)};" +
|
||||||
|
$"{AutoAdjustBs.MinBs}";
|
||||||
return [
|
return [
|
||||||
("CLIENT_NAME_TOKEN", NameToken),
|
("CLIENT_NAME_TOKEN", NameToken),
|
||||||
("CLIENT_NAME_SHORT", NameShort),
|
("CLIENT_NAME_SHORT", NameShort),
|
||||||
@ -199,6 +214,7 @@ namespace Elwig.Helpers {
|
|||||||
("TEXT_EMAIL_BODY", TextEmailBody),
|
("TEXT_EMAIL_BODY", TextEmailBody),
|
||||||
("EXPORT_EBICS_VERSION", ExportEbicsVersion.ToString()),
|
("EXPORT_EBICS_VERSION", ExportEbicsVersion.ToString()),
|
||||||
("EXPORT_EBICS_ADDRESS", exportEbicsAddress),
|
("EXPORT_EBICS_ADDRESS", exportEbicsAddress),
|
||||||
|
("AUTOADJUST_BUSINESSSHARES", autoAdjust),
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -23,6 +23,12 @@ namespace Elwig.Windows {
|
|||||||
SeasonLocked = ctx.Seasons.Find(Year + 1) != null;
|
SeasonLocked = ctx.Seasons.Find(Year + 1) != null;
|
||||||
}
|
}
|
||||||
Title = $"Auszahlung anpassen - Lese {Year} - Elwig";
|
Title = $"Auszahlung anpassen - Lese {Year} - Elwig";
|
||||||
|
|
||||||
|
AllowanceKgInput.Text = $"{App.Client.AutoAdjustBs.AllowanceKg}";
|
||||||
|
AllowanceBsInput.Text = $"{App.Client.AutoAdjustBs.AllowanceBs}";
|
||||||
|
AllowanceKgPerBsInput.Text = $"{App.Client.AutoAdjustBs.AllowanceKgPerBs}";
|
||||||
|
AllowancePercentInput.Text = $"{App.Client.AutoAdjustBs.AllowancePercent}";
|
||||||
|
MinBsInput.Text = $"{App.Client.AutoAdjustBs.MinBs}";
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override async Task OnRenewContext(AppDbContext ctx) {
|
protected override async Task OnRenewContext(AppDbContext ctx) {
|
||||||
@ -86,6 +92,13 @@ namespace Elwig.Windows {
|
|||||||
double? percent = AllowancePercentInput.Text == "" ? null : double.Parse(AllowancePercentInput.Text);
|
double? percent = AllowancePercentInput.Text == "" ? null : double.Parse(AllowancePercentInput.Text);
|
||||||
int? minBs = MinBsInput.Text == "" ? null : int.Parse(MinBsInput.Text);
|
int? minBs = MinBsInput.Text == "" ? null : int.Parse(MinBsInput.Text);
|
||||||
|
|
||||||
|
App.Client.AutoAdjustBs.AllowanceKg = kg;
|
||||||
|
App.Client.AutoAdjustBs.AllowanceBs = bs;
|
||||||
|
App.Client.AutoAdjustBs.AllowanceKgPerBs = kgPerBs;
|
||||||
|
App.Client.AutoAdjustBs.AllowancePercent = percent;
|
||||||
|
App.Client.AutoAdjustBs.MinBs = minBs;
|
||||||
|
await App.Client.UpdateValues();
|
||||||
|
|
||||||
var b = new Billing(Year);
|
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);
|
await b.AutoAdjustBusinessShares(new DateOnly(Year, 11, 30), kg ?? default, bs ?? default, kgPerBs ?? default, percent / 100.0 ?? default, minBs ?? default);
|
||||||
await App.HintContextChange();
|
await App.HintContextChange();
|
||||||
|
Reference in New Issue
Block a user