CreditNote: Add FormatRow()

This commit is contained in:
2023-12-23 13:29:24 +01:00
parent a0914f4d54
commit 8555748202

View File

@ -78,101 +78,41 @@
}
}
</tbody>
@{
string FormatRow(string name, decimal? value, bool add = false, bool halfLine = true, bool bold = false) {
return $"<tr class=\"{(halfLine || add ? "" : "sum")} {(bold ? "large bold" : "")}\">"
+ $"<td colspan=\"4\"></td>"
+ $"<td class=\"{(halfLine && !add ? "sum" : "")}\" colspan=\"4\">{name}:</td>"
+ $"<td class=\"number large {(halfLine && !add ? "sum" : "")}\">{(value < 0 ? "" : (add ? "+" : ""))}</td>"
+ $"<td colspan=\"2\" class=\"number large {(halfLine && !add ? "sum" : "")}\">"
+ $"<span class=\"fleft\">{Model.CurrencySymbol}</span>{Math.Abs(value ?? 0):N2}</td>"
+ $"</tr>\n";
}
}
<tbody style="break-inside: avoid; break-before: avoid;">
@{ var sum = Model.Data.Rows.Sum(p => p.Amount); }
@if (Model.Payment == null) {
<tr class="sum">
<td colspan="4"></td>
<td colspan="4">Gesamt:</td>
<td></td>
<td colspan="2" class="number">
<span class="fleft">@Model.CurrencySymbol</span>
@($"{Model.Data.Rows.Sum(p => p.Amount):N2}")
</td>
</tr>
@Raw(FormatRow("Gesamt", sum, halfLine: false, bold: true))
} else {
var totalLine = false;
if (Model.Payment.NetAmount != Model.Payment.Amount) {
<tr class="sum">
<td colspan="4"></td>
<td colspan="4">Zwischensumme:</td>
<td></td>
<td colspan="2" class="number">
<span class="fleft">@Model.CurrencySymbol</span>
@($"{Model.Payment.NetAmount:N2}")
</td>
</tr>
@Raw(FormatRow("Zwischensumme", Model.Payment.NetAmount, halfLine: totalLine))
totalLine = true;
<tr>
<td colspan="4"></td>
<td colspan="4">@Model.MemberModifier:</td>
<td class="number large">@(Model.Payment.NetAmount > Model.Payment.Amount ? "" : "+")</td>
<td colspan="2" class="number large">
<span class="fleft">@Model.CurrencySymbol</span>
@($"{Math.Abs(Model.Payment.Amount - Model.Payment.NetAmount):N2}")
</td>
</tr>
@Raw(FormatRow(Model.MemberModifier, Model.Payment.Amount - Model.Payment.NetAmount, add: true, halfLine: totalLine))
}
if (Model.Credit == null) {
<tr class="bold large @(!totalLine ? "sum" : "")">
<td colspan="4"></td>
<td colspan="4" class="@(totalLine ? "sum" : "")">Gesamtbetrag:</td>
<td class="@(totalLine ? "sum" : "")"></td>
<td colspan="2" class="number @(totalLine ? "sum" : "")">
<span class="fleft">@Model.CurrencySymbol</span>
@($"{Model.Payment.Amount:N2}")
</td>
</tr>
@Raw(FormatRow("Gesamtbetrag", Model.Payment.Amount, bold: true, halfLine: totalLine))
totalLine = true;
} else {
var hasPrev = Model.Credit.PrevNetAmount != null;
<tr class="bold @(!hasPrev ? "large" : "") @(!totalLine ? "sum" : "")">
<td colspan="4"></td>
<td colspan="4" class="@(totalLine ? "sum" : "")">@(hasPrev ? "Gesamtbetrag" : "Nettobetrag"):</td>
<td class="@(totalLine ? "sum" : "")"></td>
<td colspan="2" class="number @(totalLine ? "sum" : "")">
<span class="fleft">@Model.CurrencySymbol</span>
@($"{Model.Credit.NetAmount:N2}")
</td>
</tr>
@Raw(FormatRow(hasPrev ? "Gesamtbetrag" : "Nettobetrag", Model.Credit.NetAmount, bold: true, halfLine: totalLine))
totalLine = true;
if (hasPrev) {
<tr>
<td colspan="4"></td>
<td colspan="4">Bisher ausgezahlt:</td>
<td class="number large"></td>
<td colspan="2" class="number large">
<span class="fleft">@Model.CurrencySymbol</span>
@($"{Model.Credit.PrevNetAmount:N2}")
</td>
</tr>
<tr class="large">
<td colspan="4"></td>
<td colspan="4" class="sum">Nettobetrag:</td>
<td class="sum"></td>
<td colspan="2" class="number sum">
<span class="fleft">@Model.CurrencySymbol</span>
@($"{Model.Credit.NetAmount - (Model.Credit.PrevNetAmount ?? 0):N2}")
</td>
</tr>
@Raw(FormatRow("Bisher ausgezahlt", -Model.Credit.PrevNetAmount, add: true))
@Raw(FormatRow("Nettobetrag", Model.Credit.NetAmount - (Model.Credit.PrevNetAmount ?? 0)))
}
<tr>
<td colspan="4"></td>
<td colspan="4">Mehrwertsteuer (@($"{Model.Credit.Vat * 100} %")):</td>
<td class="number large">+</td>
<td colspan="2" class="number large">
<span class="fleft">@Model.CurrencySymbol</span>
@($"{Model.Credit.VatAmount:N2}")
</td>
</tr>
<tr class="large bold">
<td colspan="4"></td>
<td colspan="4" class="sum">Bruttobetrag:</td>
<td class="sum"></td>
<td colspan="2" class="number sum">
<span class="fleft">@Model.CurrencySymbol</span>
@($"{Model.Credit.Amount:N2}")
</td>
</tr>
@Raw(FormatRow($"Mehrwertsteuer ({Model.Credit.Vat * 100} %)", Model.Credit.VatAmount, add: true))
@Raw(FormatRow("Bruttobetrag", Model.Credit.GrossAmount, bold: true))
}
}
</tbody>