From 13fc140b83915791d53abab5a871423c54d24125 Mon Sep 17 00:00:00 2001 From: Fridolyn SOMERS Date: Fri, 18 Jan 2013 14:32:06 +0100 Subject: [PATCH] Bug 9423: Add notforloan value to issue confirmation or blocking message When trying to checkout an item that is not for loan (due to items.notforloan value or because itemtype is not for loan), you get a confirmation or blocking message (depending on AllowNotForLoanOverride syspref). This message tells "Item is normally not for loan". This patch adds some informations : if itemtype is not for loan, tells "Item type is normally not for loan". if item is not for loan due to items.notforloan value, adds notforloan description to message. Signed-off-by: Owen Leonard Works as advertised: Not for loan authorized value is correctly shown. Signed-off-by: Paul Poulain Signed-off-by: Jared Camins-Esakov Signed-off-by: Chris Cormack --- C4/Circulation.pm | 12 ++++++++++- circ/circulation.pl | 6 ++++++ .../prog/en/modules/circ/circulation.tt | 20 +++++++++++++++++-- 3 files changed, 35 insertions(+), 3 deletions(-) diff --git a/C4/Circulation.pm b/C4/Circulation.pm index ad86d4193d..981939f667 100644 --- a/C4/Circulation.pm +++ b/C4/Circulation.pm @@ -36,7 +36,11 @@ use C4::Message; use C4::Debug; use C4::Branch; # GetBranches use C4::Log; # logaction -use C4::Koha qw(GetAuthorisedValueByCode); +use C4::Koha qw( + GetAuthorisedValueByCode + GetAuthValCode + GetKohaAuthorisedValueLib +); use C4::Overdues qw(CalcFine UpdateFine); use Algorithm::CheckDigits; @@ -832,8 +836,10 @@ sub CanBookBeIssued { { if(!C4::Context->preference("AllowNotForLoanOverride")){ $issuingimpossible{NOT_FOR_LOAN} = 1; + $issuingimpossible{item_notforloan} = $item->{'notforloan'}; }else{ $needsconfirmation{NOT_FOR_LOAN_FORCING} = 1; + $needsconfirmation{item_notforloan} = $item->{'notforloan'}; } } elsif ( !$item->{'notforloan'} ){ @@ -847,16 +853,20 @@ sub CanBookBeIssued { if ($notforloan->{'notforloan'}) { if (!C4::Context->preference("AllowNotForLoanOverride")) { $issuingimpossible{NOT_FOR_LOAN} = 1; + $issuingimpossible{itemtype_notforloan} = $item->{'itype'}; } else { $needsconfirmation{NOT_FOR_LOAN_FORCING} = 1; + $needsconfirmation{itemtype_notforloan} = $item->{'itype'}; } } } elsif ($biblioitem->{'notforloan'} == 1){ if (!C4::Context->preference("AllowNotForLoanOverride")) { $issuingimpossible{NOT_FOR_LOAN} = 1; + $issuingimpossible{itemtype_notforloan} = $biblioitem->{'itemtype'}; } else { $needsconfirmation{NOT_FOR_LOAN_FORCING} = 1; + $needsconfirmation{itemtype_notforloan} = $biblioitem->{'itemtype'}; } } } diff --git a/circ/circulation.pl b/circ/circulation.pl index 91fd1a2068..0e36e8e95f 100755 --- a/circ/circulation.pl +++ b/circ/circulation.pl @@ -287,6 +287,12 @@ if ($barcode) { $template->param( alert => $alerts ); + # Get the item title for more information + my $getmessageiteminfo = GetBiblioFromItemNumber(undef,$barcode); + $template->param( + authvalcode_notforloan => C4::Koha::GetAuthValCode('items.notforloan', $getmessageiteminfo->{'frameworkcode'}), + ); + delete $question->{'DEBT'} if ($debt_confirmed); foreach my $impossible ( keys %$error ) { $template->param( diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/circ/circulation.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/circ/circulation.tt index 9870db6116..3b3bbb0de1 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/modules/circ/circulation.tt +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/circ/circulation.tt @@ -1,4 +1,5 @@ [% USE KohaDates %] +[% USE KohaAuthorisedValues %] [% INCLUDE 'doc-head-open.inc' %] Koha › Circulation [% IF borrowernumber %] @@ -358,7 +359,15 @@ function validate1(date) { [% END %] [% IF ( NOT_FOR_LOAN_FORCING ) %] - <li>Item is normally not for loan. Check out anyway?</li> + <li> + [% IF ( itemtype_notforloan ) %] + Item type is normally not for loan. + [% ELSIF ( item_notforloan ) %] + [% item_notforloan_lib = KohaAuthorisedValues.GetByCode( authvalcode_notforloan, item_notforloan, 0 ) %] + Item is normally not for loan [% IF (item_notforloan_lib) %]([% item_notforloan_lib %])[% END %]. + [% END %] + Check out anyway? + </li> [% END %] [% IF ( USERBLOCKEDOVERDUE ) %] @@ -462,7 +471,14 @@ function validate1(date) { [% END %] [% IF ( NOT_FOR_LOAN ) %] - <li>Item not for loan</li> + <li> + [% IF ( itemtype_notforloan ) %] + Item type not for loan. + [% ELSIF ( item_notforloan ) %] + [% item_notforloan_lib = KohaAuthorisedValues.GetByCode( authvalcode_notforloan, item_notforloan, 0 ) %] + Item not for loan [% IF (item_notforloan_lib) %]([% item_notforloan_lib %])[% END %]. + [% END %] + </li> [% END %] [% IF ( WTHDRAWN ) %] -- 2.39.5