=head2 GetReservesFromItemnumber
- ( $reservedate, $borrowernumber, $branchcode, $reserve_id, $waitingdate ) = GetReservesFromItemnumber($itemnumber, $all_dates);
+ ( $reservedate, $borrowernumber, $branchcode, $reserve_id, $waitingdate ) = GetReservesFromItemnumber($itemnumber);
Get the first reserve for a specific item number (based on priority). Returns the abovementioned values for that reserve.
-all_dates is an optional parameter, telling Koha to include or exclude future holds
+The routine does not look at future reserves (read: item level holds), but DOES include future waits (a confirmed future hold).
=cut
sub GetReservesFromItemnumber {
- my ( $itemnumber, $all_dates ) = @_;
+ my ( $itemnumber ) = @_;
my $dbh = C4::Context->dbh;
my $query = "
SELECT reservedate,borrowernumber,branchcode,reserve_id,waitingdate
FROM reserves
- WHERE itemnumber=?
+ WHERE itemnumber=? AND ( reservedate <= CURRENT_DATE() OR
+ waitingdate IS NOT NULL )
+ ORDER BY priority
";
- unless ( $all_dates ) {
- $query .= " AND reservedate <= CURRENT_DATE()";
- }
- $query .= ' ORDER BY priority';
my $sth_res = $dbh->prepare($query);
$sth_res->execute($itemnumber);
my ( $reservedate, $borrowernumber,$branchcode, $reserve_id, $wait ) = $sth_res->fetchrow_array;
}
# checking for holds
- my ($reservedate,$reservedfor,$expectedAt,undef,$wait) = GetReservesFromItemnumber($item->{itemnumber}, 1); #second parameter: all dates
- # all dates will include a future item level hold or a future wait
+ my ($reservedate,$reservedfor,$expectedAt,undef,$wait) = GetReservesFromItemnumber($item->{itemnumber});
my $ItemBorrowerReserveInfo = GetMemberDetails( $reservedfor, 0);
if (C4::Context->preference('HidePatronName')){
$getransf{'subtitle'} = GetRecordValue('subtitle', $record, GetFrameworkCode($gettitle->{'biblionumber'}));
# we check if we have a reserv for this transfer
- my @checkreserv = GetReservesFromItemnumber($num->{'itemnumber'},1 ); #alldate parameter for future holds and waits
+ my @checkreserv = GetReservesFromItemnumber($num->{'itemnumber'});
if ( $checkreserv[0] ) {
my $getborrower = GetMemberDetails( $checkreserv[1] );
$getransf{'borrowernum'} = $getborrower->{'borrowernumber'};
}
# checking reserve
- my ($reservedate,$reservedfor,$expectedAt,undef,$wait) = GetReservesFromItemnumber($itemNum,1); #with alldates parameter include future item level holds and waits
+ my ($reservedate,$reservedfor,$expectedAt,undef,$wait) = GetReservesFromItemnumber($itemNum);
my $ItemBorrowerReserveInfo = GetMemberDetails( $reservedfor, 0);
# the item could be reserved for this borrower vi a host record, flag this
}
# checking reserve
- my ($reservedate,$reservedfor,$expectedAt,$reserve_id,$wait) = GetReservesFromItemnumber($itemnumber,1); #alldates parameter to include future holds/waits
+ my ($reservedate,$reservedfor,$expectedAt,$reserve_id,$wait) = GetReservesFromItemnumber($itemnumber);
my $ItemBorrowerReserveInfo = GetMember( borrowernumber => $reservedfor );
if ( defined $reservedate ) {