35 lines
1.3 KiB
C#
35 lines
1.3 KiB
C#
using Elwig.Helpers;
|
||
using Elwig.Models;
|
||
using Microsoft.EntityFrameworkCore;
|
||
using System.Collections.Generic;
|
||
using System.Linq;
|
||
|
||
namespace Elwig.Documents {
|
||
public class DeliveryConfirmation : BusinessDocument {
|
||
|
||
public int Year;
|
||
public IEnumerable<DeliveryPart> Deliveries;
|
||
public string? Text = App.Client.TextDeliveryConfirmation;
|
||
|
||
public DeliveryConfirmation(AppDbContext ctx, int year, Member m) :
|
||
base($"Anlieferungsbestätigung {year} – {((IAddress?)m.BillingAddress ?? m).Name}", m) {
|
||
Year = year;
|
||
ShowDateAndLocation = true;
|
||
UseBillingAddress = true;
|
||
IncludeSender = 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,
|
||
COALESCE(LENGTH(v.attributes), 0) ASC, attribute_prio DESC, COALESCE(v.attributes, '~'),
|
||
v.kmw DESC, v.lsnr, v.dpnr
|
||
""")
|
||
.ToList();
|
||
}
|
||
}
|
||
}
|