From 173e80ddcdce5b22a30b156efa1592278f37ec74 Mon Sep 17 00:00:00 2001 From: Pedro Amorim <pedro.amorim@ptfs-europe.com> Date: Thu, 22 Feb 2024 15:00:09 +0000 Subject: [PATCH] Bug 26869: Add items from MARC in BatchUpdateBiblio Test plan, clean k-t-d: Before test, pick a record and confirm it has no items, for this test we're using biblio 79: <staff_url>/cgi-bin/koha/catalogue/detail.pl?biblionumber=79 1) Add a new MARC modification template, visit: <staff_url>/cgi-bin/koha/tools/marc_modification_templates.pl 2) Click 'New template', enter a name and click 'Submit' 3) Click 'New action' 4) Pick 'Add new' and enter '952' as field and 'a' as subfield, enter 'CPL' as value 5) Click 'Add action' 6) Do a batch record modification, visit: <staff_url>/cgi-bin/koha/tools/batch_record_modification.pl 7) Select the tab 'Enter a list of record numbers' and enter '79' 8) On the template, select the template previously created. Click 'continue' 9) Click 'Modify selected records'. Click 'View detail of the enqueued job'. Notice success message is shown with no errors 10) Check the biblio, visit: <staff_url>/cgi-bin/koha/catalogue/detail.pl?biblionumber=79 11) Notice it now has an item with homebranch 'CPL' test with 952 but with other subfields, without subfield 'a' -> confirm 'FK constraint' error is shown, no modification made test with more than one occurrence of 952$a -> confirm 'FK constraint' error is shown, no modification made test with 952$a too long e.g. 'aaaaaaaa' -> confirm 'too long' error is shown test with no 952 mapping -> confirm things work as intended test with 952 mapping plus other tags -> confirm things work as intended prove koha/t/db_dependent/Koha/BackgroundJobs/BatchUpdateBiblio.t prove koha/t/db_dependent/Koha/BackgroundJob/BatchUpdateBiblio.t Signed-off by: Chris Rowlands <chris.rowlands6@nhs.net> Signed-off-by: Lisette Scheer <lisette@bywatersolutions.com> Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com> --- Koha/BackgroundJob/BatchUpdateBiblio.pm | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/Koha/BackgroundJob/BatchUpdateBiblio.pm b/Koha/BackgroundJob/BatchUpdateBiblio.pm index af98fe0eb26..4381a0926eb 100644 --- a/Koha/BackgroundJob/BatchUpdateBiblio.pm +++ b/Koha/BackgroundJob/BatchUpdateBiblio.pm @@ -24,6 +24,7 @@ use Koha::SearchEngine::Indexer; use C4::Context; use C4::Biblio; +use C4::Items; use C4::MarcModificationTemplates; use base 'Koha::BackgroundJob'; @@ -85,7 +86,10 @@ RECORD_IDS: for my $biblionumber ( sort { $a <=> $b } @record_ids ) { my $biblio = Koha::Biblios->find($biblionumber); my $record = $biblio->metadata->record; C4::MarcModificationTemplates::ModifyRecordWithTemplate( $mmtid, $record ); - my $frameworkcode = C4::Biblio::GetFrameworkCode($biblionumber); + my $frameworkcode = C4::Biblio::GetFrameworkCode($biblionumber); + my $biblioitemnumber = $biblio->biblioitem->biblioitemnumber; + C4::Items::AddItemFromMarc( $record, $biblionumber, { biblioitemnumber => $biblioitemnumber } ); + C4::Biblio::ModBiblio( $record, $biblionumber, -- 2.48.1