[open-ils-commits] r11701 - trunk/Open-ILS/src/sql/Pg

svn at svn.open-ils.org svn at svn.open-ils.org
Mon Dec 29 16:19:06 EST 2008


Author: miker
Date: 2008-12-29 16:19:02 -0500 (Mon, 29 Dec 2008)
New Revision: 11701

Modified:
   trunk/Open-ILS/src/sql/Pg/080.schema.money.sql
   trunk/Open-ILS/src/sql/Pg/090.schema.action.sql
Log:
materialized summary of billable transaction balances

Modified: trunk/Open-ILS/src/sql/Pg/080.schema.money.sql
===================================================================
--- trunk/Open-ILS/src/sql/Pg/080.schema.money.sql	2008-12-29 19:52:54 UTC (rev 11700)
+++ trunk/Open-ILS/src/sql/Pg/080.schema.money.sql	2008-12-29 21:19:02 UTC (rev 11701)
@@ -208,51 +208,7 @@
 	  GROUP BY 1,2,3,4,14
 	  ORDER BY MAX(debit.billing_ts), MAX(credit.payment_ts);
 
-/* Replacing with the version below
 CREATE OR REPLACE VIEW money.billable_xact_summary AS
-	SELECT	xact.id AS id,
-		xact.usr AS usr,
-		xact.xact_start AS xact_start,
-		xact.xact_finish AS xact_finish,
-		credit.total_paid,
-		credit.last_payment_ts,
-		credit.last_payment_note,
-		credit.last_payment_type,
-		debit.total_owed,
-		debit.last_billing_ts,
-		debit.last_billing_note,
-		debit.last_billing_type,
-		COALESCE(debit.total_owed,0) - COALESCE(credit.total_paid,0) AS balance_owed,
-		p.relname AS xact_type
-	  FROM	money.billable_xact xact
-	  	JOIN pg_class p ON (xact.tableoid = p.oid)
-	  	LEFT JOIN money.transaction_billing_summary debit ON (xact.id = debit.xact)
-	  	LEFT JOIN money.transaction_payment_summary credit ON (xact.id = credit.xact);
-
-CREATE OR REPLACE VIEW money.billable_xact_summary AS
-	SELECT	xact.id AS id,
-		xact.usr AS usr,
-		xact.xact_start AS xact_start,
-		xact.xact_finish AS xact_finish,
-		SUM(credit.amount) AS total_paid,
-		MAX(credit.payment_ts) AS last_payment_ts,
-		LAST(credit.note) AS last_payment_note,
-		LAST(credit.payment_type) AS last_payment_type,
-		SUM(debit.amount) AS total_owed,
-		MAX(debit.billing_ts) AS last_billing_ts,
-		LAST(debit.note) AS last_billing_note,
-		LAST(debit.billing_type) AS last_billing_type,
-		COALESCE(SUM(debit.amount),0) - COALESCE(SUM(credit.amount),0) AS balance_owed,
-		p.relname AS xact_type
-	  FROM	money.billable_xact xact
-	  	JOIN pg_class p ON (xact.tableoid = p.oid)
-	  	LEFT JOIN money.billing debit ON (xact.id = debit.xact AND debit.voided IS FALSE)
-	  	LEFT JOIN money.payment_view credit ON (xact.id = credit.xact AND credit.voided IS FALSE)
-	  GROUP BY 1,2,3,4,14
-	  ORDER BY MAX(debit.billing_ts), MAX(credit.payment_ts);
-*/
-
-CREATE OR REPLACE VIEW money.billable_xact_summary AS
 	SELECT	xact.id,
 		xact.usr,
 		xact.xact_start,
@@ -291,6 +247,243 @@
 			) credit ON xact.id = credit.xact
 	  ORDER BY debit.billing_ts, credit.payment_ts;
 
