diff --git a/Elwig/Documents/DeliveryJournal.cshtml b/Elwig/Documents/DeliveryJournal.cshtml new file mode 100644 index 0000000..678aab4 --- /dev/null +++ b/Elwig/Documents/DeliveryJournal.cshtml @@ -0,0 +1,67 @@ +@using RazorLight +@inherits TemplatePage +@model Elwig.Documents.DeliveryJournal +@{ Layout = "Document"; } + +
+

Lieferjournal

+

@Model.Filter

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @foreach (var p in Model.Deliveries) { + + + + + + + + + + + + + } + + @{ + var kmw = Elwig.Helpers.Utils.AggregateDeliveryPartsKmw(Model.Deliveries); + var oe = Elwig.Helpers.Utils.KmwToOe(kmw); + } + + + + + + + +
Lieferschein-Nr.Pos.DatumZeitMitgliedSorteGradationGewicht
[°Oe][°KMW][kg]
@p.Delivery.LsNr@p.DPNr@($"{p.Delivery.Date:dd.MM.yyyy}")@($"{p.Delivery.Time:HH:mm}")@p.Delivery.Member.MgNr@p.Delivery.Member.AdministrativeName@p.Variant.Name@($"{p.Oe:N0}")@($"{p.Kmw:N1}")@($"{p.Weight:N0}")
Gesamt:(Teil-)Lieferungen: @($"{Model.Deliveries.DistinctBy(p => p.Delivery).Count():N0}") (@($"{Model.Deliveries.Count():N0}"))@($"{oe:N0}")@($"{kmw:N1}")@($"{Model.Deliveries.Sum(p => p.Weight):N0}")
+
diff --git a/Elwig/Documents/DeliveryJournal.cshtml.cs b/Elwig/Documents/DeliveryJournal.cshtml.cs new file mode 100644 index 0000000..9a513c4 --- /dev/null +++ b/Elwig/Documents/DeliveryJournal.cshtml.cs @@ -0,0 +1,25 @@ +using Elwig.Helpers; +using Elwig.Models; +using System; +using System.Collections.Generic; +using System.Linq; + +namespace Elwig.Documents { + public class DeliveryJournal : Document { + + public string Filter; + public IEnumerable Deliveries; + + public DeliveryJournal(string filter, IEnumerable deliveries) : base($"Lieferjournal {filter}") { + Filter = filter; + Deliveries = deliveries; + } + + public DeliveryJournal(AppDbContext ctx, DateOnly date) : + this(date.ToString("dd.MM.yyyy"), ctx.DeliveryParts + .Where(p => p.Delivery.DateString == date.ToString("yyy-MM-dd")) + .OrderBy(p => p.Delivery.LsNr) + .ThenBy(p => p.DPNr) + .ToList()) { } + } +} diff --git a/Elwig/Documents/Document.cshtml.cs b/Elwig/Documents/Document.cshtml.cs index a900f2d..ced43a6 100644 --- a/Elwig/Documents/Document.cshtml.cs +++ b/Elwig/Documents/Document.cshtml.cs @@ -53,6 +53,8 @@ namespace Elwig.Documents { name = "DeliveryNote"; } else if (this is CreditNote) { name = "CreditNote"; + } else if (this is DeliveryJournal) { + name = "DeliveryJournal"; } else { throw new InvalidOperationException("Invalid document object"); } diff --git a/Elwig/Documents/Html.cs b/Elwig/Documents/Html.cs index cfb10d6..0fafde9 100644 --- a/Elwig/Documents/Html.cs +++ b/Elwig/Documents/Html.cs @@ -19,6 +19,7 @@ namespace Elwig.Documents { await e.CompileTemplateAsync("BusinessLetter"); await e.CompileTemplateAsync("DeliveryNote"); await e.CompileTemplateAsync("CreditNote"); + await e.CompileTemplateAsync("DeliveryJournal"); Engine = e; evtHandler(); diff --git a/Elwig/Documents/style-deliveryjournal.css b/Elwig/Documents/style-deliveryjournal.css new file mode 100644 index 0000000..0258686 --- /dev/null +++ b/Elwig/Documents/style-deliveryjournal.css @@ -0,0 +1,47 @@ + +h1 { + text-align: center; + font-size: 24pt; + margin-bottom: 2mm; +} + +h2 { + text-align: center; + font-size: 14pt; + margin-top: 2mm; +} + +table.journal { + font-size: 10pt; +} + +table.journal thead { + font-size: 8pt; +} + +table.journal th { + font-weight: normal; + font-style: italic; +} + +table.journal td { + overflow: hidden; + white-space: nowrap; +} + +table.journal .mgnr, +table.journal .weight { + text-align: right; +} + +table.journal .grad { + text-align: center; +} + +table.journal tr.sum { + font-weight: bold; +} + +table.journal tr.sum td { + border-top: 0.5pt solid black; +} diff --git a/Elwig/Windows/DeliveryAdminWindow.xaml b/Elwig/Windows/DeliveryAdminWindow.xaml index ad27552..f3e2785 100644 --- a/Elwig/Windows/DeliveryAdminWindow.xaml +++ b/Elwig/Windows/DeliveryAdminWindow.xaml @@ -63,6 +63,10 @@ Click="Menu_Print_ShowDeliveryNote_Click"/> + + diff --git a/Elwig/Windows/DeliveryAdminWindow.xaml.cs b/Elwig/Windows/DeliveryAdminWindow.xaml.cs index faa9e9d..17fbf5b 100644 --- a/Elwig/Windows/DeliveryAdminWindow.xaml.cs +++ b/Elwig/Windows/DeliveryAdminWindow.xaml.cs @@ -141,6 +141,22 @@ namespace Elwig.Windows { } } + private async void Menu_Print_ShowDeliveryJournalToday_Click(object sender, RoutedEventArgs evt) { + Mouse.OverrideCursor = Cursors.Wait; + var doc = new DeliveryJournal(Context, DateOnly.FromDateTime(Utils.Today)); + await doc.Generate(); + Mouse.OverrideCursor = null; + doc.Show(); + } + + private async void Menu_Print_ShowDeliveryJournalYesterday_Click(object sender, RoutedEventArgs evt) { + Mouse.OverrideCursor = Cursors.Wait; + var doc = new DeliveryJournal(Context, DateOnly.FromDateTime(Utils.Today.AddDays(-1))); + await doc.Generate(); + Mouse.OverrideCursor = null; + doc.Show(); + } + private void OnSecondPassed(object? sender, EventArgs? evt) { if (IsReceipt && IsCreating) { var now = DateTime.Now;