From a0036c5eb76d995600574f7a55b0525c4b906e4e 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 d4956573ce..f3a83b30a1 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/modules/reserve/request.tt +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/reserve/request.tt @@ -90,6 +90,14 @@ [% ELSIF NOT noitems %] +[% IF ( checked_previously && !multi_hold ) %] +
+ +
+[% END %] + [% IF ( exceeded_maxreserves || exceeded_holds_per_record || alreadyreserved || none_available || alreadypossession || ageRestricted ) %]
@@ -439,6 +447,7 @@ + [% UNLESS ( item_level_itypes ) %] @@ -453,15 +462,17 @@ [% END %] + [% END %] + @@ -472,6 +483,9 @@ [% END %]
  TitleItem type
+ [% UNLESS ( biblioloo.warn ) %] + - [% UNLESS ( biblioloo.warn ) %] - - [% ELSE %] + [% IF ( biblioloo.warn ) %] [% END %] [% biblioloo.rank | html %] + [% IF ( biblioloo.checked_previously ) %] + Patron has previously checked out this title
+ [% END %] [% IF ( biblioloo.alreadyres ) %]
    [% ELSE %] @@ -509,7 +523,11 @@ [% ELSIF ( none_available ) %] [% ELSE %] - + [% IF ( multi_hold ) %] + + [% ELSE %] + + [% END %] [% END %] [% END %] @@ -742,7 +760,7 @@ } 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; diff --git a/reserve/request.pl b/reserve/request.pl index 2ef00c8b95..1520dd011b 100755 --- a/reserve/request.pl +++ b/reserve/request.pl @@ -143,6 +143,7 @@ if ( $biblionumbers ) { push @biblionumbers, $input->multi_param('biblionumber'); } +my $multihold = scalar $input->param('multi_hold'); # FIXME multi_hold should not be a variable but depends on the number of elements in @biblionumbers $template->param(multi_hold => scalar $input->param('multi_hold')); @@ -208,6 +209,10 @@ my $patron = Koha::Patrons->find( $borrowernumber_hold ); my $logged_in_patron = Koha::Patrons->find( $borrowernumber ); +my $wants_check; +if ($patron) { + $wants_check = $patron->wants_check_for_previous_checkout; +} my $itemdata_enumchron = 0; my $itemdata_ccode = 0; my @biblioloop = (); @@ -374,6 +379,17 @@ foreach my $biblionumber (@biblionumbers) { foreach my $itemnumber ( @{ $itemnumbers_of_biblioitem{$biblioitemnumber} } ) { my $item = $iteminfos_of->{$itemnumber}; + if ( $patron ) { + my $do_check = $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.17.1