From cbf99b3c414462a7e8b2817766db4569b470c997 Mon Sep 17 00:00:00 2001 From: Andreas Granig Date: Wed, 20 Mar 2013 22:52:04 +0000 Subject: [PATCH] Correctly populate billing_fee_history table. Add direction column there as well. --- db_scripts/diff/13225.down | 44 ++++++++++++++++++++++++++++++++++++ db_scripts/diff/13225.up | 46 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 90 insertions(+) create mode 100644 db_scripts/diff/13225.down create mode 100644 db_scripts/diff/13225.up diff --git a/db_scripts/diff/13225.down b/db_scripts/diff/13225.down new file mode 100644 index 00000000..9d9a6a96 --- /dev/null +++ b/db_scripts/diff/13225.down @@ -0,0 +1,44 @@ +DROP TRIGGER billing.bill_fees_crepl_trig; +DROP TRIGGER billing.bill_fees_urepl_trig; + +ALTER TABLE billing.billing_fees_history DROP COLUMN direction; +ALTER TABLE billing.billing_fees_history DROP KEY bfhdir_idx; + +DELIMITER | + +CREATE TRIGGER billing.bill_fees_crepl_trig AFTER INSERT ON billing_fees + FOR EACH ROW BEGIN + DECLARE my_bzh_id int UNSIGNED; + + SELECT id INTO my_bzh_id FROM billing_zones_history WHERE bz_id = NEW.billing_zone_id; + + INSERT INTO billing_fees_history + VALUES(NULL, NEW.id, NEW.billing_profile_id, my_bzh_id, NEW.destination, + NEW.type, NEW.onpeak_init_rate, NEW.onpeak_init_interval, NEW.onpeak_follow_rate, + NEW.onpeak_follow_interval, NEW.offpeak_init_rate, NEW.offpeak_init_interval, + NEW.offpeak_follow_rate, NEW.offpeak_follow_interval, NEW.use_free_time); + + END; +| + +CREATE TRIGGER billing.bill_fees_urepl_trig AFTER UPDATE ON billing_fees + FOR EACH ROW BEGIN + DECLARE my_bzh_id int UNSIGNED; + + SELECT id INTO my_bzh_id FROM billing_zones_history WHERE bz_id = NEW.billing_zone_id; + + UPDATE billing_fees_history + SET bf_id = NEW.id, billing_profile_id = NEW.billing_profile_id, + billing_zones_history_id = my_bzh_id, destination = NEW.destination, type = NEW.type, + onpeak_init_rate = NEW.onpeak_init_rate, onpeak_init_interval = NEW.onpeak_init_interval, + onpeak_follow_rate = NEW.onpeak_follow_rate, onpeak_follow_interval = NEW.onpeak_follow_interval, + offpeak_init_rate = NEW.offpeak_init_rate, offpeak_init_interval = NEW.offpeak_init_interval, + offpeak_follow_rate = NEW.offpeak_follow_rate, offpeak_follow_interval = NEW.offpeak_follow_interval, + use_free_time = NEW.use_free_time + WHERE bf_id = OLD.id; + + END; +| + +DELIMITER ; + diff --git a/db_scripts/diff/13225.up b/db_scripts/diff/13225.up new file mode 100644 index 00000000..03b41f9b --- /dev/null +++ b/db_scripts/diff/13225.up @@ -0,0 +1,46 @@ +ALTER TABLE billing.billing_fees_history + ADD COLUMN direction enum('in', 'out') NOT NULL DEFAULT 'out'; +ALTER TABLE billing.billing_fees_history ADD KEY bfhdir_idx(direction); + +DROP TRIGGER billing.bill_fees_crepl_trig; +DROP TRIGGER billing.bill_fees_urepl_trig; + +DELIMITER | + +CREATE TRIGGER billing.bill_fees_crepl_trig AFTER INSERT ON billing_fees + FOR EACH ROW BEGIN + DECLARE my_bzh_id int UNSIGNED; + + SELECT id INTO my_bzh_id FROM billing_zones_history WHERE bz_id = NEW.billing_zone_id; + + INSERT INTO billing_fees_history + VALUES(NULL, NEW.id, NEW.billing_profile_id, my_bzh_id, NEW.destination, NEW.direction, + NEW.type, NEW.onpeak_init_rate, NEW.onpeak_init_interval, NEW.onpeak_follow_rate, + NEW.onpeak_follow_interval, NEW.offpeak_init_rate, NEW.offpeak_init_interval, + NEW.offpeak_follow_rate, NEW.offpeak_follow_interval, NEW.use_free_time); + + END; +| + +CREATE TRIGGER billing.bill_fees_urepl_trig AFTER UPDATE ON billing_fees + FOR EACH ROW BEGIN + DECLARE my_bzh_id int UNSIGNED; + + SELECT id INTO my_bzh_id FROM billing_zones_history WHERE bz_id = NEW.billing_zone_id; + + UPDATE billing_fees_history + SET bf_id = NEW.id, billing_profile_id = NEW.billing_profile_id, + billing_zones_history_id = my_bzh_id, destination = NEW.destination, direction = NEW.direction, + type = NEW.type, + onpeak_init_rate = NEW.onpeak_init_rate, onpeak_init_interval = NEW.onpeak_init_interval, + onpeak_follow_rate = NEW.onpeak_follow_rate, onpeak_follow_interval = NEW.onpeak_follow_interval, + offpeak_init_rate = NEW.offpeak_init_rate, offpeak_init_interval = NEW.offpeak_init_interval, + offpeak_follow_rate = NEW.offpeak_follow_rate, offpeak_follow_interval = NEW.offpeak_follow_interval, + use_free_time = NEW.use_free_time + WHERE bf_id = OLD.id; + + END; +| + +DELIMITER ; +