@@ -, +, @@ deleted - 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(-) --- a/misc/cronjobs/delete_patrons.pl +++ a/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 --