Lines 42-54
use Koha::Patrons;
Link Here
|
42 |
|
42 |
|
43 |
my $input = new CGI; |
43 |
my $input = new CGI; |
44 |
|
44 |
|
45 |
my $item = $input->param('itemnumber'); |
45 |
my $item = $input->param('itemnumber'); |
46 |
my $borrowernumber = $input->param('borrowernumber'); |
46 |
my $borrowernumber = $input->param('borrowernumber'); |
47 |
my $fbr = $input->param('fbr') || ''; |
47 |
my $fbr = $input->param('fbr') || ''; |
48 |
my $tbr = $input->param('tbr') || ''; |
48 |
my $tbr = $input->param('tbr') || ''; |
49 |
my $all_branches = $input->param('allbranches') || ''; |
49 |
my $all_branches = $input->param('allbranches') || ''; |
50 |
my $cancelall = $input->param('cancelall'); |
50 |
my $cancelall = $input->param('cancelall'); |
51 |
my $tab = $input->param('tab'); |
51 |
my $tab = $input->param('tab'); |
|
|
52 |
my $charge_cancel_fee = $input->param('charge_cancel_fee'); |
52 |
|
53 |
|
53 |
my ( $template, $loggedinuser, $cookie, $flags ) = get_template_and_user( |
54 |
my ( $template, $loggedinuser, $cookie, $flags ) = get_template_and_user( |
54 |
{ |
55 |
{ |
Lines 69-75
$template->param( TransferWhenCancelAllWaitingHolds => 1 ) if $transfer_when_can
Link Here
|
69 |
my @cancel_result; |
70 |
my @cancel_result; |
70 |
# if we have a return from the form we cancel the holds |
71 |
# if we have a return from the form we cancel the holds |
71 |
if ($item) { |
72 |
if ($item) { |
72 |
my $res = cancel( $item, $borrowernumber, $fbr, $tbr ); |
73 |
my $res = cancel( $item, $borrowernumber, $fbr, $tbr, undef, $charge_cancel_fee ); |
73 |
push @cancel_result, $res if $res; |
74 |
push @cancel_result, $res if $res; |
74 |
} |
75 |
} |
75 |
|
76 |
|
Lines 134-140
while ( my $hold = $holds->next ) {
Link Here
|
134 |
|
135 |
|
135 |
if ($today > $calcDate) { |
136 |
if ($today > $calcDate) { |
136 |
if ($cancelall) { |
137 |
if ($cancelall) { |
137 |
my $res = cancel( $item->itemnumber, $patron->borrowernumber, $holdingbranch, $homebranch, !$transfer_when_cancel_all ); |
138 |
my $res = cancel( $item->itemnumber, $patron->borrowernumber, $holdingbranch, $homebranch, !$transfer_when_cancel_all, $charge_cancel_fee ); |
138 |
push @cancel_result, $res if $res; |
139 |
push @cancel_result, $res if $res; |
139 |
next; |
140 |
next; |
140 |
} else { |
141 |
} else { |
Lines 174-186
if ($item && $tab eq 'holdsover' && !@cancel_result) {
Link Here
|
174 |
exit; |
175 |
exit; |
175 |
|
176 |
|
176 |
sub cancel { |
177 |
sub cancel { |
177 |
my ($item, $borrowernumber, $fbr, $tbr, $skip_transfers ) = @_; |
178 |
my ($item, $borrowernumber, $fbr, $tbr, $skip_transfers, $charge_cancel_fee ) = @_; |
178 |
|
179 |
|
179 |
my $transfer = $fbr ne $tbr; # XXX && !$nextreservinfo; |
180 |
my $transfer = $fbr ne $tbr; # XXX && !$nextreservinfo; |
180 |
|
181 |
|
181 |
return if $transfer && $skip_transfers; |
182 |
return if $transfer && $skip_transfers; |
182 |
|
183 |
|
183 |
my ( $messages, $nextreservinfo ) = ModReserveCancelAll( $item, $borrowernumber ); |
184 |
my ( $messages, $nextreservinfo ) = ModReserveCancelAll( $item, $borrowernumber, $charge_cancel_fee ); |
184 |
|
185 |
|
185 |
# if the document is not in his homebranch location and there is not reservation after, we transfer it |
186 |
# if the document is not in his homebranch location and there is not reservation after, we transfer it |
186 |
if ($transfer && !$nextreservinfo) { |
187 |
if ($transfer && !$nextreservinfo) { |