@@ -, +, @@ --- C4/Members.pm | 19 +++++++++++++------ circ/circulation.pl | 8 ++++++-- members/moremember.pl | 9 ++++++--- 3 files changed, 25 insertions(+), 11 deletions(-) --- a/C4/Members.pm +++ a/C4/Members.pm @@ -1023,13 +1023,19 @@ The keys include C fields except marc and marcxml. #' sub GetPendingIssues { - my (@borrowernumbers) = @_; + my @borrowernumbers = @_; + + unless (@borrowernumbers ) { # return a ref_to_array + return \@borrowernumbers; # to not cause surprise to caller + } # Borrowers part of the query my $bquery = ''; for (my $i = 0; $i < @borrowernumbers; $i++) { - $bquery .= " borrowernumber = ?"; - $bquery .= " OR" if ($i < (scalar(@borrowernumbers) - 1)); + $bquery .= ' borrowernumber = ?'; + if ($i < $#borrowernumbers ) { + $bquery .= ' OR'; + } } # must avoid biblioitems.* to prevent large marc and marcxml fields from killing performance @@ -1070,9 +1076,10 @@ sub GetPendingIssues { $sth->execute(@borrowernumbers); my $data = $sth->fetchall_arrayref({}); my $today = C4::Dates->new->output('iso'); - foreach (@$data) { - $_->{date_due} or next; - ($_->{date_due} lt $today) and $_->{overdue} = 1; + foreach (@{$data}) { + if ($_->{date_due} and $_->{date_due} lt $today) { + $_->{overdue} = 1; + } } return $data; } --- a/circ/circulation.pl +++ a/circ/circulation.pl @@ -463,8 +463,11 @@ if ($borrower) { #push @borrowernumbers, $borrower->{'borrowernumber'}; # get each issue of the borrower & separate them in todayissues & previous issues - my ($issueslist) = GetPendingIssues($borrower->{'borrowernumber'}); - my ($relissueslist) = GetPendingIssues(@relborrowernumbers); + my $issueslist = GetPendingIssues($borrower->{'borrowernumber'}); + my $relissueslist = []; + if ( @relborrowernumbers ) { + $relissueslist = GetPendingIssues(@relborrowernumbers); + } build_issue_data($issueslist, 0); build_issue_data($relissueslist, 1); @@ -477,6 +480,7 @@ if ($borrower) { else { @todaysissues = sort { $b->{'timestamp'} cmp $a->{'timestamp'} } @todaysissues; } + if ( C4::Context->preference( "previousIssuesDefaultSortOrder" ) eq 'asc' ){ @previousissues = sort { $a->{'date_due'} cmp $b->{'date_due'} } @previousissues; } --- a/members/moremember.pl +++ a/members/moremember.pl @@ -242,9 +242,12 @@ if ( C4::Context->preference('OPACPrivacy') ) { # my @borrowernumbers = GetMemberRelatives($borrowernumber); my $issue = GetPendingIssues($borrowernumber); -my $relissue = GetPendingIssues(@borrowernumbers); -my $issuecount = scalar(@$issue); -my $relissuecount = scalar(@$relissue); +my $relissue = []; +if ( @borrowernumbers ) { + $relissue = GetPendingIssues(@borrowernumbers); +} +my $issuecount = @{$issue}; +my $relissuecount = @{$relissue}; my $roaddetails = &GetRoadTypeDetails( $data->{'streettype'} ); my $today = POSIX::strftime("%Y-%m-%d", localtime); # iso format my @issuedata; --