Bug 2655: Partial fix for Items on hold shelf showing as available.
authorGarry Collum <gcollum@gmail.com>
Sun, 21 Feb 2010 00:16:23 +0000 (19:16 -0500)
committerGalen Charlton <gmcharlt@gmail.com>
Mon, 22 Feb 2010 01:12:12 +0000 (20:12 -0500)
Fixes the opac results (opac-search.pl), if using xsl to transform data.  I have no way to test UNIMARC results, if someone could test it for me.

Signed-off-by: Galen Charlton <gmcharlt@gmail.com>
C4/XSLT.pm
koha-tmpl/opac-tmpl/prog/en/xslt/MARC21slim2OPACResults.xsl
koha-tmpl/opac-tmpl/prog/en/xslt/UNIMARCslim2OPACResults.xsl

index a5cf211..8dd7840 100644 (file)
@@ -26,6 +26,7 @@ use C4::Items;
 use C4::Koha;
 use C4::Biblio;
 use C4::Circulation;
+use C4::Reserves;
 use Encode;
 use XML::LibXML;
 use XML::LibXSLT;
@@ -173,8 +174,10 @@ sub buildKohaItemsNamespace {
 
         my ( $transfertwhen, $transfertfrom, $transfertto ) = C4::Circulation::GetTransfers($item->{itemnumber});
 
-        if ( $itemtypes->{ $item->{itype} }->{notforloan} || $item->{notforloan} || $item->{onloan} || $item->{wthdrawn} || $item->{itemlost} || $item->{damaged} ||
-             (defined $transfertwhen && $transfertwhen ne '') || $item->{itemnotforloan} ) {
+       my ( $reservestatus, $reserveitem ) = C4::Reserves::CheckReserves($item->{itemnumber});
+
+        if ( $itemtypes->{ $item->{itype} }->{notforloan} || $item->{notforloan} || $item->{onloan} || $item->{wthdrawn} || $item->{itemlost} || $item->{damaged} || 
+             (defined $transfertwhen && $transfertwhen ne '') || $item->{itemnotforloan} || (defined $reservestatus && $reservestatus eq "Waiting") ){ 
             if ( $item->{notforloan} < 0) {
                 $status = "On order";
             } 
@@ -196,6 +199,9 @@ sub buildKohaItemsNamespace {
             if (defined $transfertwhen && $transfertwhen ne '') {
                 $status = 'In transit';
             }
+            if (defined $reservestatus && $reservestatus eq "Waiting") {
+                $status = 'Waiting';
+            }
         } else {
             $status = "available";
         }
index 0ee5a73..f146aba 100644 (file)
                        <xsl:value-of select="count(key('item-by-status', 'In transit'))"/>
                        <xsl:text>). </xsl:text>                   </span>
                    </xsl:if>
+                    <xsl:if test="count(key('item-by-status', 'Waiting'))>0">
+                   <span class="unavailable">
+                       <xsl:text>On hold (</xsl:text>
+                       <xsl:value-of select="count(key('item-by-status', 'Waiting'))"/>
+                       <xsl:text>). </xsl:text>                   </span>
+                   </xsl:if>
                </span>
     </xsl:template>
 
index 612295e..6917ca2 100644 (file)
         <xsl:text>). </xsl:text>
       </span>
     </xsl:if>
+    <xsl:if test="count(key('item-by-status', 'Waiting'))>0">
+      <span class="unavailable">
+        <xsl:text>On hold (</xsl:text>
+        <xsl:value-of select="count(key('item-by-status', 'Waiting'))"/>
+        <xsl:text>). </xsl:text>
+      </span>
+    </xsl:if>
   </span>
 
 </xsl:template>