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

(-)a/installer/data/mysql/updatedatabase.pl (-44 / +25 lines)
Lines 10635-10648 if ( CheckVersion($DBversion) ) { Link Here
10635
10635
10636
$DBversion = "3.21.00.009";
10636
$DBversion = "3.21.00.009";
10637
if ( CheckVersion($DBversion) ) {
10637
if ( CheckVersion($DBversion) ) {
10638
    eval {
10638
10639
        local $dbh->{PrintError} = 0;
10639
    sanitize_zero_date('aqorders', 'datecancellationprinted');
10640
        $dbh->do(q|
10640
10641
            UPDATE aqorders SET orderstatus='cancelled'
10641
    $dbh->do(q|
10642
            WHERE (datecancellationprinted IS NOT NULL OR
10642
        UPDATE aqorders SET orderstatus='cancelled'
10643
                   datecancellationprinted<>'0000-00-00');
10643
        WHERE (datecancellationprinted IS NOT NULL)
10644
        |);
10644
    |);
10645
    };
10645
10646
    print "Upgrade to $DBversion done (Bug 13993: Correct orderstatus for transferred orders)\n";
10646
    print "Upgrade to $DBversion done (Bug 13993: Correct orderstatus for transferred orders)\n";
10647
    SetVersion($DBversion);
10647
    SetVersion($DBversion);
10648
}
10648
}
Lines 10873-10893 if ( CheckVersion($DBversion) ) { Link Here
10873
10873
10874
$DBversion = "3.21.00.023";
10874
$DBversion = "3.21.00.023";
10875
if ( CheckVersion($DBversion) ) {
10875
if ( CheckVersion($DBversion) ) {
10876
    eval {
10876
10877
        local $dbh->{PrintError} = 0;
10877
    sanitize_zero_date('borrowers', 'debarred');
10878
        $dbh->do(q{
10878
    sanitize_zero_date('borrowers', 'dateexpiry');
10879
            UPDATE borrowers SET debarred=NULL WHERE debarred='0000-00-00'
10879
    sanitize_zero_date('borrowers', 'dateofbirth');
10880
        });
10880
    sanitize_zero_date('borrowers', 'dateenrolled');
10881
        $dbh->do(q{
10882
            UPDATE borrowers SET dateexpiry=NULL where dateexpiry='0000-00-00'
10883
        });
10884
        $dbh->do(q{
10885
            UPDATE borrowers SET dateofbirth=NULL where dateofbirth='0000-00-00'
10886
        });
10887
        $dbh->do(q{
10888
            UPDATE borrowers SET dateenrolled=NULL where dateenrolled='0000-00-00'
10889
        });
10890
    };
10891
10881
10892
    print "Upgrade to $DBversion done (Bug 14717: Prevent 0000-00-00 dates in patron data)\n";
10882
    print "Upgrade to $DBversion done (Bug 14717: Prevent 0000-00-00 dates in patron data)\n";
10893
    SetVersion($DBversion);
10883
    SetVersion($DBversion);
Lines 21697-21722 $DBversion = '19.12.00.076'; Link Here
21697
if( CheckVersion( $DBversion ) ) {
21687
if( CheckVersion( $DBversion ) ) {
21698
    my @warnings;
21688
    my @warnings;
21699
21689
21700
    eval {
21690
    sanitize_zero_date('serial', 'planneddate');
21701
        local $dbh->{PrintError} = 0;
21691
    sanitize_zero_date('serial', 'publisheddate');
21702
        $dbh->do(q|
21692
    sanitize_zero_date('serial', 'claimdate');
21703
            UPDATE serial
21704
            SET planneddate = NULL
21705
            WHERE planneddate = '0000-00-00'
21706
        |);
21707
21708
        $dbh->do(q|
21709
            UPDATE serial
21710
            SET publisheddate = NULL
21711
            WHERE publisheddate = '0000-00-00'
21712
        |);
21713
21714
        $dbh->do(q|
21715
            UPDATE serial
21716
            SET claimdate = NULL
21717
            WHERE claimdate = '0000-00-00'
21718
        |);
21719
    };
21720
21693
21721
    $dbh->do(q|
21694
    $dbh->do(q|
21722
        ALTER TABLE serial
21695
        ALTER TABLE serial
Lines 23680-23683 sub CheckVersion { Link Here
23680
    }
23653
    }
23681
}
23654
}
23682
23655
23656
sub sanitize_zero_date {
23657
    my ( $table_name, $column_name ) = @_;
23658
    $dbh->do(qq|
23659
        UPDATE $table_name
23660
        SET $column_name = NULL
23661
        WHERE CAST($column_name AS CHAR(10)) = '0000-00-00';
23662
    |);
23663
}
23664
23683
exit;
23665
exit;
23684
- 

Return to bug 26997