Bug 22330: (QA follow-up) Remove duplicate use lines, combine and sort remaning lines
[koha.git] / C4 / Record.pm
index d081ac7..cde523f 100644 (file)
@@ -34,6 +34,7 @@ use C4::XSLT ();
 use YAML; #marcrecords2csv
 use Template;
 use Text::CSV::Encoded; #marc2csv
+use Koha::Items;
 use Koha::SimpleMARC qw(read_field);
 use Koha::XSLT_Handler;
 use Koha::CsvProfiles;
@@ -228,7 +229,7 @@ EXAMPLE
     my dcxml = marc2dcxml (undef, undef, 1, "oaidc");
 
 Convert MARC or MARCXML to Dublin Core metadata (XSLT Transformation),
-optionally can get an XML directly from database (biblioitems.marcxml)
+optionally can get an XML directly from biblio_metadata
 without item information. This method take into consideration the syspref
 'marcflavour' (UNIMARC, MARC21 and NORMARC).
 Return an XML file with the format defined in C<$format>
@@ -237,7 +238,7 @@ C<$marc> - an ISO-2709 scalar or MARC::Record object
 
 C<$xml> - a MARCXML file
 
-C<$biblionumber> - obtain the record directly from database (biblioitems.marcxml)
+C<$biblionumber> - biblionumber for database access
 
 C<$format> - accept three type of DC formats (oaidc, srwdc, and rdfdc )
 
@@ -258,7 +259,7 @@ sub marc2dcxml {
         # no need to catch errors or warnings marc2marcxml do it instead
         $marcxml = C4::Record::marc2marcxml( $marc );
     } elsif ( not defined $xml and defined $biblionumber ) {
-        # get MARCXML biblio directly from biblioitems.marcxml without item information
+        # get MARCXML biblio directly without item information
         $marcxml = C4::Biblio::GetXmlBiblio( $biblionumber );
     } else {
         $marcxml = $xml;
@@ -293,16 +294,15 @@ sub marc2dcxml {
         };
     } elsif ( $record =~ /^MARC::Record/ ) { # if OK makes xslt transformation
         my $xslt_engine = Koha::XSLT_Handler->new;
-        if ( $format =~ /oaidc|srwdc|rdfdc/ ) {
+        if ( $format =~ /^(dc|oaidc|srwdc|rdfdc)$/i ) {
             $output = $xslt_engine->transform( $marcxml, $xsl );
         } else {
             croak "The format argument ($format) not accepted.\n" .
                   "Please pass a valid format (oaidc, srwdc, or rdfdc)\n";
         }
-        my $err = $xslt_engine->err; # error number
-        my $errstr = $xslt_engine->errstr; # error message
+        my $err = $xslt_engine->err; # error code
         if ( $err ) {
-            croak "Error when processing $errstr Error number: $err\n";
+            croak "Error $err while processing\n";
         } else {
             return $output;
         }
@@ -427,7 +427,8 @@ sub marc2csv {
     my $firstpass = 1;
     if ( @$itemnumbers ) {
         for my $itemnumber ( @$itemnumbers) {
-            my $biblionumber = GetBiblionumberFromItemnumber $itemnumber;
+            my $item = Koha::Items->find( $itemnumber );
+            my $biblionumber = $item->biblio->biblionumber;
             $output .= marcrecord2csv( $biblionumber, $id, $firstpass, $csv, $fieldprocessing, [$itemnumber] );
             $firstpass = 0;
         }
@@ -469,9 +470,12 @@ sub marcrecord2csv {
     my $output;
 
     # Getting the record
-    my $record = GetMarcBiblio($biblio);
+    my $record = GetMarcBiblio({ biblionumber => $biblio });
     return unless $record;
-    C4::Biblio::EmbedItemsInMarcBiblio( $record, $biblio, $itemnumbers );
+    C4::Biblio::EmbedItemsInMarcBiblio({
+        marc_record  => $record,
+        biblionumber => $biblio,
+        item_numbers => $itemnumbers });
     # Getting the framework
     my $frameworkcode = GetFrameworkCode($biblio);