From dc30c2c6a571310ad10f6de4d31220d8c5c60a48 Mon Sep 17 00:00:00 2001 From: Josef Moravec Date: Tue, 13 Mar 2018 14:57:49 +0000 Subject: [PATCH] Bug 20421: Inform staff that patron does have the title checked out during placing hold Test plan: 1) Enable the CheckPrevCheckout and DisplayMultiPlaceHold system preferences 2) Have a patron with some checkouts history 3) Try to place hold on one of titles from history for this patron 4) You should see an information at the top of confirm request page, but you still should be able to place a hold 5) Try this with multiple titles - one or more of them should be from history 6) You should see this information in "Information" column 7) There is also new column placed at the beggining with checkbox, you could uncheck it for titles you do not want to place a hold on it 8) Confirm the hold is placed only on checked titles --- .../prog/en/modules/reserve/request.tt | 28 ++++++++++++++++++---- reserve/request.pl | 16 +++++++++++++ 2 files changed, 39 insertions(+), 5 deletions(-) diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/reserve/request.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/reserve/request.tt index 4a1d6a3..603b4f5 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/modules/reserve/request.tt +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/reserve/request.tt @@ -98,7 +98,7 @@ function check() { } function checkMultiHold() { - var spans = $(".multi_hold_item"); + var spans = $(".multi_hold_item_checkbox:checked"); if ($(spans).size() == 0) { alert(MSG_NO_ITEMS_AVAILABLE); return false; @@ -291,6 +291,14 @@ function checkMultiHold() { [% ELSIF NOT noitems %] +[% IF ( checked_previously && !multi_hold ) %] +
+ +
+[% END %] + [% IF ( exceeded_maxreserves || exceeded_holds_per_record || alreadyreserved || none_available || alreadypossession || ageRestricted ) %]
@@ -630,6 +638,7 @@ function checkMultiHold() { + [% UNLESS ( item_level_itypes ) %] @@ -644,15 +653,17 @@ function checkMultiHold() { [% END %] + [% END %] + @@ -663,6 +674,9 @@ function checkMultiHold() { [% END %]
  TitleItem type
+ [% UNLESS ( biblioloo.warn ) %] + - [% UNLESS ( biblioloo.warn ) %] - - [% ELSE %] + [% IF ( biblioloo.warn ) %] [% END %] [% biblioloo.rank %] + [% IF ( biblioloo.checked_previously ) %] + Patron has previously checked out this title on [% biblioloo.checked_previously | $KohaDates %]
+ [% END %] [% IF ( biblioloo.alreadyres ) %]
    [% ELSE %] @@ -700,7 +714,11 @@ function checkMultiHold() { [% ELSIF ( none_available ) %] [% ELSE %] - + [% IF ( multi_hold ) %] + + [% ELSE %] + + [% END %] [% END %] [% END %] diff --git a/reserve/request.pl b/reserve/request.pl index d94a8ab..2111183 100755 --- a/reserve/request.pl +++ b/reserve/request.pl @@ -196,6 +196,10 @@ my $patron = Koha::Patrons->find( $borrowernumber_hold ); my $logged_in_patron = Koha::Patrons->find( $borrowernumber ); +my $wants_check; +if ($logged_in_patron) { + $wants_check = $logged_in_patron->wants_check_for_previous_checkout; +} my $itemdata_enumchron = 0; my @biblioloop = (); foreach my $biblionumber (@biblionumbers) { @@ -353,6 +357,18 @@ foreach my $biblionumber (@biblionumbers) { foreach my $itemnumber ( @{ $itemnumbers_of_biblioitem{$biblioitemnumber} } ) { my $item = $iteminfos_of->{$itemnumber}; + if ( $logged_in_patron ) { + my $do_check = $logged_in_patron->do_check_for_previous_checkout($item) if $wants_check; + if ( $do_check && $wants_check ) { + $item->{checked_previously} = $do_check; + if ( $multihold ) { + $biblioloopiter{checked_previously} = $do_check; + } else { + $template->param( checked_previously => $do_check ); + } + } + + } $item->{force_hold_level} = $force_hold_level; unless (C4::Context->preference('item-level_itypes')) { -- 2.1.4