Authority frameworks were not editable
[koha.git] / circ / view_holdsqueue.pl
index 7e04907..668bdd1 100755 (executable)
@@ -23,12 +23,13 @@ This script displays items in the tmp_holdsqueue table
 =cut
 
 use strict;
+use warnings;
 use CGI;
 use C4::Auth;
 use C4::Output;
 use C4::Biblio;
 use C4::Items;
-use C4::Koha;                  # GetItemTypes
+use C4::Koha;   # GetItemTypes
 use C4::Branch; # GetBranches
 use C4::Dates qw/format_date/;
 
@@ -39,69 +40,66 @@ my ( $template, $loggedinuser, $cookie ) = get_template_and_user(
         query           => $query,
         type            => "intranet",
         authnotrequired => 0,
-        flagsrequired   => { circulation => 1 },
+        flagsrequired   => { circulate => "circulate_remaining_permissions" },
         debug           => 1,
     }
 );
 
 my $params = $query->Vars;
-my $run_report = $params->{'run_report'};
-my $branchlimit = $params->{'branchlimit'};
+my $run_report     = $params->{'run_report'};
+my $branchlimit    = $params->{'branchlimit'};
 my $itemtypeslimit = $params->{'itemtypeslimit'};
 
 if ( $run_report ) {
-    my $items = GetHoldsQueueItems( $branchlimit,$itemtypeslimit );
+    my $items = GetHoldsQueueItems($branchlimit, $itemtypeslimit);
     $template->param(
-                                        branch    => $branchlimit,
-                     total     => scalar @$items,
-                     itemsloop => $items,
-                     run_report => $run_report
-                 );
-}
-
-# getting all branches.
-my $branches = GetBranches;
-my $branch   = C4::Context->userenv->{"branchname"};
-my @branchloop;
-foreach my $thisbranch ( keys %$branches ) {
-    my $selected = 1 if $thisbranch eq $branch;
-    my %row = (
-        value      => $thisbranch,
-        selected   => $selected,
-        branchname => $branches->{$thisbranch}->{'branchname'},
+        branch     => $branchlimit,
+        total      => scalar @$items,
+        itemsloop  => $items,
+        run_report => $run_report,
+        dateformat => C4::Context->preference("dateformat"),
     );
-    push @branchloop, \%row;
 }
 
 # getting all itemtypes
 my $itemtypes = &GetItemTypes();
 my @itemtypesloop;
 foreach my $thisitemtype ( sort keys %$itemtypes ) {
-    my %row = (
+    push @itemtypesloop, {
         value       => $thisitemtype,
         description => $itemtypes->{$thisitemtype}->{'description'},
-    );
-    push @itemtypesloop, \%row;
+    };
 }
 
-$template->param( branchloop     => \@branchloop,
-                  itemtypeloop   => \@itemtypesloop,
+$template->param(
+     branchloop => GetBranchesLoop(C4::Context->userenv->{'branch'}),
+   itemtypeloop => \@itemtypesloop,
 );
 
 sub GetHoldsQueueItems {
        my ($branchlimit,$itemtypelimit) = @_;
        my $dbh = C4::Context->dbh;
-       my $query = "SELECT * FROM tmp_holdsqueue";
-       $query.=" WHERE holdingbranch = \"$branchlimit\"" if $branchlimit;
+
+    my @bind_params = ();
+       my $query = q/SELECT tmp_holdsqueue.*, biblio.author, items.ccode, items.location, items.enumchron, items.cn_sort, biblioitems.publishercode,biblio.copyrightdate,biblioitems.publicationyear,biblioitems.pages,biblioitems.size,biblioitems.publicationyear,biblioitems.isbn
+                  FROM tmp_holdsqueue
+                       JOIN biblio      USING (biblionumber)
+                                 LEFT JOIN biblioitems USING (biblionumber)
+                  LEFT JOIN items       USING (  itemnumber)
+                /;
+    if ($branchlimit) {
+           $query .=" WHERE tmp_holdsqueue.holdingbranch = ?";
+        push @bind_params, $branchlimit;
+    }
+    $query .= " ORDER BY ccode, location, cn_sort, author, title, pickbranch, reservedate";
        my $sth = $dbh->prepare($query);
-       $sth->execute();
+       $sth->execute(@bind_params);
        my $items = [];
     while ( my $row = $sth->fetchrow_hashref ){
                $row->{reservedate} = format_date($row->{reservedate});
         push @$items, $row;
     }
     return $items;
-
 }
 # writing the template
 output_html_with_http_headers $query, $cookie, $template->output;