View | Details | Raw Unified | Return to bug 9788
Collapse All | Expand All

(-)a/C4/Reserves.pm (-8 / +6 lines)
Lines 358-383 sub GetReservesFromBiblionumber { Link Here
358
358
359
=head2 GetReservesFromItemnumber
359
=head2 GetReservesFromItemnumber
360
360
361
 ( $reservedate, $borrowernumber, $branchcode, $reserve_id, $waitingdate ) = GetReservesFromItemnumber($itemnumber, $all_dates);
361
 ( $reservedate, $borrowernumber, $branchcode, $reserve_id, $waitingdate ) = GetReservesFromItemnumber($itemnumber);
362
362
363
Get the first reserve for a specific item number (based on priority). Returns the abovementioned values for that reserve.
363
Get the first reserve for a specific item number (based on priority). Returns the abovementioned values for that reserve.
364
364
365
all_dates is an optional parameter, telling Koha to include or exclude future holds
365
The routine does not look at future reserves (read: item level holds), but DOES include future waits (a confirmed future hold).
366
366
367
=cut
367
=cut
368
368
369
sub GetReservesFromItemnumber {
369
sub GetReservesFromItemnumber {
370
    my ( $itemnumber, $all_dates ) = @_;
370
    my ( $itemnumber ) = @_;
371
    my $dbh   = C4::Context->dbh;
371
    my $dbh   = C4::Context->dbh;
372
    my $query = "
372
    my $query = "
373
    SELECT reservedate,borrowernumber,branchcode,reserve_id,waitingdate
373
    SELECT reservedate,borrowernumber,branchcode,reserve_id,waitingdate
374
    FROM   reserves
374
    FROM   reserves
375
    WHERE  itemnumber=?
375
    WHERE  itemnumber=? AND ( reservedate <= CURRENT_DATE() OR
376
           waitingdate IS NOT NULL )
377
    ORDER BY priority
376
    ";
378
    ";
377
    unless ( $all_dates ) {
378
	$query .= " AND reservedate <= CURRENT_DATE()";
379
    }
380
    $query .= ' ORDER BY priority';
381
    my $sth_res = $dbh->prepare($query);
379
    my $sth_res = $dbh->prepare($query);
382
    $sth_res->execute($itemnumber);
380
    $sth_res->execute($itemnumber);
383
    my ( $reservedate, $borrowernumber,$branchcode, $reserve_id, $wait ) = $sth_res->fetchrow_array;
381
    my ( $reservedate, $borrowernumber,$branchcode, $reserve_id, $wait ) = $sth_res->fetchrow_array;
(-)a/catalogue/detail.pl (-2 / +1 lines)
Lines 233-240 foreach my $item (@items) { Link Here
233
    }
233
    }
234
234
235
    # checking for holds
235
    # checking for holds
236
    my ($reservedate,$reservedfor,$expectedAt,undef,$wait) = GetReservesFromItemnumber($item->{itemnumber}, 1); #second parameter: all dates
236
    my ($reservedate,$reservedfor,$expectedAt,undef,$wait) = GetReservesFromItemnumber($item->{itemnumber});
237
        # all dates will include a future item level hold or a future wait
238
    my $ItemBorrowerReserveInfo = GetMemberDetails( $reservedfor, 0);
237
    my $ItemBorrowerReserveInfo = GetMemberDetails( $reservedfor, 0);
239
    
238
    
240
    if (C4::Context->preference('HidePatronName')){
239
    if (C4::Context->preference('HidePatronName')){
(-)a/circ/transferstoreceive.pl (-1 / +1 lines)
Lines 99-105 foreach my $br ( keys %$branches ) { Link Here
99
            $getransf{'subtitle'} = GetRecordValue('subtitle', $record, GetFrameworkCode($gettitle->{'biblionumber'}));
99
            $getransf{'subtitle'} = GetRecordValue('subtitle', $record, GetFrameworkCode($gettitle->{'biblionumber'}));
100
100
101
            # we check if we have a reserv for this transfer
101
            # we check if we have a reserv for this transfer
102
            my @checkreserv = GetReservesFromItemnumber($num->{'itemnumber'},1 ); #alldate parameter for future holds and waits
102
            my @checkreserv = GetReservesFromItemnumber($num->{'itemnumber'});
103
            if ( $checkreserv[0] ) {
103
            if ( $checkreserv[0] ) {
104
                my $getborrower = GetMemberDetails( $checkreserv[1] );
104
                my $getborrower = GetMemberDetails( $checkreserv[1] );
105
                $getransf{'borrowernum'}       = $getborrower->{'borrowernumber'};
105
                $getransf{'borrowernum'}       = $getborrower->{'borrowernumber'};
(-)a/opac/opac-reserve.pl (-1 / +1 lines)
Lines 431-437 foreach my $biblioNum (@biblionumbers) { Link Here
431
        }
431
        }
432
432
433
        # checking reserve
433
        # checking reserve
434
        my ($reservedate,$reservedfor,$expectedAt,undef,$wait) = GetReservesFromItemnumber($itemNum,1); #with alldates parameter include future item level holds and waits
434
        my ($reservedate,$reservedfor,$expectedAt,undef,$wait) = GetReservesFromItemnumber($itemNum);
435
        my $ItemBorrowerReserveInfo = GetMemberDetails( $reservedfor, 0);
435
        my $ItemBorrowerReserveInfo = GetMemberDetails( $reservedfor, 0);
436
436
437
        # the item could be reserved for this borrower vi a host record, flag this
437
        # the item could be reserved for this borrower vi a host record, flag this
(-)a/reserve/request.pl (-2 / +1 lines)
Lines 328-334 foreach my $biblionumber (@biblionumbers) { Link Here
328
            }
328
            }
329
329
330
            # checking reserve
330
            # checking reserve
331
            my ($reservedate,$reservedfor,$expectedAt,$reserve_id,$wait) = GetReservesFromItemnumber($itemnumber,1); #alldates parameter to include future holds/waits
331
            my ($reservedate,$reservedfor,$expectedAt,$reserve_id,$wait) = GetReservesFromItemnumber($itemnumber);
332
            my $ItemBorrowerReserveInfo = GetMember( borrowernumber => $reservedfor );
332
            my $ItemBorrowerReserveInfo = GetMember( borrowernumber => $reservedfor );
333
333
334
            if ( defined $reservedate ) {
334
            if ( defined $reservedate ) {
335
- 

Return to bug 9788