// Manage SQL upgrade for stock management

This commit is contained in:
dSevere
2011-12-12 20:54:48 +00:00
parent 48baf36558
commit df40c34945
7 changed files with 489 additions and 4 deletions
+1 -1
View File
@@ -1615,7 +1615,7 @@ CREATE TABLE `PREFIX_subdomain` (
CREATE TABLE `PREFIX_supplier` (
`id_supplier` int(10) unsigned NOT NULL auto_increment,
`id_address` int(10) unsigned NOT NULL,
`id_address` int(10) unsigned NOT NULL default 0,
`name` varchar(64) NOT NULL,
`date_add` datetime NOT NULL,
`date_upd` datetime NOT NULL,
+3 -3
View File
@@ -1080,7 +1080,7 @@ INSERT INTO `PREFIX_tab_lang` (`id_lang`, `id_tab`, `name`) VALUES
(4, 97, 'Stock Management'),
(4, 98, 'Stock instant state'),
(4, 99, 'Stock cover'),
(4, 100, 'Supplier orders'),
(4, 100, 'Supply orders'),
(4, 101, 'Combinations generator'),
(4, 102, 'Accounting'),
(4, 103, 'Account Number Management'),
@@ -1111,7 +1111,7 @@ INSERT INTO `PREFIX_tab_lang` (`id_lang`, `id_tab`, `name`) VALUES
(5, 97, 'Stock Management'),
(5, 98, 'Stock instant state'),
(5, 99, 'Stock cover'),
(5, 100, 'Supplier orders'),
(5, 100, 'Supply orders'),
(5, 101, 'Combinations generator'),
(5, 102, 'Accounting'),
(5, 103, 'Account Number Management'),
@@ -1159,7 +1159,7 @@ INSERT INTO `PREFIX_meta` (`id_meta`, `page`) VALUES
(7, 'password'),
(8, 'prices-drop'),
(9, 'sitemap'),
(10, 'supplier'),
(10, 'supply'),
(11, 'address'),
(12, 'addresses'),
(13, 'authentication'),
+233
View File
@@ -45,3 +45,236 @@ ALTER TABLE `PREFIX_orders` DROP COLUMN `id_warehouse`;
ALTER TABLE `PREFIX_order_detail` ADD COLUMN `id_warehouse` int(10) unsigned DEFAULT 0 AFTER `id_order_invoice`;
ALTER TABLE `PREFIX_suplier` ADD COLUMN `id_address` int(10) unsigned NOT NULL AFTER `id_supplier`;
ALTER TABLE `PREFIX_address` ADD COLUMN `id_warehouse` int(10) unsigned NOT NULL DEFAULT 0 AFTER `id_supplier`;
/************************
* STOCK MANAGEMENT
*************************/
/* PHP:add_stock_tab(); */;
/* New tables */
CREATE TABLE IF NOT EXISTS `PREFIX_product_supplier` (
`id_product_supplier` int(11) unsigned NOT NULL AUTO_INCREMENT,
`id_product` int(11) unsigned NOT NULL,
`id_product_attribute` int(11) unsigned NOT NULL DEFAULT '0',
`id_supplier` int(11) unsigned NOT NULL,
`product_supplier_reference` varchar(32) DEFAULT NULL,
`product_supplier_price_te` decimal(20,6) NOT NULL DEFAULT '0.000000',
`id_currency` int(11) unsigned NOT NULL,
PRIMARY KEY (`id_product_supplier`),
UNIQUE KEY `id_product` (`id_product`,`id_product_attribute`,`id_supplier`)
) ENGINE=ENGINE_TYPE DEFAULT CHARSET=utf8;
CREATE TABLE IF NOT EXISTS `PREFIX_stock_available` (
`id_stock_available` int(11) unsigned NOT NULL AUTO_INCREMENT,
`id_product` int(11) unsigned NOT NULL,
`id_product_attribute` int(11) unsigned NOT NULL,
`id_shop` int(11) unsigned NOT NULL,
`id_group_shop` int(11) unsigned NOT NULL,
`quantity` int(10) NOT NULL DEFAULT '0',
`depends_on_stock` tinyint(1) unsigned NOT NULL DEFAULT '0',
`out_of_stock` tinyint(1) unsigned NOT NULL DEFAULT '0',
PRIMARY KEY (`id_stock_available`),
KEY `id_shop` (`id_shop`),
KEY `id_group_shop` (`id_group_shop`),
KEY `id_product` (`id_product`),
KEY `id_product_attribute` (`id_product_attribute`)
) ENGINE=ENGINE_TYPE DEFAULT CHARSET=utf8;
CREATE TABLE IF NOT EXISTS `PREFIX_supply_order` (
`id_supply_order` int(11) unsigned NOT NULL AUTO_INCREMENT,
`id_supplier` int(11) unsigned NOT NULL,
`supplier_name` varchar(64) NOT NULL,
`id_lang` int(11) unsigned NOT NULL,
`id_warehouse` int(11) unsigned NOT NULL,
`id_supply_order_state` int(11) unsigned NOT NULL,
`id_currency` int(11) unsigned NOT NULL,
`id_ref_currency` int(11) unsigned NOT NULL,
`reference` varchar(32) NOT NULL,
`date_add` datetime NOT NULL,
`date_upd` datetime NOT NULL,
`date_delivery_expected` datetime DEFAULT NULL,
`total_te` decimal(20,6) DEFAULT '0.000000',
`total_with_discount_te` decimal(20,6) DEFAULT '0.000000',
`total_tax` decimal(20,6) DEFAULT '0.000000',
`total_ti` decimal(20,6) DEFAULT '0.000000',
`discount_rate` decimal(20,6) DEFAULT '0.000000',
`discount_value_te` decimal(20,6) DEFAULT '0.000000',
`is_template` tinyint(1) DEFAULT '0',
PRIMARY KEY (`id_supply_order`),
KEY `id_supplier` (`id_supplier`),
KEY `id_warehouse` (`id_warehouse`),
KEY `reference` (`reference`)
) ENGINE=ENGINE_TYPE DEFAULT CHARSET=utf8;
CREATE TABLE IF NOT EXISTS `PREFIX_supply_order_detail` (
`id_supply_order_detail` int(11) unsigned NOT NULL AUTO_INCREMENT,
`id_supply_order` int(11) unsigned NOT NULL,
`id_currency` int(11) unsigned NOT NULL,
`id_product` int(11) unsigned NOT NULL,
`id_product_attribute` int(11) unsigned NOT NULL,
`reference` varchar(32) NOT NULL,
`supplier_reference` varchar(32) NOT NULL,
`name` varchar(128) NOT NULL,
`ean13` varchar(13) DEFAULT NULL,
`upc` varchar(12) DEFAULT NULL,
`exchange_rate` decimal(20,6) DEFAULT '0.000000',
`unit_price_te` decimal(20,6) DEFAULT '0.000000',
`quantity_expected` int(11) unsigned NOT NULL,
`quantity_received` int(11) unsigned NOT NULL,
`price_te` decimal(20,6) DEFAULT '0.000000',
`discount_rate` decimal(20,6) DEFAULT '0.000000',
`discount_value_te` decimal(20,6) DEFAULT '0.000000',
`price_with_discount_te` decimal(20,6) DEFAULT '0.000000',
`tax_rate` decimal(20,6) DEFAULT '0.000000',
`tax_value` decimal(20,6) DEFAULT '0.000000',
`price_ti` decimal(20,6) DEFAULT '0.000000',
`tax_value_with_order_discount` decimal(20,6) DEFAULT '0.000000',
`price_with_order_discount_te` decimal(20,6) DEFAULT '0.000000',
PRIMARY KEY (`id_supply_order_detail`),
KEY `id_supply_order` (`id_supply_order`),
KEY `id_product` (`id_product`),
KEY `id_product_attribute` (`id_product_attribute`),
KEY `id_product_product_attribute` (`id_product`,`id_product_attribute`)
) ENGINE=ENGINE_TYPE DEFAULT CHARSET=utf8;
CREATE TABLE IF NOT EXISTS `PREFIX_supply_order_history` (
`id_supply_order_history` int(11) unsigned NOT NULL AUTO_INCREMENT,
`id_supply_order` int(11) unsigned NOT NULL,
`id_employee` int(11) unsigned NOT NULL,
`employee_lastname` varchar(32) DEFAULT '',
`employee_firstname` varchar(32) DEFAULT '',
`id_state` int(11) unsigned NOT NULL,
`date_add` datetime NOT NULL,
PRIMARY KEY (`id_supply_order_history`),
KEY `id_supply_order` (`id_supply_order`),
KEY `id_employee` (`id_employee`),
KEY `id_state` (`id_state`)
) ENGINE=ENGINE_TYPE DEFAULT CHARSET=utf8;
CREATE TABLE IF NOT EXISTS `PREFIX_supply_order_receipt_history` (
`id_supply_order_receipt_history` int(11) unsigned NOT NULL AUTO_INCREMENT,
`id_supply_order_detail` int(11) unsigned NOT NULL,
`id_employee` int(11) unsigned NOT NULL,
`employee_lastname` varchar(32) DEFAULT '',
`employee_firstname` varchar(32) DEFAULT '',
`id_supply_order_state` int(11) unsigned NOT NULL,
`quantity` int(11) unsigned NOT NULL,
`date_add` datetime NOT NULL,
PRIMARY KEY (`id_supply_order_receipt_history`),
KEY `id_supply_order_detail` (`id_supply_order_detail`),
KEY `id_supply_order_state` (`id_supply_order_state`)
) ENGINE=ENGINE_TYPE DEFAULT CHARSET=utf8;
CREATE TABLE IF NOT EXISTS `PREFIX_supply_order_state` (
`id_supply_order_state` int(11) unsigned NOT NULL AUTO_INCREMENT,
`delivery_note` tinyint(1) NOT NULL DEFAULT '0',
`editable` tinyint(1) NOT NULL DEFAULT '0',
`receipt_state` tinyint(1) NOT NULL DEFAULT '0',
`pending_receipt` tinyint(1) NOT NULL DEFAULT '0',
`enclosed` tinyint(1) NOT NULL DEFAULT '0',
`color` varchar(32) DEFAULT NULL,
PRIMARY KEY (`id_supply_order_state`)
) ENGINE=ENGINE_TYPE DEFAULT CHARSET=utf8;
CREATE TABLE IF NOT EXISTS `PREFIX_supply_order_state_lang` (
`id_supply_order_state` int(11) unsigned NOT NULL,
`id_lang` int(11) unsigned NOT NULL,
`name` varchar(128) DEFAULT NULL,
PRIMARY KEY (`id_supply_order_state`,`id_lang`)
) ENGINE=ENGINE_TYPE DEFAULT CHARSET=utf8;
CREATE TABLE IF NOT EXISTS `PREFIX_warehouse` (
`id_warehouse` int(11) unsigned NOT NULL AUTO_INCREMENT,
`id_currency` int(11) unsigned NOT NULL,
`id_address` int(11) unsigned NOT NULL,
`id_employee` int(11) unsigned NOT NULL,
`reference` varchar(32) DEFAULT NULL,
`name` varchar(45) NOT NULL,
`management_type` enum('WA','FIFO','LIFO') NOT NULL DEFAULT 'WA',
`deleted` tinyint(1) unsigned NOT NULL DEFAULT '0',
PRIMARY KEY (`id_warehouse`)
) ENGINE=ENGINE_TYPE DEFAULT CHARSET=utf8;
CREATE TABLE IF NOT EXISTS `PREFIX_warehouse_carrier` (
`id_carrier` int(11) unsigned NOT NULL,
`id_warehouse` int(11) unsigned NOT NULL,
PRIMARY KEY (`id_warehouse`,`id_carrier`),
KEY `id_warehouse` (`id_warehouse`),
KEY `id_carrier` (`id_carrier`)
) ENGINE=ENGINE_TYPE DEFAULT CHARSET=utf8;
CREATE TABLE IF NOT EXISTS `PREFIX_warehouse_product_location` (
`id_warehouse_product_location` int(11) unsigned NOT NULL AUTO_INCREMENT,
`id_product` int(11) unsigned NOT NULL,
`id_product_attribute` int(11) unsigned NOT NULL,
`id_warehouse` int(11) unsigned NOT NULL,
`location` varchar(64) DEFAULT NULL,
PRIMARY KEY (`id_warehouse_product_location`),
UNIQUE KEY `id_product` (`id_product`,`id_product_attribute`,`id_warehouse`)
) ENGINE=ENGINE_TYPE DEFAULT CHARSET=utf8;
CREATE TABLE IF NOT EXISTS `PREFIX_warehouse_shop` (
`id_shop` int(11) unsigned NOT NULL,
`id_warehouse` int(11) unsigned NOT NULL,
PRIMARY KEY (`id_warehouse`,`id_shop`),
KEY `id_warehouse` (`id_warehouse`),
KEY `id_shop` (`id_shop`)
) ENGINE=ENGINE_TYPE DEFAULT CHARSET=utf8;
/* Update records before alter tables */
/* PHP:set_stock_available(); */;
/* PHP:set_product_suppliers(); */;
/* Update tables */
DROP TABLE IF EXISTS `PREFIX_stock`;
CREATE TABLE IF NOT EXISTS `PREFIX_stock` (
`id_stock` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT,
`id_warehouse` INT(11) UNSIGNED NOT NULL,
`id_product` INT(11) UNSIGNED NOT NULL,
`id_product_attribute` INT(11) UNSIGNED NOT NULL,
`reference` VARCHAR(32) NOT NULL,
`ean13` VARCHAR(13) DEFAULT NULL,
`upc` VARCHAR(12) DEFAULT NULL,
`physical_quantity` INT(11) UNSIGNED NOT NULL,
`usable_quantity` INT(11) UNSIGNED NOT NULL,
`price_te` DECIMAL(20,6) DEFAULT '0.000000',
PRIMARY KEY (`id_stock`),
KEY `id_warehouse` (`id_warehouse`),
KEY `id_product` (`id_product`),
KEY `id_product_attribute` (`id_product_attribute`)
) ENGINE=ENGINE_TYPE DEFAULT CHARSET=utf8;
DROP TABLE IF EXISTS `PREFIX_stock_mvt`;
CREATE TABLE IF NOT EXISTS `PREFIX_stock_mvt` (
`id_stock_mvt` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
`id_stock` INT(11) UNSIGNED NOT NULL,
`id_order` INT(11) UNSIGNED DEFAULT NULL,
`id_supply_order` INT(11) UNSIGNED DEFAULT NULL,
`id_stock_mvt_reason` INT(11) UNSIGNED NOT NULL,
`id_employee` INT(11) UNSIGNED NOT NULL,
`employee_lastname` varchar(32) DEFAULT '',
`employee_firstname` varchar(32) DEFAULT '',
`physical_quantity` INT(11) UNSIGNED NOT NULL,
`date_add` DATETIME NOT NULL,
`sign` tinyint(1) NOT NULL DEFAULT 1,
`price_te` DECIMAL(20,6) DEFAULT '0.000000',
`last_wa` DECIMAL(20,6) DEFAULT '0.000000',
`current_wa` DECIMAL(20,6) DEFAULT '0.000000',
`referer` bigint UNSIGNED DEFAULT NULL,
PRIMARY KEY (`id_stock_mvt`),
KEY `id_stock` (`id_stock`),
KEY `id_stock_mvt_reason` (`id_stock_mvt_reason`)
) ENGINE=ENGINE_TYPE DEFAULT CHARSET=utf8;
ALTER TABLE `PREFIX_stock_mvt_reason` ADD COLUMN `deleted` tinyint(1) unsigned NOT NULL default '0' AFTER `date_upd`;
ALTER TABLE `PREFIX_supplier` ADD COLUMN `id_address` int(10) unsigned NOT NULL default '0' AFTER `id_supplier`;
ALTER TABLE `PREFIX_address` ADD COLUMN `id_warehouse` int(10) unsigned NOT NULL default '0' AFTER `id_supplier`;
/* Update records after alter tables */
/* PHP:update_stock_mvt_reasons(); */;