my $itemtypes = { map { $_->{itemtype} => $_ } @{ Koha::ItemTypes->search->unblessed } };
my $xml = '';
+ my %descs = map { $_->{authorised_value} => $_ } Koha::AuthorisedValues->get_descriptions_by_koha_field( { kohafield => 'items.notforloan' } );
+
for my $item (@items) {
my $status;
+ my $substatus = '';
+<<<<<<< HEAD
if ($item->has_pending_hold) {
$status = 'Pending hold';
elsif ($item->onloan) {
$status = "Checked out";
}
+ elsif ( $item->notforloan > 0 ) {
+ $status = "reallynotforloan";
+ $substatus = $descs{$item->{notforloan}} || '';
+ $substatus = $substatus->{opac_description} if $substatus;
+ }
elsif ( $item->notforloan && $item->notforloan > 0
|| exists $itemtypes->{ $item->effective_itemtype }
&& $itemtypes->{ $item->effective_itemtype }->{notforloan} == 1 )
. "<location>$location</location>"
. "<ccode>$ccode</ccode>"
. "<status>".( $status // q{} )."</status>"
+ . "<substatus>$substatus</substatus>"
. "<itemcallnumber>$itemcallnumber</itemcallnumber>"
. "<stocknumber>$stocknumber</stocknumber>"
. "</item>";
<xsl:key name="item-by-status" match="items:item" use="items:status"/>
<xsl:key name="item-by-status-and-branch-home" match="items:item" use="concat(items:status, ' ', items:homebranch)"/>
<xsl:key name="item-by-status-and-branch-holding" match="items:item" use="concat(items:status, ' ', items:holdingbranch)"/>
+ <xsl:key name="item-by-substatus-and-branch" match="items:item" use="concat(items:substatus, ' ', items:homebranch)"/>
<xsl:template match="/">
<xsl:apply-templates/>
</xsl:when></xsl:choose>
</xsl:when> </xsl:choose>
+ <xsl:if test="count(key('item-by-status', 'available'))=0">
+ <span class="available"><xsl:value-of select="items:homebranch"/><xsl:text>: </xsl:text></span>
+ </xsl:if>
+
+ <xsl:choose>
+ <xsl:when test="count(key('item-by-status', 'reallynotforloan'))>0">
+ <span class="unavailable">
+ <br />
+ <xsl:variable name="reference_items" select="key('item-by-status', 'reallynotforloan')"/>
+ <xsl:for-each select="$reference_items[generate-id() = generate-id(key('item-by-substatus-and-branch', concat(items:substatus, ' ', items:homebranch))[1])]">
+ <xsl:value-of select="items:substatus"/>
+ <xsl:if test="items:itemcallnumber != '' and items:itemcallnumber"> [<span class="LabelCallNumber">Call number: </span><xsl:value-of select="items:itemcallnumber"/>]</xsl:if>
+ <xsl:text> (</xsl:text>
+ <xsl:value-of select="count(key('item-by-substatus-and-branch', concat(items:substatus, ' ', items:homebranch)))"/>
+ <xsl:text>)</xsl:text>
+ <xsl:choose><xsl:when test="position()=last()"><xsl:text>. </xsl:text></xsl:when><xsl:otherwise><xsl:text>, </xsl:text></xsl:otherwise></xsl:choose>
+ </xsl:for-each>
+ </span>
+ </xsl:when>
+ </xsl:choose>
+
<xsl:if test="count(key('item-by-status', 'Checked out'))>0">
<span class="unavailable">
<xsl:text>Checked out (</xsl:text>