| Lines 105-111
          BEGIN {
      
      
        Link Here | 
        
          | 105 |  | 105 |  | 
        
          | 106 |         &GetReserve | 106 |         &GetReserve | 
        
          | 107 |         &GetReservesFromItemnumber | 107 |         &GetReservesFromItemnumber | 
            
              | 108 |         &GetReservesFromBiblionumber |  |  | 
        
          | 109 |         &GetReservesFromBorrowernumber | 108 |         &GetReservesFromBorrowernumber | 
        
          | 110 |         &GetReservesForBranch | 109 |         &GetReservesForBranch | 
        
          | 111 |         &GetReservesToBranch | 110 |         &GetReservesToBranch | 
  
    | Lines 276-347
          sub GetReserve {
      
      
        Link Here | 
        
          | 276 |     return $sth->fetchrow_hashref(); | 275 |     return $sth->fetchrow_hashref(); | 
        
          | 277 | } | 276 | } | 
        
          | 278 |  | 277 |  | 
            
              | 279 | =head2 GetReservesFromBiblionumber |  |  | 
            
              | 280 |  | 
            
              | 281 |   my $reserves = GetReservesFromBiblionumber({ | 
            
              | 282 |     biblionumber => $biblionumber, | 
            
              | 283 |     [ itemnumber => $itemnumber, ] | 
            
              | 284 |     [ all_dates => 1|0 ] | 
            
              | 285 |   }); | 
            
              | 286 |  | 
            
              | 287 | This function gets the list of reservations for one C<$biblionumber>, | 
            
              | 288 | returning an arrayref pointing to the reserves for C<$biblionumber>. | 
            
              | 289 |  | 
            
              | 290 | By default, only reserves whose start date falls before the current | 
            
              | 291 | time are returned.  To return all reserves, including future ones, | 
            
              | 292 | the C<all_dates> parameter can be included and set to a true value. | 
            
              | 293 |  | 
            
              | 294 | If the C<itemnumber> parameter is supplied, reserves must be targeted | 
            
              | 295 | to that item or not targeted to any item at all; otherwise, they | 
            
              | 296 | are excluded from the list. | 
            
              | 297 |  | 
            
              | 298 | =cut | 
            
              | 299 |  | 
            
              | 300 | sub GetReservesFromBiblionumber { | 
            
              | 301 |     my ( $params ) = @_; | 
            
              | 302 |     my $biblionumber = $params->{biblionumber} or return []; | 
            
              | 303 |     my $itemnumber = $params->{itemnumber}; | 
            
              | 304 |     my $all_dates = $params->{all_dates} // 0; | 
            
              | 305 |     my $dbh   = C4::Context->dbh; | 
            
              | 306 |  | 
            
              | 307 |     # Find the desired items in the reserves | 
            
              | 308 |     my @params; | 
            
              | 309 |     my $query = " | 
            
              | 310 |         SELECT  reserve_id, | 
            
              | 311 |                 branchcode, | 
            
              | 312 |                 timestamp AS rtimestamp, | 
            
              | 313 |                 priority, | 
            
              | 314 |                 biblionumber, | 
            
              | 315 |                 borrowernumber, | 
            
              | 316 |                 reservedate, | 
            
              | 317 |                 found, | 
            
              | 318 |                 itemnumber, | 
            
              | 319 |                 reservenotes, | 
            
              | 320 |                 expirationdate, | 
            
              | 321 |                 lowestPriority, | 
            
              | 322 |                 suspend, | 
            
              | 323 |                 suspend_until, | 
            
              | 324 |                 itemtype | 
            
              | 325 |         FROM     reserves | 
            
              | 326 |         WHERE biblionumber = ? "; | 
            
              | 327 |     push( @params, $biblionumber ); | 
            
              | 328 |     unless ( $all_dates ) { | 
            
              | 329 |         $query .= " AND reservedate <= CAST(NOW() AS DATE) "; | 
            
              | 330 |     } | 
            
              | 331 |     if ( $itemnumber ) { | 
            
              | 332 |         $query .= " AND ( itemnumber IS NULL OR itemnumber = ? )"; | 
            
              | 333 |         push( @params, $itemnumber ); | 
            
              | 334 |     } | 
            
              | 335 |     $query .= "ORDER BY priority"; | 
            
              | 336 |     my $sth = $dbh->prepare($query); | 
            
              | 337 |     $sth->execute( @params ); | 
            
              | 338 |     my @results; | 
            
              | 339 |     while ( my $data = $sth->fetchrow_hashref ) { | 
            
              | 340 |         push @results, $data; | 
            
              | 341 |     } | 
            
              | 342 |     return \@results; | 
            
              | 343 | } | 
            
              | 344 |  | 
        
          | 345 | =head2 GetReservesFromItemnumber | 278 | =head2 GetReservesFromItemnumber | 
        
          | 346 |  | 279 |  | 
        
          | 347 |  ( $reservedate, $borrowernumber, $branchcode, $reserve_id, $waitingdate ) = GetReservesFromItemnumber($itemnumber); | 280 |  ( $reservedate, $borrowernumber, $branchcode, $reserve_id, $waitingdate ) = GetReservesFromItemnumber($itemnumber); | 
            
              | 348 | -  |  |  |