AppDbUpdater: Extract sql commands as embedded resources
This commit is contained in:
57
Elwig/Resources/Sql/10-11.sql
Normal file
57
Elwig/Resources/Sql/10-11.sql
Normal file
@ -0,0 +1,57 @@
|
||||
-- schema version 10 to 11
|
||||
|
||||
-- Drop columns, if they exist...
|
||||
ALTER TABLE payment_delivery_part DROP COLUMN price_1;
|
||||
ALTER TABLE payment_delivery_part DROP COLUMN price_2;
|
||||
ALTER TABLE payment_delivery_part DROP COLUMN price_3;
|
||||
ALTER TABLE payment_delivery_part DROP COLUMN price_4;
|
||||
ALTER TABLE payment_delivery_part DROP COLUMN price_5;
|
||||
ALTER TABLE payment_delivery_part DROP COLUMN price_6;
|
||||
ALTER TABLE payment_delivery_part DROP COLUMN price_7;
|
||||
ALTER TABLE payment_delivery_part DROP COLUMN price_8;
|
||||
ALTER TABLE payment_delivery_part DROP COLUMN price_9;
|
||||
|
||||
DROP TRIGGER t_payment_delivery_part_i;
|
||||
CREATE TRIGGER t_payment_delivery_part_i
|
||||
AFTER INSERT ON payment_delivery_part FOR EACH ROW
|
||||
BEGIN
|
||||
INSERT INTO payment_member (year, avnr, mgnr, net_amount)
|
||||
SELECT year, NEW.avnr, mgnr, NEW.amount FROM delivery WHERE (year, did) = (NEW.year, NEW.did)
|
||||
ON CONFLICT DO UPDATE SET net_amount = net_amount + excluded.net_amount;
|
||||
END;
|
||||
|
||||
DROP TRIGGER t_payment_delivery_part_u;
|
||||
CREATE TRIGGER t_payment_delivery_part_u
|
||||
AFTER UPDATE ON payment_delivery_part FOR EACH ROW
|
||||
BEGIN
|
||||
UPDATE payment_member
|
||||
SET net_amount = net_amount - OLD.amount
|
||||
WHERE (year, avnr, mgnr) IN (SELECT year, OLD.avnr, mgnr FROM delivery WHERE (year, did) = (OLD.year, OLD.did));
|
||||
INSERT INTO payment_member (year, avnr, mgnr, net_amount)
|
||||
SELECT year, NEW.avnr, mgnr, NEW.amount FROM delivery WHERE (year, did) = (NEW.year, NEW.did)
|
||||
ON CONFLICT DO UPDATE SET net_amount = net_amount + excluded.net_amount;
|
||||
END;
|
||||
|
||||
DROP TRIGGER t_payment_delivery_part_d;
|
||||
CREATE TRIGGER t_payment_delivery_part_d
|
||||
AFTER DELETE ON payment_delivery_part FOR EACH ROW
|
||||
BEGIN
|
||||
UPDATE payment_member
|
||||
SET net_amount = net_amount - OLD.amount
|
||||
WHERE (year, avnr, mgnr) IN (SELECT year, OLD.avnr, mgnr FROM delivery WHERE (year, did) = (OLD.year, OLD.did));
|
||||
END;
|
||||
|
||||
DROP TRIGGER t_payment_delivery_part_bucket_u;
|
||||
CREATE TRIGGER t_payment_delivery_part_bucket_u
|
||||
AFTER UPDATE ON payment_delivery_part_bucket FOR EACH ROW
|
||||
BEGIN
|
||||
UPDATE payment_delivery_part
|
||||
SET net_amount = net_amount - OLD.amount
|
||||
WHERE (year, did, dpnr, avnr) = (OLD.year, OLD.did, OLD.dpnr, OLD.avnr);
|
||||
UPDATE payment_delivery_part
|
||||
SET net_amount = net_amount + NEW.amount
|
||||
WHERE (year, did, dpnr, avnr) = (NEW.year, NEW.did, NEW.dpnr, NEW.avnr);
|
||||
END;
|
||||
|
||||
ALTER TABLE payment_member DROP COLUMN amount;
|
||||
ALTER TABLE payment_member ADD COLUMN amount INTEGER NOT NULL GENERATED ALWAYS AS (ROUND(net_amount * (1 + mod_rel) + mod_abs)) VIRTUAL;
|
Reference in New Issue
Block a user