+CREATE TABLE money.materialized_billable_xact_summary AS
+	SELECT * FROM money.billable_xact_summary WHERE 1=0;
+
+CREATE INDEX money_mat_summary_id_idx ON money.materialized_billable_xact_summary (id);
+CREATE INDEX money_mat_summary_usr_idx ON money.materialized_billable_xact_summary (usr);
+CREATE INDEX money_mat_summary_xact_start_idx ON money.materialized_billable_xact_summary (xact_start);
+
+/* AFTER trigger only! */
+CREATE OR REPLACE FUNCTION money.mat_summary_create () RETURNS TRIGGER AS $$
+BEGIN
+	INSERT INTO money.materialized_billable_xact_summary (id, usr, xact_start, xact_finish, total_paid, total_owed, balance_owed)
+		VALUES ( NEW.id, NEW.usr, NEW.xact_start, NEW.xact_finish, 0.0, 0.0, 0.0);
+	RETURN NEW;
+END;
+$$ LANGUAGE PLPGSQL;
+
+/* BEFORE or AFTER trigger only! */
+CREATE OR REPLACE FUNCTION money.mat_summary_update () RETURNS TRIGGER AS $$
+BEGIN
+	UPDATE	money.materialized_billable_xact_summary
+	  SET	usr = NEW.usr,
+		xact_start = NEW.xact_start,
+		xact_finish = NEW.xact_finish
+	  WHERE	id = NEW.id;
+	RETURN NEW;
+END;
+$$ LANGUAGE PLPGSQL;
+
+/* AFTER trigger only! */
+CREATE OR REPLACE FUNCTION money.mat_summary_delete () RETURNS TRIGGER AS $$
+BEGIN
+	DELETE FROM money.materialized_billable_xact_summary WHERE id = OLD.id;
+	RETURN OLD;
+END;
+$$ LANGUAGE PLPGSQL;
+
+CREATE TRIGGER mat_summary_create_tgr AFTER INSERT ON money.grocery FOR EACH ROW EXECUTE PROCEDURE money.mat_summary_create ();
+CREATE TRIGGER mat_summary_change_tgr AFTER UPDATE ON money.grocery FOR EACH ROW EXECUTE PROCEDURE money.mat_summary_update ();
+CREATE TRIGGER mat_summary_remove_tgr AFTER DELETE ON money.grocery FOR EACH ROW EXECUTE PROCEDURE money.mat_summary_delete ();
+
+
+
+/* BEFORE or AFTER trigger */
+CREATE OR REPLACE FUNCTION money.materialized_summary_billing_add () RETURNS TRIGGER AS $$
+BEGIN
+	IF NOT NEW.voided THEN
+		UPDATE	money.materialized_billable_xact_summary
+		  SET	total_billed = total_billed + NEW.amount,
+			last_billing_ts = NEW.billing_ts,
+			last_billing_note = NEW.note,
+			last_billing_type = NEW.billing_type,
+			balance_owed = balance_owed + NEW.amount
+		  WHERE	id = NEW.xact;
+	END IF;
+
+	RETURN NEW;
+END;
+$$ LANGUAGE PLPGSQL;
+
+/* AFTER trigger only! */
+CREATE OR REPLACE FUNCTION money.materialized_summary_billing_update () RETURNS TRIGGER AS $$
+DECLARE
+	old_billing	money.billing%ROWTYPE;
+	old_voided	money.billing%ROWTYPE;
+BEGIN
+
+	SELECT * INTO old_billing FROM money.billing WHERE xact = NEW.xact AND NOT voided ORDER BY billing_ts DESC LIMIT 1;
+	SELECT * INTO old_voided FROM money.payment_view WHERE xact = NEW.xact ORDER BY payment_ts DESC LIMIT 1;
+
+	IF NEW.voided AND NOT OLD.voided THEN
+		IF OLD.id = old_voided.id THEN
+			UPDATE	money.materialized_billable_xact_summary
+			  SET	last_billing_ts = old_billing.billing_ts,
+				last_billing_note = old_billing.note,
+				last_billing_type = old_billing.billing_type
+			  WHERE	id = OLD.xact;
+		END IF;
+
+		UPDATE	money.materialized_billable_xact_summary
+		  SET	total_billed = total_billed - NEW.amount,
+			balance_owed = balance_owed - NEW.amount
+		  WHERE	id = NEW.xact;
+
+	ELSIF NOT NEW.voided AND OLD.voided THEN
+
+		IF OLD.id = old_billing.id THEN
+			UPDATE	money.materialized_billable_xact_summary
+			  SET	last_billing_ts = old_billing.billing_ts,
+				last_billing_note = old_billing.note,
+				last_billing_type = old_billing.billing_type
+			  WHERE	id = OLD.xact;
+		END IF;
+
+		UPDATE	money.materialized_billable_xact_summary
+		  SET	total_billed = total_billed + NEW.amount,
+			balance_owed = balance_owed + NEW.amount
+		  WHERE	id = NEW.xact;
+
+	ELSE
+		UPDATE	money.materialized_billable_xact_summary
+		  SET	total_billed = total_billed - (OLD.amount - NEW.amount),
+			balance_owed = balance_owed - (OLD.amount - NEW.amount)
+		  WHERE	id = NEW.xact;
+	END IF;
+
+	RETURN NEW;
+END;
+$$ LANGUAGE PLPGSQL;
+
+/* BEFORE trigger only! */
+CREATE OR REPLACE FUNCTION money.materialized_summary_billing_del () RETURNS TRIGGER AS $$
+DECLARE
+	prev_billing	money.billing%ROWTYPE;
+	old_billing	money.billing%ROWTYPE;
+BEGIN
+	SELECT * INTO prev_billing FROM money.billing WHERE xact = OLD.xact AND NOT voided ORDER BY billing_ts DESC LIMIT 1 OFFSET 1;
+	SELECT * INTO old_billing FROM money.billing WHERE xact = OLD.xact AND NOT voided ORDER BY billing_ts DESC LIMIT 1;
+
+	IF OLD.id = old_billing.id THEN
+		UPDATE	money.materialized_billable_xact_summary
+		  SET	last_billing_ts = prev_billing.billing_ts,
+			last_billing_note = prev_billing.note,
+			last_billing_type = prev_billing.billing_type
+		  WHERE	id = NEW.xact;
+	END IF;
+
+	IF NOT OLD.voided THEN
+		UPDATE	money.materialized_billable_xact_summary
+		  SET	total_billed = total_billed - OLD.amount,
+			balance_owed = balance_owed + OLD.amount
+		  WHERE	id = OLD.xact;
+	END IF;
+
+	RETURN OLD;
+END;
+$$ LANGUAGE PLPGSQL;
+
+CREATE TRIGGER mat_summary_add_tgr AFTER INSERT ON money.billing FOR EACH ROW EXECUTE PROCEDURE money.materialized_summary_billing_add ();
+CREATE TRIGGER mat_summary_upd_tgr AFTER UPDATE ON money.billing FOR EACH ROW EXECUTE PROCEDURE money.materialized_summary_billing_update ();
+CREATE TRIGGER mat_summary_del_tgr BEFORE DELETE ON money.billing FOR EACH ROW EXECUTE PROCEDURE money.materialized_summary_billing_del ();
+
+
+/* BEFORE or AFTER trigger */
+CREATE OR REPLACE FUNCTION money.materialized_summary_payment_add () RETURNS TRIGGER AS $$
+BEGIN
+	IF NOT NEW.voided THEN
+		UPDATE	money.materialized_billable_xact_summary
+		  SET	total_paid = total_paid + NEW.amount,
+			last_payment_ts = NEW.payment_ts,
+			last_payment_note = NEW.note,
+			last_payment_type = TG_ARGV[0],
+			balance_owed = balance_owed - NEW.amount
+		  WHERE	id = NEW.xact;
+	END IF;
+
+	RETURN NEW;
+END;
+$$ LANGUAGE PLPGSQL;
+
+/* AFTER trigger only! */
+CREATE OR REPLACE FUNCTION money.materialized_summary_payment_update () RETURNS TRIGGER AS $$
+DECLARE
+	old_payment	money.payment_view%ROWTYPE;
+	old_voided	money.payment_view%ROWTYPE;
+BEGIN
+
+	SELECT * INTO old_payment FROM money.payment_view WHERE xact = NEW.xact AND NOT voided ORDER BY payment_ts DESC LIMIT 1;
+	SELECT * INTO old_voided FROM money.payment_view WHERE xact = NEW.xact ORDER BY payment_ts DESC LIMIT 1;
+
+	IF NEW.voided AND NOT OLD.voided THEN
+		IF OLD.id = old_voided.id THEN
+			UPDATE	money.materialized_billable_xact_summary
+			  SET	last_payment_ts = old_payment.payment_ts,
+				last_payment_note = old_payment.note,
+				last_payment_type = old_payment.payment_type
+			  WHERE	id = OLD.xact;
+		END IF;
+
+		UPDATE	money.materialized_billable_xact_summary
+		  SET	total_paid = total_paid - NEW.amount,
+			balance_owed = balance_owed + NEW.amount
+		  WHERE	id = NEW.xact;
+
+	ELSIF NOT NEW.voided AND OLD.voided THEN
+
+		IF OLD.id = old_payment.id THEN
+			UPDATE	money.materialized_billable_xact_summary
+			  SET	last_payment_ts = old_payment.payment_ts,
+				last_payment_note = old_payment.note,
+				last_payment_type = old_payment.payment_type
+			  WHERE	id = OLD.xact;
+		END IF;
+
+		UPDATE	money.materialized_billable_xact_summary
+		  SET	total_paid = total_paid + NEW.amount,
+			balance_owed = balance_owed - NEW.amount
+		  WHERE	id = NEW.xact;
+
+	ELSE
+		UPDATE	money.materialized_billable_xact_summary
+		  SET	total_paid = total_paid - (OLD.amount - NEW.amount),
+			balance_owed = balance_owed + (OLD.amount - NEW.amount)
+		  WHERE	id = NEW.xact;
+	END IF;
+
+	RETURN NEW;
+END;
+$$ LANGUAGE PLPGSQL;
+
+/* BEFORE trigger only! */
+CREATE OR REPLACE FUNCTION money.materialized_summary_payment_del () RETURNS TRIGGER AS $$
+DECLARE
+	prev_payment	money.payment_view%ROWTYPE;
+	old_payment	money.payment_view%ROWTYPE;
+BEGIN
+	SELECT * INTO prev_payment FROM money.payment_view WHERE xact = OLD.xact AND NOT voided ORDER BY payment_ts DESC LIMIT 1 OFFSET 1;
+	SELECT * INTO old_payment FROM money.payment_view WHERE xact = OLD.xact AND NOT voided ORDER BY payment_ts DESC LIMIT 1;
+
+	IF OLD.id = old_payment.id THEN
+		UPDATE	money.materialized_billable_xact_summary
+		  SET	last_payment_ts = prev_payment.payment_ts,
+			last_payment_note = prev_payment.note,
+			last_payment_type = prev_payment.payment_type
+		  WHERE	id = OLD.xact;
+	END IF;
+
+	IF NOT OLD.voided THEN
+		UPDATE	money.materialized_billable_xact_summary
+		  SET	total_paid = total_paid - OLD.amount,
+			balance_owed = balance_owed + OLD.amount
+		  WHERE	id = OLD.xact;
+	END IF;
+
+	RETURN OLD;
+END;
+$$ LANGUAGE PLPGSQL;
+
 CREATE OR REPLACE VIEW money.usr_summary AS
 	SELECT	usr,
 		SUM(total_paid) AS total_paid,
