X-Git-Url: http://koha-dev.rot13.org:8081/gitweb/?a=blobdiff_plain;f=members%2Fprintinvoice.pl;h=7d591c44d23093e0ba6cf44a648a157dcf15763a;hb=d7c1d52051a3cb5f6ae3be9abb0e9e7aa1f9ece5;hp=cb206edc2c950376524f1cbe51978fe336010310;hpb=19a977dc7b779173c4a3e96b6b06dc35db663601;p=koha-ffzg.git diff --git a/members/printinvoice.pl b/members/printinvoice.pl index cb206edc2c..7d591c44d2 100755 --- a/members/printinvoice.pl +++ b/members/printinvoice.pl @@ -1,9 +1,7 @@ #!/usr/bin/perl -#written 3rd May 2010 by kmkale@anantcorp.com adapted from boraccount.pl by chris@katipo.oc.nz -#script to print fee receipts - -# Copyright Koustubha Kale +# Copyright Koustubha Kale 2010 +# Copyright PTFS Europe 2020 # # This file is part of Koha. # @@ -20,124 +18,71 @@ # You should have received a copy of the GNU General Public License # along with Koha; if not, see . -use strict; -use warnings; +use Modern::Perl; -use C4::Auth; -use C4::Output; -use Koha::DateUtils; +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 CGI qw ( -utf8 ); -use C4::Members; -use C4::Branch; -use C4::Accounts; -use Koha::Patron::Images; - -use Koha::Patron::Categories; +use C4::Letters; +use Koha::Account::Lines; -my $input = new CGI; +my $input = CGI->new; my ( $template, $loggedinuser, $cookie ) = get_template_and_user( - { template_name => "members/printinvoice.tt", - query => $input, - type => "intranet", - authnotrequired => 0, - flagsrequired => { borrowers => 1, updatecharges => 'remaining_permissions' }, - debug => 1, + { + template_name => "members/printinvoice.tt", + query => $input, + type => "intranet", + flagsrequired => { + borrowers => 'edit_borrowers', + updatecharges => 'remaining_permissions' + } } ); -my $borrowernumber = $input->param('borrowernumber'); -my $action = $input->param('action') || ''; -my $accountlines_id = $input->param('accountlines_id'); - -#get borrower details -my $data = GetMember( 'borrowernumber' => $borrowernumber ); - -if ( $data->{'category_type'} eq 'C' ) { - my $patron_categories = Koha::Patron::Categories->search_limited({ category_type => 'A' }, {order_by => ['categorycode']}); - $template->param( 'CATCODE_MULTI' => 1) if $patron_categories->count > 1; - $template->param( 'catcode' => $patron_categories->next ) if $patron_categories->count == 1; -} - -#get account details -my ( $total, $accts, $numaccts ) = GetMemberAccountRecords($borrowernumber); -my $totalcredit; -if ( $total <= 0 ) { - $totalcredit = 1; -} - -my @accountrows; # this is for the tmpl-loop - -my $toggle; -for ( my $i = 0 ; $i < $numaccts ; $i++ ) { - next if ( $accts->[$i]{'accountlines_id'} ne $accountlines_id ); - - if ( $i % 2 ) { - $toggle = 0; - } else { - $toggle = 1; - } - - $accts->[$i]{'toggle'} = $toggle; - $accts->[$i]{'amount'} += 0.00; - - if ( $accts->[$i]{'amount'} <= 0 ) { - $accts->[$i]{'amountcredit'} = 1; +my $debit_id = $input->param('accountlines_id'); +my $debit = Koha::Account::Lines->find($debit_id); +my $patron = $debit->patron; + +my $logged_in_user = Koha::Patrons->find($loggedinuser) or die "Not logged in"; +output_and_exit_if_error( + $input, $cookie, + $template, + { + module => 'members', + logged_in_user => $logged_in_user, + current_patron => $patron } +); - $accts->[$i]{'amountoutstanding'} += 0.00; - if ( $accts->[$i]{'amountoutstanding'} <= 0 ) { - $accts->[$i]{'amountoutstandingcredit'} = 1; +my $letter = C4::Letters::GetPreparedLetter( + module => 'circulation', + letter_code => 'DEBIT_' . $debit->debit_type_code, + branchcode => C4::Context::mybranch, + message_transport_type => 'print', + lang => $patron->lang, + tables => { + debits => $debit_id, + borrowers => $patron->borrowernumber } +); - my %row = ( - 'date' => output_pref({ dt => dt_from_string( $accts->[$i]{'date'} ), dateonly => 1 }), - 'amountcredit' => $accts->[$i]{'amountcredit'}, - 'amountoutstandingcredit' => $accts->[$i]{'amountoutstandingcredit'}, - 'toggle' => $accts->[$i]{'toggle'}, - 'description' => $accts->[$i]{'description'}, - 'itemnumber' => $accts->[$i]{'itemnumber'}, - 'biblionumber' => $accts->[$i]{'biblionumber'}, - 'amount' => sprintf( "%.2f", $accts->[$i]{'amount'} ), - 'amountoutstanding' => sprintf( "%.2f", $accts->[$i]{'amountoutstanding'} ), - 'accountno' => $accts->[$i]{'accountno'}, - accounttype => $accts->[$i]{accounttype}, - ); - - if ( $accts->[$i]{'accounttype'} ne 'F' && $accts->[$i]{'accounttype'} ne 'FU' ) { - $row{'printtitle'} = 1; - $row{'title'} = $accts->[$i]{'title'}; +$letter //= C4::Letters::GetPreparedLetter( + module => 'circulation', + letter_code => 'ACCOUNT_DEBIT', + branchcode => C4::Context::mybranch, + message_transport_type => 'print', + lang => $patron->lang, + tables => { + debits => $debit_id, + borrowers => $patron->borrowernumber } - - push( @accountrows, \%row ); -} - -$template->param( adultborrower => 1 ) if ( $data->{'category_type'} eq 'A' ); - -my $patron_image = Koha::Patron::Images->find($data->{borrowernumber}); -$template->param( picture => 1 ) if $patron_image; +); $template->param( - finesview => 1, - firstname => $data->{'firstname'}, - surname => $data->{'surname'}, - borrowernumber => $borrowernumber, - 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'}, - total => sprintf( "%.2f", $total ), - totalcredit => $totalcredit, - is_child => ( $data->{'category_type'} eq 'C' ), - accounts => \@accountrows + slip => $letter->{content}, + plain => !$letter->{is_html}, + patron => $patron, ); output_html_with_http_headers $input, $cookie, $template->output;