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

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