X-Git-Url: http://git.rot13.org/?a=blobdiff_plain;f=C4%2FXSLT.pm;h=bf2647ab74dd7d0883f56e58cf6e576b486e3698;hb=102b1ca4bf3b1721f496417473643ff951c13833;hp=364d6a130a501d6231b0e4b3333e95d463a30f60;hpb=df97814f3034a3d5015546c4eca21f08ae951e37;p=koha.git
diff --git a/C4/XSLT.pm b/C4/XSLT.pm
index 364d6a130a..bf2647ab74 100644
--- a/C4/XSLT.pm
+++ b/C4/XSLT.pm
@@ -24,12 +24,13 @@ package C4::XSLT;
use Modern::Perl;
use C4::Context;
-use C4::Branch;
use C4::Items;
use C4::Koha;
use C4::Biblio;
use C4::Circulation;
use C4::Reserves;
+use Koha::AuthorisedValues;
+use Koha::ItemTypes;
use Koha::XSLT_Handler;
use Koha::Libraries;
@@ -67,7 +68,7 @@ Is only used in this module currently.
sub transformMARCXML4XSLT {
my ($biblionumber, $record) = @_;
my $frameworkcode = GetFrameworkCode($biblionumber) || '';
- my $tagslib = &GetMarcStructure(1,$frameworkcode);
+ my $tagslib = &GetMarcStructure(1, $frameworkcode, { unsafe => 1 });
my @fields;
# FIXME: wish there was a better way to handle exceptions
eval {
@@ -179,7 +180,7 @@ sub get_xslt_sysprefs {
# singleBranchMode was a system preference, but no longer is
# we can retain it here for compatibility
- my $singleBranchMode = Koha::Libraries->search->count == 1;
+ my $singleBranchMode = Koha::Libraries->search->count == 1 ? 1 : 0;
$sysxml .= "$singleBranchMode\n";
$sysxml .= "\n";
@@ -273,12 +274,14 @@ sub buildKohaItemsNamespace {
@items = grep { !$hi{$_->{itemnumber}} } @items;
}
- my $shelflocations = GetKohaAuthorisedValues('items.location',GetFrameworkCode($biblionumber), 'opac');
- my $ccodes = GetKohaAuthorisedValues('items.ccode',GetFrameworkCode($biblionumber), 'opac');
+ my $shelflocations =
+ { map { $_->{authorised_value} => $_->{opac_description} } Koha::AuthorisedValues->get_descriptions_by_koha_field( { frameworkcode => GetFrameworkCode($biblionumber), kohafield => 'items.location' } ) };
+ my $ccodes =
+ { map { $_->{authorised_value} => $_->{opac_description} } Koha::AuthorisedValues->get_descriptions_by_koha_field( { frameworkcode => GetFrameworkCode($biblionumber), kohafield => 'items.ccode' } ) };
my %branches = map { $_->branchcode => $_->branchname } Koha::Libraries->search({}, { order_by => 'branchname' });
- my $itemtypes = GetItemTypes();
+ my $itemtypes = { map { $_->{itemtype} => $_ } @{ Koha::ItemTypes->search->unblessed } };
my $location = "";
my $ccode = "";
my $xml = '';
@@ -289,12 +292,12 @@ sub buildKohaItemsNamespace {
my $reservestatus = C4::Reserves::GetReserveStatus( $item->{itemnumber} );
- if ( $itemtypes->{ $item->{itype} }->{notforloan} || $item->{notforloan} || $item->{onloan} || $item->{withdrawn} || $item->{itemlost} || $item->{damaged} ||
+ if ( ( $item->{itype} && $itemtypes->{ $item->{itype} }->{notforloan} ) || $item->{notforloan} || $item->{onloan} || $item->{withdrawn} || $item->{itemlost} || $item->{damaged} ||
(defined $transfertwhen && $transfertwhen ne '') || $item->{itemnotforloan} || (defined $reservestatus && $reservestatus eq "Waiting") ){
if ( $item->{notforloan} < 0) {
$status = "On order";
}
- if ( $item->{itemnotforloan} > 0 || $item->{notforloan} > 0 || $itemtypes->{ $item->{itype} }->{notforloan} == 1 ) {
+ if ( $item->{itemnotforloan} && $item->{itemnotforloan} > 0 || $item->{notforloan} && $item->{notforloan} > 0 || $item->{itype} && $itemtypes->{ $item->{itype} }->{notforloan} && $itemtypes->{ $item->{itype} }->{notforloan} == 1 ) {
$status = "reference";
}
if ($item->{onloan}) {
@@ -323,14 +326,16 @@ sub buildKohaItemsNamespace {
$location = $item->{location}? xml_escape($shelflocations->{$item->{location}}||$item->{location}):'';
$ccode = $item->{ccode}? xml_escape($ccodes->{$item->{ccode}}||$item->{ccode}):'';
my $itemcallnumber = xml_escape($item->{itemcallnumber});
+ my $stocknumber = $item->{stocknumber}? xml_escape($item->{stocknumber}):'';
$xml .=
"- "
. "$homebranch"
. "$holdingbranch"
. "$location"
. "$ccode"
- . "$status"
+ . "".( $status // q{} ).""
. "$itemcallnumber"
+ . "$stocknumber"
. "
";
}
$xml = "".$xml."";