Bug 32503: (follow-up) Move data-order attributes
[koha-ffzg.git] / circ / waitingreserves.pl
index abefc09..2e56c5e 100755 (executable)
 use Modern::Perl;
 use CGI qw ( -utf8 );
 use C4::Context;
-use C4::Output;
-use C4::Auth;
-use C4::Circulation;
-use C4::Members;
-use C4::Biblio;
-use C4::Items;
-use Date::Calc qw(
-  Today
-  Add_Delta_Days
-  Date_to_Days
-);
-use C4::Reserves;
-use C4::Koha;
-use Koha::DateUtils;
+use C4::Output qw( output_html_with_http_headers );
+use C4::Auth qw( get_template_and_user );
+use C4::Items qw( ModItemTransfer );
+use Date::Calc qw( Date_to_Days Today );
+use C4::Reserves qw( ModReserve ModReserveCancelAll );
+use Koha::DateUtils qw( dt_from_string );
 use Koha::BiblioFrameworks;
 use Koha::Items;
 use Koha::ItemTypes;
 use Koha::Patrons;
+use Koha::BackgroundJob::BatchCancelHold;
 
-my $input = new CGI;
+my $input = CGI->new;
 
 my $item           = $input->param('itemnumber');
 my $borrowernumber = $input->param('borrowernumber');
@@ -49,15 +42,14 @@ my $tbr            = $input->param('tbr') || '';
 my $all_branches   = $input->param('allbranches') || '';
 my $cancelall      = $input->param('cancelall');
 my $tab            = $input->param('tab');
+my $cancelBulk     = $input->param('cancelBulk');
 
 my ( $template, $loggedinuser, $cookie, $flags ) = get_template_and_user(
     {
         template_name   => "circ/waitingreserves.tt",
         query           => $input,
         type            => "intranet",
-        authnotrequired => 0,
         flagsrequired   => { circulate => "circulate_remaining_permissions" },
-        debug           => 1,
     }
 );
 
@@ -81,6 +73,21 @@ if ( C4::Context->preference('IndependentBranches') ) {
 }
 $template->param( all_branches => 1 ) if $all_branches;
 
+if ($cancelBulk) {
+    my $reason   = $input->param("cancellation-reason");
+    my @hold_ids = split( ',', scalar $input->param("ids") );
+    my $params   = {
+        reason   => $reason,
+        hold_ids => \@hold_ids,
+    };
+    my $job_id = Koha::BackgroundJob::BatchCancelHold->new->enqueue($params);
+
+    $template->param(
+        enqueued => 1,
+        job_id   => $job_id
+    );
+}
+
 my (@reserve_loop, @over_loop);
 # FIXME - Is priority => 0 useful? If yes it must be moved to waiting, otherwise we need to remove it from here.
 my $holds = Koha::Holds->waiting->search({ priority => 0, ( $all_branches ? () : ( branchcode => $default ) ) }, { order_by => ['waitingdate'] });
@@ -90,7 +97,7 @@ my $holds = Koha::Holds->waiting->search({ priority => 0, ( $all_branches ? () :
 my $today = Date_to_Days(&Today);
 
 while ( my $hold = $holds->next ) {
-    next unless ($hold->waitingdate && $hold->waitingdate ne '0000-00-00');
+    next unless $hold->waitingdate;
 
     my ( $expire_year, $expire_month, $expire_day ) = split (/-/, $hold->expirationdate);
     my $calcDate = Date_to_Days( $expire_year, $expire_month, $expire_day );
@@ -109,6 +116,8 @@ while ( my $hold = $holds->next ) {
     
 }
 
+my $holds_with_cancellation_requests = Koha::Holds->waiting->filter_by_has_cancellation_requests;
+
 $template->param(cancel_result => \@cancel_result) if @cancel_result;
 
 $template->param(
@@ -116,7 +125,9 @@ $template->param(
     reservecount => scalar @reserve_loop,
     overloop    => \@over_loop,
     overcount   => scalar @over_loop,
-    show_date   => output_pref({ dt => dt_from_string, dateformat => 'iso', dateonly => 1 }),
+    cancel_reqs_count => $holds_with_cancellation_requests->count,
+    cancel_reqs => $holds_with_cancellation_requests,
+    show_date   => dt_from_string,
     tab => $tab,
 );