Lines 249-277
sub export {
Link Here
|
249 |
} |
249 |
} |
250 |
if ( $format eq 'iso2709' ) { |
250 |
if ( $format eq 'iso2709' ) { |
251 |
my $encoding_validator = sub { |
251 |
my $encoding_validator = sub { |
252 |
my ($record_type) = @_; |
252 |
my ( $record, $record_type ) = @_; |
253 |
return sub { |
253 |
my $errorcount_on_decode = |
254 |
my ($record) = @_; |
254 |
eval { scalar( MARC::File::USMARC->decode( $record->as_usmarc )->warnings() ) }; |
255 |
my $errorcount_on_decode = |
255 |
if ( $errorcount_on_decode || $@ ) { |
256 |
eval { scalar( MARC::File::USMARC->decode( $record->as_usmarc )->warnings() ) }; |
256 |
my ( $id_tag, $id_subfield ) = GetMarcFromKohaField( 'biblio.biblionumber', '' ); |
257 |
if ( $errorcount_on_decode || $@ ) { |
257 |
my $record_id = $record->subfield( $id_tag, $id_subfield ); |
258 |
my ( $id_tag, $id_subfield ) = GetMarcFromKohaField( 'biblio.biblionumber', '' ); |
258 |
my $msg = "$record_type $record_id could not be USMARC decoded/encoded. " . ( $@ // '' ); |
259 |
my $record_id = $record->subfield( $id_tag, $id_subfield ); |
259 |
chomp $msg; |
260 |
my $msg = "$record_type $record_id could not be USMARC decoded/encoded. " . ( $@ // '' ); |
260 |
Koha::Logger->get->warn($msg); |
261 |
chomp $msg; |
261 |
return 0; |
262 |
Koha::Logger->get->warn($msg); |
|
|
263 |
return 0; |
264 |
} |
265 |
return 1; |
266 |
} |
262 |
} |
|
|
263 |
return 1; |
267 |
}; |
264 |
}; |
268 |
my $validator = $encoding_validator->('Record'); |
265 |
for my $record ( grep { $encoding_validator->( $_, 'Record' ) } @records ) { |
269 |
for my $record ( grep { $validator->($_) } @records ) { |
|
|
270 |
print $record->as_usmarc(); |
266 |
print $record->as_usmarc(); |
271 |
} |
267 |
} |
272 |
if (@deleted_records) { |
268 |
if (@deleted_records) { |
273 |
$validator = $encoding_validator->('Deleted record'); |
269 |
for my $deleted_record ( grep { $encoding_validator->( $_, 'Deleted record' ) } @deleted_records ) { |
274 |
for my $deleted_record ( grep { $validator->($_) } @deleted_records ) { |
|
|
275 |
print $deleted_record->as_usmarc(); |
270 |
print $deleted_record->as_usmarc(); |
276 |
} |
271 |
} |
277 |
} |
272 |
} |
278 |
- |
|
|