From 141086673ff4ab640f63a6c935ed985e80ff5ae0 Mon Sep 17 00:00:00 2001 From: Lorenz Stechauner Date: Mon, 2 Sep 2024 23:10:37 +0200 Subject: [PATCH] DeliveryAncmtList: Add status to indicate late ancmts --- Elwig/Documents/DeliveryAncmtList.cshtml | 7 +++++-- Elwig/Models/Dtos/DeliveryAncmtListData.cs | 9 +++++++++ Elwig/Windows/DeliveryAncmtAdminWindow.xaml | 7 +++++++ Elwig/Windows/DeliveryAncmtAdminWindow.xaml.cs | 5 +++-- Tests/DocumentTests/DeliveryAncmtListTest.cs | 10 +++++----- 5 files changed, 29 insertions(+), 9 deletions(-) diff --git a/Elwig/Documents/DeliveryAncmtList.cshtml b/Elwig/Documents/DeliveryAncmtList.cshtml index c8d945e..fef5644 100644 --- a/Elwig/Documents/DeliveryAncmtList.cshtml +++ b/Elwig/Documents/DeliveryAncmtList.cshtml @@ -10,8 +10,9 @@ - + + @@ -20,6 +21,7 @@ MgNr. Mitglied Sorte + Anmldg. Gewicht @@ -33,13 +35,14 @@ @a.MgNr @a.AdministrativeName @a.Variety + @(a.Status ?? "-") @($"{a.Weight:N0}") } Gesamt: Anmeldungen: @($"{Model.Announcements.Count():N0}") - @($"{Model.Announcements.Sum(a => a.Weight):N0}") + @($"{Model.Announcements.Sum(a => a.Weight):N0}") diff --git a/Elwig/Models/Dtos/DeliveryAncmtListData.cs b/Elwig/Models/Dtos/DeliveryAncmtListData.cs index 692ede1..c4b9d0f 100644 --- a/Elwig/Models/Dtos/DeliveryAncmtListData.cs +++ b/Elwig/Models/Dtos/DeliveryAncmtListData.cs @@ -17,6 +17,9 @@ namespace Elwig.Models.Dtos { ("Name2", "Vorname", null, 40), ("SortId", "Sorte", null, 10), ("Weight", "Gewicht", "kg", 20), + ("CreatedTimestamp", "Angemeldet", null, 35), + ("ModifiedTimestamp", "Geändert", null, 35), + ("Status", "Status", null, 20), ]; public DeliveryAncmtListData(IEnumerable rows, List filterNames) : @@ -42,7 +45,10 @@ namespace Elwig.Models.Dtos { public string AdministrativeName; public string SortId; public string Variety; + public DateTime CreatedTimestamp; + public DateTime? ModifiedTimestamp; public int Weight; + public string? Status; public DeliveryAncmtListRow(DeliveryAncmt a) { var s = a.Schedule; @@ -56,7 +62,10 @@ namespace Elwig.Models.Dtos { AdministrativeName = m.AdministrativeName; SortId = a.SortId; Variety = a.Variety.Name; + CreatedTimestamp = a.CreatedTimestamp; + ModifiedTimestamp = a.ModifiedTimestamp == a.CreatedTimestamp ? null : a.ModifiedTimestamp; Weight = a.Weight; + Status = s.AncmtTo == null ? null : a.CreatedTimestamp >= s.AncmtTo ? "verspät." : "ok"; } } } diff --git a/Elwig/Windows/DeliveryAncmtAdminWindow.xaml b/Elwig/Windows/DeliveryAncmtAdminWindow.xaml index 4d211a0..600fcbd 100644 --- a/Elwig/Windows/DeliveryAncmtAdminWindow.xaml +++ b/Elwig/Windows/DeliveryAncmtAdminWindow.xaml @@ -167,6 +167,13 @@ + + + + + diff --git a/Elwig/Windows/DeliveryAncmtAdminWindow.xaml.cs b/Elwig/Windows/DeliveryAncmtAdminWindow.xaml.cs index 46ad41c..cd9b2a5 100644 --- a/Elwig/Windows/DeliveryAncmtAdminWindow.xaml.cs +++ b/Elwig/Windows/DeliveryAncmtAdminWindow.xaml.cs @@ -85,14 +85,15 @@ namespace Elwig.Windows { using var ctx = new AppDbContext(); var deliverySchedules = await ctx.DeliverySchedules .Where(s => s.Year == ViewModel.FilterSeason) - .Where(s => !ViewModel.FilterOnlyUpcoming || s.DateString.CompareTo(Utils.Today.ToString("yyyy-MM-dd")) >= 0) .Include(s => s.Branch) .Include(s => s.Announcements) .OrderBy(s => s.DateString) .ThenBy(s => s.Branch.Name) .ThenBy(s => s.Description) .ToListAsync(); - ControlUtils.RenewItemsSource(DeliveryScheduleList, deliverySchedules, DeliveryScheduleList_SelectionChanged, ControlUtils.RenewSourceDefault.First); + ControlUtils.RenewItemsSource(DeliveryScheduleList, deliverySchedules + .Where(s => !ViewModel.FilterOnlyUpcoming || s.DateString.CompareTo(Utils.Today.ToString("yyyy-MM-dd")) >= 0) + .ToList(), DeliveryScheduleList_SelectionChanged, ControlUtils.RenewSourceDefault.First); ControlUtils.RenewItemsSource(DeliveryScheduleInput, deliverySchedules, DeliveryScheduleInput_SelectionChanged); } diff --git a/Tests/DocumentTests/DeliveryAncmtListTest.cs b/Tests/DocumentTests/DeliveryAncmtListTest.cs index 382f012..c3e50e3 100644 --- a/Tests/DocumentTests/DeliveryAncmtListTest.cs +++ b/Tests/DocumentTests/DeliveryAncmtListTest.cs @@ -18,11 +18,11 @@ namespace Tests.DocumentTests { Assert.That(text, Contains.Substring("Anmeldeliste")); Assert.That(text, Contains.Substring("01.10.2020 – Matzen – GV Kabinettaktion")); Assert.That(table, Is.EqualTo(new string[][] { - ["01.10.2020", "101 MUSTERMANN Max", "Grüner Veltliner", "5 000"], - ["01.10.2020", "102 WEINBAUER Wernhardt", "Grüner Veltliner", "10 000"], - ["01.10.2020", "103 MUSTERBAUER Matthäus", "Grüner Veltliner", "8 000"], - ["01.10.2020", "104 WINZER Waltraud", "Grüner Veltliner", "2 000"], - ["Gesamt:", "Anmeldungen: 4", "25 000"], + ["01.10.2020", "101 MUSTERMANN Max", "Grüner Veltliner", "-", "5 000"], + ["01.10.2020", "102 WEINBAUER Wernhardt", "Grüner Veltliner", "-", "10 000"], + ["01.10.2020", "103 MUSTERBAUER Matthäus", "Grüner Veltliner", "-", "8 000"], + ["01.10.2020", "104 WINZER Waltraud", "Grüner Veltliner", "-", "2 000"], + ["Gesamt:", "Anmeldungen: 4", "25 000"], })); }); }