DeliveryAdminWindow: Fix delivery ordering

This commit is contained in:
2023-09-29 15:01:35 +02:00
parent 47d51ded51
commit 00e7eeb774

View File

@ -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<DeliveryPart> dpq = deliveryQuery.SelectMany(d => d.Parts);
IQueryable<DeliveryPart> 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)