Bug 11529: Update kohafield in default framework only if not already set.
[koha.git] / installer / data / mysql / atomicupdate / bug_11529.perl
1 $DBversion = 'XXX';  # will be replaced by the RM
2 if( CheckVersion( $DBversion ) ) {
3     if( !column_exists( 'biblio', 'subtitle' ) ) {
4         $dbh->do( "ALTER TABLE biblio ADD COLUMN medium LONGTEXT AFTER title" );
5         $dbh->do( "ALTER TABLE biblio ADD COLUMN subtitle LONGTEXT AFTER medium" );
6         $dbh->do( "ALTER TABLE biblio ADD COLUMN part_number LONGTEXT AFTER subtitle" );
7         $dbh->do( "ALTER TABLE biblio ADD COLUMN part_name LONGTEXT AFTER part_number" );
8
9         $dbh->do( "ALTER TABLE deletedbiblio ADD COLUMN medium LONGTEXT AFTER title" );
10         $dbh->do( "ALTER TABLE deletedbiblio ADD COLUMN subtitle LONGTEXT AFTER medium" );
11         $dbh->do( "ALTER TABLE deletedbiblio ADD COLUMN part_number LONGTEXT AFTER subtitle" );
12         $dbh->do( "ALTER TABLE deletedbiblio ADD COLUMN part_name LONGTEXT AFTER part_number" );
13     }
14
15     $dbh->do( "UPDATE marc_subfield_structure SET kohafield='biblio.subtitle' WHERE kohafield='bibliosubtitle.subtitle'" );
16
17     my $marcflavour = C4::Context->preference('marcflavour');
18
19     if ( $marcflavour eq 'UNIMARC' ) {
20         $dbh->do(qq{
21             UPDATE marc_subfield_structure SET kohafield='biblio.medium'
22             WHERE (kohafield IS NULL OR kohafield='') AND frameworkcode='' AND tagfield='200' AND tagsubfield='b'
23         });
24         $dbh->do(qq{
25             UPDATE marc_subfield_structure SET kohafield='biblio.subtitle'
26             WHERE (kohafield IS NULL OR kohafield='') AND frameworkcode='' AND tagfield='200' AND tagsubfield='e'
27         });
28         $dbh->do(qq{
29             UPDATE marc_subfield_structure SET kohafield='biblio.part_number'
30             WHERE (kohafield IS NULL OR kohafield='') AND frameworkcode='' AND tagfield='200' AND tagsubfield='h'
31         });
32         $dbh->do(qq{
33             UPDATE marc_subfield_structure SET kohafield='biblio.part_name'
34             WHERE (kohafield IS NULL OR kohafield='') AND frameworkcode='' AND tagfield='200' AND tagsubfield='i'
35         });
36     } else {
37         $dbh->do(qq{
38             UPDATE marc_subfield_structure SET kohafield='biblio.medium'
39             WHERE (kohafield IS NULL OR kohafield='') AND frameworkcode='' AND tagfield='245' AND tagsubfield='h'
40         });
41         $dbh->do(qq{
42             UPDATE marc_subfield_structure SET kohafield='biblio.subtitle'
43             WHERE (kohafield IS NULL OR kohafield='') AND frameworkcode='' AND tagfield='245' AND tagsubfield='b'
44         });
45         $dbh->do(qq{
46             UPDATE marc_subfield_structure SET kohafield='biblio.part_number'
47             WHERE (kohafield IS NULL OR kohafield='') AND frameworkcode='' AND tagfield='245' AND tagsubfield='n'
48         });
49         $dbh->do(qq{
50             UPDATE marc_subfield_structure SET kohafield='biblio.part_name'
51             WHERE (kohafield IS NULL OR kohafield='') AND frameworkcode='' AND tagfield='245' AND tagsubfield='p'
52         });
53     }
54
55     $dbh->do( "DROP TABLE IF EXISTS fieldmapping" );
56
57     # Always end with this (adjust the bug info)
58     SetVersion( $DBversion );
59     print "Upgrade to $DBversion done (Bug 11529 - Add medium, subtitle and part information to biblio table)\n";
60 }