X-Git-Url: http://koha-dev.rot13.org:8081/gitweb/?a=blobdiff_plain;f=catalogue%2Fgetitem-ajax.pl;h=9dad680e0c5dbba97286e69253dbd9f9d0a73539;hb=b37a45717e5173d78ee6a8e8050b50a4605ebbbe;hp=3bab89152318c7506ac15addc6e181994083f2bc;hpb=66350848b68e64af64bc0778b8ea0ac5ef115381;p=koha-ffzg.git diff --git a/catalogue/getitem-ajax.pl b/catalogue/getitem-ajax.pl index 3bab891523..9dad680e0c 100755 --- a/catalogue/getitem-ajax.pl +++ b/catalogue/getitem-ajax.pl @@ -4,70 +4,80 @@ # # This file is part of Koha. # -# Koha is free software; you can redistribute it and/or modify it under the -# terms of the GNU General Public License as published by the Free Software -# Foundation; either version 2 of the License, or (at your option) any later -# version. +# Koha is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. # -# Koha is distributed in the hope that it will be useful, but WITHOUT ANY -# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR -# A PARTICULAR PURPOSE. See the GNU General Public License for more details. +# Koha is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. # -# You should have received a copy of the GNU General Public License along -# with Koha; if not, write to the Free Software Foundation, Inc., -# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. +# You should have received a copy of the GNU General Public License +# along with Koha; if not, see . use Modern::Perl; -use CGI; -use JSON; +use CGI qw ( -utf8 ); +use JSON qw( to_json ); -use C4::Biblio; -use C4::Branch; -use C4::Items; -use C4::Koha; -use C4::Output; +use C4::Auth qw( check_api_auth ); +use C4::Biblio qw( GetMarcStructure ); +use C4::Output qw( output_with_http_headers ); +use Koha::Libraries; + +use Koha::AuthorisedValues; +use Koha::Items; +use Koha::ItemTypes; + +my $cgi = CGI->new; + +my ( $status, $cookie, $sessionID ) = C4::Auth::check_api_auth( $cgi, { acquisition => 'order_receive' } ); +unless ($status eq "ok") { + print $cgi->header(-type => 'application/json', -status => '403 Forbidden'); + print to_json({ auth_status => $status }); + exit 0; +} -my $cgi = new CGI; my $item = {}; my $itemnumber = $cgi->param('itemnumber'); +my $item_unblessed = {}; if($itemnumber) { my $acq_fw = GetMarcStructure(1, 'ACQ'); my $fw = ($acq_fw) ? 'ACQ' : ''; - $item = GetItem($itemnumber); + $item = Koha::Items->find($itemnumber); + $item_unblessed = $item->unblessed; # FIXME Not needed, call home_branch and holding_branch in the templates instead - if($item->{homebranch}) { - $item->{homebranchname} = GetBranchName($item->{homebranch}); + if($item->homebranch) { # This test should not be needed, homebranch and holdingbranch are mandatory + $item_unblessed->{homebranchname} = $item->home_branch->branchname; } - if($item->{holdingbranch}) { - $item->{holdingbranchname} = GetBranchName($item->{holdingbranch}); + if($item->holdingbranch) { + $item_unblessed->{holdingbranchname} = $item->holding_branch->branchname; } - if(my $code = GetAuthValCode("items.notforloan", $fw)) { - $item->{notforloan} = GetKohaAuthorisedValueLib($code, $item->{notforloan}); - } + my $descriptions; + $descriptions = Koha::AuthorisedValues->get_description_by_koha_field({ frameworkcode => $fw, kohafield => 'items.notforloan', authorised_value => $item->notforloan }); + $item_unblessed->{notforloan} = $descriptions->{lib} // ''; - if(my $code = GetAuthValCode("items.restricted", $fw)) { - $item->{restricted} = GetKohaAuthorisedValueLib($code, $item->{restricted}); - } + $descriptions = Koha::AuthorisedValues->get_description_by_koha_field({ frameworkcode => $fw, kohafield => 'items.restricted', authorised_value => $item->restricted }); + $item_unblessed->{restricted} = $descriptions->{lib} // ''; - if(my $code = GetAuthValCode("items.location", $fw)) { - $item->{location} = GetKohaAuthorisedValueLib($code, $item->{location}); - } + $descriptions = Koha::AuthorisedValues->get_description_by_koha_field({ frameworkcode => $fw, kohafield => 'items.location', authorised_value => $item->location }); + $item_unblessed->{location} = $descriptions->{lib} // ''; - if(my $code = GetAuthValCode("items.ccode", $fw)) { - $item->{collection} = GetKohaAuthorisedValueLib($code, $item->{ccode}); - } + $descriptions = Koha::AuthorisedValues->get_description_by_koha_field({ frameworkcode => $fw, kohafield => 'items.ccode', authorised_value => $item->ccode }); + $item_unblessed->{collection} = $descriptions->{lib} // ''; - if(my $code = GetAuthValCode("items.materials", $fw)) { - $item->{materials} = GetKohaAuthorisedValueLib($code, $item->{materials}); - } + $descriptions = Koha::AuthorisedValues->get_description_by_koha_field({ frameworkcode => $fw, kohafield => 'items.materials', authorised_value => $item->materials }); + $item_unblessed->{materials} = $descriptions->{lib} // ''; - my $itemtype = getitemtypeinfo($item->{itype}); - $item->{itemtype} = $itemtype->{description}; + my $itemtype = Koha::ItemTypes->find( $item->effective_itemtype ); + # We should not do that here, but call ->itemtype->description when needed instea + $item_unblessed->{itemtype} = $itemtype->description; # FIXME Should not it be translated_description? } -my $json_text = to_json( $item, { utf8 => 1 } ); +my $json_text = to_json( $item_unblessed, { utf8 => 1 } ); output_with_http_headers $cgi, undef, $json_text, 'json';