From aca6c9c3f25bddc138e15f6bffabe6c160125fa2 Mon Sep 17 00:00:00 2001 From: Jonathan Druart Date: Mon, 30 Sep 2013 14:14:15 +0200 Subject: [PATCH] Bug 10419: Patrons with fines should not be deleted Test plan: - add a fine for a patron - verify the script does not delete this patron. --- misc/cronjobs/delete_patrons.pl | 24 ++++++++++++++++++------ 1 file changed, 18 insertions(+), 6 deletions(-) diff --git a/misc/cronjobs/delete_patrons.pl b/misc/cronjobs/delete_patrons.pl index cc47b7a..3be8167 100755 --- a/misc/cronjobs/delete_patrons.pl +++ b/misc/cronjobs/delete_patrons.pl @@ -57,37 +57,49 @@ $dbh->{RaiseError} = 1; $dbh->{PrintError} = 0; $dbh->{AutoCommit} = 0; # use transactions to avoid partial deletes +my $deleted = 0; for my $member (@$members) { print "Trying to delete patron $member->{borrowernumber}... " if $verbose; + + my $borrowernumber = $member->{borrowernumber}; + my $flags = C4::Members::patronflags( $member ); + if ( my $charges = $flags->{CHARGES}{amount} ) { + say "Failed to delete patron $borrowernumber: patron has $charges in fines"; + next; + } + eval { - C4::Members::MoveMemberToDeleted( $member->{borrowernumber} ) + C4::Members::MoveMemberToDeleted( $borrowernumber ) if $confirm; }; if ($@) { - say "Failed to delete patron $member->{borrowernumber}, cannot move it: ($@)"; + say "Failed to delete patron $borrowernumber, cannot move it: ($@)"; $dbh->rollback; next; } eval { - C4::VirtualShelves::HandleDelBorrower( $member->{borrowernumber} ) + C4::VirtualShelves::HandleDelBorrower( $borrowernumber ) if $confirm; }; if ($@) { - say "Failed to delete patron $member->{borrowernumber}, error handling its lists: ($@)"; + say "Failed to delete patron $borrowernumber, error handling its lists: ($@)"; $dbh->rollback; next; } - eval { C4::Members::DelMember( $member->{borrowernumber} ) if $confirm; }; + eval { C4::Members::DelMember( $borrowernumber ) if $confirm; }; if ($@) { - say "Failed to delete patron $member->{borrowernumber}: $@)"; + say "Failed to delete patron $borrowernumber: $@)"; $dbh->rollback; next; } $dbh->commit; + $deleted++; say "OK" if $verbose; } +say "$deleted patrons deleted"; + =head1 NAME delete_patrons - This script deletes patrons -- 1.7.10.4