@@ -, +, @@ --- installer/data/mysql/updatedatabase.pl | 56 ++++++++++++++++++++++++++++++++ 1 files changed, 56 insertions(+), 0 deletions(-) --- a/installer/data/mysql/updatedatabase.pl +++ a/installer/data/mysql/updatedatabase.pl @@ -5369,6 +5369,62 @@ if ( C4::Context->preference("Version") < TransformToNum($DBversion) ) { SetVersion($DBversion); } +$DBversion ="3.09.00.XXX"; +if ( C4::Context->preference("Version") < TransformToNum($DBversion) ) { + my $pref = C4::Context->preference('dateformat'); + my ( $date_format, $date_regex ); + + if ( $pref =~ /^iso/ ) { + $date_format = '____-__-__'; + } + elsif ( $pref =~ /^metric/ ) { + $date_format = '__/__/____'; + } + elsif ( $pref =~ /^us/ ) { + $date_format = '__/__/____'; + } + else { + $date_format = '____-__-__'; + } + + my $sql = "SELECT * FROM accountlines WHERE description LIKE '%$date_format%' AND description NOT LIKE '%$date_format __:__%' AND ( accounttype = 'FU' OR accounttype = 'F' )"; + my $sth = $dbh->prepare( $sql ); + $sth->execute(); + + while ( my $row = $sth->fetchrow_hashref() ) { + my $old_description = $row->{'description'}; + + my ( $year, $month, $day ); + my $date; + + if ( $pref =~ /^iso/ ) { + ( $year, $month, $day ) = $old_description =~ /(\d+)-(\d+)-(\d+)/; + $date = "$year-$month-$day"; + } + elsif ( $pref =~ /^metric/ ) { + ( $day, $month, $year ) = $old_description =~ /(\d+)\/(\d+)\/(\d+)/; + $date = "$day/$month/$year"; + } + elsif ( $pref =~ /^us/ ) { + ( $month, $day, $year ) = $old_description =~ /(\d+)\/(\d+)\/(\d+)/; + $date = "$month/$day/$year"; + } + else { ## default to iso + ( $year, $month, $day ) = $old_description =~ /(\d+)-(\d+)-(\d+)/; + $date = "$year-$month-$day"; + } + + my $datetime = "$date 23:59"; + + my $new_description = $old_description; + $new_description =~ s/$date/$datetime/g; + + $dbh->do("UPDATE accountlines SET description = ? WHERE description = ?", undef, $new_description, $old_description); + } + + print "Upgrade to $DBversion done (Fix fine descriptions)\n"; + SetVersion($DBversion); +} =head1 FUNCTIONS --