Bug 26403: Move credit and debit types into translatable YAML files
[koha.git] / installer / data / mysql / db_revs / 220600072.pl
1 use Modern::Perl;
2
3 return {
4     bug_number  => "24381",
5     description => "Update accounts notices",
6     up => sub {
7         my ($args) = @_;
8         my ($dbh, $out) = @$args{qw(dbh out)};
9
10         # ACCOUNT_CREDIT
11         my $account_credit = q{
12 [%- USE AuthorisedValues -%]
13 [%- USE KohaDates -%]
14 [%- USE Price -%]
15 [%- PROCESS "accounts.inc" -%]
16 <table>
17     [% IF ( LibraryName ) %]
18     <tr>
19         <th colspan="2" class="centerednames">
20         <h3>[% LibraryName | html %]</h3>
21         </th>
22     </tr>
23     [% END %]
24     [% IF credit.library %]
25     <tr>
26         <th colspan="2" class="centerednames">
27         <h2>[% credit.library.branchname | html %]</h2>
28         </th>
29     </tr>
30     [% END %]
31     <tr>
32         <th colspan="2" class="centerednames">
33         <h3>[% today | $KohaDates %]</h3>
34         </th>
35     </tr>
36     <tr>
37         <td>Transaction ID: </td>
38         <td>[% credit.accountlines_id %]</td>
39     </tr>
40     <tr>
41         <td>Operator ID: </td>
42         <td>[% credit.manager_id %]</td>
43     </tr>
44     [% IF credit.payment_type %]
45     <tr>
46         <td>Payment type: </td>
47         <td>[% AuthorisedValues.GetByCode('PAYMENT_TYPE', credit.payment_type) %]</td>
48     </tr>
49     [% END %]
50     <tr>
51         <th colspan="2" class="centerednames">
52         <h2><u>[%- PROCESS credit_type_description credit_type = credit.credit_type -%] receipt</u></h2>
53         </th>
54     </tr>
55     [% IF ( credit.credit_type_code == 'PAYMENT' ) %]
56     <tr>
57         <th colspan="2">
58         Received with thanks from  [% credit.patron.firstname | html %] [% credit.patron.surname | html %] <br />
59         Card number: [% credit.patron.cardnumber | html %]<br />
60         </th>
61     </tr>
62     [% ELSIF ( credit.credit_type_code == 'CREDIT' ) %]
63     <tr>
64         <th colspan="2">
65         Credit added to account for [% credit.patron.firstname | html %] [% credit.patron.surname | html %] <br />
66         Card number: [% credit.patron.cardnumber | html %]<br />
67         </th>
68     </tr>
69     [% ELSIF ( credit.credit_type_code == 'WRITEOFF' ) %]
70     <tr>
71         <th colspan="2">
72         Writeoff added to account for [% credit.patron.firstname | html %] [% credit.patron.surname | html %] <br />
73         Card number: [% credit.patron.cardnumber | html %]<br />
74         </th>
75     </tr>
76     [% END %]
77     [% IF credit.amountoutstanding + 0 != 0 %]
78     <tr>
79         <th>Description of credit</th>
80         <th>Amount</th>
81     </tr>
82     <tr>
83         <td>[%- PROCESS credit_type_description credit_type = credit.credit_type -%]</td>
84         <td>[% credit.amount * -1 | $Price %]</td>
85     </tr>
86     <tr>
87         <th style="text-align:right;">Total available:</th>
88         <td>[% credit.amountoutstanding * -1 | $Price %]</td>
89     </tr>
90     [% END %]
91     [% IF credit.amount != credit.amountoutstanding %]
92     <tr>
93         <th>Description of charges</th>
94         <th>Amount</th>
95     </tr>
96     [% FOREACH offset IN credit.credit_offsets %]
97     <tr>
98         <td>[% PROCESS account_type_description account=offset.debit %][% IF ( offset.debit.itemnumber ) %] - [% offset.debit.item.biblio.title %][% END %]</td>
99         <td>[% offset.amount * -1 | $Price %]</td>
100     </tr>
101     [% END %]
102     [% END %]
103     <tfoot>
104     <tr class="highlight">
105         <td>Total:</td>
106         <td>[% credit.amount * -1 | $Price %]</td>
107     </tr>
108     [% IF change.defined %]
109     <tr>
110         <td>Change given: </td>
111         <td>[% change | $Price %]</td>
112     </tr>
113     [% END %]
114     <tr>
115         <td colspan="2"></td>
116     </tr>
117     <tr>
118         <td>Account balance as on date:</td>
119         <td>[% credit.patron.account.balance * -1 | $Price %]</td>
120     </tr>
121     </tfoot>
122 </table>
123         };
124
125         my $account_credit_old = q{<table>[%IF(LibraryName)%]<tr><thcolspan="4"class="centerednames"><h3>[%LibraryName|html%]</h3></th></tr>[%END%]<tr><thcolspan="4"class="centerednames"><h2><u>Feereceipt</u></h2></th></tr><tr><thcolspan="4"class="centerednames"><h2>[%Branches.GetName(patron.branchcode)|html%]</h2></th></tr><tr><thcolspan="4">Receivedwiththanksfrom[%patron.firstname|html%][%patron.surname|html%]<br/>Cardnumber:[%patron.cardnumber|html%]<br/></th></tr><tr><th>Date</th><th>Descriptionofcharges</th><th>Note</th><th>Amount</th></tr>[%FOREACHaccountINaccounts%]<trclass="highlight"><td>[%account.date|$KohaDates%]</td><td>[%PROCESSaccount_type_descriptionaccount=account%][%-IFaccount.description%],[%account.description|html%][%END%]</td><td>[%account.note|html%]</td>[%IF(account.amountcredit)%]<tdclass="credit">[%ELSE%]<tdclass="debit">[%END%][%account.amount|$Price%]</td></tr>[%END%]<tfoot><tr><tdcolspan="3">Totaloutstandingduesasondate:</td>[%IF(totalcredit)%]<tdclass="credit">[%ELSE%]<tdclass="debit">[%END%][%total|$Price%]</td></tr></tfoot></table>};
126
127         my $sth = $dbh->prepare(q{
128             UPDATE letter SET content = ? WHERE code = 'ACCOUNT_CREDIT' AND REPLACE(REPLACE(content, ' ', ''), '\n','') = ?
129         });
130         $sth->execute( $account_credit, $account_credit_old );
131
132         # replace patron variable with credit.patron
133         $dbh->do("UPDATE letter SET content = REPLACE(content, '[% patron', '[% credit.patron') WHERE code = 'ACCOUNT_CREDIT' ");
134         # replace library variable with credit.library.branchname
135         $dbh->do("UPDATE letter SET content = REPLACE(content, '[% library', '[% credit.library.branchname') WHERE code = 'ACCOUNT_CREDIT' ");
136         # replace offsets variable with credit.offsets
137         $dbh->do("UPDATE letter SET content = REPLACE(content, ' offsets %]', ' credit.offsets %]') WHERE code = 'ACCOUNT_CREDIT' ");
138         # replace change_given variable with change
139         $dbh->do("UPDATE letter SET content = REPLACE(content, '[% change_given', '[% change') WHERE code = 'ACCOUNT_CREDIT' ");
140
141         # ACCOUNT_DEBIT
142         my $account_debit = q{
143 [% PROCESS "accounts.inc" %]
144 [%- USE Price -%]
145 [%- USE KohaDates -%]
146 <table>
147     [% IF ( LibraryName ) %]
148     <tr>
149         <th colspan="3" class="centerednames">
150         <h3>[% LibraryName | html %]</h3>
151         </th>
152     </tr>
153     [% END %]
154     [% IF debit.library %]
155     <tr>
156         <th colspan="3" class="centerednames">
157         <h2>[% debit.library.branchname | html %]</h2>
158         </th>
159     </tr>
160     [% END %]
161     <tr>
162         <td colspan="2" style="text-align:right;">Fee ID: </td>
163         <td>[% debit.accountlines_id %]</td>
164     </tr>
165     [% IF credit.manager_id %]
166     <tr>
167         <td colspan="2" style="text-align:right;">Operator ID: </td>
168         <td>[% credit.manager_id %]</td>
169     </tr>
170     [% END %]
171     <tr>
172         <th colspan="3" class="centerednames">
173         <h2><u>Invoice</u></h2>
174         </th>
175     </tr>
176     <tr>
177         <th colspan="3" >
178         Bill to: [% debit.patron.firstname | html %] [% debit.patron.surname | html %] <br />
179         Card number: [% debit.patron.cardnumber | html %]<br />
180         </th>
181     </tr>
182     [% IF debit.amountoutstanding != 0 %]
183     <tr>
184         <th>Date</th>
185         <th>Description of charges</th>
186         <th>Amount</th>
187     </tr>
188     <tr>
189         <td>[% debit.date | $KohaDates %]</td>
190         <td>[% PROCESS account_type_description account=debit %]</td>
191         <td>[% debit.amount | $Price %]</td>
192     </tr>
193     <tr>
194         <td colspan="2" style="text-align:right;">Total owed:</td>
195         <td>[% debit.amount | $Price %]</td>
196     </tr>
197     [% END %]
198     [% IF debit.amount != debit.amountoutstanding %]
199     <tr>
200         <th>Date</th>
201         <th>Description of payments</th>
202         <th>Amount</th>
203     </tr>
204     [% FOREACH offset IN debit.debit_offsets %]
205     <tr>
206         <td>[% offset.credit.date | $KohaDates %]</td>
207         <td>[% PROCESS account_type_description account=offset.credit %]</td>
208         <td>[% offset.amount * -1 | $Price %]</td>
209     </tr>
210     [% END %]
211     <tr class="highlight">
212         <td colspan="2" style="text-align:right;">Total paid:</td>
213         <td>[% debit.amount - debit.amountoutstanding | $Price %]</td>
214     </tr>
215     [% END %]
216     </tr>
217         <td colspan="3"></td>
218     <tr>
219     <tfoot>
220     <tr>
221         <th colspan="2" style="text-align:right;">Total outstanding:</th>
222         <td>[% debit.amountoutstanding | $Price %]</td>
223     </tr>
224     </tfoot>
225 </table>
226         };
227
228         my $account_debit_old = q{<table>[%IF(LibraryName)%]<tr><thcolspan="5"class="centerednames"><h3>[%LibraryName|html%]</h3></th></tr>[%END%]<tr><thcolspan="5"class="centerednames"><h2><u>INVOICE</u></h2></th></tr><tr><thcolspan="5"class="centerednames"><h2>[%Branches.GetName(patron.branchcode)|html%]</h2></th></tr><tr><thcolspan="5">Billto:[%patron.firstname|html%][%patron.surname|html%]<br/>Cardnumber:[%patron.cardnumber|html%]<br/></th></tr><tr><th>Date</th><th>Descriptionofcharges</th><th>Note</th><thstyle="text-align:right;">Amount</th><thstyle="text-align:right;">Amountoutstanding</th></tr>[%FOREACHaccountINaccounts%]<trclass="highlight"><td>[%account.date|$KohaDates%]</td><td>[%PROCESSaccount_type_descriptionaccount=account%][%-IFaccount.description%],[%account.description|html%][%END%]</td><td>[%account.note|html%]</td>[%IF(account.amountcredit)%]<tdclass="credit">[%ELSE%]<tdclass="debit">[%END%][%account.amount|$Price%]</td>[%IF(account.amountoutstandingcredit)%]<tdclass="credit">[%ELSE%]<tdclass="debit">[%END%][%account.amountoutstanding|$Price%]</td></tr>[%END%]<tfoot><tr><tdcolspan="4">Totaloutstandingduesasondate:</td>[%IF(totalcredit)%]<tdclass="credit">[%ELSE%]<tdclass="debit">[%END%][%total|$Price%]</td></tr></tfoot></table>};
229
230         $sth = $dbh->prepare(q{
231             UPDATE letter SET content = ? WHERE code = 'ACCOUNT_DEBIT' AND REPLACE(REPLACE(content, ' ', ''), '\n','') = ?
232         });
233         $sth->execute($account_debit, $account_debit_old);
234
235         # replace patron variable with debit.patron
236         $dbh->do("UPDATE letter SET content = REPLACE(content, '[% patron', '[% debit.patron') WHERE code = 'ACCOUNT_DEBIT' ");
237         # replace library variable with debit.library.branchname
238         $dbh->do("UPDATE letter SET content = REPLACE(content, '[% library', '[% debit.library.branchname') WHERE code = 'ACCOUNT_DEBIT' ");
239         # replace offsets variable with debit.offsets
240         $dbh->do("UPDATE letter SET content = REPLACE(content, ' offsets %]', ' debit.offsets %]') WHERE code = 'ACCOUNT_DEBIT' ");
241         # replace total variable with debit.patron.account.balance
242         $dbh->do("UPDATE letter SET content = REPLACE(content, '[% total ', '[% debit.patron.account.balance ') WHERE code = 'ACCOUNT_DEBIT' ");
243         # replace totalcredit variable with debit.patron.account.balance <= 0
244         $dbh->do("UPDATE letter SET content = REPLACE(content, 'totalcredit', 'debit.patron.account.balance <= 0') WHERE code = 'ACCOUNT_DEBIT' ");
245
246         # RECEIPT
247         my $receipt = q{
248 [% PROCESS "accounts.inc" %]
249 [%- USE KohaDates -%]
250 [%- USE Price -%]
251 <table>
252     [% IF ( LibraryName ) %]
253     <tr>
254         <th colspan="2" class="centerednames">
255         <h3>[% LibraryName | html %]</h3>
256         </th>
257     </tr>
258     [% END %]
259     [% IF credit.library %]
260     <tr>
261         <th colspan="2" class="centerednames">
262         <h2>[% payment.library.branchname ) | html %]</h2>
263         </th>
264     </tr>
265     [% END %]
266     <tr>
267         <th colspan="2" class="centerednames">
268         <h3>[% payment.date | $KohaDates %]</h3>
269         </th>
270     </tr>
271     <tr>
272         <td>Transaction ID: </td>
273         <td>[% payment.accountlines_id %]</td>
274     </tr>
275     <tr>
276         <td>Operator ID: </td>
277         <td>[% payment.manager_id %]</td>
278     </tr>
279     <tr>
280         <td>Payment type: </td>
281         <td>[% payment.payment_type %]</td>
282     </tr>
283     <tr>
284         <th colspan="2" class="centerednames">
285         <h2><u>Payment receipt</u></h2>
286         </th>
287     </tr>
288     <tr>
289         <th>Description of charges</th>
290         <th>Amount</th>
291     </tr>
292     [% FOREACH offset IN payment.credit_offsets %]
293     <tr>
294         <td>[% PROCESS account_type_description account=offset.debit %]</td>
295         <td>[% offset.amount * -1 | $Price %]</td>
296     </tr>
297     [% END %]
298     <tfoot>
299     <tr class="highlight">
300         <td>Total:</td>
301         <td>[% payment.amount * -1 | $Price %]</td>
302     </tr>
303     <tr>
304         <td>Tendered: </td>
305         <td>[% tendered | $Price %]</td>
306     </tr>
307     <tr>
308         <td>Change given:</td>
309         <td>[% change | $Price %]</td>
310     </tr>
311     </tfoot>
312 </table>
313         };
314
315         my $receipt_old = q{[%PROCESS"accounts.inc"%]<table>[%IF(LibraryName)%]<tr><thcolspan="2"class="centerednames"><h3>[%LibraryName|html%]</h3></th></tr>[%END%]<tr><thcolspan="2"class="centerednames"><h2>[%Branches.GetName(payment.branchcode)|html%]</h2></th></tr><tr><thcolspan="2"class="centerednames"><h3>[%payment.date|$KohaDates%]</h3></tr><tr><td>TransactionID:</td><td>[%payment.accountlines_id%]</td></tr><tr><td>OperatorID:</td><td>[%payment.manager_id%]</td></tr><tr><td>Paymenttype:</td><td>[%payment.payment_type%]</td></tr><tr></tr><tr><thcolspan="2"class="centerednames"><h2><u>Feereceipt</u></h2></th></tr><tr></tr><tr><th>Descriptionofcharges</th><th>Amount</th></tr>[%FOREACHoffsetINoffsets%]<tr><td>[%PROCESSaccount_type_descriptionaccount=offset.debit%]</td><td>[%offset.amount*-1|$Price%]</td></tr>[%END%]<tfoot><trclass="highlight"><td>Total:</td><td>[%payment.amount*-1|$Price%]</td></tr><tr><td>Tendered:</td><td>[%collected|$Price%]</td></tr><tr><td>Change:</td><td>[%change|$Price%]</td></tr></tfoot></table>};
316
317         $sth = $dbh->prepare(q{
318             UPDATE letter SET content = ? WHERE code = 'RECEIPT' AND REPLACE(REPLACE(content, ' ', ''), '\n','') = ?
319         });
320         $sth->execute($receipt,$receipt_old);
321
322         # replace offsets variable with debit.offsets
323         $dbh->do("UPDATE letter SET content = REPLACE(content, ' offsets %]', ' payment.offsets %]') WHERE code = 'RECEIPT' ");
324         # replace collected variable with tendered
325         $dbh->do("UPDATE letter SET content = REPLACE(content, '[% collected', '[% tendered') WHERE code = 'RECEIPT' ");
326     },
327 };