Lines 37-42
use Getopt::Long;
Link Here
|
37 |
use C4::Context; |
37 |
use C4::Context; |
38 |
use C4::Installer; |
38 |
use C4::Installer; |
39 |
use C4::Dates; |
39 |
use C4::Dates; |
|
|
40 |
use Koha::Database; |
40 |
|
41 |
|
41 |
use MARC::Record; |
42 |
use MARC::Record; |
42 |
use MARC::File::XML ( BinaryEncoding => 'utf8' ); |
43 |
use MARC::File::XML ( BinaryEncoding => 'utf8' ); |
Lines 9653-9658
if(CheckVersion($DBversion)) {
Link Here
|
9653 |
}); |
9654 |
}); |
9654 |
|
9655 |
|
9655 |
print "Upgrade to $DBversion done (Bug 13379 - Modify authorised_values.category to varchar(32))\n"; |
9656 |
print "Upgrade to $DBversion done (Bug 13379 - Modify authorised_values.category to varchar(32))\n"; |
|
|
9657 |
SetVersion ($DBversion); |
9658 |
} |
9659 |
|
9660 |
$DBversion = "3.19.00.XXX"; |
9661 |
if ( C4::Context->preference("Version") < TransformToNum($DBversion) ) { |
9662 |
$dbh->do(" |
9663 |
ALTER TABLE serial |
9664 |
ADD serialseq_x VARCHAR( 100 ) NULL DEFAULT NULL AFTER serialseq, |
9665 |
ADD serialseq_y VARCHAR( 100 ) NULL DEFAULT NULL AFTER serialseq_x, |
9666 |
ADD serialseq_z VARCHAR( 100 ) NULL DEFAULT NULL AFTER serialseq_y |
9667 |
"); |
9668 |
|
9669 |
my $schema = Koha::Database->new()->schema(); |
9670 |
my @subscriptions = $schema->resultset('Subscription')->all(); |
9671 |
|
9672 |
foreach my $subscription (@subscriptions) { |
9673 |
my $number_pattern = $subscription->numberpattern(); |
9674 |
|
9675 |
my @splits = split( /\{[XYZ]\}/, $number_pattern->numberingmethod() ); |
9676 |
|
9677 |
my @serials = |
9678 |
$schema->resultset('Serial') |
9679 |
->search( { subscriptionid => $subscription->subscriptionid() } ); |
9680 |
|
9681 |
foreach my $serial (@serials) { |
9682 |
my $serialseq = $serial->serialseq(); |
9683 |
my ( $x, $y, $z ); |
9684 |
|
9685 |
## We cannot split on multiple values at once, |
9686 |
## so let's replace each of those values with __SPLIT__ |
9687 |
if (@splits) { |
9688 |
map( $serialseq =~ s/$_/__SPLIT__/, @splits ); |
9689 |
( undef, $x, $y, $z ) = split( /__SPLIT__/, $serialseq ); |
9690 |
} |
9691 |
else |
9692 |
{ ## Nothing to split on means the only thing in serialseq is {X} |
9693 |
$x = $serialseq; |
9694 |
} |
9695 |
|
9696 |
$serial->update( |
9697 |
{ |
9698 |
serialseq_x => $x, |
9699 |
serialseq_y => $y, |
9700 |
serialseq_z => $z, |
9701 |
} |
9702 |
); |
9703 |
} |
9704 |
} |
9705 |
|
9706 |
print "Upgrade to $DBversion done ( Bug 8956 - Split serials enumeration data into separate fields )\n"; |
9656 |
SetVersion($DBversion); |
9707 |
SetVersion($DBversion); |
9657 |
} |
9708 |
} |
9658 |
|
9709 |
|
9659 |
- |
|
|