Bugzilla – Attachment 95774 Details for
Bug 21466
Data inconsistencies - koha fields linked to AV cat values must have a corresponding authorised value
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Bug 21466: Catch any values that should be defined in the AV but are not
Bug-21466-Catch-any-values-that-should-be-defined-.patch (text/plain), 4.40 KB, created by
Martin Renvoize (ashimema)
on 2019-11-25 09:47:47 UTC
(
hide
)
Description:
Bug 21466: Catch any values that should be defined in the AV but are not
Filename:
MIME Type:
Creator:
Martin Renvoize (ashimema)
Created:
2019-11-25 09:47:47 UTC
Size:
4.40 KB
patch
obsolete
>From c6ea66acf71581f854df5c2d50a76fee75c8be4e Mon Sep 17 00:00:00 2001 >From: Jonathan Druart <jonathan.druart@bugs.koha-community.org> >Date: Tue, 5 Mar 2019 17:04:45 -0300 >Subject: [PATCH] Bug 21466: Catch any values that should be defined in the AV > but are not > >Let's expand the idea of the first patch to catch the wrong values for >any others AV. > >Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com> >--- > .../search_for_data_inconsistencies.pl | 50 +++++++++++-------- > 1 file changed, 30 insertions(+), 20 deletions(-) > >diff --git a/misc/maintenance/search_for_data_inconsistencies.pl b/misc/maintenance/search_for_data_inconsistencies.pl >index db8339827d..2c7b3c9e3f 100755 >--- a/misc/maintenance/search_for_data_inconsistencies.pl >+++ b/misc/maintenance/search_for_data_inconsistencies.pl >@@ -127,41 +127,51 @@ use Koha::ItemTypes; > my $frameworks = Koha::BiblioFrameworks->search; > my $invalid_locations_per_framework; > while ( my $framework = $frameworks->next ) { >- my $avs = Koha::AuthorisedValues->search_by_koha_field( >- { >- frameworkcode => $framework->frameworkcode, >- kohafield => 'items.location' >+ my $msss = Koha::MarcSubfieldStructures->search({ frameworkcode => $framework->frameworkcode, authorised_value => { '!=' => [ -and => ( undef, '' ) ]} }); >+ while ( my $mss = $msss->next ) { >+ my $kohafield = $mss->kohafield; >+ next if grep {/$kohafield/} qw( branches itemtypes cn_source ); # internal categories >+ my $avs = Koha::AuthorisedValues->search_by_koha_field( >+ { >+ frameworkcode => $framework->frameworkcode, >+ kohafield => $kohafield, >+ } >+ ); >+ (my $tmp_kohafield = $kohafield) =~ s|items|me|; # replace items.attr with me.attr >+ my $items = Koha::Items->search( >+ { >+ $tmp_kohafield => >+ { -not_in => [ $avs->get_column('authorised_value') ] }, >+ 'biblio.frameworkcode' => $framework->frameworkcode >+ }, >+ { join => [ 'biblioitem', 'biblio' ] } >+ ); >+ if ( $items->count ) { >+ $invalid_locations_per_framework->{ $framework->frameworkcode } = >+ { items => $items, av_category => $mss->authorised_value, kohafield => $kohafield }; > } >- ); >- my $items = Koha::Items->search( >- { >- location => >- { -not_in => [ $avs->get_column('authorised_value') ] }, >- 'biblio.frameworkcode' => $framework->frameworkcode >- }, >- { join => [ 'biblioitem', 'biblio' ] } >- ); >- if ( $items->count ) { >- $invalid_locations_per_framework->{ $framework->frameworkcode } = >- { items => $items, av_category => $avs->next->category, }; > } > } > if (%$invalid_locations_per_framework) { >- new_section('Wrong value dor items.location'); >+ new_section('Wrong values linked to authorised values'); > for my $frameworkcode ( keys %$invalid_locations_per_framework ) { > my $output; > my $items = > $invalid_locations_per_framework->{$frameworkcode}->{items}; > my $av_category = > $invalid_locations_per_framework->{$frameworkcode}->{av_category}; >+ my $kohafield = >+ $invalid_locations_per_framework->{$frameworkcode}->{kohafield}; >+ my ( $table, $column ) = split '\.', $kohafield; > while ( my $i = $items->next ) { >- $output .= " {" . $i->itemnumber . " => " . $i->location . "}"; >+ my $value = $table eq 'items' ? $i->$column : $i->biblioitem->$column; >+ $output .= " {" . $i->itemnumber . " => " . $value . "}"; > } > new_item( > sprintf( > "The Framework *%s* is using the authorised value's category *%s*, " >- . "but the following items.location do not have a value defined ({itemnumber => value }):\n%s", >- $frameworkcode, $av_category, $output >+ . "but the following %s do not have a value defined ({itemnumber => value }):\n%s", >+ $frameworkcode, $av_category, $kohafield, $output > ) > ); > } >-- >2.20.1
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
|
Splinter Review
Attachments on
bug 21466
:
80746
|
86118
|
95773
| 95774 |
98062
|
98063
|
98389