diff --git a/C4/Biblio.pm b/C4/Biblio.pm index d52d7807af..80ca362928 100644 --- a/C4/Biblio.pm +++ b/C4/Biblio.pm @@ -44,6 +44,7 @@ use Koha::Acquisition::Currencies; use Koha::Biblio::Metadata; use Koha::Biblio::Metadatas; use Koha::Holds; +use Koha::ItemTypes; use Koha::SearchEngine; use Koha::Libraries; @@ -1629,7 +1630,8 @@ sub GetAuthorisedValueDesc { #---- itemtypes if ( $tagslib->{$tag}->{$subfield}->{'authorised_value'} eq "itemtypes" ) { - return getitemtypeinfo($value)->{translated_description}; + my $itemtype = Koha::ItemTypes->find( $value ); + return $itemtype ? $itemtype->translated_description : q||; } #---- "true" authorized value diff --git a/Koha/Template/Plugin/ItemTypes.pm b/Koha/Template/Plugin/ItemTypes.pm index 449a491669..74ccacc653 100644 --- a/Koha/Template/Plugin/ItemTypes.pm +++ b/Koha/Template/Plugin/ItemTypes.pm @@ -22,15 +22,11 @@ use Modern::Perl; use Template::Plugin; use base qw( Template::Plugin ); -use C4::Koha; use Koha::ItemTypes; sub GetDescription { my ( $self, $itemtype ) = @_; - - $itemtype = C4::Koha::getitemtypeinfo( $itemtype ); - return $itemtype->{translated_description}; - + return Koha::ItemTypes->find( $itemtype )->translated_description; } sub Get { diff --git a/acqui/orderreceive.pl b/acqui/orderreceive.pl index 837a117b52..752beba2f8 100755 --- a/acqui/orderreceive.pl +++ b/acqui/orderreceive.pl @@ -75,6 +75,7 @@ use C4::Koha; use Koha::Acquisition::Booksellers; use Koha::DateUtils qw( dt_from_string ); +use Koha::ItemTypes; my $input = new CGI; @@ -144,8 +145,8 @@ if ($AcqCreateItem eq 'receiving') { $descriptions = Koha::AuthorisedValues->get_description_by_koha_field({frameworkcode => $fw, kohafield => 'items.materials', authorised_value => $item->{materials} }); $item->{materials} = $descriptions->{lib} // ''; - my $itemtype = getitemtypeinfo($item->{itype}); - $item->{itemtype} = $itemtype->{description}; + my $itemtype = Koha::ItemsTypes->find( $item->{itype} ); + $item->{itemtype} = $itemtype->description; # FIXME Should not it be translated_description? push @items, $item; } $template->param(items => \@items); diff --git a/catalogue/getitem-ajax.pl b/catalogue/getitem-ajax.pl index 99814dc1a7..10df69ef75 100755 --- a/catalogue/getitem-ajax.pl +++ b/catalogue/getitem-ajax.pl @@ -29,6 +29,7 @@ use C4::Output; use Koha::Libraries; use Koha::AuthorisedValues; +use Koha::ItemTypes; my $cgi = new CGI; @@ -71,8 +72,8 @@ if($itemnumber) { $descriptions = Koha::AuthorisedValues->get_description_by_koha_field({ frameworkcode => $fw, kohafield => 'items.materials', authorised_value => $item->{materials} }); $item->{materials} = $descriptions->{lib} // ''; - my $itemtype = getitemtypeinfo($item->{itype}); - $item->{itemtype} = $itemtype->{description}; + my $itemtype = Koha::ItemTypes->find( $item->{itype} ); + $item->{itemtype} = $itemtype->description; # FIXME Should not it be translated_description? } my $json_text = to_json( $item, { utf8 => 1 } ); diff --git a/circ/transferstoreceive.pl b/circ/transferstoreceive.pl index bf1a756e29..60bcd8bf77 100755 --- a/circ/transferstoreceive.pl +++ b/circ/transferstoreceive.pl @@ -36,6 +36,7 @@ use Date::Calc qw( use C4::Koha; use C4::Reserves; use Koha::Items; +use Koha::ItemTypes; use Koha::Libraries; use Koha::DateUtils; use Koha::BiblioFrameworks; @@ -89,10 +90,10 @@ while ( my $library = $libraries->next ) { $getransf{'diff'} = $diff; } my $gettitle = GetBiblioFromItemNumber( $num->{'itemnumber'} ); - my $itemtypeinfo = getitemtypeinfo( (C4::Context->preference('item-level_itypes')) ? $gettitle->{'itype'} : $gettitle->{'itemtype'} ); + my $itemtype = Koha::ItemTypes->find( (C4::Context->preference('item-level_itypes')) ? $gettitle->{'itype'} : $gettitle->{'itemtype'} ); $getransf{'datetransfer'} = $num->{'datesent'}; - $getransf{'itemtype'} = $itemtypeinfo ->{'description'}; + $getransf{'itemtype'} = $itemtype->description; # FIXME Should not it be translated_description? foreach (qw(title author biblionumber itemnumber barcode homebranch holdingbranch itemcallnumber)) { $getransf{$_} = $gettitle->{$_}; } diff --git a/circ/waitingreserves.pl b/circ/waitingreserves.pl index af41394739..f781869e47 100755 --- a/circ/waitingreserves.pl +++ b/circ/waitingreserves.pl @@ -37,6 +37,7 @@ use C4::Reserves; use C4::Koha; use Koha::DateUtils; use Koha::BiblioFrameworks; +use Koha::ItemTypes; my $input = new CGI; @@ -104,12 +105,12 @@ foreach my $num (@getreserves) { # fix up item type for display $gettitle->{'itemtype'} = C4::Context->preference('item-level_itypes') ? $gettitle->{'itype'} : $gettitle->{'itemtype'}; my $getborrower = GetMember(borrowernumber => $num->{'borrowernumber'}); - my $itemtypeinfo = getitemtypeinfo( $gettitle->{'itemtype'} ); # using the fixed up itype/itemtype + my $itemtype = Koha::ItemTypes->find( $gettitle->{'itemtype'} ); # using the fixed up itype/itemtype $getreserv{'waitingdate'} = $num->{'waitingdate'}; my ( $expire_year, $expire_month, $expire_day ) = split (/-/, $num->{'expirationdate'}); my $calcDate = Date_to_Days( $expire_year, $expire_month, $expire_day ); - $getreserv{'itemtype'} = $itemtypeinfo->{'description'}; + $getreserv{'itemtype'} = $itemtype->description; # FIXME Should not it be translated_description? $getreserv{'title'} = $gettitle->{'title'}; $getreserv{'subtitle'} = GetRecordValue('subtitle', GetMarcBiblio($gettitle->{'biblionumber'}), GetFrameworkCode($gettitle->{'biblionumber'})); $getreserv{'biblionumber'} = $gettitle->{'biblionumber'}; diff --git a/members/summary-print.pl b/members/summary-print.pl index 14df30f9f8..2d5eb478de 100755 --- a/members/summary-print.pl +++ b/members/summary-print.pl @@ -22,11 +22,11 @@ use CGI; use C4::Auth; use C4::Output; use C4::Members; -use C4::Koha qw( getitemtypeinfo ); use C4::Circulation qw( GetIssuingCharges ); use C4::Reserves; use C4::Items; use Koha::Holds; +use Koha::ItemTypes; my $input = CGI->new; my $borrowernumber = $input->param('borrowernumber'); @@ -94,8 +94,8 @@ sub build_issue_data { my ( $charge, $itemtype ) = GetIssuingCharges( $issue->{itemnumber}, $borrowernumber ); - my $itemtypeinfo = getitemtypeinfo($itemtype); - $row{'itemtype_description'} = $itemtypeinfo->{description}; + my $itemtype = Koha::ItemTypes->find( $itemtype ); + $row{'itemtype_description'} = $itemtype->description; #FIXME Should not it be translated_description $row{'charge'} = sprintf( "%.2f", $charge ); diff --git a/opac/opac-browser.pl b/opac/opac-browser.pl index 64abf2189e..b2e8a60dc8 100755 --- a/opac/opac-browser.pl +++ b/opac/opac-browser.pl @@ -32,7 +32,6 @@ use C4::Context; use C4::Output; use CGI qw ( -utf8 ); use C4::Biblio; -use C4::Koha; # use getitemtypeinfo my $query = new CGI; diff --git a/opac/opac-search.pl b/opac/opac-search.pl index 7b10ac3bef..76b24f3fc7 100755 --- a/opac/opac-search.pl +++ b/opac/opac-search.pl @@ -52,6 +52,7 @@ use C4::Tags qw(get_tags); use C4::SocialData; use C4::External::OverDrive; +use Koha::ItemTypes; use Koha::LibraryCategories; use Koha::Ratings; use Koha::Virtualshelves; @@ -225,7 +226,7 @@ my $itemtypes = GetItemTypesCategorized; # add translated_description to itemtypes foreach my $itemtype ( keys %{$itemtypes} ) { # Itemtypes search categories don't have (yet) translated descriptions, they are auth values (and could still have no descriptions too BZ 18400) - my $translated_description = getitemtypeinfo( $itemtype, 'opac' )->{translated_description}; + my $translated_description = Koha::ItemTypes->find( $itemtype )->translated_description; $itemtypes->{$itemtype}->{translated_description} = $translated_description || $itemtypes->{$itemtype}->{description} || q{}; } diff --git a/opac/opac-shelves.pl b/opac/opac-shelves.pl index cfe5a50942..b608657474 100755 --- a/opac/opac-shelves.pl +++ b/opac/opac-shelves.pl @@ -30,6 +30,7 @@ use C4::Tags qw( get_tags ); use C4::XSLT; use Koha::Biblioitems; +use Koha::ItemTypes; use Koha::Virtualshelves; use Koha::RecordProcessor; @@ -283,10 +284,10 @@ if ( $op eq 'view' ) { my $marcflavour = C4::Context->preference("marcflavour"); my $itemtype = Koha::Biblioitems->search({ biblionumber => $content->biblionumber })->next->itemtype; - my $itemtypeinfo = getitemtypeinfo( $itemtype, 'opac' ); - $this_item->{imageurl} = $itemtypeinfo->{imageurl}; - $this_item->{description} = $itemtypeinfo->{description}; - $this_item->{notforloan} = $itemtypeinfo->{notforloan}; + $itemtype = Koha::ItemTypes->find( $itemtype ); + $this_item->{imageurl} = C4::Koha::getitemtypeimagelocation( 'opac', $itemtype->imageurl ); + $this_item->{description} = $itemtype->description; #FIXME Should not it be translated_description? + $this_item->{notforloan} = $itemtype->notforloan; $this_item->{'coins'} = GetCOinSBiblio($record); $this_item->{'subtitle'} = GetRecordValue( 'subtitle', $record, GetFrameworkCode( $biblionumber ) ); $this_item->{'normalized_upc'} = GetNormalizedUPC( $record, $marcflavour ); diff --git a/opac/opac-tags_subject.pl b/opac/opac-tags_subject.pl index 590e7a55af..e5e182b685 100755 --- a/opac/opac-tags_subject.pl +++ b/opac/opac-tags_subject.pl @@ -32,7 +32,6 @@ use C4::Context; use C4::Output; use CGI qw ( -utf8 ); use C4::Biblio; -use C4::Koha; # use getitemtypeinfo my $query = new CGI; diff --git a/svc/checkouts b/svc/checkouts index 0b0d3291a2..d8d6156942 100755 --- a/svc/checkouts +++ b/svc/checkouts @@ -31,6 +31,7 @@ use C4::Context; use Koha::AuthorisedValues; use Koha::DateUtils; +use Koha::ItemTypes; my $input = new CGI; @@ -148,7 +149,7 @@ while ( my $c = $sth->fetchrow_hashref() ) { my ( $renewals_count, $renewals_allowed, $renewals_remaining ) = GetRenewCount( $c->{borrowernumber}, $c->{itemnumber} ); - my $itemtype = C4::Koha::getitemtypeinfo( $item_level_itypes ? $c->{itype} : $c->{itemtype} ); + my $itemtype = Koha::ItemTypes->find( $item_level_itypes ? $c->{itype} : $c->{itemtype} ); my $location; if ( $c->{location} ) { my $av = Koha::AuthorisedValues->search({ category => 'LOC', authorised_value => $c->{location} }); @@ -170,7 +171,7 @@ while ( my $c = $sth->fetchrow_hashref() ) { author => $c->{author}, barcode => $c->{barcode}, itemtype => $item_level_itypes ? $c->{itype} : $c->{itemtype}, - itemtype_description => $itemtype->{translated_description}, + itemtype_description => $itemtype->translated_description, location => $location, homebranch => $c->{homebranch}, itemnotes => $c->{itemnotes}, diff --git a/svc/holds b/svc/holds index c1a5a9a83c..4642356ced 100755 --- a/svc/holds +++ b/svc/holds @@ -30,6 +30,7 @@ use C4::Context; use Koha::DateUtils; use Koha::Holds; +use Koha::ItemTypes; use Koha::Libraries; my $input = new CGI; @@ -75,8 +76,8 @@ while ( my $h = $holds_rs->next() ) { my $itemtype_limit; if ( $h->itemtype ) { - my $itemtype = C4::Koha::getitemtypeinfo( $h->itemtype ); - $itemtype_limit = $itemtype->{translated_description}; + my $itemtype = Koha::ItemTypes->find( $h->itemtype ); + $itemtype_limit = $itemtype->translated_description; } my $libraries = Koha::Libraries->search({}, { order_by => ['branchname'] })->unblessed; diff --git a/t/db_dependent/Koha.t b/t/db_dependent/Koha.t index 258289d3b8..64bb045cde 100644 --- a/t/db_dependent/Koha.t +++ b/t/db_dependent/Koha.t @@ -5,7 +5,7 @@ use Modern::Perl; use DateTime::Format::MySQL; -use Test::More tests => 7; +use Test::More tests => 6; use t::lib::TestBuilder; @@ -157,12 +157,6 @@ subtest 'Authorized Values Tests' => sub { }; -subtest 'Itemtype info Tests' => sub { - like ( getitemtypeinfo( $itype_1->{itemtype} )->{'imageurl'}, qr/intranet-tmpl/, 'getitemtypeinfo on unspecified interface returns intranet imageurl (legacy behavior)' ); - like ( getitemtypeinfo( $itype_1->{itemtype}, 'intranet')->{'imageurl'}, qr/intranet-tmpl/, 'getitemtypeinfo on "intranet" interface returns intranet imageurl' ); - like ( getitemtypeinfo( $itype_1->{itemtype}, 'opac')->{'imageurl'}, qr/opac-tmpl/, 'getitemtypeinfo on "opac" interface returns opac imageurl' ); -}; - ### test for C4::Koha->GetDailyQuote() SKIP: { diff --git a/virtualshelves/shelves.pl b/virtualshelves/shelves.pl index 75f33fa3ef..a868c24604 100755 --- a/virtualshelves/shelves.pl +++ b/virtualshelves/shelves.pl @@ -29,6 +29,7 @@ use C4::XSLT; use Koha::Biblios; use Koha::Biblioitems; +use Koha::ItemTypes; use Koha::CsvProfiles; use Koha::Virtualshelves; @@ -247,14 +248,14 @@ if ( $op eq 'view' ) { my $marcflavour = C4::Context->preference("marcflavour"); my $itemtype = Koha::Biblioitems->search({ biblionumber => $content->biblionumber })->next->itemtype; - my $itemtypeinfo = getitemtypeinfo( $itemtype, 'intranet' ); + $itemtype = Koha::ItemTypes->find( $itemtype ); my $biblio = Koha::Biblios->find( $content->biblionumber ); $this_item->{title} = $biblio->title; $this_item->{author} = $biblio->author; $this_item->{dateadded} = $content->dateadded; - $this_item->{imageurl} = $itemtypeinfo->{imageurl}; - $this_item->{description} = $itemtypeinfo->{description}; - $this_item->{notforloan} = $itemtypeinfo->{notforloan}; + $this_item->{imageurl} = C4::Koha::getitemtypeimagelocation( 'intranet', $itemtype->imageurl ); + $this_item->{description} = $itemtype->description; #FIXME Should not it be translated_description + $this_item->{notforloan} = $itemtype->notforloan; $this_item->{'coins'} = GetCOinSBiblio($record); $this_item->{'subtitle'} = GetRecordValue( 'subtitle', $record, GetFrameworkCode( $biblionumber ) ); $this_item->{'normalized_upc'} = GetNormalizedUPC( $record, $marcflavour );