@ -1,7 +1,11 @@
#!/usr/bin/perl
# Copyright Koustubha Kale 2010
# Copyright PTFS Europe 2020
#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
#
# This file is part of Koha.
#
@ -23,47 +27,73 @@ use Modern::Perl;
use C4::Auth ;
use C4::Output ;
use CGI qw ( - utf8 ) ;
use C4::Members ;
use C4::Accounts ;
use C4::Letters ;
use Koha::Account::Lines ;
use Koha::DateUtils ;
use Koha::Patrons ;
use Koha::Patron::Categories ;
my $ input = CGI - > new ;
my ( $ template , $ loggedinuser , $ cookie ) = get_template_and_user (
{
template_name = > "members/printfeercpt.tt" ,
query = > $ input ,
type = > "intranet" ,
flagsrequired = > {
borrowers = > 'edit_borrowers' ,
updatecharges = > 'remaining_permissions'
}
}
) ;
my $ input = CGI - > new ;
my $ credit_id = $ input - > param ( 'accountlines_id' ) ;
my $ credit = Koha::Account::Lines - > find ( $ credit_id ) ;
my $ patron = $ credit - > 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 $ letter = C4::Letters:: getletter ( 'circulation' , 'ACCOUNT_CREDIT' ,
C4::Context:: mybranch , 'print' , $ patron - > lang ) ;
my ( $ template , $ loggedinuser , $ cookie )
= get_template_and_user ( { template_name = > "members/printfeercpt.tt" ,
query = > $ input ,
type = > "intranet" ,
flagsrequired = > { borrowers = > 'edit_borrowers' , updatecharges = > 'remaining_permissions' } ,
debug = > 1 ,
} ) ;
my $ borrowernumber = $ input - > param ( 'borrowernumber' ) ;
my $ action = $ input - > param ( 'action' ) || '' ;
my $ accountlines_id = $ input - > param ( 'accountlines_id' ) ;
my $ change_given = $ input - > param ( 'change_given' ) ;
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 } ) ;
#get account details
my $ total = $ patron - > account - > balance ;
# FIXME This whole stuff is ugly and should be rewritten
# FIXME We should pass the $accts iterator to the template and do this formatting part there
my $ accountline_object = Koha::Account::Lines - > find ( $ accountlines_id ) ;
my $ accountline = $ accountline_object - > 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 $ letter = C4::Letters:: getletter ( 'circulation' , 'ACCOUNT_CREDIT' , C4::Context:: mybranch , 'print' , $ patron - > lang ) ;
my @ account_offsets = Koha::Account::Offsets - > search ( { credit_id = > $ accountline_object - > id } ) ;
$ template - > param (
letter = > $ letter ,
credit = > $ credit ,
letter = > $ letter ,
patron = > $ patron ,
library = > C4::Context:: mybranch ,
offsets = > \ @ account_offsets ,
credit = > $ accountline_object ,
finesview = > 1 ,
total = > $ total ,
totalcredit = > $ totalcredit ,
accounts = > [ $ accountline ] , # FIXME There is always only 1 row!
tendered = > scalar $ input - > param ( 'tendered' ) ,
change = > scalar $ input - > param ( 'change' )
change_given = > $ change_given ,
) ;
output_html_with_http_headers $ input , $ cookie , $ template - > output ;