And check for duplicate IDs in the main loop, just like miker asked
authordbs <dbs@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Sat, 23 Feb 2008 01:34:49 +0000 (01:34 +0000)
committerdbs <dbs@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Sat, 23 Feb 2008 01:34:49 +0000 (01:34 +0000)
git-svn-id: svn://svn.open-ils.org/ILS/trunk@8830 dcc99617-32d9-48b4-a31d-7c20da2025e4

Open-ILS/src/extras/import/marc2bre.pl

index 9d8014d..b6c658b 100755 (executable)
@@ -149,6 +149,7 @@ while ( try { $rec = $batch->next } otherwise { $rec = -1 } ) {
 
                        $id =~ s/\D+//gso;
                }
+               $id = '' if (exists $dontuse_id{$id});
        }
 
        if (!$id) {
@@ -168,7 +169,7 @@ while ( try { $rec = $batch->next } otherwise { $rec = -1 } ) {
        my $tcn;
        ($rec, $tcn) = preprocess($rec, $id);
 
-    $tcn->add_subfields(c => $id);
+       $tcn->add_subfields(c => $id);
 
        $rec->delete_field( $_ ) for ($rec->field($id_field));
        $rec->append_fields( $tcn );
@@ -214,12 +215,14 @@ sub preprocess {
        my $rec = shift;
        my $id = shift;
 
-       my ($source, $value) = ('','','');
+       my ($source, $value) = ('','');
+
+       $id = '' if (exists $dontuse_id{$id});
 
        if (!$id) {
                my $f = $rec->field('001');
                $id = $f->data if ($f);
-        $id = '' if (exists $dontuse_id{$id});
+               $id = '' if (exists $dontuse_id{$id});
        }
 
        if (!$id || exists $dontuse_id{$source.$id}) {