@@ -308,12 +501,21 @@
 	  WHERE	xact_type = 'circulation'
 	  GROUP BY 1;
 
+CREATE TRIGGER mat_summary_add_tgr AFTER INSERT ON money.payment FOR EACH ROW EXECUTE PROCEDURE money.materialized_summary_payment_add ('payment');
+CREATE TRIGGER mat_summary_upd_tgr AFTER UPDATE ON money.payment FOR EACH ROW EXECUTE PROCEDURE money.materialized_summary_payment_update ('payment');
+CREATE TRIGGER mat_summary_del_tgr BEFORE DELETE ON money.payment FOR EACH ROW EXECUTE PROCEDURE money.materialized_summary_payment_del ('payment');
+
 CREATE TABLE money.bnm_payment (
 	amount_collected	NUMERIC(6,2)	NOT NULL,
 	accepting_usr		INT		NOT NULL
 ) INHERITS (money.payment);
 ALTER TABLE money.bnm_payment ADD PRIMARY KEY (id);
 
+CREATE TRIGGER mat_summary_add_tgr AFTER INSERT ON money.bnm_payment FOR EACH ROW EXECUTE PROCEDURE money.materialized_summary_payment_add ('bnm_payment');
+CREATE TRIGGER mat_summary_upd_tgr AFTER UPDATE ON money.bnm_payment FOR EACH ROW EXECUTE PROCEDURE money.materialized_summary_payment_update ('bnm_payment');
+CREATE TRIGGER mat_summary_del_tgr BEFORE DELETE ON money.bnm_payment FOR EACH ROW EXECUTE PROCEDURE money.materialized_summary_payment_del ('bnm_payment');
+
+
 CREATE TABLE money.forgive_payment () INHERITS (money.bnm_payment);
 ALTER TABLE money.forgive_payment ADD PRIMARY KEY (id);
 CREATE INDEX money_forgive_id_idx ON money.forgive_payment (id);
