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

(-)a/C4/Reserves.pm (-8 / +6 lines)
Lines 350-375 sub GetReservesFromBiblionumber { Link Here
350
350
351
=head2 GetReservesFromItemnumber
351
=head2 GetReservesFromItemnumber
352
352
353
 ( $reservedate, $borrowernumber, $branchcode, $reserve_id, $waitingdate ) = GetReservesFromItemnumber($itemnumber, $all_dates);
353
 ( $reservedate, $borrowernumber, $branchcode, $reserve_id, $waitingdate ) = GetReservesFromItemnumber($itemnumber);
354
354
355
Get the first reserve for a specific item number (based on priority). Returns the abovementioned values for that reserve.
355
Get the first reserve for a specific item number (based on priority). Returns the abovementioned values for that reserve.
356
356
357
all_dates is an optional parameter, telling Koha to include or exclude future holds
357
The routine does not look at future reserves (read: item level holds), but DOES include future waits (a confirmed future hold).
358
358
359
=cut
359
=cut
360
360
361
sub GetReservesFromItemnumber {
361
sub GetReservesFromItemnumber {
362
    my ( $itemnumber, $all_dates ) = @_;
362
    my ( $itemnumber ) = @_;
363
    my $dbh   = C4::Context->dbh;
363
    my $dbh   = C4::Context->dbh;
364
    my $query = "
364
    my $query = "
365
    SELECT reservedate,borrowernumber,branchcode,reserve_id,waitingdate
365
    SELECT reservedate,borrowernumber,branchcode,reserve_id,waitingdate
366
    FROM   reserves
366
    FROM   reserves
367
    WHERE  itemnumber=?
367
    WHERE  itemnumber=? AND ( reservedate <= CURRENT_DATE() OR
368
           waitingdate IS NOT NULL )
369
    ORDER BY priority
368
    ";
370
    ";
369
    unless ( $all_dates ) {
370
	$query .= " AND reservedate <= CURRENT_DATE()";
371
    }
372
    $query .= ' ORDER BY priority';
373
    my $sth_res = $dbh->prepare($query);
371
    my $sth_res = $dbh->prepare($query);
374
    $sth_res->execute($itemnumber);
372
    $sth_res->execute($itemnumber);
375
    my ( $reservedate, $borrowernumber,$branchcode, $reserve_id, $wait ) = $sth_res->fetchrow_array;
373
    my ( $reservedate, $borrowernumber,$branchcode, $reserve_id, $wait ) = $sth_res->fetchrow_array;
(-)a/catalogue/detail.pl (-2 / +1 lines)
Lines 220-227 foreach my $item (@items) { Link Here
220
    }
220
    }
221
221
222
    # checking for holds
222
    # checking for holds
223
    my ($reservedate,$reservedfor,$expectedAt,undef,$wait) = GetReservesFromItemnumber($item->{itemnumber}, 1); #second parameter: all dates
223
    my ($reservedate,$reservedfor,$expectedAt,undef,$wait) = GetReservesFromItemnumber($item->{itemnumber});
224
        # all dates will include a future item level hold or a future wait
225
    my $ItemBorrowerReserveInfo = GetMemberDetails( $reservedfor, 0);
224
    my $ItemBorrowerReserveInfo = GetMemberDetails( $reservedfor, 0);
226
    
225
    
227
    if (C4::Context->preference('HidePatronName')){
226
    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