@@ -, +, @@ --- C4/Biblio.pm | 8 +++----- t/db_dependent/Biblio.t | 17 ++++++++++++++++- 2 files changed, 19 insertions(+), 6 deletions(-) --- a/C4/Biblio.pm +++ a/C4/Biblio.pm @@ -113,6 +113,7 @@ use Koha::Plugins; use Koha::RecordProcessor; use Koha::SearchEngine; use Koha::SearchEngine::Indexer; +use Koha::SimpleMARC; use Koha::Libraries; use Koha::Util::MARC; @@ -2831,12 +2832,9 @@ sub ModBiblioMarc { } } - #enhancement 5374: update transaction date (005) for marc21/unimarc + # Insert/update transaction time (005) for marc21/unimarc if($encoding =~ /MARC21|UNIMARC/) { - my @a= (localtime) [5,4,3,2,1,0]; $a[0]+=1900; $a[1]++; - # YY MM DD HH MM SS (update year and month) - my $f005= $record->field('005'); - $f005->update(sprintf("%4d%02d%02d%02d%02d%04.1f",@a)) if $f005; + Koha::SimpleMARC::update_last_transaction_time( { record => $record } ); } if ( C4::Context->preference('StripWhitespaceChars') ) { --- a/t/db_dependent/Biblio.t +++ a/t/db_dependent/Biblio.t @@ -17,7 +17,7 @@ use Modern::Perl; -use Test::More tests => 20; +use Test::More tests => 21; use Test::MockModule; use Test::Warn; use List::MoreUtils qw( uniq ); @@ -1022,6 +1022,21 @@ subtest 'ModBiblio on invalid record' => sub { ); }; +subtest 'AddBiblio/ModBiblio calling ModBiblioMarc for field 005' => sub { + plan tests => 2; + + my $marc_record = MARC::Record->new; + my ($biblionumber) = C4::Biblio::AddBiblio( $marc_record, '' ); + my $biblio = Koha::Biblios->find($biblionumber); + + my $field = $biblio->metadata->record->field('005'); + ok( $field && $field->data, 'Record contains field 005 after AddBiblio' ); + $marc_record = MARC::Record->new; + C4::Biblio::ModBiblio( $marc_record, $biblionumber, '' ); + $field = $biblio->metadata->record->field('005'); + ok( $field && $field->data, 'Record contains field 005 after ModBiblio' ); +}; + # Cleanup Koha::Caches->get_instance->clear_from_cache( "MarcSubfieldStructure-" ); $schema->storage->txn_rollback; --