@using RazorLight
@inherits TemplatePage<Elwig.Documents.MemberList>
@model Elwig.Documents.MemberList
@{ Layout = "Document"; }
<link rel="stylesheet" href="file:///@Raw(Model.DocumentsPath)\MemberList.css" />
<main>
    <h1>Mitgliederliste</h1>
    <h2>@Model.Filter</h2>
    <table class="members">
        <colgroup>
            <col style="width:  8mm;"/>
            @if (Model.AreaComFilters.Length > 1) {
                <col style="width: 38mm;"/>
            } else {
                <col style="width: 42mm;"/>
            }
            @if (Model.AreaComFilters.Length > 1) {
                <col style="width: 36mm;"/>
            } else {
                <col style="width: 40mm;"/>
            }
            <col style="width:  8mm;"/>
            @if (Model.AreaComFilters.Length > 1) {
                <col style="width: 18mm;"/>
            } else {
                <col style="width: 20mm;"/>
            }
            <col style="width: 12mm;"/>
            <col style="width:  5mm;"/>
            @if (Model.AreaComFilters.Length > 1) {
                <col style="width: 16mm;"/>
            } else {
                <col style="width: 18mm;"/>
            }
            <col style="width: 12mm;"/>
            @if (Model.AreaComFilters.Length > 1) {
                <col style="width: 12mm;"/>
            }
        </colgroup>
        <thead>
            <tr>
                @{
                    var headerSpan = Model.FilterAreaComs ? 3 : 2;
                }
                <th rowspan="@headerSpan">Nr.</th>
                <th rowspan="@headerSpan" style="text-align: left;">Name</th>
                <th rowspan="@headerSpan" style="text-align: left;">Adresse</th>
                <th rowspan="@headerSpan">PLZ</th>
                <th rowspan="@headerSpan" style="text-align: left;">Ort</th>
                <th rowspan="@headerSpan">Betr.-Nr.</th>
                <th rowspan="@headerSpan">GA</th>
                <th rowspan="@headerSpan" style="text-align: left;">Stamm-KG</th>
                <th colspan="@(Model.FilterAreaComs ? Model.AreaComFilters.Length : 1)">Geb. Fl.</th>
            </tr>
            @if (Model.FilterAreaComs) {
                <tr>
                    @foreach (var vtrgId in Model.AreaComFilters) {
                        <th>@vtrgId</th>
                    }
                </tr>
            }
            <tr>
                @for (int i = 0; i < Math.Max(Model.AreaComFilters.Length, 1); i++) {
                    <th class="unit">[m²]</th>
                }
            </tr>
        </thead>
        <tbody class="small">
            @{
                string? lastBranch = Model.Members.Select(m => m.Branch).Distinct().Count() == 1 ? null : "";
            }
            @foreach (var m in Model.Members) {
                if (lastBranch != null && m.Branch != lastBranch) {
                    <tr class="spacing"><td colspan="@(8 + Math.Max(Model.AreaComFilters.Length, 1))"></td></tr>
                    <tr class="header">
                        <th colspan="@(8 + Math.Max(Model.AreaComFilters.Length, 1))">@m.Branch</th>
                    </tr>
                    lastBranch = m.Branch;
                }
                <tr>
                    <td class="number" rowspan="@(m.BillingName != null ? 2 : 1)">@m.MgNr</td>
                    <td>@m.AdminName1 @m.Name2</td>
                    <td>@m.Address</td>
                    <td>@m.Plz</td>
                    <td class="tiny">@m.Locality</td>
                    <td>@m.LfbisNr</td>
                    <td class="number">@m.BusinessShares</td>
                    <td class="tiny">@m.DefaultKg</td>
                    @if (Model.AreaComFilters.Length > 0) {
                        foreach (var v in Model.AreaComFilters) {
                            <td class="number">@($"{m.AreaCommitmentsFiltered.FirstOrDefault(c => c.VtrgId == v).Area:N0}")</td>
                        }
                    } else {
                        <td class="number">@($"{m.AreaCommitment:N0}")</td>
                    }
                </tr>
                if (m.BillingName != null) {
                    <tr>
                        <td>@m.BillingName</td>
                        <td>@m.BillingAddress</td>
                        <td>@m.BillingPlz</td>
                        <td class="tiny">@m.BillingLocality</td>
                        <td colspan="4"></td>
                    </tr>
                }
            }
        </tbody>
    </table>
</main>