Bug 7729 : svc/new_bib: support ?items=1 to add POSTed items to the new biblio too
authorMJ Ray <mjr@phonecoop.coop>
Fri, 13 Apr 2012 16:15:21 +0000 (17:15 +0100)
committerPaul Poulain <paul.poulain@biblibre.com>
Tue, 17 Jul 2012 16:12:09 +0000 (18:12 +0200)
Signed-off-by: Chris Cormack <chris@bigballofwax.co.nz>
Signed-off-by: Paul Poulain <paul.poulain@biblibre.com>
svc/new_bib

index dba1fc7..435d837 100755 (executable)
@@ -24,6 +24,7 @@ use warnings;
 use CGI;
 use C4::Auth qw/check_api_auth/;
 use C4::Biblio;
+use C4::Items;
 use XML::Simple;
 use C4::Charset;
 
@@ -65,13 +66,26 @@ sub add_bib {
             ($record, $guessed_charset, $charset_errors) = MarcToUTF8Record($record, $marcflavour);
         }
 
+        my $fullrecord = $record->clone();
+
         # delete any item tags
-        my ( $itemtag, $itemsubfield ) = GetMarcFromKohaField("items.itemnumber", '');
-        foreach my $field ($record->field($itemtag)) {
+        my ( $itemtag, $itemsubfield ) =
+          GetMarcFromKohaField( "items.itemnumber", '' );
+        foreach my $field ( $record->field($itemtag) ) {
             $record->delete_field($field);
         }
-        my ($biblionumber, $biblioitemnumber) = AddBiblio($record, '');
+        my ( $biblionumber, $biblioitemnumber ) = AddBiblio( $record, '' );
         my $new_record = GetMarcBiblio($biblionumber);
+        if ( $query->url_param('items') ) {
+            foreach my $field ( $fullrecord->field($itemtag) ) {
+                my $one_item_record = $new_record->clone();
+                $one_item_record->add_fields($field);
+                AddItemFromMarc( $one_item_record, $biblionumber );
+            }
+        }
+
+        $new_record =
+          GetMarcBiblio( $biblionumber, $query->url_param('items') );
         $result->{'status'} = "ok";
         $result->{'biblionumber'} = $biblionumber;
         my $xml = $new_record->as_xml_record();