Bug 23673: Set updated_on=time_queued on DB update
[koha-ffzg.git] / serials / subscription-bib-search.pl
index a74afb0..c6ff67d 100755 (executable)
@@ -46,8 +46,7 @@ to multipage gestion.
 
 =cut
 
-use strict;
-use warnings;
+use Modern::Perl;
 
 use CGI qw ( -utf8 );
 use C4::Koha;
@@ -58,6 +57,10 @@ use C4::Search;
 use C4::Biblio;
 use C4::Debug;
 
+use Koha::ItemTypes;
+use Koha::SearchEngine;
+use Koha::SearchEngine::Search;
+
 my $input = new CGI;
 my $op = $input->param('op') || q{};
 my $dbh = C4::Context->dbh;
@@ -96,8 +99,9 @@ if ( $op eq "do_search" && $query ) {
     $resultsperpage = $input->param('resultsperpage');
     $resultsperpage = 20 if ( !defined $resultsperpage );
 
+    my $searcher = Koha::SearchEngine::Search->new({index => $Koha::SearchEngine::BIBLIOS_INDEX});
     my ( $error, $marcrecords, $total_hits ) =
-      SimpleSearch( $query, $startfrom * $resultsperpage, $resultsperpage );
+      $searcher->simple_search_compat( $query, $startfrom * $resultsperpage, $resultsperpage );
     my $total = 0;
     if ( defined $marcrecords ) {
         $total = scalar @{$marcrecords};
@@ -114,16 +118,19 @@ if ( $op eq "do_search" && $query ) {
     for ( my $i = 0 ; $i < $total ; $i++ ) {
         my %resultsloop;
         my $marcrecord = C4::Search::new_record_from_zebra( 'biblioserver', $marcrecords->[$i] );
-        my $biblio = TransformMarcToKoha( C4::Context->dbh, $marcrecord, '' );
+        my $biblio = TransformMarcToKoha( $marcrecord, '' );
 
         #build the hash for the template.
         $resultsloop{highlight}       = ( $i % 2 ) ? (1) : (0);
         $resultsloop{title}           = $biblio->{'title'};
         $resultsloop{subtitle}        = $biblio->{'subtitle'};
+        $resultsloop{medium}          = $biblio->{'medium'};
+        $resultsloop{part_number}     = $biblio->{'part_number'};
+        $resultsloop{part_name}       = $biblio->{'part_name'};
         $resultsloop{biblionumber}    = $biblio->{'biblionumber'};
         $resultsloop{author}          = $biblio->{'author'};
         $resultsloop{publishercode}   = $biblio->{'publishercode'};
-        $resultsloop{publicationyear} = $biblio->{'publicationyear'};
+        $resultsloop{publicationyear} = $biblio->{'publicationyear'} ? $biblio->{'publicationyear'} : $biblio->{'copyrightdate'};
         $resultsloop{issn}            = $biblio->{'issn'};
 
         push @results, \%resultsloop;
@@ -192,8 +199,10 @@ else {
     );
 
     # load the itemtypes
-    my $itemtypes = GetItemTypes();
+    my $itemtypes = { map { $_->{itemtype} => $_ } @{ Koha::ItemTypes->search_with_localization->unblessed } };
     my @itemtypesloop;
+    # FIXME This is uselessly complex, the iterator should be send to the template
+    # FIXME The translated_description should be used
     foreach my $thisitemtype (
         sort {
             $itemtypes->{$a}->{'description'}