DeliveryConfirmationData: Fix ordering problem
This commit is contained in:
@ -28,7 +28,7 @@ namespace Elwig.Models.Dtos {
|
||||
}
|
||||
|
||||
public static async Task<IDictionary<int, DeliveryConfirmationData>> ForSeason(DbSet<DeliveryPart> table, int year) {
|
||||
return (await FromDbSet(table, year).ToListAsync())
|
||||
return (await FromDbSet(table, year))
|
||||
.GroupBy(
|
||||
p => p.Delivery.MgNr,
|
||||
p => new DeliveryConfirmationRow(p),
|
||||
@ -37,25 +37,31 @@ namespace Elwig.Models.Dtos {
|
||||
}
|
||||
|
||||
public static async Task<DeliveryConfirmationData> ForMember(DbSet<DeliveryPart> table, int year, int mgnr) {
|
||||
return new DeliveryConfirmationData((await FromDbSet(table, year, mgnr).ToListAsync()).Select(p => new DeliveryConfirmationRow(p)), mgnr);
|
||||
return new DeliveryConfirmationData((await FromDbSet(table, year, mgnr)).Select(p => new DeliveryConfirmationRow(p)), mgnr);
|
||||
}
|
||||
|
||||
private static IQueryable<DeliveryPart> FromDbSet(DbSet<DeliveryPart> table, int? year = null, int? mgnr = null) {
|
||||
private static async Task<IEnumerable<DeliveryPart>> FromDbSet(DbSet<DeliveryPart> table, int? year = null, int? mgnr = null) {
|
||||
var y = year?.ToString() ?? "NULL";
|
||||
var m = mgnr?.ToString() ?? "NULL";
|
||||
return table.FromSqlRaw($"""
|
||||
IQueryable<DeliveryPart> q = table;
|
||||
if (year != null) q = q.Where(p => p.Year == year);
|
||||
if (mgnr != null) q = q.Where(p => p.Delivery.MgNr == mgnr);
|
||||
await q
|
||||
.Include(p => p.Delivery)
|
||||
.Include(p => p.Variant)
|
||||
.Include(p => p.Attribute)
|
||||
.Include(p => p.Quality)
|
||||
.Include(p => p.Buckets)
|
||||
.Include(p => p.PartModifiers)
|
||||
.ThenInclude(m => m.Modifier)
|
||||
.LoadAsync();
|
||||
return await table.FromSqlRaw($"""
|
||||
SELECT p.*
|
||||
FROM v_delivery v
|
||||
JOIN delivery_part p ON (p.year, p.did, p.dpnr) = (v.year, v.did, v.dpnr)
|
||||
WHERE (p.year = {y} OR {y} IS NULL) AND (v.mgnr = {m} OR {m} IS NULL)
|
||||
ORDER BY p.year, v.mgnr, v.sortid, v.abgewertet ASC, v.attribute_prio DESC, COALESCE(v.attrid, '~'), v.kmw DESC, v.lsnr, v.dpnr
|
||||
""")
|
||||
.Include(p => p.Delivery)
|
||||
.Include(p => p.Variant)
|
||||
.Include(p => p.Attribute)
|
||||
.Include(p => p.Quality)
|
||||
.Include(p => p.Buckets)
|
||||
.Include(p => p.PartModifiers).ThenInclude(m => m.Modifier);
|
||||
""").ToListAsync();
|
||||
}
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user