add original record id in 001
[crolist2marc] / crolist2marc.pl
index 803da79..49aa86a 100755 (executable)
@@ -89,6 +89,12 @@ csv_file( 'IDNTAG.csv', sub {
        return;
 });
 
+csv_file( 'OBRTAG.csv', sub {
+       my $line = shift;
+
+       my ( $IDSL, $TAG, $TAGNO, $ID, $SFI, $SFINO, $CODINF ) = split(/,/,$_);
+       return ( $IDSL, $TAG, $TAGNO, $ID, $SFI, $SFINO, $CODINF );
+});
 
 print STDERR "\n# getting all ids ";
 my @ids = keys %$data;
@@ -101,6 +107,8 @@ my $number = 0;
 foreach my $id ( @ids ) {
        my $rec = MARC::Record->new;
        $rec->encoding( 'UTF-8' );
+       $rec->add_fields( [ '001', $id ] );
+
        foreach my $field ( sort keys %{ $data->{$id} } ) {
                if ( $field eq 'leader' ) {
                        $rec->leader( $data->{$id}->{$field} );
@@ -108,7 +116,7 @@ foreach my $id ( @ids ) {
                }
                foreach my $arr ( @{ $data->{$id}->{$field} } ) {
                        if ( ! $arr ) {
-                               print STDERR "SKIPPED $id $field ",dump( $data->{$id}->{$field} );
+                               print STDERR "SKIPPED $id $field ",dump( $data->{$id}->{$field} ), "\n";
                                next;
                        }
                        $rec->add_fields( $field, @$arr );