@using Elwig.Helpers @using RazorLight @inherits TemplatePage @model Elwig.Documents.CreditNote @{ Layout = "BusinessDocument"; }

@Model.Title

@foreach (var p in Model.Data.Rows) { var rows = Math.Max(p.Buckets.Length, p.Modifiers.Length + 1); @for (int i = 0; i < rows; i++) { @if (i == 0) { } @if (i > 0 && i <= p.Modifiers.Length) { } else if (i > 0) { } @if (i < p.Buckets.Length) { var bucket = p.Buckets[i]; } else { } @if (i == p.Buckets.Length - 1) { var totalMod = p.TotalModifiers ?? 0; } else { } } }
Lieferschein-Nr. Pos. Sorte Attribut Gradation Flächenbindung Preis Zu-/Abschläge Betrag
[°Oe] [°KMW] [kg] [@Model.CurrencySymbol/kg] [@Model.CurrencySymbol] [@Model.CurrencySymbol]
@p.LsNr @p.DPNr @p.Variant @p.Attribute @($"{p.Gradation.Oe:N0}") @($"{p.Gradation.Kmw:N1}")@p.Modifiers[i - 1]@bucket.Name: @($"{bucket.Value:N0}") @($"{bucket.Price:N4}")@(totalMod == 0 ? "-" : Utils.GetSign(totalMod) + $"{Math.Abs(totalMod):N2}") @($"{p.Amount:N2}")
Hinweis:
Die Summe der Lieferungen und die Summe der anfallenden Pönalen werden mit @Model.Payment?.Variant.Season.Precision Nachkommastellen berechnent, erst das Ergebnis wird kaufmännisch auf 2 Nachkommastellen gerundet.
@{ string FormatRow(string name, decimal? value, bool add = false, bool bold = false, bool subCat = false, bool noTopBorder = false) { return $"" + $"" + $"" + $"" + $"\n"; } } @{ var sum = Model.Data.Rows.Sum(p => p.Amount); } @if (Model.Payment == null) { @Raw(FormatRow("Gesamt", sum, bold: true, noTopBorder: true)) } else { var noBorder = true; if (Model.Payment.NetAmount != Model.Payment.Amount) { @Raw(FormatRow("Zwischensumme", Model.Payment.NetAmount, noTopBorder: noBorder)) noBorder = false; @Raw(FormatRow(Model.MemberModifier, Model.Payment.Amount - Model.Payment.NetAmount, add: true)) } if (Model.Credit == null) { @Raw(FormatRow("Gesamtbetrag", Model.Payment.Amount, bold: true, noTopBorder: noBorder)) // TODO Mock VAT } else { var hasPrev = Model.Credit.PrevNetAmount != null; @Raw(FormatRow(hasPrev ? "Gesamtbetrag" : "Nettobetrag", Model.Credit.NetAmount, bold: true, noTopBorder: noBorder)) if (hasPrev) { @Raw(FormatRow("Bisher berücksichtigt", -Model.Credit.PrevNetAmount, add: true)) @Raw(FormatRow("Nettobetrag", Model.Credit.NetAmount - (Model.Credit.PrevNetAmount ?? 0))) } @Raw(FormatRow($"Mehrwertsteuer ({Model.Credit.Vat * 100} %)", Model.Credit.VatAmount, add: true)) @Raw(FormatRow("Bruttobetrag", Model.Credit.GrossAmount, bold: true)) } } @{ decimal penalty = 0; } @if (Model.MemberUnderDeliveries != null && Model.MemberUnderDeliveries.Count() > 0) { foreach (var u in Model.MemberUnderDeliveries) { @Raw(FormatRow($"{u.Name} ({u.Kg:N0} kg)", u.Amount, add: true, subCat: true)) penalty += u.Amount; } penalty = Math.Round(penalty, 2, MidpointRounding.AwayFromZero); } @if (Model.Credit == null) { @Raw(FormatRow("Auszahlungsbetrag", (Model.Payment?.Amount + penalty) ?? (sum + penalty), bold: true)) } else { if (Model.Credit.Modifiers - penalty != 0) { @Raw(FormatRow("Weitere Abzüge", Model.Credit.Modifiers - penalty, add: true)) } if (Model.Credit.PrevModifiers != null && Model.Credit.PrevModifiers != 0) { @Raw(FormatRow("Bereits berücksichtigte Abzüge", -Model.Credit.PrevModifiers, add: true)) } @Raw(FormatRow("Auszahlungsbetrag", Model.Credit.Amount, bold: true)) }
{name}:{(value < 0 ? "–" : (add ? "+" : ""))}" + $"{Model.CurrencySymbol}{Math.Abs(value ?? 0):N2}
Anfallende Pönalen durch Unterlieferungen: