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)