@@ -, +, @@ over" tab --- C4/Reserves.pm | 4 ++-- circ/waitingreserves.pl | 21 +++++++++++---------- .../prog/en/modules/circ/waitingreserves.tt | 11 ++++++++++- 3 files changed, 23 insertions(+), 13 deletions(-) --- a/C4/Reserves.pm +++ a/C4/Reserves.pm @@ -1356,10 +1356,10 @@ function to cancel reserv,check other reserves, and transfer document if it's ne sub ModReserveCancelAll { my $messages; my $nextreservinfo; - my ( $itemnumber, $borrowernumber ) = @_; + my ( $itemnumber, $borrowernumber, $charge_cancel_fee ) = @_; #step 1 : cancel the reservation - my $CancelReserve = CancelReserve({ itemnumber => $itemnumber, borrowernumber => $borrowernumber }); + my $CancelReserve = CancelReserve({ itemnumber => $itemnumber, borrowernumber => $borrowernumber, charge_cancel_fee => $charge_cancel_fee }); #step 2 launch the subroutine of the others reserves ( $messages, $nextreservinfo ) = GetOtherReserves($itemnumber); --- a/circ/waitingreserves.pl +++ a/circ/waitingreserves.pl @@ -40,13 +40,14 @@ use C4::Koha; my $input = new CGI; -my $item = $input->param('itemnumber'); -my $borrowernumber = $input->param('borrowernumber'); -my $fbr = $input->param('fbr') || ''; -my $tbr = $input->param('tbr') || ''; -my $all_branches = $input->param('allbranches') || ''; -my $cancelall = $input->param('cancelall'); -my $tab = $input->param('tab'); +my $item = $input->param('itemnumber'); +my $borrowernumber = $input->param('borrowernumber'); +my $fbr = $input->param('fbr') || ''; +my $tbr = $input->param('tbr') || ''; +my $all_branches = $input->param('allbranches') || ''; +my $cancelall = $input->param('cancelall'); +my $tab = $input->param('tab'); +my $charge_cancel_fee = $input->param('charge_cancel_fee'); my ( $template, $loggedinuser, $cookie ) = get_template_and_user( { @@ -67,7 +68,7 @@ $template->param( TransferWhenCancelAllWaitingHolds => 1 ) if $transfer_when_can my @cancel_result; # if we have a return from the form we launch the subroutine CancelReserve if ($item) { - my $res = cancel( $item, $borrowernumber, $fbr, $tbr ); + my $res = cancel( $item, $borrowernumber, $fbr, $tbr, undef, $charge_cancel_fee ); push @cancel_result, $res if $res; } @@ -171,13 +172,13 @@ if ($item && $tab eq 'holdsover') { exit; sub cancel { - my ($item, $borrowernumber, $fbr, $tbr, $skip_transfers ) = @_; + my ($item, $borrowernumber, $fbr, $tbr, $skip_transfers, $charge_cancel_fee ) = @_; my $transfer = $fbr ne $tbr; # XXX && !$nextreservinfo; return if $transfer && $skip_transfers; - my ( $messages, $nextreservinfo ) = ModReserveCancelAll( $item, $borrowernumber ); + my ( $messages, $nextreservinfo ) = ModReserveCancelAll( $item, $borrowernumber, $charge_cancel_fee ); # if the document is not in his homebranch location and there is not reservation after, we transfer it if ($transfer && !$nextreservinfo) { --- a/koha-tmpl/intranet-tmpl/prog/en/modules/circ/waitingreserves.tt +++ a/koha-tmpl/intranet-tmpl/prog/en/modules/circ/waitingreserves.tt @@ -1,3 +1,4 @@ +[% USE Koha %] [% USE KohaDates %] [% USE Branches %] [% INCLUDE 'doc-head-open.inc' %] @@ -109,7 +110,7 @@ - + [% IF ( reserveloo.dotransfer ) %] [% ELSE %] @@ -133,6 +134,9 @@ + [% IF Koha.Preference('ExpireReservesMaxPickUpDelayCharge') %] +

Charge cancelation fee

+ [% END %] [% UNLESS TransferWhenCancelAllWaitingHolds %] Only items that need not be transferred will be cancelled (TransferWhenCancelAllWaitingHolds sypref) @@ -170,6 +174,11 @@ + + [% IF Koha.Preference('ExpireReservesMaxPickUpDelayCharge') %] +

Charge cancelation fee

+ [% END %] + [% IF ( overloo.dotransfer ) %] [% ELSE %] --