|
Lines 9525-9530
if ( CheckVersion($DBversion) ) {
Link Here
|
| 9525 |
SetVersion($DBversion); |
9525 |
SetVersion($DBversion); |
| 9526 |
} |
9526 |
} |
| 9527 |
|
9527 |
|
|
|
9528 |
|
| 9529 |
|
| 9530 |
$DBversion = "3.17.00.XXX"; |
| 9531 |
if ( CheckVersion($DBversion) ) { |
| 9532 |
my $number_of_orders_not_linked = $dbh->selectcol_arrayref(q| |
| 9533 |
SELECT COUNT(*) |
| 9534 |
FROM aqorders o |
| 9535 |
WHERE NOT EXISTS ( |
| 9536 |
SELECT NULL |
| 9537 |
FROM aqbudgets b |
| 9538 |
WHERE b.budget_id = o.budget_id |
| 9539 |
); |
| 9540 |
|); |
| 9541 |
|
| 9542 |
if ( $number_of_orders_not_linked->[0] > 0 ) { |
| 9543 |
$dbh->do(q| |
| 9544 |
INSERT INTO aqbudgetperiods(budget_period_startdate, budget_period_enddate, budget_period_active, budget_period_description, budget_period_total) VALUES ( CAST(NOW() AS date), CAST(NOW() AS date), 0, "WARNING: This budget has been automatically created by the updatedatabase script, please see bug 12601 for more information", 0) |
| 9545 |
|); |
| 9546 |
my $budget_period_id = $dbh->last_insert_id( undef, undef, 'aqbudgetperiods', undef ); |
| 9547 |
$dbh->do(qq| |
| 9548 |
INSERT INTO aqbudgets(budget_code, budget_name, budget_amount, budget_period_id) VALUES ( "BACKUP_TMP", "WARNING: fund created by the updatedatabase script, please see bug 12601", 0, $budget_period_id ); |
| 9549 |
|); |
| 9550 |
my $budget_id = $dbh->last_insert_id( undef, undef, 'aqbudgets', undef ); |
| 9551 |
$dbh->do(qq| |
| 9552 |
UPDATE aqorders o |
| 9553 |
SET budget_id = $budget_id |
| 9554 |
WHERE NOT EXISTS ( |
| 9555 |
SELECT NULL |
| 9556 |
FROM aqbudgets b |
| 9557 |
WHERE b.budget_id = o.budget_id |
| 9558 |
) |
| 9559 |
|); |
| 9560 |
} |
| 9561 |
|
| 9562 |
$dbh->do(q| |
| 9563 |
ALTER TABLE aqorders |
| 9564 |
ADD CONSTRAINT aqorders_budget_id_fk FOREIGN KEY (budget_id) REFERENCES aqbudgets(budget_id) ON DELETE CASCADE ON UPDATE CASCADE |
| 9565 |
|); |
| 9566 |
|
| 9567 |
print "Upgrade to $DBversion done (Bug 12601 - Add new foreign key aqorders.budget_id" . ( ( $number_of_orders_not_linked->[0] > 0 ) ? ' WARNING: temporary budget and fund have been created (search for "BACKUP_TMP"). At least one of your order was not linked to a budget' : '' ) . ")\n"; |
| 9568 |
SetVersion($DBversion); |
| 9569 |
} |
| 9570 |
|
| 9528 |
=head1 FUNCTIONS |
9571 |
=head1 FUNCTIONS |
| 9529 |
|
9572 |
|
| 9530 |
=head2 TableExists($table) |
9573 |
=head2 TableExists($table) |