From c2387c58f1a4d2ed2fd1180957871634ae5f93ce Mon Sep 17 00:00:00 2001 From: Jonathan Druart Date: Wed, 27 Jun 2018 15:35:57 -0300 Subject: [PATCH] Bug 20509: Search for not defined authority codes This patch adds a new check in misc/maintenance/search_for_data_inconsistencies.pl to search for not defined authority codes. Test plan: Set some auth_header.authtypecode to not defined authority codes in Koha (UPDATE auth_header SET authtypecode="XXX" WHERE authid=42;) Then run `misc/maintenance/search_for_data_inconsistencies.pl` Signed-off-by: Josef Moravec Signed-off-by: Katrin Fischer Signed-off-by: Nick Clemens (cherry picked from commit 9558a118dacd74b77c27f63fc41611945aeff052) Signed-off-by: Martin Renvoize --- misc/maintenance/search_for_data_inconsistencies.pl | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/misc/maintenance/search_for_data_inconsistencies.pl b/misc/maintenance/search_for_data_inconsistencies.pl index 2c8861e1a8..f93c6d278f 100755 --- a/misc/maintenance/search_for_data_inconsistencies.pl +++ b/misc/maintenance/search_for_data_inconsistencies.pl @@ -18,6 +18,7 @@ use Modern::Perl; use Koha::Items; +use Koha::Authorities; { my $items = Koha::Items->search({ -or => { homebranch => undef, holdingbranch => undef }}); @@ -34,6 +35,17 @@ use Koha::Items; if ( $items->count ) { new_hint("Edit these items and set valid homebranch and/or holdingbranch")} } +{ + # No join possible, FK is missing at DB level + my @auth_types = Koha::Authority::Types->search->get_column('authtypecode'); + my $authorities = Koha::Authorities->search({authtypecode => { 'not in' => \@auth_types } }); + if ( $authorities->count ) {new_section("Invalid auth_header.authtypecode")} + while ( my $authority = $authorities->next ) { + new_item(sprintf "Authority with authid=%s does not have a code defined (%s)", $authority->authid, $authority->authtypecode); + } + if ( $authorities->count ) {new_hint("Go to 'Home › Administration › Authority types' to define them")} +} + sub new_section { my ( $name ) = @_; say "\n== $name =="; -- 2.39.5