Bug 20509: Search for not defined authority codes
authorJonathan Druart <jonathan.druart@bugs.koha-community.org>
Wed, 27 Jun 2018 18:35:57 +0000 (15:35 -0300)
committerNick Clemens <nick@bywatersolutions.com>
Wed, 22 Aug 2018 12:48:19 +0000 (12:48 +0000)
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 <josef.moravec@gmail.com>

Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>

Signed-off-by: Nick Clemens <nick@bywatersolutions.com>

misc/maintenance/search_for_data_inconsistencies.pl

index 2c8861e..f93c6d2 100755 (executable)
@@ -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 ==";