Bug 18789: Use Koha::Patron->is_child where needed
[koha.git] / members / printfeercpt.pl
index 8ffc49f..da02121 100755 (executable)
@@ -1,7 +1,7 @@
 #!/usr/bin/perl
 
 
-#writen 3rd May 2010 by kmkale@anantcorp.com adapted from boraccount.pl by chris@katipo.oc.nz
+#written 3rd May 2010 by kmkale@anantcorp.com adapted from boraccount.pl by chris@katipo.oc.nz
 #script to print fee receipts
 
 
 # You should have received a copy of the GNU General Public License
 # along with Koha; if not, see <http://www.gnu.org/licenses>.
 
-use strict;
-use warnings;
+use Modern::Perl;
 
 use C4::Auth;
 use C4::Output;
-use C4::Dates qw/format_date/;
 use CGI qw ( -utf8 );
 use C4::Members;
-use C4::Branch;
 use C4::Accounts;
+use Koha::DateUtils;
+use Koha::Patrons;
+use Koha::Patron::Categories;
 
 my $input=new CGI;
 
@@ -41,7 +41,7 @@ my ($template, $loggedinuser, $cookie)
                             query => $input,
                             type => "intranet",
                             authnotrequired => 0,
-                            flagsrequired => {borrowers => 1, updatecharges => 'remaining_permissions'},
+                            flagsrequired => {borrowers => 'edit_borrowers', updatecharges => 'remaining_permissions'},
                             debug => 1,
                             });
 
@@ -49,18 +49,20 @@ my $borrowernumber=$input->param('borrowernumber');
 my $action = $input->param('action') || '';
 my $accountlines_id = $input->param('accountlines_id');
 
-#get borrower details
-my $data=GetMember('borrowernumber' => $borrowernumber);
+my $logged_in_user = Koha::Patrons->find( $loggedinuser ) or die "Not logged in";
+my $patron         = Koha::Patrons->find( $borrowernumber );
+output_and_exit_if_error( $input, $cookie, $template, { module => 'members', logged_in_user => $logged_in_user, current_patron => $patron } );
+
+my $category = $patron->category;
 
 if ( $action eq 'print' ) {
 #  ReversePayment( $borrowernumber, $input->param('accountno') );
 }
 
-if ( $data->{'category_type'} eq 'C') {
-   my  ( $catcodes, $labels ) =  GetborCatFromCatType( 'A', 'WHERE category_type = ?' );
-   my $cnt = scalar(@$catcodes);
-   $template->param( 'CATCODE_MULTI' => 1) if $cnt > 1;
-   $template->param( 'catcode' =>    $catcodes->[0])  if $cnt == 1;
+if ( $category->category_type eq 'C') {
+    my $patron_categories = Koha::Patron::Categories->search_limited({ category_type => 'A' }, {order_by => ['categorycode']});
+    $template->param( 'CATCODE_MULTI' => 1) if $patron_categories->count > 1;
+    $template->param( 'catcode' => $patron_categories->next->categorycde )  if $patron_categories->count == 1;
 }
 
 #get account details
@@ -89,7 +91,8 @@ for (my $i=0;$i<$numaccts;$i++){
     if($accts->[$i]{'amountoutstanding'} <= 0){
         $accts->[$i]{'amountoutstandingcredit'} = 1;
     }
-    my %row = ( 'date'              => format_date($accts->[$i]{'date'}),
+
+    my %row = ( 'date'         => dt_from_string( $accts->[$i]{'date'} ),
                 'amountcredit' => $accts->[$i]{'amountcredit'},
                 'amountoutstandingcredit' => $accts->[$i]{'amountoutstandingcredit'},
                 'toggle' => $accts->[$i]{'toggle'},
@@ -100,6 +103,7 @@ for (my $i=0;$i<$numaccts;$i++){
                 'amountoutstanding' => sprintf("%.2f",$accts->[$i]{'amountoutstanding'}),
                 'accountno' => $accts->[$i]{'accountno'},
                 accounttype => $accts->[$i]{accounttype},
+                'note' => $accts->[$i]{'note'},
                 );
 
     if ($accts->[$i]{'accounttype'} ne 'F' && $accts->[$i]{'accounttype'} ne 'FU'){
@@ -110,33 +114,13 @@ for (my $i=0;$i<$numaccts;$i++){
     push(@accountrows, \%row);
 }
 
-$template->param( adultborrower => 1 ) if ( $data->{'category_type'} eq 'A' );
-
-my ($picture, $dberror) = GetPatronImage($data->{'borrowernumber'});
-$template->param( picture => 1 ) if $picture;
+$template->param( adultborrower => 1 ) if ( $category->category_type eq 'A' || $category->category_type eq 'I' );
 
 $template->param(
+    patron               => $patron,
     finesview           => 1,
-    firstname           => $data->{'firstname'},
-    surname             => $data->{'surname'},
-    borrowernumber      => $borrowernumber,
-    cardnumber          => $data->{'cardnumber'},
-    categorycode        => $data->{'categorycode'},
-    category_type       => $data->{'category_type'},
- #   category_description => $data->{'description'},
-    categoryname                => $data->{'description'},
-    address             => $data->{'address'},
-    address2            => $data->{'address2'},
-    city                => $data->{'city'},
-    zipcode             => $data->{'zipcode'},
-    country             => $data->{'country'},
-    phone               => $data->{'phone'},
-    email               => $data->{'email'},
-    branchcode          => $data->{'branchcode'},
-       branchname                      => GetBranchName($data->{'branchcode'}),
     total               => sprintf("%.2f",$total),
     totalcredit         => $totalcredit,
-       is_child        => ($data->{'category_type'} eq 'C'),
     accounts            => \@accountrows );
 
 output_html_with_http_headers $input, $cookie, $template->output;