From 45fc0893b1605ea2bec17b063491864c68d3c1ee Mon Sep 17 00:00:00 2001 From: Lorenz Stechauner Date: Tue, 17 Oct 2023 22:56:21 +0200 Subject: [PATCH] DeliveryConfirmation: fix tables --- Elwig/Documents/DeliveryConfirmation.cshtml | 49 ++++++++++++------- .../Documents/style-deliveryconfirmation.css | 5 ++ 2 files changed, 35 insertions(+), 19 deletions(-) diff --git a/Elwig/Documents/DeliveryConfirmation.cshtml b/Elwig/Documents/DeliveryConfirmation.cshtml index e6bd18d..f8510f7 100644 --- a/Elwig/Documents/DeliveryConfirmation.cshtml +++ b/Elwig/Documents/DeliveryConfirmation.cshtml @@ -118,32 +118,43 @@ @{ - string FormatRow(int obligation, int right, int sum, int? payment = null) { - var isGa = payment == null; + string FormatRow(int mode, int obligation, int right, int sum, int? payment = null) { + var isGa = mode == 0; payment ??= sum; - return $"{obligation:N0}" + - $"{right:N0}" + - $"{(payment < obligation ? $"{obligation - payment:N0}\x3c/b>" : "-")}" + - $"{(sum >= obligation && sum <= right ? $"{right - sum:N0}" : "-")}" + - $"{(obligation == 0 && right == 0 ? "-" : (sum > right ? ((isGa ? "" : "") + $"{sum - right:N0}" + (isGa ? "" : "")) : "-"))}" + - $"{(obligation == 0 && right == 0 ? "-" : $"{payment:N0}")}" + + return $"{(mode == 1 ? "" : obligation == 0 ? "-" : $"{obligation:N0}")}" + + $"{(mode == 1 ? "" : right == 0 ? "-" : $"{right:N0}")}" + + $"{(mode == 1 ? "" : payment < obligation ? $"{obligation - payment:N0}\x3c/b>" : "-")}" + + $"{(mode == 1 ? "" : payment >= obligation && sum <= right ? $"{right - sum:N0}" : "-")}" + + $"{(mode == 1 ? "" : obligation == 0 && right == 0 ? "-" : (sum > right ? ((isGa ? "" : "") + $"{sum - right:N0}" + (isGa ? "" : "")) : "-"))}" + + $"{(mode != 2 ? "" : obligation == 0 && right == 0 ? "-" : $"{payment:N0}")}" + $"{sum:N0}"; } + var mBins = Model.MemberBins.Where(b => b.Value.Item2 > 0 || b.Value.Item3 > 0 || b.Value.Item4 > 0).ToList(); + var fbVars = mBins.Where(b => b.Value.Item2 > 0 || b.Value.Item3 > 0).Select(b => b.Key.Replace("_", "")).Order().ToArray(); + var fbs = mBins.Where(b => fbVars.Contains(b.Key)).OrderBy(b => b.Value.Item1); + var rem = mBins.Where(b => !fbVars.Contains(b.Key)).OrderBy(b => b.Value.Item1); } Gesamtlieferung lt. gez. GA - @Raw(FormatRow(Model.Member.DeliveryObligation, Model.Member.DeliveryRight, Model.Member.Deliveries.Where(d => d.Year == Model.Year).Sum(d => d.Weight))) + @Raw(FormatRow(0, Model.Member.DeliveryObligation, Model.Member.DeliveryRight, Model.Member.Deliveries.Where(d => d.Year == Model.Year).Sum(d => d.Weight))) - - Flächenbindungen: - - @foreach (var (id, (name, right, obligation, sum, payment)) in Model.MemberBins.OrderBy(b => b.Key)) { - if (right > 0 || obligation > 0 || sum > 0) { - - @name - @Raw(FormatRow(obligation, right, sum, payment)) - - } + @if (rem.Any()) { + Sortenaufteilung: + } + @foreach (var (id, (name, right, obligation, sum, payment)) in rem) { + + @name + @Raw(FormatRow(1, obligation, right, sum, payment)) + + } + @if (fbs.Any()){ + Flächenbindungen: + } + @foreach (var (id, (name, right, obligation, sum, payment)) in fbs) { + + @name + @Raw(FormatRow(2, obligation, right, sum, payment)) + } diff --git a/Elwig/Documents/style-deliveryconfirmation.css b/Elwig/Documents/style-deliveryconfirmation.css index b14fe42..c9ad161 100644 --- a/Elwig/Documents/style-deliveryconfirmation.css +++ b/Elwig/Documents/style-deliveryconfirmation.css @@ -106,3 +106,8 @@ table.delivery-confirmation-stats tbody th { font-style: italic; text-align: left; } + +table.delivery-confirmation-stats tr.subheading th { + font-weight: bold; + border-top: 0.5pt solid black; +}