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>
<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>