Bug 17801: Use issuedate for limits in Most Circulated Items
[srvgit] / C4 / ShelfBrowser.pm
index 923b7fe..53fdaef 100644 (file)
@@ -23,9 +23,10 @@ use strict;
 use warnings;
 
 use C4::Biblio;
-use C4::Branch;
 use C4::Context;
 use C4::Koha;
+use Koha::Biblios;
+use Koha::Libraries;
 
 use vars qw(@ISA @EXPORT @EXPORT_OK);
 
@@ -117,7 +118,6 @@ sub GetNearbyItems {
         if $gap <= $num_each_side;
 
     my $dbh         = C4::Context->dbh;
-    my $branches = GetBranches();
 
     my $sth_get_item_details = $dbh->prepare("SELECT cn_sort,homebranch,location,ccode from items where itemnumber=?");
     $sth_get_item_details->execute($itemnumber);
@@ -129,7 +129,7 @@ sub GetNearbyItems {
     if (C4::Context->preference('ShelfBrowserUsesHomeBranch') && 
        defined($item_details_result->{'homebranch'})) {
         $start_homebranch->{code} = $item_details_result->{'homebranch'};
-        $start_homebranch->{description} = $branches->{$item_details_result->{'homebranch'}}{branchname};
+        $start_homebranch->{description} = Koha::Libraries->find($item_details_result->{'homebranch'})->branchname;
     }
     if (C4::Context->preference('ShelfBrowserUsesLocation') && 
        defined($item_details_result->{'location'})) {
@@ -221,29 +221,24 @@ sub GetShelfInfo {
     my $marcflavour = C4::Context->preference("marcflavour");
     my @valid_items;
     for my $item ( @items ) {
-        my $this_biblio = GetBibData($item->{biblionumber});
-        next unless defined $this_biblio;
-        $item->{'title'} = $this_biblio->{'title'};
-        my $this_record = GetMarcBiblio($this_biblio->{'biblionumber'});
+        my $biblio = Koha::Biblios->find( $item->{biblionumber} );
+        next unless defined $biblio;
+
+        $item->{biblio_object} = $biblio;
+        $item->{biblionumber}  = $biblio->biblionumber;
+        $item->{title}         = $biblio->title;
+        $item->{subtitle}      = $biblio->subtitle;
+        $item->{medium}        = $biblio->medium;
+        $item->{part_number}   = $biblio->part_number;
+        $item->{part_name}     = $biblio->part_name;
+        my $this_record = GetMarcBiblio({ biblionumber => $biblio->biblionumber });
         $item->{'browser_normalized_upc'} = GetNormalizedUPC($this_record,$marcflavour);
         $item->{'browser_normalized_oclc'} = GetNormalizedOCLCNumber($this_record,$marcflavour);
         $item->{'browser_normalized_isbn'} = GetNormalizedISBN(undef,$this_record,$marcflavour);
         $item->{'browser_normalized_ean'} = GetNormalizedEAN($this_record,$marcflavour);
-        $item->{'subtitle'} = GetRecordValue('subtitle', $this_record, GetFrameworkCode( $item->{biblionumber} ));
         push @valid_items, $item;
     }
     return @valid_items;
 }
 
-# Fetches some basic biblio data needed by the shelf stuff
-sub GetBibData {
-       my ($bibnum) = @_;
-
-    my $dbh         = C4::Context->dbh;
-    my $sth = $dbh->prepare("SELECT biblionumber, title FROM biblio WHERE biblionumber=?");
-    $sth->execute($bibnum);
-    my $bib = $sth->fetchrow_hashref();
-    return $bib;
-}
-
 1;