195 lines
9.1 KiB
Plaintext
195 lines
9.1 KiB
Plaintext
@using RazorLight
|
||
@using Elwig.Helpers
|
||
@inherits TemplatePage<Elwig.Documents.MemberDataSheet>
|
||
@model Elwig.Documents.MemberDataSheet
|
||
@{
|
||
Layout = "BusinessDocument";
|
||
}
|
||
<link rel="stylesheet" href="file:///@Raw(Model.DataPath)\resources\MemberDataSheet.css" />
|
||
<main>
|
||
<h1>@Model.Title</h1>
|
||
<table class="member border">
|
||
<colgroup>
|
||
<col style="width: 30mm;"/>
|
||
<col style="width: 51.5mm;"/>
|
||
<col style="width: 30mm;"/>
|
||
<col style="width: 20mm"/>
|
||
<col style="width: 31.5mm;"/>
|
||
</colgroup>
|
||
<tbody>
|
||
<tr class="sectionheading"><th colspan="5">Persönliche Daten</th></tr>
|
||
<tr>
|
||
<th class="small">Titel (vorangestellt)</th>
|
||
<th class="small">Vorname</th>
|
||
<th colspan="2" class="small">Nachname</th>
|
||
<th class="small">Titel (nachgestellt)</th>
|
||
</tr>
|
||
<tr>
|
||
<td class="large">@Model.Member.Prefix</td>
|
||
<td class="large">@Model.Member.GivenName @Model.Member.MiddleName</td>
|
||
<td colspan="2" class="large">@Model.Member.FamilyName</td>
|
||
<td class="large">@Model.Member.Suffix</td>
|
||
</tr>
|
||
<tr>
|
||
<th>Mitglieds-Nr.:</th>
|
||
<td class="large">@Model.Member.MgNr</td>
|
||
<th>Geburtsjahr/-tag:</th>
|
||
<td colspan="2" class="large">@(string.Join('.', Model.Member.Birthday?.Split('-')?.Reverse() ?? Array.Empty<string>()))</td>
|
||
</tr>
|
||
<tr>
|
||
<th>Adresse:</th>
|
||
<td colspan="4">@Model.Member.Address</td>
|
||
</tr>
|
||
<tr>
|
||
<th>PLZ/Ort:</th>
|
||
<td colspan="4">@Model.Member.PostalDest.AtPlz?.Plz @Model.Member.PostalDest.AtPlz?.Dest (@Model.Member.PostalDest.AtPlz?.Ort.Name)</td>
|
||
</tr>
|
||
<tr class="sectionheading"><th colspan="5">Rechnungsadresse (optional)</th></tr>
|
||
<tr>
|
||
<th>Name:</th>
|
||
<td colspan="4">@Model.Member.BillingAddress?.Name</td>
|
||
</tr>
|
||
<tr>
|
||
<th>Adresse:</th>
|
||
<td colspan="4">@Model.Member.BillingAddress?.Address</td>
|
||
</tr>
|
||
<tr>
|
||
<th>PLZ/Ort:</th>
|
||
<td colspan="4">@Model.Member.BillingAddress?.PostalDest.AtPlz?.Plz @Model.Member.BillingAddress?.PostalDest.AtPlz?.Dest @((Model.Member.BillingAddress != null && Model.Member.BillingAddress.PostalDest.AtPlz != null) ? "(" + Model.Member.BillingAddress?.PostalDest.AtPlz?.Ort.Name + ")" : "")</td>
|
||
</tr>
|
||
<tr class="sectionheading">
|
||
<th colspan="2">Kontaktdaten</th>
|
||
<th colspan="3" class="lborder">Bankverbindung</th>
|
||
</tr>
|
||
@{
|
||
List<string?[]> subTbl1 = new();
|
||
subTbl1.AddRange(Model.Member.EmailAddresses.Select(a => new[] { "E-Mail-Adresse", a.Address }));
|
||
subTbl1.AddRange(Model.Member.TelephoneNumbers.Select(n => new[] { Utils.PhoneNrTypeToString(n.Type), n.Number }));
|
||
|
||
List<string?[]> subTbl2 = new();
|
||
subTbl2.Add(new[] { "IBAN", Model.Member.Iban != null ? Elwig.Helpers.Utils.FormatIban(Model.Member.Iban) : null });
|
||
subTbl2.Add(new[] { "BIC", Model.Member.Bic });
|
||
}
|
||
@for (int i = 0; i < Math.Max(subTbl1.Count, subTbl2.Count); i++) {
|
||
<tr>
|
||
<th>@(i < subTbl1.Count ? subTbl1[i][0] + ":" : "")</th>
|
||
<td>@(i < subTbl1.Count ? subTbl1[i][1] : "")</td>
|
||
<th class="lborder">@(i < subTbl2.Count ? subTbl2[i][0] + ":" : "")</th>
|
||
<td colspan="2">@(i < subTbl2.Count ? subTbl2[i][1] : "")</td>
|
||
</tr>
|
||
}
|
||
<tr class="sectionheading"><th colspan="5">Betrieb</th></tr>
|
||
<tr>
|
||
<th>Betriebs-Nr.:</th>
|
||
<td>@Model.Member.LfbisNr</td>
|
||
<th>UID:</th>
|
||
<td colspan="2">@Model.Member.UstIdNr</td>
|
||
</tr>
|
||
<tr>
|
||
<th>Stammgemeinde:</th>
|
||
<td>@Model.Member.DefaultKg?.Name</td>
|
||
<th>Buchführend:</th>
|
||
<td colspan="2">@(Model.Member.IsBuchführend ? "Ja" : "Nein")</td>
|
||
</tr>
|
||
<tr>
|
||
<th colspan="2" class="small">(Katastralgemeinde mit dem größten Anteil an Weinbauflächen)</th>
|
||
<th>Bio:</th>
|
||
<td colspan="2">@(Model.Member.IsOrganic ? "Ja" : "Nein")</t>
|
||
</tr>
|
||
<tr class="sectionheading"><th colspan="5">Genossenschaft</th></tr>
|
||
<tr>
|
||
<th>Status:</th>
|
||
<td>
|
||
@(Model.Member.IsActive ? "Aktiv" : "Nicht aktiv")
|
||
<span class="small">
|
||
(@(Model.Member.ExitDate != null ?
|
||
$"{Model.Member.EntryDate:dd.MM.yyyy}–{Model.Member.ExitDate:dd.MM.yyyy}" :
|
||
$"seit {Model.Member.EntryDate:dd.MM.yyyy}"))
|
||
</span>
|
||
</td>
|
||
<th>Geschäftsanteile:</th>
|
||
<td colspan="2">@Model.Member.BusinessShares</td>
|
||
</tr>
|
||
<tr>
|
||
<th>Stamm-Zweigstelle:</th>
|
||
<td>@Model.Member.Branch?.Name</td>
|
||
<th>Volllierferant:</th>
|
||
<td colspan="2">@(Model.Member.IsVollLieferant ? "Ja" : "Nein")</td>
|
||
</tr>
|
||
<tr>
|
||
<th>Zusendungen via...</th>
|
||
<td>
|
||
<i>Post:</i> @(Model.Member.ContactViaPost ? "Ja" : "Nein") –
|
||
<i>E-Mail:</i> @(Model.Member.ContactViaEmail ? "Ja" : "Nein")
|
||
</td>
|
||
<th>Funktionär:</th>
|
||
<td colspan="2">@(Model.Member.IsFunktionär ? "Ja" : "Nein")</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
|
||
@Raw(Model.PrintBucketTable(Model.Season, Model.MemberBuckets, includeDelivery: false))
|
||
|
||
@{
|
||
var areaComs = Model.Member.ActiveAreaCommitments.GroupBy(a => a.AreaComType).Select(group => new {
|
||
AreaComType = group.Key,
|
||
AreaComs = group.OrderBy(c => c.Kg.AtKg.Name),
|
||
Size = group.Sum(c => c.Area)
|
||
}).OrderByDescending(a => a.Size).ToList();
|
||
var lastContract = "";
|
||
}
|
||
|
||
@if (areaComs.Count != 0) {
|
||
<h2>Flächenbindungen</h2>
|
||
<table class="area-commitements">
|
||
<colgroup>
|
||
<col style="width: 40mm;"/>
|
||
<col style="width: 30mm;"/>
|
||
<col style="width: 35mm;"/>
|
||
<col style="width: 15mm;"/>
|
||
<col style="width: 25mm;"/>
|
||
<col style="width: 20mm;"/>
|
||
</colgroup>
|
||
<thead>
|
||
<tr>
|
||
<th rowspan="2" style="text-align: left;">Katastralgemeinde</th>
|
||
<th rowspan="2" style="text-align: left;">Ried</th>
|
||
<th rowspan="2" style="text-align: left;">Parzelle(n)</th>
|
||
<th>Fläche</th>
|
||
<th rowspan="2" style="text-align: center;">Bewirt.</th>
|
||
<th rowspan="2" style="text-align: center;">Laufzeit</th>
|
||
</tr>
|
||
<tr>
|
||
<th>[m²]</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
@foreach (var contractType in areaComs) {
|
||
<tr class="subheading @(contractType.AreaComType.DisplayName != lastContract && lastContract != "" ? "new" : "")">
|
||
<th colspan="3">
|
||
@($"{contractType.AreaComType.WineVar.Name} {(contractType.AreaComType.WineAttr != null ? "(" + contractType.AreaComType.WineAttr + ")" : "")}")
|
||
</th>
|
||
<td class="number">@($"{contractType.Size:N0}")</td>
|
||
<td colspan="2"></td>
|
||
</tr>
|
||
@foreach (var areaCom in contractType.AreaComs) {
|
||
<tr class="area-commitment">
|
||
<td>@areaCom.Kg.AtKg.Name <span style="font-size: 8pt;">(@($"{areaCom.Kg.AtKg.KgNr:00000}"))</span></td>
|
||
<td>@areaCom.Rd?.Name</td>
|
||
<td class="text">@areaCom.GstNr.Replace(",", ", ").Replace("-", "–")</td>
|
||
<td class="number">@($"{areaCom.Area:N0}")</td>
|
||
<td class="center">@areaCom.WineCult.Name</td>
|
||
<td class="center">@(areaCom.YearTo == null ? $"ab {areaCom.YearFrom}" : $"{areaCom.YearFrom}–{areaCom.YearTo}")</td>
|
||
</tr>
|
||
lastContract = contractType.AreaComType.DisplayName;
|
||
}
|
||
}
|
||
<tr class="sum">
|
||
<td colspan="3">Gesamt:</td>
|
||
<td class="number">@($"{Model.Member.ActiveAreaCommitments.Select(a => a.Area).Sum():N0}")</td>
|
||
<td colspan="2"></td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
}
|
||
</main> |