From: Chris Sharp Date: Wed, 26 Feb 2020 21:24:54 +0000 (-0500) Subject: LP#1811132 - Stamping upgrade script X-Git-Url: https://old-git.evergreen-ils.org/?a=commitdiff_plain;h=975ef969e7236ef05f642e6f88159d6668712410;p=evergreen%2Fequinox.git LP#1811132 - Stamping upgrade script Signed-off-by: Chris Sharp --- diff --git a/Open-ILS/src/sql/Pg/002.schema.config.sql b/Open-ILS/src/sql/Pg/002.schema.config.sql index 86b2d68676..f3e6244165 100644 --- a/Open-ILS/src/sql/Pg/002.schema.config.sql +++ b/Open-ILS/src/sql/Pg/002.schema.config.sql @@ -92,7 +92,7 @@ CREATE TRIGGER no_overlapping_deps BEFORE INSERT OR UPDATE ON config.db_patch_dependencies FOR EACH ROW EXECUTE PROCEDURE evergreen.array_overlap_check ('deprecates'); -INSERT INTO config.upgrade_log (version, applied_to) VALUES ('1199', :eg_version); -- Bmagic/csharp +INSERT INTO config.upgrade_log (version, applied_to) VALUES ('1200', :eg_version); -- jeffdavis/csharp CREATE TABLE config.bib_source ( id SERIAL PRIMARY KEY, diff --git a/Open-ILS/src/sql/Pg/upgrade/1200.schema.debit_card_payment.sql b/Open-ILS/src/sql/Pg/upgrade/1200.schema.debit_card_payment.sql new file mode 100644 index 0000000000..88ad356037 --- /dev/null +++ b/Open-ILS/src/sql/Pg/upgrade/1200.schema.debit_card_payment.sql @@ -0,0 +1,147 @@ +BEGIN; + +SELECT evergreen.upgrade_deps_block_check('1200', :eg_version); + +CREATE TABLE money.debit_card_payment () INHERITS (money.bnm_desk_payment); +ALTER TABLE money.debit_card_payment ADD PRIMARY KEY (id); +CREATE INDEX money_debit_card_payment_xact_idx ON money.debit_card_payment (xact); +CREATE INDEX money_debit_card_id_idx ON money.debit_card_payment (id); +CREATE INDEX money_debit_card_payment_ts_idx ON money.debit_card_payment (payment_ts); +CREATE INDEX money_debit_card_payment_accepting_usr_idx ON money.debit_card_payment (accepting_usr); +CREATE INDEX money_debit_card_payment_cash_drawer_idx ON money.debit_card_payment (cash_drawer); + +CREATE TRIGGER mat_summary_add_tgr AFTER INSERT ON money.debit_card_payment FOR EACH ROW EXECUTE PROCEDURE money.materialized_summary_payment_add ('debit_card_payment'); +CREATE TRIGGER mat_summary_upd_tgr AFTER UPDATE ON money.debit_card_payment FOR EACH ROW EXECUTE PROCEDURE money.materialized_summary_payment_update ('debit_card_payment'); +CREATE TRIGGER mat_summary_del_tgr BEFORE DELETE ON money.debit_card_payment FOR EACH ROW EXECUTE PROCEDURE money.materialized_summary_payment_del ('debit_card_payment'); + +CREATE OR REPLACE VIEW money.non_drawer_payment_view AS + SELECT p.*, c.relname AS payment_type + FROM money.bnm_payment p + JOIN pg_class c ON p.tableoid = c.oid + WHERE c.relname NOT IN ('cash_payment','check_payment','credit_card_payment'); + WHERE c.relname NOT IN ('cash_payment','check_payment','credit_card_payment','debit_card_payment'); + +UPDATE action_trigger.event_definition + SET template = $$ +[%- USE date -%] +[%- SET user = target.0.xact.usr -%] +To: [%- params.recipient_email || user.email %] +From: [%- params.sender_email || default_sender %] +Date: [%- date.format(date.now, '%a, %d %b %Y %T -0000', gmt => 1) %] +Subject: Payment Receipt +Auto-Submitted: auto-generated + +[% date.format -%] +[%- SET xact_mp_hash = {} -%] +[%- FOR mp IN target %][%# Template is hooked around payments, but let us make the receipt focused on transactions -%] + [%- SET xact_id = mp.xact.id -%] + [%- IF ! xact_mp_hash.defined( xact_id ) -%][%- xact_mp_hash.$xact_id = { 'xact' => mp.xact, 'payments' => [] } -%][%- END -%] + [%- xact_mp_hash.$xact_id.payments.push(mp) -%] +[%- END -%] +[%- FOR xact_id IN xact_mp_hash.keys.sort -%] + [%- SET xact = xact_mp_hash.$xact_id.xact %] +Transaction ID: [% xact_id %] + [% IF xact.circulation %][% helpers.get_copy_bib_basics(xact.circulation.target_copy).title %] + [% ELSE %]Miscellaneous + [% END %] + Line item billings: + [%- SET mb_type_hash = {} -%] + [%- FOR mb IN xact.billings %][%# Group billings by their btype -%] + [%- IF mb.voided == 'f' -%] + [%- SET mb_type = mb.btype.id -%] + [%- IF ! mb_type_hash.defined( mb_type ) -%][%- mb_type_hash.$mb_type = { 'sum' => 0.00, 'billings' => [] } -%][%- END -%] + [%- IF ! mb_type_hash.$mb_type.defined( 'first_ts' ) -%][%- mb_type_hash.$mb_type.first_ts = mb.billing_ts -%][%- END -%] + [%- mb_type_hash.$mb_type.last_ts = mb.billing_ts -%] + [%- mb_type_hash.$mb_type.sum = mb_type_hash.$mb_type.sum + mb.amount -%] + [%- mb_type_hash.$mb_type.billings.push( mb ) -%] + [%- END -%] + [%- END -%] + [%- FOR mb_type IN mb_type_hash.keys.sort -%] + [%- IF mb_type == 1 %][%-# Consolidated view of overdue billings -%] + $[% mb_type_hash.$mb_type.sum %] for [% mb_type_hash.$mb_type.billings.0.btype.name %] + on [% mb_type_hash.$mb_type.first_ts %] through [% mb_type_hash.$mb_type.last_ts %] + [%- ELSE -%][%# all other billings show individually %] + [% FOR mb IN mb_type_hash.$mb_type.billings %] + $[% mb.amount %] for [% mb.btype.name %] on [% mb.billing_ts %] [% mb.note %] + [% END %] + [% END %] + [% END %] + Line item payments: + [% FOR mp IN xact_mp_hash.$xact_id.payments %] + Payment ID: [% mp.id %] + Paid [% mp.amount %] via [% SWITCH mp.payment_type -%] + [% CASE "cash_payment" %]cash + [% CASE "check_payment" %]check + [% CASE "credit_card_payment" %]credit card + [%- IF mp.credit_card_payment.cc_number %] ([% mp.credit_card_payment.cc_number %])[% END %] + [% CASE "debit_card_payment" %]debit card + [% CASE "credit_payment" %]credit + [% CASE "forgive_payment" %]forgiveness + [% CASE "goods_payment" %]goods + [% CASE "work_payment" %]work + [%- END %] on [% mp.payment_ts %] [% mp.note %] + [% END %] +[% END %] +$$ +WHERE id = 29 AND template = $$ +[%- USE date -%] +[%- SET user = target.0.xact.usr -%] +To: [%- params.recipient_email || user.email %] +From: [%- params.sender_email || default_sender %] +Date: [%- date.format(date.now, '%a, %d %b %Y %T -0000', gmt => 1) %] +Subject: Payment Receipt +Auto-Submitted: auto-generated + +[% date.format -%] +[%- SET xact_mp_hash = {} -%] +[%- FOR mp IN target %][%# Template is hooked around payments, but let us make the receipt focused on transactions -%] + [%- SET xact_id = mp.xact.id -%] + [%- IF ! xact_mp_hash.defined( xact_id ) -%][%- xact_mp_hash.$xact_id = { 'xact' => mp.xact, 'payments' => [] } -%][%- END -%] + [%- xact_mp_hash.$xact_id.payments.push(mp) -%] +[%- END -%] +[%- FOR xact_id IN xact_mp_hash.keys.sort -%] + [%- SET xact = xact_mp_hash.$xact_id.xact %] +Transaction ID: [% xact_id %] + [% IF xact.circulation %][% helpers.get_copy_bib_basics(xact.circulation.target_copy).title %] + [% ELSE %]Miscellaneous + [% END %] + Line item billings: + [%- SET mb_type_hash = {} -%] + [%- FOR mb IN xact.billings %][%# Group billings by their btype -%] + [%- IF mb.voided == 'f' -%] + [%- SET mb_type = mb.btype.id -%] + [%- IF ! mb_type_hash.defined( mb_type ) -%][%- mb_type_hash.$mb_type = { 'sum' => 0.00, 'billings' => [] } -%][%- END -%] + [%- IF ! mb_type_hash.$mb_type.defined( 'first_ts' ) -%][%- mb_type_hash.$mb_type.first_ts = mb.billing_ts -%][%- END -%] + [%- mb_type_hash.$mb_type.last_ts = mb.billing_ts -%] + [%- mb_type_hash.$mb_type.sum = mb_type_hash.$mb_type.sum + mb.amount -%] + [%- mb_type_hash.$mb_type.billings.push( mb ) -%] + [%- END -%] + [%- END -%] + [%- FOR mb_type IN mb_type_hash.keys.sort -%] + [%- IF mb_type == 1 %][%-# Consolidated view of overdue billings -%] + $[% mb_type_hash.$mb_type.sum %] for [% mb_type_hash.$mb_type.billings.0.btype.name %] + on [% mb_type_hash.$mb_type.first_ts %] through [% mb_type_hash.$mb_type.last_ts %] + [%- ELSE -%][%# all other billings show individually %] + [% FOR mb IN mb_type_hash.$mb_type.billings %] + $[% mb.amount %] for [% mb.btype.name %] on [% mb.billing_ts %] [% mb.note %] + [% END %] + [% END %] + [% END %] + Line item payments: + [% FOR mp IN xact_mp_hash.$xact_id.payments %] + Payment ID: [% mp.id %] + Paid [% mp.amount %] via [% SWITCH mp.payment_type -%] + [% CASE "cash_payment" %]cash + [% CASE "check_payment" %]check + [% CASE "credit_card_payment" %]credit card + [%- IF mp.credit_card_payment.cc_number %] ([% mp.credit_card_payment.cc_number %])[% END %] + [% CASE "credit_payment" %]credit + [% CASE "forgive_payment" %]forgiveness + [% CASE "goods_payment" %]goods + [% CASE "work_payment" %]work + [%- END %] on [% mp.payment_ts %] [% mp.note %] + [% END %] +[% END %] +$$; +COMMIT; + diff --git a/Open-ILS/src/sql/Pg/upgrade/XXXX.schema.debit_card_payment.sql b/Open-ILS/src/sql/Pg/upgrade/XXXX.schema.debit_card_payment.sql deleted file mode 100644 index 01a3d3f1e2..0000000000 --- a/Open-ILS/src/sql/Pg/upgrade/XXXX.schema.debit_card_payment.sql +++ /dev/null @@ -1,147 +0,0 @@ -BEGIN; - -SELECT evergreen.upgrade_deps_block_check('XXXX', :eg_version); - -CREATE TABLE money.debit_card_payment () INHERITS (money.bnm_desk_payment); -ALTER TABLE money.debit_card_payment ADD PRIMARY KEY (id); -CREATE INDEX money_debit_card_payment_xact_idx ON money.debit_card_payment (xact); -CREATE INDEX money_debit_card_id_idx ON money.debit_card_payment (id); -CREATE INDEX money_debit_card_payment_ts_idx ON money.debit_card_payment (payment_ts); -CREATE INDEX money_debit_card_payment_accepting_usr_idx ON money.debit_card_payment (accepting_usr); -CREATE INDEX money_debit_card_payment_cash_drawer_idx ON money.debit_card_payment (cash_drawer); - -CREATE TRIGGER mat_summary_add_tgr AFTER INSERT ON money.debit_card_payment FOR EACH ROW EXECUTE PROCEDURE money.materialized_summary_payment_add ('debit_card_payment'); -CREATE TRIGGER mat_summary_upd_tgr AFTER UPDATE ON money.debit_card_payment FOR EACH ROW EXECUTE PROCEDURE money.materialized_summary_payment_update ('debit_card_payment'); -CREATE TRIGGER mat_summary_del_tgr BEFORE DELETE ON money.debit_card_payment FOR EACH ROW EXECUTE PROCEDURE money.materialized_summary_payment_del ('debit_card_payment'); - -CREATE OR REPLACE VIEW money.non_drawer_payment_view AS - SELECT p.*, c.relname AS payment_type - FROM money.bnm_payment p - JOIN pg_class c ON p.tableoid = c.oid - WHERE c.relname NOT IN ('cash_payment','check_payment','credit_card_payment'); - WHERE c.relname NOT IN ('cash_payment','check_payment','credit_card_payment','debit_card_payment'); - -UPDATE action_trigger.event_definition - SET template = $$ -[%- USE date -%] -[%- SET user = target.0.xact.usr -%] -To: [%- params.recipient_email || user.email %] -From: [%- params.sender_email || default_sender %] -Date: [%- date.format(date.now, '%a, %d %b %Y %T -0000', gmt => 1) %] -Subject: Payment Receipt -Auto-Submitted: auto-generated - -[% date.format -%] -[%- SET xact_mp_hash = {} -%] -[%- FOR mp IN target %][%# Template is hooked around payments, but let us make the receipt focused on transactions -%] - [%- SET xact_id = mp.xact.id -%] - [%- IF ! xact_mp_hash.defined( xact_id ) -%][%- xact_mp_hash.$xact_id = { 'xact' => mp.xact, 'payments' => [] } -%][%- END -%] - [%- xact_mp_hash.$xact_id.payments.push(mp) -%] -[%- END -%] -[%- FOR xact_id IN xact_mp_hash.keys.sort -%] - [%- SET xact = xact_mp_hash.$xact_id.xact %] -Transaction ID: [% xact_id %] - [% IF xact.circulation %][% helpers.get_copy_bib_basics(xact.circulation.target_copy).title %] - [% ELSE %]Miscellaneous - [% END %] - Line item billings: - [%- SET mb_type_hash = {} -%] - [%- FOR mb IN xact.billings %][%# Group billings by their btype -%] - [%- IF mb.voided == 'f' -%] - [%- SET mb_type = mb.btype.id -%] - [%- IF ! mb_type_hash.defined( mb_type ) -%][%- mb_type_hash.$mb_type = { 'sum' => 0.00, 'billings' => [] } -%][%- END -%] - [%- IF ! mb_type_hash.$mb_type.defined( 'first_ts' ) -%][%- mb_type_hash.$mb_type.first_ts = mb.billing_ts -%][%- END -%] - [%- mb_type_hash.$mb_type.last_ts = mb.billing_ts -%] - [%- mb_type_hash.$mb_type.sum = mb_type_hash.$mb_type.sum + mb.amount -%] - [%- mb_type_hash.$mb_type.billings.push( mb ) -%] - [%- END -%] - [%- END -%] - [%- FOR mb_type IN mb_type_hash.keys.sort -%] - [%- IF mb_type == 1 %][%-# Consolidated view of overdue billings -%] - $[% mb_type_hash.$mb_type.sum %] for [% mb_type_hash.$mb_type.billings.0.btype.name %] - on [% mb_type_hash.$mb_type.first_ts %] through [% mb_type_hash.$mb_type.last_ts %] - [%- ELSE -%][%# all other billings show individually %] - [% FOR mb IN mb_type_hash.$mb_type.billings %] - $[% mb.amount %] for [% mb.btype.name %] on [% mb.billing_ts %] [% mb.note %] - [% END %] - [% END %] - [% END %] - Line item payments: - [% FOR mp IN xact_mp_hash.$xact_id.payments %] - Payment ID: [% mp.id %] - Paid [% mp.amount %] via [% SWITCH mp.payment_type -%] - [% CASE "cash_payment" %]cash - [% CASE "check_payment" %]check - [% CASE "credit_card_payment" %]credit card - [%- IF mp.credit_card_payment.cc_number %] ([% mp.credit_card_payment.cc_number %])[% END %] - [% CASE "debit_card_payment" %]debit card - [% CASE "credit_payment" %]credit - [% CASE "forgive_payment" %]forgiveness - [% CASE "goods_payment" %]goods - [% CASE "work_payment" %]work - [%- END %] on [% mp.payment_ts %] [% mp.note %] - [% END %] -[% END %] -$$ -WHERE id = 29 AND template = $$ -[%- USE date -%] -[%- SET user = target.0.xact.usr -%] -To: [%- params.recipient_email || user.email %] -From: [%- params.sender_email || default_sender %] -Date: [%- date.format(date.now, '%a, %d %b %Y %T -0000', gmt => 1) %] -Subject: Payment Receipt -Auto-Submitted: auto-generated - -[% date.format -%] -[%- SET xact_mp_hash = {} -%] -[%- FOR mp IN target %][%# Template is hooked around payments, but let us make the receipt focused on transactions -%] - [%- SET xact_id = mp.xact.id -%] - [%- IF ! xact_mp_hash.defined( xact_id ) -%][%- xact_mp_hash.$xact_id = { 'xact' => mp.xact, 'payments' => [] } -%][%- END -%] - [%- xact_mp_hash.$xact_id.payments.push(mp) -%] -[%- END -%] -[%- FOR xact_id IN xact_mp_hash.keys.sort -%] - [%- SET xact = xact_mp_hash.$xact_id.xact %] -Transaction ID: [% xact_id %] - [% IF xact.circulation %][% helpers.get_copy_bib_basics(xact.circulation.target_copy).title %] - [% ELSE %]Miscellaneous - [% END %] - Line item billings: - [%- SET mb_type_hash = {} -%] - [%- FOR mb IN xact.billings %][%# Group billings by their btype -%] - [%- IF mb.voided == 'f' -%] - [%- SET mb_type = mb.btype.id -%] - [%- IF ! mb_type_hash.defined( mb_type ) -%][%- mb_type_hash.$mb_type = { 'sum' => 0.00, 'billings' => [] } -%][%- END -%] - [%- IF ! mb_type_hash.$mb_type.defined( 'first_ts' ) -%][%- mb_type_hash.$mb_type.first_ts = mb.billing_ts -%][%- END -%] - [%- mb_type_hash.$mb_type.last_ts = mb.billing_ts -%] - [%- mb_type_hash.$mb_type.sum = mb_type_hash.$mb_type.sum + mb.amount -%] - [%- mb_type_hash.$mb_type.billings.push( mb ) -%] - [%- END -%] - [%- END -%] - [%- FOR mb_type IN mb_type_hash.keys.sort -%] - [%- IF mb_type == 1 %][%-# Consolidated view of overdue billings -%] - $[% mb_type_hash.$mb_type.sum %] for [% mb_type_hash.$mb_type.billings.0.btype.name %] - on [% mb_type_hash.$mb_type.first_ts %] through [% mb_type_hash.$mb_type.last_ts %] - [%- ELSE -%][%# all other billings show individually %] - [% FOR mb IN mb_type_hash.$mb_type.billings %] - $[% mb.amount %] for [% mb.btype.name %] on [% mb.billing_ts %] [% mb.note %] - [% END %] - [% END %] - [% END %] - Line item payments: - [% FOR mp IN xact_mp_hash.$xact_id.payments %] - Payment ID: [% mp.id %] - Paid [% mp.amount %] via [% SWITCH mp.payment_type -%] - [% CASE "cash_payment" %]cash - [% CASE "check_payment" %]check - [% CASE "credit_card_payment" %]credit card - [%- IF mp.credit_card_payment.cc_number %] ([% mp.credit_card_payment.cc_number %])[% END %] - [% CASE "credit_payment" %]credit - [% CASE "forgive_payment" %]forgiveness - [% CASE "goods_payment" %]goods - [% CASE "work_payment" %]work - [%- END %] on [% mp.payment_ts %] [% mp.note %] - [% END %] -[% END %] -$$; -COMMIT; -