From f462a8922d2d812c6e7214b9afdb944390756b75 Mon Sep 17 00:00:00 2001 From: Fridolin Somers Date: Wed, 30 Sep 2020 11:51:22 +0200 Subject: [PATCH] Bug 26311: (follow-up) loop through the patron with date of birth and in categories having age limits Also added category limits in message, for example (12-18) Check patron : - with no date of birth - with invalid age in category having age required - with invalid age in category having upper age limit - with invalid age in category having age required and upper age limit --- .../search_for_data_inconsistencies.pl | 33 +++++++++++++++---- 1 file changed, 26 insertions(+), 7 deletions(-) diff --git a/misc/maintenance/search_for_data_inconsistencies.pl b/misc/maintenance/search_for_data_inconsistencies.pl index f7a9132051..f05c7d28d8 100755 --- a/misc/maintenance/search_for_data_inconsistencies.pl +++ b/misc/maintenance/search_for_data_inconsistencies.pl @@ -216,16 +216,35 @@ use C4::Biblio; } { - my $patrons = Koha::Patrons->search( {}, { order_by => [ 'categorycode', 'borrowernumber' ] } ); + my $aging_patrons = Koha::Patrons->search( + { + -not => { + -or => { + 'me.dateofbirth' => undef, + -and => { + 'categorycode.dateofbirthrequired' => undef, + 'categorycode.upperagelimit' => undef, + } + } + } + }, + { join => { 'categorycode' => 'borrowers' } }, + { order_by => [ 'me.categorycode', 'me.borrowernumber' ] }, + ); my @invalid_patrons; - while ( my $patron = $patrons->next ) { - push @invalid_patrons, $patron unless $patron->is_valid_age; + while ( my $aging_patron = $aging_patrons->next ) { + warn $aging_patron->borrowernumber; + push @invalid_patrons, $aging_patron unless $aging_patron->is_valid_age; } if (@invalid_patrons) { - new_section("Patrons with invalid age for category"); - foreach my $patron (@invalid_patrons) { - new_item( sprintf "Patron borrowernumber=%s has an invalid age of %s for their category '%s'", - $patron->borrowernumber, $patron->get_age, $patron->category->categorycode, ); + new_section("Patrons with invalid age for their category"); + foreach my $invalid_patron (@invalid_patrons) { + my $category = $invalid_patron->category; + new_item( + sprintf "Patron borrowernumber=%s has an invalid age of %s for his category '%s' (%s-%s)", + $invalid_patron->borrowernumber, $invalid_patron->get_age, $category->categorycode, + $category->dateofbirthrequired, $category->upperagelimit + ); } new_hint("You may change the patron's category automatically with misc/cronjobs/update_patrons_category.pl"); } -- 2.28.0