88 lines
3.9 KiB
Plaintext
88 lines
3.9 KiB
Plaintext
@using RazorLight
|
|
@inherits TemplatePage<Elwig.Documents.CreditNote>
|
|
@model Elwig.Documents.CreditNote
|
|
@{ Layout = "BusinessDocument"; }
|
|
<link rel="stylesheet" href="file:///@Raw(Model.DataPath)\resources\CreditNote.css"/>
|
|
@{
|
|
var bucketNum = Model.BucketNames.Length;
|
|
}
|
|
<main>
|
|
<h1>@Model.Title</h1>
|
|
<table class="credit">
|
|
<colgroup>
|
|
<col style="width: 24mm;"/>
|
|
<col style="width: 6mm;"/>
|
|
<col style="width: 31mm;"/>
|
|
<col style="width: 15mm;"/>
|
|
<col style="width: 8mm;"/>
|
|
<col style="width: 10mm;"/>
|
|
<col style="width: 12mm;"/>
|
|
<col style="width: 10mm;"/>
|
|
<col style="width: 12mm;"/>
|
|
<col style="width: 15mm;"/>
|
|
<col style="width: 17mm;"/>
|
|
</colgroup>
|
|
<thead>
|
|
<tr>
|
|
<th rowspan="3" style="text-align: left;">Lieferschein-Nr.</th>
|
|
<th rowspan="3">Pos.</th>
|
|
<th rowspan="3" style="text-align: left;">Sorte</th>
|
|
<th rowspan="3" style="text-align: left;">Attribut</th>
|
|
<th rowspan="2" colspan="2">Gradation</th>
|
|
<th colspan="2">Zu-/Abschläge</th>
|
|
<th colspan="2">@Raw(string.Join("<br/>", Model.BucketNames))</th>
|
|
<th rowspan="2">Betrag</th>
|
|
</tr>
|
|
<tr>
|
|
<th>Abs.</th>
|
|
<th>Rel.</th>
|
|
<th>Gewicht</th>
|
|
<th>Preis</th>
|
|
</tr>
|
|
<tr>
|
|
<th>[°Oe]</th>
|
|
<th>[°KMW]</th>
|
|
<th>[@Model.CurrencySymbol/kg]</th>
|
|
<th>[%]</th>
|
|
<th>[kg]</th>
|
|
<th>[@Model.CurrencySymbol/kg]</th>
|
|
<th>[@Model.CurrencySymbol]</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
@{
|
|
string FormatRow(int? weight, decimal? amount) {
|
|
var w = weight == null || weight == 0 ? "-" : $"{weight:N0}";
|
|
return $"<td class='weight'>{w}</td><td class='amount'>{amount?.ToString("0." + string.Concat(Enumerable.Repeat('0', Model.Precision)))}</td>";
|
|
}
|
|
string? last = null;
|
|
}
|
|
@foreach (var part in Model.Parts) {
|
|
var pmt = part.Payment;
|
|
var abs = pmt?.ModAbs == null || pmt?.ModAbs == 0 ? "-" : pmt?.ModAbs.ToString("0." + string.Concat(Enumerable.Repeat('0', Model.Precision)));
|
|
var rel = pmt?.ModRel == null || pmt?.ModRel == 0 ? "-" : $"{pmt?.ModRel * 100:0.00##}";
|
|
<tr class="first @(bucketNum <= 1 ? "last" : "") @(last != null && last != part.SortId ? "new" : "")">
|
|
<td rowspan="@bucketNum" class="lsnr">@part.Delivery.LsNr</td>
|
|
<td rowspan="@bucketNum" class="dpnr">@part.DPNr</td>
|
|
<td rowspan="@bucketNum" class="variant">@part.Variant.Name</td>
|
|
<td rowspan="@bucketNum" class="attribute">@part.Attribute?.Name</td>
|
|
<td rowspan="@bucketNum" class="oe">@($"{part.Oe:N0}")</td>
|
|
<td rowspan="@bucketNum" class="kmw">@($"{part.Kmw:N1}")</td>
|
|
<td rowspan="@bucketNum" class="abs">@abs</td>
|
|
<td rowspan="@bucketNum" class="rel">@rel</td>
|
|
<!--FIXME price-->
|
|
@Raw(FormatRow(pmt?.DeliveryPart.Buckets?.ElementAtOrDefault(0)?.Value, 0))
|
|
<td rowspan="@bucketNum" class="amount sum">@($"{pmt?.Amount:N2}")</td>
|
|
</tr>
|
|
@for (int i = 1; i < bucketNum; i++) {
|
|
<tr class="@(i == bucketNum - 1 ? "last" : "")">
|
|
<!--FIXME price-->
|
|
@Raw(FormatRow(pmt?.DeliveryPart.Buckets?.ElementAtOrDefault(i)?.Value, 0))
|
|
</tr>
|
|
}
|
|
last = part.SortId;
|
|
}
|
|
</tbody>
|
|
</table>
|
|
</main>
|