From 7af27ab5def37d65907889b036cd669e8b8a45dd Mon Sep 17 00:00:00 2001 From: Lorenz Stechauner Date: Wed, 9 Aug 2023 22:41:00 +0200 Subject: [PATCH] Lieferscheine --- Elwig/App.xaml.cs | 31 +++++++- Elwig/Documents/BusinessDocument.cshtml | 2 +- Elwig/Documents/BusinessDocument.cshtml.cs | 14 +++- Elwig/Documents/BusinessLetter.cshtml.cs | 4 +- Elwig/Documents/DeliveryNote.cshtml | 61 +++++++++++--- Elwig/Documents/DeliveryNote.cshtml.cs | 10 ++- Elwig/Documents/Document.cshtml | 2 +- Elwig/Documents/Document.cshtml.cs | 20 +++-- Elwig/Documents/style.css | 93 +++++++++++++++++++++- Elwig/Helpers/ClientParameters.cs | 16 ++++ Elwig/Models/Branch.cs | 24 ++++++ Elwig/Models/Delivery.cs | 2 +- Elwig/Models/DeliveryPart.cs | 2 + Elwig/Models/WineOrigin.cs | 2 + Elwig/Windows/DeliveryAdminWindow.xaml | 5 +- Elwig/Windows/DeliveryAdminWindow.xaml.cs | 20 ++++- 16 files changed, 269 insertions(+), 39 deletions(-) diff --git a/Elwig/App.xaml.cs b/Elwig/App.xaml.cs index 62f78a4..6c7eaff 100644 --- a/Elwig/App.xaml.cs +++ b/Elwig/App.xaml.cs @@ -20,6 +20,13 @@ namespace Elwig { public static readonly Config Config = new(DataPath + "config.ini"); public static string ZwstId { get; private set; } + public static string BranchName { get; private set; } + public static int? BranchPlz { get; private set; } + public static string? BranchOrt { get; private set; } + public static string? BranchAddress { get; private set; } + public static string? BranchPhoneNr { get; private set; } + public static string? BranchFaxNr { get; private set; } + public static string? BranchMobileNr { get; private set; } public static IEnumerable Scales { get; private set; } public static ClientParameters Client { get; private set; } @@ -48,13 +55,13 @@ namespace Elwig { new FrameworkPropertyMetadata(XmlLanguage.GetLanguage(CultureInfo.CurrentCulture.IetfLanguageTag)) ); - Dictionary branches = new(); + Dictionary branches = new(); using (var ctx = new AppDbContext()) { if (!ctx.Database.CanConnect()) { MessageBox.Show($"Invalid Database:\n\n{Config.DatabaseFile}", "Invalid Database", MessageBoxButton.OK, MessageBoxImage.Error); Shutdown(); } else { - branches = ctx.Branches.ToDictionary(b => b.Name.ToLower(), b => b.ZwstId); + 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)); } } Utils.RunBackground("HTML Initialization", () => Documents.Html.Init(PrintingReadyChanged)); @@ -88,10 +95,26 @@ namespace Elwig { MessageBox.Show("Invalid branch name in config!", "Invalid Branch Config", MessageBoxButton.OK, MessageBoxImage.Error); Shutdown(); } else { - ZwstId = branches[Config.Branch.ToLower()]; + var entry = branches[Config.Branch.ToLower()]; + ZwstId = entry.Item1; + BranchName = entry.Item2; + BranchPlz = entry.Item3; + BranchOrt = entry.Item4; + BranchAddress = entry.Item5; + BranchPhoneNr = entry.Item6; + BranchFaxNr = entry.Item7; + BranchMobileNr = entry.Item8; } } else if (branches.Count == 1) { - ZwstId = branches.First().Value; + var entry = branches.First().Value; + ZwstId = entry.Item1; + BranchName = entry.Item2; + BranchPlz = entry.Item3; + BranchOrt = entry.Item4; + BranchAddress = entry.Item5; + BranchPhoneNr = entry.Item6; + BranchFaxNr = entry.Item7; + BranchMobileNr = entry.Item8; } else { MessageBox.Show("Unable to determine local branch!", "Invalid Branch Config", MessageBoxButton.OK, MessageBoxImage.Error); Shutdown(); diff --git a/Elwig/Documents/BusinessDocument.cshtml b/Elwig/Documents/BusinessDocument.cshtml index 3fc80fd..425642c 100644 --- a/Elwig/Documents/BusinessDocument.cshtml +++ b/Elwig/Documents/BusinessDocument.cshtml @@ -13,7 +13,7 @@
@Model.Address
- +
@RenderBody() diff --git a/Elwig/Documents/BusinessDocument.cshtml.cs b/Elwig/Documents/BusinessDocument.cshtml.cs index df5d5b3..1cee709 100644 --- a/Elwig/Documents/BusinessDocument.cshtml.cs +++ b/Elwig/Documents/BusinessDocument.cshtml.cs @@ -5,10 +5,20 @@ namespace Elwig.Documents { public Member Member; public bool IncludeSender = false; + public string Aside { get; set; } + public string? Location { get; set; } public BusinessDocument(string title, Member m, bool includeSender = false) : base(title) { Member = m; + Location = App.BranchName; IncludeSender = includeSender; + var uid = (m.UstId ?? "-") + (m.IsBuchführend ? "" : " (pauschaliert)"); + Aside = $"" + + $"" + + $"" + + $"" + + $"" + + $"
Mitglied
Mitglieds-Nr.{m.MgNr}
Betriebs-Nr.{m.LfbisNr}
UID{uid}
"; } public string Address { @@ -16,9 +26,9 @@ namespace Elwig.Documents { var b = Member.BillingAddress; var plz = (b == null) ? Member.PostalDest.AtPlz : b.PostalDest.AtPlz; if (b != null) { - return $"{b.Name}\n{b.Address}\n{plz.Plz} {plz.Dest}"; + return $"{b.Name}\n{Member.AdministrativeName}\n{b.Address}\n{plz.Plz} {plz.Dest}\nÖsterreich"; } else { - return $"{Member.AdministrativeName}\n{Member.Address}\n{plz.Plz} {plz.Dest}"; + return $"{Member.AdministrativeName}\n{Member.Address}\n{plz.Plz} {plz.Dest}\nÖsterreich"; } } } diff --git a/Elwig/Documents/BusinessLetter.cshtml.cs b/Elwig/Documents/BusinessLetter.cshtml.cs index 8b44a00..4fac26d 100644 --- a/Elwig/Documents/BusinessLetter.cshtml.cs +++ b/Elwig/Documents/BusinessLetter.cshtml.cs @@ -2,8 +2,6 @@ using Elwig.Models; namespace Elwig.Documents { public class BusinessLetter : BusinessDocument { - public BusinessLetter(string title, Member m) : base(title, m) { - - } + public BusinessLetter(string title, Member m) : base(title, m) { } } } diff --git a/Elwig/Documents/DeliveryNote.cshtml b/Elwig/Documents/DeliveryNote.cshtml index 5c46ac3..59cd4df 100644 --- a/Elwig/Documents/DeliveryNote.cshtml +++ b/Elwig/Documents/DeliveryNote.cshtml @@ -3,30 +3,67 @@ @model Elwig.Documents.DeliveryNote @{ Layout = "BusinessDocument"; } -

Traubenübernahmeschein Nr. @Model.Delivery.LsNr

- +
@Model.Location, am @($"{Model.Date:dd.MM.yyyy}")
+

@Model.Title

+
++ + + + + + + + - - + + + + - - - + + + @foreach (var part in Model.Delivery.Parts.OrderBy(p => p.DPNr)) { - + + + - - - + + + - } + + + @if (part.Comment != null) { + + } + @if (part.Temperature != null || part.Acid != null) { + + } + }
SorteQualitätsstufePos.SorteAttribut(e)Qualitätsstufe Gradation Gewicht
°KMW°Oekg[°Oe][°KMW][kg]
@part.DPNr @part.Variant.Name@string.Join(" / ", part.Attributes) @part.Quality.Name@part.Kmw@part.Oe@part.Weight@($"{part.Oe:N0}")@($"{part.Kmw:N1}")@($"{part.Weight:N0}")
Herkunft: @part.OriginString
+ @(part.ManualWeighing ? "Handwiegung" : $"Waage: {part.ScaleId ?? "?"}, ID: {part.WeighingId ?? "?"}") (@(part.IsGerebelt ? "gerebelt gewogen" : "nicht gerebelt gewogen")) +
Anmerkung: @part.Comment
@(part.Temperature != null ? $"Temperatur: {part.Temperature:N1} °C" : "")@(part.Temperature != null && part.Acid != null ? ", " : "")@(part.Acid != null ? $"Säure: {part.Acid:N1} g/l" : "")
+@if (Model.Delivery.Comment != null) { +

Amerkung zur Lieferung: @Model.Delivery.Comment

+} +
+ +@if (Model.Text != null) { +

@Model.Text

+} +
+
Genossenschaft
+
Mitglied
+
+
diff --git a/Elwig/Documents/DeliveryNote.cshtml.cs b/Elwig/Documents/DeliveryNote.cshtml.cs index 1900649..9915ba6 100644 --- a/Elwig/Documents/DeliveryNote.cshtml.cs +++ b/Elwig/Documents/DeliveryNote.cshtml.cs @@ -4,9 +4,17 @@ namespace Elwig.Documents { public class DeliveryNote : BusinessDocument { public Delivery Delivery; + public string? Text; - public DeliveryNote(Delivery d) : base($"Lieferschein {d.LsNr}", d.Member) { + public DeliveryNote(Delivery d) : base($"Traubenübernahmeschein Nr. {d.LsNr}", d.Member) { Delivery = d; + Aside = Aside.Replace("", "") + + $"Lieferung" + + $"LS-Nr.{d.LsNr}" + + $"Datum/Zeit{d.Date:dd.MM.yyyy} / {d.Time:HH:mm}" + + $"Zweigstelle{d.Branch.Name}" + + $""; + Text = App.Client.DeliveryNoteText; } } } diff --git a/Elwig/Documents/Document.cshtml b/Elwig/Documents/Document.cshtml index 494c18d..d711c63 100644 --- a/Elwig/Documents/Document.cshtml +++ b/Elwig/Documents/Document.cshtml @@ -24,7 +24,7 @@
@Raw(Model.Header)