@@ -, +, @@
checks
---
Koha/Biblio.pm | 10 ++++++++--
opac/opac-recall.pl | 2 +-
recalls/request.pl | 4 ++--
t/db_dependent/Holds.t | 2 +-
t/db_dependent/Koha/Recall.t | 2 +-
t/db_dependent/Koha/Recalls.t | 2 +-
t/db_dependent/XSLT.t | 4 ++--
7 files changed, 16 insertions(+), 10 deletions(-)
--- a/Koha/Biblio.pm
+++ a/Koha/Biblio.pm
@@ -951,7 +951,11 @@ Return all active recalls attached to this biblio, sorted by oldest first
=cut
sub recalls {
- my ( $self ) = @_;
+ my ( $self, $params ) = @_;
+ if ( $params->{borrowernumber} ) {
+ my @recalls_rs = Koha::Recalls->search({ biblionumber => $self->biblionumber, old => undef, borrowernumber => $params->{borrowernumber} }, { order_by => { -asc => 'recalldate' } });
+ return @recalls_rs;
+ }
my @recalls_rs = Koha::Recalls->search({ biblionumber => $self->biblionumber, old => undef }, { order_by => { -asc => 'recalldate' } });
return @recalls_rs;
}
@@ -984,7 +988,9 @@ sub can_be_recalled {
my @itemtypes;
my @itemnumbers;
my @items;
+ my @all_itemnumbers;
foreach my $item ( @all_items ) {
+ push( @all_itemnumbers, $item->itemnumber );
if ( $item->can_be_recalled({ patron => $patron }) ) {
push( @itemtypes, $item->effective_itemtype );
push( @itemnumbers, $item->itemnumber );
@@ -1031,7 +1037,7 @@ sub can_be_recalled {
return 0 if ( $patron->recalls({ biblionumber => $self->biblionumber })->count >= $recalls_per_record );
# check if any of the items under this biblio are already checked out by this borrower
- return 0 if ( Koha::Checkouts->search({ itemnumber => [ @itemnumbers ], borrowernumber => $patron->borrowernumber })->count > 0 );
+ return 0 if ( Koha::Checkouts->search({ itemnumber => [ @all_itemnumbers ], borrowernumber => $patron->borrowernumber })->count > 0 );
}
# check item availability
--- a/opac/opac-recall.pl
+++ a/opac/opac-recall.pl
@@ -46,7 +46,7 @@ if ( C4::Context->preference('UseRecalls') ) {
my $items = Koha::Items->search({ biblionumber => $biblionumber });
# check if already recalled
- my $recalled = scalar $biblio->recalls;
+ my $recalled = scalar $biblio->recalls({ borrowernumber => $borrowernumber });
if ( defined $recalled and $recalled > 0 ) {
my $recalls_per_record = Koha::CirculationRules->get_effective_rule({
categorycode => $patron->categorycode,
--- a/recalls/request.pl
+++ a/recalls/request.pl
@@ -18,8 +18,8 @@
use Modern::Perl;
use CGI qw ( -utf8 );
-use C4::Auth;
-use C4::Output;
+use C4::Auth qw( get_template_and_user );
+use C4::Output qw( output_html_with_http_headers );
use C4::Search;
use Koha::Recalls;
use Koha::Biblios;
--- a/t/db_dependent/Holds.t
+++ a/t/db_dependent/Holds.t
@@ -7,7 +7,7 @@ use t::lib::TestBuilder;
use C4::Context;
-use Test::More tests => 72;
+use Test::More tests => 73;
use MARC::Record;
use C4::Biblio;
--- a/t/db_dependent/Koha/Recall.t
+++ a/t/db_dependent/Koha/Recall.t
@@ -21,7 +21,7 @@ use Test::More tests => 27;
use t::lib::TestBuilder;
use t::lib::Mocks;
-use Koha::DateUtils;
+use Koha::DateUtils qw( dt_from_string );
BEGIN {
require_ok('Koha::Recall');
--- a/t/db_dependent/Koha/Recalls.t
+++ a/t/db_dependent/Koha/Recalls.t
@@ -21,7 +21,7 @@ use Test::More tests => 19;
use t::lib::TestBuilder;
use t::lib::Mocks;
-use Koha::DateUtils;
+use Koha::DateUtils qw( dt_from_string );
BEGIN {
require_ok('Koha::Recall');
--- a/t/db_dependent/XSLT.t
+++ a/t/db_dependent/XSLT.t
@@ -131,7 +131,7 @@ subtest 'buildKohaItemsNamespace status tests' => sub {
}
});
$xml = C4::XSLT::buildKohaItemsNamespace( $item->biblionumber,[]);
- like($xml,qr{Waiting},"Waiting status takes precedence over In transit (holds)");
+ like($xml,qr{Hold waiting},"Waiting status takes precedence over In transit (holds)");
$hold->cancel;
$builder->build({ source => "TmpHoldsqueue", value => {
@@ -151,7 +151,7 @@ subtest 'buildKohaItemsNamespace status tests' => sub {
}});
$recall->set_waiting;
$xml = C4::XSLT::buildKohaItemsNamespace( $item->biblionumber,[]);
- like($xml,qr{Waiting},"Waiting status takes precedence over In transit (recalls)");
+ like($xml,qr{Recall waiting},"Waiting status takes precedence over In transit (recalls)");
};
--