DeliveryConfirmation: enhance calculation

This commit is contained in:
2023-10-15 13:12:40 +02:00
parent 62bf425313
commit b6d74d3c07
5 changed files with 57 additions and 28 deletions

View File

@ -10,15 +10,21 @@ namespace Elwig.Documents {
public int Year;
public IEnumerable<DeliveryPart> Deliveries;
public DeliveryConfirmation(AppDbContext ctx, int year, Member m) : base($"Anlieferungsbestätigung {year} {m.Name}", m) {
public DeliveryConfirmation(AppDbContext ctx, int year, Member m) :
base($"Anlieferungsbestätigung {year} {((IAddress?)m.BillingAddress ?? m).Name}", m) {
Year = year;
DocumentId = $"Anl.-Best. {Year}/{m.MgNr}";
ShowDateAndLocation = true;
UseBillingAddress = true;
// FIXME footer in merged documents
//DocumentId = $"Anl.-Best. {Year}/{m.MgNr}";
Deliveries = ctx.DeliveryParts.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 (v.year, v.mgnr) = ({Year}, {m.MgNr})
ORDER BY v.sortid, v.abgewertet ASC, LENGTH(v.attributes) DESC, COALESCE(v.attributes, '~'), v.kmw DESC, v.lsnr, v.dpnr
ORDER BY v.sortid, v.abgewertet ASC,
COALESCE(LENGTH(v.attributes), 0) ASC, attribute_prio DESC, COALESCE(v.attributes, '~'),
v.kmw DESC, v.lsnr, v.dpnr
""")
.ToList();
}