Bug 3150: Move emails for sending cart and list contents to notices
[srvgit] / basket / basket.pl
index aa4cd97..54fabe4 100755 (executable)
 use Modern::Perl;
 use CGI qw ( -utf8 );
 use C4::Koha;
-use C4::Biblio;
-use C4::Items;
-use C4::Auth;
-use C4::Output;
+use C4::Biblio qw(
+    GetMarcSeries
+    GetMarcSubjects
+    GetMarcUrls
+);
+use C4::Auth qw( get_template_and_user );
+use C4::Output qw( output_html_with_http_headers );
 
 use Koha::AuthorisedValues;
+use Koha::Biblios;
 use Koha::CsvProfiles;
 
 my $query = CGI->new;
@@ -59,34 +63,25 @@ if (C4::Context->preference('TagsEnabled')) {
 foreach my $biblionumber ( @bibs ) {
     $template->param( biblionumber => $biblionumber );
 
-    my $dat              = &GetBiblioData($biblionumber);
-    next unless $dat;
-    my $record           = &GetMarcBiblio({ biblionumber => $biblionumber });
-    my $marcnotesarray   = GetMarcNotes( $record, $marcflavour );
-    my $marcauthorsarray = GetMarcAuthors( $record, $marcflavour );
+    my $biblio           = Koha::Biblios->find( $biblionumber ) or next;
+    my $dat              = $biblio->unblessed;
+    my $record           = $biblio->metadata->record;
+    my $marcnotesarray   = $biblio->get_marc_notes;
+    my $marcauthorsarray = $biblio->get_marc_contributors;
     my $marcsubjctsarray = GetMarcSubjects( $record, $marcflavour );
     my $marcseriesarray  = GetMarcSeries  ($record,$marcflavour);
     my $marcurlsarray    = GetMarcUrls    ($record,$marcflavour);
-    my @items            = GetItemsInfo( $biblionumber );
 
     my $hasauthors = 0;
     if($dat->{'author'} || @$marcauthorsarray) {
       $hasauthors = 1;
     }
-       
-    my $shelflocations =
-      { map { $_->{authorised_value} => $_->{lib} } Koha::AuthorisedValues->get_descriptions_by_koha_field( { frameworkcode => $dat->{frameworkcode}, kohafield => 'items.location' } ) };
-
-       for my $itm (@items) {
-           if ($itm->{'location'}){
-           $itm->{'location_description'} = $shelflocations->{$itm->{'location'} };
-               }
-       }
-       # COinS format FIXME: for books Only
-        my $fmt = substr $record->leader(), 6,2;
-        my $fmts;
-        $fmts->{'am'} = 'book';
-        $dat->{ocoins_format} = $fmts->{$fmt};
+
+    # COinS format FIXME: for books Only
+    my $fmt = substr $record->leader(), 6,2;
+    my $fmts;
+    $fmts->{'am'} = 'book';
+    $dat->{ocoins_format} = $fmts->{$fmt};
 
     if ( $num % 2 == 1 ) {
         $dat->{'even'} = 1;
@@ -94,23 +89,17 @@ foreach my $biblionumber ( @bibs ) {
 
     $num++;
     $dat->{biblionumber} = $biblionumber;
-    $dat->{ITEM_RESULTS}   = \@items;
+    $dat->{ITEM_RESULTS}   = $biblio->items->search_ordered;
     $dat->{MARCNOTES}      = $marcnotesarray;
     $dat->{MARCSUBJCTS}    = $marcsubjctsarray;
     $dat->{MARCAUTHORS}    = $marcauthorsarray;
     $dat->{MARCSERIES}  = $marcseriesarray;
     $dat->{MARCURLS}    = $marcurlsarray;
     $dat->{HASAUTHORS}  = $hasauthors;
+    my ( $host, $relatedparts ) = $biblio->get_marc_host;
+    $dat->{HOSTITEMENTRIES} = $host;
+    $dat->{RELATEDPARTS} = $relatedparts;
 
-    if ( C4::Context->preference("IntranetBiblioDefaultView") eq "normal" ) {
-        $dat->{dest} = "/cgi-bin/koha/catalogue/detail.pl";
-    }
-    elsif ( C4::Context->preference("IntranetBiblioDefaultView") eq "marc" ) {
-        $dat->{dest} = "/cgi-bin/koha/catalogue/MARCdetail.pl";
-    }
-    else {
-        $dat->{dest} = "/cgi-bin/koha/catalogue/ISBDdetail.pl";
-    }
     push( @results, $dat );
 }
 
@@ -120,7 +109,7 @@ my $resultsarray = \@results;
 
 $template->param(
     BIBLIO_RESULTS => $resultsarray,
-    csv_profiles => [ Koha::CsvProfiles->search({ type => 'marc', used_for => 'export_records' }) ],
+    csv_profiles => Koha::CsvProfiles->search({ type => 'marc', used_for => 'export_records' }),
     bib_list => $bib_list,
 );