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,
--- /dev/null
+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;
+
+++ /dev/null
-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;
-