Bug 17600: Standardize our EXPORT_OK
[srvgit] / members / discharge.pl
index 97184fd..e0f4b2d 100755 (executable)
@@ -28,26 +28,24 @@ Allows librarian to edit and/or manage borrowers' discharges
 =cut
 
 use Modern::Perl;
-use Carp;
+use Carp qw( carp );
 
 use CGI qw( -utf8 );
-use C4::Auth;
-use C4::Output;
+use C4::Auth qw( get_template_and_user );
+use C4::Output qw( output_and_exit_if_error output_and_exit output_html_with_http_headers );
 use C4::Members;
 use C4::Reserves;
 use C4::Letters;
 use Koha::Patron::Discharge;
 use Koha::Patrons;
 
-use Koha::DateUtils;
 
-my $input = new CGI;
+my $input = CGI->new;
 
 my ( $template, $loggedinuser, $cookie, $flags ) = get_template_and_user({
     template_name   => 'members/discharge.tt',
     query           => $input,
     type            => 'intranet',
-    authnotrequired => 0,
     flagsrequired   => { 'borrowers' => 'edit_borrowers' },
 });
 
@@ -58,21 +56,14 @@ unless ( C4::Context->preference('useDischarge') ) {
    exit;
 }
 
-$borrowernumber = $input->param('borrowernumber');
-
+my $logged_in_user = Koha::Patrons->find( $loggedinuser );
 my $patron = Koha::Patrons->find( $borrowernumber );
-unless ( $patron ) {
-    print $input->redirect("/cgi-bin/koha/circ/circulation.pl?borrowernumber=$borrowernumber");
-    exit;
-}
+output_and_exit_if_error( $input, $cookie, $template, { module => 'members', logged_in_user => $logged_in_user, current_patron => $patron } );
 
 my $can_be_discharged = Koha::Patron::Discharge::can_be_discharged({
     borrowernumber => $borrowernumber
 });
 
-my $holds = $patron->holds;
-my $has_reserves = $holds->count;
-
 # Generating discharge if needed
 if ( $input->param('discharge') and $can_be_discharged ) {
     my $is_discharged = Koha::Patron::Discharge::is_discharged({
@@ -97,46 +88,25 @@ if ( $input->param('discharge') and $can_be_discharged ) {
         my @lines = <$fh>;
         close $fh;
         print @lines;
-        exit;
     };
     if ( $@ ) {
         carp $@;
         $template->param( messages => [ {type => 'error', code => 'unable_to_generate_pdf'} ] );
+    } else {
+        # no error, pdf is sent, so stop sending data to browser
+        exit;
     }
 }
 
 # Already generated discharges
-my $validated_discharges = Koha::Patron::Discharge::get_validated({
+my @validated_discharges = Koha::Patron::Discharge::get_validated({
     borrowernumber => $borrowernumber,
 });
 
-$template->param( picture => 1 ) if $patron->image;
-
 $template->param(
-    # FIXME The patron object should be passed to the template
-    borrowernumber    => $borrowernumber,
-    title             => $patron->title,
-    initials          => $patron->initials,
-    surname           => $patron->surname,
-    borrowernumber    => $borrowernumber,
-    firstname         => $patron->firstname,
-    cardnumber        => $patron->cardnumber,
-    categorycode      => $patron->categorycode,
-    category_type     => $patron->category->category_type,
-    categoryname      => $patron->category->description,
-    address           => $patron->address,
-    streetnumber      => $patron->streetnumber,
-    streettype        => $patron->streettype,
-    address2          => $patron->address2,
-    city              => $patron->city,
-    zipcode           => $patron->zipcode,
-    country           => $patron->country,
-    phone             => $patron->phone,
-    email             => $patron->email,
-    branchcode        => $patron->branchcode,
-    has_reserves      => $has_reserves,
+    patron => $patron,
     can_be_discharged => $can_be_discharged,
-    validated_discharges => $validated_discharges,
+    validated_discharges => \@validated_discharges,
 );
 
 $template->param( dischargeview => 1, );