Bug 15548: Move new patron related code to Patron*
[koha.git] / members / discharge.pl
index 54a9f46..5684a37 100755 (executable)
@@ -28,14 +28,15 @@ Allows librarian to edit and/or manage borrowers' discharges
 =cut
 
 use Modern::Perl;
+use Carp;
 
-use CGI;
+use CGI qw( -utf8 );
 use C4::Auth;
 use C4::Output;
 use C4::Members;
 use C4::Reserves;
 use C4::Letters;
-use Koha::Borrower::Discharge;
+use Koha::Patron::Discharge;
 
 use Koha::DateUtils;
 
@@ -56,7 +57,7 @@ if ( $input->param('borrowernumber') ) {
     # Getting member data
     $data = GetMember( borrowernumber => $borrowernumber );
 
-    my $can_be_discharged = Koha::Borrower::Discharge::can_be_discharged({
+    my $can_be_discharged = Koha::Patron::Discharge::can_be_discharged({
         borrowernumber => $borrowernumber
     });
 
@@ -66,30 +67,44 @@ if ( $input->param('borrowernumber') ) {
 
     # Generating discharge if needed
     if ( $input->param('discharge') and $can_be_discharged ) {
-        my $is_discharged = Koha::Borrower::Discharge::count({
+        my $is_discharged = Koha::Patron::Discharge::is_discharged({
             borrowernumber => $borrowernumber,
-            validated      => 1,
         });
         unless ($is_discharged) {
-            Koha::Borrower::Discharge::discharge({
+            Koha::Patron::Discharge::discharge({
                 borrowernumber => $borrowernumber
             });
         }
-        my $pdf_path = Koha::Borrower::Discharge::generate_as_pdf(
-            { borrowernumber => $borrowernumber, } );
-
-        print $input->header(
-            -type       => 'application/pdf',
-            -charset    => 'utf-8',
-            -attachment => "discharge_$borrowernumber.pdf",
-        );
-        open my $fh, '<', $pdf_path;
-        my @lines = <$fh>;
-        close $fh;
-        print @lines;
-        exit;
+        eval {
+            my $pdf_path = Koha::Patron::Discharge::generate_as_pdf(
+                { borrowernumber => $borrowernumber, branchcode => $data->{'branchcode'} } );
+
+            binmode(STDOUT);
+            print $input->header(
+                -type       => 'application/pdf',
+                -charset    => 'utf-8',
+                -attachment => "discharge_$borrowernumber.pdf",
+            );
+            open my $fh, '<', $pdf_path;
+            my @lines = <$fh>;
+            close $fh;
+            print @lines;
+            exit;
+        };
+        if ( $@ ) {
+            carp $@;
+            $template->param( messages => [ {type => 'error', code => 'unable_to_generate_pdf'} ] );
+        }
     }
 
+    # Already generated discharges
+    my $validated_discharges = Koha::Patron::Discharge::get_validated({
+        borrowernumber => $borrowernumber,
+    });
+
+    my ($picture, $dberror) = GetPatronImage($borrowernumber);
+    $template->param( picture => 1 ) if $picture;
+
     $template->param(
         borrowernumber    => $borrowernumber,
         biblionumber      => $data->{'biblionumber'},
@@ -103,6 +118,8 @@ if ( $input->param('borrowernumber') ) {
         category_type     => $data->{'category_type'},
         categoryname      => $data->{'description'},
         address           => $data->{'address'},
+        streetnumber      => $data->{streetnumber},
+        streettype        => $data->{streettype},
         address2          => $data->{'address2'},
         city              => $data->{'city'},
         zipcode           => $data->{'zipcode'},
@@ -112,6 +129,7 @@ if ( $input->param('borrowernumber') ) {
         branchcode        => $data->{'branchcode'},
         has_reserves      => $has_reserves,
         can_be_discharged => $can_be_discharged,
+        validated_discharges => $validated_discharges,
     );
 }