database: Add payment_custom and v_penalty_business_shares
This commit is contained in:
@ -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,
|
||||||
|
@ -1,6 +1,20 @@
|
|||||||
|
|
||||||
|
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)
|
||||||
|
@ -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;
|
||||||
|
Reference in New Issue
Block a user