1. PostgreSQL copy of all MySQL created and tested.\n 2. Purchase Orders and Sales Orders and stock level management added to MySQL, PostgreSQL, and server and front end code.

This commit is contained in:
2024-07-05 20:34:11 +01:00
parent 3a2a164213
commit 6f4e329258
3049 changed files with 535753 additions and 3022 deletions

View File

@@ -0,0 +1,63 @@
-- Shop Product Variation Link
CREATE OR REPLACE FUNCTION before_insert_Shop_User_Basket()
RETURNS TRIGGER AS $$
BEGIN
IF NEW.created_on IS NULL THEN
NEW.created_on = CURRENT_TIMESTAMP;
END IF;
IF NEW.created_by IS NULL THEN
NEW.created_by = CURRENT_USER;
END IF;
RETURN NEW;
END;
$$ LANGUAGE plpgsql;
CREATE OR REPLACE TRIGGER tri_before_insert_Shop_User_Basket
BEFORE INSERT ON Shop_User_Basket
FOR EACH ROW
EXECUTE FUNCTION before_insert_Shop_User_Basket();
CREATE OR REPLACE FUNCTION before_update_Shop_User_Basket()
RETURNS TRIGGER AS $$
BEGIN
IF NEW.id_change_set_user <=> OLD.id_change_set_user THEN
RAISE EXCEPTION 'New change Set ID must be provided.'
USING ERRCODE = '45000';
END IF;
INSERT INTO Shop_User_Basket_Audit (
id_item,
name_field,
value_prev,
value_new,
id_change_set_user
)
-- Changed id_user
SELECT NEW.id_item, 'id_user', OLD.id_user, NEW.id_user, NEW.id_change_set_user
WHERE NOT OLD.id_user <=> NEW.id_user
UNION
-- Changed id_product
SELECT NEW.id_item, 'id_product', OLD.id_product, NEW.id_product, NEW.id_change_set_user
WHERE NOT OLD.id_product <=> NEW.id_product
UNION
-- Changed quantity
SELECT NEW.id_item, 'quantity', CONVERT(OLD.quantity, CHAR), CONVERT(NEW.quantity, CHAR), NEW.id_change_set_user
WHERE NOT (OLD.quantity <=> NEW.quantity)
UNION
-- Changed active
SELECT NEW.id_item, 'active', CONVERT(CONVERT(OLD.active, SIGNED), CHAR), CONVERT(CONVERT(NEW.active, SIGNED), CHAR), NEW.id_change_set_user
WHERE NOT (OLD.active <=> NEW.active)
;
RETURN NEW;
END;
$$ LANGUAGE plpgsql;
CREATE OR REPLACE TRIGGER tri_before_update_Shop_User_Basket
BEFORE UPDATE ON Shop_User_Basket
FOR EACH ROW
EXECUTE FUNCTION before_update_Shop_User_Basket();