Billing: Include predecessors in Treuebonus for WGM
All checks were successful
Test / Run tests (push) Successful in 2m29s
All checks were successful
Test / Run tests (push) Successful in 2m29s
This commit is contained in:
@ -104,18 +104,21 @@ namespace Elwig.Helpers.Billing {
|
||||
if (App.Client.IsMatzen) {
|
||||
var lastYears = 3;
|
||||
var multiplier = 0.50;
|
||||
var includePredecessor = true;
|
||||
var modName = "Treue%";
|
||||
await AppDbContext.ExecuteBatch(cnx, $"""
|
||||
INSERT INTO payment_member (year, avnr, mgnr, net_amount, mod_abs, mod_rel)
|
||||
SELECT c.year, {AvNr}, s.mgnr, 0,
|
||||
ROUND(s.sum * COALESCE(m.abs, 0)),
|
||||
COALESCE(m.rel, 0)
|
||||
FROM (SELECT {Year} AS year, mgnr,
|
||||
ROUND(AVG(sum) * {multiplier}) AS baseline,
|
||||
COUNT(*) = {lastYears} AND MIN(sum) > 0 AS allowed
|
||||
FROM v_stat_member
|
||||
WHERE year > {Year} - {lastYears}
|
||||
GROUP BY mgnr
|
||||
FROM (SELECT {Year} AS year, m.mgnr,
|
||||
ROUND(AVG(COALESCE(a.sum, b.sum)) * {multiplier}) AS baseline,
|
||||
COUNT(*) = {lastYears} AND MIN(COALESCE(a.sum, b.sum)) > 0 AS allowed
|
||||
FROM member m
|
||||
LEFT JOIN v_stat_member a ON a.mgnr = m.mgnr
|
||||
FULL OUTER JOIN v_stat_member b ON b.mgnr = m.predecessor_mgnr AND b.year = a.year AND {(includePredecessor ? "TRUE" : "FALSE")}
|
||||
WHERE a.year > {Year} - {lastYears}
|
||||
GROUP BY m.mgnr
|
||||
HAVING allowed) c
|
||||
JOIN v_stat_member s ON (s.year, s.mgnr) = (c.year, c.mgnr)
|
||||
LEFT JOIN modifier m ON m.year = c.year AND m.name LIKE '{modName}'
|
||||
|
Reference in New Issue
Block a user