Load client parameters from database

This commit is contained in:
2023-08-17 16:39:05 +02:00
parent 258b2b3c5b
commit 3ab2b8a8dc
2 changed files with 51 additions and 29 deletions

View File

@ -61,15 +61,21 @@ namespace Elwig {
if (!ctx.Database.CanConnect()) { if (!ctx.Database.CanConnect()) {
MessageBox.Show($"Invalid Database:\n\n{Config.DatabaseFile}", "Invalid Database", MessageBoxButton.OK, MessageBoxImage.Error); MessageBox.Show($"Invalid Database:\n\n{Config.DatabaseFile}", "Invalid Database", MessageBoxButton.OK, MessageBoxImage.Error);
Shutdown(); Shutdown();
return;
} else { } else {
branches = ctx.Branches.ToDictionary(b => b.Name.ToLower(), b => (b.ZwstId, b.Name, b.PostalDest?.AtPlz?.Plz, b.PostalDest?.AtPlz?.Dest, b.Address, b.PhoneNr, b.FaxNr, b.MobileNr)); branches = ctx.Branches.ToDictionary(b => b.Name.ToLower(), b => (b.ZwstId, b.Name, b.PostalDest?.AtPlz?.Plz, b.PostalDest?.AtPlz?.Dest, b.Address, b.PhoneNr, b.FaxNr, b.MobileNr));
try {
Client = new(ctx);
} catch (Exception e) {
MessageBox.Show($"Fehler beim Laden der Mandantendaten:\n\n{e.Message}", "Fehler");
Shutdown();
return;
}
} }
} }
Utils.RunBackground("HTML Initialization", () => Documents.Html.Init(PrintingReadyChanged)); Utils.RunBackground("HTML Initialization", () => Documents.Html.Init(PrintingReadyChanged));
Utils.RunBackground("PDF Initialization", () => Documents.Pdf.Init(PrintingReadyChanged)); Utils.RunBackground("PDF Initialization", () => Documents.Pdf.Init(PrintingReadyChanged));
Client = new();
var list = new List<IScale>(); var list = new List<IScale>();
foreach (var s in Config.Scales) { foreach (var s in Config.Scales) {
try { try {

View File

@ -1,4 +1,6 @@
using Elwig.Models; using Elwig.Models;
using System.Collections.Generic;
using System.Linq;
namespace Elwig.Helpers { namespace Elwig.Helpers {
public class ClientParameters { public class ClientParameters {
@ -9,8 +11,9 @@ namespace Elwig.Helpers {
public string NameShort; public string NameShort;
public string NameShortened; public string NameShortened;
public string Name; public string Name;
public string NameSuffix; public string? NameSuffix;
public string NameFull => $"{Name} {NameSuffix}"; public string NameType;
public string NameFull => NameSuffix == null ? $"{Name} {NameType}" : $"{Name}, {NameSuffix}, {NameType}";
public Type? Client; public Type? Client;
public PostalDest PostalDest { public PostalDest PostalDest {
@ -35,33 +38,46 @@ namespace Elwig.Helpers {
public string? EmailAddress; public string? EmailAddress;
public string? Website; public string? Website;
public int DeliveryObligation;
public int DeliveryRight;
public string? DeliveryNoteText; public string? DeliveryNoteText;
public ClientParameters() { public ClientParameters(AppDbContext ctx) : this(ctx.ClientParameters.ToDictionary(e => e.Param, e => e.Value)) { }
NameToken = "WGM";
NameShort = "WG Matzen"; public ClientParameters(Dictionary<string, string?> parameters) {
NameShortened = "Winzergenossenschaft f. Matzen u. Umgebung"; try {
Name = "Winzergenossenschaft für Matzen und Umgebung"; NameToken = parameters["CLIENT_NAME_TOKEN"] ?? throw new KeyNotFoundException();
NameSuffix = "reg. Gen.m.b.H."; NameShort = parameters["CLIENT_NAME_SHORT"] ?? throw new KeyNotFoundException();
Client = Type.Matzen; Name = parameters["CLIENT_NAME"] ?? throw new KeyNotFoundException();
Plz = 2243; NameShortened = parameters["CLIENT_NAME_SHORTENED"] ?? Name;
Ort = "Matzen"; NameSuffix = parameters.GetValueOrDefault("CLIENT_NAME_SUFFIX");
Address = "Schloßstraße 6"; NameType = parameters["CLIENT_NAME_TYPE"] ?? throw new KeyNotFoundException();
PhoneNr = "+43 2289 2221"; switch (Name) {
FaxNr = "+43 2289 2221"; case "Winzergenossenschaft für Matzen und Umgebung": Client = Type.Matzen; break;
EmailAddress = "winzermatzen@aon.at"; case "Winzerkeller im Weinviertel": Client = Type.GWK; break;
Website = "winzermatzen.at"; };
LfbisNr = "0901768";
UstId = "ATU16328105"; Plz = int.Parse(parameters["CLIENT_PLZ"] ?? "");
Bic = "RLNWATWWGAE"; Ort = parameters["CLIENT_ORT"] ?? throw new KeyNotFoundException();
Iban = "AT92 3209 2000 0240 0075"; Address = parameters["CLIENT_ADDRESS"] ?? throw new KeyNotFoundException();
Sender2 = "E Österreichische Post AG Eco Brief"; PhoneNr = parameters.GetValueOrDefault("CLIENT_PHONE");
DeliveryNoteText = "Das Mitglied erklärt, dass die gelieferte Ware dem österreichischen Weingesetz entspricht und insbesondere die " + FaxNr = parameters.GetValueOrDefault("CLIENT_FAX");
"Bestimmungen über die Mengenbeschränkungen sowie für die Erzeugung von Wein besonderer Leseart eingehalten wird. " + EmailAddress = parameters.GetValueOrDefault("CLIENT_EMAIL");
"Alle maßgeblichen Veränderungen obiger Angaben sind der Winzergenossenschaft unverzüglich zu melden. " + Website = parameters.GetValueOrDefault("CLIENT_WEBSITE");
"Das Mitglied bestätigt weiters mit seiner Unterschrift, dass die gelieferten Trauben entsprechend der guten Herstellungspraxis erzeugt wurden, " + LfbisNr = parameters.GetValueOrDefault("CLIENT_LFBISNR");
"insbesondere die Einhaltung der vom Hersteller vorgegebenen Wartefristen für Pflanzenschutzmittel. " + UstId = parameters.GetValueOrDefault("CLIENT_USTIDNR");
"Weiters wird bestätigt, dass die Datenschutzerklärung der Winzergenossenschaft für Matzen und Umgebung in der Übernahmestelle zur freien Entnahme aufliegt."; Bic = parameters.GetValueOrDefault("CLIENT_BIC");
Iban = parameters.GetValueOrDefault("CLIENT_IBAN");
Sender2 = parameters.GetValueOrDefault("DOCUMENT_SENDER") ?? "";
DeliveryObligation = int.Parse(parameters["DELIVERY_OBLIGATION"] ?? "");
DeliveryRight = int.Parse(parameters["DELIVERY_RIGHT"] ?? "");
DeliveryNoteText = parameters.GetValueOrDefault("DELIVERY_NOTE_TEXT");
} catch {
throw new KeyNotFoundException();
}
} }
} }
} }