@@ -321,6 +523,11 @@
 CREATE INDEX money_forgive_payment_payment_ts_idx ON money.forgive_payment (payment_ts);
 CREATE INDEX money_forgive_payment_accepting_usr_idx ON money.forgive_payment (accepting_usr);
 
+CREATE TRIGGER mat_summary_add_tgr AFTER INSERT ON money.forgive_payment FOR EACH ROW EXECUTE PROCEDURE money.materialized_summary_payment_add ('forgive_payment');
+CREATE TRIGGER mat_summary_upd_tgr AFTER UPDATE ON money.forgive_payment FOR EACH ROW EXECUTE PROCEDURE money.materialized_summary_payment_update ('forgive_payment');
+CREATE TRIGGER mat_summary_del_tgr BEFORE DELETE ON money.forgive_payment FOR EACH ROW EXECUTE PROCEDURE money.materialized_summary_payment_del ('forgive_payment');
+
+
 CREATE TABLE money.work_payment () INHERITS (money.bnm_payment);
 ALTER TABLE money.work_payment ADD PRIMARY KEY (id);
 CREATE INDEX money_work_id_idx ON money.work_payment (id);
@@ -328,6 +535,11 @@
 CREATE INDEX money_work_payment_payment_ts_idx ON money.work_payment (payment_ts);
 CREATE INDEX money_work_payment_accepting_usr_idx ON money.work_payment (accepting_usr);
 
