diff --git a/Elwig/Windows/DeliveryAdminWindow.xaml.cs b/Elwig/Windows/DeliveryAdminWindow.xaml.cs index e6fe21e..c60ef5e 100644 --- a/Elwig/Windows/DeliveryAdminWindow.xaml.cs +++ b/Elwig/Windows/DeliveryAdminWindow.xaml.cs @@ -278,15 +278,14 @@ namespace Elwig.Windows { } if (TodayOnlyInput.IsChecked == true) { deliveryQuery = deliveryQuery - .Where(d => (d.DateString == Utils.Today.ToString("yyyy-MM-dd") && d.TimeString.CompareTo("03:00:00") > 0) || - (d.DateString == Utils.Today.AddDays(1).ToString("yyyy-MM-dd") && d.TimeString.CompareTo("03:00:00") <= 0)); + .Where(d => (d.DateString == Utils.Today.ToString("yyyy-MM-dd") && (d.TimeString == null || d.TimeString.CompareTo("03:00:00") > 0)) || + (d.DateString == Utils.Today.AddDays(1).ToString("yyyy-MM-dd") && (d.TimeString == null || d.TimeString.CompareTo("03:00:00") <= 0))); filterNames.Add(Utils.Today.ToString("dd.MM.yyyy")); } else if (AllSeasonsInput.IsChecked == false) { deliveryQuery = deliveryQuery.Where(d => d.Year == SeasonInput.Value); filterNames.Add(SeasonInput.Value.ToString() ?? ""); } - deliveryQuery = deliveryQuery.OrderBy(d => d.DateString).ThenBy(d => d.TimeString); - IQueryable dpq = deliveryQuery.SelectMany(d => d.Parts); + IQueryable dpq = deliveryQuery.SelectMany(d => d.Parts).OrderBy(p => p.Delivery.DateString).ThenBy(p => p.Delivery.TimeString); // TODO add filter for: // attributes @@ -402,8 +401,8 @@ namespace Elwig.Windows { if (filterPartDate.Count > 0) dpq = dpq.Where(p => filterPartDate.Contains(p.Delivery.DateString.Substring(4))); if (filterYearGt > 0) dpq = dpq.Where(p => p.Year >= filterYearGt); if (filterYearLt > 0) dpq = dpq.Where(p => p.Year < filterYearLt); - if (filterTimeGt != null) dpq = dpq.Where(p => filterTimeGt.CompareTo(p.Delivery.TimeString) <= 0); - if (filterTimeLt != null) dpq = dpq.Where(p => filterTimeLt.CompareTo(p.Delivery.TimeString) > 0); + if (filterTimeGt != null) dpq = dpq.Where(p => p.Delivery.TimeString != null && filterTimeGt.CompareTo(p.Delivery.TimeString) <= 0); + if (filterTimeLt != null) dpq = dpq.Where(p => p.Delivery.TimeString != null && filterTimeLt.CompareTo(p.Delivery.TimeString) > 0); if (filterVar.Count > 0) dpq = dpq.Where(p => filterVar.Contains(p.SortId)); if (filterQual.Count > 0) dpq = dpq.Where(p => filterQual.Contains(p.QualId)); if (filterKmwGt > 0) dpq = dpq.Where(p => p.Kmw >= filterKmwGt); @@ -441,7 +440,7 @@ namespace Elwig.Windows { } } - return (filterNames, dpq.Select(p => p.Delivery).Distinct(), dpq, filter); + return (filterNames, dpq.Select(p => p.Delivery).Distinct().OrderBy(d => d.DateString).ThenBy(d => d.TimeString), dpq, filter); } private async Task RefreshDeliveryListQuery(bool updateSort = false) { @@ -1135,8 +1134,8 @@ namespace Elwig.Windows { day = day.AddDays(-1); var lsnrs = await Context.Deliveries .Where(d => d.ZwstId == delivery.ZwstId) - .Where(d => (d.DateString == day.ToString("yyyy-MM-dd") && d.TimeString.CompareTo("03:00:00") > 0) || - (d.DateString == day.AddDays(1).ToString("yyyy-MM-dd") && d.TimeString.CompareTo("03:00:00") <= 0)) + .Where(d => (d.DateString == day.ToString("yyyy-MM-dd") && (d.TimeString == null || d.TimeString.CompareTo("03:00:00") > 0)) || + (d.DateString == day.AddDays(1).ToString("yyyy-MM-dd") && (d.TimeString == null || d.TimeString.CompareTo("03:00:00") <= 0))) .Where(d => d.LsNr != delivery.LsNr) .OrderBy(d => d.LsNr) .Select(d => d.LsNr)