69 lines
2.2 KiB
PHP
69 lines
2.2 KiB
PHP
<?php
|
|
|
|
class Upgrade8 extends UpgradeNew
|
|
{
|
|
// overi, jestli je opravnene provest upgrade
|
|
public function checkRightfulness_1()
|
|
{
|
|
$change = true;
|
|
|
|
$SQL = sqlQuery('SHOW FIELDS FROM '.getTableName('products_variations'));
|
|
while ($row = sqlFetchArray($SQL)) {
|
|
if ($row['Field'] == 'price') {
|
|
$change = false;
|
|
break;
|
|
}
|
|
}
|
|
|
|
return $change;
|
|
}
|
|
|
|
// provest samotny upgrade
|
|
public function makeChanges_1()
|
|
{
|
|
sqlQuery('ALTER TABLE '.getTableName('products_variations').' ADD price INT NULL AFTER delivery_time;');
|
|
|
|
$this->upgradeOK();
|
|
}
|
|
|
|
// overi, jestli je opravnene provest upgrade
|
|
public function checkRightfulness_2()
|
|
{
|
|
$change = false;
|
|
|
|
$SQL = sqlQuery('SHOW FIELDS FROM '.getTableName('products_variations_choices_values'));
|
|
while ($row = sqlFetchArray($SQL)) {
|
|
if ($row['Field'] == 'id_product') {
|
|
$change = true;
|
|
break;
|
|
}
|
|
}
|
|
|
|
return $change;
|
|
}
|
|
|
|
// provest samotny upgrade
|
|
public function makeChanges_2()
|
|
{
|
|
sqlQuery('UPDATE '.getTableName('products_variations_combination').' pvc
|
|
JOIN '.getTableName('products_variations_choices_values').' pvcv2 ON pvc.id_value=pvcv2.id
|
|
SET pvc.id_value = (
|
|
SELECT MIN(pvcv.id)
|
|
FROM '.getTableName('products_variations_choices_values').' pvcv
|
|
WHERE pvcv.value = pvcv2.value AND pvc.id_label = pvcv.id_label
|
|
);', '@');
|
|
|
|
sqlQuery('CREATE TEMPORARY TABLE tmp_variation AS SELECT MIN(id) AS id,id_label,value,code FROM '.getTableName('products_variations_choices_values').' pvcv GROUP BY value,id_label', '@');
|
|
|
|
sqlQuery('DELETE pvcv FROM '.getTableName('products_variations_choices_values').' pvcv LEFT JOIN tmp_variation USING(id) WHERE tmp_variation.id IS NULL;', '@');
|
|
|
|
sqlQuery('ALTER TABLE '.getTableName('products_variations_choices_values').' DROP FOREIGN KEY `products_variations_choices_values_ibfk_2`;', '@');
|
|
|
|
sqlQuery('ALTER TABLE '.getTableName('products_variations_choices_values').' DROP id_product;', '@');
|
|
|
|
sqlQuery('DROP TABLE tmp_variation;', '@');
|
|
|
|
$this->upgradeOK();
|
|
}
|
|
}
|