Billing: Build BillingData-Json in BillingData instead of anywhere else
This commit is contained in:
@ -2,7 +2,6 @@ using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Drawing;
|
||||
using System.Linq;
|
||||
using System.Text.Json.Nodes;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows;
|
||||
using System.Windows.Controls;
|
||||
@ -26,7 +25,7 @@ namespace Elwig.Windows {
|
||||
public readonly int Year;
|
||||
public readonly int AvNr;
|
||||
public readonly Season Season;
|
||||
private readonly PaymentVar PaymentVar;
|
||||
private PaymentVar PaymentVar;
|
||||
|
||||
private ScatterPlot DataPlot;
|
||||
private ScatterPlot? GebundenPlot;
|
||||
@ -66,6 +65,7 @@ namespace Elwig.Windows {
|
||||
|
||||
private async Task RefreshGraphList() {
|
||||
await Context.PaymentVariants.LoadAsync();
|
||||
PaymentVar = await Context.PaymentVariants.FindAsync(Year, AvNr) ?? throw new ArgumentException("PaymentVar not found");
|
||||
|
||||
var attrVariants = (await Context.DeliveryParts
|
||||
.Where(d => d.Year == Year)
|
||||
@ -497,7 +497,7 @@ namespace Elwig.Windows {
|
||||
}
|
||||
|
||||
private void AddButton_Click(object sender, RoutedEventArgs e) {
|
||||
GraphEntry newGraphEntry = new(GetMaxGraphId() + 1, Season, BillingData.CurveMode.Oe, MinOechsle, MinOechsleGebunden, MaxOechsle);
|
||||
GraphEntry newGraphEntry = new(GetMaxGraphId() + 1, Season.Precision, BillingData.CurveMode.Oe, MinOechsle, MinOechsleGebunden, MaxOechsle);
|
||||
GraphEntries.Add(newGraphEntry);
|
||||
GraphList.Items.Refresh();
|
||||
GraphList.SelectedItem = newGraphEntry;
|
||||
@ -526,46 +526,23 @@ namespace Elwig.Windows {
|
||||
}
|
||||
|
||||
private async void SaveButton_Click(object sender, RoutedEventArgs e) {
|
||||
await SaveGraphs();
|
||||
}
|
||||
var origData = BillingData.FromJson(PaymentVar.Data);
|
||||
var data = origData.FromGraphEntries(GraphEntries);
|
||||
|
||||
private async Task SaveGraphs() {
|
||||
var payment = new JsonObject();
|
||||
var curves = new JsonArray();
|
||||
|
||||
foreach (var entry in GraphEntries) {
|
||||
curves.Add(entry.ToJson());
|
||||
foreach (var contract in entry.Contracts) {
|
||||
payment[$"{contract.Variety?.SortId}/{contract.Attribute?.AttrId}"] = $"curve:{entry.Id}";
|
||||
}
|
||||
}
|
||||
|
||||
var data = new JsonObject {
|
||||
["mode"] = "elwig",
|
||||
["version"] = 1,
|
||||
["payment"] = payment,
|
||||
["curves"] = curves
|
||||
};
|
||||
|
||||
|
||||
MessageBox.Show(data.ToJsonString());
|
||||
|
||||
/*
|
||||
EntityEntry<PaymentVar>? tr = null;
|
||||
try {
|
||||
PaymentVar.Data = data.ToJsonString();
|
||||
tr = Context.Update(PaymentVar);
|
||||
|
||||
await Context.SaveChangesAsync();
|
||||
LockContext = false;
|
||||
await App.HintContextChange();
|
||||
await RefreshGraphList();
|
||||
} catch (Exception exc) {
|
||||
if (tr != null) await tr.ReloadAsync();
|
||||
var str = "Der Eintrag konnte nicht in der Datenbank gespeichert werden!\n\n" + exc.Message;
|
||||
if (exc.InnerException != null) str += "\n\n" + exc.InnerException.Message;
|
||||
MessageBox.Show(str, "Graph speichern", MessageBoxButton.OK, MessageBoxImage.Error);
|
||||
MessageBox.Show(str, "Auszahlungsvariante speichern", MessageBoxButton.OK, MessageBoxImage.Error);
|
||||
}
|
||||
*/
|
||||
LockContext = true;
|
||||
}
|
||||
|
||||
private void EnableUnitTextBox(UnitTextBox u) {
|
||||
|
Reference in New Issue
Block a user