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 <andrewfh@dubcolib.org>

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
This commit is contained in:
Nick Clemens 2022-12-12 18:41:28 +00:00 committed by Tomas Cohen Arazi
parent ecc92f92ca
commit 3bc8259e4f
Signed by: tomascohen
GPG key ID: 0A272EA1B2F3C15F

View file

@ -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_' ) {