Files
outil-82/setup/update/php/2.4.0.php
2021-01-19 18:19:37 +01:00

39 lines
1.6 KiB
PHP

<?php
/** @var PDO $pdo */
$pdo = $database->getConnection();
// Store the current last order ID in a configuration variable to ensure existing orders will not
// be impacted by new rounding rules introduced by Thelia 2.4 (see https://github.com/thelia/thelia/pull/2735/files)
// Get the last order ID
$sql = 'SELECT id FROM `order` ORDER BY `id` DESC LIMIT 1';
$stmt = $pdo->query($sql);
$queryResult = $stmt->fetch(\PDO::FETCH_OBJ);
$lastOrderId = isset($queryResult->id) ? $queryResult->id : 0;
// Store it in an hidden configuration variable
$sql = "INSERT INTO `config` (`name`, `value`, `secured`, `hidden`, `created_at`, `updated_at`) VALUES ('last_legacy_rounding_order_id', ?, 1, 1, ?, ?)";
$now = (new \DateTime())->format('Y-m-d H:i:s');
$pdo->prepare($sql)->execute([ $lastOrderId, $now, $now ]);
// Add ignored_module_hook.created_at if not exist
$ignoredModuleHookCreatedAtColumnExitSql = "SHOW COLUMNS FROM `ignored_module_hook` LIKE 'created_at'";
if (0 === count($pdo->query($ignoredModuleHookCreatedAtColumnExitSql)->fetchAll())) {
$addIgnoredModuleHookCreatedAtColumnSql = "ALTER TABLE `ignored_module_hook` ADD `created_at` DATETIME NOT NULL;";
$pdo->query($addIgnoredModuleHookCreatedAtColumnSql);
}
// Add ignored_module_hook.updated_at if not exist
$ignoredModuleHookUpdatedAtColumnExitSql = "SHOW COLUMNS FROM `ignored_module_hook` LIKE 'updated_at'";
if (0 === count($pdo->query($ignoredModuleHookUpdatedAtColumnExitSql)->fetchAll())) {
$addIgnoredModuleHookUpdatedAtColumnSql = "ALTER TABLE `ignored_module_hook` ADD `updated_at` DATETIME NOT NULL;";
$pdo->query($addIgnoredModuleHookUpdatedAtColumnSql);
}