// Retro compatibility and updater improved for Discount/CartRules

git-svn-id: http://dev.prestashop.com/svn/v1/branches/1.5.x@9798 b9a71923-0436-4b27-9f14-aed3839534dd
This commit is contained in:
dMetzger
2011-11-02 14:23:44 +00:00
parent 71b77471de
commit 17a8dbc05b
21 changed files with 238 additions and 275 deletions
-60
View File
@@ -640,59 +640,6 @@ CREATE TABLE `PREFIX_delivery` (
KEY `id_range_weight` (`id_range_weight`)
) ENGINE=ENGINE_TYPE DEFAULT CHARSET=utf8;
CREATE TABLE `PREFIX_discount` (
`id_discount` int(10) unsigned NOT NULL auto_increment,
`id_discount_type` int(10) unsigned NOT NULL,
`behavior_not_exhausted` TINYINT(3) DEFAULT '1',
`id_customer` int(10) unsigned NOT NULL,
`id_group` int(10) unsigned NOT NULL default 0,
`id_currency` int unsigned NOT NULL default 0,
`name` varchar(32) NOT NULL,
`value` decimal(17,2) NOT NULL default '0.00',
`quantity` int(10) unsigned NOT NULL default '0',
`quantity_per_user` int(10) unsigned NOT NULL default '1',
`cumulable` tinyint(1) unsigned NOT NULL default '0',
`cumulable_reduction` tinyint(1) unsigned NOT NULL default '0',
`date_from` datetime NOT NULL,
`date_to` datetime NOT NULL,
`minimal` decimal(17,2) default NULL,
`include_tax` tinyint(1) NOT NULL default '0',
`active` tinyint(1) unsigned NOT NULL default '0',
`cart_display` tinyint(1) unsigned NOT NULL default '0',
`date_add` datetime NOT NULL,
`date_upd` datetime NOT NULL,
PRIMARY KEY (`id_discount`),
KEY `discount_name` (`name`),
KEY `discount_customer` (`id_customer`),
KEY `id_discount_type` (`id_discount_type`)
) ENGINE=ENGINE_TYPE DEFAULT CHARSET=utf8;
CREATE TABLE `PREFIX_discount_category` (
`id_category` int(11) unsigned NOT NULL,
`id_discount` int(11) unsigned NOT NULL,
PRIMARY KEY (`id_category`, `id_discount`),
KEY `discount` (`id_discount`)
) ENGINE=ENGINE_TYPE DEFAULT CHARSET=utf8;
CREATE TABLE `PREFIX_discount_lang` (
`id_discount` int(10) unsigned NOT NULL,
`id_lang` int(10) unsigned NOT NULL,
`description` text,
PRIMARY KEY (`id_discount`,`id_lang`)
) ENGINE=ENGINE_TYPE DEFAULT CHARSET=utf8;
CREATE TABLE `PREFIX_discount_type` (
`id_discount_type` int(10) unsigned NOT NULL auto_increment,
PRIMARY KEY (`id_discount_type`)
) ENGINE=ENGINE_TYPE DEFAULT CHARSET=utf8;
CREATE TABLE `PREFIX_discount_type_lang` (
`id_discount_type` int(10) unsigned NOT NULL,
`id_lang` int(10) unsigned NOT NULL,
`name` varchar(64) NOT NULL,
PRIMARY KEY (`id_discount_type`,`id_lang`)
) ENGINE=ENGINE_TYPE DEFAULT CHARSET=utf8;
CREATE TABLE `PREFIX_employee` (
`id_employee` int(10) unsigned NOT NULL auto_increment,
`id_profile` int(10) unsigned NOT NULL,
@@ -1997,13 +1944,6 @@ PRIMARY KEY (`id_scene`, `id_shop`),
KEY `id_shop` (`id_shop`)
) ENGINE=ENGINE_TYPE DEFAULT CHARSET=utf8;
CREATE TABLE `PREFIX_discount_shop` (
`id_discount` INT( 11 ) UNSIGNED NOT NULL ,
`id_shop` INT( 11 ) UNSIGNED NOT NULL,
PRIMARY KEY (`id_discount`, `id_shop`),
KEY `id_shop` (`id_shop`)
) ENGINE=ENGINE_TYPE DEFAULT CHARSET=utf8;
CREATE TABLE `PREFIX_group_module_restriction` (
`id_group` INT(11) UNSIGNED NOT NULL ,
`id_module` INT(11) UNSIGNED NOT NULL ,
+72 -11
View File
@@ -256,13 +256,6 @@ CREATE TABLE `PREFIX_cart_rule` (
PRIMARY KEY (`id_cart_rule`)
);
CREATE TABLE `PREFIX_cart_rule_lang` (
`id_cart_rule` int(10) unsigned NOT NULL,
`id_lang` int(10) unsigned NOT NULL,
`name` varchar(254) NOT NULL,
PRIMARY KEY (`id_cart_rule`, `id_lang`)
);
CREATE TABLE `PREFIX_cart_rule_country` (
`id_cart_rule` int(10) unsigned NOT NULL,
`id_country` int(10) unsigned NOT NULL,
@@ -295,12 +288,80 @@ CREATE TABLE `PREFIX_cart_rule_product_rule` (
PRIMARY KEY (`id_product_rule`)
);
CREATE TABLE `PREFIX_cart_rule_product_rule_value` (
`id_product_rule` int(10) unsigned NOT NULL,
`id_item` int(10) unsigned NOT NULL,
PRIMARY KEY (`id_product_rule`, `id_item`)
SET @id_currency_default = (SELECT value FROM `PREFIX_configuration` WHERE name = 'PS_CURRENCY_DEFAULT' LIMIT 1);
INSERT INTO `PREFIX_cart_rule` (
`id_cart_rule`,
`id_customer`,
`date_from`,
`date_to`,
`description`,
`quantity`,
`quantity_per_user`,
`priority`,
`code`,
`minimum_amount`,
`minimum_amount_tax`,
`minimum_amount_currency`,
`minimum_amount_shipping`,
`country_restriction`,
`carrier_restriction`,
`group_restriction`,
`cart_rule_restriction`,
`product_restriction`,
`free_shipping`,
`reduction_percent`,
`reduction_amount`,
`reduction_tax`,
`reduction_currency`,
`reduction_product`,
`gift_product`,
`active`,
`date_add`,
`date_upd`
) (
SELECT
`id_discount`,
`id_customer`,
`date_from`,
`date_to`,
`name`,
`quantity`,
`quantity_per_user`,
1,
`name`,
`minimal`,
1,
@id_currency_default,
1,
0,
0,
IF(id_group = 0, 0, 1),
IF(cumulable = 1, 0, 1),
0,
IF(id_discount_type = 3, 1, 0),
IF(id_discount_type = 1, value, 0),
IF(id_discount_type = 2, value, 0),
1,
`id_currency`,
0,
0,
`active`,
`date_add`,
`date_upd`
FROM `PREFIX_discount`
);
RENAME TABLE `PREFIX_discount_lang` TO `PREFIX_cart_rule_lang`;
ALTER TABLE `PREFIX_discount_lang` CHANGE `id_discount` `id_cart_rule` int(10) unsigned NOT NULL;
ALTER TABLE `PREFIX_discount_lang` CHANGE `description` `name` varchar(254) NOT NULL;
RENAME TABLE `PREFIX_discount_category` TO `PREFIX_cart_rule_product_rule_value`;
ALTER TABLE `PREFIX_cart_rule_product_rule_value` CHANGE `id_category` `id_item` int(10) unsigned NOT NULL;
ALTER TABLE `PREFIX_cart_rule_product_rule_value` CHANGE `id_discount` `id_product_rule` int(10) unsigned NOT NULL;
INSERT INTO `PREFIX_cart_rule_product_rule` (`id_product_rule`, `id_cart_rule`, `quantity`, `type`) (
SELECT DISTINCT `id_product_rule`, `id_product_rule`, 1, 'categories' FROM `PREFIX_cart_rule_product_rule_value`
);
UPDATE `PREFIX_cart_rule` SET product_restriction = 1 WHERE `id_cart_rule` IN (SELECT `id_cart_rule` FROM `PREFIX_cart_rule_product_rule`);
ALTER TABLE `PREFIX_cart_discount` CHANGE `id_discount` `id_cart_rule` int(10) unsigned NOT NULL;
ALTER TABLE `PREFIX_order_discount` CHANGE `id_discount` `id_cart_rule` int(10) unsigned NOT NULL;
ALTER TABLE `PREFIX_order_discount` CHANGE `id_order_discount` `id_order_cart_rule` int(10) unsigned NOT NULL;