=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;
# 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
});
# 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'},
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'},
branchcode => $data->{'branchcode'},
has_reserves => $has_reserves,
can_be_discharged => $can_be_discharged,
+ validated_discharges => $validated_discharges,
);
}