From 1b9fd044f50ae022ca02e6d25dd31236b0c14c75 Mon Sep 17 00:00:00 2001 From: Julian Maurice Date: Mon, 15 Oct 2012 14:06:04 +0200 Subject: [PATCH] [SIGNED-OFF] Bug 8918: ILS-DI: Calculate rank when placing hold Signed-off-by: Srikanth Dhondi --- C4/ILSDI/Services.pm | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/C4/ILSDI/Services.pm b/C4/ILSDI/Services.pm index 5a62954..1c5ae28 100644 --- a/C4/ILSDI/Services.pm +++ b/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 -- 1.7.9.5