<select id="borrower_categorycode" name="borrower_categorycode">
<option value="" selected="selected">Any</option>
[% FOREACH bc IN borrower_categorycodes %]
- [% UNLESS bc.categorycode == 'S' %]
+ [% UNLESS ( bc.categorycode == 'S' || bc.category_type == 'S' ) %]
<option value="[% bc.categorycode %]">[% bc.description %]</option>
[% END %]
[% END %]
<br />
[% IF ( totalToDelete ) %]
<fieldset><legend>What do you want to do for deleted patrons?</legend>
+ <input id="delete" type="radio" name="radio" value="delete" />
<label for="delete">Permanently delete these patrons</label>
- <input id="delete" type="radio" name="radio" value="delete" checked="checked" />
+ <br /><input id="trash" type="radio" name="radio" value="trash" />
<label for="trash">Move these patrons to the trash</label>
- <input id="trash" type="radio" name="radio" value="trash" />
+
+ <br /><input id="testrun" type="radio" name="radio" value="testrun" checked="checked" />
+ <label for="testrun">Do not remove any patrons (test run)</label>
<input type="hidden" name="do_delete" value="[% totalToDelete %]" /></fieldset>
[% END %]
<!-- Step 3 START -->
<div id="step3">
-
- [% IF ( do_delete ) %]
- [% IF ( trash ) %]
- <h4>[% TotalDel %] patrons have been successfully moved to trash</h4>
+ [% IF ( testrun ) %]
+ <h4>[% TotalDel %] patrons would have been removed (if it wasn't a test run)</h4>
+ <h4>No patron records have been actually removed</h4>
+ [% ELSE %]
+ [% IF ( do_delete ) %]
+ [% IF ( trash ) %]
+ <h4>[% TotalDel %] patrons have been successfully moved to trash</h4>
+ [% ELSE %]
+ <h4>[% TotalDel %] patrons have been successfully deleted</h4>
+ [% END %]
[% ELSE %]
- <h4>[% TotalDel %] patrons have been successfully deleted</h4>
+ <h4>No patron records have been removed</h4>
[% END %]
- [% ELSE %]
- <h4>No patron records have been removed</h4>
[% END %]
[% IF ( do_anonym ) %]
<h4>All patrons with checkouts older than [% filterdate1 %] have been anonymized</h4>
if ( $checkboxes{borrower} ) {
$membersToDelete =
GetBorrowersToExpunge( { not_borrowered_since => $filterdate1, expired_before => $borrower_dateexpiry, category_code => $borrower_categorycode } );
+ _skip_borrowers_with_nonzero_balance( $membersToDelete );
$totalDel = scalar @$membersToDelete;
}
memberstoanonymize_list => $membersToAnonymize,
filterdate1 => format_date($filterdate1),
filterdate2 => format_date($filterdate2),
- borrower_dateexpiry => $borrower_dateexpiry,
+ borrower_dateexpiry => format_date($borrower_dateexpiry),
borrower_categorycode => $borrower_categorycode,
);
if ($do_delete) {
my $membersToDelete =
GetBorrowersToExpunge( { not_borrowered_since => $filterdate1, expired_before => $borrower_dateexpiry, category_code => $borrower_categorycode } );
+ _skip_borrowers_with_nonzero_balance( $membersToDelete );
$totalDel = scalar(@$membersToDelete);
$radio = $params->{'radio'};
- if ( $radio eq 'trash' ) {
- my $i;
- for ( $i = 0 ; $i < $totalDel ; $i++ ) {
- MoveMemberToDeleted( $membersToDelete->[$i]->{'borrowernumber'} );
- C4::VirtualShelves::HandleDelBorrower( $membersToDelete->[$i]->{'borrowernumber'} );
- DelMember( $membersToDelete->[$i]->{'borrowernumber'} );
- }
- } else { # delete completly.
- my $i;
- for ( $i = 0 ; $i < $totalDel ; $i++ ) {
- C4::VirtualShelves::HandleDelBorrower( $membersToDelete->[$i]->{'borrowernumber'} );
- DelMember( $membersToDelete->[$i]->{'borrowernumber'} );
- }
+ for ( my $i = 0 ; $i < $totalDel ; $i++ ) {
+ $radio eq 'testrun' && last;
+ my $borrowernumber = $membersToDelete->[$i]->{'borrowernumber'};
+ $radio eq 'trash' && MoveMemberToDeleted( $borrowernumber );
+ C4::VirtualShelves::HandleDelBorrower( $borrowernumber );
+ DelMember( $borrowernumber );
}
$template->param(
do_delete => '1',
$template->param(
step3 => '1',
trash => ( $radio eq "trash" ) ? (1) : (0),
+ testrun => ( $radio eq "testrun" ) ? 1: 0,
);
#writing the template
#writing the template
output_html_with_http_headers $cgi, $cookie, $template->output;
+
+sub _skip_borrowers_with_nonzero_balance {
+ my $borrowers = shift;
+ my $balance;
+ @$borrowers = map {
+ (undef, undef, $balance) = GetMemberIssuesAndFines( $_->{borrowernumber} );
+ ($balance != 0) ? (): ($_);
+ } @$borrowers;
+}