Bug 18806: Fix batch revert

Since bug 18242: When a biblio is deleted, a new transaction is created.
tools/manage-marc-import.pl use the AutoCommit flag, which does not
allow nested transaction.
AutoCommit must not be used.

Test plan:
Import a batch, then revert it.
The biblios must have been correctly deleted, they were not before this
patch

Signed-off-by: Lee Jamison <ldjamison@marywood.edu>
Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
(cherry picked from commit 3db0401366)
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
This commit is contained in:
Jonathan Druart 2017-06-14 15:53:18 -03:00 committed by Fridolin Somers
parent 1c9092c944
commit eafd2e7299
1 changed files with 36 additions and 18 deletions

View File

@ -234,15 +234,24 @@ sub commit_batch {
my ($template, $import_batch_id, $framework) = @_;
my $job = undef;
$dbh->{AutoCommit} = 0;
my $callback = sub {};
if ($runinbackground) {
$job = put_in_background($import_batch_id);
$callback = progress_callback($job, $dbh);
}
my ($num_added, $num_updated, $num_items_added, $num_items_replaced, $num_items_errored, $num_ignored) =
BatchCommitRecords($import_batch_id, $framework, 50, $callback);
$dbh->commit();
my ( $num_added, $num_updated, $num_items_added,
$num_items_replaced, $num_items_errored, $num_ignored );
my $schema = Koha::Database->new->schema;
$schema->storage->txn_do(
sub {
my $callback = sub { };
if ($runinbackground) {
$job = put_in_background($import_batch_id);
$callback = progress_callback( $job, $dbh );
}
(
$num_added, $num_updated, $num_items_added,
$num_items_replaced, $num_items_errored, $num_ignored
)
= BatchCommitRecords( $import_batch_id, $framework, 50,
$callback );
}
);
my $results = {
did_commit => 1,
@ -263,16 +272,25 @@ sub commit_batch {
sub revert_batch {
my ($template, $import_batch_id) = @_;
$dbh->{AutoCommit} = 0;
my $job = undef;
my $callback = sub {};
if ($runinbackground) {
$job = put_in_background($import_batch_id);
$callback = progress_callback($job, $dbh);
}
my ($num_deleted, $num_errors, $num_reverted, $num_items_deleted, $num_ignored) =
BatchRevertRecords($import_batch_id, 50, $callback);
$dbh->commit();
my (
$num_deleted, $num_errors, $num_reverted,
$num_items_deleted, $num_ignored
);
my $schema = Koha::Database->new->schema;
$schema->txn_do(
sub {
my $callback = sub { };
if ($runinbackground) {
$job = put_in_background($import_batch_id);
$callback = progress_callback( $job, $dbh );
}
(
$num_deleted, $num_errors, $num_reverted,
$num_items_deleted, $num_ignored
) = BatchRevertRecords( $import_batch_id, 50, $callback );
}
);
my $results = {
did_revert => 1,