[#40] Billing: Add Rebelzuschlag
This commit is contained in:
@ -146,6 +146,8 @@ namespace Elwig.Helpers.Billing {
|
||||
|
||||
var inserts = new List<(int Year, int DId, int DPNr, int BktNr, long Price, long Amount)>();
|
||||
foreach (var part in parts) {
|
||||
if (part.Value == 0)
|
||||
continue;
|
||||
var ungeb = part.Discr == "_";
|
||||
var payAttrId = (part.Discr is "" or "_") ? null : part.Discr;
|
||||
var attrId = part.AttrAreaCom ? payAttrId : part.AttrId;
|
||||
@ -162,7 +164,16 @@ namespace Elwig.Helpers.Billing {
|
||||
}
|
||||
|
||||
protected async Task CalculateDeliveryModifiers(SqliteConnection cnx) {
|
||||
var netMod = Data.NetWeightModifier.ToString().Replace(',', '.');
|
||||
var grossMod = Data.GrossWeightModifier.ToString().Replace(',', '.');
|
||||
await AppDbContext.ExecuteBatch(cnx, $"""
|
||||
INSERT INTO payment_delivery_part (year, did, dpnr, avnr, net_amount, mod_abs, mod_rel)
|
||||
SELECT d.year, d.did, d.dpnr, {AvNr}, 0, 0, IIF(d.net_weight, {netMod}, {grossMod})
|
||||
FROM delivery_part d
|
||||
WHERE d.year = {Year}
|
||||
ON CONFLICT DO UPDATE
|
||||
SET mod_rel = mod_rel + excluded.mod_rel;
|
||||
|
||||
INSERT INTO payment_delivery_part (year, did, dpnr, avnr, net_amount, mod_abs, mod_rel)
|
||||
SELECT d.year, d.did, d.dpnr, {AvNr}, 0, COALESCE(m.abs, 0), COALESCE(m.rel, 0)
|
||||
FROM delivery_part d
|
||||
@ -171,7 +182,7 @@ namespace Elwig.Helpers.Billing {
|
||||
WHERE d.year = {Year}
|
||||
ON CONFLICT DO UPDATE
|
||||
SET mod_abs = mod_abs + excluded.mod_abs,
|
||||
mod_rel = mod_rel + excluded.mod_rel
|
||||
mod_rel = mod_rel + excluded.mod_rel;
|
||||
""");
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user