# along with Koha; if not, see <http://www.gnu.org/licenses>.
use Modern::Perl;
+use Carp;
use C4::Auth qw(:DEFAULT get_session);
-use CGI;
+use CGI qw( -utf8 );
use C4::Context;
use C4::Output;
use C4::Log;
use C4::Debug;
use C4::Branch;
use C4::Members;
-use Koha::Borrower::Discharge;
+use Koha::Patron::Discharge;
use Koha::DateUtils;
my $input = new CGI;
+unless ( C4::Context->preference('useDischarge') ) {
+ print $input->redirect("/cgi-bin/koha/errors/404.pl");
+ exit;
+}
+
my $op = $input->param("op");
# Getting the template and auth
});
if ( $op eq 'request' ) {
- my $success = Koha::Borrower::Discharge::request({
+ my $success = Koha::Patron::Discharge::request({
borrowernumber => $loggedinuser,
});
}
}
elsif ( $op eq 'get' ) {
- my $pdf_path = Koha::Borrower::Discharge::generate_as_pdf({
- borrowernumber => $loggedinuser
- });
+ eval {
- print $input->header(
- -type => 'application/pdf',
- -charset => 'utf-8',
- -attachment => "discharge_$loggedinuser.pdf",
- );
- open my $fh, '<', $pdf_path;
- my @lines = <$fh>;
- close $fh;
- print @lines;
- exit;
+ # Getting member data
+ my $data = GetMember( borrowernumber => $loggedinuser );
+ my $pdf_path = Koha::Patron::Discharge::generate_as_pdf({
+ borrowernumber => $loggedinuser,
+ branchcode => $data->{'branchcode'},
+ });
+
+ binmode(STDOUT);
+ print $input->header(
+ -type => 'application/pdf',
+ -charset => 'utf-8',
+ -attachment => "discharge_$loggedinuser.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'} ] );
+ }
}
else {
- my $pending = Koha::Borrower::Discharge::count({
+ my $pending = Koha::Patron::Discharge::count({
borrowernumber => $loggedinuser,
pending => 1,
});
- my $available = Koha::Borrower::Discharge::count({
+ my $available = Koha::Patron::Discharge::count({
borrowernumber => $loggedinuser,
validated => 1,
});
$template->param(
- available => $available,
+ available => $available && Koha::Patron::Discharge::is_discharged({borrowernumber => $loggedinuser}),
pending => $pending,
);
}
$template->param( dischargeview => 1 );
-output_html_with_http_headers $input, $cookie, $template->output;
+output_html_with_http_headers $input, $cookie, $template->output, undef, { force_no_caching => 1 };