Browse Source

Bug 32656: Script delete_records_via_leader.pl no longer deletes items

Bug 29788 inadvertantly replaced a call to safe_delete() with safe_to_delete()
such that any time the script should delete an item it only checks to see if
the item is delectable, after which deletion of the record fails because the
items were not deleted.

Test Plan:
1) Mark a record with items to be deleted via the record leader
2) Run delete_records_via_leader.pl -i -b -v
3) Note the script says it is deleting the items but then the record
   deletion fails. Note the items remain in the items table of the
   database.
4) Apply this patch
5) Repeat step 2
6) This time the items and record should be deleted!

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
23.05.x
Kyle Hall 1 year ago
committed by Martin Renvoize
parent
commit
790f00781a
Signed by: martin.renvoize GPG Key ID: 422B469130441A0F
  1. 10
      misc/cronjobs/delete_records_via_leader.pl

10
misc/cronjobs/delete_records_via_leader.pl

@ -70,16 +70,16 @@ This script has the following parameters :
exit();
}
my @metadatas = # Should be replaced by a call to C4::Search on zebra index
my $metadatas = # Should be replaced by a call to C4::Search on zebra index
# Record-status when bug 15537 will be pushed
Koha::Biblio::Metadatas->search( { format => 'marcxml', schema => C4::Context->preference('marcflavour'), metadata => { LIKE => '%<leader>_____d%' } } );
my $total_records_count = @metadatas;
my $total_records_count = $metadatas->count;
my $deleted_records_count = 0;
my $total_items_count = 0;
my $deleted_items_count = 0;
foreach my $m (@metadatas) {
my $biblionumber = $m->get_column('biblionumber');
while ( my $m = $metadatas->next ) {
my $biblionumber = $m->biblionumber;
say "RECORD: $biblionumber" if $verbose;
@ -99,7 +99,7 @@ foreach my $m (@metadatas) {
say "TEST MODE: ERROR DELETING ITEM $itemnumber: $error";
}
} else {
my $deleted = $item->safe_to_delete;
my $deleted = $item->safe_delete;
if ( $deleted ) {
say "DELETED ITEM $itemnumber" if $verbose;
$deleted_items_count++;

Loading…
Cancel
Save