From 3bc8259e4ffab99507f2c9d3781b6294f5af50f5 Mon Sep 17 00:00:00 2001 From: Nick Clemens Date: Mon, 12 Dec 2022 18:41:28 +0000 Subject: [PATCH] Bug 32437: Honor overlay setting in staged batch when adding to a basket This patch uses the replace method added in last patch to ensure records are overlayed when added to a basket To test: 1 - Stage the sample file on this report using the options below (If not using sample database simply save a record as marc from the details page, then change the title in the interface and import the saved version) 2 - Make sure to match using KohaBiblio (999c) 3 - Set option "Replace existing record" if match found 4 - Once record is staged go to Acquisitions 5 - Find a vendor and select/create an open basket 6 - Add to basket from the staged file 7 - Add order info and save 8 - Check the record, title is unchanged - Sample file should add 'New and improved!' 9 - Check the staged records batch - note the diff shows that new record should have overwritten 10 - Apply patch 11 - Stage file, match on KohaBiblio, set action if matching record found to 'Ignore incoming record' 12 - Add to basket from the staged file and save 13 - Confirm record not overlayed when not reuqested 14 - Stage file, match on KohaBiblio, set action if mathc record found to 'Replace existing...' 15 - Add to basket from staged file and save 16 - Confirm the record is updated to 'New and improved!' Signed-off-by: Andrew Fuerste-Henry Signed-off-by: Marcel de Rooy Signed-off-by: Tomas Cohen Arazi --- acqui/addorderiso2709.pl | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/acqui/addorderiso2709.pl b/acqui/addorderiso2709.pl index eefcabcf4a..fb31a8bcee 100755 --- a/acqui/addorderiso2709.pl +++ b/acqui/addorderiso2709.pl @@ -51,6 +51,7 @@ use Koha::Acquisition::Baskets; use Koha::Acquisition::Currencies; use Koha::Acquisition::Orders; use Koha::Acquisition::Booksellers; +use Koha::ImportBatches; use Koha::Import::Records; use Koha::Patrons; @@ -135,6 +136,8 @@ if ($op eq ""){ # retrieve the file you want to import my $import_batch_id = $cgiparams->{'import_batch_id'}; + my $import_batch = Koha::ImportBatches->find( $import_batch_id ); + my $overlay_action = $import_batch->overlay_action; my $import_records = Koha::Import::Records->search({ import_batch_id => $import_batch_id, }); @@ -171,6 +174,10 @@ if ($op eq ""){ # Insert the biblio, or find it through matcher if ( $biblionumber ) { # If matched during staging we can continue $import_record->status('imported')->store; + if( $overlay_action eq 'replace' ){ + my $biblio = Koha::Biblios->find( $biblionumber ); + $import_record->replace({ biblio => $biblio }); + } } else { # Otherwise we check for duplicates, and skip if they exist if ($matcher_id) { if ( $matcher_id eq '_TITLE_AUTHOR_' ) { -- 2.39.5