Bug 22944: avoid AnonymousPatron in search_patrons_to_anonymise
authorFridolin Somers <fridolin.somers@biblibre.com>
Tue, 21 May 2019 09:55:40 +0000 (11:55 +0200)
committerMartin Renvoize <martin.renvoize@ptfs-europe.com>
Mon, 24 Jun 2019 13:32:26 +0000 (14:32 +0100)
In Koha::Patrons::search_patrons_to_anonymise() old issues already affected to the anonymous patron should be avoided. It is useless and can impact performance.

It is already working if AnymousPatron is not defined or 0 because of :
  'old_issues.borrowernumber' => { 'not' => undef }

In theory the anymous patron should have privacy=0 but in case its not it should be explicitly avoided.

Test plan :
Run t/db_dependent/Koha/Patrons.t

Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>

Koha/Patrons.pm

index 7510093..c113c2c 100644 (file)
@@ -154,6 +154,7 @@ sub search_patrons_to_anonymise {
       ( C4::Context->preference('IndependentBranches') && C4::Context->userenv && !C4::Context->IsSuperLibrarian() && C4::Context->userenv->{branch} )
       ? C4::Context->userenv->{branch}
       : undef;
+    my $anonymous_patron = C4::Context->preference('AnonymousPatron') || undef;
 
     my $dtf = Koha::Database->new->schema->storage->datetime_parser;
     my $rs = $class->_resultset->search(
@@ -161,6 +162,7 @@ sub search_patrons_to_anonymise {
             'old_issues.borrowernumber' => { 'not' => undef },
             privacy                     => { '<>'  => 0 },                  # Keep forever
             ( $library ? ( 'old_issues.branchcode' => $library ) : () ),
+            ( $anonymous_patron ? ( 'old_issues.borrowernumber' => { '!=' => $anonymous_patron } ) : () ),
         },
         {   join     => ["old_issues"],
             distinct => 1,