37 lines
1.3 KiB
C#
37 lines
1.3 KiB
C#
using Elwig.Helpers;
|
|
using Elwig.Helpers.Billing;
|
|
using Elwig.Models.Dtos;
|
|
using Elwig.Models.Entities;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
|
|
namespace Elwig.Documents {
|
|
public class PaymentVariantSummary : Document {
|
|
|
|
public new static string Name => "Auszahlungsvariante";
|
|
|
|
public PaymentVariantSummaryData Data;
|
|
public PaymentVar Variant;
|
|
public BillingData BillingData;
|
|
public string CurrencySymbol;
|
|
public int MemberNum;
|
|
public int DeliveryNum;
|
|
public int DeliveryPartNum;
|
|
public List<ModifierStat> ModifierStat;
|
|
public Dictionary<string, Modifier> Modifiers;
|
|
|
|
public PaymentVariantSummary(PaymentVar v, PaymentVariantSummaryData data) :
|
|
base($"{Name} {v.Year} - {v.Name}") {
|
|
Variant = v;
|
|
BillingData = BillingData.FromJson(v.Data);
|
|
Data = data;
|
|
CurrencySymbol = v.Season.Currency.Symbol ?? v.Season.Currency.Code;
|
|
MemberNum = v.Credits.Count;
|
|
DeliveryNum = v.DeliveryPartPayments.DistinctBy(p => p.DeliveryPart.Delivery).Count();
|
|
DeliveryPartNum = v.DeliveryPartPayments.Count;
|
|
ModifierStat = AppDbContext.GetModifierStats(v.Year, v.AvNr).GetAwaiter().GetResult();
|
|
Modifiers = v.Season.Modifiers.ToDictionary(m => m.ModId);
|
|
}
|
|
}
|
|
}
|