View | Details | Raw Unified | Return to bug 12375
Collapse All | Expand All

(-)a/installer/data/mysql/updatedatabase.pl (-2 / +51 lines)
Lines 9893-9899 if ( CheckVersion($DBversion) ) { Link Here
9893
        ALTER TABLE search_history ADD COLUMN id INT(11) NOT NULL AUTO_INCREMENT FIRST, ADD PRIMARY KEY(id);
9893
        ALTER TABLE search_history ADD COLUMN id INT(11) NOT NULL AUTO_INCREMENT FIRST, ADD PRIMARY KEY(id);
9894
    |);
9894
    |);
9895
    print "Upgrade to $DBversion done (Bug 11430: Add primary key for search_history)\n";
9895
    print "Upgrade to $DBversion done (Bug 11430: Add primary key for search_history)\n";
9896
    SetVersion($DBversion);
9896
    SetVersion ($DBversion);
9897
}
9897
}
9898
9898
9899
$DBversion = "3.19.00.016";
9899
$DBversion = "3.19.00.016";
Lines 11449-11454 if ( CheckVersion($DBversion) ) { Link Here
11449
    print "Upgrade to $DBversion done (Bug 11569 - Typo in userpermissions.sql)\n";
11449
    print "Upgrade to $DBversion done (Bug 11569 - Typo in userpermissions.sql)\n";
11450
    SetVersion($DBversion);
11450
    SetVersion($DBversion);
11451
}
11451
}
11452
$DBversion = "XXX";
11453
if ( C4::Context->preference("Version") < TransformToNum($DBversion) ) {
11454
   $dbh->do("
11455
       ALTER TABLE serial
11456
        ADD serialseq_x VARCHAR( 100 ) NULL DEFAULT NULL AFTER serialseq,
11457
        ADD serialseq_y VARCHAR( 100 ) NULL DEFAULT NULL AFTER serialseq_x,
11458
        ADD serialseq_z VARCHAR( 100 ) NULL DEFAULT NULL AFTER serialseq_y
11459
   ");
11460
11461
    my $schema        = Koha::Database->new()->schema();
11462
    my @subscriptions = $schema->resultset('Subscription')->all();
11463
11464
    foreach my $subscription (@subscriptions) {
11465
        my $number_pattern = $subscription->numberpattern();
11466
11467
        my @splits = split( /\{[XYZ]\}/, $number_pattern->numberingmethod() );
11468
11469
        my @serials =
11470
          $schema->resultset('Serial')
11471
          ->search( { subscriptionid => $subscription->subscriptionid() } );
11472
11473
        foreach my $serial (@serials) {
11474
            my $serialseq = $serial->serialseq();
11475
            my ( $x, $y, $z );
11476
11477
            ## We cannot split on multiple values at once,
11478
            ## so let's replace each of those values with __SPLIT__
11479
            if (@splits) {
11480
                map( $serialseq =~ s/$_/__SPLIT__/, @splits );
11481
                ( undef, $x, $y, $z ) = split( /__SPLIT__/, $serialseq );
11482
            }
11483
            else
11484
            {    ## Nothing to split on means the only thing in serialseq is {X}
11485
                $x = $serialseq;
11486
            }
11487
11488
            $serial->update(
11489
                {
11490
                    serialseq_x => $x,
11491
                    serialseq_y => $y,
11492
                    serialseq_z => $z,
11493
                }
11494
            );
11495
        }
11496
    }
11497
11498
    print "Upgrade to $DBversion done ( Bug 8956 - Split serials enumeration data into separate fields )\n";
11499
    SetVersion($DBversion);
11500
}
11501
11452
11502
11453
# DEVELOPER PROCESS, search for anything to execute in the db_update directory
11503
# DEVELOPER PROCESS, search for anything to execute in the db_update directory
11454
# SEE bug 13068
11504
# SEE bug 13068
11455
- 

Return to bug 12375