@@ -, +, @@ --- C4/ILSDI/Services.pm | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) --- a/C4/ILSDI/Services.pm +++ a/C4/ILSDI/Services.pm @@ -570,6 +570,18 @@ sub RenewLoan { return $out; } +sub _get_reserve_next_rank { + my ($biblionumber) = @_; + + my ( $count, $reserves ) = GetReservesFromBiblionumber($biblionumber,1); + foreach my $res (@$reserves) { + $count-- if (defined $res->{found} and $res->{found} eq 'W'); + } + my $rank = $count + 1; + + return $rank; +} + =head2 HoldTitle Creates, for a borrower, a biblio-level hold reserve. @@ -620,9 +632,11 @@ sub HoldTitle { $branch = $$borrower{branchcode}; } + my $rank = _get_reserve_next_rank($biblionumber); + # Add the reserve # $branch, $borrowernumber, $biblionumber, $constraint, $bibitems, $priority, $notes, $title, $checkitem, $found - AddReserve( $branch, $borrowernumber, $biblionumber, 'a', undef, 0, undef, $title, undef, undef ); + AddReserve( $branch, $borrowernumber, $biblionumber, 'a', undef, $rank, undef, $title, undef, undef ); # Hashref building my $out; @@ -695,7 +709,7 @@ sub HoldItem { $branch = $$borrower{branchcode}; } - my $rank; + my $rank = _get_reserve_next_rank($biblionumber); my $found; # Get rank and found --