diff --git a/C4/XSLT.pm b/C4/XSLT.pm
index 2b484ccaf6..7a8e4a9112 100644
--- a/C4/XSLT.pm
+++ b/C4/XSLT.pm
@@ -358,7 +358,8 @@ sub buildKohaItemsNamespace {
if ( $recalls->count ) {
# recalls take priority over holds
- $status = 'Waiting';
+ $status = 'other';
+ $substatus = 'Recall waiting';
}
elsif ( $item->has_pending_hold ) {
$status = 'other';
@@ -366,7 +367,7 @@ sub buildKohaItemsNamespace {
}
elsif ( $item->holds->waiting->count ) {
$status = 'other';
- $substatus = 'Waiting';
+ $substatus = 'Hold waiting';
}
elsif ($item->get_transfer) {
$status = 'other';
diff --git a/Koha/Biblio.pm b/Koha/Biblio.pm
index 2c44a4a006..c8f31ca740 100644
--- a/Koha/Biblio.pm
+++ b/Koha/Biblio.pm
@@ -1171,7 +1171,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;
}
@@ -1204,7 +1208,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 );
@@ -1251,7 +1257,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
diff --git a/Koha/Recall.pm b/Koha/Recall.pm
index b74cf6b7f0..03c6167683 100644
--- a/Koha/Recall.pm
+++ b/Koha/Recall.pm
@@ -20,7 +20,7 @@ package Koha::Recall;
use Modern::Perl;
use Koha::Database;
-use Koha::DateUtils;
+use Koha::DateUtils qw( dt_from_string );
use Koha::Patron;
use Koha::Biblio;
use Koha::Item;
diff --git a/Koha/Recalls.pm b/Koha/Recalls.pm
index 55b6e3656d..be9f88e11e 100644
--- a/Koha/Recalls.pm
+++ b/Koha/Recalls.pm
@@ -21,7 +21,7 @@ use Modern::Perl;
use Koha::Database;
use Koha::Recall;
-use Koha::DateUtils;
+use Koha::DateUtils qw( dt_from_string );
use C4::Stats qw( UpdateStats );
diff --git a/koha-tmpl/intranet-tmpl/prog/en/includes/recalls.inc b/koha-tmpl/intranet-tmpl/prog/en/includes/recalls.inc
index 52b67ffbbc..de3036f858 100644
--- a/koha-tmpl/intranet-tmpl/prog/en/includes/recalls.inc
+++ b/koha-tmpl/intranet-tmpl/prog/en/includes/recalls.inc
@@ -43,7 +43,7 @@
[% UNLESS specific_patron %]
- [% recall.patron.firstname | html %] [% recall.patron.surname | html %] ([% recall.patron.cardnumber | html %])
+ [% INCLUDE 'patron-title.inc' patron=recall.patron hide_patron_infos_if_needed=1 link_to="circulation_recalls" %]
|
[% END %]
diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/circulation.pref b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/circulation.pref
index b85664d5e4..3e81898de6 100644
--- a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/circulation.pref
+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/circulation.pref
@@ -1281,6 +1281,6 @@ Circulation:
-
- pref: UseRecalls
choices:
- yes: Use
- no: "Don't use"
+ 1: Use
+ 0: "Don't use"
- recalls. Make sure you configure circulation and fines rules for recalls once enabled.
diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/logs.pref b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/logs.pref
index cff4d3f6ff..ba4dcbed7e 100644
--- a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/logs.pref
+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/logs.pref
@@ -111,8 +111,8 @@ Logging:
-
- pref: RecallsLog
choices:
- on: Log
- off: "Don't log"
+ 1: Log
+ 0: "Don't log"
- any actions on recalls (create, cancel, expire, fulfill).
Debugging:
diff --git a/misc/cronjobs/recalls/expire_recalls.pl b/misc/cronjobs/recalls/expire_recalls.pl
index 891911d546..38408e66da 100755
--- a/misc/cronjobs/recalls/expire_recalls.pl
+++ b/misc/cronjobs/recalls/expire_recalls.pl
@@ -31,7 +31,7 @@ BEGIN {
# - recalls that have been awaiting pickup for longer than the specified recall_shelf_time circulation rule, or the RecallsMaxPickUpDelay if circ rule is unset
use Koha::Script -cron;
-use Koha::DateUtils;
+use Koha::DateUtils qw( dt_from_string );
use Koha::Recalls;
use C4::Log;
diff --git a/opac/opac-recall.pl b/opac/opac-recall.pl
index f677832448..9a01607f46 100755
--- a/opac/opac-recall.pl
+++ b/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,
diff --git a/recalls/recalls_waiting.pl b/recalls/recalls_waiting.pl
index 30511c6e33..874129a4b2 100755
--- a/recalls/recalls_waiting.pl
+++ b/recalls/recalls_waiting.pl
@@ -22,7 +22,7 @@ use C4::Auth qw( get_template_and_user );
use C4::Output qw( output_html_with_http_headers );
use Koha::Recalls;
use Koha::BiblioFrameworks;
-use Koha::DateUtils;
+use Koha::DateUtils qw( dt_from_string );
use Koha::Patrons;
my $query = CGI->new;
diff --git a/recalls/request.pl b/recalls/request.pl
index 04e6cd0829..b086616ef8 100755
--- a/recalls/request.pl
+++ b/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;
diff --git a/t/db_dependent/Koha/Recall.t b/t/db_dependent/Koha/Recall.t
index e89cc88a5a..d6e43f8d2e 100755
--- a/t/db_dependent/Koha/Recall.t
+++ b/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');
diff --git a/t/db_dependent/Koha/Recalls.t b/t/db_dependent/Koha/Recalls.t
index 32dc9e96ba..02fd40b12f 100755
--- a/t/db_dependent/Koha/Recalls.t
+++ b/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');
diff --git a/t/db_dependent/XSLT.t b/t/db_dependent/XSLT.t
index b56ea7971e..c37f95ee57 100755
--- a/t/db_dependent/XSLT.t
+++ b/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)");
};