@@ -, +, @@ "Write off selected" button. --- .../intranet-tmpl/prog/en/modules/members/pay.tt | 1 + .../prog/en/modules/members/paycollect.tt | 26 ++++++++++++--- members/pay.pl | 38 ++++++++++++---------- members/paycollect.pl | 3 ++ 4 files changed, 46 insertions(+), 22 deletions(-) --- a/koha-tmpl/intranet-tmpl/prog/en/modules/members/pay.tt +++ a/koha-tmpl/intranet-tmpl/prog/en/modules/members/pay.tt @@ -121,6 +121,7 @@ [% IF CAN_user_updatecharges_writeoff %][% END %] + Cancel --- a/koha-tmpl/intranet-tmpl/prog/en/modules/members/paycollect.tt +++ a/koha-tmpl/intranet-tmpl/prog/en/modules/members/paycollect.tt @@ -11,7 +11,7 @@ [% INCLUDE 'header.inc' %] [% INCLUDE 'patron-search.inc' %] - +
@@ -153,16 +153,30 @@ +
- [% IF ( selected_accts ) %]Pay an amount toward selected fines[% ELSE %]Pay an amount toward all fines[% END %] + [% IF ( selected_accts ) %] + [% IF type == 'writeoff' %] + Write off an amount toward selected fines + [% ELSE %] + Pay an amount toward selected fines + [% END %] + [% ELSE %] + Pay an amount toward all fines + [% END %] +
  1. Total amount outstanding: [% total | format('%.2f') %]
  2. - + [% IF type == 'writeoff' %] + + [% ELSE %] + + [% END %]
  3. @@ -184,8 +198,10 @@
-
- Cancel
+
+ + Cancel +
[% END %]
--- a/members/pay.pl +++ a/members/pay.pl @@ -74,31 +74,30 @@ $user ||= q{}; our $branch = C4::Context->userenv->{'branch'}; -my $writeoff_item = $input->param('confirm_writeoff'); -my $paycollect = $input->param('paycollect'); -if ($paycollect) { +if ( $input->param('paycollect') ) { print $input->redirect( "/cgi-bin/koha/members/paycollect.pl?borrowernumber=$borrowernumber"); } -my $payselected = $input->param('payselected'); -if ($payselected) { - payselected(@names); +elsif ( $input->param('payselected') ) { + payselected({ params => \@names }); } - -my $writeoff_all = $input->param('woall'); # writeoff all fines -if ($writeoff_all) { +elsif ( $input->param('writeoff_selected') ) { + payselected({ params => \@names, type => 'writeoff' }); +} +elsif ( $input->param('woall') ) { writeoff_all(@names); -} elsif ($writeoff_item) { +} +elsif ( $input->param('confirm_writeoff') ) { my $accountlines_id = $input->param('accountlines_id'); - my $amount = $input->param('amountwrittenoff'); - my $payment_note = $input->param("payment_note"); + my $amount = $input->param('amountwrittenoff'); + my $payment_note = $input->param("payment_note"); Koha::Account->new( { patron_id => $borrowernumber } )->pay( { - amount => $amount, - lines => [ scalar Koha::Account::Lines->find($accountlines_id) ], - type => 'writeoff', - note => $payment_note, + amount => $amount, + lines => [ scalar Koha::Account::Lines->find($accountlines_id) ], + type => 'writeoff', + note => $payment_note, library_id => $branch, } ); @@ -238,7 +237,11 @@ sub borrower_add_additional_fields { } sub payselected { - my @params = @_; + my $parameters = shift; + + my @params = @{ $parameters->{params} }; + my $type = $parameters->{type} || 'payment'; + my $amt = 0; my @lines_to_pay; foreach (@params) { @@ -253,6 +256,7 @@ sub payselected { my $notes = '¬es=' . join("%0A", map { scalar $input->param("payment_note_$_") } @lines_to_pay ); my $redirect = "/cgi-bin/koha/members/paycollect.pl?borrowernumber=$borrowernumber" + . "&type=$type" . $amt . $sel . $notes; --- a/members/paycollect.pl +++ a/members/paycollect.pl @@ -69,6 +69,7 @@ my $select_lines = $input->param('selected'); my $select = $input->param('selected_accts'); my $payment_note = uri_unescape scalar $input->param('payment_note'); my $payment_type = scalar $input->param('payment_type'); +my $type = scalar $input->param('type') || 'payment', my $accountlines_id; if ( $individual || $writeoff ) { @@ -153,6 +154,7 @@ if ( $total_paid and $total_paid ne '0.00' ) { } )->pay( { + type => $type, amount => $total_paid, lines => \@lines, note => $note, @@ -183,6 +185,7 @@ borrower_add_additional_fields($borrower, $template); $template->param(%$borrower); $template->param( + type => $type, borrowernumber => $borrowernumber, # some templates require global patron => $patron, total => $total_due, --