f0f860a43d
See Bug 34332. The same error it corrected is also present in the update process. This patch simply removes an extra parenthesis in the tt instruction. Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de> Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
327 lines
14 KiB
Perl
Executable file
327 lines
14 KiB
Perl
Executable file
use Modern::Perl;
|
|
|
|
return {
|
|
bug_number => "24381",
|
|
description => "Update accounts notices",
|
|
up => sub {
|
|
my ($args) = @_;
|
|
my ($dbh, $out) = @$args{qw(dbh out)};
|
|
|
|
# ACCOUNT_CREDIT
|
|
my $account_credit = q{
|
|
[%- USE AuthorisedValues -%]
|
|
[%- USE KohaDates -%]
|
|
[%- USE Price -%]
|
|
[%- PROCESS "accounts.inc" -%]
|
|
<table>
|
|
[% IF ( LibraryName ) %]
|
|
<tr>
|
|
<th colspan="2" class="centerednames">
|
|
<h3>[% LibraryName | html %]</h3>
|
|
</th>
|
|
</tr>
|
|
[% END %]
|
|
[% IF credit.library %]
|
|
<tr>
|
|
<th colspan="2" class="centerednames">
|
|
<h2>[% credit.library.branchname | html %]</h2>
|
|
</th>
|
|
</tr>
|
|
[% END %]
|
|
<tr>
|
|
<th colspan="2" class="centerednames">
|
|
<h3>[% today | $KohaDates %]</h3>
|
|
</th>
|
|
</tr>
|
|
<tr>
|
|
<td>Transaction ID: </td>
|
|
<td>[% credit.accountlines_id %]</td>
|
|
</tr>
|
|
<tr>
|
|
<td>Operator ID: </td>
|
|
<td>[% credit.manager_id %]</td>
|
|
</tr>
|
|
[% IF credit.payment_type %]
|
|
<tr>
|
|
<td>Payment type: </td>
|
|
<td>[% AuthorisedValues.GetByCode('PAYMENT_TYPE', credit.payment_type) %]</td>
|
|
</tr>
|
|
[% END %]
|
|
<tr>
|
|
<th colspan="2" class="centerednames">
|
|
<h2><u>[%- PROCESS credit_type_description credit_type = credit.credit_type -%] receipt</u></h2>
|
|
</th>
|
|
</tr>
|
|
[% IF ( credit.credit_type_code == 'PAYMENT' ) %]
|
|
<tr>
|
|
<th colspan="2">
|
|
Received with thanks from [% credit.patron.firstname | html %] [% credit.patron.surname | html %] <br />
|
|
Card number: [% credit.patron.cardnumber | html %]<br />
|
|
</th>
|
|
</tr>
|
|
[% ELSIF ( credit.credit_type_code == 'CREDIT' ) %]
|
|
<tr>
|
|
<th colspan="2">
|
|
Credit added to account for [% credit.patron.firstname | html %] [% credit.patron.surname | html %] <br />
|
|
Card number: [% credit.patron.cardnumber | html %]<br />
|
|
</th>
|
|
</tr>
|
|
[% ELSIF ( credit.credit_type_code == 'WRITEOFF' ) %]
|
|
<tr>
|
|
<th colspan="2">
|
|
Writeoff added to account for [% credit.patron.firstname | html %] [% credit.patron.surname | html %] <br />
|
|
Card number: [% credit.patron.cardnumber | html %]<br />
|
|
</th>
|
|
</tr>
|
|
[% END %]
|
|
[% IF credit.amountoutstanding + 0 != 0 %]
|
|
<tr>
|
|
<th>Description of credit</th>
|
|
<th>Amount</th>
|
|
</tr>
|
|
<tr>
|
|
<td>[%- PROCESS credit_type_description credit_type = credit.credit_type -%]</td>
|
|
<td>[% credit.amount * -1 | $Price %]</td>
|
|
</tr>
|
|
<tr>
|
|
<th style="text-align:right;">Total available:</th>
|
|
<td>[% credit.amountoutstanding * -1 | $Price %]</td>
|
|
</tr>
|
|
[% END %]
|
|
[% IF credit.amount != credit.amountoutstanding %]
|
|
<tr>
|
|
<th>Description of charges</th>
|
|
<th>Amount</th>
|
|
</tr>
|
|
[% FOREACH offset IN credit.credit_offsets %]
|
|
<tr>
|
|
<td>[% PROCESS account_type_description account=offset.debit %][% IF ( offset.debit.itemnumber ) %] - [% offset.debit.item.biblio.title %][% END %]</td>
|
|
<td>[% offset.amount * -1 | $Price %]</td>
|
|
</tr>
|
|
[% END %]
|
|
[% END %]
|
|
<tfoot>
|
|
<tr class="highlight">
|
|
<td>Total:</td>
|
|
<td>[% credit.amount * -1 | $Price %]</td>
|
|
</tr>
|
|
[% IF change.defined %]
|
|
<tr>
|
|
<td>Change given: </td>
|
|
<td>[% change | $Price %]</td>
|
|
</tr>
|
|
[% END %]
|
|
<tr>
|
|
<td colspan="2"></td>
|
|
</tr>
|
|
<tr>
|
|
<td>Account balance as on date:</td>
|
|
<td>[% credit.patron.account.balance * -1 | $Price %]</td>
|
|
</tr>
|
|
</tfoot>
|
|
</table>
|
|
};
|
|
|
|
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>};
|
|
|
|
my $sth = $dbh->prepare(q{
|
|
UPDATE letter SET content = ? WHERE code = 'ACCOUNT_CREDIT' AND REPLACE(REPLACE(content, ' ', ''), '\n','') = ?
|
|
});
|
|
$sth->execute( $account_credit, $account_credit_old );
|
|
|
|
# replace patron variable with credit.patron
|
|
$dbh->do("UPDATE letter SET content = REPLACE(content, '[% patron', '[% credit.patron') WHERE code = 'ACCOUNT_CREDIT' ");
|
|
# replace library variable with credit.library.branchname
|
|
$dbh->do("UPDATE letter SET content = REPLACE(content, '[% library', '[% credit.library.branchname') WHERE code = 'ACCOUNT_CREDIT' ");
|
|
# replace offsets variable with credit.offsets
|
|
$dbh->do("UPDATE letter SET content = REPLACE(content, ' offsets %]', ' credit.offsets %]') WHERE code = 'ACCOUNT_CREDIT' ");
|
|
# replace change_given variable with change
|
|
$dbh->do("UPDATE letter SET content = REPLACE(content, '[% change_given', '[% change') WHERE code = 'ACCOUNT_CREDIT' ");
|
|
|
|
# ACCOUNT_DEBIT
|
|
my $account_debit = q{
|
|
[% PROCESS "accounts.inc" %]
|
|
[%- USE Price -%]
|
|
[%- USE KohaDates -%]
|
|
<table>
|
|
[% IF ( LibraryName ) %]
|
|
<tr>
|
|
<th colspan="3" class="centerednames">
|
|
<h3>[% LibraryName | html %]</h3>
|
|
</th>
|
|
</tr>
|
|
[% END %]
|
|
[% IF debit.library %]
|
|
<tr>
|
|
<th colspan="3" class="centerednames">
|
|
<h2>[% debit.library.branchname | html %]</h2>
|
|
</th>
|
|
</tr>
|
|
[% END %]
|
|
<tr>
|
|
<td colspan="2" style="text-align:right;">Fee ID: </td>
|
|
<td>[% debit.accountlines_id %]</td>
|
|
</tr>
|
|
[% IF credit.manager_id %]
|
|
<tr>
|
|
<td colspan="2" style="text-align:right;">Operator ID: </td>
|
|
<td>[% credit.manager_id %]</td>
|
|
</tr>
|
|
[% END %]
|
|
<tr>
|
|
<th colspan="3" class="centerednames">
|
|
<h2><u>Invoice</u></h2>
|
|
</th>
|
|
</tr>
|
|
<tr>
|
|
<th colspan="3" >
|
|
Bill to: [% debit.patron.firstname | html %] [% debit.patron.surname | html %] <br />
|
|
Card number: [% debit.patron.cardnumber | html %]<br />
|
|
</th>
|
|
</tr>
|
|
[% IF debit.amountoutstanding != 0 %]
|
|
<tr>
|
|
<th>Date</th>
|
|
<th>Description of charges</th>
|
|
<th>Amount</th>
|
|
</tr>
|
|
<tr>
|
|
<td>[% debit.date | $KohaDates %]</td>
|
|
<td>[% PROCESS account_type_description account=debit %]</td>
|
|
<td>[% debit.amount | $Price %]</td>
|
|
</tr>
|
|
<tr>
|
|
<td colspan="2" style="text-align:right;">Total owed:</td>
|
|
<td>[% debit.amount | $Price %]</td>
|
|
</tr>
|
|
[% END %]
|
|
[% IF debit.amount != debit.amountoutstanding %]
|
|
<tr>
|
|
<th>Date</th>
|
|
<th>Description of payments</th>
|
|
<th>Amount</th>
|
|
</tr>
|
|
[% FOREACH offset IN debit.debit_offsets %]
|
|
<tr>
|
|
<td>[% offset.credit.date | $KohaDates %]</td>
|
|
<td>[% PROCESS account_type_description account=offset.credit %]</td>
|
|
<td>[% offset.amount * -1 | $Price %]</td>
|
|
</tr>
|
|
[% END %]
|
|
<tr class="highlight">
|
|
<td colspan="2" style="text-align:right;">Total paid:</td>
|
|
<td>[% debit.amount - debit.amountoutstanding | $Price %]</td>
|
|
</tr>
|
|
[% END %]
|
|
</tr>
|
|
<td colspan="3"></td>
|
|
<tr>
|
|
<tfoot>
|
|
<tr>
|
|
<th colspan="2" style="text-align:right;">Total outstanding:</th>
|
|
<td>[% debit.amountoutstanding | $Price %]</td>
|
|
</tr>
|
|
</tfoot>
|
|
</table>
|
|
};
|
|
|
|
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>};
|
|
|
|
$sth = $dbh->prepare(q{
|
|
UPDATE letter SET content = ? WHERE code = 'ACCOUNT_DEBIT' AND REPLACE(REPLACE(content, ' ', ''), '\n','') = ?
|
|
});
|
|
$sth->execute($account_debit, $account_debit_old);
|
|
|
|
# replace patron variable with debit.patron
|
|
$dbh->do("UPDATE letter SET content = REPLACE(content, '[% patron', '[% debit.patron') WHERE code = 'ACCOUNT_DEBIT' ");
|
|
# replace library variable with debit.library.branchname
|
|
$dbh->do("UPDATE letter SET content = REPLACE(content, '[% library', '[% debit.library.branchname') WHERE code = 'ACCOUNT_DEBIT' ");
|
|
# replace offsets variable with debit.offsets
|
|
$dbh->do("UPDATE letter SET content = REPLACE(content, ' offsets %]', ' debit.offsets %]') WHERE code = 'ACCOUNT_DEBIT' ");
|
|
# replace total variable with debit.patron.account.balance
|
|
$dbh->do("UPDATE letter SET content = REPLACE(content, '[% total ', '[% debit.patron.account.balance ') WHERE code = 'ACCOUNT_DEBIT' ");
|
|
# replace totalcredit variable with debit.patron.account.balance <= 0
|
|
$dbh->do("UPDATE letter SET content = REPLACE(content, 'totalcredit', 'debit.patron.account.balance <= 0') WHERE code = 'ACCOUNT_DEBIT' ");
|
|
|
|
# RECEIPT
|
|
my $receipt = q{
|
|
[% PROCESS "accounts.inc" %]
|
|
[%- USE KohaDates -%]
|
|
[%- USE Price -%]
|
|
<table>
|
|
[% IF ( LibraryName ) %]
|
|
<tr>
|
|
<th colspan="2" class="centerednames">
|
|
<h3>[% LibraryName | html %]</h3>
|
|
</th>
|
|
</tr>
|
|
[% END %]
|
|
[% IF credit.library %]
|
|
<tr>
|
|
<th colspan="2" class="centerednames">
|
|
<h2>[% payment.library.branchname | html %]</h2>
|
|
</th>
|
|
</tr>
|
|
[% END %]
|
|
<tr>
|
|
<th colspan="2" class="centerednames">
|
|
<h3>[% payment.date | $KohaDates %]</h3>
|
|
</th>
|
|
</tr>
|
|
<tr>
|
|
<td>Transaction ID: </td>
|
|
<td>[% payment.accountlines_id %]</td>
|
|
</tr>
|
|
<tr>
|
|
<td>Operator ID: </td>
|
|
<td>[% payment.manager_id %]</td>
|
|
</tr>
|
|
<tr>
|
|
<td>Payment type: </td>
|
|
<td>[% payment.payment_type %]</td>
|
|
</tr>
|
|
<tr>
|
|
<th colspan="2" class="centerednames">
|
|
<h2><u>Payment receipt</u></h2>
|
|
</th>
|
|
</tr>
|
|
<tr>
|
|
<th>Description of charges</th>
|
|
<th>Amount</th>
|
|
</tr>
|
|
[% FOREACH offset IN payment.credit_offsets %]
|
|
<tr>
|
|
<td>[% PROCESS account_type_description account=offset.debit %]</td>
|
|
<td>[% offset.amount * -1 | $Price %]</td>
|
|
</tr>
|
|
[% END %]
|
|
<tfoot>
|
|
<tr class="highlight">
|
|
<td>Total:</td>
|
|
<td>[% payment.amount * -1 | $Price %]</td>
|
|
</tr>
|
|
<tr>
|
|
<td>Tendered: </td>
|
|
<td>[% tendered | $Price %]</td>
|
|
</tr>
|
|
<tr>
|
|
<td>Change given:</td>
|
|
<td>[% change | $Price %]</td>
|
|
</tr>
|
|
</tfoot>
|
|
</table>
|
|
};
|
|
|
|
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>};
|
|
|
|
$sth = $dbh->prepare(q{
|
|
UPDATE letter SET content = ? WHERE code = 'RECEIPT' AND REPLACE(REPLACE(content, ' ', ''), '\n','') = ?
|
|
});
|
|
$sth->execute($receipt,$receipt_old);
|
|
|
|
# replace offsets variable with debit.offsets
|
|
$dbh->do("UPDATE letter SET content = REPLACE(content, ' offsets %]', ' payment.offsets %]') WHERE code = 'RECEIPT' ");
|
|
# replace collected variable with tendered
|
|
$dbh->do("UPDATE letter SET content = REPLACE(content, '[% collected', '[% tendered') WHERE code = 'RECEIPT' ");
|
|
},
|
|
};
|