From d13585e2f1b409fa82671bfda2e4087e45aa25e2 Mon Sep 17 00:00:00 2001 From: Dobrica Pavlinusic Date: Thu, 5 Apr 2012 15:41:29 +0200 Subject: [PATCH] Bug 7872 - C4::Items::GetItemsInfo should use C4::Koha instead of SQL queries directly This simplifies code, and has nice side-effect that memoize of C4::Koha functions will be more effective. Signed-off-by: Chris Cormack Signed-off-by: Paul Poulain Signed-off-by: Chris Cormack --- C4/Items.pm | 68 ++++++----------------------------------------------- 1 file changed, 7 insertions(+), 61 deletions(-) diff --git a/C4/Items.pm b/C4/Items.pm index 9f4b9b3be9..9c5c89ee86 100644 --- a/C4/Items.pm +++ b/C4/Items.pm @@ -1247,73 +1247,19 @@ sub GetItemsInfo { $data->{'datedue'} = $datedue; # get notforloan complete status if applicable - my $sthnflstatus = $dbh->prepare( - 'SELECT authorised_value - FROM marc_subfield_structure - WHERE kohafield="items.notforloan" - ' - ); - - $sthnflstatus->execute; - my ($authorised_valuecode) = $sthnflstatus->fetchrow; - if ($authorised_valuecode) { - $sthnflstatus = $dbh->prepare( - "SELECT lib FROM authorised_values - WHERE category=? - AND authorised_value=?" - ); - $sthnflstatus->execute( $authorised_valuecode, - $data->{itemnotforloan} ); - my ($lib) = $sthnflstatus->fetchrow; - $data->{notforloanvalue} = $lib; + if ( my $code = C4::Koha::GetAuthValCode( 'items.notforloan', $data->{frameworkcode} ) ) { + $data->{notforloanvalue} = C4::Koha::GetAuthorisedValueByCode( $code, $data->{itemnotforloan} ); } # get restricted status and description if applicable - my $restrictedstatus = $dbh->prepare( - 'SELECT authorised_value - FROM marc_subfield_structure - WHERE kohafield="items.restricted" - ' - ); - - $restrictedstatus->execute; - ($authorised_valuecode) = $restrictedstatus->fetchrow; - if ($authorised_valuecode) { - $restrictedstatus = $dbh->prepare( - "SELECT lib,lib_opac FROM authorised_values - WHERE category=? - AND authorised_value=?" - ); - $restrictedstatus->execute( $authorised_valuecode, - $data->{restricted} ); - - if ( my $rstdata = $restrictedstatus->fetchrow_hashref ) { - $data->{restricted} = $rstdata->{'lib'}; - $data->{restrictedopac} = $rstdata->{'lib_opac'}; - } + if ( my $code = C4::Koha::GetAuthValCode( 'items.restricted', $data->{frameworkcode} ) ) { + $data->{restricted} = C4::Koha::GetKohaAuthorisedValueLib( $code, $data->{restricted} ); + $data->{restrictedopac} = C4::Koha::GetKohaAuthorisedValueLib( $code, $data->{restricted}, 'opac' ); } # my stack procedures - my $stackstatus = $dbh->prepare( - 'SELECT authorised_value - FROM marc_subfield_structure - WHERE kohafield="items.stack" - ' - ); - $stackstatus->execute; - - ($authorised_valuecode) = $stackstatus->fetchrow; - if ($authorised_valuecode) { - $stackstatus = $dbh->prepare( - "SELECT lib - FROM authorised_values - WHERE category=? - AND authorised_value=? - " - ); - $stackstatus->execute( $authorised_valuecode, $data->{stack} ); - my ($lib) = $stackstatus->fetchrow; - $data->{stack} = $lib; + if ( my $code = C4::Koha::GetAuthValCode( 'items.stack', $data->{frameworkcode} ) ) { + $data->{stack} = C4::Koha::GetKohaAuthorisedValueLib( $code, $data->{stack} ); } # Find the last 3 people who borrowed this item. my $sth2 = $dbh->prepare("SELECT * FROM old_issues,borrowers -- 2.39.5