# We delete any existing holds
require C4::Reserves;
- my ($count, $reserves) = C4::Reserves::GetReservesFromBiblionumber($biblionumber);
+ my $reserves = C4::Reserves::GetReservesFromBiblionumber({ biblionumber => $biblionumber });
foreach my $res ( @$reserves ) {
C4::Reserves::CancelReserve({ reserve_id => $res->{'reserve_id'} });
}
# Get most of the needed data
my $biblioitemnumber = $biblioitem->{'biblioitemnumber'};
- my @reserves = GetReservesFromBiblionumber( $biblionumber, undef, undef );
+ my $reserves = GetReservesFromBiblionumber({ biblionumber => $biblionumber });
my $issues = GetBiblioIssues($biblionumber);
my $items = GetItemsByBiblioitemnumber($biblioitemnumber);
# Hashref building...
$biblioitem->{'items'}->{'item'} = $items;
- $biblioitem->{'reserves'}->{'reserve'} = $reserves[1];
+ $biblioitem->{'reserves'}->{'reserve'} = $reserves;
$biblioitem->{'issues'}->{'issue'} = $issues;
push @records, $biblioitem;
=head2 GetReservesFromBiblionumber
- ($count, $title_reserves) = GetReservesFromBiblionumber($biblionumber);
+ my $reserves = GetReservesFromBiblionumber({
+ biblionumber => $biblionumber,
+ itemnumber => $itemnumber,
+ all_dates => 1|0
+ });
-This function gets the list of reservations for one C<$biblionumber>, returning a count
-of the reserves and an arrayref pointing to the reserves for C<$biblionumber>.
+This function gets the list of reservations for one C<$biblionumber>,
+returning an arrayref pointing to the reserves for C<$biblionumber>.
=cut
sub GetReservesFromBiblionumber {
- my ($biblionumber) = shift or return (0, []);
- my ($all_dates) = shift;
- my ($itemnumber) = shift;
+ my ( $params ) = @_;
+ my $biblionumber = $params->{biblionumber} or return [];
+ my $itemnumber = $params->{itemnumber};
+ my $all_dates = $params->{all_dates} // 0;
my $dbh = C4::Context->dbh;
# Find the desired items in the reserves
}
push @results, $data;
}
- return ( $#results + 1, \@results );
+ return \@results;
}
=head2 GetReservesFromItemnumber
}
my $borrower = GetMember(borrowernumber=>$issue->{'borrowernumber'});
$item->{patron} = $borrower->{'cardnumber'};
- my ($whatever, $arrayref) = GetReservesFromBiblionumber($item->{biblionumber});
- $item->{hold_queue} = [ sort priority_sort @$arrayref ];
+ my $reserves = GetReservesFromBiblionumber({ biblionumber => $item->{biblionumber} });
+ $item->{hold_queue} = [ sort priority_sort @$reserves ];
$item->{hold_shelf} = [( grep { defined $_->{found} and $_->{found} eq 'W' } @{$item->{hold_queue}} )];
$item->{pending_queue} = [( grep {(! defined $_->{found}) or $_->{found} ne 'W' } @{$item->{hold_queue}} )];
$self = $item;
$line{holds} = 0;
my @itemnumbers = GetItemnumbersFromOrder( $order->{ordernumber} );
for my $itemnumber ( @itemnumbers ) {
- my ( $count ) = &GetReservesFromBiblionumber($line{biblionumber}, undef, $itemnumber);
- $line{holds} += $count;
+ my $holds = GetReservesFromBiblionumber({ biblionumber => $line{biblionumber}, itemnumber => $itemnumber });
+ $line{holds} += scalar( @$holds );
}
$line{budget} = GetBudgetByOrderNumber( $line{ordernumber} );
$totalprice += $order->{unitprice};
);
-my ( $holdcount, $holds ) = C4::Reserves::GetReservesFromBiblionumber($biblionumber,1);
+my $holds = C4::Reserves::GetReservesFromBiblionumber({ biblionumber => $biblionumber, all_dates => 1 });
+my $holdcount = scalar( @$holds );
$template->param( holdcount => $holdcount, holds => $holds );
output_html_with_http_headers $query, $cookie, $template->output;
searchid => $query->param('searchid'),
);
-my ( $holdcount, $holds ) = C4::Reserves::GetReservesFromBiblionumber($biblionumber,1);
+my $holds = C4::Reserves::GetReservesFromBiblionumber({ biblionumber => $biblionumber, all_dates => 1 });
+my $holdcount = scalar( @$holds );
$template->param( holdcount => $holdcount, holds => $holds );
output_html_with_http_headers $query, $cookie, $template->output;
'sort'=>'-weight', limit=>$tag_quantity}));
}
-my ( $holdcount, $holds ) = C4::Reserves::GetReservesFromBiblionumber($biblionumber,1);
+my $holds = C4::Reserves::GetReservesFromBiblionumber({ biblionumber => $biblionumber, all_dates => 1 });
+my $holdcount = scalar ( @$holds );
$template->param( holdcount => $holdcount, holds => $holds );
my $StaffDetailItemSelection = C4::Context->preference('StaffDetailItemSelection');
if ($StaffDetailItemSelection) {
$template->param(C4::Search::enabled_staff_search_views);
$template->{VARS}->{'biblio'} = $biblio;
-my ( $holdcount, $holds ) = C4::Reserves::GetReservesFromBiblionumber($biblionumber,1);
+my $holds = C4::Reserves::GetReservesFromBiblionumber({ biblionumber => $biblionumber, all_dates => 1 });
+my $holdcount = scalar( @$holds );
$template->param( holdcount => $holdcount, holds => $holds );
output_html_with_http_headers $query, $cookie, $template->output;
searchid => $query->param('searchid'),
);
-my ( $holdcount, $holds ) = C4::Reserves::GetReservesFromBiblionumber($biblionumber,1);
+my $holds= C4::Reserves::GetReservesFromBiblionumber({ biblionumber => $biblionumber, all_dates => 1 });
+my $holdcount = scalar( @$holds );
$template->param( holdcount => $holdcount, holds => $holds );
output_html_with_http_headers $query, $cookie, $template->output;
$template->{'VARS'}->{'searchid'} = $query->param('searchid');
-my ( $holdcount, $holds ) = GetReservesFromBiblionumber($biblionumber,1);
+my $holds = GetReservesFromBiblionumber({ biblionumber => $biblionumber, all_dates => 1 });
+my $holdcount = scalar( @$holds );
$template->param( holdcount => $holdcount, holds => $holds );
output_html_with_http_headers $query, $cookie, $template->output;
}
my $has_hold;
if ( $show_holds_count || $show_priority) {
- my ($reserve_count,$reserves) = GetReservesFromBiblionumber($biblionumber);
- $template->param( holds_count => $reserve_count ) if $show_holds_count;
+ my $reserves = GetReservesFromBiblionumber({ biblionumber => $biblionumber });
+ $template->param( holds_count => scalar( @$reserves ) ) if $show_holds_count;
foreach (@$reserves) {
$item_reserves{ $_->{itemnumber} }++ if $_->{itemnumber};
if ($show_priority && $_->{borrowernumber} == $borrowernumber) {
}
# Compute the priority rank.
- my ( $rank, $reserves ) =
- GetReservesFromBiblionumber( $biblioNumber, 1 );
+ my $reserves = GetReservesFromBiblionumber({ biblionumber => $biblioNumber, all_dates => 1 });
+ my $rank = scalar( @$reserves );
$biblioData->{reservecount} = 1; # new reserve
foreach my $res (@{$reserves}) {
my $found = $res->{found};
}
# get existing reserves .....
- my ( $count, $reserves ) = GetReservesFromBiblionumber($biblionumber,1);
+ my $reserves = GetReservesFromBiblionumber({ biblionumber => $biblionumber, all_dates => 1 });
+ my $count = scalar( @$reserves );
my $totalcount = $count;
my $holds_count = 0;
my $alreadyreserved = 0;
# existingreserves building
my @reserveloop;
- ( $count, $reserves ) = GetReservesFromBiblionumber($biblionumber,1);
+ $reserves = GetReservesFromBiblionumber({ biblionumber => $biblionumber, all_dates => 1 });
foreach my $res ( sort {
my $a_found = $a->{found} || '';
my $b_found = $a->{found} || '';
if (C4::Context->preference('RoutingListAddReserves')){
# get existing reserves .....
- my ($count,$reserves) = GetReservesFromBiblionumber($biblio);
- my $totalcount = $count;
+ my $reserves = GetReservesFromBiblionumber({ biblionumber => $biblio });
+ my $count = scalar( @$reserves );
+ my $totalcount = $count;
foreach my $res (@$reserves) {
if ($res->{'found'} eq 'W') {
$count--;
}
-my ($count, $reserves) = GetReservesFromBiblionumber($biblionumber);
-is( $count, $borrowers_count, "Test GetReserves()" );
+my $reserves = GetReservesFromBiblionumber({ biblionumber => $biblionumber });
+is( scalar(@$reserves), $borrowers_count, "Test GetReserves()" );
my ( $reservedate, $borrowernumber, $branchcode, $reserve_id ) = GetReservesFromItemnumber($itemnumber);
CancelReserve({ 'reserve_id' => $reserve_id });
-($count, $reserves) = GetReservesFromBiblionumber($biblionumber);
-ok( $count == $borrowers_count - 1, "Test CancelReserve()" );
+$reserves = GetReservesFromBiblionumber({ biblionumber => $biblionumber });
+is( scalar(@$reserves), $borrowers_count - 1, "Test CancelReserve()" );
( $reservedate, $borrowernumber, $branchcode, $reserve_id ) = GetReservesFromItemnumber($itemnumber);
ok( $reserve->{'reserve_id'} eq $reserve2->{'reserve_id'}, "Test GetReserveInfo()" );
-($count, $reserves) = GetReservesFromBiblionumber($biblionumber,1);
+$reserves = GetReservesFromBiblionumber({ biblionumber => $biblionumber, all_dates => 1 });
$reserve = $reserves->[1];
AlterPriority( 'top', $reserve->{'reserve_id'} );
$reserve = GetReserve( $reserve->{'reserve_id'} );