2510 lines
69 KiB
SQL
2510 lines
69 KiB
SQL
|
|
/* Clear Store DataBase */
|
|
use partsltd_prod;
|
|
|
|
|
|
# Drop dependencies
|
|
DROP TABLE IF EXISTS Shop_User_Eval_Temp;
|
|
DROP TABLE IF EXISTS tmp_Msg_Error;
|
|
DROP TABLE IF EXISTS tmp_Currency;
|
|
DROP TABLE IF EXISTS tmp_Delivery_Region;
|
|
DROP TABLE IF EXISTS tmp_Region;
|
|
DROP TABLE IF EXISTS tmp_Shop_User;
|
|
DROP TABLE IF EXISTS tmp_Shop_Order;
|
|
DROP TABLE IF EXISTS tmp_Shop_Product;
|
|
DROP TABLE IF EXISTS tmp_Shop_Product_p_Shop_User_Eval;
|
|
DROP TABLE IF EXISTS tmp_Shop_Image;
|
|
DROP TABLE IF EXISTS tmp_Shop_Variation;
|
|
DROP TABLE IF EXISTS tmp_Shop_Discount;
|
|
DROP TABLE IF EXISTS tmp_Discount;
|
|
DROP TABLE IF EXISTS tmp_Shop_Category;
|
|
DROP TABLE IF EXISTS tmp_Shop_Product_Currency_Region_Link;
|
|
DROP TABLE IF EXISTS tmp_Shop_Product_Currency_Link;
|
|
DROP TABLE IF EXISTS tmp_User_Role_Link;
|
|
DROP TABLE IF EXISTS tmp_Shop_Basket;
|
|
|
|
|
|
# Delete old tables
|
|
DROP TABLE IF EXISTS Shop_User_Order_Product_Link_Audit;
|
|
DROP TABLE IF EXISTS Shop_User_Order_Product_Link;
|
|
|
|
DROP TABLE IF EXISTS Shop_User_Order_Audit;
|
|
DROP TABLE IF EXISTS Shop_User_Order;
|
|
|
|
DROP TABLE IF EXISTS Shop_User_Order_Status_Audit;
|
|
DROP TABLE IF EXISTS Shop_User_Order_Status;
|
|
|
|
DROP TABLE IF EXISTS Shop_User_Basket_Audit;
|
|
DROP TABLE IF EXISTS Shop_User_Basket;
|
|
|
|
DROP TABLE IF EXISTS Shop_Address_Audit;
|
|
DROP TABLE IF EXISTS Shop_Address;
|
|
|
|
DROP TABLE IF EXISTS Shop_User_Role_Link_Audit;
|
|
DROP TABLE IF EXISTS Shop_User_Role_Link;
|
|
|
|
DROP TABLE IF EXISTS Shop_User_Audit;
|
|
DROP TABLE IF EXISTS Shop_User;
|
|
|
|
DROP TABLE IF EXISTS Shop_Role_Permission_Link_Audit;
|
|
DROP TABLE IF EXISTS Shop_Role_Permission_Link;
|
|
|
|
DROP TABLE IF EXISTS Shop_Role_Audit;
|
|
DROP TABLE IF EXISTS Shop_Role;
|
|
|
|
DROP TABLE IF EXISTS Shop_Permission_Audit;
|
|
DROP TABLE IF EXISTS Shop_Permission;
|
|
|
|
DROP TABLE IF EXISTS Shop_Permission_Group_Audit;
|
|
DROP TABLE IF EXISTS Shop_Permission_Group;
|
|
|
|
|
|
DROP TABLE IF EXISTS Shop_Discount_Region_Currency_Link_Audit;
|
|
DROP TABLE IF EXISTS Shop_Discount_Region_Currency_Link;
|
|
|
|
DROP TABLE IF EXISTS Shop_Discount_Audit;
|
|
DROP TABLE IF EXISTS Shop_Discount;
|
|
|
|
DROP TABLE IF EXISTS Shop_Product_Delivery_Option_Link_Audit;
|
|
DROP TABLE IF EXISTS Shop_Product_Delivery_Option_Link;
|
|
|
|
DROP TABLE IF EXISTS Shop_Delivery_Option_Audit;
|
|
DROP TABLE IF EXISTS Shop_Delivery_Option;
|
|
|
|
DROP TABLE IF EXISTS Shop_Image_Audit;
|
|
DROP TABLE IF EXISTS Shop_Image;
|
|
|
|
DROP TABLE IF EXISTS Shop_Image_Type_Audit;
|
|
DROP TABLE IF EXISTS Shop_Image_Type;
|
|
|
|
DROP TABLE IF EXISTS Shop_Product_Currency_Region_Link_Audit;
|
|
DROP TABLE IF EXISTS Shop_Product_Currency_Region_Link;
|
|
DROP TABLE IF EXISTS Shop_Product_Currency_Link_Audit;
|
|
DROP TABLE IF EXISTS Shop_Product_Currency_Link;
|
|
|
|
DROP TABLE IF EXISTS Shop_Product_Variation_Link_Audit;
|
|
DROP TABLE IF EXISTS Shop_Product_Variation_Link;
|
|
DROP TABLE IF EXISTS Shop_Product_Permutation_Variation_Link_Audit;
|
|
DROP TABLE IF EXISTS Shop_Product_Permutation_Variation_Link;
|
|
|
|
DROP TABLE IF EXISTS Shop_Product_Permutation_Audit;
|
|
DROP TABLE IF EXISTS Shop_Product_Permutation;
|
|
|
|
DROP TABLE IF EXISTS Shop_Variation_Audit;
|
|
DROP TABLE IF EXISTS Shop_Variation;
|
|
DROP TABLE IF EXISTS Shop_Product_Variation_Type_Link_Audit;
|
|
DROP TABLE IF EXISTS Shop_Product_Variation_Type_Link;
|
|
|
|
DROP TABLE IF EXISTS Shop_Variation_Type_Audit;
|
|
DROP TABLE IF EXISTS Shop_Variation_Type;
|
|
|
|
DROP TABLE IF EXISTS Shop_Product_Audit;
|
|
DROP TABLE IF EXISTS Shop_Product;
|
|
|
|
DROP TABLE IF EXISTS Shop_Tax_Or_Surcharge_Audit;
|
|
DROP TABLE IF EXISTS Shop_Tax_Or_Surcharge;
|
|
|
|
DROP TABLE IF EXISTS Shop_Currency_Audit;
|
|
DROP TABLE IF EXISTS Shop_Currency;
|
|
|
|
DROP TABLE IF EXISTS Shop_Delivery_Region_Branch_Audit;
|
|
DROP TABLE IF EXISTS Shop_Delivery_Region_Branch;
|
|
DROP TABLE IF EXISTS Shop_Region_Branch_Audit;
|
|
DROP TABLE IF EXISTS Shop_Region_Branch;
|
|
|
|
DROP TABLE IF EXISTS Shop_Delivery_Region_Audit;
|
|
DROP TABLE IF EXISTS Shop_Delivery_Region;
|
|
DROP TABLE IF EXISTS Shop_Region_Audit;
|
|
DROP TABLE IF EXISTS Shop_Region;
|
|
|
|
DROP TABLE IF EXISTS Shop_Recurrence_Interval_Audit;
|
|
DROP TABLE IF EXISTS Shop_Recurrence_Interval;
|
|
|
|
DROP TABLE IF EXISTS Shop_Category_Audit;
|
|
DROP TABLE IF EXISTS Shop_Category;
|
|
|
|
DROP TABLE IF EXISTS Shop_General_Audit;
|
|
DROP TABLE IF EXISTS Shop_General;
|
|
|
|
DROP TABLE IF EXISTS File_Type_Audit;
|
|
DROP TABLE IF EXISTS File_Type;
|
|
|
|
DROP TABLE IF EXISTS Msg_Error_Type;
|
|
|
|
DROP TABLE IF EXISTS Shop_Access_Level_Audit;
|
|
DROP TABLE IF EXISTS Shop_Access_Level;
|
|
|
|
DROP TABLE IF EXISTS Shop_User_Change_Set;
|
|
|
|
DROP TABLE IF EXISTS Shop_Msg_Error_Type;
|
|
|
|
DROP TABLE IF EXISTS Shop_Product_Change_Set;
|
|
|
|
# Product Change Sets
|
|
|
|
use partsltd_prod;
|
|
|
|
SELECT CONCAT('WARNING: Table ', TABLE_NAME, ' already exists.') AS msg_warning FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'Shop_Product_Change_Set';
|
|
|
|
CREATE TABLE Shop_Product_Change_Set (
|
|
id_change_set INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
|
|
comment VARCHAR(500),
|
|
updated_last_on DATETIME,
|
|
updated_last_by VARCHAR(100)
|
|
);
|
|
# User Change Sets
|
|
|
|
use partsltd_prod;
|
|
|
|
SELECT CONCAT('WARNING: Table ', TABLE_NAME, ' already exists.') AS msg_warning FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'Shop_User_Change_Set';
|
|
|
|
CREATE TABLE IF NOT EXISTS Shop_User_Change_Set (
|
|
id_change_set INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
|
|
comment VARCHAR(500),
|
|
updated_last_on DATETIME,
|
|
updated_last_by VARCHAR(100)
|
|
);
|
|
# Access Levels
|
|
|
|
use partsltd_prod;
|
|
|
|
SELECT CONCAT('WARNING: Table ', TABLE_NAME, ' already exists.') AS msg_warning FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'Shop_Access_Level';
|
|
|
|
CREATE TABLE IF NOT EXISTS Shop_Access_Level (
|
|
id_access_level INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
|
|
code VARCHAR(50),
|
|
name VARCHAR(255),
|
|
priority INT NOT NULL,
|
|
active BIT NOT NULL DEFAULT 1,
|
|
display_order INT NOT NULL,
|
|
created_on DATETIME,
|
|
created_by VARCHAR(100),
|
|
id_change_set INT,
|
|
CONSTRAINT FK_Shop_Access_Level_id_change_set
|
|
FOREIGN KEY (id_change_set)
|
|
REFERENCES Shop_User_Change_Set(id_change_set)
|
|
);
|
|
# Access Level Audits
|
|
|
|
use partsltd_prod;
|
|
|
|
SELECT CONCAT('WARNING: Table ', TABLE_NAME, ' already exists.') AS msg_warning FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'Shop_Access_Level_Audit';
|
|
|
|
CREATE TABLE IF NOT EXISTS Shop_Access_Level_Audit (
|
|
id_audit INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
|
|
id_access_level INT NOT NULL,
|
|
CONSTRAINT FK_Shop_Access_Level_Audit_id_access_level
|
|
FOREIGN KEY (id_access_level)
|
|
REFERENCES Shop_Access_Level(id_access_level)
|
|
ON UPDATE RESTRICT,
|
|
name_field VARCHAR(50),
|
|
value_prev VARCHAR(500),
|
|
value_new VARCHAR(500),
|
|
id_change_set INT NOT NULL,
|
|
CONSTRAINT FK_Shop_Access_Level_Audit_id_change_set
|
|
FOREIGN KEY (id_change_set)
|
|
REFERENCES Shop_User_Change_Set(id_change_set)
|
|
);
|
|
# Error Message Type
|
|
|
|
use partsltd_prod;
|
|
|
|
SELECT CONCAT('WARNING: Table ', TABLE_NAME, ' already exists.') AS msg_warning FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'Shop_Msg_Error_Type';
|
|
|
|
CREATE TABLE IF NOT EXISTS Shop_Msg_Error_Type (
|
|
id_type INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
|
|
code VARCHAR(50) NOT NULL,
|
|
name VARCHAR(500) NOT NULL,
|
|
description VARCHAR(1000)
|
|
);
|
|
|
|
# File Types
|
|
|
|
use partsltd_prod;
|
|
|
|
SELECT CONCAT('WARNING: Table ', TABLE_NAME, ' already exists.') AS msg_warning FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'File_Type';
|
|
|
|
CREATE TABLE IF NOT EXISTS File_Type (
|
|
id_type INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
|
|
code VARCHAR(50),
|
|
name VARCHAR(100),
|
|
extension VARCHAR(50),
|
|
created_on DATETIME,
|
|
created_by VARCHAR(100),
|
|
updated_last_on DATETIME,
|
|
updated_last_by VARCHAR(100)
|
|
);
|
|
|
|
# File Type Audit
|
|
|
|
use partsltd_prod;
|
|
|
|
SELECT CONCAT('WARNING: Table ', TABLE_NAME, ' already exists.') AS msg_warning FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'File_Type_Audit';
|
|
|
|
CREATE TABLE IF NOT EXISTS File_Type_Audit (
|
|
id_audit INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
|
|
id_type INT NOT NULL,
|
|
CONSTRAINT FK_File_Type_Audit_id_type
|
|
FOREIGN KEY (id_type)
|
|
REFERENCES File_Type(id_type)
|
|
ON UPDATE RESTRICT,
|
|
name_field VARCHAR(50),
|
|
value_prev VARCHAR(500),
|
|
value_new VARCHAR(500),
|
|
created_on DATETIME,
|
|
created_by VARCHAR(100),
|
|
updated_last_on DATETIME,
|
|
updated_last_by VARCHAR(100)
|
|
);
|
|
# Generic / shared properties
|
|
|
|
use partsltd_prod;
|
|
|
|
SELECT CONCAT('WARNING: Table ', TABLE_NAME, ' already exists.') AS msg_warning FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'Shop_General';
|
|
|
|
CREATE TABLE IF NOT EXISTS Shop_General (
|
|
id_general INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
|
|
quantity_max FLOAT,
|
|
created_on DATETIME,
|
|
created_by VARCHAR(100),
|
|
id_change_set INT,
|
|
CONSTRAINT CHK_Shop_General_id_change_set
|
|
FOREIGN KEY (id_change_set)
|
|
REFERENCES Shop_Product_Change_Set(id_change_set)
|
|
);
|
|
# Shop General Audits
|
|
|
|
use partsltd_prod;
|
|
|
|
SELECT CONCAT('WARNING: Table ', TABLE_NAME, ' already exists.') AS msg_warning FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'Shop_General_Audit';
|
|
|
|
CREATE TABLE IF NOT EXISTS Shop_General_Audit (
|
|
id_audit INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
|
|
id_general INT NOT NULL,
|
|
CONSTRAINT FK_Shop_General_Audit_id_general
|
|
FOREIGN KEY (id_general)
|
|
REFERENCES Shop_General(id_general)
|
|
ON UPDATE RESTRICT,
|
|
name_field VARCHAR(50),
|
|
value_prev VARCHAR(500),
|
|
value_new VARCHAR(500),
|
|
id_change_set INT NOT NULL,
|
|
CONSTRAINT FK_Shop_General_Audit_id_change_set
|
|
FOREIGN KEY (id_change_set)
|
|
REFERENCES Shop_Product_Change_Set(id_change_set)
|
|
);
|
|
|
|
# Recurrence Interval
|
|
|
|
use partsltd_prod;
|
|
|
|
SELECT CONCAT('WARNING: Table ', TABLE_NAME, ' already exists.') AS msg_warning FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'Shop_Recurrence_Interval';
|
|
|
|
CREATE TABLE IF NOT EXISTS Shop_Recurrence_Interval (
|
|
id_interval INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
|
|
code VARCHAR(50),
|
|
name VARCHAR(255),
|
|
name_plural VARCHAR(256),
|
|
active BIT NOT NULL DEFAULT 1,
|
|
created_on DATETIME,
|
|
created_by VARCHAR(100),
|
|
id_change_set INT,
|
|
CONSTRAINT FK_Shop_Recurrence_Interval_id_change_set
|
|
FOREIGN KEY (id_change_set)
|
|
REFERENCES Shop_Product_Change_Set(id_change_set)
|
|
);
|
|
|
|
# Recurrence Interval Audits
|
|
|
|
use partsltd_prod;
|
|
|
|
SELECT CONCAT('WARNING: Table ', TABLE_NAME, ' already exists.') AS msg_warning FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'Shop_Recurrence_Interval_Audit';
|
|
|
|
CREATE TABLE IF NOT EXISTS Shop_Recurrence_Interval_Audit (
|
|
id_audit INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
|
|
id_interval INT NOT NULL,
|
|
CONSTRAINT FK_Shop_Recurrence_Interval_Audit_id_interval
|
|
FOREIGN KEY (id_interval)
|
|
REFERENCES Shop_Recurrence_Interval(id_interval)
|
|
ON UPDATE RESTRICT,
|
|
name_field VARCHAR(50),
|
|
value_prev VARCHAR(256),
|
|
value_new VARCHAR(256),
|
|
id_change_set INT NOT NULL,
|
|
CONSTRAINT FK_Shop_Recurrence_Interval_Audit_id_change_set
|
|
FOREIGN KEY (id_change_set)
|
|
REFERENCES Shop_Product_Change_Set(id_change_set)
|
|
);
|
|
|
|
# Regions
|
|
|
|
use partsltd_prod;
|
|
|
|
SELECT CONCAT('WARNING: Table ', TABLE_NAME, ' already exists.') AS msg_warning FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'Shop_Region';
|
|
|
|
CREATE TABLE IF NOT EXISTS Shop_Region (
|
|
id_region INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
|
|
code VARCHAR(50) NOT NULL,
|
|
name VARCHAR(200) NOT NULL,
|
|
active BIT NOT NULL DEFAULT 1,
|
|
display_order INT NOT NULL,
|
|
created_on DATETIME,
|
|
created_by VARCHAR(100),
|
|
id_change_set INT,
|
|
CONSTRAINT FK_Shop_Region_id_change_set
|
|
FOREIGN KEY (id_change_set)
|
|
REFERENCES Shop_Product_Change_Set(id_change_set)
|
|
);
|
|
# Region Audits
|
|
|
|
use partsltd_prod;
|
|
|
|
SELECT CONCAT('WARNING: Table ', TABLE_NAME, ' already exists.') AS msg_warning FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'Shop_Region_Audit';
|
|
|
|
CREATE TABLE IF NOT EXISTS Shop_Region_Audit (
|
|
id_audit INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
|
|
id_region INT NOT NULL,
|
|
CONSTRAINT FK_Shop_Region_Audit_id_region
|
|
FOREIGN KEY (id_region)
|
|
REFERENCES Shop_Region(id_region)
|
|
ON UPDATE RESTRICT,
|
|
name_field VARCHAR(64) NOT NULL,
|
|
value_prev VARCHAR(500),
|
|
value_new VARCHAR(500),
|
|
id_change_set INT NOT NULL,
|
|
CONSTRAINT FK_Shop_Region_Audit_id_change_set
|
|
FOREIGN KEY (id_change_set)
|
|
REFERENCES Shop_Product_Change_Set(id_change_set)
|
|
);
|
|
# Region Branchs
|
|
|
|
use partsltd_prod;
|
|
|
|
SELECT CONCAT('WARNING: Table ', TABLE_NAME, ' already exists.') AS msg_warning FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'Shop_Region_Branch';
|
|
|
|
CREATE TABLE IF NOT EXISTS Shop_Region_Branch (
|
|
id_branch INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
|
|
id_region_parent INT NOT NULL,
|
|
CONSTRAINT FK_Shop_Region_Branch_id_region_parent
|
|
FOREIGN KEY (id_region_parent)
|
|
REFERENCES Shop_Region(id_region)
|
|
ON UPDATE RESTRICT,
|
|
id_region_child INT NOT NULL,
|
|
CONSTRAINT FK_Shop_Region_Branch_id_region_child
|
|
FOREIGN KEY (id_region_child)
|
|
REFERENCES Shop_Region(id_region)
|
|
ON UPDATE RESTRICT,
|
|
-- depth INT NOT NULL,
|
|
active BIT NOT NULL DEFAULT 1,
|
|
display_order INT NOT NULL,
|
|
created_on DATETIME,
|
|
created_by VARCHAR(100),
|
|
id_change_set INT,
|
|
CONSTRAINT FK_Shop_Region_Branch_id_change_set
|
|
FOREIGN KEY (id_change_set)
|
|
REFERENCES Shop_Product_Change_Set(id_change_set)
|
|
);
|
|
# Region Audits
|
|
|
|
use partsltd_prod;
|
|
|
|
SELECT CONCAT('WARNING: Table ', TABLE_NAME, ' already exists.') AS msg_warning FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'Shop_Region_Branch_Audit';
|
|
|
|
CREATE TABLE IF NOT EXISTS Shop_Region_Branch_Audit (
|
|
id_audit INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
|
|
id_branch INT NOT NULL,
|
|
CONSTRAINT FK_Shop_Region_Branch_Audit_id_branch
|
|
FOREIGN KEY (id_branch)
|
|
REFERENCES Shop_Region_Branch(id_branch)
|
|
ON UPDATE RESTRICT,
|
|
name_field VARCHAR(64) NOT NULL,
|
|
value_prev VARCHAR(500),
|
|
value_new VARCHAR(500),
|
|
id_change_set INT NOT NULL,
|
|
CONSTRAINT FK_Shop_Region_Branch_Audit_id_change_set
|
|
FOREIGN KEY (id_change_set)
|
|
REFERENCES Shop_Product_Change_Set(id_change_set)
|
|
);
|
|
# Currencies
|
|
|
|
use partsltd_prod;
|
|
|
|
SELECT CONCAT('WARNING: Table ', TABLE_NAME, ' already exists.') AS msg_warning FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'Shop_Currency';
|
|
|
|
CREATE TABLE IF NOT EXISTS Shop_Currency (
|
|
id_currency INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
|
|
code VARCHAR(50) NOT NULL,
|
|
name VARCHAR(255) NOT NULL,
|
|
symbol VARCHAR(1) NOT NULL,
|
|
factor_from_GBP FLOAT NOT NULL,
|
|
active BIT NOT NULL DEFAULT 1,
|
|
display_order INT NOT NULL,
|
|
created_on DATETIME,
|
|
created_by VARCHAR(100),
|
|
id_change_set INT,
|
|
CONSTRAINT FK_Shop_Currency_id_change_set
|
|
FOREIGN KEY (id_change_set)
|
|
REFERENCES Shop_Product_Change_Set(id_change_set)
|
|
ON UPDATE RESTRICT
|
|
);
|
|
# Currency Audits
|
|
|
|
use partsltd_prod;
|
|
|
|
SELECT CONCAT('WARNING: Table ', TABLE_NAME, ' already exists.') AS msg_warning FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'Shop_Currency_Audit';
|
|
|
|
CREATE TABLE IF NOT EXISTS Shop_Currency_Audit (
|
|
id_audit INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
|
|
id_currency INT NOT NULL,
|
|
CONSTRAINT FK_Shop_Currency_Audit_id_currency
|
|
FOREIGN KEY (id_currency)
|
|
REFERENCES Shop_Currency(id_currency)
|
|
ON UPDATE RESTRICT,
|
|
name_field VARCHAR(50),
|
|
value_prev VARCHAR(500),
|
|
value_new VARCHAR(500),
|
|
id_change_set INT NOT NULL,
|
|
CONSTRAINT FK_Shop_Currency_Audit_id_change_set
|
|
FOREIGN KEY (id_change_set)
|
|
REFERENCES Shop_User_Change_Set(id_change_set)
|
|
ON UPDATE RESTRICT
|
|
);
|
|
# Taxes and Surcharges
|
|
|
|
use partsltd_prod;
|
|
|
|
SELECT CONCAT('WARNING: Table ', TABLE_NAME, ' already exists.') AS msg_warning FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'Shop_Tax_Or_Surcharge';
|
|
|
|
CREATE TABLE Shop_Tax_Or_Surcharge (
|
|
id_tax INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
|
|
code VARCHAR(50) NOT NULL,
|
|
name VARCHAR(200) NOT NULL,
|
|
id_region_buyer INT NOT NULL,
|
|
CONSTRAINT FK_Shop_Tax_Or_Surcharge_id_region_buyer
|
|
FOREIGN KEY (id_region_buyer)
|
|
REFERENCES Shop_Region(id_region),
|
|
id_region_seller INT NOT NULL,
|
|
CONSTRAINT FK_Shop_Tax_Or_Surcharge_id_region_seller
|
|
FOREIGN KEY (id_region_seller)
|
|
REFERENCES Shop_Region(id_region),
|
|
id_currency INT,
|
|
CONSTRAINT FK_Shop_Tax_Or_Surcharge_id_currency
|
|
FOREIGN KEY (id_currency)
|
|
REFERENCES Shop_Currency(id_currency)
|
|
ON UPDATE RESTRICT,
|
|
fixed_fee FLOAT NOT NULL DEFAULT 0,
|
|
multiplier FLOAT NOT NULL DEFAULT 1 CHECK (multiplier > 0),
|
|
apply_fixed_fee_before_multiplier BIT DEFAULT 1,
|
|
quantity_min FLOAT NOT NULL DEFAULT 0,
|
|
quantity_max FLOAT NOT NULL,
|
|
active BIT NOT NULL DEFAULT 1,
|
|
display_order INT NOT NULL,
|
|
created_on DATETIME,
|
|
created_by VARCHAR(100),
|
|
id_change_set INT,
|
|
CONSTRAINT FK_Shop_Tax_Or_Surcharge_id_change_set
|
|
FOREIGN KEY (id_change_set)
|
|
REFERENCES Shop_Product_Change_Set(id_change_set)
|
|
);
|
|
|
|
# Tax Or Surcharge Audits
|
|
|
|
use partsltd_prod;
|
|
|
|
SELECT CONCAT('WARNING: Table ', TABLE_NAME, ' already exists.') AS msg_warning FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'Shop_Tax_Or_Surcharge_Audit';
|
|
|
|
CREATE TABLE IF NOT EXISTS Shop_Tax_Or_Surcharge_Audit (
|
|
id_audit INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
|
|
id_tax INT NOT NULL,
|
|
CONSTRAINT FK_Shop_Tax_Or_Surcharge_Audit_id_discount
|
|
FOREIGN KEY (id_tax)
|
|
REFERENCES Shop_Tax_Or_Surcharge(id_tax)
|
|
ON UPDATE RESTRICT,
|
|
name_field VARCHAR(50),
|
|
value_prev VARCHAR(500),
|
|
value_new VARCHAR(500),
|
|
id_change_set INT NOT NULL,
|
|
CONSTRAINT FK_Shop_Tax_Or_Surcharge_Audit_id_change_set
|
|
FOREIGN KEY (id_change_set)
|
|
REFERENCES Shop_Product_Change_Set(id_change_set)
|
|
ON UPDATE RESTRICT
|
|
);
|
|
|
|
# Image Types
|
|
|
|
use partsltd_prod;
|
|
|
|
SELECT CONCAT('WARNING: Table ', TABLE_NAME, ' already exists.') AS msg_warning FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'Shop_Image_Type';
|
|
|
|
CREATE TABLE IF NOT EXISTS Shop_Image_Type (
|
|
id_type INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
|
|
code VARCHAR(50),
|
|
name VARCHAR(255),
|
|
name_plural VARCHAR(256),
|
|
active BIT NOT NULL DEFAULT 1,
|
|
display_order INT NOT NULL,
|
|
created_on DATETIME,
|
|
created_by VARCHAR(100),
|
|
id_change_set INT,
|
|
CONSTRAINT FK_Shop_Image_Type_id_change_set
|
|
FOREIGN KEY (id_change_set)
|
|
REFERENCES Shop_Product_Change_Set(id_change_set)
|
|
);
|
|
|
|
# Image Type Audits
|
|
|
|
use partsltd_prod;
|
|
|
|
SELECT CONCAT('WARNING: Table ', TABLE_NAME, ' already exists.') AS msg_warning FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'Shop_Image_Type_Audit';
|
|
|
|
CREATE TABLE IF NOT EXISTS Shop_Image_Type_Audit (
|
|
id_audit INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
|
|
id_type INT NOT NULL,
|
|
CONSTRAINT FK_Shop_Image_Type_Audit_id_type
|
|
FOREIGN KEY (id_type)
|
|
REFERENCES Shop_Image_Type(id_type)
|
|
ON UPDATE RESTRICT,
|
|
name_field VARCHAR(50),
|
|
value_prev VARCHAR(500),
|
|
value_new VARCHAR(500),
|
|
id_change_set INT NOT NULL,
|
|
CONSTRAINT FK_Shop_Image_Type_Audit_id_change_set
|
|
FOREIGN KEY (id_change_set)
|
|
REFERENCES Shop_Product_Change_Set(id_change_set)
|
|
);
|
|
# Images
|
|
|
|
use partsltd_prod;
|
|
|
|
SELECT CONCAT('WARNING: Table ', TABLE_NAME, ' already exists.') AS msg_warning FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'Shop_Image';
|
|
|
|
CREATE TABLE IF NOT EXISTS Shop_Image (
|
|
id_image INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
|
|
id_type_image INT NOT NULL,
|
|
CONSTRAINT FK_Shop_Image_id_type_image
|
|
FOREIGN KEY (id_type_image)
|
|
REFERENCES Shop_Image_Type(id_type),
|
|
id_type_file INT NOT NULL,
|
|
CONSTRAINT FK_Shop_Image_id_type_file
|
|
FOREIGN KEY (id_type_file)
|
|
REFERENCES File_Type(id_type),
|
|
id_product INT NULL,
|
|
CONSTRAINT FK_Shop_Image_id_product
|
|
FOREIGN KEY (id_product)
|
|
REFERENCES Shop_Product(id_product),
|
|
id_permutation INT NULL,
|
|
CONSTRAINT FK_Shop_Image_id_permutation
|
|
FOREIGN KEY (id_permutation)
|
|
REFERENCES Shop_Product_Permutation(id_permutation),
|
|
url VARCHAR(255),
|
|
active BIT NOT NULL DEFAULT 1,
|
|
display_order INT NOT NULL,
|
|
created_on DATETIME,
|
|
created_by VARCHAR(100),
|
|
id_change_set INT,
|
|
CONSTRAINT FK_Shop_Image_id_change_set
|
|
FOREIGN KEY (id_change_set)
|
|
REFERENCES Shop_Product_Change_Set(id_change_set)
|
|
);
|
|
# Image Type Audits
|
|
|
|
use partsltd_prod;
|
|
|
|
SELECT CONCAT('WARNING: Table ', TABLE_NAME, ' already exists.') AS msg_warning FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'Shop_Image_Audit';
|
|
|
|
CREATE TABLE IF NOT EXISTS Shop_Image_Audit (
|
|
id_audit INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
|
|
id_image INT NOT NULL,
|
|
CONSTRAINT FK_Shop_Image_Audit_id_image
|
|
FOREIGN KEY (id_image)
|
|
REFERENCES Shop_Image(id_image),
|
|
name_field VARCHAR(50),
|
|
value_prev VARCHAR(500),
|
|
value_new VARCHAR(500),
|
|
id_change_set INT NOT NULL,
|
|
CONSTRAINT FK_Shop_Image_Audit_id_change_set
|
|
FOREIGN KEY (id_change_set)
|
|
REFERENCES Shop_Product_Change_Set(id_change_set)
|
|
);
|
|
|
|
# Permission Groups
|
|
|
|
use partsltd_prod;
|
|
|
|
SELECT CONCAT('WARNING: Table ', TABLE_NAME, ' already exists.') AS msg_warning FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'Shop_Permission_Group';
|
|
|
|
CREATE TABLE IF NOT EXISTS Shop_Permission_Group (
|
|
id_group INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
|
|
code VARCHAR(50),
|
|
name VARCHAR(255),
|
|
active BIT NOT NULL DEFAULT 1,
|
|
display_order INT NOT NULL,
|
|
created_on DATETIME,
|
|
created_by VARCHAR(100),
|
|
id_change_set INT,
|
|
CONSTRAINT FK_Shop_Permission_Group_id_change_set
|
|
FOREIGN KEY (id_change_set)
|
|
REFERENCES Shop_User_Change_Set(id_change_set)
|
|
ON UPDATE RESTRICT
|
|
);
|
|
# Permission Group Audits
|
|
|
|
use partsltd_prod;
|
|
|
|
SELECT CONCAT('WARNING: Table ', TABLE_NAME, ' already exists.') AS msg_warning FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'Shop_Permission_Group_Audit';
|
|
|
|
CREATE TABLE IF NOT EXISTS Shop_Permission_Group_Audit (
|
|
id_audit INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
|
|
id_group INT NOT NULL,
|
|
CONSTRAINT FK_Shop_Permission_Group_Audit_id_group
|
|
FOREIGN KEY (id_group)
|
|
REFERENCES Shop_Permission_Group(id_group)
|
|
ON UPDATE RESTRICT,
|
|
name_field VARCHAR(50),
|
|
value_prev VARCHAR(500),
|
|
value_new VARCHAR(500),
|
|
id_change_set INT NOT NULL,
|
|
CONSTRAINT FK_Shop_Permission_Group_Audit_id_change_set
|
|
FOREIGN KEY (id_change_set)
|
|
REFERENCES Shop_User_Change_Set(id_change_set)
|
|
ON UPDATE RESTRICT
|
|
);
|
|
# Permissions
|
|
|
|
use partsltd_prod;
|
|
|
|
SELECT CONCAT('WARNING: Table ', TABLE_NAME, ' already exists.') AS msg_warning FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'Shop_Permission';
|
|
|
|
CREATE TABLE IF NOT EXISTS Shop_Permission (
|
|
id_permission INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
|
|
code VARCHAR(50),
|
|
name VARCHAR(255),
|
|
id_permission_group INT NOT NULL,
|
|
CONSTRAINT FK_Shop_Permission_id_permission_group
|
|
FOREIGN KEY (id_permission_group)
|
|
REFERENCES Shop_Permission_Group(id_group)
|
|
ON UPDATE RESTRICT,
|
|
id_access_level_required INT NOT NULL,
|
|
CONSTRAINT FK_Shop_Permission_id_access_level_required
|
|
FOREIGN KEY (id_access_level_required)
|
|
REFERENCES Shop_Access_Level(id_access_level),
|
|
active BIT NOT NULL DEFAULT 1,
|
|
display_order INT NOT NULL,
|
|
created_on DATETIME,
|
|
created_by VARCHAR(100),
|
|
id_change_set INT,
|
|
CONSTRAINT FK_Shop_Permission_id_change_set
|
|
FOREIGN KEY (id_change_set)
|
|
REFERENCES Shop_User_Change_Set(id_change_set)
|
|
);
|
|
# Permission Audits
|
|
|
|
use partsltd_prod;
|
|
|
|
SELECT CONCAT('WARNING: Table ', TABLE_NAME, ' already exists.') AS msg_warning FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'Shop_Permission_Audit';
|
|
|
|
CREATE TABLE IF NOT EXISTS Shop_Permission_Audit (
|
|
id_audit INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
|
|
id_permission INT NOT NULL,
|
|
CONSTRAINT FK_Shop_Permission_Audit_id_permission
|
|
FOREIGN KEY (id_permission)
|
|
REFERENCES Shop_Permission(id_permission)
|
|
ON UPDATE RESTRICT,
|
|
name_field VARCHAR(50),
|
|
value_prev VARCHAR(500),
|
|
value_new VARCHAR(500),
|
|
id_change_set INT NOT NULL,
|
|
CONSTRAINT FK_Shop_Permission_Audit_id_change_set
|
|
FOREIGN KEY (id_change_set)
|
|
REFERENCES Shop_User_Change_Set(id_change_set)
|
|
ON UPDATE RESTRICT
|
|
);
|
|
# Roles
|
|
|
|
use partsltd_prod;
|
|
|
|
SELECT CONCAT('WARNING: Table ', TABLE_NAME, ' already exists.') AS msg_warning FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'Shop_Role';
|
|
|
|
CREATE TABLE IF NOT EXISTS Shop_Role (
|
|
id_role INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
|
|
code VARCHAR(50),
|
|
name VARCHAR(255),
|
|
active BIT NOT NULL DEFAULT 1,
|
|
display_order INT NOT NULL,
|
|
created_on DATETIME,
|
|
created_by VARCHAR(100),
|
|
id_change_set INT,
|
|
CONSTRAINT FK_Shop_Role_id_change_set
|
|
FOREIGN KEY (id_change_set)
|
|
REFERENCES Shop_User_Change_Set(id_change_set)
|
|
);
|
|
# Role Audits
|
|
|
|
use partsltd_prod;
|
|
|
|
SELECT CONCAT('WARNING: Table ', TABLE_NAME, ' already exists.') AS msg_warning FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'Shop_Role_Audit';
|
|
|
|
CREATE TABLE Shop_Role_Audit (
|
|
id_audit INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
|
|
id_role INT NOT NULL,
|
|
CONSTRAINT FK_Shop_Role_Audit_id_role
|
|
FOREIGN KEY (id_role)
|
|
REFERENCES Shop_Role(id_role)
|
|
ON UPDATE RESTRICT,
|
|
name_field VARCHAR(50),
|
|
value_prev VARCHAR(500),
|
|
value_new VARCHAR(500),
|
|
id_change_set INT NOT NULL,
|
|
CONSTRAINT FK_Shop_Role_Audit_id_change_set
|
|
FOREIGN KEY (id_change_set)
|
|
REFERENCES Shop_User_Change_Set(id_change_set)
|
|
ON UPDATE RESTRICT
|
|
);
|
|
# Role Permission link
|
|
|
|
use partsltd_prod;
|
|
|
|
SELECT CONCAT('WARNING: Table ', TABLE_NAME, ' already exists.') AS msg_warning FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'Shop_Role_Permission_Link';
|
|
|
|
CREATE TABLE IF NOT EXISTS Shop_Role_Permission_Link (
|
|
id_link INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
|
|
id_role INT,
|
|
CONSTRAINT FK_Shop_Role_Permission_Link_id_role
|
|
FOREIGN KEY (id_role)
|
|
REFERENCES Shop_Role(id_role)
|
|
ON UPDATE RESTRICT,
|
|
id_permission INT,
|
|
CONSTRAINT FK_Shop_Role_Permission_Link_id_permission
|
|
FOREIGN KEY (id_permission)
|
|
REFERENCES Shop_Permission(id_permission)
|
|
ON UPDATE RESTRICT,
|
|
id_access_level INT,
|
|
CONSTRAINT FK_Shop_Role_Permission_Link_id_access_level
|
|
FOREIGN KEY (id_access_level)
|
|
REFERENCES Shop_Access_Level(id_access_level),
|
|
active BIT NOT NULL DEFAULT 1,
|
|
created_on DATETIME,
|
|
created_by VARCHAR(100),
|
|
id_change_set INT,
|
|
CONSTRAINT FK_Shop_Role_Permission_Link_id_change_set
|
|
FOREIGN KEY (id_change_set)
|
|
REFERENCES Shop_User_Change_Set(id_change_set)
|
|
);
|
|
# Role Permission link Audits
|
|
|
|
use partsltd_prod;
|
|
|
|
SELECT CONCAT('WARNING: Table ', TABLE_NAME, ' already exists.') AS msg_warning FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'Shop_Role_Permission_Link_Audit';
|
|
|
|
CREATE TABLE IF NOT EXISTS Shop_Role_Permission_Link_Audit (
|
|
id_audit INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
|
|
id_link INT NOT NULL,
|
|
CONSTRAINT FK_Shop_Role_Permission_Link_Audit_id_link
|
|
FOREIGN KEY (id_link)
|
|
REFERENCES Shop_Role_Permission_Link(id_link)
|
|
ON UPDATE RESTRICT,
|
|
name_field VARCHAR(50),
|
|
value_prev VARCHAR(500),
|
|
value_new VARCHAR(500),
|
|
id_change_set INT NOT NULL,
|
|
CONSTRAINT FK_Shop_Role_Permission_Link_Audit_id_change_set
|
|
FOREIGN KEY (id_change_set)
|
|
REFERENCES Shop_User_Change_Set(id_change_set)
|
|
);
|
|
# Users
|
|
|
|
use partsltd_prod;
|
|
|
|
SELECT CONCAT('WARNING: Table ', TABLE_NAME, ' already exists.') AS msg_warning FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'Shop_User';
|
|
|
|
CREATE TABLE IF NOT EXISTS Shop_User (
|
|
id_user VARCHAR(200) NOT NULL PRIMARY KEY,
|
|
name VARCHAR(255) NOT NULL,
|
|
email VARCHAR(254) NOT NULL,
|
|
email_verified BIT NOT NULL DEFAULT 0,
|
|
is_super_user BIT NOT NULL DEFAULT 0,
|
|
active BIT NOT NULL DEFAULT 1,
|
|
created_on DATETIME,
|
|
created_by VARCHAR(100),
|
|
id_change_set INT,
|
|
CONSTRAINT FK_Shop_User_id_change_set
|
|
FOREIGN KEY (id_change_set)
|
|
REFERENCES Shop_User_Change_Set(id_change_set)
|
|
);
|
|
|
|
# User Audits
|
|
|
|
use partsltd_prod;
|
|
|
|
SELECT CONCAT('WARNING: Table ', TABLE_NAME, ' already exists.') AS msg_warning FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'Shop_User_Audit';
|
|
|
|
CREATE TABLE IF NOT EXISTS Shop_User_Audit (
|
|
id_audit INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
|
|
id_user VARCHAR(200) NOT NULL,
|
|
CONSTRAINT FK_Shop_User_Audit_id_user
|
|
FOREIGN KEY (id_user)
|
|
REFERENCES Shop_User(id_user)
|
|
ON UPDATE RESTRICT,
|
|
name_field VARCHAR(50),
|
|
value_prev VARCHAR(500),
|
|
value_new VARCHAR(500),
|
|
id_change_set INT NOT NULL,
|
|
CONSTRAINT FK_Shop_User_Audit_id_change_set
|
|
FOREIGN KEY (id_change_set)
|
|
REFERENCES Shop_User_Change_Set(id_change_set)
|
|
ON UPDATE RESTRICT
|
|
);
|
|
# User Role link
|
|
|
|
use partsltd_prod;
|
|
|
|
SELECT CONCAT('WARNING: Table ', TABLE_NAME, ' already exists.') AS msg_warning FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'Shop_User_Role_Link';
|
|
|
|
CREATE TABLE IF NOT EXISTS Shop_User_Role_Link (
|
|
id_link INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
|
|
id_user VARCHAR(200) NOT NULL,
|
|
CONSTRAINT FK_Shop_User_Role_Link_id_user
|
|
FOREIGN KEY (id_user)
|
|
REFERENCES Shop_User(id_user)
|
|
ON UPDATE RESTRICT,
|
|
id_role INT NOT NULL,
|
|
CONSTRAINT FK_Shop_User_Role_Link_id_role
|
|
FOREIGN KEY (id_role)
|
|
REFERENCES Shop_Role(id_role),
|
|
active BIT NOT NULL DEFAULT 1,
|
|
created_on DATETIME,
|
|
created_by VARCHAR(100),
|
|
id_change_set INT,
|
|
CONSTRAINT FK_Shop_User_Role_Link_id_change_set
|
|
FOREIGN KEY (id_change_set)
|
|
REFERENCES Shop_User_Change_Set(id_change_set)
|
|
);
|
|
# User Role Link Audits
|
|
|
|
use partsltd_prod;
|
|
|
|
SELECT CONCAT('WARNING: Table ', TABLE_NAME, ' already exists.') AS msg_warning FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'Shop_User_Role_Link_Audit';
|
|
|
|
CREATE TABLE IF NOT EXISTS Shop_User_Role_Link_Audit (
|
|
id_audit INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
|
|
id_link INT NOT NULL,
|
|
CONSTRAINT FK_Shop_User_Role_Link_Audit_id_link
|
|
FOREIGN KEY (id_link)
|
|
REFERENCES Shop_User_Role_Link(id_link)
|
|
ON UPDATE RESTRICT,
|
|
name_field VARCHAR(50),
|
|
value_prev VARCHAR(500),
|
|
value_new VARCHAR(500),
|
|
id_change_set INT NOT NULL,
|
|
CONSTRAINT FK_Shop_User_Role_Link_Audit_id_change_set
|
|
FOREIGN KEY (id_change_set)
|
|
REFERENCES Shop_User_Change_Set(id_change_set)
|
|
);
|
|
|
|
# Addresses
|
|
|
|
use partsltd_prod;
|
|
|
|
SELECT CONCAT('WARNING: Table ', TABLE_NAME, ' already exists.') AS msg_warning FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'Shop_Address';
|
|
|
|
CREATE TABLE Shop_Address (
|
|
id_address INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
|
|
id_user VARCHAR(200) NOT NULL,
|
|
CONSTRAINT FK_Shop_Address_id_user
|
|
FOREIGN KEY (id_user)
|
|
REFERENCES Shop_User(id_user)
|
|
ON UPDATE RESTRICT,
|
|
-- region VARCHAR(100) NOT NULL,
|
|
id_region INT NOT NULL,
|
|
name_full VARCHAR(255) NOT NULL,
|
|
phone_number VARCHAR(20) NOT NULL,
|
|
postcode VARCHAR(20) NOT NULL,
|
|
address_line_1 VARCHAR(100) NOT NULL,
|
|
address_line_2 VARCHAR(100) NOT NULL,
|
|
city VARCHAR(50) NOT NULL,
|
|
county VARCHAR(100) NOT NULL,
|
|
active BIT NOT NULL DEFAULT 1,
|
|
created_on DATETIME,
|
|
created_by VARCHAR(100),
|
|
id_change_set INT,
|
|
CONSTRAINT FK_Shop_Address_id_change_set
|
|
FOREIGN KEY (id_change_set)
|
|
REFERENCES Shop_User_Change_Set(id_change_set)
|
|
);
|
|
# Address Audits
|
|
|
|
use partsltd_prod;
|
|
|
|
SELECT CONCAT('WARNING: Table ', TABLE_NAME, ' already exists.') AS msg_warning FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'Shop_Address_Audit';
|
|
|
|
CREATE TABLE IF NOT EXISTS Shop_Address_Audit (
|
|
id_audit INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
|
|
id_address INT NOT NULL,
|
|
CONSTRAINT FK_Shop_Address_Audit_id_address
|
|
FOREIGN KEY (id_address)
|
|
REFERENCES Shop_Address(id_address)
|
|
ON UPDATE RESTRICT,
|
|
name_field VARCHAR(50),
|
|
value_prev VARCHAR(500),
|
|
value_new VARCHAR(500),
|
|
id_change_set INT NOT NULL,
|
|
CONSTRAINT FK_Shop_Address_Audit_id_change_set
|
|
FOREIGN KEY (id_change_set)
|
|
REFERENCES Shop_User_Change_Set(id_change_set)
|
|
ON UPDATE RESTRICT
|
|
);
|
|
|
|
# Shop User Change Set
|
|
|
|
use partsltd_prod;
|
|
|
|
DROP TRIGGER IF EXISTS before_insert_Shop_User_Change_Set;
|
|
|
|
|
|
DELIMITER //
|
|
CREATE TRIGGER before_insert_Shop_User_Change_Set
|
|
BEFORE INSERT ON Shop_User_Change_Set
|
|
FOR EACH ROW
|
|
BEGIN
|
|
IF NEW.updated_last_on <=> NULL THEN
|
|
SET NEW.updated_last_on = NOW();
|
|
END IF;
|
|
IF NEW.updated_last_by <=> NULL THEN
|
|
SET NEW.updated_last_by = CURRENT_USER();
|
|
END IF;
|
|
END //
|
|
DELIMITER ;
|
|
# Shop Access Level
|
|
|
|
use partsltd_prod;
|
|
|
|
DROP TRIGGER IF EXISTS before_insert_Shop_Access_Level;
|
|
DROP TRIGGER IF EXISTS before_update_Shop_Access_Level;
|
|
|
|
|
|
DELIMITER //
|
|
CREATE TRIGGER before_insert_Shop_Access_Level
|
|
BEFORE INSERT ON Shop_Access_Level
|
|
FOR EACH ROW
|
|
BEGIN
|
|
IF NEW.created_on <=> NULL THEN
|
|
SET NEW.created_on = NOW();
|
|
END IF;
|
|
IF NEW.created_by <=> NULL THEN
|
|
SET NEW.created_by = CURRENT_USER();
|
|
END IF;
|
|
END //
|
|
DELIMITER ;
|
|
|
|
|
|
DELIMITER //
|
|
CREATE TRIGGER before_update_Shop_Access_Level
|
|
BEFORE UPDATE ON Shop_Access_Level
|
|
FOR EACH ROW
|
|
BEGIN
|
|
IF OLD.id_change_set <=> NEW.id_change_set THEN
|
|
SIGNAL SQLSTATE '45000'
|
|
SET MESSAGE_TEXT = 'New change Set ID must be provided.';
|
|
END IF;
|
|
|
|
INSERT INTO Shop_Access_Level_Audit (
|
|
id_access_level,
|
|
name_field,
|
|
value_prev,
|
|
value_new,
|
|
id_change_set
|
|
)
|
|
# Changed code
|
|
SELECT NEW.id_access_level, 'code', OLD.code, NEW.code, NEW.id_change_set
|
|
WHERE NOT (OLD.code <=> NEW.code)
|
|
UNION
|
|
# Changed name
|
|
SELECT NEW.id_access_level, 'name', OLD.name, NEW.name, NEW.id_change_set
|
|
WHERE NOT (OLD.name <=> NEW.name)
|
|
UNION
|
|
# Changed priority
|
|
SELECT NEW.id_access_level, 'priority', CONVERT(OLD.priority, CHAR), CONVERT(NEW.priority, CHAR), NEW.id_change_set
|
|
WHERE NOT (OLD.priority <=> NEW.priority)
|
|
UNION
|
|
# Changed active
|
|
SELECT NEW.id_access_level, 'active', CONVERT(CONVERT(OLD.active, SIGNED), CHAR), CONVERT(CONVERT(NEW.active, SIGNED), CHAR), NEW.id_change_set
|
|
WHERE NOT (OLD.active <=> NEW.active)
|
|
UNION
|
|
# Changed display_order
|
|
SELECT NEW.id_access_level, 'display_order', CONVERT(OLD.display_order, CHAR), CONVERT(NEW.display_order, CHAR), NEW.id_change_set
|
|
WHERE NOT OLD.display_order <=> NEW.display_order
|
|
;
|
|
END //
|
|
DELIMITER ;
|
|
|
|
# File Type
|
|
|
|
use partsltd_prod;
|
|
|
|
DROP TRIGGER IF EXISTS before_insert_File_Type;
|
|
DROP TRIGGER IF EXISTS before_update_File_Type;
|
|
|
|
DELIMITER //
|
|
CREATE TRIGGER before_insert_File_Type
|
|
BEFORE INSERT ON File_Type
|
|
FOR EACH ROW
|
|
BEGIN
|
|
SET NEW.created_on = NOW();
|
|
SET NEW.created_by = CURRENT_USER();
|
|
END //
|
|
DELIMITER ;
|
|
|
|
DELIMITER //
|
|
CREATE TRIGGER before_update_File_Type
|
|
BEFORE UPDATE ON File_Type
|
|
FOR EACH ROW
|
|
BEGIN
|
|
INSERT INTO File_Type_Audit (
|
|
id_type,
|
|
name_field,
|
|
value_prev,
|
|
value_new
|
|
)
|
|
# Changed code
|
|
SELECT NEW.id_type, 'code', OLD.code, NEW.code
|
|
WHERE NOT OLD.code <=> NEW.code
|
|
UNION
|
|
# Changed name
|
|
SELECT NEW.id_type, 'name', OLD.name, NEW.name
|
|
WHERE NOT OLD.name <=> NEW.name
|
|
UNION
|
|
# Changed extension
|
|
SELECT NEW.id_type, 'extension', CONVERT(OLD.extension, CHAR), CONVERT(NEW.extension, CHAR)
|
|
WHERE NOT OLD.extension <=> NEW.extension
|
|
;
|
|
END //
|
|
DELIMITER ;
|
|
|
|
# File Type Audits
|
|
|
|
use partsltd_prod;
|
|
|
|
DROP TRIGGER IF EXISTS before_insert_File_Type_Audit;
|
|
DROP TRIGGER IF EXISTS before_update_File_Type_Audit;
|
|
|
|
|
|
DELIMITER //
|
|
CREATE TRIGGER before_insert_File_Type_Audit
|
|
BEFORE INSERT ON File_Type_Audit
|
|
FOR EACH ROW
|
|
BEGIN
|
|
SET NEW.created_on = NOW();
|
|
SET NEW.created_by = CURRENT_USER();
|
|
END //
|
|
DELIMITER ;
|
|
|
|
DELIMITER //
|
|
CREATE TRIGGER before_update_File_Type_Audit
|
|
BEFORE UPDATE ON File_Type_Audit
|
|
FOR EACH ROW
|
|
BEGIN
|
|
SET NEW.updated_last_on = NOW();
|
|
SET NEW.updated_last_by = CURRENT_USER();
|
|
END //
|
|
DELIMITER ;
|
|
# Shop General
|
|
|
|
use partsltd_prod;
|
|
|
|
DROP TRIGGER IF EXISTS before_insert_Shop_General;
|
|
DROP TRIGGER IF EXISTS before_update_Shop_General;
|
|
|
|
DELIMITER //
|
|
CREATE TRIGGER before_insert_Shop_General
|
|
BEFORE INSERT ON Shop_General
|
|
FOR EACH ROW
|
|
BEGIN
|
|
SET NEW.created_on = NOW();
|
|
SET NEW.created_by = CURRENT_USER();
|
|
END //
|
|
DELIMITER ;
|
|
|
|
DELIMITER //
|
|
CREATE TRIGGER before_update_Shop_General
|
|
BEFORE UPDATE ON Shop_General
|
|
FOR EACH ROW
|
|
BEGIN
|
|
IF OLD.id_change_set <=> NEW.id_change_set THEN
|
|
SIGNAL SQLSTATE '45000'
|
|
SET MESSAGE_TEXT = 'New change Set ID must be provided.';
|
|
END IF;
|
|
|
|
INSERT INTO Shop_General_Audit (
|
|
id_general,
|
|
name_field,
|
|
value_prev,
|
|
value_new,
|
|
id_change_set
|
|
)
|
|
# Changed quantity max
|
|
SELECT NEW.id_general, 'quantity_max', CONVERT(OLD.quantity_max, CHAR), CONVERT(NEW.quantity_max, CHAR), NEW.id_change_set
|
|
WHERE NOT OLD.quantity_max <=> NEW.quantity_max
|
|
;
|
|
END //
|
|
DELIMITER ;
|
|
|
|
# Shop Recurrence Interval
|
|
|
|
use partsltd_prod;
|
|
|
|
|
|
DROP TRIGGER IF EXISTS before_insert_Shop_Recurrence_Interval;
|
|
DROP TRIGGER IF EXISTS before_update_Shop_Recurrence_Interval;
|
|
|
|
|
|
DELIMITER //
|
|
CREATE TRIGGER before_insert_Shop_Recurrence_Interval
|
|
BEFORE INSERT ON Shop_Recurrence_Interval
|
|
FOR EACH ROW
|
|
BEGIN
|
|
SET NEW.created_on = NOW();
|
|
SET NEW.created_by = CURRENT_USER();
|
|
END //
|
|
DELIMITER ;
|
|
|
|
|
|
DELIMITER //
|
|
CREATE TRIGGER before_update_Shop_Recurrence_Interval
|
|
BEFORE UPDATE ON Shop_Recurrence_Interval
|
|
FOR EACH ROW
|
|
BEGIN
|
|
IF OLD.id_change_set <=> NEW.id_change_set THEN
|
|
SIGNAL SQLSTATE '45000'
|
|
SET MESSAGE_TEXT = 'New change Set ID must be provided.';
|
|
END IF;
|
|
|
|
INSERT INTO Shop_Recurrence_Interval_Audit (
|
|
id_interval,
|
|
name_field,
|
|
value_prev,
|
|
value_new,
|
|
id_change_set
|
|
)
|
|
# Changed code
|
|
SELECT NEW.id_interval, 'code', OLD.code, NEW.code, NEW.id_change_set
|
|
WHERE NOT OLD.code <=> NEW.code
|
|
UNION
|
|
# Changed name
|
|
SELECT NEW.id_interval, 'name', OLD.name, NEW.name, NEW.id_change_set
|
|
WHERE NOT OLD.name <=> NEW.name
|
|
UNION
|
|
# Changed name_plural
|
|
SELECT NEW.id_interval, 'name_plural', OLD.name_plural, NEW.name_plural, NEW.id_change_set
|
|
WHERE NOT OLD.name_plural <=> NEW.name_plural
|
|
UNION
|
|
# Changed name
|
|
SELECT NEW.id_interval, 'active', OLD.active, NEW.active, NEW.id_change_set
|
|
WHERE NOT OLD.active <=> NEW.active
|
|
;
|
|
END //
|
|
DELIMITER ;
|
|
|
|
# Shop Delivery Region
|
|
|
|
use partsltd_prod;
|
|
|
|
DROP TRIGGER IF EXISTS before_insert_Shop_Region;
|
|
DROP TRIGGER IF EXISTS before_update_Shop_Region;
|
|
|
|
|
|
DELIMITER //
|
|
CREATE TRIGGER before_insert_Shop_Region
|
|
BEFORE INSERT ON Shop_Region
|
|
FOR EACH ROW
|
|
BEGIN
|
|
SET NEW.created_on = NOW();
|
|
SET NEW.created_by = CURRENT_USER();
|
|
END //
|
|
DELIMITER ;
|
|
|
|
|
|
DELIMITER //
|
|
CREATE TRIGGER before_update_Shop_Region
|
|
BEFORE UPDATE ON Shop_Region
|
|
FOR EACH ROW
|
|
BEGIN
|
|
IF OLD.id_change_set <=> NEW.id_change_set THEN
|
|
SIGNAL SQLSTATE '45000'
|
|
SET MESSAGE_TEXT = 'New change Set ID must be provided.';
|
|
END IF;
|
|
|
|
INSERT INTO Shop_Region_Audit (
|
|
id_region,
|
|
name_field,
|
|
value_prev,
|
|
value_new,
|
|
id_change_set
|
|
)
|
|
# Changed code
|
|
SELECT NEW.id_region, 'code', OLD.code, NEW.code, NEW.id_change_set
|
|
WHERE NOT OLD.code <=> NEW.code
|
|
UNION
|
|
# Changed name
|
|
SELECT NEW.id_region, 'name', OLD.name, NEW.name, NEW.id_change_set
|
|
WHERE NOT OLD.name <=> NEW.name
|
|
UNION
|
|
# Changed active
|
|
SELECT NEW.id_region, 'active', CONVERT(OLD.active, CHAR), CONVERT(NEW.active, CHAR), NEW.id_change_set
|
|
WHERE NOT OLD.active <=> NEW.active
|
|
UNION
|
|
# Changed display_order
|
|
SELECT NEW.id_region, 'display_order', CONVERT(OLD.display_order, CHAR), CONVERT(NEW.display_order, CHAR), NEW.id_change_set
|
|
WHERE NOT OLD.display_order <=> NEW.display_order
|
|
;
|
|
END //
|
|
DELIMITER ;
|
|
|
|
# Shop Region Branch
|
|
|
|
use partsltd_prod;
|
|
|
|
DROP TRIGGER IF EXISTS before_insert_Shop_Region_Branch;
|
|
DROP TRIGGER IF EXISTS before_update_Shop_Region_Branch;
|
|
|
|
|
|
DELIMITER //
|
|
CREATE TRIGGER before_insert_Shop_Region_Branch
|
|
BEFORE INSERT ON Shop_Region_Branch
|
|
FOR EACH ROW
|
|
BEGIN
|
|
SET NEW.created_on = NOW();
|
|
SET NEW.created_by = CURRENT_USER();
|
|
END //
|
|
DELIMITER ;
|
|
|
|
|
|
DELIMITER //
|
|
CREATE TRIGGER before_update_Shop_Region_Branch
|
|
BEFORE UPDATE ON Shop_Region_Branch
|
|
FOR EACH ROW
|
|
BEGIN
|
|
IF OLD.id_change_set <=> NEW.id_change_set THEN
|
|
SIGNAL SQLSTATE '45000'
|
|
SET MESSAGE_TEXT = 'New change Set ID must be provided.';
|
|
END IF;
|
|
|
|
INSERT INTO Shop_Region_Branch_Audit (
|
|
id_branch,
|
|
name_field,
|
|
value_prev,
|
|
value_new,
|
|
id_change_set
|
|
)
|
|
/*
|
|
# Changed depth
|
|
SELECT NEW.id_branch, 'depth', CONVERT(OLD.depth, CHAR), CONVERT(NEW.depth, CHAR), NEW.id_change_set
|
|
WHERE NOT OLD.depth <=> NEW.depth
|
|
UNION
|
|
*/
|
|
# Changed active
|
|
SELECT NEW.id_branch, 'active', CONVERT(OLD.active, CHAR), CONVERT(NEW.active, CHAR), NEW.id_change_set
|
|
WHERE NOT OLD.active <=> NEW.active
|
|
UNION
|
|
# Changed display_order
|
|
SELECT NEW.id_branch, 'display_order', CONVERT(OLD.display_order, CHAR), CONVERT(NEW.display_order, CHAR), NEW.id_change_set
|
|
WHERE NOT OLD.display_order <=> NEW.display_order
|
|
;
|
|
END //
|
|
DELIMITER ;
|
|
|
|
# Shop Currency
|
|
|
|
use partsltd_prod;
|
|
|
|
DROP TRIGGER IF EXISTS before_insert_Shop_Currency;
|
|
DROP TRIGGER IF EXISTS before_update_Shop_Currency;
|
|
|
|
|
|
DELIMITER //
|
|
CREATE TRIGGER before_insert_Shop_Currency
|
|
BEFORE INSERT ON Shop_Currency
|
|
FOR EACH ROW
|
|
BEGIN
|
|
IF NEW.created_on <=> NULL THEN
|
|
SET NEW.created_on = NOW();
|
|
END IF;
|
|
IF NEW.created_by <=> NULL THEN
|
|
SET NEW.created_by = CURRENT_USER();
|
|
END IF;
|
|
END //
|
|
DELIMITER ;
|
|
|
|
|
|
DELIMITER //
|
|
CREATE TRIGGER before_update_Shop_Currency
|
|
BEFORE UPDATE ON Shop_Currency
|
|
FOR EACH ROW
|
|
BEGIN
|
|
IF OLD.id_change_set <=> NEW.id_change_set THEN
|
|
SIGNAL SQLSTATE '45000'
|
|
SET MESSAGE_TEXT = 'New change Set ID must be provided.';
|
|
END IF;
|
|
|
|
INSERT INTO Shop_Currency_Audit (
|
|
id_currency,
|
|
name_field,
|
|
value_prev,
|
|
value_new,
|
|
id_change_set
|
|
)
|
|
# Changed code
|
|
SELECT NEW.id_currency, 'code', OLD.code, NEW.code, NEW.id_change_set
|
|
WHERE NOT OLD.code <=> NEW.code
|
|
UNION
|
|
# Changed name
|
|
SELECT NEW.id_currency, 'name', OLD.name, NEW.name, NEW.id_change_set
|
|
WHERE NOT OLD.name <=> NEW.name
|
|
UNION
|
|
# Changed symbol
|
|
SELECT NEW.id_currency, 'symbol', OLD.symbol, NEW.symbol, NEW.id_change_set
|
|
WHERE NOT OLD.symbol <=> NEW.symbol
|
|
UNION
|
|
# Changed ratio_2_GBP
|
|
SELECT NEW.id_currency, 'factor_from_GBP', OLD.factor_from_GBP, NEW.factor_from_GBP, NEW.id_change_set
|
|
WHERE NOT OLD.factor_from_GBP <=> NEW.factor_from_GBP
|
|
UNION
|
|
# Changed active
|
|
SELECT NEW.id_currency, 'active', CONVERT(CONVERT(OLD.active, SIGNED), CHAR), CONVERT(CONVERT(NEW.active, SIGNED), CHAR), NEW.id_change_set
|
|
WHERE NOT (OLD.active <=> NEW.active)
|
|
UNION
|
|
# Changed display_order
|
|
SELECT NEW.id_currency, 'display_order', CONVERT(display_order, CHAR), CONVERT(display_order, CHAR), NEW.id_change_set
|
|
WHERE NOT (OLD.display_order <=> NEW.display_order)
|
|
;
|
|
END //
|
|
DELIMITER ;
|
|
# Shop Tax_Or_Surcharge
|
|
|
|
use partsltd_prod;
|
|
|
|
DROP TRIGGER IF EXISTS before_insert_Shop_Tax_Or_Surcharge;
|
|
DROP TRIGGER IF EXISTS before_update_Shop_Tax_Or_Surcharge;
|
|
|
|
|
|
DELIMITER //
|
|
CREATE TRIGGER before_insert_Shop_Tax_Or_Surcharge
|
|
BEFORE INSERT ON Shop_Tax_Or_Surcharge
|
|
FOR EACH ROW
|
|
BEGIN
|
|
SET NEW.created_on = NOW();
|
|
SET NEW.created_by = CURRENT_USER();
|
|
END //
|
|
DELIMITER ;
|
|
|
|
DELIMITER //
|
|
CREATE TRIGGER before_update_Shop_Tax_Or_Surcharge
|
|
BEFORE UPDATE ON Shop_Tax_Or_Surcharge
|
|
FOR EACH ROW
|
|
BEGIN
|
|
IF OLD.id_change_set <=> NEW.id_change_set THEN
|
|
SIGNAL SQLSTATE '45000'
|
|
SET MESSAGE_TEXT = 'New change Set ID must be provided.';
|
|
END IF;
|
|
|
|
INSERT INTO Shop_Tax_Or_Surcharge_Audit (
|
|
id_tax,
|
|
name_field,
|
|
value_prev,
|
|
value_new,
|
|
id_change_set
|
|
)
|
|
# Changed code
|
|
SELECT NEW.id_tax, 'code', OLD.code, NEW.code, NEW.id_change_set
|
|
WHERE NOT OLD.code <=> NEW.code
|
|
UNION
|
|
# Changed name
|
|
SELECT NEW.id_tax, 'name', OLD.name, NEW.name, NEW.id_change_set
|
|
WHERE NOT OLD.name <=> NEW.name
|
|
UNION
|
|
# Changed fixed_fee
|
|
SELECT NEW.id_tax, 'fixed_fee', OLD.fixed_fee, NEW.fixed_fee, NEW.id_change_set
|
|
WHERE NOT OLD.fixed_fee <=> NEW.fixed_fee
|
|
UNION
|
|
# Changed multiplier
|
|
SELECT NEW.id_tax, 'multiplier', OLD.multiplier, NEW.multiplier, NEW.id_change_set
|
|
WHERE NOT OLD.multiplier <=> NEW.multiplier
|
|
UNION
|
|
# Changed apply_fixed_fee_before_multiplier
|
|
SELECT NEW.id_tax, 'apply_fixed_fee_before_multiplier', CONVERT(CONVERT(OLD.apply_fixed_fee_before_multiplier, SIGNED), CHAR), CONVERT(CONVERT(NEW.apply_fixed_fee_before_multiplier, SIGNED), CHAR), NEW.id_change_set
|
|
WHERE NOT OLD.apply_fixed_fee_before_multiplier <=> NEW.apply_fixed_fee_before_multiplier
|
|
UNION
|
|
# Changed quantity_min
|
|
SELECT NEW.id_tax, 'quantity_min', OLD.quantity_min, NEW.quantity_min, NEW.id_change_set
|
|
WHERE NOT OLD.quantity_min <=> NEW.quantity_min
|
|
UNION
|
|
# Changed quantity_max
|
|
SELECT NEW.id_tax, 'quantity_max', OLD.quantity_max, NEW.quantity_max, NEW.id_change_set
|
|
WHERE NOT OLD.quantity_max <=> NEW.quantity_max
|
|
UNION
|
|
# Changed display_order
|
|
SELECT NEW.id_tax, 'display_order', CONVERT(OLD.display_order, CHAR), CONVERT(NEW.display_order, CHAR), NEW.id_change_set
|
|
WHERE NOT OLD.display_order <=> NEW.display_order
|
|
UNION
|
|
# Changed active
|
|
SELECT NEW.id_tax, 'active', CONVERT(CONVERT(OLD.active, SIGNED), CHAR), CONVERT(CONVERT(NEW.active, SIGNED), CHAR), NEW.id_change_set
|
|
WHERE NOT OLD.active <=> NEW.active
|
|
;
|
|
END //
|
|
DELIMITER ;
|
|
|
|
|
|
# Shop Image Type
|
|
|
|
use partsltd_prod;
|
|
|
|
DROP TRIGGER IF EXISTS before_insert_Shop_Image_Type;
|
|
DROP TRIGGER IF EXISTS before_update_Shop_Image_Type;
|
|
|
|
|
|
DELIMITER //
|
|
CREATE TRIGGER before_insert_Shop_Image_Type
|
|
BEFORE INSERT ON Shop_Image_Type
|
|
FOR EACH ROW
|
|
BEGIN
|
|
SET NEW.created_on = NOW();
|
|
SET NEW.created_by = CURRENT_USER();
|
|
END //
|
|
DELIMITER ;
|
|
|
|
|
|
DELIMITER //
|
|
CREATE TRIGGER before_update_Shop_Image_Type
|
|
BEFORE UPDATE ON Shop_Image_Type
|
|
FOR EACH ROW
|
|
BEGIN
|
|
IF OLD.id_change_set <=> NEW.id_change_set THEN
|
|
SIGNAL SQLSTATE '45000'
|
|
SET MESSAGE_TEXT = 'New change Set ID must be provided.';
|
|
END IF;
|
|
|
|
INSERT INTO Shop_Image_Type_Audit (
|
|
id_type,
|
|
name_field,
|
|
value_prev,
|
|
value_new,
|
|
id_change_set
|
|
)
|
|
# Changed code
|
|
SELECT NEW.id_type, 'code', OLD.code, NEW.code, NEW.id_change_set
|
|
WHERE NOT OLD.code <=> NEW.code
|
|
UNION
|
|
# Changed name
|
|
SELECT NEW.id_type, 'name', OLD.name, NEW.name, NEW.id_change_set
|
|
WHERE NOT OLD.name <=> NEW.name
|
|
UNION
|
|
# Changed name_plural
|
|
SELECT NEW.id_type, 'name_plural', OLD.name_plural, NEW.name_plural, NEW.id_change_set
|
|
WHERE NOT OLD.name_plural <=> NEW.name_plural
|
|
UNION
|
|
# Changed active
|
|
SELECT NEW.id_type, 'active', CONVERT(CONVERT(OLD.active, SIGNED), CHAR), CONVERT(CONVERT(NEW.active, SIGNED), CHAR), NEW.id_change_set
|
|
WHERE NOT (OLD.active <=> NEW.active)
|
|
UNION
|
|
# Changed display_order
|
|
SELECT NEW.id_type, 'display_order', CONVERT(OLD.display_order, CHAR), CONVERT(NEW.display_order, CHAR), NEW.id_change_set
|
|
WHERE NOT (OLD.display_order <=> NEW.display_order)
|
|
;
|
|
END //
|
|
DELIMITER ;
|
|
# Shop Image
|
|
|
|
use partsltd_prod;
|
|
|
|
DROP TRIGGER IF EXISTS before_insert_Shop_Image;
|
|
DROP TRIGGER IF EXISTS before_update_Shop_Image;
|
|
|
|
|
|
DELIMITER //
|
|
CREATE TRIGGER before_insert_Shop_Image
|
|
BEFORE INSERT ON Shop_Image
|
|
FOR EACH ROW
|
|
BEGIN
|
|
SET NEW.created_on = NOW();
|
|
SET NEW.created_by = CURRENT_USER();
|
|
END //
|
|
DELIMITER ;
|
|
|
|
|
|
DELIMITER //
|
|
CREATE TRIGGER before_update_Shop_Image
|
|
BEFORE UPDATE ON Shop_Image
|
|
FOR EACH ROW
|
|
BEGIN
|
|
IF OLD.id_change_set <=> NEW.id_change_set THEN
|
|
SIGNAL SQLSTATE '45000'
|
|
SET MESSAGE_TEXT = 'New change set ID must be provided.';
|
|
END IF;
|
|
IF ISNULL(NEW.id_product) AND ISNULL(NEW.id_permutation) THEN
|
|
SIGNAL SQLSTATE '45000'
|
|
SET MESSAGE_TEXT = 'Image must NOT have ID for product AND product permutation.';
|
|
END IF;
|
|
|
|
INSERT INTO Shop_Image_Audit (
|
|
id_image,
|
|
name_field,
|
|
value_prev,
|
|
value_new,
|
|
id_change_set
|
|
)
|
|
# Changed id_type_image
|
|
SELECT NEW.id_image, 'id_type_image', CONVERT(OLD.id_type_image, CHAR), CONVERT(NEW.id_type_image, CHAR), NEW.id_change_set
|
|
WHERE NOT OLD.id_type_image <=> NEW.id_type_image
|
|
UNION
|
|
# Changed id_type_file
|
|
SELECT NEW.id_image, 'id_type_file', CONVERT(OLD.id_type_file, CHAR), CONVERT(NEW.id_type_file, CHAR), NEW.id_change_set
|
|
WHERE NOT OLD.id_type_file <=> NEW.id_type_file
|
|
UNION
|
|
# Changed id_product
|
|
SELECT NEW.id_image, 'id_product', CONVERT(OLD.id_product, CHAR), CONVERT(NEW.id_product, CHAR), NEW.id_change_set
|
|
WHERE NOT OLD.id_product <=> NEW.id_product
|
|
UNION
|
|
# Changed id_permutation
|
|
SELECT NEW.id_image, 'id_permutation', CONVERT(OLD.id_permutation, CHAR), CONVERT(NEW.id_permutation, CHAR), NEW.id_change_set
|
|
WHERE NOT OLD.id_permutation <=> NEW.id_permutation
|
|
UNION
|
|
# Changed url
|
|
SELECT NEW.id_image, 'url', OLD.url, NEW.url, NEW.id_change_set
|
|
WHERE NOT OLD.url <=> NEW.url
|
|
UNION
|
|
# Changed active
|
|
SELECT NEW.id_image, 'active', CONVERT(CONVERT(OLD.active, SIGNED), CHAR), CONVERT(CONVERT(NEW.active, SIGNED), CHAR), NEW.id_change_set
|
|
WHERE NOT (OLD.active <=> NEW.active)
|
|
UNION
|
|
# Changed display_order
|
|
SELECT NEW.id_image, 'display_order', CONVERT(OLD.display_order, CHAR), CONVERT(NEW.display_order, CHAR), NEW.id_change_set
|
|
WHERE NOT (OLD.display_order <=> NEW.display_order)
|
|
;
|
|
END //
|
|
DELIMITER ;
|
|
|
|
# Shop Permission Group
|
|
|
|
use partsltd_prod;
|
|
|
|
DROP TRIGGER IF EXISTS before_insert_Shop_Permission_Group;
|
|
DROP TRIGGER IF EXISTS before_update_Shop_Permission_Group;
|
|
|
|
|
|
DELIMITER //
|
|
CREATE TRIGGER before_insert_Shop_Permission_Group
|
|
BEFORE INSERT ON Shop_Permission_Group
|
|
FOR EACH ROW
|
|
BEGIN
|
|
IF NEW.created_on <=> NULL THEN
|
|
SET NEW.created_on = NOW();
|
|
END IF;
|
|
IF NEW.created_by <=> NULL THEN
|
|
SET NEW.created_by = CURRENT_USER();
|
|
END IF;
|
|
END //
|
|
DELIMITER ;
|
|
|
|
|
|
DELIMITER //
|
|
CREATE TRIGGER before_update_Shop_Permission_Group
|
|
BEFORE UPDATE ON Shop_Permission_Group
|
|
FOR EACH ROW
|
|
BEGIN
|
|
IF OLD.id_change_set <=> NEW.id_change_set THEN
|
|
SIGNAL SQLSTATE '45000'
|
|
SET MESSAGE_TEXT = 'New change Set ID must be provided.';
|
|
END IF;
|
|
|
|
INSERT INTO Shop_Permission_Group_Audit (
|
|
id_group,
|
|
name_field,
|
|
value_prev,
|
|
value_new,
|
|
id_change_set
|
|
)
|
|
# Changed code
|
|
SELECT NEW.id_group, 'code', OLD.code, NEW.code, NEW.id_change_set
|
|
WHERE NOT OLD.code <=> NEW.code
|
|
UNION
|
|
# Changed name
|
|
SELECT NEW.id_group, 'name', OLD.name, NEW.name, NEW.id_change_set
|
|
WHERE NOT OLD.name <=> NEW.name
|
|
UNION
|
|
# Changed active
|
|
SELECT NEW.id_group, 'active', CONVERT(CONVERT(OLD.active, SIGNED), CHAR), CONVERT(CONVERT(NEW.active, SIGNED), CHAR), NEW.id_change_set
|
|
WHERE NOT (OLD.active <=> NEW.active)
|
|
UNION
|
|
# Changed display_order
|
|
SELECT NEW.id_group, 'display_order', CONVERT(OLD.display_order, CHAR), CONVERT(NEW.display_order, CHAR), NEW.id_change_set
|
|
WHERE NOT OLD.display_order <=> NEW.display_order
|
|
;
|
|
END //
|
|
DELIMITER ;
|
|
# Shop Permission
|
|
|
|
use partsltd_prod;
|
|
|
|
DROP TRIGGER IF EXISTS before_insert_Shop_Permission;
|
|
DROP TRIGGER IF EXISTS before_update_Shop_Permission;
|
|
|
|
|
|
DELIMITER //
|
|
CREATE TRIGGER before_insert_Shop_Permission
|
|
BEFORE INSERT ON Shop_Permission
|
|
FOR EACH ROW
|
|
BEGIN
|
|
IF NEW.created_on <=> NULL THEN
|
|
SET NEW.created_on = NOW();
|
|
END IF;
|
|
IF NEW.created_by <=> NULL THEN
|
|
SET NEW.created_by = CURRENT_USER();
|
|
END IF;
|
|
END //
|
|
DELIMITER ;
|
|
|
|
|
|
DELIMITER //
|
|
CREATE TRIGGER before_update_Shop_Permission
|
|
BEFORE UPDATE ON Shop_Permission
|
|
FOR EACH ROW
|
|
BEGIN
|
|
IF OLD.id_change_set <=> NEW.id_change_set THEN
|
|
SIGNAL SQLSTATE '45000'
|
|
SET MESSAGE_TEXT = 'New change Set ID must be provided.';
|
|
END IF;
|
|
|
|
INSERT INTO Shop_Permission_Audit (
|
|
id_permission,
|
|
name_field,
|
|
value_prev,
|
|
value_new,
|
|
id_change_set
|
|
)
|
|
# Changed code
|
|
SELECT NEW.id_permission, 'code', OLD.code, NEW.code, NEW.id_change_set
|
|
WHERE NOT OLD.code <=> NEW.code
|
|
UNION
|
|
# Changed name
|
|
SELECT NEW.id_permission, 'name', OLD.name, NEW.name, NEW.id_change_set
|
|
WHERE NOT OLD.name <=> NEW.name
|
|
UNION
|
|
# Changed id_permission_group
|
|
SELECT NEW.id_permission, 'id_permission_group', CONVERT(OLD.id_permission_group, CHAR), CONVERT(NEW.id_permission_group, CHAR), NEW.id_change_set
|
|
WHERE NOT OLD.id_permission_group <=> NEW.id_permission_group
|
|
UNION
|
|
# Changed Id_access_level_required
|
|
SELECT NEW.id_permission, 'Id_access_level_required', CONVERT(OLD.Id_access_level_required, CHAR), CONVERT(NEW.Id_access_level_required, CHAR), NEW.id_change_set
|
|
WHERE NOT OLD.Id_access_level_required <=> NEW.Id_access_level_required
|
|
UNION
|
|
# Changed active
|
|
SELECT NEW.id_permission, 'active', CONVERT(CONVERT(OLD.active, SIGNED), CHAR), CONVERT(CONVERT(NEW.active, SIGNED), CHAR), NEW.id_change_set
|
|
WHERE NOT (OLD.active <=> NEW.active)
|
|
UNION
|
|
# Changed display_order
|
|
SELECT NEW.id_permission, 'display_order', CONVERT(OLD.display_order, CHAR), CONVERT(NEW.display_order, CHAR), NEW.id_change_set
|
|
WHERE NOT OLD.display_order <=> NEW.display_order
|
|
;
|
|
END //
|
|
DELIMITER ;
|
|
# Shop Role
|
|
|
|
use partsltd_prod;
|
|
|
|
DROP TRIGGER IF EXISTS before_insert_Shop_Role;
|
|
DROP TRIGGER IF EXISTS before_update_Shop_Role;
|
|
|
|
|
|
DELIMITER //
|
|
CREATE TRIGGER before_insert_Shop_Role
|
|
BEFORE INSERT ON Shop_Role
|
|
FOR EACH ROW
|
|
BEGIN
|
|
IF NEW.created_on <=> NULL THEN
|
|
SET NEW.created_on = NOW();
|
|
END IF;
|
|
IF NEW.created_by <=> NULL THEN
|
|
SET NEW.created_by = CURRENT_USER();
|
|
END IF;
|
|
END //
|
|
DELIMITER ;
|
|
|
|
|
|
DELIMITER //
|
|
CREATE TRIGGER before_update_Shop_Role
|
|
BEFORE UPDATE ON Shop_Role
|
|
FOR EACH ROW
|
|
BEGIN
|
|
IF OLD.id_change_set <=> NEW.id_change_set THEN
|
|
SIGNAL SQLSTATE '45000'
|
|
SET MESSAGE_TEXT = 'New change Set ID must be provided.';
|
|
END IF;
|
|
|
|
INSERT INTO Shop_Role_Audit (
|
|
id_role,
|
|
name_field,
|
|
value_prev,
|
|
value_new,
|
|
id_change_set
|
|
)
|
|
# Changed code
|
|
SELECT NEW.id_role, 'code', OLD.code, NEW.code, NEW.id_change_set
|
|
WHERE NOT OLD.code <=> NEW.code
|
|
UNION
|
|
# Changed name
|
|
SELECT NEW.id_role, 'name', OLD.name, NEW.name, NEW.id_change_set
|
|
WHERE NOT OLD.name <=> NEW.name
|
|
UNION
|
|
# Changed active
|
|
SELECT NEW.id_role, 'active', CONVERT(CONVERT(OLD.active, SIGNED), CHAR), CONVERT(CONVERT(NEW.active, SIGNED), CHAR), NEW.id_change_set
|
|
WHERE NOT (OLD.active <=> NEW.active)
|
|
UNION
|
|
# Changed display_order
|
|
SELECT NEW.id_role, 'display_order', CONVERT(OLD.display_order, CHAR), CONVERT(NEW.display_order, CHAR), NEW.id_change_set
|
|
WHERE NOT OLD.display_order <=> NEW.display_order
|
|
;
|
|
END //
|
|
DELIMITER ;
|
|
|
|
# Shop Role Permission Link
|
|
|
|
use partsltd_prod;
|
|
|
|
DROP TRIGGER IF EXISTS before_insert_Shop_Role_Permission_Link;
|
|
DROP TRIGGER IF EXISTS before_update_Shop_Role_Permission_Link;
|
|
|
|
|
|
DELIMITER //
|
|
CREATE TRIGGER before_insert_Shop_Role_Permission_Link
|
|
BEFORE INSERT ON Shop_Role_Permission_Link
|
|
FOR EACH ROW
|
|
BEGIN
|
|
IF NEW.created_on <=> NULL THEN
|
|
SET NEW.created_on = NOW();
|
|
END IF;
|
|
IF NEW.created_by <=> NULL THEN
|
|
SET NEW.created_by = CURRENT_USER();
|
|
END IF;
|
|
END //
|
|
DELIMITER ;
|
|
|
|
|
|
DELIMITER //
|
|
CREATE TRIGGER before_update_Shop_Role_Permission_Link
|
|
BEFORE UPDATE ON Shop_Role_Permission_Link
|
|
FOR EACH ROW
|
|
BEGIN
|
|
IF OLD.id_change_set <=> NEW.id_change_set THEN
|
|
SIGNAL SQLSTATE '45000'
|
|
SET MESSAGE_TEXT = 'New change Set ID must be provided.';
|
|
END IF;
|
|
|
|
INSERT INTO Shop_Role_Permission_Link_Audit (
|
|
id_link,
|
|
name_field,
|
|
value_prev,
|
|
value_new,
|
|
id_change_set
|
|
)
|
|
/*
|
|
# Changed id_role
|
|
SELECT NEW.id_link, 'id_role', CONVERT(OLD.id_role, CHAR), CONVERT(NEW.id_role, CHAR), NEW.id_change_set
|
|
WHERE NOT OLD.id_role <=> NEW.id_role
|
|
UNION
|
|
# Changed id_permission
|
|
SELECT NEW.id_link, 'id_permission', CONVERT(OLD.id_permission, CHAR), CONVERT(NEW.id_permission, CHAR), NEW.id_change_set
|
|
WHERE NOT OLD.id_permission <=> NEW.id_permission
|
|
UNION
|
|
*/
|
|
# Changed id_access_level
|
|
SELECT NEW.id_link, 'id_access_level', CONVERT(OLD.id_access_level, CHAR), CONVERT(NEW.id_access_level, CHAR), NEW.id_change_set
|
|
WHERE NOT OLD.id_access_level <=> NEW.id_access_level
|
|
UNION
|
|
# Changed active
|
|
SELECT NEW.id_link, 'active', CONVERT(CONVERT(OLD.active, SIGNED), CHAR), CONVERT(CONVERT(NEW.active, SIGNED), CHAR), NEW.id_change_set
|
|
WHERE NOT (OLD.active <=> NEW.active)
|
|
;
|
|
END //
|
|
DELIMITER ;
|
|
|
|
# Shop User
|
|
|
|
use partsltd_prod;
|
|
|
|
DROP TRIGGER IF EXISTS before_insert_Shop_User;
|
|
DROP TRIGGER IF EXISTS before_update_Shop_User;
|
|
|
|
|
|
DELIMITER //
|
|
CREATE TRIGGER before_insert_Shop_User
|
|
BEFORE INSERT ON Shop_User
|
|
FOR EACH ROW
|
|
BEGIN
|
|
IF NEW.created_on <=> NULL THEN
|
|
SET NEW.created_on = NOW();
|
|
END IF;
|
|
IF NEW.created_by <=> NULL THEN
|
|
SET NEW.created_by = CURRENT_USER();
|
|
END IF;
|
|
END //
|
|
DELIMITER ;
|
|
|
|
|
|
DELIMITER //
|
|
CREATE TRIGGER before_update_Shop_User
|
|
BEFORE UPDATE ON Shop_User
|
|
FOR EACH ROW
|
|
BEGIN
|
|
IF OLD.id_change_set <=> NEW.id_change_set THEN
|
|
SIGNAL SQLSTATE '45000'
|
|
SET MESSAGE_TEXT = 'New change Set ID must be provided.';
|
|
END IF;
|
|
|
|
INSERT INTO Shop_User_Audit (
|
|
id_user,
|
|
name_field,
|
|
value_prev,
|
|
value_new,
|
|
id_change_set
|
|
)
|
|
# Changed name
|
|
SELECT NEW.id_user, 'name', OLD.name, NEW.name, NEW.id_change_set
|
|
WHERE NOT (OLD.name <=> NEW.name)
|
|
UNION
|
|
# Changed is_super_user
|
|
SELECT NEW.id_user, 'is_super_user', CONVERT(CONVERT(OLD.is_super_user, SIGNED), CHAR), CONVERT(CONVERT(NEW.is_super_user, SIGNED), CHAR), NEW.id_change_set
|
|
WHERE NOT (OLD.is_super_user <=> NEW.is_super_user)
|
|
UNION
|
|
# Changed active
|
|
SELECT NEW.id_user, 'active', CONVERT(CONVERT(OLD.active, SIGNED), CHAR), CONVERT(CONVERT(NEW.active, SIGNED), CHAR), NEW.id_change_set
|
|
WHERE NOT (OLD.active <=> NEW.active)
|
|
;
|
|
END //
|
|
DELIMITER ;
|
|
# Shop User Role Link
|
|
|
|
use partsltd_prod;
|
|
|
|
DROP TRIGGER IF EXISTS before_insert_Shop_User_Role_Link;
|
|
DROP TRIGGER IF EXISTS before_update_Shop_User_Role_Link;
|
|
|
|
|
|
DELIMITER //
|
|
CREATE TRIGGER before_insert_Shop_User_Role_Link
|
|
BEFORE INSERT ON Shop_User_Role_Link
|
|
FOR EACH ROW
|
|
BEGIN
|
|
IF NEW.created_on <=> NULL THEN
|
|
SET NEW.created_on = NOW();
|
|
END IF;
|
|
IF NEW.created_by <=> NULL THEN
|
|
SET NEW.created_by = CURRENT_USER();
|
|
END IF;
|
|
END //
|
|
DELIMITER ;
|
|
|
|
|
|
DELIMITER //
|
|
CREATE TRIGGER before_update_Shop_User_Role_Link
|
|
BEFORE UPDATE ON Shop_User_Role_Link
|
|
FOR EACH ROW
|
|
BEGIN
|
|
IF OLD.id_change_set <=> NEW.id_change_set THEN
|
|
SIGNAL SQLSTATE '45000'
|
|
SET MESSAGE_TEXT = 'New change Set ID must be provided.';
|
|
END IF;
|
|
|
|
INSERT INTO Shop_User_Role_Link_Audit (
|
|
id_link,
|
|
name_field,
|
|
value_prev,
|
|
value_new,
|
|
id_change_set
|
|
)
|
|
# Changed active
|
|
SELECT NEW.id_link, 'active', CONVERT(CONVERT(OLD.active, SIGNED), CHAR), CONVERT(CONVERT(NEW.active, SIGNED), CHAR), NEW.id_change_set
|
|
WHERE NOT (OLD.active <=> NEW.active)
|
|
;
|
|
END //
|
|
DELIMITER ;
|
|
# Shop Address
|
|
|
|
use partsltd_prod;
|
|
|
|
DROP TRIGGER IF EXISTS before_insert_Shop_Address;
|
|
DROP TRIGGER IF EXISTS before_update_Shop_Address;
|
|
|
|
|
|
DELIMITER //
|
|
CREATE TRIGGER before_insert_Shop_Address
|
|
BEFORE INSERT ON Shop_Address
|
|
FOR EACH ROW
|
|
BEGIN
|
|
IF NEW.created_on <=> NULL THEN
|
|
SET NEW.created_on = NOW();
|
|
END IF;
|
|
IF NEW.created_by <=> NULL THEN
|
|
SET NEW.created_by = CURRENT_USER();
|
|
END IF;
|
|
END //
|
|
DELIMITER ;
|
|
|
|
|
|
DELIMITER //
|
|
CREATE TRIGGER before_update_Shop_Address
|
|
BEFORE UPDATE ON Shop_Address
|
|
FOR EACH ROW
|
|
BEGIN
|
|
IF OLD.id_change_set <=> NEW.id_change_set THEN
|
|
SIGNAL SQLSTATE '45000'
|
|
SET MESSAGE_TEXT = 'New change Set ID must be provided.';
|
|
END IF;
|
|
|
|
INSERT INTO Shop_Address_Audit (
|
|
id_address,
|
|
name_field,
|
|
value_prev,
|
|
value_new,
|
|
id_change_set
|
|
)
|
|
# Changed region
|
|
SELECT NEW.id_address, 'id_region', OLD.id_region, NEW.id_region, NEW.id_change_set
|
|
WHERE NOT OLD.id_region <=> NEW.id_region
|
|
UNION
|
|
# Changed name_full
|
|
SELECT NEW.id_address, 'name_full', OLD.name_full, NEW.name_full, NEW.id_change_set
|
|
WHERE NOT OLD.name_full <=> NEW.name_full
|
|
UNION
|
|
# Changed phone_number
|
|
SELECT NEW.id_address, 'phone_number', OLD.phone_number, NEW.phone_number, NEW.id_change_set
|
|
WHERE NOT OLD.phone_number <=> NEW.phone_number
|
|
UNION
|
|
# Changed postcode
|
|
SELECT NEW.id_address, 'postcode', OLD.postcode, NEW.postcode, NEW.id_change_set
|
|
WHERE NOT OLD.postcode <=> NEW.postcode
|
|
UNION
|
|
# Changed address_line_1
|
|
SELECT NEW.id_address, 'address_line_1', OLD.address_line_1, NEW.address_line_1, NEW.id_change_set
|
|
WHERE NOT OLD.address_line_1 <=> NEW.address_line_1
|
|
UNION
|
|
# Changed address_line_2
|
|
SELECT NEW.id_address, 'address_line_2', OLD.address_line_2, NEW.address_line_2, NEW.id_change_set
|
|
WHERE NOT OLD.address_line_2 <=> NEW.address_line_2
|
|
UNION
|
|
# Changed city
|
|
SELECT NEW.id_address, 'city', OLD.city, NEW.city, NEW.id_change_set
|
|
WHERE NOT OLD.city <=> NEW.city
|
|
UNION
|
|
# Changed county
|
|
SELECT NEW.id_address, 'county', OLD.county, NEW.county, NEW.id_change_set
|
|
WHERE NOT OLD.county <=> NEW.county
|
|
UNION
|
|
# Changed active
|
|
SELECT NEW.id_address, 'active', CONVERT(CONVERT(OLD.active, SIGNED), CHAR), CONVERT(CONVERT(NEW.active, SIGNED), CHAR), NEW.id_change_set
|
|
WHERE NOT (OLD.active <=> NEW.active)
|
|
;
|
|
END //
|
|
DELIMITER ;
|
|
|
|
|
|
-- Clear previous proc
|
|
DROP PROCEDURE IF EXISTS p_shop_edit_user;
|
|
|
|
|
|
DELIMITER //
|
|
CREATE PROCEDURE p_shop_edit_user (
|
|
IN a_id_user VARCHAR(200),
|
|
IN a_name VARCHAR(255),
|
|
IN a_email VARCHAR(254),
|
|
IN a_email_verified BIT
|
|
)
|
|
BEGIN
|
|
-- Argument redeclaration
|
|
-- Variable declaration
|
|
DECLARE v_has_filter_user BIT;
|
|
-- DECLARE v_now DATETIME;
|
|
|
|
|
|
-- Argument validation + default values
|
|
IF a_id_user IS NULL THEN
|
|
SET a_id_user = '';
|
|
ELSE
|
|
SET a_id_user = TRIM(a_id_user);
|
|
END IF;
|
|
IF a_name IS NULL THEN
|
|
SET a_name = '';
|
|
ELSE
|
|
SET a_name = TRIM(a_name);
|
|
END IF;
|
|
IF a_email IS NULL THEN
|
|
SET a_email = '';
|
|
ELSE
|
|
SET a_email = TRIM(a_email);
|
|
END IF;
|
|
IF a_email_verified IS NULL THEN
|
|
SET a_email_verified = 0;
|
|
END IF;
|
|
|
|
-- Temporary tables
|
|
DROP TABLE IF EXISTS tmp_Msg_Error;
|
|
DROP TABLE IF EXISTS tmp_Shop_User;
|
|
|
|
CREATE TABLE tmp_Shop_User (
|
|
id_user VARCHAR(200) NOT NULL,
|
|
CONSTRAINT FK_tmp_Shop_User_id_user
|
|
FOREIGN KEY (id_user)
|
|
REFERENCES Shop_User(id_user),
|
|
active BIT NOT NULL
|
|
);
|
|
|
|
CREATE TABLE tmp_Msg_Error (
|
|
display_order INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
|
|
id_type INT NOT NULL,
|
|
# code VARCHAR(50) NOT NULL,
|
|
# CONSTRAINT chk_tmp_Msg_Error_code CHECK (code IN (SELECT code FROM Shop_Msg_Error_Type)),
|
|
CONSTRAINT FK_tmp_Msg_Error_id_type
|
|
FOREIGN KEY (id_type)
|
|
REFERENCES Shop_Msg_Error_Type(id_type),
|
|
msg VARCHAR(4000) NOT NULL
|
|
);
|
|
|
|
|
|
-- Parse filters
|
|
SET v_has_filter_user = CASE WHEN a_id_user = '' THEN 0 ELSE 1 END;
|
|
|
|
|
|
-- User
|
|
IF v_has_filter_user THEN
|
|
INSERT INTO tmp_Shop_User (
|
|
id_user,
|
|
active
|
|
)
|
|
SELECT id_user,
|
|
active
|
|
FROM Shop_User
|
|
WHERE id_user LIKE CONCAT('%', a_id_user, '%')
|
|
AND active
|
|
LIMIT 1
|
|
;
|
|
|
|
IF NOT EXISTS (SELECT id_user FROM tmp_Shop_User LIMIT 1) THEN
|
|
INSERT INTO Shop_User (
|
|
id_user,
|
|
name,
|
|
email,
|
|
email_verified
|
|
)
|
|
VALUES (
|
|
a_id_user,
|
|
a_name,
|
|
a_email,
|
|
a_email_verified
|
|
);
|
|
|
|
INSERT INTO tmp_Shop_User (
|
|
id_user,
|
|
active
|
|
)
|
|
SELECT id_user,
|
|
active
|
|
FROM Shop_User
|
|
WHERE id_user LIKE CONCAT('%', a_id_user, '%')
|
|
AND active
|
|
LIMIT 1
|
|
;
|
|
END IF;
|
|
|
|
SET a_id_user := (SELECT id_user FROM tmp_Shop_User LIMIT 1);
|
|
ELSE
|
|
INSERT INTO tmp_Msg_Error (
|
|
id_type,
|
|
msg
|
|
)
|
|
VALUES (
|
|
(SELECT id_type FROM Shop_Msg_Error_Type WHERE code = 'BAD_DATA' LIMIT 1),
|
|
'No user ID provided.'
|
|
)
|
|
;
|
|
END IF;
|
|
|
|
|
|
/*
|
|
IF NOT EXISTS (SELECT msg FROM tmp_Msg_Error LIMIT 1) THEN
|
|
END IF;
|
|
*/
|
|
|
|
|
|
-- Returns
|
|
# User
|
|
SELECT *
|
|
FROM tmp_Shop_User
|
|
;
|
|
|
|
# Errors
|
|
SELECT *
|
|
FROM tmp_Msg_Error
|
|
;
|
|
|
|
/*
|
|
# Return arguments for test
|
|
SELECT a_id_user,
|
|
a_name,
|
|
a_email,
|
|
a_email_verified
|
|
;
|
|
*/
|
|
|
|
-- Clean up
|
|
DROP TABLE IF EXISTS tmp_Msg_Error;
|
|
DROP TABLE IF EXISTS tmp_Shop_User;
|
|
END //
|
|
DELIMITER ;
|
|
|
|
|
|
-- Clear previous proc
|
|
DROP PROCEDURE IF EXISTS p_shop_get_many_currency;
|
|
|
|
|
|
DELIMITER //
|
|
CREATE PROCEDURE p_shop_get_many_currency (
|
|
IN a_get_inactive_currency BIT
|
|
)
|
|
BEGIN
|
|
IF a_get_inactive_currency IS NULL THEN
|
|
SET a_get_inactive_currency = 0;
|
|
END IF;
|
|
|
|
SELECT
|
|
C.id_currency,
|
|
C.code,
|
|
C.name,
|
|
C.factor_from_GBP,
|
|
C.active,
|
|
C.display_order
|
|
FROM Shop_Currency C
|
|
WHERE a_get_inactive_currency
|
|
OR C.active
|
|
ORDER BY C.display_order
|
|
;
|
|
END //
|
|
DELIMITER ;
|
|
|
|
|
|
CALL p_shop_get_many_currency (
|
|
0 # a_get_inactive_currency
|
|
);
|
|
|
|
use partsltd_prod;
|
|
|
|
/*
|
|
|
|
CALL p_shop_get_many_region (
|
|
0 # a_get_inactive_region
|
|
)
|
|
|
|
*/
|
|
|
|
|
|
-- Clear previous proc
|
|
DROP PROCEDURE IF EXISTS p_shop_get_many_region;
|
|
|
|
|
|
DELIMITER //
|
|
CREATE PROCEDURE p_shop_get_many_region (
|
|
IN a_get_inactive_region BIT
|
|
)
|
|
BEGIN
|
|
IF a_get_inactive_region IS NULL THEN
|
|
SET a_get_inactive_region = 0;
|
|
END IF;
|
|
|
|
SELECT
|
|
R.id_region,
|
|
R.code,
|
|
R.name,
|
|
R.active,
|
|
R.display_order
|
|
FROM Shop_Region R
|
|
WHERE a_get_inactive_region
|
|
OR R.active
|
|
ORDER BY R.display_order
|
|
;
|
|
END //
|
|
DELIMITER ;
|
|
|
|
CALL p_shop_get_many_region (
|
|
0 # a_get_inactive_region
|
|
);
|
|
|
|
use partsltd_prod;
|
|
|
|
/*
|
|
|
|
CALL p_shop_edit_user_basket (
|
|
'', # a_id_user
|
|
'', # a_ids_permutation_basket
|
|
'', # a_quantities_permutation_basket
|
|
1, # a_id_permutation_edit
|
|
NULL, # a_quantity_permutation_edit
|
|
1, # a_sum_not_edit
|
|
1, # a_id_currency_edit
|
|
1 # a_id_region_purchase
|
|
)
|
|
|
|
*/
|
|
|
|
|
|
# Access Levels
|
|
INSERT INTO Shop_Access_Level (
|
|
display_order, code, name, priority
|
|
)
|
|
VALUES
|
|
(1, 'VIEW', 'View', 3),
|
|
(2, 'EDIT', 'Edit', 2),
|
|
(3, 'ADMIN', 'Admin', 1)
|
|
;
|
|
|
|
# Error Message Types
|
|
INSERT INTO Shop_Msg_Error_Type (
|
|
code, name, description
|
|
)
|
|
VALUES
|
|
('BAD_DATA', 'Invalid data', 'Rubbish data'),
|
|
('NO_PERMISSION', 'No permission', 'Not authorised'),
|
|
('PRODUCT_AVAILABILITY', 'Product not available', 'Product not available')
|
|
;
|
|
|
|
# File Types
|
|
INSERT INTO File_Type (
|
|
code, name, extension
|
|
)
|
|
VALUES
|
|
('JPEG', 'Joint Photographic Export Group', 'jpg'),
|
|
('PNG', 'Portable Network Graphic', 'png'),
|
|
('GIF', 'GIF', 'gif'),
|
|
('MPEG-4', 'Multimedia Photographic Export Group 4', 'mp4')
|
|
;
|
|
|
|
# Generic / shared properties
|
|
INSERT INTO Shop_General (
|
|
quantity_max
|
|
)
|
|
VALUES (
|
|
10
|
|
);
|
|
|
|
# Recurrence Interval
|
|
INSERT INTO Shop_Recurrence_Interval (
|
|
code, name, name_plural
|
|
)
|
|
VALUES
|
|
('WEEK', 'Week', 'Weeks'),
|
|
('MONTH', 'Month', 'Months'),
|
|
('YEAR', 'Year', 'Years')
|
|
;
|
|
|
|
INSERT INTO Shop_Region (
|
|
display_order, code, name
|
|
)
|
|
VALUES
|
|
(1, 'UK', 'United Kingdom')
|
|
;
|
|
|
|
/*
|
|
INSERT INTO Shop_Region_Branch (
|
|
display_order, id_region_parent, id_region_child
|
|
)
|
|
VALUES
|
|
(1, 1, 2)
|
|
;
|
|
*/
|
|
|
|
# Currency
|
|
INSERT INTO Shop_Currency (
|
|
display_order, code, name, symbol, factor_from_GBP
|
|
)
|
|
VALUES
|
|
(1, 'GBP', 'Great British Pound', '£', 1),
|
|
(2, 'EUR', 'Euro', '€', 1.17)
|
|
;
|
|
|
|
# Taxes and Surcharges
|
|
INSERT INTO Shop_Tax_Or_Surcharge (
|
|
display_order,
|
|
id_tax,
|
|
code,
|
|
name,
|
|
id_region_buyer,
|
|
id_region_seller,
|
|
fixed_fee,
|
|
multiplier,
|
|
apply_fixed_fee_before_multiplier,
|
|
quantity_min,
|
|
quantity_max
|
|
)
|
|
VALUES
|
|
(1, 1, 'VAT', 'Value Added Tax', 1, 1, 0, 0.2, 1, 0, 1)
|
|
;
|
|
|
|
# Permission Groups
|
|
INSERT INTO Shop_Permission_Group (
|
|
display_order, code, name
|
|
)
|
|
VALUES
|
|
(0, 'ADMIN', 'Website Admin'),
|
|
(1, 'HOME', 'Home, Contact Us, and other public information'),
|
|
(2, 'PRODUCT', 'Store Products'),
|
|
(3, 'USER', 'Store User')
|
|
;
|
|
|
|
# Permissions
|
|
INSERT INTO Shop_Permission (
|
|
display_order, code, name, id_permission_group, id_access_level_required
|
|
)
|
|
VALUES
|
|
(1, 'HOME', 'Home Page', 2, 1),
|
|
(2, 'STORE_PRODUCT', 'Store Product Page', 3, 1),
|
|
(3, 'STORE_USER', 'Store User Account Page', 4, 2),
|
|
(4, 'STORE_ADMIN', 'Store Admin Page', 1, 3),
|
|
(99, 'CONTACT_US', 'Contact Us Page', 2, 1)
|
|
;
|
|
|
|
# Roles
|
|
INSERT INTO Shop_Role (
|
|
display_order,
|
|
code,
|
|
name
|
|
)
|
|
VALUES
|
|
(1, 'DIRECTOR', 'Director'),
|
|
(2, 'USER', 'User')
|
|
;
|
|
|
|
# Role Permission link
|
|
INSERT INTO Shop_Role_Permission_Link (
|
|
id_role, id_permission, id_access_level
|
|
)
|
|
VALUES
|
|
(1, 1, 3),
|
|
(1, 2, 3),
|
|
(1, 3, 3),
|
|
(1, 4, 3),
|
|
(1, 5, 3),
|
|
(2, 1, 1),
|
|
(2, 2, 1),
|
|
(2, 3, 1),
|
|
(2, 4, 1),
|
|
(2, 5, 1)
|
|
;
|
|
|
|
# Users
|
|
INSERT INTO Shop_User (
|
|
id_user,
|
|
name,
|
|
email,
|
|
# email_verified,
|
|
is_super_user
|
|
)
|
|
VALUES
|
|
('auth0|6582b95c895d09a70ba10fef', 'Teddy', 'edward.middletonsmith@gmail.com', 1),
|
|
('parts_guest', 'Guest', '', 0)
|
|
;
|
|
|
|
# User Role link
|
|
INSERT INTO Shop_User_Role_Link (
|
|
id_user, id_role
|
|
)
|
|
VALUES
|
|
('auth0|6582b95c895d09a70ba10fef', 1)
|
|
;
|
|
|
|
# Addresses
|
|
INSERT INTO Shop_Address (
|
|
id_user, id_region, name_full, phone_number, postcode, address_line_1, address_line_2, city, county
|
|
)
|
|
SELECT U.id_user, 1, U.name, '07375 571430', 'NN6 6EB', 'The Laurels', 'Cold Ashby Road', 'Cold Ashby', 'Northamptonshire'
|
|
FROM Shop_User U
|
|
;
|
|
|
|
use partsltd_prod;
|
|
|
|
# Product Change Sets
|
|
SELECT * FROM Shop_Product_Change_Set;
|
|
|
|
# User Change Sets
|
|
SELECT * FROM Shop_User_Change_Set;
|
|
|
|
# Access Levels
|
|
SELECT * FROM Shop_Access_Level;
|
|
SELECT * FROM Shop_Access_Level_Audit;
|
|
|
|
# Error Message type
|
|
SELECT * FROM Shop_Msg_Error_Type;
|
|
|
|
# File Types
|
|
SELECT * FROM File_Type;
|
|
SELECT * FROM File_Type_Audit;
|
|
|
|
# Generic / shared properties
|
|
SELECT * FROM Shop_General;
|
|
SELECT * FROM Shop_General_Audit;
|
|
|
|
# Recurrence Interval
|
|
SELECT * FROM Shop_Recurrence_Interval;
|
|
SELECT * FROM Shop_Recurrence_Interval_Audit;
|
|
|
|
# Region
|
|
SELECT * FROM Shop_Region;
|
|
SELECT * FROM Shop_Region_Audit;
|
|
|
|
# Region Branch
|
|
SELECT * FROM Shop_Region_Branch;
|
|
SELECT * FROM Shop_Region_Branch_Audit;
|
|
|
|
# Currency
|
|
SELECT * FROM Shop_Currency;
|
|
SELECT * FROM Shop_Currency_Audit;
|
|
|
|
# Taxes and Surcharges
|
|
SELECT * FROM Shop_Tax_Or_Surcharge;
|
|
SELECT * FROM Shop_Tax_Or_Surcharge_Audit;
|
|
|
|
# Image Types
|
|
SELECT * FROM Shop_Image_Type;
|
|
SELECT * FROM Shop_Image_Type_Audit;
|
|
|
|
# Images
|
|
SELECT * FROM Shop_Image;
|
|
SELECT * FROM Shop_Image_Audit;
|
|
|
|
|
|
# Permission Groups
|
|
SELECT * FROM Shop_Permission_Group;
|
|
SELECT * FROM Shop_Permission_Group_Audit;
|
|
|
|
# Permissions
|
|
SELECT * FROM Shop_Permission;
|
|
SELECT * FROM Shop_Permission_Audit;
|
|
|
|
# Roles
|
|
SELECT * FROM Shop_Role;
|
|
SELECT * FROM Shop_Role_Audit;
|
|
|
|
# Role Permission link
|
|
SELECT * FROM Shop_Role_Permission_Link;
|
|
SELECT * FROM Shop_Role_Permission_Link_Audit;
|
|
|
|
# Users
|
|
SELECT * FROM Shop_User;
|
|
SELECT * FROM Shop_User_Audit;
|
|
|
|
# User Role link
|
|
SELECT * FROM Shop_User_Role_Link;
|
|
SELECT * FROM Shop_User_Role_Link_Audit;
|
|
|
|
|
|
# Addresses
|
|
SELECT * FROM Shop_Address;
|
|
SELECT * FROM Shop_Address_Audit;
|
|
|
|
|
|
SELECT 'FINISHED BOI'; |