73 lines
2.2 KiB
SQL
73 lines
2.2 KiB
SQL
|
|
# Shop Customer
|
|
|
|
|
|
|
|
DROP TRIGGER IF EXISTS before_insert_Shop_Customer;
|
|
DROP TRIGGER IF EXISTS before_update_Shop_Customer;
|
|
|
|
|
|
DELIMITER //
|
|
CREATE TRIGGER before_insert_Shop_Customer
|
|
BEFORE INSERT ON Shop_Customer
|
|
FOR EACH ROW
|
|
BEGIN
|
|
SET NEW.created_on := IFNULL(NEW.created_on, NOW());
|
|
SET NEW.created_by := IFNULL(NEW.created_by, IFNULL((SELECT id_user FROM Shop_User WHERE firstname = CURRENT_USER()), -1));
|
|
END //
|
|
DELIMITER ;;
|
|
|
|
|
|
DELIMITER //
|
|
CREATE TRIGGER before_update_Shop_Customer
|
|
BEFORE UPDATE ON Shop_Customer
|
|
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_Customer_Audit (
|
|
id_customer,
|
|
name_field,
|
|
value_prev,
|
|
value_new,
|
|
id_change_set
|
|
)
|
|
# Changed name_company
|
|
SELECT NEW.id_customer, 'name_company', OLD.name_company, NEW.name_company, NEW.id_change_set
|
|
WHERE NOT OLD.name_company <=> NEW.name_company
|
|
UNION
|
|
# Changed name_contact
|
|
SELECT NEW.id_customer, 'name_contact', OLD.name_contact, NEW.name_contact, NEW.id_change_set
|
|
WHERE NOT OLD.name_contact <=> NEW.name_contact
|
|
UNION
|
|
# Changed department_contact
|
|
SELECT NEW.id_customer, 'department_contact', OLD.department_contact, NEW.department_contact, NEW.id_change_set
|
|
WHERE NOT OLD.department_contact <=> NEW.department_contact
|
|
UNION
|
|
# Changed id_address
|
|
SELECT NEW.id_customer, 'id_address', OLD.id_address, NEW.id_address, NEW.id_change_set
|
|
WHERE NOT OLD.id_address <=> NEW.id_address
|
|
UNION
|
|
# Changed phone_number
|
|
SELECT NEW.id_customer, 'phone_number', OLD.phone_number, NEW.phone_number, NEW.id_change_set
|
|
WHERE NOT OLD.phone_number <=> NEW.phone_number
|
|
UNION
|
|
# Changed email
|
|
SELECT NEW.id_customer, 'email', OLD.email, NEW.email, NEW.id_change_set
|
|
WHERE NOT OLD.email <=> NEW.email
|
|
UNION
|
|
# Changed id_currency
|
|
SELECT NEW.id_customer, 'id_currency', OLD.id_currency, NEW.id_currency, NEW.id_change_set
|
|
WHERE NOT OLD.id_currency <=> NEW.id_currency
|
|
UNION
|
|
# Changed active
|
|
SELECT NEW.id_customer, 'active', OLD.active, NEW.active, NEW.id_change_set
|
|
WHERE NOT OLD.active <=> NEW.active
|
|
;
|
|
END //
|
|
DELIMITER ;;
|
|
|