database: Add payment_custom and v_penalty_business_shares

This commit is contained in:
2024-06-27 13:35:20 +02:00
parent 825938d566
commit c772ddcc12
3 changed files with 37 additions and 6 deletions

View File

@ -149,6 +149,23 @@ CREATE TABLE payment_member (
ON DELETE CASCADE ON DELETE CASCADE
) STRICT; ) STRICT;
-- all values in the table are stored with precision 2!
CREATE TABLE payment_custom (
year INTEGER NOT NULL,
mgnr INTEGER NOT NULL,
amount INTEGER NOT NULL,
comment TEXT,
CONSTRAINT pk_payment_custom PRIMARY KEY (year, mgnr),
CONSTRAINT fk_payment_custom_season FOREIGN KEY (year) REFERENCES season (year)
ON UPDATE CASCADE
ON DELETE CASCADE,
CONSTRAINT fk_payment_custom_member FOREIGN KEY (mgnr) REFERENCES member (mgnr)
ON UPDATE CASCADE
ON DELETE CASCADE
) STRICT;
-- all values in the table are stored with precision 2! -- all values in the table are stored with precision 2!
CREATE TABLE credit ( CREATE TABLE credit (
year INTEGER NOT NULL, year INTEGER NOT NULL,

View File

@ -1,10 +1,24 @@
CREATE VIEW v_penalty_business_shares AS
SELECT u.year, u.mgnr,
SUM(IIF(u.weight = 0, COALESCE(-s.penalty_none, 0) + COALESCE(-u.business_shares * s.penalty_per_bs_none, 0), 0) +
IIF(u.diff < 0, COALESCE(-s.penalty_amount, 0), 0) +
COALESCE(u.diff * s.penalty_per_kg, 0) + COALESCE(CEIL(CAST(u.diff AS REAL) / s.min_kg_per_bs) * s.penalty_per_bs_amount, 0)
) AS total_penalty
FROM v_total_under_delivery u
JOIN season s ON u.year = s.year
JOIN member m ON m.mgnr = u.mgnr
WHERE m.active
GROUP BY u.year, u.mgnr
HAVING total_penalty < 0
ORDER BY u.year, u.mgnr;
CREATE VIEW v_penalty_area_commitments AS CREATE VIEW v_penalty_area_commitments AS
SELECT year, mgnr, SELECT u.year, u.mgnr,
SUM(COALESCE(IIF(u.weight = 0, -t.penalty_none, 0), 0) + SUM(COALESCE(IIF(u.weight = 0, -t.penalty_none, 0), 0) +
COALESCE(IIF(u.diff < 0, -t.penalty_amount, 0), 0) + COALESCE(IIF(u.diff < 0, -t.penalty_amount, 0), 0) +
COALESCE(u.diff * t.penalty_per_kg, 0) COALESCE(u.diff * t.penalty_per_kg, 0)
) AS total_penalty ) AS total_penalty
FROM v_under_delivery u FROM v_under_delivery u
JOIN area_commitment_type t ON t.vtrgid = u.bucket JOIN area_commitment_type t ON t.vtrgid = u.bucket
GROUP BY year, mgnr GROUP BY year, mgnr

View File

@ -1,3 +1,3 @@
-- This value MUST NOT be changed while other connections are open! -- This value MUST NOT be changed while other connections are open!
PRAGMA schema_version = 2100; PRAGMA schema_version = 2200;