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 <chris@bigballofwax.co.nz>
Signed-off-by: Paul Poulain <paul.poulain@biblibre.com>
Signed-off-by: Chris Cormack <chrisc@catalyst.net.nz>
This commit is contained in:
Dobrica Pavlinusic 2012-04-05 15:41:29 +02:00 committed by Chris Cormack
parent 57ff55a84d
commit d13585e2f1
1 changed files with 7 additions and 61 deletions

View File

@ -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