BEGIN; SELECT evergreen.upgrade_deps_block_check('0957', :eg_version); -- Remove references to dropped CC payment columns in the print/email -- payment receipt templates, but only if the in-db template matches -- the stock template. -- The actual diff here is only about 8 lines. 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 %] Subject: Payment Receipt [% 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 %] $$ 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 %] Subject: Payment Receipt [% 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 ( [%- SET cc_chunks = mp.credit_card_payment.cc_number.replace(' ','').chunk(4); -%] [%- cc_chunks.slice(0, -1+cc_chunks.max).join.replace('\S','X') -%] [% cc_chunks.last -%] exp [% mp.credit_card_payment.expire_month %]/[% mp.credit_card_payment.expire_year -%] ) [% 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 %] $$; UPDATE action_trigger.event_definition SET template = $$ [%- USE date -%][%- SET user = target.0.xact.usr -%]
[% 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 %]
  1. 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 %]
    1. [% 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 %]
    2. [% END %]
    Line item payments:
      [% FOR mp IN xact_mp_hash.$xact_id.payments %]
    1. 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 %]
    2. [% END %]
  2. [% END %]
$$ WHERE id = 30 AND template = $$ [%- USE date -%][%- SET user = target.0.xact.usr -%]
[% 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 %]
  1. 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 %]
    1. [% 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 %]
    2. [% END %]
    Line item payments:
      [% FOR mp IN xact_mp_hash.$xact_id.payments %]
    1. 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 ( [%- SET cc_chunks = mp.credit_card_payment.cc_number.replace(' ','').chunk(4); -%] [%- cc_chunks.slice(0, -1+cc_chunks.max).join.replace('\S','X') -%] [% cc_chunks.last -%] exp [% mp.credit_card_payment.expire_month %]/[% mp.credit_card_payment.expire_year -%] ) [% CASE "credit_payment" %]credit [% CASE "forgive_payment" %]forgiveness [% CASE "goods_payment" %]goods [% CASE "work_payment" %]work [%- END %] on [% mp.payment_ts %] [% mp.note %]
    2. [% END %]
  2. [% END %]
$$; --ROLLBACK; COMMIT;