WineQualityStatistics: Add and fix grouping by KMW
This commit is contained in:
@ -1,4 +1,5 @@
|
|||||||
@using RazorLight
|
@using RazorLight
|
||||||
|
@using Elwig.Helpers
|
||||||
@inherits TemplatePage<Elwig.Documents.WineQualityStatistics>
|
@inherits TemplatePage<Elwig.Documents.WineQualityStatistics>
|
||||||
@model Elwig.Documents.WineQualityStatistics
|
@model Elwig.Documents.WineQualityStatistics
|
||||||
@{ Layout = "Document"; }
|
@{ Layout = "Document"; }
|
||||||
@ -32,7 +33,7 @@
|
|||||||
</div>
|
</div>
|
||||||
@foreach (var qualId in qualIds) {
|
@foreach (var qualId in qualIds) {
|
||||||
<h4>@(Model.QualityLevels.GetValueOrDefault(qualId, qualId))</h4>
|
<h4>@(Model.QualityLevels.GetValueOrDefault(qualId, qualId))</h4>
|
||||||
@foreach (var (grad, num, weight) in sec.Data.GetValueOrDefault(qualId, Array.Empty<(double, int, int)>())) {
|
@foreach (var (grad, avgKmw, num, weight) in sec.Data.GetValueOrDefault(qualId, Array.Empty<(double, double, int, int)>())) {
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<span class="gradation">@(Model.UseOe ? $"{grad:N0}" : $"{grad:N1}")</span>
|
<span class="gradation">@(Model.UseOe ? $"{grad:N0}" : $"{grad:N1}")</span>
|
||||||
<span class="number">@($"{num:N0}")</span>
|
<span class="number">@($"{num:N0}")</span>
|
||||||
@ -45,13 +46,13 @@
|
|||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
@foreach (var qualIds in Model.QualIds) {
|
@foreach (var qualIds in Model.QualIds) {
|
||||||
var quals = qualIds.Select(q => sec.Data.GetValueOrDefault(q, Array.Empty<(double Grad, int Num, int Weight)>()));
|
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 weight = quals.Sum(q => q.Sum(kv => kv.Weight));
|
||||||
var num = quals.Sum(q => q.Sum(kv => kv.Num));
|
var num = quals.Sum(q => q.Sum(kv => kv.Num));
|
||||||
var grad = quals.Sum(q => q.Sum(kv => kv.Grad * kv.Weight)) / weight;
|
var kmw = quals.Sum(q => q.Sum(kv => kv.AvgKmw * kv.Weight)) / weight;
|
||||||
<td class="container bold">
|
<td class="container bold">
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<span class="gradation">@(weight == 0 ? "-" : Model.UseOe ? $"{grad:N0}" : $"{grad:N1}")</span>
|
<span class="gradation">@(weight == 0 ? "-" : Model.UseOe ? $"{Utils.KmwToOe(kmw):N0}" : $"{kmw:N1}")</span>
|
||||||
<span class="number">@($"{num:N0}")</span>
|
<span class="number">@($"{num:N0}")</span>
|
||||||
<span class="number">@($"{weight:N0}")</span>
|
<span class="number">@($"{weight:N0}")</span>
|
||||||
</div>
|
</div>
|
||||||
@ -64,11 +65,11 @@
|
|||||||
@{
|
@{
|
||||||
var totalWeight = sec.Data.Values.Sum(q => q.Sum(kv => kv.Weight));
|
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 totalNum = sec.Data.Values.Sum(q => q.Sum(kv => kv.Num));
|
||||||
var totalGrad = sec.Data.Values.Sum(q => q.Sum(kv => kv.Grad * kv.Weight)) / totalWeight;
|
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" : "")">
|
<td colspan="4" class="container bold footer @(sec.Type == "R" ? "red" : sec.Type == "W" ? "green" : "")">
|
||||||
<div class="row" style="width: 24%; margin-left: 76%;">
|
<div class="row" style="width: 24%; margin-left: 76%;">
|
||||||
<span class="gradation">@(totalWeight == 0 ? "-" : Model.UseOe ? $"{totalGrad:N0}" : $"{totalGrad:N1}")</span>
|
<span class="gradation">@(totalWeight == 0 ? "-" : Model.UseOe ? $"{Utils.KmwToOe(totalKmw):N0}" : $"{totalKmw:N1}")</span>
|
||||||
<span class="number">@($"{totalNum:N0}")</span>
|
<span class="number">@($"{totalNum:N0}")</span>
|
||||||
<span class="number">@($"{totalWeight:N0}")</span>
|
<span class="number">@($"{totalWeight:N0}")</span>
|
||||||
</div>
|
</div>
|
||||||
|
@ -57,6 +57,7 @@ namespace Elwig.Helpers {
|
|||||||
public string? Website;
|
public string? Website;
|
||||||
|
|
||||||
public int ModeDeliveryNoteStats;
|
public int ModeDeliveryNoteStats;
|
||||||
|
public int ModeWineQualityStatistics;
|
||||||
public int OrderingMemberList;
|
public int OrderingMemberList;
|
||||||
|
|
||||||
public string? TextDeliveryNote;
|
public string? TextDeliveryNote;
|
||||||
@ -103,6 +104,13 @@ namespace Elwig.Helpers {
|
|||||||
case "SHORT": ModeDeliveryNoteStats = 2; break;
|
case "SHORT": ModeDeliveryNoteStats = 2; break;
|
||||||
case "FULL": ModeDeliveryNoteStats = 3; break;
|
case "FULL": ModeDeliveryNoteStats = 3; break;
|
||||||
}
|
}
|
||||||
|
switch (parameters.GetValueOrDefault("MODE_WINEQUALITYSTATISTICS", "OE")?.ToUpper()) {
|
||||||
|
case "OE": ModeWineQualityStatistics = 0; break;
|
||||||
|
case "KMW/1": ModeWineQualityStatistics = 1; break;
|
||||||
|
case "KMW/2": ModeWineQualityStatistics = 2; break;
|
||||||
|
case "KMW/5": ModeWineQualityStatistics = 3; break;
|
||||||
|
case "KMW/10": ModeWineQualityStatistics = 4; break;
|
||||||
|
}
|
||||||
switch (parameters.GetValueOrDefault("ORDERING_MEMBERLIST", "")?.ToUpper()) {
|
switch (parameters.GetValueOrDefault("ORDERING_MEMBERLIST", "")?.ToUpper()) {
|
||||||
case "MGNR": OrderingMemberList = 0; break;
|
case "MGNR": OrderingMemberList = 0; break;
|
||||||
case "NAME": OrderingMemberList = 1; break;
|
case "NAME": OrderingMemberList = 1; break;
|
||||||
@ -133,6 +141,14 @@ namespace Elwig.Helpers {
|
|||||||
case 2: deliveryNoteStats = "SHORT"; break;
|
case 2: deliveryNoteStats = "SHORT"; break;
|
||||||
case 3: deliveryNoteStats = "FULL"; break;
|
case 3: deliveryNoteStats = "FULL"; break;
|
||||||
}
|
}
|
||||||
|
string modeWineQualityStatistics = "OE";
|
||||||
|
switch (ModeWineQualityStatistics) {
|
||||||
|
case 0: modeWineQualityStatistics = "OE"; break;
|
||||||
|
case 1: modeWineQualityStatistics = "KMW/1"; break;
|
||||||
|
case 2: modeWineQualityStatistics = "KMW/2"; break;
|
||||||
|
case 3: modeWineQualityStatistics = "KMW/5"; break;
|
||||||
|
case 4: modeWineQualityStatistics = "KMW/10"; break;
|
||||||
|
}
|
||||||
string orderingMemberList = "MGNR";
|
string orderingMemberList = "MGNR";
|
||||||
switch (OrderingMemberList) {
|
switch (OrderingMemberList) {
|
||||||
case 0: orderingMemberList = "MGNR"; break;
|
case 0: orderingMemberList = "MGNR"; break;
|
||||||
@ -157,6 +173,7 @@ namespace Elwig.Helpers {
|
|||||||
("CLIENT_BIC", Bic),
|
("CLIENT_BIC", Bic),
|
||||||
("CLIENT_IBAN", Iban),
|
("CLIENT_IBAN", Iban),
|
||||||
("MODE_DELIVERYNOTE_STATS", deliveryNoteStats),
|
("MODE_DELIVERYNOTE_STATS", deliveryNoteStats),
|
||||||
|
("MODE_WINEQUALITYSTATISTICS", modeWineQualityStatistics),
|
||||||
("ORDERING_MEMBERLIST", orderingMemberList),
|
("ORDERING_MEMBERLIST", orderingMemberList),
|
||||||
("DOCUMENT_SENDER", Sender2),
|
("DOCUMENT_SENDER", Sender2),
|
||||||
("TEXT_DELIVERYNOTE", TextDeliveryNote),
|
("TEXT_DELIVERYNOTE", TextDeliveryNote),
|
||||||
|
@ -9,8 +9,8 @@ using System.Threading.Tasks;
|
|||||||
namespace Elwig.Models.Dtos {
|
namespace Elwig.Models.Dtos {
|
||||||
public class WineQualityStatisticsData {
|
public class WineQualityStatisticsData {
|
||||||
|
|
||||||
public record struct QualityRow(string? Variety, string? Attribute, string? Cultivation, string? Type, string QualId, double Grad, int Num, int Weight);
|
public record struct QualityRow(string? Variety, string? Attribute, string? Cultivation, string? Type, string QualId, double AvgKmw, double Grad, int Num, int Weight);
|
||||||
public record struct QualitySection(string Name, string? Type, Dictionary<string, (double Grad, int Num, int Weight)[]> Data);
|
public record struct QualitySection(string Name, string? Type, Dictionary<string, (double Grad, double AvgKmw, int Num, int Weight)[]> Data);
|
||||||
|
|
||||||
public bool UseOe = true;
|
public bool UseOe = true;
|
||||||
public QualitySection[] Sections;
|
public QualitySection[] Sections;
|
||||||
@ -21,8 +21,8 @@ namespace Elwig.Models.Dtos {
|
|||||||
|
|
||||||
private static QualitySection[] GetQualitySections(IEnumerable<QualityRow> rows) {
|
private static QualitySection[] GetQualitySections(IEnumerable<QualityRow> rows) {
|
||||||
var data = new List<QualitySection>();
|
var data = new List<QualitySection>();
|
||||||
var currentQual = new Dictionary<double, (int Num, int Weight)>();
|
var currentQual = new Dictionary<double, (double AvgKmw, int Num, int Weight)>();
|
||||||
var current = new Dictionary<string, (double, int, int)[]>();
|
var current = new Dictionary<string, (double, double, int, int)[]>();
|
||||||
string? lastSection = null;
|
string? lastSection = null;
|
||||||
string? lastType = null;
|
string? lastType = null;
|
||||||
string? lastQual = null;
|
string? lastQual = null;
|
||||||
@ -31,25 +31,25 @@ namespace Elwig.Models.Dtos {
|
|||||||
$"{(row.Attribute != null ? " / " : "")}{row.Attribute}" +
|
$"{(row.Attribute != null ? " / " : "")}{row.Attribute}" +
|
||||||
$"{(row.Cultivation != null ? " / " : "")}{row.Cultivation}";
|
$"{(row.Cultivation != null ? " / " : "")}{row.Cultivation}";
|
||||||
if (lastQual != null && lastQual != row.QualId) {
|
if (lastQual != null && lastQual != row.QualId) {
|
||||||
current[lastQual] = currentQual.Select(kv => (kv.Key, kv.Value.Num, kv.Value.Weight)).ToArray();
|
current[lastQual] = currentQual.Select(kv => (kv.Key, kv.Value.AvgKmw, kv.Value.Num, kv.Value.Weight)).ToArray();
|
||||||
currentQual.Clear();
|
currentQual.Clear();
|
||||||
}
|
}
|
||||||
if (lastSection != null && lastSection != sec) {
|
if (lastSection != null && lastSection != sec) {
|
||||||
if (!current.ContainsKey(lastQual!)) {
|
if (!current.ContainsKey(lastQual!)) {
|
||||||
current[lastQual!] = currentQual.Select(kv => (kv.Key, kv.Value.Num, kv.Value.Weight)).ToArray();
|
current[lastQual!] = currentQual.Select(kv => (kv.Key, kv.Value.AvgKmw, kv.Value.Num, kv.Value.Weight)).ToArray();
|
||||||
currentQual.Clear();
|
currentQual.Clear();
|
||||||
}
|
}
|
||||||
data.Add(new(lastSection, lastType, current));
|
data.Add(new(lastSection, lastType, current));
|
||||||
current = [];
|
current = [];
|
||||||
currentQual.Clear();
|
currentQual.Clear();
|
||||||
}
|
}
|
||||||
currentQual[row.Grad] = (row.Num, row.Weight);
|
currentQual[row.Grad] = (row.AvgKmw, row.Num, row.Weight);
|
||||||
lastSection = sec;
|
lastSection = sec;
|
||||||
lastType = row.Type;
|
lastType = row.Type;
|
||||||
lastQual = row.QualId;
|
lastQual = row.QualId;
|
||||||
}
|
}
|
||||||
if (lastQual != null) {
|
if (lastQual != null) {
|
||||||
current[lastQual] = currentQual.Select(kv => (kv.Key, kv.Value.Num, kv.Value.Weight)).ToArray();
|
current[lastQual] = currentQual.Select(kv => (kv.Key, kv.Value.AvgKmw, kv.Value.Num, kv.Value.Weight)).ToArray();
|
||||||
currentQual.Clear();
|
currentQual.Clear();
|
||||||
}
|
}
|
||||||
if (lastSection != null) {
|
if (lastSection != null) {
|
||||||
@ -60,7 +60,7 @@ namespace Elwig.Models.Dtos {
|
|||||||
return [.. data];
|
return [.. data];
|
||||||
}
|
}
|
||||||
|
|
||||||
public static async Task<WineQualityStatisticsData> FromQuery(IQueryable<DeliveryPart> query, bool useOe = true) {
|
public static async Task<WineQualityStatisticsData> FromQuery(IQueryable<DeliveryPart> query, int mode = 0) {
|
||||||
var rows = (await query
|
var rows = (await query
|
||||||
.GroupBy(p => new {
|
.GroupBy(p => new {
|
||||||
p.Variety.Type,
|
p.Variety.Type,
|
||||||
@ -68,15 +68,24 @@ namespace Elwig.Models.Dtos {
|
|||||||
Attribute = p.Attribute!.Name,
|
Attribute = p.Attribute!.Name,
|
||||||
Cultivation = p.Cultivation!.Name,
|
Cultivation = p.Cultivation!.Name,
|
||||||
p.QualId,
|
p.QualId,
|
||||||
Oe = useOe ? Math.Round(p.Kmw * (4.54 + 0.022 * p.Kmw), 0) : Math.Round(p.Kmw, 1),
|
Grad = mode == 0 ? Math.Round(p.Kmw * (4.54 + 0.022 * p.Kmw), 0) :
|
||||||
}, (k, g) => new { Key = k, Num = g.Count(), Weight = g.Sum(p => p.Weight) })
|
mode == 1 ? Math.Floor(p.Kmw) :
|
||||||
|
mode == 2 ? Math.Floor(p.Kmw * 2) / 2 :
|
||||||
|
mode == 3 ? Math.Floor(p.Kmw * 5) / 5 :
|
||||||
|
Math.Round(p.Kmw, 1),
|
||||||
|
}, (k, g) => new {
|
||||||
|
Key = k,
|
||||||
|
Num = g.Count(),
|
||||||
|
Weight = g.Sum(p => p.Weight),
|
||||||
|
AvgKmw = g.Sum(p => p.Weight * p.Kmw) / g.Sum(p => p.Weight),
|
||||||
|
})
|
||||||
.OrderBy(g => g.Key.Variety)
|
.OrderBy(g => g.Key.Variety)
|
||||||
.ThenBy(g => g.Key.Attribute)
|
.ThenBy(g => g.Key.Attribute)
|
||||||
.ThenBy(g => g.Key.Cultivation)
|
.ThenBy(g => g.Key.Cultivation)
|
||||||
.ThenBy(g => g.Key.QualId)
|
.ThenBy(g => g.Key.QualId)
|
||||||
.ThenBy(g => g.Key.Oe)
|
.ThenBy(g => g.Key.Grad)
|
||||||
.ToListAsync())
|
.ToListAsync())
|
||||||
.Select(r => new QualityRow(r.Key.Variety, r.Key.Attribute, r.Key.Cultivation, r.Key.Type, r.Key.QualId, r.Key.Oe, r.Num, r.Weight))
|
.Select(r => new QualityRow(r.Key.Variety, r.Key.Attribute, r.Key.Cultivation, r.Key.Type, r.Key.QualId, r.AvgKmw, r.Key.Grad, r.Num, r.Weight))
|
||||||
.ToList();
|
.ToList();
|
||||||
|
|
||||||
var data = GetQualitySections(rows);
|
var data = GetQualitySections(rows);
|
||||||
@ -84,7 +93,14 @@ namespace Elwig.Models.Dtos {
|
|||||||
return new(data);
|
return new(data);
|
||||||
|
|
||||||
var typeRows = rows
|
var typeRows = rows
|
||||||
.GroupBy(s => new { s.Type, s.QualId, s.Grad }, (k, g) => new QualityRow(null, null, null, k.Type, k.QualId, k.Grad, g.Sum(g => g.Num), g.Sum(p => p.Weight)))
|
.GroupBy(s => new { s.Type, s.QualId, s.Grad }, (k, g) => new QualityRow(
|
||||||
|
null, null, null,
|
||||||
|
k.Type, k.QualId,
|
||||||
|
g.Sum(p => p.Weight * p.AvgKmw) / g.Sum(p => p.Weight),
|
||||||
|
k.Grad,
|
||||||
|
g.Sum(p => p.Num),
|
||||||
|
g.Sum(p => p.Weight)
|
||||||
|
))
|
||||||
.OrderBy(g => g.Type)
|
.OrderBy(g => g.Type)
|
||||||
.ThenBy(g => g.QualId)
|
.ThenBy(g => g.QualId)
|
||||||
.ThenBy(g => g.Grad)
|
.ThenBy(g => g.Grad)
|
||||||
@ -94,12 +110,19 @@ namespace Elwig.Models.Dtos {
|
|||||||
return new([.. typeData, .. data]);
|
return new([.. typeData, .. data]);
|
||||||
|
|
||||||
var totalRows = rows
|
var totalRows = rows
|
||||||
.GroupBy(s => new { s.QualId, s.Grad }, (k, g) => new QualityRow(null, null, null, null, k.QualId, k.Grad, g.Sum(p => p.Num), g.Sum(p => p.Weight)))
|
.GroupBy(s => new { s.QualId, s.Grad }, (k, g) => new QualityRow(
|
||||||
|
null, null, null, null,
|
||||||
|
k.QualId,
|
||||||
|
g.Sum(p => p.Weight * p.AvgKmw) / g.Sum(p => p.Weight),
|
||||||
|
k.Grad,
|
||||||
|
g.Sum(p => p.Num),
|
||||||
|
g.Sum(p => p.Weight)
|
||||||
|
))
|
||||||
.OrderBy(g => g.QualId)
|
.OrderBy(g => g.QualId)
|
||||||
.ThenBy(g => g.Grad)
|
.ThenBy(g => g.Grad)
|
||||||
.ToList();
|
.ToList();
|
||||||
var totalData = GetQualitySections(totalRows);
|
var totalData = GetQualitySections(totalRows);
|
||||||
return new([.. totalData, .. typeData, .. data]) { UseOe = useOe };
|
return new([.. totalData, .. typeData, .. data]) { UseOe = mode == 0 };
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -81,7 +81,7 @@
|
|||||||
<MenuItem x:Name="Menu_DeliveryJournal_PrintToday" Header="...von heute drucken"
|
<MenuItem x:Name="Menu_DeliveryJournal_PrintToday" Header="...von heute drucken"
|
||||||
Click="Menu_DeliveryJournal_PrintToday_Click" InputGestureText="Strg+J"/>
|
Click="Menu_DeliveryJournal_PrintToday_Click" InputGestureText="Strg+J"/>
|
||||||
</MenuItem>
|
</MenuItem>
|
||||||
<MenuItem Header="Qualitätsstatistik">
|
<MenuItem Header="Qualitätsstatistik" x:Name="Menu_WineQualityStatistics">
|
||||||
<MenuItem x:Name="Menu_WineQualityStatistics_ShowFilters" Header="...aus Filtern anzeigen (PDF)"
|
<MenuItem x:Name="Menu_WineQualityStatistics_ShowFilters" Header="...aus Filtern anzeigen (PDF)"
|
||||||
Click="Menu_WineQualityStatistics_ShowFilters_Click"/>
|
Click="Menu_WineQualityStatistics_ShowFilters_Click"/>
|
||||||
<MenuItem x:Name="Menu_WineQualityStatistics_SavePdfFilters" Header="...aus Filtern speichern... (PDF)"
|
<MenuItem x:Name="Menu_WineQualityStatistics_SavePdfFilters" Header="...aus Filtern speichern... (PDF)"
|
||||||
@ -95,6 +95,17 @@
|
|||||||
Click="Menu_WineQualityStatistics_SavePdfToday_Click"/>
|
Click="Menu_WineQualityStatistics_SavePdfToday_Click"/>
|
||||||
<MenuItem x:Name="Menu_WineQualityStatistics_PrintToday" Header="...von heute drucken"
|
<MenuItem x:Name="Menu_WineQualityStatistics_PrintToday" Header="...von heute drucken"
|
||||||
Click="Menu_WineQualityStatistics_PrintToday_Click" InputGestureText="Strg+Q"/>
|
Click="Menu_WineQualityStatistics_PrintToday_Click" InputGestureText="Strg+Q"/>
|
||||||
|
<Separator/>
|
||||||
|
<MenuItem x:Name="Menu_WineQualityStatistics_ModeOe" Header="...nach °Oe aufschlüsseln" IsCheckable="True" IsChecked="True"
|
||||||
|
Click="Menu_WineQualityStatistics_Mode_Click"/>
|
||||||
|
<MenuItem x:Name="Menu_WineQualityStatistics_ModeKmw10" Header="...nach °KMW aufschlüsseln (⅒)" IsCheckable="True"
|
||||||
|
Click="Menu_WineQualityStatistics_Mode_Click"/>
|
||||||
|
<MenuItem x:Name="Menu_WineQualityStatistics_ModeKmw5" Header="...nach °KMW aufschlüsseln (⅕)" IsCheckable="True"
|
||||||
|
Click="Menu_WineQualityStatistics_Mode_Click"/>
|
||||||
|
<MenuItem x:Name="Menu_WineQualityStatistics_ModeKmw2" Header="...nach °KMW aufschlüsseln (½)" IsCheckable="True"
|
||||||
|
Click="Menu_WineQualityStatistics_Mode_Click"/>
|
||||||
|
<MenuItem x:Name="Menu_WineQualityStatistics_ModeKmw1" Header="...nach °KMW aufschlüsseln (ganze)" IsCheckable="True"
|
||||||
|
Click="Menu_WineQualityStatistics_Mode_Click"/>
|
||||||
</MenuItem>
|
</MenuItem>
|
||||||
<MenuItem Header="BKI">
|
<MenuItem Header="BKI">
|
||||||
<MenuItem x:Name="Menu_Bki_SaveList" Header="Traubentransportscheinliste speichern..."/>
|
<MenuItem x:Name="Menu_Bki_SaveList" Header="Traubentransportscheinliste speichern..."/>
|
||||||
|
@ -108,6 +108,19 @@ namespace Elwig.Windows {
|
|||||||
WeighingCButton.Visibility = Visibility.Hidden;
|
WeighingCButton.Visibility = Visibility.Hidden;
|
||||||
WeighingDButton.Visibility = Visibility.Hidden;
|
WeighingDButton.Visibility = Visibility.Hidden;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Menu_WineQualityStatistics_ModeOe.IsChecked = false;
|
||||||
|
Menu_WineQualityStatistics_ModeKmw1.IsChecked = false;
|
||||||
|
Menu_WineQualityStatistics_ModeKmw2.IsChecked = false;
|
||||||
|
Menu_WineQualityStatistics_ModeKmw5.IsChecked = false;
|
||||||
|
Menu_WineQualityStatistics_ModeKmw10.IsChecked = false;
|
||||||
|
switch (App.Client.OrderingMemberList) {
|
||||||
|
case 0: Menu_WineQualityStatistics_ModeOe.IsChecked = true; break;
|
||||||
|
case 1: Menu_WineQualityStatistics_ModeKmw1.IsChecked = true; break;
|
||||||
|
case 2: Menu_WineQualityStatistics_ModeKmw2.IsChecked = true; break;
|
||||||
|
case 3: Menu_WineQualityStatistics_ModeKmw5.IsChecked = true; break;
|
||||||
|
case 4: Menu_WineQualityStatistics_ModeKmw10.IsChecked = true; break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public DeliveryAdminWindow(int mgnr) : this() {
|
public DeliveryAdminWindow(int mgnr) : this() {
|
||||||
@ -322,7 +335,7 @@ namespace Elwig.Windows {
|
|||||||
|
|
||||||
Mouse.OverrideCursor = Cursors.AppStarting;
|
Mouse.OverrideCursor = Cursors.AppStarting;
|
||||||
try {
|
try {
|
||||||
var data = await WineQualityStatisticsData.FromQuery(query);
|
var data = await WineQualityStatisticsData.FromQuery(query, App.Client.OrderingMemberList);
|
||||||
using var doc = new WineQualityStatistics(string.Join(" / ", filterNames), data);
|
using var doc = new WineQualityStatistics(string.Join(" / ", filterNames), data);
|
||||||
await Utils.ExportDocument(doc, exportMode);
|
await Utils.ExportDocument(doc, exportMode);
|
||||||
} catch (Exception exc) {
|
} catch (Exception exc) {
|
||||||
@ -331,6 +344,27 @@ namespace Elwig.Windows {
|
|||||||
Mouse.OverrideCursor = null;
|
Mouse.OverrideCursor = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private async void Menu_WineQualityStatistics_Mode_Click(object sender, RoutedEventArgs evt) {
|
||||||
|
Menu_WineQualityStatistics.IsSubmenuOpen = true;
|
||||||
|
if (sender == Menu_WineQualityStatistics_ModeOe) {
|
||||||
|
App.Client.OrderingMemberList = 0;
|
||||||
|
} else if (sender == Menu_WineQualityStatistics_ModeKmw1) {
|
||||||
|
App.Client.OrderingMemberList = 1;
|
||||||
|
} else if (sender == Menu_WineQualityStatistics_ModeKmw2) {
|
||||||
|
App.Client.OrderingMemberList = 2;
|
||||||
|
} else if (sender == Menu_WineQualityStatistics_ModeKmw5) {
|
||||||
|
App.Client.OrderingMemberList = 3;
|
||||||
|
} else if (sender == Menu_WineQualityStatistics_ModeKmw10) {
|
||||||
|
App.Client.OrderingMemberList = 4;
|
||||||
|
}
|
||||||
|
Menu_WineQualityStatistics_ModeOe.IsChecked = App.Client.OrderingMemberList == 0;
|
||||||
|
Menu_WineQualityStatistics_ModeKmw1.IsChecked = App.Client.OrderingMemberList == 1;
|
||||||
|
Menu_WineQualityStatistics_ModeKmw2.IsChecked = App.Client.OrderingMemberList == 2;
|
||||||
|
Menu_WineQualityStatistics_ModeKmw5.IsChecked = App.Client.OrderingMemberList == 3;
|
||||||
|
Menu_WineQualityStatistics_ModeKmw10.IsChecked = App.Client.OrderingMemberList == 4;
|
||||||
|
await App.Client.UpdateValues();
|
||||||
|
}
|
||||||
|
|
||||||
private void Menu_Settings_EnableFreeEditing_Checked(object sender, RoutedEventArgs evt) {
|
private void Menu_Settings_EnableFreeEditing_Checked(object sender, RoutedEventArgs evt) {
|
||||||
if (IsEditing || IsCreating) {
|
if (IsEditing || IsCreating) {
|
||||||
DateInput.IsReadOnly = false;
|
DateInput.IsReadOnly = false;
|
||||||
|
Reference in New Issue
Block a user