X-Git-Url: http://koha-dev.rot13.org:8081/gitweb/?a=blobdiff_plain;f=members%2Fprintinvoice.pl;h=1f8480ee347d3b95977ce1e348ae5597d24d2876;hb=9d6d641d1f8b77271800f43bc027b651f9aea52b;hp=5988325915823aedf37a1ac01af904b3983a2232;hpb=1d9245d7b21f1bd0b403940e12156ff364a8f6e8;p=srvgit diff --git a/members/printinvoice.pl b/members/printinvoice.pl index 5988325915..1f8480ee34 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. # @@ -22,82 +20,57 @@ 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::Accounts; - +use C4::Letters; use Koha::Account::Lines; -use Koha::Patrons; -use Koha::Patron::Categories; -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 => 'edit_borrowers', 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'); - -my $logged_in_user = Koha::Patrons->find( $loggedinuser ) or die "Not logged in"; -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 } ); - -if ( $patron->is_child ) { - 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->categorycode ) if $patron_categories->count == 1; -} - -#get account details -my $total = $patron->account->balance; -my $accountline = Koha::Account::Lines->find($accountlines_id)->unblessed; - -my $totalcredit; -if ( $total <= 0 ) { - $totalcredit = 1; -} - - -$accountline->{'amount'} += 0.00; -if ( $accountline->{'amount'} <= 0 ) { - $accountline->{'amountcredit'} = 1; - $accountline->{'amount'} *= -1.00; -} -$accountline->{'amountoutstanding'} += 0.00; -if ( $accountline->{'amountoutstanding'} <= 0 ) { - $accountline->{'amountoutstandingcredit'} = 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 + } +); -my %row = ( - 'date' => dt_from_string( $accountline->{'date'} ), - 'amountcredit' => $accountline->{'amountcredit'}, - 'amountoutstandingcredit' => $accountline->{'amountoutstandingcredit'}, - 'description' => $accountline->{'description'}, - 'amount' => sprintf( "%.2f", $accountline->{'amount'} ), - 'amountoutstanding' => - sprintf( "%.2f", $accountline->{'amountoutstanding'} ), - 'accountno' => $accountline->{'accountno'}, - accounttype => $accountline->{accounttype}, - 'note' => $accountline->{'note'}, +my $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 + } ); $template->param( - patron => $patron, - finesview => 1, - total => sprintf( "%.2f", $total ), - totalcredit => $totalcredit, - accounts => [$accountline], # FIXME There is always only 1 row! + slip => $letter->{content}, + plain => !$letter->{is_html}, + patron => $patron, ); output_html_with_http_headers $input, $cookie, $template->output;