From 82aa090856f078c57fcab8425560925ddff92f43 Mon Sep 17 00:00:00 2001 From: Marcel de Rooy Date: Mon, 5 Feb 2024 13:36:21 +0000 Subject: [PATCH] Bug 35993: Apply new routine to ModBiblioMarc Now both AddBiblio and ModBiblio will insert 005 if not present. Test plan: Run t/db_dependent/Biblio.t Add biblio record via acquistion order. Check 005 in the table biblio_metadata. Signed-off-by: Marcel de Rooy Signed-off-by: Phil Ringnalda --- C4/Biblio.pm | 8 +++----- t/db_dependent/Biblio.t | 17 ++++++++++++++++- 2 files changed, 19 insertions(+), 6 deletions(-) diff --git a/C4/Biblio.pm b/C4/Biblio.pm index 300cfa281b..9c88f3de1b 100644 --- a/C4/Biblio.pm +++ b/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') ) { diff --git a/t/db_dependent/Biblio.t b/t/db_dependent/Biblio.t index 4f096f7fe1..f093f47610 100755 --- a/t/db_dependent/Biblio.t +++ b/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; -- 2.40.0