diff --git a/C4/Reserves2.pm b/C4/Reserves2.pm index 06a7408ea5..1e4dad31a5 100755 --- a/C4/Reserves2.pm +++ b/C4/Reserves2.pm @@ -91,14 +91,21 @@ sub FindReserves { } sub Findgroupreserve { - my ($bibitem)=@_; + my ($bibitem,$biblio)=@_; my $dbh=C4Connect; $bibitem=$dbh->quote($bibitem); - my $query="Select * from reserves,reserveconstraints where - reserves.biblionumber=reservesconstraints.biblionumber and - and reserveconstraints.biblioitemnumber=$bibitem + my $query="Select * from reserves + left join reserveconstraints on + reserves.biblionumber=reserveconstraints.biblionumber + where + reserves.biblionumber=$biblio and + ((reserveconstraints.biblioitemnumber=$bibitem + and reserves.borrowernumber=reserveconstraints.borrowernumber + and reserves.reservedate=reserveconstraints.reservedate) + or reserves.constrainttype='a') and reserves.cancellationdate is NULL and (reserves.found <> 'F' or reserves.found is NULL)"; +# print $query; my $sth=$dbh->prepare($query); $sth->execute; my $i=0; diff --git a/C4/Search.pm b/C4/Search.pm index f5cd08e875..f81c423f25 100755 --- a/C4/Search.pm +++ b/C4/Search.pm @@ -907,7 +907,8 @@ sub ItemInfo { $datedue="Cancelled"; } if ($datedue eq ''){ - my ($rescount,$reserves)=FindReserves($biblionumber,''); + my ($rescount,$reserves)=Findgroupreserve($data->{'biblioitemnumber'},$biblionumber); + if ($rescount >0){ $datedue='Request'; } diff --git a/moremember.pl b/moremember.pl index 11152c2153..98ed06d844 100755 --- a/moremember.pl +++ b/moremember.pl @@ -226,7 +226,7 @@ for (my $i=0;$i<$count;$i++){ # print "   "; # } #check item is not reserved - my ($rescount,$reserves)=Findgroupreserve($issue->[$i]{'biblioitemnumber'},''); + my ($rescount,$reserves)=Findgroupreserve($issue->[$i]{'biblioitemnumber'},$issue->[$i]{'biblionumber'}); if ($rescount >0){ print "[$i]{'biblionumber'}>On Request - no renewals"; # } elsif ($issue->[$i]->{'renewals'} > 0) {