- $query .= " AND borrowernumber = '".$borrowernumber."'" if defined $borrowernumber;
- my $rows_affected = $dbh->do($query);
+
+ # The default of 0 does not work due to foreign key constraints
+ # The anonymisation will fail quietly if AnonymousPatron is not a valid entry
+ my $anonymouspatron = (C4::Context->preference('AnonymousPatron')) ? C4::Context->preference('AnonymousPatron') : 0;
+ my @bind_params = ($anonymouspatron, $date);
+ if (defined $borrowernumber) {
+ $query .= " AND borrowernumber = ?";
+ push @bind_params, $borrowernumber;
+ } else {
+ $query .= " AND (SELECT privacy FROM borrowers WHERE borrowers.borrowernumber=old_issues.borrowernumber) <> 0";
+ }
+ my $sth = $dbh->prepare($query);
+ $sth->execute(@bind_params);
+ my $rows_affected = $sth->rows; ### doublecheck row count return function