Bug 9423: Add notforloan value to issue confirmation or blocking message
authorFridolyn SOMERS <fridolyn.somers@biblibre.com>
Fri, 18 Jan 2013 13:32:06 +0000 (14:32 +0100)
committerJared Camins-Esakov <jcamins@cpbibliography.com>
Wed, 20 Mar 2013 02:22:23 +0000 (22:22 -0400)
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 <oleonard@myacpl.org>
Works as advertised: Not for loan authorized value is correctly shown.

Signed-off-by: Paul Poulain <paul.poulain@biblibre.com>
Signed-off-by: Jared Camins-Esakov <jcamins@cpbibliography.com>
C4/Circulation.pm
circ/circulation.pl
koha-tmpl/intranet-tmpl/prog/en/modules/circ/circulation.tt

index abd4981..05b5b7e 100644 (file)
@@ -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;
 
@@ -835,8 +839,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'};
         }
     }
     else {
@@ -850,16 +856,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'};
             }
         }
     }
index 3382066..24b1576 100755 (executable)
@@ -286,6 +286,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(
index 39548f8..19b5bd7 100644 (file)
@@ -1,4 +1,5 @@
 [% USE KohaDates %]
+[% USE KohaAuthorisedValues %]
 [% INCLUDE 'doc-head-open.inc' %]
 [% SET destination = "circ" %]
 <title>Koha &rsaquo; Circulation
@@ -350,7 +351,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 ) %]
@@ -454,7 +463,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 ) %]