Bug 17100: Do not display payments if patron has nothing to pay
authorMarc Véron <veron@veron.ch>
Wed, 10 Aug 2016 09:42:28 +0000 (11:42 +0200)
committerKyle M Hall <kyle@bywatersolutions.com>
Thu, 18 Aug 2016 16:14:28 +0000 (16:14 +0000)
This alternative patch moves logic and formatting to the template file.

To test:
* without patch
  1/ find a patron with no lines in accountlines table : print summary shows no "account fines and payments" => OK
  2/ find a patron with some lines in accountlines table and the total amount > 0 : print summary shows a table "account fines and payments" with fines to recover => OK
  3/ find a patron with some lines in accountlines table but the total amount = 0 : print summary shows a table "account fines and payments" with nothing in it => NOK

* with the patch, same cases as before :
  1/ same as without patch
  2/ same as without patch
  3/ print summary does not show "account fines and payments"

- Additionally, verify that formatting follows syspref 'CurrencyFormat'
- Verify that amount column is right-aligned

Signed-off-by: Owen Leonard <oleonard@myacpl.org>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
koha-tmpl/intranet-tmpl/prog/en/modules/members/moremember-print.tt
members/summary-print.pl

index f087760..93b59d4 100644 (file)
@@ -1,6 +1,7 @@
 [% USE Koha %]
 [% USE Branches %]
 [% USE KohaDates %]
+[% USE Price %]
 [% INCLUDE 'doc-head-open.inc' %]
     <title>Summary for [% firstname %] [% surname %] ([% cardnumber %])</title>
     [% INCLUDE 'doc-head-close.inc' %]
@@ -93,8 +94,7 @@
             [% END %]
         </table>
     [% END %]
-
-    [% IF ( accounts && ( totaldue != '0.00' ) ) %]
+    [% IF accounts && ( totaldue < 0 || totaldue > 0 ) %]
         <table>
             <caption>Account fines and payments</caption>
             <tr>
             </tr>
 
             [% FOREACH account IN accounts %]
-                [% NEXT IF account.amountoutstanding == '0.00' %]
-                <tr>
-                    <td>
-                        [% IF ( account.itemnumber ) %]<a href="/cgi-bin/koha/catalogue/moredetail.pl?biblionumber=[% account.biblionumber %]&amp;itemnumber=[% account.itemnumber %]">[% END %]
-                        [% account.description %]&nbsp;[% IF ( account.printtitle ) %] [% account.title |html %][% END %]
-                        [% IF ( account.itemnumber ) %]</a>[% END %]
-                    </td>
-                    <td>[% account.date | $KohaDates %]</td>
-                    <td>[% account.amount %]</td>
-                    <td>[% account.amountoutstanding %]</td>
-                </tr>
+                [% IF ( account.amountoutstanding < 0 ) || ( account.amountoutstanding > 0 ) %]
+                    <tr>
+                        <td>
+                            [% IF ( account.itemnumber ) %]<a href="/cgi-bin/koha/catalogue/moredetail.pl?biblionumber=[% account.biblionumber %]&amp;itemnumber=[% account.itemnumber %]">[% END %]
+                            [% account.description %]&nbsp;[% IF ( account.printtitle ) %] [% account.title |html %][% END %]
+                            [% IF ( account.itemnumber ) %]</a>[% END %]
+                        </td>
+                        <td>[% account.date | $KohaDates %]</td>
+                        <td style="text-align:right;">[% account.amount | $Price %]</td>
+                        <td style="text-align:right;">[% account.amountoutstanding | $Price %]</td>
+                    </tr>
+                [% END %]
             [% END %]
 
             <tfoot>
                 <tr>
                     <td colspan="3">Total due</td>
-                    <td colspan="2">[% totaldue %]</td>
+                    <td colspan="2" style="text-align:right;">[% totaldue | $Price %]</td>
                 </tr>
             </tfoot>
         </table>
index f1933f5..82b1ca2 100755 (executable)
@@ -46,11 +46,6 @@ my $data = GetMember( 'borrowernumber' => $borrowernumber );
 
 my ( $total, $accts, $numaccts ) = GetMemberAccountRecords($borrowernumber);
 foreach my $accountline (@$accts) {
-    $accountline->{amount} = sprintf( '%.2f', $accountline->{amount} )
-        if ( $accountline->{amount} ) ;
-    $accountline->{amountoutstanding} = sprintf( '%.2f', $accountline->{amountoutstanding} )
-        if ( $accountline->{amountoutstanding} );
-
     if (   $accountline->{accounttype} ne 'F'
         && $accountline->{accounttype} ne 'FU' )
     {
@@ -59,8 +54,6 @@ foreach my $accountline (@$accts) {
 }
 
 our $totalprice = 0;
-my $total_format = '';
-$total_format = sprintf( "%.2f", $total ) if ($total);
 
 my $holds_rs = Koha::Holds->search(
     { borrowernumber => $borrowernumber },
@@ -72,7 +65,7 @@ $template->param(
     borrowernumber => $borrowernumber,
 
     accounts => $accts,
-    totaldue => $total_format,
+    totaldue => $total,
 
     issues     => build_issue_data( GetPendingIssues($borrowernumber) ),
     totalprice => $totalprice,