DeliveryNote: Refine forced page break condition

This commit is contained in:
2023-09-02 23:48:11 +02:00
parent cad475fc20
commit 048a7e0f13

View File

@ -5,11 +5,24 @@
<div class="date">@Model.Location, am @($"{Model.Date:dd.MM.yyyy}")</div> <div class="date">@Model.Location, am @($"{Model.Date:dd.MM.yyyy}")</div>
<h1>@Model.Title</h1> <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) { @if (forcePageBreak) {
<script> <script>
document.addEventListener("DOMContentLoaded", () => { document.addEventListener("DOMContentLoaded", () => {
const stats = document.getElementById("delivery-stats"); const stats = document.getElementById("delivery-stats");
if (!stats) return;
document.getElementsByClassName("page-break")[0].before(stats); document.getElementsByClassName("page-break")[0].before(stats);
stats.getElementsByTagName("table")[0].classList.add("expanded"); stats.getElementsByTagName("table")[0].classList.add("expanded");
}); });
@ -87,7 +100,7 @@
@if (Model.Delivery.Comment != null) { @if (Model.Delivery.Comment != null) {
<p class="comment">Amerkung zur Lieferung: @Model.Delivery.Comment</p> <p class="comment">Amerkung zur Lieferung: @Model.Delivery.Comment</p>
} }
@if (true || Model.Delivery.Year == Model.CurrentNextSeason) { @if (displayStats) {
<div id="delivery-stats"> <div id="delivery-stats">
<table class="delivery-stats"> <table class="delivery-stats">
<colgroup> <colgroup>
@ -120,7 +133,6 @@
$"<td>{(sum > right ? $"{sum - right:N0}" : "-")}</td>" + $"<td>{(sum > right ? $"{sum - right:N0}" : "-")}</td>" +
$"<td>{sum:N0}</td>"; $"<td>{sum:N0}</td>";
} }
var sortids = Model.Delivery.Parts.Select(p => p.SortId).ToList();
} }
<tr> <tr>
<th>Geschäftsanteile</th> <th>Geschäftsanteile</th>