X-Git-Url: http://koha-dev.rot13.org:8081/gitweb/?a=blobdiff_plain;f=members%2Fdischarge.pl;h=e0f4b2d8cc2b6b77a4b6b3996844a165eda49ea2;hb=c66589555a270b1be5c51dfa9faae77b0a26c60e;hp=d1a021dc720cc809c7f7b3624adce157401be21c;hpb=8c3fb9c3ae4729c67a057d5531eb7ae8eb9396c0;p=koha-ffzg.git diff --git a/members/discharge.pl b/members/discharge.pl index d1a021dc72..e0f4b2d8cc 100755 --- a/members/discharge.pl +++ b/members/discharge.pl @@ -28,106 +28,86 @@ 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::Borrower::Discharge; +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' => '*' }, + flagsrequired => { 'borrowers' => 'edit_borrowers' }, }); -my $borrowernumber; -my $data; -if ( $input->param('borrowernumber') ) { - $borrowernumber = $input->param('borrowernumber'); +my $borrowernumber = $input->param('borrowernumber'); - # Getting member data - $data = GetMember( borrowernumber => $borrowernumber ); +unless ( C4::Context->preference('useDischarge') ) { + print $input->redirect("/cgi-bin/koha/circ/circulation.pl?borrowernumber=$borrowernumber&nopermission=1"); + exit; +} - my $can_be_discharged = Koha::Borrower::Discharge::can_be_discharged({ - borrowernumber => $borrowernumber - }); +my $logged_in_user = Koha::Patrons->find( $loggedinuser ); +my $patron = Koha::Patrons->find( $borrowernumber ); +output_and_exit_if_error( $input, $cookie, $template, { module => 'members', logged_in_user => $logged_in_user, current_patron => $patron } ); - # Getting reserves - my @reserves = GetReservesFromBorrowernumber($borrowernumber); - my $has_reserves = scalar(@reserves); +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({ - borrowernumber => $borrowernumber, - validated => 1, +# Generating discharge if needed +if ( $input->param('discharge') and $can_be_discharged ) { + my $is_discharged = Koha::Patron::Discharge::is_discharged({ + borrowernumber => $borrowernumber, + }); + unless ($is_discharged) { + Koha::Patron::Discharge::discharge({ + borrowernumber => $borrowernumber }); - unless ($is_discharged) { - Koha::Borrower::Discharge::discharge({ - borrowernumber => $borrowernumber - }); - } - eval { - my $pdf_path = Koha::Borrower::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'} ] ); - } } + eval { + my $pdf_path = Koha::Patron::Discharge::generate_as_pdf( + { borrowernumber => $borrowernumber, branchcode => $patron->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; + }; + 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::Borrower::Discharge::get_validated({ - borrowernumber => $borrowernumber, - }); +# Already generated discharges +my @validated_discharges = Koha::Patron::Discharge::get_validated({ + borrowernumber => $borrowernumber, +}); - $template->param( - borrowernumber => $borrowernumber, - biblionumber => $data->{'biblionumber'}, - title => $data->{'title'}, - initials => $data->{'initials'}, - surname => $data->{'surname'}, - borrowernumber => $borrowernumber, - firstname => $data->{'firstname'}, - cardnumber => $data->{'cardnumber'}, - categorycode => $data->{'categorycode'}, - category_type => $data->{'category_type'}, - categoryname => $data->{'description'}, - address => $data->{'address'}, - address2 => $data->{'address2'}, - city => $data->{'city'}, - zipcode => $data->{'zipcode'}, - country => $data->{'country'}, - phone => $data->{'phone'}, - email => $data->{'email'}, - branchcode => $data->{'branchcode'}, - has_reserves => $has_reserves, - can_be_discharged => $can_be_discharged, - validated_discharges => $validated_discharges, - ); -} +$template->param( + patron => $patron, + can_be_discharged => $can_be_discharged, + validated_discharges => \@validated_discharges, +); $template->param( dischargeview => 1, );