+if ($cancelall) {
+ print $input->redirect("/cgi-bin/koha/circ/waitingreserves.pl");
+} else {
+ output_html_with_http_headers $input, $cookie, $template->output;
+}
+
+exit;
+
+sub cancel {
+ my ($item, $borrowernumber, $fbr, $tbr, $skip_transfers ) = @_;
+
+ my $transfer = $fbr ne $tbr; # XXX && !$nextreservinfo;
+
+ return if $transfer && $skip_transfers;
+
+ my ( $messages, $nextreservinfo ) = ModReserveCancelAll( $item, $borrowernumber );
+
+# if the document is not in his homebranch location and there is not reservation after, we transfer it
+ if ($transfer && !$nextreservinfo) {
+ ModItemTransfer( $item, $fbr, $tbr );
+ }
+ # if we have a result
+ if ($nextreservinfo) {
+ my %res;
+ my $borrowerinfo = GetMemberDetails( $nextreservinfo );
+ my $iteminfo = GetBiblioFromItemNumber($item);
+ if ( $messages->{'transfert'} ) {
+ $res{messagetransfert} = $messages->{'transfert'};
+ $res{branchname} = GetBranchName($messages->{'transfert'});
+ }
+
+ $res{message} = 1;
+ $res{nextreservnumber} = $nextreservinfo;
+ $res{nextreservsurname} = $borrowerinfo->{'surname'};
+ $res{nextreservfirstname} = $borrowerinfo->{'firstname'};
+ $res{nextreservitem} = $item;
+ $res{nextreservtitle} = $iteminfo->{'title'};
+ $res{waiting} = $messages->{'waiting'} ? 1 : 0;
+
+ return \%res;
+ }
+
+ return;
+}