82 lines
		
	
	
		
			4.1 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			82 lines
		
	
	
		
			4.1 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
@using RazorLight
 | 
						|
@using Elwig.Helpers
 | 
						|
@inherits TemplatePage<Elwig.Documents.WineQualityStatistics>
 | 
						|
@model Elwig.Documents.WineQualityStatistics
 | 
						|
@{ Layout = "Document"; }
 | 
						|
<link rel="stylesheet" href="file:///@Raw(Model.DocumentsPath)\WineQualityStatistics.css" />
 | 
						|
<main>
 | 
						|
    <h1>Qualitätsstatistik</h1>
 | 
						|
    <h2>@Model.Filter</h2>
 | 
						|
    @foreach (var sec in Model.Data.Sections) {
 | 
						|
        <table>
 | 
						|
            <colgroup>
 | 
						|
                <col style="width: 25%;"/>
 | 
						|
                <col style="width: 25%;"/>
 | 
						|
                <col style="width: 25%;"/>
 | 
						|
                <col style="width: 25%;"/>
 | 
						|
            </colgroup>
 | 
						|
            <thead>
 | 
						|
                <tr>
 | 
						|
                    <th colspan="4" class="header @(sec.Type == "R" ? "red" : sec.Type == "W" ? "green" : "")">
 | 
						|
                        <h3>@sec.Name</h3>
 | 
						|
                    </th>
 | 
						|
                </tr>
 | 
						|
            </thead>
 | 
						|
            <tbody>
 | 
						|
                <tr>
 | 
						|
                    @foreach (var qualIds in Model.QualIds) {
 | 
						|
                        <td class="container">
 | 
						|
                            <div class="row">
 | 
						|
                                <span class="units">[@(Model.UseOe ? "°Oe" : "°KMW")]</span>
 | 
						|
                                <span class="units">[#]</span>
 | 
						|
                                <span class="units">[kg]</span>
 | 
						|
                            </div>
 | 
						|
                            @foreach (var qualId in qualIds) {
 | 
						|
                                <h4>@(Model.QualityLevels.GetValueOrDefault(qualId, qualId))</h4>
 | 
						|
                                @foreach (var (grad, avgKmw, num, weight) in sec.Data.GetValueOrDefault(qualId, Array.Empty<(double, double, int, int)>())) {
 | 
						|
                                    <div class="row">
 | 
						|
                                        <span class="gradation">@(Model.UseOe ? $"{grad:N0}" : $"{grad:N1}")</span>
 | 
						|
                                        <span class="number">@($"{num:N0}")</span>
 | 
						|
                                        <span class="number">@($"{weight:N0}")</span>
 | 
						|
                                    </div>
 | 
						|
                                }
 | 
						|
                            }
 | 
						|
                        </td>
 | 
						|
                    }
 | 
						|
                </tr>
 | 
						|
                <tr>
 | 
						|
                    @foreach (var qualIds in Model.QualIds) {
 | 
						|
                        var quals = qualIds.Select(q => sec.Data.GetValueOrDefault(q, Array.Empty<(double Grad, double AvgKmw, int Num, int Weight)>()));
 | 
						|
                        var weight = quals.Sum(q => q.Sum(kv => kv.Weight));
 | 
						|
                        var num = quals.Sum(q => q.Sum(kv => kv.Num));
 | 
						|
                        var kmw = quals.Sum(q => q.Sum(kv => kv.AvgKmw * kv.Weight)) / weight;
 | 
						|
                        <td class="container bold">
 | 
						|
                            <div class="row">
 | 
						|
                                <span class="gradation">@(weight == 0 ? "-" : Model.UseOe ? $"{Utils.KmwToOe(kmw):N0}" : $"{kmw:N1}")</span>
 | 
						|
                                <span class="number">@($"{num:N0}")</span>
 | 
						|
                                <span class="number">@($"{weight:N0}")</span>
 | 
						|
                            </div>
 | 
						|
                        </td>
 | 
						|
                    }
 | 
						|
                </tr>
 | 
						|
            </tbody>
 | 
						|
            <tfoot>
 | 
						|
                <tr>
 | 
						|
                    @{
 | 
						|
                        var totalWeight = sec.Data.Values.Sum(q => q.Sum(kv => kv.Weight));
 | 
						|
                        var totalNum = sec.Data.Values.Sum(q => q.Sum(kv => kv.Num));
 | 
						|
                        var totalKmw = sec.Data.Values.Sum(q => q.Sum(kv => kv.AvgKmw * kv.Weight)) / totalWeight;
 | 
						|
                    }
 | 
						|
                    <td colspan="4" class="container bold footer @(sec.Type == "R" ? "red" : sec.Type == "W" ? "green" : "")">
 | 
						|
                        <div class="row" style="width: 24%; margin-left: 76%;">
 | 
						|
                            <span class="gradation">@(totalWeight == 0 ? "-" : Model.UseOe ? $"{Utils.KmwToOe(totalKmw):N0}" : $"{totalKmw:N1}")</span>
 | 
						|
                            <span class="number">@($"{totalNum:N0}")</span>
 | 
						|
                            <span class="number">@($"{totalWeight:N0}")</span>
 | 
						|
                        </div>
 | 
						|
                    </td>
 | 
						|
                </tr>
 | 
						|
            </tfoot>
 | 
						|
        </table>
 | 
						|
    }
 | 
						|
</main>
 |