diff --git a/Elwig/Documents/DeliveryNote.cshtml b/Elwig/Documents/DeliveryNote.cshtml index 173666a..8a44e82 100644 --- a/Elwig/Documents/DeliveryNote.cshtml +++ b/Elwig/Documents/DeliveryNote.cshtml @@ -5,11 +5,24 @@ <div class="date">@Model.Location, am @($"{Model.Date:dd.MM.yyyy}")</div> <h1>@Model.Title</h1> -@{ var forcePageBreak = Model.Delivery.Parts.Count > 2; } +@{ + var sortids = Model.Delivery.Parts.Select(p => p.SortId).ToList(); + bool displayStats = true; // Model.Delivery.Year == Model.CurrentNextSeason + + int xLines = Model.Delivery.Parts.Count() * 5 + Model.Delivery.Parts.Select(p => p.Modifiers.Count() + (p.Comment != null ? 1 : 0) + (p.Acid != null || p.Temperature != null ? 1 : 0)).Sum(); + if (Model.Delivery.Comment != null) xLines += 2; + if (displayStats) xLines += 2 + Model.MemberBuckets.Select(b => b.Item3 > 0 && b.Item4 > 0 && sortids.Contains(b.Item1[..2]) ? 1 : 0).Sum(); + + int sLines = Model.Text != null ? (Model.Text.Length + 110 - 1) / 110 : 0; + xLines += sLines + (sLines + 1) / 2; + + bool forcePageBreak = xLines > 30; +} @if (forcePageBreak) { <script> document.addEventListener("DOMContentLoaded", () => { const stats = document.getElementById("delivery-stats"); + if (!stats) return; document.getElementsByClassName("page-break")[0].before(stats); stats.getElementsByTagName("table")[0].classList.add("expanded"); }); @@ -87,7 +100,7 @@ @if (Model.Delivery.Comment != null) { <p class="comment">Amerkung zur Lieferung: @Model.Delivery.Comment</p> } -@if (true || Model.Delivery.Year == Model.CurrentNextSeason) { +@if (displayStats) { <div id="delivery-stats"> <table class="delivery-stats"> <colgroup> @@ -120,7 +133,6 @@ $"<td>{(sum > right ? $"{sum - right:N0}" : "-")}</td>" + $"<td>{sum:N0}</td>"; } - var sortids = Model.Delivery.Parts.Select(p => p.SortId).ToList(); } <tr> <th>Geschäftsanteile</th>