use strict;
use warnings;
+use URI::Escape;
use C4::Context;
use C4::Auth;
use C4::Output;
my $input = CGI->new();
+my $updatecharges_permissions = $input->param('writeoff_individual') ? 'writeoff' : 'remaining_permissions';
my ( $template, $loggedinuser, $cookie ) = get_template_and_user(
{ template_name => 'members/paycollect.tmpl',
query => $input,
type => 'intranet',
authnotrequired => 0,
- flagsrequired => { borrowers => 1, updatecharges => 1 },
+ flagsrequired => { borrowers => 1, updatecharges => $updatecharges_permissions },
debug => 1,
}
);
my $writeoff = $input->param('writeoff_individual');
my $select_lines = $input->param('selected');
my $select = $input->param('selected_accts');
+my $payment_note = uri_unescape $input->param('payment_note');
my $accountno;
my $accountlines_id;
if ( $individual || $writeoff ) {
description => $description,
notify_id => $notify_id,
notify_level => $notify_level,
+ payment_note => $payment_note,
);
} elsif ($select_lines) {
$total_due = $input->param('amt');
$template->param(
selected_accts => $select_lines,
- amt => $total_due
+ amt => $total_due,
+ selected_accts_notes => $input->param('notes'),
);
}
if ( $total_paid and $total_paid ne '0.00' ) {
if ( $total_paid < 0 or $total_paid > $total_due ) {
$template->param(
- error => sprintf( 'You must pay a value less than or equal to %f.2',
- $total_due )
+ error_over => 1,
+ total_due => $total_due
);
} else {
if ($individual) {
if ( $total_paid == $total_due ) {
makepayment( $accountlines_id, $borrowernumber, $accountno, $total_paid, $user,
- $branch );
+ $branch, $payment_note );
} else {
makepartialpayment( $accountlines_id, $borrowernumber, $accountno, $total_paid,
- $user, $branch );
+ $user, $branch, $payment_note );
}
print $input->redirect(
"/cgi-bin/koha/members/pay.pl?borrowernumber=$borrowernumber");
$select = $1; # ensure passing no junk
}
my @acc = split /,/, $select;
- recordpayment_selectaccts( $borrowernumber, $total_paid,
- \@acc );
+ my $note = $input->param('selected_accts_notes');
+ recordpayment_selectaccts( $borrowernumber, $total_paid, \@acc, $note );
} else {
recordpayment( $borrowernumber, $total_paid );
}
borrower => $borrower,
total => $total_due,
activeBorrowerRelationship => (C4::Context->preference('borrowerRelationship') ne ''),
+ RoutingSerials => C4::Context->preference('RoutingSerials'),
);
output_html_with_http_headers $input, $cookie, $template->output;
} elsif ( $b_ref->{category_type} eq 'A' ) {
$b_ref->{adultborrower} = 1;
}
- my ( $picture, $dberror ) = GetPatronImage( $b_ref->{cardnumber} );
+ my ( $picture, $dberror ) = GetPatronImage( $b_ref->{borrowernumber} );
if ($picture) {
$b_ref->{has_picture} = 1;
}