+CREATE TRIGGER mat_summary_add_tgr AFTER INSERT ON money.work_payment FOR EACH ROW EXECUTE PROCEDURE money.materialized_summary_payment_add ('work_payment');
+CREATE TRIGGER mat_summary_upd_tgr AFTER UPDATE ON money.work_payment FOR EACH ROW EXECUTE PROCEDURE money.materialized_summary_payment_update ('work_payment');
+CREATE TRIGGER mat_summary_del_tgr BEFORE DELETE ON money.work_payment FOR EACH ROW EXECUTE PROCEDURE money.materialized_summary_payment_del ('work_payment');
+
+
 CREATE TABLE money.credit_payment () INHERITS (money.bnm_payment);
 ALTER TABLE money.credit_payment ADD PRIMARY KEY (id);
 CREATE INDEX money_credit_id_idx ON money.credit_payment (id);
@@ -335,6 +547,11 @@
 CREATE INDEX money_credit_payment_payment_ts_idx ON money.credit_payment (payment_ts);
 CREATE INDEX money_credit_payment_accepting_usr_idx ON money.credit_payment (accepting_usr);
 
+CREATE TRIGGER mat_summary_add_tgr AFTER INSERT ON money.credit_payment FOR EACH ROW EXECUTE PROCEDURE money.materialized_summary_payment_add ('credit_payment');
+CREATE TRIGGER mat_summary_upd_tgr AFTER UPDATE ON money.credit_payment FOR EACH ROW EXECUTE PROCEDURE money.materialized_summary_payment_update ('credit_payment');
+CREATE TRIGGER mat_summary_del_tgr BEFORE DELETE ON money.credit_payment FOR EACH ROW EXECUTE PROCEDURE money.materialized_summary_payment_del ('credit_payment');
+
+
 CREATE TABLE money.goods_payment () INHERITS (money.bnm_payment);
 ALTER TABLE money.goods_payment ADD PRIMARY KEY (id);
 CREATE INDEX money_goods_id_idx ON money.goods_payment (id);
