From 8f2f5b28cf1be38bfccb533145486d9480e874af Mon Sep 17 00:00:00 2001 From: Lorenz Stechauner Date: Tue, 3 Oct 2023 22:58:13 +0200 Subject: [PATCH] DeliveryAdminWindow: Allow to exclude varieties from filter --- Elwig/Windows/DeliveryAdminWindow.xaml | 2 +- Elwig/Windows/DeliveryAdminWindow.xaml.cs | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/Elwig/Windows/DeliveryAdminWindow.xaml b/Elwig/Windows/DeliveryAdminWindow.xaml index ce757dc..baf22d5 100644 --- a/Elwig/Windows/DeliveryAdminWindow.xaml +++ b/Elwig/Windows/DeliveryAdminWindow.xaml @@ -92,7 +92,7 @@ + ToolTip="Lieferungen filtern und durchsuchen. Die Filter sind beliebig kombinierbar. Filtern nach: Sorte: z.B. GV, ZW, rr, sa, !gv (ausgenommen GV), ... Qualitätsstufe: z.B. QUW, kab, ldw, ... Gradation: z.B. >73, <15, 17-18, 15-, >17,5, 62-75, ... Mitglied: z.B. 1234, 987, ... Saison: z.B. 2020, >2015, 2017-2019, <2005, 2019-, ... Zweigstelle: z.B. musterort, ... Attribute: z.B. kabinett, !kabinett (alle außer kabinett), ... Datum: z.B. 1.9., 15.9.-10.10., -15.10.2020, ... Uhrzeit: z.B. 06:00-08:00, 18:00-, ... Freitext: z.B. Lieferscheinnummern, "quw" (sucht nach dem Text "quw")"/> diff --git a/Elwig/Windows/DeliveryAdminWindow.xaml.cs b/Elwig/Windows/DeliveryAdminWindow.xaml.cs index 7513f13..f207647 100644 --- a/Elwig/Windows/DeliveryAdminWindow.xaml.cs +++ b/Elwig/Windows/DeliveryAdminWindow.xaml.cs @@ -294,6 +294,7 @@ namespace Elwig.Windows { .ThenBy(p => p.DPNr); var filterVar = new List(); + var filterNotVar = new List(); var filterQual = new List(); var filterMgNr = new List(); var filterZwst = new List(); @@ -319,6 +320,10 @@ namespace Elwig.Windows { filterVar.Add(e.ToUpper()); filter.RemoveAt(i--); filterNames.Add(var[e.ToUpper()].Name); + } else if (e.Length == 3 && e[0] == '!' && var.ContainsKey(e[1..].ToUpper())) { + filterNotVar.Add(e[1..].ToUpper()); + filter.RemoveAt(i--); + filterNames.Add("außer " + var[e[1..].ToUpper()].Name); } else if (e.Length == 3 && qual.ContainsKey(e.ToUpper())) { filterQual.Add(e.ToUpper()); filter.RemoveAt(i--); @@ -455,6 +460,7 @@ namespace Elwig.Windows { dpq = dpq.Where(p => p.Delivery.TimeString != null).Where(pr); } if (filterVar.Count > 0) dpq = dpq.Where(p => filterVar.Contains(p.SortId)); + if (filterNotVar.Count > 0) dpq = dpq.Where(p => !filterNotVar.Contains(p.SortId)); if (filterQual.Count > 0) dpq = dpq.Where(p => filterQual.Contains(p.QualId)); if (filterZwst.Count > 0) dpq = dpq.Where(p => filterZwst.Contains(p.Delivery.ZwstId)); if (filterAttr.Count > 0)