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 Deliveries; public DeliveryConfirmation(AppDbContext ctx, int year, Member m) : base($"Anlieferungsbestätigung {year} – {((IAddress?)m.BillingAddress ?? m).Name}", m) { Year = year; 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, COALESCE(LENGTH(v.attributes), 0) ASC, attribute_prio DESC, COALESCE(v.attributes, '~'), v.kmw DESC, v.lsnr, v.dpnr """) .ToList(); } } }