CreditNote: Add VAT display

This commit is contained in:
2023-12-22 23:52:41 +01:00
parent 0dcffc8677
commit f8aef20b0d
3 changed files with 50 additions and 17 deletions

View File

@ -15,7 +15,7 @@ namespace Elwig.Documents {
public string MemberModifier;
public CreditNote(AppDbContext ctx, PaymentMember p, CreditNoteData data) :
base($"Traubengutschrift {(p.Credit != null ? $"Nr. {p.Credit.Year}/{p.Credit.TgNr}" : p.Member.Name)} {p.Variant.Name}", p.Member) {
base($"Traubengutschrift {(p.Credit != null ? $"Nr. {p.Credit.Year}/{p.Credit.TgNr:000}" : p.Member.Name)} {p.Variant.Name}", p.Member) {
UseBillingAddress = true;
ShowDateAndLocation = true;
Data = data;
@ -30,12 +30,12 @@ namespace Elwig.Documents {
}
Aside = Aside.Replace("</table>", "") +
$"<thead><tr><th colspan='2'>Gutschrift</th></tr></thead><tbody>" +
$"<tr><th>TG-Nr.</th><td>{(p.Credit != null ? $"{p.Credit.Year}/{p.Credit.TgNr}" : "-")}</td></tr>" +
$"<tr><th>TG-Nr.</th><td>{(p.Credit != null ? $"{p.Credit.Year}/{p.Credit.TgNr:000}" : "-")}</td></tr>" +
$"<tr><th>Überw. am</th><td>{p.Variant.TransferDate:dd.MM.yyyy}</td></tr>" +
$"<tr><th>Datum/Zeit</th><td>{p.Credit?.ModifiedTimestamp:dd.MM.yyyy} / {p.Credit?.ModifiedTimestamp:HH:mm}</td></tr>" +
$"</tbody></table>";
Text = App.Client.TextDeliveryNote;
DocumentId = $"Tr.-Gutschr. " + (p.Credit != null ? $"{p.Credit.Year}/{p.Credit.TgNr}" : p.MgNr);
DocumentId = $"Tr.-Gutschr. " + (p.Credit != null ? $"{p.Credit.Year}/{p.Credit.TgNr:000}" : p.MgNr);
CurrencySymbol = season.Currency.Symbol ?? season.Currency.Code;
Precision = season.Precision;
}

View File

@ -44,10 +44,9 @@
<tbody>
@foreach (var p in Model.Data.Rows) {
var rows = Math.Max(p.Buckets.Length, p.Modifiers.Length + 1);
var first = true;
@for (int i = 0; i < rows; i++) {
<tr class="@(first ? "first" : "") @(rows > i + 1 ? "last" : "")">
@if (first) {
<tr class="@(i == 0 ? "first" : "") @(rows == i + 1 ? "last" : "")">
@if (i == 0) {
<td rowspan="@rows">@p.LsNr</td>
<td rowspan="@rows">@p.DPNr</td>
<td class="small">@p.Variant</td>
@ -76,9 +75,10 @@
<td colspan="2"></td>
}
</tr>
first = false;
}
}
</tbody>
<tbody style="break-inside: avoid; break-before: avoid;">
@if (Model.Payment == null) {
<tr class="sum">
<td colspan="4"></td>
@ -124,22 +124,53 @@
</tr>
totalLine = true;
} else {
<tr class="bold large @(!totalLine ? "sum" : "")">
var hasPrev = Model.Credit.PrevNetAmount != null;
<tr class="@(!hasPrev ? "large" : "") @(!totalLine ? "sum" : "")">
<td colspan="4"></td>
<td colspan="4" class="@(totalLine ? "sum" : "")">Nettobetrag:</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>
totalLine = true;
if (hasPrev) {
<tr class="large">
<td colspan="4"></td>
<td colspan="4">Bereits berücksichtigt:</td>
<td></td>
<td colspan="2" class="number">
<span class="fleft">@Model.CurrencySymbol</span>
@($"{Model.Credit.PrevNetAmount:N2}")
</td>
</tr>
<tr class="large bold">
<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:N2}")
</td>
</tr>
}
<tr>
<td colspan="4"></td>
<td colspan="4">Mehrwertsteuer (@($"{Model.Credit.Vat * 100:N0} %")):</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">Bruttobetrag:</td>
<td></td>
<td colspan="2" class="number">
<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>
}

View File

@ -1,11 +1,13 @@
table.credit .mod {
padding-left: 5mm;
}
table.credit tbody tr:not(.first):not(.last) {
table.credit tbody tr:not(.first) {
break-before: avoid;
}
table.credit tbody tr:not(.last) {
break-after: avoid;
}