Bug 16170 - Corrected to make work more smoothly
[koha.git] / reserve / request.pl
index dfdd6e1..1826e00 100755 (executable)
@@ -44,8 +44,9 @@ use C4::Utils::DataTables::Members;
 use C4::Members;
 use C4::Search;                # enabled_staff_search_views
 use Koha::DateUtils;
-use Koha::Borrower::Debarments qw(IsDebarred);
+use Koha::Patron::Debarments qw(IsDebarred);
 use Koha::Holds;
+use Koha::Libraries;
 
 my $dbh = C4::Context->dbh;
 my $input = new CGI;
@@ -131,7 +132,7 @@ my $biblionumbers = $input->param('biblionumbers');
 if ($multihold) {
     @biblionumbers = split '/', $biblionumbers;
 } else {
-    push @biblionumbers, $input->param('biblionumber');
+    push @biblionumbers, $input->multi_param('biblionumber');
 }
 
 
@@ -320,6 +321,7 @@ foreach my $biblionumber (@biblionumbers) {
 
     my @bibitemloop;
 
+    my @available_itemtypes;
     foreach my $biblioitemnumber (@biblioitemnumbers) {
         my $biblioitem = $biblioiteminfos_of->{$biblioitemnumber};
         my $num_available = 0;
@@ -453,6 +455,8 @@ foreach my $biblionumber (@biblionumbers) {
             {
                 $item->{available} = 1;
                 $num_available++;
+
+                push( @available_itemtypes, $item->{itype} );
             }
             elsif ( C4::Context->preference('AllowHoldPolicyOverride') ) {
                 # If AllowHoldPolicyOverride is set, it should override EVERY restriction, not just branch item rules
@@ -482,6 +486,9 @@ foreach my $biblionumber (@biblionumbers) {
         push @bibitemloop, $biblioitem;
     }
 
+    @available_itemtypes = uniq( @available_itemtypes );
+    $template->param( available_itemtypes => \@available_itemtypes );
+
     # existingreserves building
     my @reserveloop;
     my @reserves = Koha::Holds->search( { biblionumber => $biblionumber }, { order_by => 'priority' } );
@@ -506,7 +513,6 @@ foreach my $biblionumber (@biblionumbers) {
         }
 
         if ( $res->is_found() ) {
-            $reserve{'wait'}          = 1;
             $reserve{'holdingbranch'} = $res->item()->holdingbranch();
             $reserve{'biblionumber'}  = $res->item()->biblionumber();
             $reserve{'barcodenumber'} = $res->item()->barcode();
@@ -551,7 +557,6 @@ foreach my $biblionumber (@biblionumbers) {
         $reserve{'firstname'}      = $res->borrower()->firstname();
         $reserve{'surname'}        = $res->borrower()->surname();
         $reserve{'notes'}          = $res->reservenotes();
-        $reserve{'wait'}           = $res->is_waiting();
         $reserve{'waiting_date'}   = $res->waitingdate();
         $reserve{'waiting_until'}  = $res->is_waiting() ? $res->waiting_expires_on() : undef;
         $reserve{'ccode'}          = $res->item() ? $res->item()->ccode() : undef;
@@ -562,9 +567,10 @@ foreach my $biblionumber (@biblionumbers) {
         $reserve{'suspend'}        = $res->suspend();
         $reserve{'suspend_until'}  = $res->suspend_until();
         $reserve{'reserve_id'}     = $res->reserve_id();
+        $reserve{itemtype}         = $res->itemtype();
 
         if ( C4::Context->preference('IndependentBranches') && $flags->{'superlibrarian'} != 1 ) {
-            $reserve{'branchloop'} = [ GetBranchDetail( $res->branchcode() ) ];
+            $reserve{'branchloop'} = [ Koha::Libraries->find( $res->branchcode() ) ];
         }
         else {
             $reserve{'branchloop'} = GetBranchesLoop( $res->branchcode() );