X-Git-Url: http://koha-dev.rot13.org:8081/gitweb/?a=blobdiff_plain;f=opac%2Fopac-discharge.pl;h=991ebae5e07505af07f6eb17fb37d32cdb8ba228;hb=1c115fcff70271246c500d5b5f9290c47b715693;hp=605efb7b49ed22a0c5ecc2e78282fc7ede1df062;hpb=a07db3537d70aa642f1f2e2731eb8e0cf200e1f4;p=koha-ffzg.git diff --git a/opac/opac-discharge.pl b/opac/opac-discharge.pl index 605efb7b49..991ebae5e0 100755 --- a/opac/opac-discharge.pl +++ b/opac/opac-discharge.pl @@ -18,41 +18,51 @@ # along with Koha; if not, see . use Modern::Perl; -use Carp; +use Carp qw( carp ); -use C4::Auth qw(:DEFAULT get_session); +use C4::Auth qw( get_template_and_user ); use CGI qw( -utf8 ); use C4::Context; -use C4::Output; -use C4::Log; -use C4::Debug; -use C4::Branch; -use C4::Members; +use C4::Output qw( output_html_with_http_headers ); +use Koha::Patrons; use Koha::Patron::Discharge; -use Koha::DateUtils; -my $input = new CGI; +my $input = CGI->new; unless ( C4::Context->preference('useDischarge') ) { print $input->redirect("/cgi-bin/koha/errors/404.pl"); exit; } -my $op = $input->param("op"); +my $op = $input->param("op") // ''; # Getting the template and auth my ( $template, $loggedinuser, $cookie ) = get_template_and_user({ template_name => "opac-discharge.tt", query => $input, type => "opac", - debug => 1, }); +my $can_be_discharged = Koha::Patron::Discharge::can_be_discharged({ borrowernumber => $loggedinuser }); +if ($can_be_discharged == 0) { + $template->param( has_checkouts => 1 ); +} + +my $pending = Koha::Patron::Discharge::count({ + borrowernumber => $loggedinuser, + pending => 1, +}); +my $available = Koha::Patron::Discharge::is_discharged({borrowernumber => $loggedinuser}); + if ( $op eq 'request' ) { + if ($pending || $available) { + # Request already done + print $input->redirect("/cgi-bin/koha/opac-discharge.pl"); + exit; + } my $success = Koha::Patron::Discharge::request({ borrowernumber => $loggedinuser, }); - if ($success) { $template->param( success => 1 ); } @@ -61,13 +71,18 @@ if ( $op eq 'request' ) { } } elsif ( $op eq 'get' ) { + unless ($available) { + # No valid discharge to get + print $input->redirect("/cgi-bin/koha/opac-discharge.pl"); + exit; + } eval { # Getting member data - my $data = GetMember( borrowernumber => $loggedinuser ); + my $patron = Koha::Patrons->find( $loggedinuser ); my $pdf_path = Koha::Patron::Discharge::generate_as_pdf({ borrowernumber => $loggedinuser, - branchcode => $data->{'branchcode'}, + branchcode => $patron->branchcode, }); binmode(STDOUT); @@ -80,24 +95,18 @@ elsif ( $op eq 'get' ) { 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; } } else { - my $pending = Koha::Patron::Discharge::count({ - borrowernumber => $loggedinuser, - pending => 1, - }); - my $available = Koha::Patron::Discharge::count({ - borrowernumber => $loggedinuser, - validated => 1, - }); $template->param( - available => $available && Koha::Patron::Discharge::is_discharged({borrowernumber => $loggedinuser}), + available => $available, pending => $pending, ); }