@@ -, +, @@ field creation --- .../UNIMARC_sync_date_created_with_marc_biblio.pl | 43 +++++++++++++++----- 1 file changed, 33 insertions(+), 10 deletions(-) --- a/misc/maintenance/UNIMARC_sync_date_created_with_marc_biblio.pl +++ a/misc/maintenance/UNIMARC_sync_date_created_with_marc_biblio.pl @@ -133,7 +133,16 @@ sub updateMarc { # date created field unless ($c_marc_field) { - $biblio->add_fields( new MARC::Field( $c_field, '', '' ) ); + if ( defined $c_subfield ) { + $biblio->add_fields( + new MARC::Field( + $c_field, ' ', ' ', $c_subfield => $c_db_value + ) + ); + } + else { + $biblio->add_fields( new MARC::Field( $c_field, $c_db_value ) ); + } $debug and warn "[WARN] $c_field did not exist."; $c_marc_field = $biblio->field($c_field); @@ -142,24 +151,38 @@ sub updateMarc { $m_marc_field = $c_marc_field; } } - if ( defined $c_subfield ) { - $c_marc_field->update( $c_subfield, $c_db_value ); - } else { - $c_marc_field->update($c_db_value); + if ( defined $c_subfield ) { + $c_marc_field->update( $c_subfield, $c_db_value ); + } + else { + $c_marc_field->update($c_db_value); + } } # date last modified field unless ($m_marc_field) { - $biblio->add_fields( new MARC::Field( $m_field, '', '' ) ); + if ( defined $m_subfield ) { + $biblio->add_fields( + new MARC::Field( + $m_field, ' ', ' ', $m_subfield => $m_db_value + ) + ); + } + else { + $biblio->add_fields( new MARC::Field( $m_field, $m_db_value ) ); + } + $debug and warn "[WARN] $m_field did not exist."; $m_marc_field = $biblio->field($m_field); } - if ( defined $m_subfield ) { - $m_marc_field->update( $m_subfield, $m_db_value ); - } else { - $m_marc_field->update($m_db_value); + if ( defined $m_subfield ) { + $m_marc_field->update( $m_subfield, $m_db_value ); + } + else { + $m_marc_field->update($m_db_value); + } } # apply to databse --