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

(-)a/installer/data/mysql/updatedatabase.pl (-3 / +51 lines)
Lines 38-44 use C4::Context; Link Here
38
use C4::Installer;
38
use C4::Installer;
39
use C4::Dates;
39
use C4::Dates;
40
use Koha::Database;
40
use Koha::Database;
41
42
use Koha;
41
use Koha;
43
42
44
use MARC::Record;
43
use MARC::Record;
Lines 9897-9903 if ( CheckVersion($DBversion) ) { Link Here
9897
        ALTER TABLE search_history ADD COLUMN id INT(11) NOT NULL AUTO_INCREMENT FIRST, ADD PRIMARY KEY(id);
9896
        ALTER TABLE search_history ADD COLUMN id INT(11) NOT NULL AUTO_INCREMENT FIRST, ADD PRIMARY KEY(id);
9898
    |);
9897
    |);
9899
    print "Upgrade to $DBversion done (Bug 11430: Add primary key for search_history)\n";
9898
    print "Upgrade to $DBversion done (Bug 11430: Add primary key for search_history)\n";
9900
    SetVersion($DBversion);
9899
    SetVersion ($DBversion);
9901
}
9900
}
9902
9901
9903
$DBversion = "3.19.00.016";
9902
$DBversion = "3.19.00.016";
Lines 10641-10646 if ( CheckVersion($DBversion) ) { Link Here
10641
    SetVersion($DBversion);
10640
    SetVersion($DBversion);
10642
}
10641
}
10643
10642
10643
$DBversion = "3.19.00.XXX";
10644
if ( C4::Context->preference("Version") < TransformToNum($DBversion) ) {
10645
   $dbh->do("
10646
       ALTER TABLE serial
10647
        ADD serialseq_x VARCHAR( 100 ) NULL DEFAULT NULL AFTER serialseq,
10648
        ADD serialseq_y VARCHAR( 100 ) NULL DEFAULT NULL AFTER serialseq_x,
10649
        ADD serialseq_z VARCHAR( 100 ) NULL DEFAULT NULL AFTER serialseq_y
10650
   ");
10651
10652
    my $schema        = Koha::Database->new()->schema();
10653
    my @subscriptions = $schema->resultset('Subscription')->all();
10654
10655
    foreach my $subscription (@subscriptions) {
10656
        my $number_pattern = $subscription->numberpattern();
10657
10658
        my @splits = split( /\{[XYZ]\}/, $number_pattern->numberingmethod() );
10659
10660
        my @serials =
10661
          $schema->resultset('Serial')
10662
          ->search( { subscriptionid => $subscription->subscriptionid() } );
10663
10664
        foreach my $serial (@serials) {
10665
            my $serialseq = $serial->serialseq();
10666
            my ( $x, $y, $z );
10667
10668
            ## We cannot split on multiple values at once,
10669
            ## so let's replace each of those values with __SPLIT__
10670
            if (@splits) {
10671
                map( $serialseq =~ s/$_/__SPLIT__/, @splits );
10672
                ( undef, $x, $y, $z ) = split( /__SPLIT__/, $serialseq );
10673
            }
10674
            else
10675
            {    ## Nothing to split on means the only thing in serialseq is {X}
10676
                $x = $serialseq;
10677
            }
10678
10679
            $serial->update(
10680
                {
10681
                    serialseq_x => $x,
10682
                    serialseq_y => $y,
10683
                    serialseq_z => $z,
10684
                }
10685
            );
10686
        }
10687
    }
10688
10689
    print "Upgrade to $DBversion done ( Bug 8956 - Split serials enumeration data into separate fields )\n";
10690
    SetVersion($DBversion);
10691
}
10692
10644
10693
10645
# DEVELOPER PROCESS, search for anything to execute in the db_update directory
10694
# DEVELOPER PROCESS, search for anything to execute in the db_update directory
10646
# SEE bug 13068
10695
# SEE bug 13068
10647
- 

Return to bug 12375