using Elwig.Helpers; using Elwig.Models.Entities; using Microsoft.EntityFrameworkCore; using System.Collections.Generic; using System.Linq; namespace Elwig.Documents { public class CreditNote : BusinessDocument { public Credit Credit; public string? Text; public string CurrencySymbol; public string[] BucketNames; public int Precision; public IEnumerable Parts; public CreditNote(Credit c, AppDbContext ctx) : base($"Traubengutschrift Nr. {c.TgId} – {c.Payment.Variant.Name}", c.Member) { UseBillingAddress = true; ShowDateAndLocation = true; Credit = c; Aside = Aside.Replace("", "") + $"Gutschrift" + $"TG-Nr.{c.TgId}" + $"Überw. am{c.Payment.Variant.TransferDate:dd.MM.yyyy}" + $"Datum/Zeit{c.ModifiedTimestamp:dd.MM.yyyy} / {c.ModifiedTimestamp:HH:mm}" + $""; Text = App.Client.TextDeliveryNote; DocumentId = $"Tr.-Gutschr. {c.TgId}"; CurrencySymbol = c.Payment.Variant.Season.Currency.Symbol ?? c.Payment.Variant.Season.Currency.Code; BucketNames = new string[0]; // FIXME Precision = c.Payment.Variant.Season.Precision; Parts = ctx.DeliveryParts.FromSql($""" 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) = ({c.Year}, {c.Member.MgNr}) ORDER BY sortid, attribute_prio DESC, COALESCE(attrid, '~'), kmw DESC, date, time, dpnr """).ToList(); } }}