From e16aa05be258e41c14f996c49f77e465fb069e6d Mon Sep 17 00:00:00 2001 From: Ere Maijala Date: Fri, 12 Apr 2019 16:59:39 +0300 Subject: [PATCH] Bug 11529: Update kohafield in default framework only if not already set. Signed-off-by: Josef Moravec Signed-off-by: Nick Clemens --- installer/data/mysql/atomicupdate/bug_11529.perl | 40 +++++++++++++++++++----- 1 file changed, 32 insertions(+), 8 deletions(-) diff --git a/installer/data/mysql/atomicupdate/bug_11529.perl b/installer/data/mysql/atomicupdate/bug_11529.perl index c67d85f2b7..6e784491c3 100644 --- a/installer/data/mysql/atomicupdate/bug_11529.perl +++ b/installer/data/mysql/atomicupdate/bug_11529.perl @@ -17,15 +17,39 @@ if( CheckVersion( $DBversion ) ) { my $marcflavour = C4::Context->preference('marcflavour'); if ( $marcflavour eq 'UNIMARC' ) { - $dbh->do( "UPDATE marc_subfield_structure SET kohafield='biblio.medium' WHERE frameworkcode='' AND tagfield='200' AND tagsubfield='b'" ); - $dbh->do( "UPDATE marc_subfield_structure SET kohafield='biblio.subtitle' WHERE frameworkcode='' AND tagfield='200' AND tagsubfield='e'" ); - $dbh->do( "UPDATE marc_subfield_structure SET kohafield='biblio.part_number' WHERE frameworkcode='' AND tagfield='200' AND tagsubfield='h'" ); - $dbh->do( "UPDATE marc_subfield_structure SET kohafield='biblio.part_name' WHERE frameworkcode='' AND tagfield='200' AND tagsubfield='i'" ); + $dbh->do(qq{ + UPDATE marc_subfield_structure SET kohafield='biblio.medium' + WHERE (kohafield IS NULL OR kohafield='') AND frameworkcode='' AND tagfield='200' AND tagsubfield='b' + }); + $dbh->do(qq{ + UPDATE marc_subfield_structure SET kohafield='biblio.subtitle' + WHERE (kohafield IS NULL OR kohafield='') AND frameworkcode='' AND tagfield='200' AND tagsubfield='e' + }); + $dbh->do(qq{ + UPDATE marc_subfield_structure SET kohafield='biblio.part_number' + WHERE (kohafield IS NULL OR kohafield='') AND frameworkcode='' AND tagfield='200' AND tagsubfield='h' + }); + $dbh->do(qq{ + UPDATE marc_subfield_structure SET kohafield='biblio.part_name' + WHERE (kohafield IS NULL OR kohafield='') AND frameworkcode='' AND tagfield='200' AND tagsubfield='i' + }); } else { - $dbh->do( "UPDATE marc_subfield_structure SET kohafield='biblio.medium' WHERE frameworkcode='' AND tagfield='245' AND tagsubfield='h'" ); - $dbh->do( "UPDATE marc_subfield_structure SET kohafield='biblio.subtitle' WHERE frameworkcode='' AND tagfield='245' AND tagsubfield='b'" ); - $dbh->do( "UPDATE marc_subfield_structure SET kohafield='biblio.part_number' WHERE frameworkcode='' AND tagfield='245' AND tagsubfield='n'" ); - $dbh->do( "UPDATE marc_subfield_structure SET kohafield='biblio.part_name' WHERE frameworkcode='' AND tagfield='245' AND tagsubfield='p'" ); + $dbh->do(qq{ + UPDATE marc_subfield_structure SET kohafield='biblio.medium' + WHERE (kohafield IS NULL OR kohafield='') AND frameworkcode='' AND tagfield='245' AND tagsubfield='h' + }); + $dbh->do(qq{ + UPDATE marc_subfield_structure SET kohafield='biblio.subtitle' + WHERE (kohafield IS NULL OR kohafield='') AND frameworkcode='' AND tagfield='245' AND tagsubfield='b' + }); + $dbh->do(qq{ + UPDATE marc_subfield_structure SET kohafield='biblio.part_number' + WHERE (kohafield IS NULL OR kohafield='') AND frameworkcode='' AND tagfield='245' AND tagsubfield='n' + }); + $dbh->do(qq{ + UPDATE marc_subfield_structure SET kohafield='biblio.part_name' + WHERE (kohafield IS NULL OR kohafield='') AND frameworkcode='' AND tagfield='245' AND tagsubfield='p' + }); } $dbh->do( "DROP TABLE IF EXISTS fieldmapping" ); -- 2.11.0