@@ -342,11 +559,21 @@
 CREATE INDEX money_goods_payment_payment_ts_idx ON money.goods_payment (payment_ts);
 CREATE INDEX money_goods_payment_accepting_usr_idx ON money.goods_payment (accepting_usr);
 
+CREATE TRIGGER mat_summary_add_tgr AFTER INSERT ON money.goods_payment FOR EACH ROW EXECUTE PROCEDURE money.materialized_summary_payment_add ('goods_payment');
+CREATE TRIGGER mat_summary_upd_tgr AFTER UPDATE ON money.goods_payment FOR EACH ROW EXECUTE PROCEDURE money.materialized_summary_payment_update ('goods_payment');
+CREATE TRIGGER mat_summary_del_tgr BEFORE DELETE ON money.goods_payment FOR EACH ROW EXECUTE PROCEDURE money.materialized_summary_payment_del ('goods_payment');
+
+
 CREATE TABLE money.bnm_desk_payment (
 	cash_drawer	INT	REFERENCES actor.workstation (id) DEFERRABLE INITIALLY DEFERRED
 ) INHERITS (money.bnm_payment);
 ALTER TABLE money.bnm_desk_payment ADD PRIMARY KEY (id);
 
+CREATE TRIGGER mat_summary_add_tgr AFTER INSERT ON money.bnm_desk_payment FOR EACH ROW EXECUTE PROCEDURE money.materialized_summary_payment_add ('bnm_desk_payment');
+CREATE TRIGGER mat_summary_upd_tgr AFTER UPDATE ON money.bnm_desk_payment FOR EACH ROW EXECUTE PROCEDURE money.materialized_summary_payment_update ('bnm_desk_payment');
+CREATE TRIGGER mat_summary_del_tgr BEFORE DELETE ON money.bnm_desk_payment FOR EACH ROW EXECUTE PROCEDURE money.materialized_summary_payment_del ('bnm_desk_payment');
+
+
 CREATE OR REPLACE VIEW money.desk_payment_view AS
 	SELECT	p.*,c.relname AS payment_type
 	  FROM	money.bnm_desk_payment p
@@ -365,6 +592,11 @@
 CREATE INDEX money_cash_payment_accepting_usr_idx ON money.cash_payment (accepting_usr);
 CREATE INDEX money_cash_payment_cash_drawer_idx ON money.cash_payment (cash_drawer);
 
