From 5c7cc4d2a6ee0bd3a9aa19594874dd4bb0501f73 Mon Sep 17 00:00:00 2001 From: Fridolin Somers Date: Thu, 27 Aug 2020 17:21:14 +0200 Subject: [PATCH] Bug 26311: Add patron invalid age to search_for_data_inconsistencies.pl Patron categories may have age limits. Add to script misc/maintenance/search_for_data_inconsistencies.pl the list of patrons which age is invalid regarding there category. Test plan : 1) Create an adult patron category limited to 18-99 years 2) Create a patron in the category 3) Edit in database its date of birth so that he is 17 years old 4) Run misc/maintenance/search_for_data_inconsistencies.pl => You see the patron Signed-off-by: Owen Leonard Signed-off-by: Katrin Fischer Signed-off-by: David Nind --- .../search_for_data_inconsistencies.pl | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/misc/maintenance/search_for_data_inconsistencies.pl b/misc/maintenance/search_for_data_inconsistencies.pl index 96b15f3264..e64758d1e2 100755 --- a/misc/maintenance/search_for_data_inconsistencies.pl +++ b/misc/maintenance/search_for_data_inconsistencies.pl @@ -25,6 +25,7 @@ use Koha::BiblioFrameworks; use Koha::Biblioitems; use Koha::Items; use Koha::ItemTypes; +use Koha::Patrons; use C4::Biblio qw( GetMarcFromKohaField ); { @@ -276,6 +277,22 @@ use C4::Biblio qw( GetMarcFromKohaField ); } } +{ + my $patrons = Koha::Patrons->search( {}, { order_by => [ 'categorycode', 'borrowernumber' ] } ); + my @invalid_patrons; + while ( my $patron = $patrons->next ) { + push @invalid_patrons, $patron unless $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 in category '%s' has invalid age '%s'", + $patron->borrowernumber, $patron->category->categorycode, $patron->get_age ); + } + new_hint("You may change patron's category automatically with misc/cronjobs/update_patrons_category.pl"); + } +} + sub new_section { my ( $name ) = @_; say "\n== $name =="; -- 2.30.2