33 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			33 lines
		
	
	
		
			1.2 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 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();
 | 
						||
        }
 | 
						||
    }
 | 
						||
}
 |