+CREATE TRIGGER mat_summary_add_tgr AFTER INSERT ON money.cash_payment FOR EACH ROW EXECUTE PROCEDURE money.materialized_summary_payment_add ('bnm_payment');
+CREATE TRIGGER mat_summary_upd_tgr AFTER UPDATE ON money.cash_payment FOR EACH ROW EXECUTE PROCEDURE money.materialized_summary_payment_update ('bnm_payment');
+CREATE TRIGGER mat_summary_del_tgr BEFORE DELETE ON money.cash_payment FOR EACH ROW EXECUTE PROCEDURE money.materialized_summary_payment_del ('bnm_payment');
+
+
 CREATE TABLE money.check_payment (
 	check_number	TEXT	NOT NULL
 ) INHERITS (money.bnm_desk_payment);
@@ -375,6 +607,11 @@
 CREATE INDEX money_check_payment_accepting_usr_idx ON money.check_payment (accepting_usr);
 CREATE INDEX money_check_payment_cash_drawer_idx ON money.check_payment (cash_drawer);
 
+CREATE TRIGGER mat_summary_add_tgr AFTER INSERT ON money.check_payment FOR EACH ROW EXECUTE PROCEDURE money.materialized_summary_payment_add ('bnm_payment');
+CREATE TRIGGER mat_summary_upd_tgr AFTER UPDATE ON money.check_payment FOR EACH ROW EXECUTE PROCEDURE money.materialized_summary_payment_update ('bnm_payment');
+CREATE TRIGGER mat_summary_del_tgr BEFORE DELETE ON money.check_payment FOR EACH ROW EXECUTE PROCEDURE money.materialized_summary_payment_del ('bnm_payment');
+
+
 CREATE TABLE money.credit_card_payment (
 	cc_type		TEXT,
 	cc_number	TEXT,
@@ -389,6 +626,11 @@
 CREATE INDEX money_credit_card_payment_accepting_usr_idx ON money.credit_card_payment (accepting_usr);
 CREATE INDEX money_credit_card_payment_cash_drawer_idx ON money.credit_card_payment (cash_drawer);
 
+CREATE TRIGGER mat_summary_add_tgr AFTER INSERT ON money.credit_card_payment FOR EACH ROW EXECUTE PROCEDURE money.materialized_summary_payment_add ('credit_card_payment');
+CREATE TRIGGER mat_summary_upd_tgr AFTER UPDATE ON money.credit_card_payment FOR EACH ROW EXECUTE PROCEDURE money.materialized_summary_payment_update ('credit_card_payment');
+CREATE TRIGGER mat_summary_del_tgr BEFORE DELETE ON money.credit_card_payment FOR EACH ROW EXECUTE PROCEDURE money.materialized_summary_payment_del ('credit_card_payment');
+
+
 CREATE OR REPLACE VIEW money.non_drawer_payment_view AS
 	SELECT	p.*, c.relname AS payment_type
 	  FROM	money.bnm_payment p         

Modified: trunk/Open-ILS/src/sql/Pg/090.schema.action.sql
===================================================================
--- trunk/Open-ILS/src/sql/Pg/090.schema.action.sql	2008-12-29 19:52:54 UTC (rev 11700)
+++ trunk/Open-ILS/src/sql/Pg/090.schema.action.sql	2008-12-29 21:19:02 UTC (rev 11701)
@@ -126,6 +126,11 @@
 CREATE INDEX circ_circ_lib_idx ON "action".circulation (circ_lib);
 CREATE INDEX circ_open_date_idx ON "action".circulation (xact_start) WHERE xact_finish IS NULL;
 
+CREATE TRIGGER mat_summary_create_tgr AFTER INSERT ON action.circulation FOR EACH ROW EXECUTE PROCEDURE money.mat_summary_create ();
+CREATE TRIGGER mat_summary_change_tgr AFTER UPDATE ON action.circulation FOR EACH ROW EXECUTE PROCEDURE money.mat_summary_update ();
+CREATE TRIGGER mat_summary_remove_tgr AFTER DELETE ON action.circulation FOR EACH ROW EXECUTE PROCEDURE money.mat_summary_delete ();
+
+
 CREATE TABLE action.aged_circulation (
 	usr_post_code		TEXT,
 	usr_home_ou		INT	NOT NULL,



More information about the open-ils-commits mailing list