Dtos: Unify member names in DataTables

This commit is contained in:
2024-03-27 16:41:08 +01:00
parent d87f3ce6a6
commit 57662534f3
5 changed files with 58 additions and 46 deletions

View File

@ -9,8 +9,8 @@ namespace Elwig.Models.Dtos {
private static readonly (string, string, string?, int)[] FieldNames = [ private static readonly (string, string, string?, int)[] FieldNames = [
("MgNr", "MgNr.", null, 12), ("MgNr", "MgNr.", null, 12),
("Name", "Name", null, 40), ("Name1", "Name", null, 40),
("GivenName", "Vorname", null, 40), ("Name2", "Vorname", null, 40),
("Address", "Adresse", null, 60), ("Address", "Adresse", null, 60),
("Plz", "PLZ", null, 10), ("Plz", "PLZ", null, 10),
("Locality", "Ort", null, 60), ("Locality", "Ort", null, 60),
@ -35,7 +35,10 @@ namespace Elwig.Models.Dtos {
private static async Task<IEnumerable<AreaComUnderDeliveryRowSingle>> FromDbSet(DbSet<AreaComUnderDeliveryRowSingle> table, int year) { private static async Task<IEnumerable<AreaComUnderDeliveryRowSingle>> FromDbSet(DbSet<AreaComUnderDeliveryRowSingle> table, int year) {
return await table.FromSqlRaw($""" return await table.FromSqlRaw($"""
SELECT m.mgnr, m.family_name, m.given_name, p.plz, o.name AS ort, m.address, SELECT m.mgnr, m.family_name AS name_1,
COALESCE(m.prefix || ' ', '') || m.given_name ||
COALESCE(' ' || m.middle_names, '') || COALESCE(' ' || m.suffix, '') AS name_2,
p.plz, o.name AS ort, m.address,
c.bucket, c.area, u.min_kg, u.weight c.bucket, c.area, u.min_kg, u.weight
FROM member m FROM member m
LEFT JOIN AT_plz_dest p ON p.id = m.postal_dest LEFT JOIN AT_plz_dest p ON p.id = m.postal_dest
@ -50,8 +53,8 @@ namespace Elwig.Models.Dtos {
public class AreaComUnderDeliveryRow { public class AreaComUnderDeliveryRow {
public int MgNr; public int MgNr;
public string Name; public string Name1;
public string GivenName; public string Name2;
public string Address; public string Address;
public int Plz; public int Plz;
public string Locality; public string Locality;
@ -66,8 +69,8 @@ namespace Elwig.Models.Dtos {
public AreaComUnderDeliveryRow(IEnumerable<AreaComUnderDeliveryRowSingle> rows) { public AreaComUnderDeliveryRow(IEnumerable<AreaComUnderDeliveryRowSingle> rows) {
var f = rows.First(); var f = rows.First();
MgNr = f.MgNr; MgNr = f.MgNr;
Name = f.Name; Name1 = f.Name1;
GivenName = f.GivenName; Name2 = f.Name2;
Address = f.Address; Address = f.Address;
Plz = f.Plz; Plz = f.Plz;
Locality = f.Locality.Split(",")[0]; Locality = f.Locality.Split(",")[0];
@ -82,10 +85,10 @@ namespace Elwig.Models.Dtos {
public class AreaComUnderDeliveryRowSingle { public class AreaComUnderDeliveryRowSingle {
[Column("mgnr")] [Column("mgnr")]
public int MgNr { get; set; } public int MgNr { get; set; }
[Column("family_name")] [Column("name_1")]
public required string Name { get; set; } public required string Name1 { get; set; }
[Column("given_name")] [Column("name_2")]
public required string GivenName { get; set; } public required string Name2 { get; set; }
[Column("address")] [Column("address")]
public required string Address { get; set; } public required string Address { get; set; }
[Column("plz")] [Column("plz")]

View File

@ -12,8 +12,8 @@ namespace Elwig.Models.Dtos {
private static readonly (string, string, string?, int)[] FieldNames = [ private static readonly (string, string, string?, int)[] FieldNames = [
("MgNr", "MgNr.", null, 12), ("MgNr", "MgNr.", null, 12),
("Name", "Name", null, 40), ("Name1", "Name", null, 40),
("GivenName", "Vorname", null, 40), ("Name2", "Vorname", null, 40),
("Address", "Adresse", null, 60), ("Address", "Adresse", null, 60),
("Plz", "PLZ", null, 10), ("Plz", "PLZ", null, 10),
("Locality", "Ort", null, 60), ("Locality", "Ort", null, 60),
@ -49,7 +49,10 @@ namespace Elwig.Models.Dtos {
private static async Task<IEnumerable<CreditNoteRowSingle>> FromDbSet(DbSet<CreditNoteRowSingle> table, int year, int avnr) { private static async Task<IEnumerable<CreditNoteRowSingle>> FromDbSet(DbSet<CreditNoteRowSingle> table, int year, int avnr) {
return await table.FromSqlRaw($""" return await table.FromSqlRaw($"""
SELECT m.mgnr, m.family_name, m.given_name, p.plz, o.name AS ort, m.address, m.iban, c.tgnr, s.year, s.precision, SELECT m.mgnr, m.family_name AS name_1,
COALESCE(m.prefix || ' ', '') || m.given_name ||
COALESCE(' ' || m.middle_names, '') || COALESCE(' ' || m.suffix, '') AS name_2,
p.plz, o.name AS ort, m.address, m.iban, c.tgnr, s.year, s.precision,
p.amount - p.net_amount AS surcharge, p.amount - p.net_amount AS surcharge,
c.net_amount, c.prev_net_amount, c.vat, c.vat_amount, c.gross_amount, c.modifiers, c.prev_modifiers, c.amount, c.net_amount, c.prev_net_amount, c.vat, c.vat_amount, c.gross_amount, c.modifiers, c.prev_modifiers, c.amount,
ROUND(COALESCE(u.total_penalty, 0) / POW(10, 4 - 2)) AS fb_penalty, ROUND(COALESCE(u.total_penalty, 0) / POW(10, 4 - 2)) AS fb_penalty,
@ -72,8 +75,8 @@ namespace Elwig.Models.Dtos {
public class CreditNoteRow { public class CreditNoteRow {
public int MgNr; public int MgNr;
public string Name; public string Name1;
public string GivenName; public string Name2;
public string Address; public string Address;
public int Plz; public int Plz;
public string Locality; public string Locality;
@ -96,8 +99,8 @@ namespace Elwig.Models.Dtos {
public CreditNoteRow(CreditNoteRowSingle row, BillingData data) { public CreditNoteRow(CreditNoteRowSingle row, BillingData data) {
byte prec1 = 2, prec2 = row.Precision; byte prec1 = 2, prec2 = row.Precision;
MgNr = row.MgNr; MgNr = row.MgNr;
Name = row.Name; Name1 = row.Name1;
GivenName = row.GivenName; Name2 = row.Name2;
Address = row.Address; Address = row.Address;
Plz = row.Plz; Plz = row.Plz;
Locality = row.Locality; Locality = row.Locality;
@ -132,10 +135,10 @@ namespace Elwig.Models.Dtos {
public class CreditNoteRowSingle { public class CreditNoteRowSingle {
[Column("mgnr")] [Column("mgnr")]
public int MgNr { get; set; } public int MgNr { get; set; }
[Column("family_name")] [Column("name_1")]
public required string Name { get; set; } public required string Name1 { get; set; }
[Column("given_name")] [Column("name_2")]
public required string GivenName { get; set; } public required string Name2 { get; set; }
[Column("address")] [Column("address")]
public required string Address { get; set; } public required string Address { get; set; }
[Column("plz")] [Column("plz")]

View File

@ -10,8 +10,8 @@ namespace Elwig.Models.Dtos {
private static readonly (string, string, string?, int)[] FieldNames = [ private static readonly (string, string, string?, int)[] FieldNames = [
("MgNr", "MgNr.", null, 12), ("MgNr", "MgNr.", null, 12),
("Name", "Name", null, 40), ("Name1", "Name", null, 40),
("GivenName", "Vorname", null, 40), ("Name2", "Vorname", null, 40),
("Address", "Adresse", null, 60), ("Address", "Adresse", null, 60),
("Plz", "PLZ", null, 10), ("Plz", "PLZ", null, 10),
("Locality", "Ort", null, 60), ("Locality", "Ort", null, 60),
@ -37,7 +37,10 @@ namespace Elwig.Models.Dtos {
private static async Task<IEnumerable<MemberDeliveryPerVariantRowSingle>> FromDbSet(DbSet<MemberDeliveryPerVariantRowSingle> table, int year) { private static async Task<IEnumerable<MemberDeliveryPerVariantRowSingle>> FromDbSet(DbSet<MemberDeliveryPerVariantRowSingle> table, int year) {
return await table.FromSqlRaw($""" return await table.FromSqlRaw($"""
SELECT m.mgnr, m.family_name, m.given_name, p.plz, o.name AS ort, m.address, SELECT m.mgnr, m.family_name AS name_1,
COALESCE(m.prefix || ' ', '') || m.given_name ||
COALESCE(' ' || m.middle_names, '') || COALESCE(' ' || m.suffix, '') AS name_2,
p.plz, o.name AS ort, m.address,
v.bucket, v.weight, v.area v.bucket, v.weight, v.area
FROM ( FROM (
SELECT c.year AS year, SELECT c.year AS year,
@ -68,8 +71,8 @@ namespace Elwig.Models.Dtos {
public class MemberDeliveryPerVariantRow { public class MemberDeliveryPerVariantRow {
public int MgNr; public int MgNr;
public string Name; public string Name1;
public string GivenName; public string Name2;
public string Address; public string Address;
public int Plz; public int Plz;
public string Locality; public string Locality;
@ -82,8 +85,8 @@ namespace Elwig.Models.Dtos {
public MemberDeliveryPerVariantRow(IEnumerable<MemberDeliveryPerVariantRowSingle> rows) { public MemberDeliveryPerVariantRow(IEnumerable<MemberDeliveryPerVariantRowSingle> rows) {
var f = rows.First(); var f = rows.First();
MgNr = f.MgNr; MgNr = f.MgNr;
Name = f.Name; Name1 = f.Name1;
GivenName = f.GivenName; Name2 = f.Name2;
Address = f.Address; Address = f.Address;
Plz = f.Plz; Plz = f.Plz;
Locality = f.Locality.Split(",")[0]; Locality = f.Locality.Split(",")[0];
@ -98,10 +101,10 @@ namespace Elwig.Models.Dtos {
public class MemberDeliveryPerVariantRowSingle { public class MemberDeliveryPerVariantRowSingle {
[Column("mgnr")] [Column("mgnr")]
public int MgNr { get; set; } public int MgNr { get; set; }
[Column("family_name")] [Column("name_1")]
public required string Name { get; set; } public required string Name1 { get; set; }
[Column("given_name")] [Column("name_2")]
public required string GivenName { get; set; } public required string Name2 { get; set; }
[Column("address")] [Column("address")]
public required string Address { get; set; } public required string Address { get; set; }
[Column("plz")] [Column("plz")]

View File

@ -12,8 +12,8 @@ namespace Elwig.Models.Dtos {
private static readonly (string, string, string?, int?)[] FieldNames = [ private static readonly (string, string, string?, int?)[] FieldNames = [
("MgNr", "MgNr.", null, 12), ("MgNr", "MgNr.", null, 12),
("Name", "Name", null, 40), ("Name1", "Name", null, 40),
("GivenName", "Vorname", null, 40), ("Name2", "Vorname", null, 40),
("Address", "Adresse", null, 60), ("Address", "Adresse", null, 60),
("Plz", "PLZ", null, 10), ("Plz", "PLZ", null, 10),
("Locality", "Ort", null, 60), ("Locality", "Ort", null, 60),
@ -54,8 +54,8 @@ namespace Elwig.Models.Dtos {
public class MemberListRow { public class MemberListRow {
public int MgNr; public int MgNr;
public string? Name; public string? Name1;
public string? GivenName; public string? Name2;
public string? DefaultKg; public string? DefaultKg;
public string? Branch; public string? Branch;
public int BusinessShares; public int BusinessShares;
@ -80,8 +80,8 @@ namespace Elwig.Models.Dtos {
public MemberListRow(Member m, int? areaCom = null) { public MemberListRow(Member m, int? areaCom = null) {
MgNr = m.MgNr; MgNr = m.MgNr;
Name = m.FamilyName; Name1 = m.FamilyName;
GivenName = m.GivenName; Name2 = m.AdministrativeName2;
DefaultKg = m.DefaultKg?.Name; DefaultKg = m.DefaultKg?.Name;
Branch = m.Branch?.Name; Branch = m.Branch?.Name;
BusinessShares = m.BusinessShares; BusinessShares = m.BusinessShares;

View File

@ -9,8 +9,8 @@ namespace Elwig.Models.Dtos {
private static readonly (string, string, string?, int)[] FieldNames = [ private static readonly (string, string, string?, int)[] FieldNames = [
("MgNr", "MgNr.", null, 12), ("MgNr", "MgNr.", null, 12),
("Name", "Name", null, 40), ("Name1", "Name", null, 40),
("GivenName", "Vorname", null, 40), ("Name2", "Vorname", null, 40),
("Address", "Adresse", null, 60), ("Address", "Adresse", null, 60),
("Plz", "PLZ", null, 10), ("Plz", "PLZ", null, 10),
("Locality", "Ort", null, 60), ("Locality", "Ort", null, 60),
@ -27,7 +27,10 @@ namespace Elwig.Models.Dtos {
public static async Task<OverUnderDeliveryData> ForSeason(DbSet<OverUnderDeliveryRow> table, int year) { public static async Task<OverUnderDeliveryData> ForSeason(DbSet<OverUnderDeliveryRow> table, int year) {
var rows = await table.FromSqlRaw($""" var rows = await table.FromSqlRaw($"""
SELECT m.mgnr, m.family_name, m.given_name, p.plz, o.name AS ort, m.address, m.business_shares, SELECT m.mgnr, m.family_name AS name_1,
COALESCE(m.prefix || ' ', '') || m.given_name ||
COALESCE(' ' || m.middle_names, '') || COALESCE(' ' || m.suffix, '') AS name_2,
p.plz, o.name AS ort, m.address, m.business_shares,
m.business_shares * s.min_kg_per_bs AS min_kg, m.business_shares * s.min_kg_per_bs AS min_kg,
m.business_shares * s.max_kg_per_bs AS max_kg, m.business_shares * s.max_kg_per_bs AS max_kg,
COALESCE(SUM(d.weight), 0) AS sum COALESCE(SUM(d.weight), 0) AS sum
@ -48,10 +51,10 @@ namespace Elwig.Models.Dtos {
public class OverUnderDeliveryRow { public class OverUnderDeliveryRow {
[Column("mgnr")] [Column("mgnr")]
public int MgNr { get; set; } public int MgNr { get; set; }
[Column("family_name")] [Column("name_1")]
public required string Name { get; set; } public required string Name1 { get; set; }
[Column("given_name")] [Column("name_2")]
public required string GivenName { get; set; } public required string Name2 { get; set; }
[Column("address")] [Column("address")]
public required string Address { get; set; } public required string Address { get; set; }
[Column("plz")] [Column("plz")]