LP#1779920 - Autorenew Feature
[working/Evergreen.git] / Open-ILS / src / sql / Pg / upgrade / XXXX.autorenewals_acp_and_circ_duration.sql
1 BEGIN;
2     -- SELECT evergreen.upgrade_deps_block_check('xxxx', :eg_version);
3
4     ALTER TABLE config.rule_circ_duration
5     ADD column max_auto_renewals INTEGER;
6
7     ALTER TABLE action.circulation
8     ADD column auto_renewal BOOLEAN;
9
10     ALTER TABLE action.circulation
11     ADD column auto_renewal_remaining INTEGER;
12
13     INSERT INTO action_trigger.validator values('CircIsAutoRenewable', 'Checks whether the circulation is able to be autorenewed.');
14     INSERT INTO action_trigger.reactor values('Circ::AutoRenew', 'Auto-Renews a circulation.');
15     INSERT INTO action_trigger.hook(key, core_type, description) values('autorenewal', 'circ', 'Item was auto-renewed to patron.');
16
17     -- AutoRenewer A/T Def: 
18     INSERT INTO action_trigger.event_definition(active, owner, name, hook, validator, reactor, delay, max_delay, delay_field, group_field)
19         values (true, 1, 'Autorenew', 'checkout.due', 'NOOP_True', 'Circ::AutoRenew', '-23 hours'::interval,'-1 minute'::interval, 'due_date', 'usr');
20
21     -- AutoRenewal outcome Email notifier A/T Def:
22     INSERT INTO action_trigger.event_definition(active, owner, name, hook, validator, reactor, group_field, template)
23         values (true, 1, 'AutorenewNotify', 'autorenewal', 'NOOP_True', 'SendEmail', 'usr', 
24         $$
25         [%- USE date -%]
26         [%- user = target.0.usr -%]
27         To: [%- params.recipient_email || user.email %]
28         From: [%- params.sender_email || default_sender %]
29         Date: [%- date.format(date.now, '%a, %d %b %Y %T -0000', gmt => 1) %]
30         Subject: Items Out Auto-Renewal Notification Auto-Submitted: auto-generated
31         
32         Dear [% user.family_name %], [% user.first_given_name %] (UserID: [%- user.id +%])
33         Your library would like to let you know about your currently borrowed item(s):
34         
35         [% FOR circ IN target %]
36             [%- SET idx = loop.count - 1; SET udata =  user_data.$idx -%]
37             Item# [%+ loop.count -%] (circ_id: [%- circ.id -%])
38             [%- SET cid = circ.target_copy || udata.copy -%]
39             [%- SET copy_details = helpers.get_copy_bib_basics(cid) +%]
40             Title: [% copy_details.title %]
41             Author: [% copy_details.author %]
42             Due Date: [% date.format(helpers.format_date(circ.due_date), '%Y-%m-%d') %]
43             Status:   [%- IF udata.is_renewed %] Loan Renewed. Now Due: [%- date.format(helpers.format_date(udata.new_due_date), '%Y-%m-%d') %]
44             [% ELSE %] Not Renewed. Reason: [% udata.reason %] [% END %]
45         [% END %]
46         $$
47     );
48
49     INSERT INTO action_trigger.environment (event_def, path ) VALUES
50     ( currval('action_trigger.event_definition_id_seq'), 'usr' ),
51     ( currval('action_trigger.event_definition_id_seq'), 'circ_lib' );
52
53 COMMIT;