refactor(SQL): Staging tables and Calc stored procedures used for modular stored procedure archicture for scalability. Implemented for Product Catalogue. \n BREAKING CHANGE: BIT argument a_debug added to all but basic stored procedures for analysis of performance and results.
This commit is contained in:
@@ -4,7 +4,7 @@
|
||||
|
||||
|
||||
-- Drop dependencies
|
||||
DROP TABLE IF EXISTS Shop_User_Eval_Temp;
|
||||
DROP TABLE IF EXISTS Shop_Calc_User_Temp;
|
||||
DROP TABLE IF EXISTS tmp_Msg_Error;
|
||||
DROP TABLE IF EXISTS tmp_Currency;
|
||||
DROP TABLE IF EXISTS tmp_Delivery_Region;
|
||||
@@ -12,7 +12,7 @@ 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_Product_p_shop_calc_user;
|
||||
DROP TABLE IF EXISTS tmp_Shop_Image;
|
||||
DROP TABLE IF EXISTS tmp_Shop_Variation;
|
||||
DROP TABLE IF EXISTS tmp_Shop_Discount;
|
||||
@@ -188,9 +188,9 @@ END $$;
|
||||
|
||||
|
||||
DROP FUNCTION IF EXISTS fn_shop_user_eval;
|
||||
DROP FUNCTION IF EXISTS p_shop_user_eval;
|
||||
DROP FUNCTION IF EXISTS p_shop_calc_user;
|
||||
DROP PROCEDURE IF EXISTS fn_shop_user_eval;
|
||||
DROP PROCEDURE IF EXISTS p_shop_user_eval;
|
||||
DROP PROCEDURE IF EXISTS p_shop_calc_user;
|
||||
|
||||
DROP FUNCTION IF EXISTS fn_shop_save_product;
|
||||
DROP FUNCTION IF EXISTS p_shop_save_product;
|
||||
@@ -5523,7 +5523,7 @@ EXECUTE FUNCTION before_update_Shop_Customer_Sales_Order_Product_Link();
|
||||
|
||||
/*
|
||||
|
||||
CALL p_shop_user_eval (
|
||||
CALL p_shop_calc_user (
|
||||
gen_random_uuid(), -- a_guid
|
||||
'', -- a_id_user
|
||||
0, -- a_get_inactive_users
|
||||
@@ -5534,7 +5534,7 @@ CALL p_shop_user_eval (
|
||||
|
||||
*/
|
||||
|
||||
CREATE OR REPLACE PROCEDURE p_shop_user_eval (
|
||||
CREATE OR REPLACE PROCEDURE p_shop_calc_user (
|
||||
IN a_guid UUID,
|
||||
IN a_id_user INTEGER,
|
||||
IN a_get_inactive_users BOOLEAN,
|
||||
@@ -5613,48 +5613,48 @@ BEGIN
|
||||
-- Clear previous proc results
|
||||
-- DROP TABLE IF EXISTS tmp_User_Role_Link;
|
||||
-- DROP TEMPORARY TABLE IF EXISTS tmp_User_Role_Link;
|
||||
DROP TABLE IF EXISTS tmp_Shop_Product_p_Shop_User_Eval;
|
||||
-- DROP TABLE IF EXISTS Shop_User_Eval_Temp;
|
||||
DROP TABLE IF EXISTS tmp_Shop_Product_p_shop_calc_user;
|
||||
-- DROP TABLE IF EXISTS Shop_Calc_User_Temp;
|
||||
|
||||
|
||||
-- Permanent Table
|
||||
CREATE TABLE IF NOT EXISTS Shop_User_Eval_Temp (
|
||||
CREATE TABLE IF NOT EXISTS Shop_Calc_User_Temp (
|
||||
id_row INTEGER NOT NULL PRIMARY KEY GENERATED ALWAYS AS IDENTITY,
|
||||
guid UUID NOT NULL,
|
||||
id_user INTEGER,
|
||||
CONSTRAINT FK_Shop_User_Eval_Temp_id_user
|
||||
CONSTRAINT FK_Shop_Calc_User_Temp_id_user
|
||||
FOREIGN KEY (id_user)
|
||||
REFERENCES Shop_User (id_user),
|
||||
id_permission_required INTEGER NOT NULL,
|
||||
CONSTRAINT FK_Shop_User_Eval_Temp_id_permission_required
|
||||
CONSTRAINT FK_Shop_Calc_User_Temp_id_permission_required
|
||||
FOREIGN KEY (id_permission_required)
|
||||
REFERENCES Shop_Permission (id_permission),
|
||||
/*
|
||||
id_access_level_required INTEGER NOT NULL,
|
||||
CONSTRAINT FK_Shop_User_Eval_Temp_id_access_level_required
|
||||
CONSTRAINT FK_Shop_Calc_User_Temp_id_access_level_required
|
||||
FOREIGN KEY (id_access_level_required)
|
||||
REFERENCES Shop_Access_Level (id_access_level),
|
||||
*/
|
||||
priority_access_level_required INTEGER NOT NULL,
|
||||
/*
|
||||
CONSTRAINT FK_Shop_User_Eval_Temp_priority_access_level_required
|
||||
CONSTRAINT FK_Shop_Calc_User_Temp_priority_access_level_required
|
||||
FOREIGN KEY (priority_access_level_required)
|
||||
REFERENCES Shop_Access_Level (priority),
|
||||
*/
|
||||
id_product INTEGER NULL,
|
||||
CONSTRAINT FK_Shop_User_Eval_Temp_id_product
|
||||
CONSTRAINT FK_Shop_Calc_User_Temp_id_product
|
||||
FOREIGN KEY (id_product)
|
||||
REFERENCES Shop_Product (id_product),
|
||||
/*
|
||||
id_permutation INTEGER NULL,
|
||||
CONSTRAINT FK_Shop_User_Eval_Temp_id_permutation
|
||||
CONSTRAINT FK_Shop_Calc_User_Temp_id_permutation
|
||||
FOREIGN KEY (id_permutation)
|
||||
REFERENCES parts.Shop_Product_Permutation (id_permutation),
|
||||
*/
|
||||
is_super_user BOOLEAN NULL,
|
||||
priority_access_level_user INTEGER NULL,
|
||||
/*
|
||||
CONSTRAINT FK_Shop_User_Eval_Temp_priority_access_level_minimum
|
||||
CONSTRAINT FK_Shop_Calc_User_Temp_priority_access_level_minimum
|
||||
FOREIGN KEY (priority_access_level_minimum)
|
||||
REFERENCES Shop_Access_Level (priority)
|
||||
*/
|
||||
@@ -5665,19 +5665,19 @@ BEGIN
|
||||
);
|
||||
|
||||
-- Temporary tables
|
||||
CREATE TEMPORARY TABLE tmp_Shop_Product_p_Shop_User_Eval (
|
||||
CREATE TEMPORARY TABLE tmp_Shop_Product_p_shop_calc_user (
|
||||
id_row INTEGER NOT NULL PRIMARY KEY GENERATED ALWAYS AS IDENTITY,
|
||||
id_product INTEGER NOT NULL,
|
||||
CONSTRAINT FK_tmp_Shop_Product_p_Shop_User_Eval_id_product FOREIGN KEY (id_product)
|
||||
CONSTRAINT FK_tmp_Shop_Product_p_shop_calc_user_id_product FOREIGN KEY (id_product)
|
||||
REFERENCES Shop_Product (id_product),
|
||||
/*
|
||||
id_permutation INTEGER NOT NULL,
|
||||
CONSTRAINT FK_tmp_Shop_Product_p_Shop_User_Eval_id_permutation
|
||||
CONSTRAINT FK_tmp_Shop_Product_p_shop_calc_user_id_permutation
|
||||
FOREIGN KEY (id_permutation)
|
||||
REFERENCES parts.Shop_Product_Permutation (id_permutation),
|
||||
*/
|
||||
id_access_level_required INTEGER NOT NULL,
|
||||
CONSTRAINT FK_tmp_Shop_Product_p_Shop_User_Eval_id_access_level_required
|
||||
CONSTRAINT FK_tmp_Shop_Product_p_shop_calc_user_id_access_level_required
|
||||
FOREIGN KEY (id_access_level_required)
|
||||
REFERENCES Shop_Access_Level (id_access_level),
|
||||
guid UUID NOT NULL,
|
||||
@@ -5700,7 +5700,7 @@ BEGIN
|
||||
|
||||
-- Permission IDs
|
||||
IF v_has_filter_permission THEN
|
||||
-- CALL p_split(v_ids_permission, ',');
|
||||
-- CALL p_split(a_guid, v_ids_permission, ',');
|
||||
|
||||
-- Invalid
|
||||
IF EXISTS (
|
||||
@@ -5974,7 +5974,7 @@ BEGIN
|
||||
;
|
||||
END IF;
|
||||
|
||||
INSERT INTO tmp_Shop_Product_p_Shop_User_Eval (
|
||||
INSERT INTO tmp_Shop_Product_p_shop_calc_user (
|
||||
id_product,
|
||||
-- id_permutation,
|
||||
id_access_level_required,
|
||||
@@ -5997,17 +5997,17 @@ BEGIN
|
||||
-- AND P.active -- not worried as we want users to be able to see their order history
|
||||
;
|
||||
/*
|
||||
DELETE FROM tmp_Shop_Product_p_Shop_User_Eval
|
||||
DELETE FROM tmp_Shop_Product_p_shop_calc_user
|
||||
WHERE rank_permutation > 1
|
||||
;
|
||||
*/
|
||||
-- v_has_filter_product := EXISTS (SELECT * FROM tmp_Shop_Product_p_Shop_User_Eval WHERE v_guid = guid);
|
||||
-- v_has_filter_product := EXISTS (SELECT * FROM tmp_Shop_Product_p_shop_calc_user WHERE v_guid = guid);
|
||||
END IF;
|
||||
|
||||
-- User permissions
|
||||
/*
|
||||
IF v_has_filter_product THEN
|
||||
INSERT INTO Shop_User_Eval_Temp (
|
||||
INSERT INTO Shop_Calc_User_Temp (
|
||||
guid,
|
||||
id_user,
|
||||
id_permission_required,
|
||||
@@ -6046,7 +6046,7 @@ BEGIN
|
||||
INNER JOIN Shop_Access_Level AL_U
|
||||
ON RPL.id_access_leveL = AL_U.id_access_level
|
||||
AND AL_U.active
|
||||
INNER JOIN tmp_Shop_Product_p_Shop_User_Eval t_P
|
||||
INNER JOIN tmp_Shop_Product_p_shop_calc_user t_P
|
||||
ON t_P.guid = v_guid
|
||||
AND AL.id_access_level = t_P.id_access_leveL_required
|
||||
INNER JOIN Shop_Access_Level AL_P
|
||||
@@ -6058,7 +6058,7 @@ BEGIN
|
||||
AND U.id_user = v_id_user
|
||||
;
|
||||
ELSE
|
||||
INSERT INTO Shop_User_Eval_Temp (--UE_T
|
||||
INSERT INTO Shop_Calc_User_Temp (--UE_T
|
||||
guid,
|
||||
id_user,
|
||||
id_permission_required,
|
||||
@@ -6097,7 +6097,7 @@ BEGIN
|
||||
;
|
||||
END IF;
|
||||
*/
|
||||
INSERT INTO Shop_User_Eval_Temp (--UE_T
|
||||
INSERT INTO Shop_Calc_User_Temp (--UE_T
|
||||
guid,
|
||||
id_user,
|
||||
id_permission_required,
|
||||
@@ -6135,7 +6135,7 @@ BEGIN
|
||||
INNER JOIN Shop_Permission Permission
|
||||
ON RPL.id_permission = Permission.id_permission
|
||||
AND Permission.active
|
||||
CROSS JOIN tmp_Shop_Product_p_Shop_User_Eval t_P -- ON t_P.guid = v_guid
|
||||
CROSS JOIN tmp_Shop_Product_p_shop_calc_user t_P -- ON t_P.guid = v_guid
|
||||
INNER JOIN Shop_Product P ON t_P.id_product = P.id_product
|
||||
INNER JOIN Shop_Access_Level AL_P
|
||||
ON t_P.id_access_level_required = AL_P.id_access_level
|
||||
@@ -6167,9 +6167,9 @@ BEGIN
|
||||
);
|
||||
*/
|
||||
|
||||
-- select * from tmp_Shop_Product_p_Shop_User_Eval;
|
||||
-- select * from tmp_Shop_Product_p_shop_calc_user;
|
||||
-- Clean up
|
||||
DROP TABLE IF EXISTS tmp_Shop_Product_p_Shop_User_Eval;
|
||||
DROP TABLE IF EXISTS tmp_Shop_Product_p_shop_calc_user;
|
||||
-- DROP TEMPORARY TABLE IF EXISTS tmp_User_Role_Link;
|
||||
-- DROP TABLE IF EXISTS tmp_Msg_Error;
|
||||
END;
|
||||
@@ -6178,7 +6178,7 @@ $$ LANGUAGE plpgsql;
|
||||
|
||||
/*
|
||||
|
||||
CALL p_shop_user_eval (
|
||||
CALL p_shop_calc_user (
|
||||
'56c9dfc1-e22f-11ee-aab4-b42e9986184a', -- v_guid
|
||||
'', -- v_id_user -- 'auth0|6582b95c895d09a70ba10fef',
|
||||
false, -- v_get_inactive_users
|
||||
@@ -6189,10 +6189,10 @@ CALL p_shop_user_eval (
|
||||
);
|
||||
|
||||
SELECT *
|
||||
FROM Shop_User_Eval_Temp
|
||||
FROM Shop_Calc_User_Temp
|
||||
;
|
||||
|
||||
DROP TABLE Shop_User_Eval_Temp;
|
||||
DROP TABLE Shop_Calc_User_Temp;
|
||||
|
||||
SELECT *
|
||||
FROM Shop_Permission
|
||||
@@ -6481,11 +6481,11 @@ BEGIN
|
||||
INNER JOIN Shop_Product_Permutation PP ON t_SPO.id_permutation = PP.id_permutation
|
||||
);
|
||||
|
||||
CALL p_shop_user_eval(v_guid_permission, v_id_user, 0, v_id_permission_supplier_purchase_order, v_id_access_level_edit, v_ids_product);
|
||||
CALL p_shop_calc_user(v_guid_permission, v_id_user, 0, v_id_permission_supplier_purchase_order, v_id_access_level_edit, v_ids_product);
|
||||
|
||||
/*
|
||||
UPDATE tmp_Shop_Supplier t_S
|
||||
INNER JOIN Shop_User_Eval_Temp TP
|
||||
INNER JOIN Shop_Calc_User_Temp TP
|
||||
ON TP.GUID = v_guid_permission
|
||||
SET tP.can_view = TP.can_view,
|
||||
tP.can_edit = TP.can_edit,
|
||||
@@ -6494,7 +6494,7 @@ BEGIN
|
||||
/*
|
||||
v_has_permission := (
|
||||
SELECT can_edit
|
||||
FROM Shop_User_Eval_Temp
|
||||
FROM Shop_Calc_User_Temp
|
||||
WHERE
|
||||
GUID = v_guid_permission
|
||||
AND can_edit = 0
|
||||
@@ -6516,7 +6516,7 @@ BEGIN
|
||||
*/
|
||||
v_ids_product_no_permission := (
|
||||
SELECT STRING_AGG(PT.id_product, ',')
|
||||
FROM Shop_User_Eval_Temp PT
|
||||
FROM Shop_Calc_User_Temp PT
|
||||
WHERE
|
||||
PT.can_edit = 0
|
||||
AND NOT ISNULL(PT.id_product)
|
||||
@@ -6527,7 +6527,7 @@ BEGIN
|
||||
;
|
||||
END IF;
|
||||
|
||||
DELETE FROM Shop_User_Eval_Temp
|
||||
DELETE FROM Shop_Calc_User_Temp
|
||||
WHERE GUID = v_guid;
|
||||
|
||||
-- Transaction
|
||||
@@ -6947,17 +6947,17 @@ BEGIN
|
||||
*/
|
||||
|
||||
-- Permissions
|
||||
CALL p_shop_user_eval(v_guid_permission, v_id_user, v_id_permission_supplier, '');
|
||||
CALL p_shop_calc_user(v_guid_permission, v_id_user, v_id_permission_supplier, '');
|
||||
|
||||
/*
|
||||
UPDATE tmp_Shop_Supplier t_S
|
||||
INNER JOIN Shop_User_Eval_Temp TP
|
||||
INNER JOIN Shop_Calc_User_Temp TP
|
||||
ON TP.GUID = v_guid_permission
|
||||
SET tP.can_view = TP.can_view,
|
||||
tP.can_edit = TP.can_edit,
|
||||
tP.can_admin = TP.can_admin;
|
||||
*/
|
||||
v_has_permission := (SELECT can_edit FROM Shop_User_Eval_Temp WHERE GUID = v_guid_permission);
|
||||
v_has_permission := (SELECT can_edit FROM Shop_Calc_User_Temp WHERE GUID = v_guid_permission);
|
||||
|
||||
IF v_has_permission = FALSE THEN
|
||||
v_id_error_type_no_permission := (SELECT id_type FROM Shop_Msg_Error_Type WHERE code = 'NO_PERMISSION');
|
||||
@@ -6975,16 +6975,16 @@ BEGIN
|
||||
*/
|
||||
RAISE EXCEPTION 'No permission: %', (
|
||||
SELECT name_error
|
||||
FROM Shop_User_Eval_Temp
|
||||
FROM Shop_Calc_User_Temp
|
||||
WHERE GUID = v_guid_permission
|
||||
)
|
||||
USING ERRCODE = '42501'
|
||||
;
|
||||
END IF;
|
||||
|
||||
-- CALL p_shop_user_eval_clear_temp(v_guid_permission);
|
||||
-- CALL p_shop_calc_user_clear_temp(v_guid_permission);
|
||||
|
||||
DELETE FROM Shop_User_Eval_Temp
|
||||
DELETE FROM Shop_Calc_User_Temp
|
||||
WHERE GUID = v_guid;
|
||||
|
||||
|
||||
@@ -7383,11 +7383,11 @@ BEGIN
|
||||
INNER JOIN Shop_Product_Permutation PP ON t_MPO.id_permutation = PP.id_permutation
|
||||
);
|
||||
|
||||
CALL p_shop_user_eval(v_guid_permission, v_id_user, 0, v_id_permission_manufacturing_purchase_order, v_id_access_level_edit, v_ids_product);
|
||||
CALL p_shop_calc_user(v_guid_permission, v_id_user, 0, v_id_permission_manufacturing_purchase_order, v_id_access_level_edit, v_ids_product);
|
||||
|
||||
/*
|
||||
UPDATE tmp_Shop_Supplier t_S
|
||||
INNER JOIN Shop_User_Eval_Temp TP
|
||||
INNER JOIN Shop_Calc_User_Temp TP
|
||||
ON TP.GUID = v_guid_permission
|
||||
SET tP.can_view = TP.can_view,
|
||||
tP.can_edit = TP.can_edit,
|
||||
@@ -7396,7 +7396,7 @@ BEGIN
|
||||
/*
|
||||
v_has_permission := (
|
||||
SELECT can_edit
|
||||
FROM Shop_User_Eval_Temp
|
||||
FROM Shop_Calc_User_Temp
|
||||
WHERE
|
||||
GUID = v_guid_permission
|
||||
AND can_edit = 0
|
||||
@@ -7418,7 +7418,7 @@ BEGIN
|
||||
*/
|
||||
v_ids_product_no_permission := (
|
||||
SELECT STRING_AGG(PT.id_product, ',')
|
||||
FROM Shop_User_Eval_Temp PT
|
||||
FROM Shop_Calc_User_Temp PT
|
||||
WHERE
|
||||
PT.can_edit = 0
|
||||
AND NOT ISNULL(PT.id_product)
|
||||
@@ -7845,17 +7845,17 @@ BEGIN
|
||||
*/
|
||||
|
||||
-- Permissions
|
||||
CALL p_shop_user_eval(v_guid_permission, v_id_user, 0, v_id_permission_customer, v_id_access_level_edit, '');
|
||||
CALL p_shop_calc_user(v_guid_permission, v_id_user, 0, v_id_permission_customer, v_id_access_level_edit, '');
|
||||
|
||||
/*
|
||||
UPDATE tmp_Shop_Customer t_S
|
||||
INNER JOIN Shop_User_Eval_Temp TP
|
||||
INNER JOIN Shop_Calc_User_Temp TP
|
||||
ON TP.GUID = v_guid_permission
|
||||
SET tP.can_view = TP.can_view,
|
||||
tP.can_edit = TP.can_edit,
|
||||
tP.can_admin = TP.can_admin;
|
||||
*/
|
||||
v_has_permission := (SELECT can_edit FROM Shop_User_Eval_Temp WHERE GUID = v_guid_permission);
|
||||
v_has_permission := (SELECT can_edit FROM Shop_Calc_User_Temp WHERE GUID = v_guid_permission);
|
||||
|
||||
IF v_has_permission = FALSE THEN
|
||||
v_id_error_type_no_permission := (SELECT id_type FROM Shop_Msg_Error_Type WHERE code = 'NO_PERMISSION');
|
||||
@@ -7878,9 +7878,9 @@ BEGIN
|
||||
*/
|
||||
END IF;
|
||||
|
||||
-- CALL p_shop_user_eval_clear_temp(v_guid_permission);
|
||||
-- CALL p_shop_calc_user_clear_temp(v_guid_permission);
|
||||
|
||||
DELETE FROM Shop_User_Eval_Temp
|
||||
DELETE FROM Shop_Calc_User_Temp
|
||||
WHERE GUID = v_guid;
|
||||
|
||||
|
||||
@@ -8254,11 +8254,11 @@ BEGIN
|
||||
INNER JOIN Shop_Product_Permutation PP ON t_SPO.id_permutation = PP.id_permutation
|
||||
);
|
||||
|
||||
CALL p_shop_user_eval(v_guid_permission, v_id_user, 0, v_id_permission_Customer_Sales_order, v_id_access_level_edit, v_ids_product);
|
||||
CALL p_shop_calc_user(v_guid_permission, v_id_user, 0, v_id_permission_Customer_Sales_order, v_id_access_level_edit, v_ids_product);
|
||||
|
||||
/*
|
||||
UPDATE tmp_Shop_Supplier t_S
|
||||
INNER JOIN Shop_User_Eval_Temp TP
|
||||
INNER JOIN Shop_Calc_User_Temp TP
|
||||
ON TP.GUID = v_guid_permission
|
||||
SET tP.can_view = TP.can_view,
|
||||
tP.can_edit = TP.can_edit,
|
||||
@@ -8267,7 +8267,7 @@ BEGIN
|
||||
/*
|
||||
SET v_has_permission := (
|
||||
SELECT can_edit
|
||||
FROM Shop_User_Eval_Temp
|
||||
FROM Shop_Calc_User_Temp
|
||||
WHERE
|
||||
GUID = v_guid_permission
|
||||
AND can_edit = 0
|
||||
@@ -8289,7 +8289,7 @@ BEGIN
|
||||
*/
|
||||
v_ids_product_no_permission := (
|
||||
SELECT STRING_AGG(PT.id_product, ',')
|
||||
FROM Shop_User_Eval_Temp PT
|
||||
FROM Shop_Calc_User_Temp PT
|
||||
WHERE
|
||||
PT.can_edit = 0
|
||||
AND NOT ISNULL(PT.id_product)
|
||||
@@ -8307,7 +8307,7 @@ BEGIN
|
||||
;
|
||||
END IF;
|
||||
|
||||
DELETE FROM Shop_User_Eval_Temp
|
||||
DELETE FROM Shop_Calc_User_Temp
|
||||
WHERE GUID = v_guid;
|
||||
END IF;
|
||||
|
||||
@@ -9093,7 +9093,7 @@ BEGIN
|
||||
-- String product id, permutation id, quantity list
|
||||
IF NOT EXISTS (SELECT * FROM tmp_Shop_Basket WHERE active LIMIT 1) AND NOT EXISTS (SELECT msg FROM tmp_Msg_Error WHERE guid = v_guid LIMIT 1) THEN -- NOT v_has_filter_user AND
|
||||
-- Get product ids
|
||||
CALL p_split(a_ids_permutation_basket, ',');
|
||||
CALL p_split(a_guid, a_ids_permutation_basket, ',');
|
||||
INSERT INTO tmp_Shop_Product (
|
||||
id_product, id_permutation, display_order
|
||||
)
|
||||
@@ -9111,7 +9111,7 @@ BEGIN
|
||||
DROP TABLE Split_Temp;
|
||||
|
||||
-- Get product quantities
|
||||
CALL p_split(a_quantities_permutation_basket, ',');
|
||||
CALL p_split(a_guid, a_quantities_permutation_basket, ',');
|
||||
INSERT INTO tmp_Shop_Quantity (
|
||||
quantity, display_order
|
||||
)
|
||||
@@ -10338,39 +10338,39 @@ BEGIN
|
||||
-- v_ids_permutation_permission := (SELECT STRING_AGG(id_permutation, ',') FROM tmp_Shop_Product WHERE NOT ISNULL(id_permutation));
|
||||
|
||||
-- SELECT v_guid, v_id_user, false, v_id_permission_product, v_id_access_level_view, v_ids_product_permission;
|
||||
-- select * from Shop_User_Eval_Temp;
|
||||
-- select * from Shop_Calc_User_Temp;
|
||||
|
||||
CALL p_shop_user_eval(v_guid, v_id_user, false, v_id_permission_product, v_id_access_level_view, v_ids_product_permission);
|
||||
CALL p_shop_calc_user(v_guid, v_id_user, false, v_id_permission_product, v_id_access_level_view, v_ids_product_permission);
|
||||
|
||||
-- select * from Shop_User_Eval_Temp;
|
||||
-- select * from Shop_Calc_User_Temp;
|
||||
|
||||
UPDATE tmp_Shop_Product t_P
|
||||
SET t_P.can_view = UE_T.can_view,
|
||||
t_P.can_edit = UE_T.can_edit,
|
||||
t_P.can_admin = UE_T.can_admin
|
||||
FROM tmp_Shop_Product t_P
|
||||
INNER JOIN Shop_User_Eval_Temp UE_T
|
||||
INNER JOIN Shop_Calc_User_Temp UE_T
|
||||
ON t_P.id_product = UE_T.id_product
|
||||
AND UE_T.GUID = v_guid
|
||||
;
|
||||
-- select * from Shop_User_Eval_Temp;
|
||||
-- select * from Shop_Calc_User_Temp;
|
||||
-- select * from tmp_Shop_Product;
|
||||
|
||||
DELETE FROM tmp_Shop_Product t_P
|
||||
WHERE
|
||||
-- FIND_IN_SET(t_P.id_product, (SELECT STRING_AGG(UET.id_product, ',') FROM Shop_User_Eval_Temp UET)) = FALSE -- id_product NOT LIKE CONCAT('%', (SELECT STRING_AGG(id_product, '|') FROM Shop_User_Eval_Temp), '%');
|
||||
-- FIND_IN_SET(t_P.id_product, (SELECT STRING_AGG(UET.id_product, ',') FROM Shop_Calc_User_Temp UET)) = FALSE -- id_product NOT LIKE CONCAT('%', (SELECT STRING_AGG(id_product, '|') FROM Shop_Calc_User_Temp), '%');
|
||||
t_P.id_product NOT IN (
|
||||
SELECT id_product
|
||||
FROM Shop_User_Eval_Temp UET
|
||||
FROM Shop_Calc_User_Temp UET
|
||||
WHERE UET.GUID = v_guid
|
||||
)
|
||||
OR ISNULL(t_P.can_view)
|
||||
OR t_P.can_view = FALSE
|
||||
;
|
||||
|
||||
-- CALL p_shop_user_eval_clear_temp(v_guid);
|
||||
-- DROP TABLE IF EXISTS Shop_User_Eval_Temp;
|
||||
DELETE FROM Shop_User_Eval_Temp
|
||||
-- CALL p_shop_calc_user_clear_temp(v_guid);
|
||||
-- DROP TABLE IF EXISTS Shop_Calc_User_Temp;
|
||||
DELETE FROM Shop_Calc_User_Temp
|
||||
WHERE GUID = v_guid
|
||||
;
|
||||
END IF;
|
||||
@@ -10988,7 +10988,7 @@ BEGIN
|
||||
END IF;
|
||||
|
||||
-- Permissions
|
||||
CALL p_shop_user_eval (
|
||||
CALL p_shop_calc_user (
|
||||
v_guid, -- a_guid
|
||||
a_id_user, -- a_id_user
|
||||
0, -- a_get_inactive_users
|
||||
@@ -10998,13 +10998,13 @@ BEGIN
|
||||
'' -- a_ids_permutation
|
||||
);
|
||||
|
||||
IF NOT (SELECT can_edit FROM Shop_User_Eval_Temp WHERE guid = v_guid) THEN
|
||||
IF NOT (SELECT can_edit FROM Shop_Calc_User_Temp WHERE guid = v_guid) THEN
|
||||
RAISE EXCEPTION 'User ID does not have permission to access orders.'
|
||||
USING ERRCODE = '42501'
|
||||
;
|
||||
END IF;
|
||||
|
||||
DELETE FROM Shop_User_Eval_Temp
|
||||
DELETE FROM Shop_Calc_User_Temp
|
||||
WHERE guid = v_guid
|
||||
;
|
||||
|
||||
@@ -11343,7 +11343,7 @@ BEGIN
|
||||
;
|
||||
|
||||
-- Permissions
|
||||
CALL p_shop_user_eval (
|
||||
CALL p_shop_calc_user (
|
||||
v_guid, -- a_guid
|
||||
v_id_user, -- a_id_user
|
||||
0, -- a_get_inactive_users
|
||||
@@ -11353,13 +11353,13 @@ BEGIN
|
||||
(SELECT STRING_AGG(id_permutation, ',') From tmp_Shop_Product) -- a_ids_permutation -- WHERE NOT ISNULL(id_permutation)
|
||||
);
|
||||
|
||||
IF EXISTS (SELECT can_admin FROM Shop_User_Eval_Temp WHERE guid = v_guid AND NOT can_admin) THEN
|
||||
IF EXISTS (SELECT can_admin FROM Shop_Calc_User_Temp WHERE guid = v_guid AND NOT can_admin) THEN
|
||||
RAISE EXCEPTION 'User ID does not have permission to get all new stripe products.'
|
||||
USING ERRCODE = '42501'
|
||||
;
|
||||
END IF;
|
||||
|
||||
DELETE FROM Shop_User_Eval_Temp
|
||||
DELETE FROM Shop_Calc_User_Temp
|
||||
WHERE guid = v_guid
|
||||
;
|
||||
|
||||
@@ -11480,7 +11480,7 @@ CALL p_shop_get_many_stripe_product_new (
|
||||
select * from shop_product;
|
||||
select * from shop_product_permutation_variation_link;
|
||||
|
||||
CALL p_shop_user_eval (
|
||||
CALL p_shop_calc_user (
|
||||
'ead789a1-c7ac-11ee-a256-b42e9986184a', -- a_guid
|
||||
'auth0|6582b95c895d09a70ba10fef', -- a_id_user
|
||||
0, -- a_get_inactive_users
|
||||
@@ -11620,7 +11620,7 @@ BEGIN
|
||||
|
||||
-- Permissions
|
||||
-- SELECT * FROM tmp_Msg_Error LIMIT 1;
|
||||
CALL p_shop_user_eval (
|
||||
CALL p_shop_calc_user (
|
||||
v_guid, -- a_guid
|
||||
v_id_user, -- a_id_user
|
||||
0, -- a_get_inactive_users
|
||||
@@ -11631,13 +11631,13 @@ BEGIN
|
||||
);
|
||||
-- SELECT * FROM tmp_Msg_Error LIMIT 1;
|
||||
|
||||
IF EXISTS (SELECT can_admin FROM Shop_User_Eval_Temp WHERE guid = v_guid AND NOT can_admin LIMIT 1) THEN
|
||||
IF EXISTS (SELECT can_admin FROM Shop_Calc_User_Temp WHERE guid = v_guid AND NOT can_admin LIMIT 1) THEN
|
||||
RAISE EXCEPTION 'User ID does not have permission to get all new stripe prices.'
|
||||
USING ERRCODE = '42501'
|
||||
;
|
||||
END IF;
|
||||
|
||||
DELETE FROM Shop_User_Eval_Temp
|
||||
DELETE FROM Shop_Calc_User_Temp
|
||||
WHERE guid = v_guid
|
||||
;
|
||||
|
||||
@@ -11864,13 +11864,13 @@ BEGIN
|
||||
v_id_permission_supplier := (SELECT id_permission FROM Shop_Permission WHERE code = 'STORE_SUPPLIER' LIMIT 1);
|
||||
|
||||
-- SELECT v_guid, a_id_user, false, v_id_permission_product, v_id_access_level_view, v_ids_permutation_permission;
|
||||
-- select * from Shop_User_Eval_Temp;
|
||||
-- select * from Shop_Calc_User_Temp;
|
||||
|
||||
CALL p_shop_user_eval(v_guid, a_id_user, FALSE, v_id_permission_supplier, v_id_access_level_view, '');
|
||||
CALL p_shop_calc_user(v_guid, a_id_user, FALSE, v_id_permission_supplier, v_id_access_level_view, '');
|
||||
|
||||
-- select * from Shop_User_Eval_Temp;
|
||||
-- select * from Shop_Calc_User_Temp;
|
||||
|
||||
IF NOT EXISTS (SELECT can_view FROM Shop_User_Eval_Temp UE_T WHERE UE_T.GUID = v_guid) THEN
|
||||
IF NOT EXISTS (SELECT can_view FROM Shop_Calc_User_Temp UE_T WHERE UE_T.GUID = v_guid) THEN
|
||||
RAISE EXCEPTION 'You do not have view permissions for %', (
|
||||
SELECT name
|
||||
FROM Shop_Permission
|
||||
@@ -11953,7 +11953,7 @@ BEGIN
|
||||
-- Clean up
|
||||
DROP TABLE IF EXISTS tmp_Supplier;
|
||||
|
||||
DELETE FROM Shop_User_Eval_Temp
|
||||
DELETE FROM Shop_Calc_User_Temp
|
||||
WHERE GUID = v_guid
|
||||
;
|
||||
END;
|
||||
@@ -12500,13 +12500,13 @@ BEGIN
|
||||
v_ids_product_permission := (SELECT STRING_AGG(DISTINCT t_P.id_product, ',') FROM tmp_Shop_Product t_P WHERE NOT ISNULL(t_P.id_product));
|
||||
|
||||
-- SELECT v_guid, v_id_user, false, v_id_permission_product, v_id_access_level_view, v_ids_permutation_permission;
|
||||
-- select * from Shop_User_Eval_Temp;
|
||||
-- select * from Shop_Calc_User_Temp;
|
||||
|
||||
CALL p_shop_user_eval(v_guid, v_id_user, FALSE, v_ids_permission_supplier_purchase_order, v_id_access_level_view, v_ids_product_permission);
|
||||
CALL p_shop_calc_user(v_guid, v_id_user, FALSE, v_ids_permission_supplier_purchase_order, v_id_access_level_view, v_ids_product_permission);
|
||||
|
||||
-- select * from Shop_User_Eval_Temp;
|
||||
-- select * from Shop_Calc_User_Temp;
|
||||
|
||||
IF NOT EXISTS (SELECT can_view FROM Shop_User_Eval_Temp UE_T WHERE UE_T.GUID = v_guid) THEN
|
||||
IF NOT EXISTS (SELECT can_view FROM Shop_Calc_User_Temp UE_T WHERE UE_T.GUID = v_guid) THEN
|
||||
RAISE EXCEPTION 'You do not have view permissions for %', (
|
||||
SELECT STRING_AGG(name, ', ')
|
||||
FROM Shop_Permission
|
||||
@@ -12522,14 +12522,14 @@ BEGIN
|
||||
t_P.can_edit = UE_T.can_edit,
|
||||
t_P.can_admin = UE_T.can_admin
|
||||
FROM tmp_Shop_Product t_P
|
||||
INNER JOIN Shop_User_Eval_Temp UE_T
|
||||
INNER JOIN Shop_Calc_User_Temp UE_T
|
||||
ON t_P.id_product = UE_T.id_product -- t_P.id_permutation = UE_T.id_permutation
|
||||
AND UE_T.GUID = v_guid
|
||||
;
|
||||
|
||||
-- CALL p_shop_user_eval_clear_temp(v_guid);
|
||||
-- DROP TABLE IF EXISTS Shop_User_Eval_Temp;
|
||||
DELETE FROM Shop_User_Eval_Temp
|
||||
-- CALL p_shop_calc_user_clear_temp(v_guid);
|
||||
-- DROP TABLE IF EXISTS Shop_Calc_User_Temp;
|
||||
DELETE FROM Shop_Calc_User_Temp
|
||||
WHERE GUID = v_guid
|
||||
;
|
||||
|
||||
@@ -12650,7 +12650,7 @@ BEGIN
|
||||
DROP TABLE IF EXISTS tmp_Shop_Supplier;
|
||||
DROP TABLE IF EXISTS tmp_Shop_Product;
|
||||
|
||||
DELETE FROM Shop_User_Eval_Temp
|
||||
DELETE FROM Shop_Calc_User_Temp
|
||||
WHERE GUID = v_guid
|
||||
;
|
||||
END;
|
||||
@@ -13129,13 +13129,13 @@ BEGIN
|
||||
v_ids_product_permission := (SELECT STRING_AGG(P.id_product, ',') FROM (SELECT DISTINCT id_product FROM tmp_Shop_Product WHERE NOT ISNULL(id_product)) P);
|
||||
|
||||
-- SELECT v_guid, v_id_user, false, v_id_permission_product, v_id_access_level_view, v_ids_permutation_permission;
|
||||
-- select * from Shop_User_Eval_Temp;
|
||||
-- select * from Shop_Calc_User_Temp;
|
||||
|
||||
CALL p_shop_user_eval(v_guid, v_id_user, FALSE, v_ids_permission_manufacturing_purchase_order, v_id_access_level_view, v_ids_product_permission);
|
||||
CALL p_shop_calc_user(v_guid, v_id_user, FALSE, v_ids_permission_manufacturing_purchase_order, v_id_access_level_view, v_ids_product_permission);
|
||||
|
||||
-- select * from Shop_User_Eval_Temp;
|
||||
-- select * from Shop_Calc_User_Temp;
|
||||
|
||||
IF NOT EXISTS (SELECT can_view FROM Shop_User_Eval_Temp UE_T WHERE UE_T.GUID = v_guid) THEN
|
||||
IF NOT EXISTS (SELECT can_view FROM Shop_Calc_User_Temp UE_T WHERE UE_T.GUID = v_guid) THEN
|
||||
RAISE EXCEPTION 'You do not have view permissions for %', (
|
||||
SELECT STRING_AGG(name, ', ')
|
||||
FROM Shop_Permission
|
||||
@@ -13151,14 +13151,14 @@ BEGIN
|
||||
t_P.can_edit = UE_T.can_edit,
|
||||
t_P.can_admin = UE_T.can_admin
|
||||
FROM tmp_Shop_Product t_P
|
||||
INNER JOIN Shop_User_Eval_Temp UE_T
|
||||
INNER JOIN Shop_Calc_User_Temp UE_T
|
||||
ON t_P.id_product = UE_T.id_product -- t_P.id_permutation = UE_T.id_permutation
|
||||
AND UE_T.GUID = v_guid
|
||||
;
|
||||
|
||||
-- CALL p_shop_user_eval_clear_temp(v_guid);
|
||||
-- DROP TABLE IF EXISTS Shop_User_Eval_Temp;
|
||||
DELETE FROM Shop_User_Eval_Temp
|
||||
-- CALL p_shop_calc_user_clear_temp(v_guid);
|
||||
-- DROP TABLE IF EXISTS Shop_Calc_User_Temp;
|
||||
DELETE FROM Shop_Calc_User_Temp
|
||||
WHERE GUID = v_guid
|
||||
;
|
||||
|
||||
@@ -13254,7 +13254,7 @@ BEGIN
|
||||
DROP TABLE IF EXISTS tmp_Shop_Manufacturing_Purchase_Order;
|
||||
DROP TABLE IF EXISTS tmp_Shop_Product;
|
||||
|
||||
DELETE FROM Shop_User_Eval_Temp
|
||||
DELETE FROM Shop_Calc_User_Temp
|
||||
WHERE GUID = v_guid
|
||||
;
|
||||
END;
|
||||
@@ -13426,13 +13426,13 @@ BEGIN
|
||||
v_id_permission_customer := (SELECT id_permission FROM Shop_Permission WHERE code = 'STORE_CUSTOMER' LIMIT 1);
|
||||
|
||||
-- SELECT v_guid, a_id_user, false, v_id_permission_product, v_id_access_level_view, v_ids_permutation_permission;
|
||||
-- select * from Shop_User_Eval_Temp;
|
||||
-- select * from Shop_Calc_User_Temp;
|
||||
|
||||
CALL p_shop_user_eval(v_guid, a_id_user, FALSE, v_id_permission_customer, v_id_access_level_view, '');
|
||||
CALL p_shop_calc_user(v_guid, a_id_user, FALSE, v_id_permission_customer, v_id_access_level_view, '');
|
||||
|
||||
-- select * from Shop_User_Eval_Temp;
|
||||
-- select * from Shop_Calc_User_Temp;
|
||||
|
||||
IF NOT EXISTS (SELECT can_view FROM Shop_User_Eval_Temp UE_T WHERE UE_T.GUID = v_guid) THEN
|
||||
IF NOT EXISTS (SELECT can_view FROM Shop_Calc_User_Temp UE_T WHERE UE_T.GUID = v_guid) THEN
|
||||
RAISE EXCEPTION 'You do not have view permissions for %', (
|
||||
SELECT COALESCE(STRING_AGG(name, ', '), 'NULL')
|
||||
FROM Shop_Permission
|
||||
@@ -13512,7 +13512,7 @@ BEGIN
|
||||
-- Clean up
|
||||
DROP TABLE IF EXISTS tmp_Shop_Customer;
|
||||
|
||||
DELETE FROM Shop_User_Eval_Temp
|
||||
DELETE FROM Shop_Calc_User_Temp
|
||||
WHERE GUID = v_guid
|
||||
;
|
||||
END;
|
||||
@@ -14072,13 +14072,13 @@ BEGIN
|
||||
v_ids_product_permission := (SELECT STRING_AGG(P.id_product, ',') FROM (SELECT DISTINCT id_product FROM tmp_Shop_Product WHERE NOT ISNULL(id_product)) P);
|
||||
|
||||
-- SELECT v_guid, a_id_user, false, v_id_permission_product, v_id_access_level_view, v_ids_permutation_permission;
|
||||
-- select * from Shop_User_Eval_Temp;
|
||||
-- select * from Shop_Calc_User_Temp;
|
||||
|
||||
CALL p_shop_user_eval(v_guid, a_id_user, FALSE, v_ids_permission_customer_purchase_order, v_id_access_level_view, v_ids_product_permission);
|
||||
CALL p_shop_calc_user(v_guid, a_id_user, FALSE, v_ids_permission_customer_purchase_order, v_id_access_level_view, v_ids_product_permission);
|
||||
|
||||
-- select * from Shop_User_Eval_Temp;
|
||||
-- select * from Shop_Calc_User_Temp;
|
||||
|
||||
IF NOT EXISTS (SELECT can_view FROM Shop_User_Eval_Temp UE_T WHERE UE_T.GUID = v_guid) THEN
|
||||
IF NOT EXISTS (SELECT can_view FROM Shop_Calc_User_Temp UE_T WHERE UE_T.GUID = v_guid) THEN
|
||||
RAISE EXCEPTION 'You do not have view permissions for %', (
|
||||
SELECT COALESCE(STRING_AGG(name, ', '), 'NULL')
|
||||
FROM Shop_Permission
|
||||
@@ -14094,14 +14094,14 @@ BEGIN
|
||||
t_P.can_edit = UE_T.can_edit,
|
||||
t_P.can_admin = UE_T.can_admin
|
||||
FROM tmp_Shop_Product t_P
|
||||
INNER JOIN Shop_User_Eval_Temp UE_T
|
||||
INNER JOIN Shop_Calc_User_Temp UE_T
|
||||
ON t_P.id_product = UE_T.id_product -- t_P.id_permutation = UE_T.id_permutation
|
||||
AND UE_T.GUID = v_guid
|
||||
;
|
||||
|
||||
-- CALL p_shop_user_eval_clear_temp(v_guid);
|
||||
-- DROP TABLE IF EXISTS Shop_User_Eval_Temp;
|
||||
DELETE FROM Shop_User_Eval_Temp
|
||||
-- CALL p_shop_calc_user_clear_temp(v_guid);
|
||||
-- DROP TABLE IF EXISTS Shop_Calc_User_Temp;
|
||||
DELETE FROM Shop_Calc_User_Temp
|
||||
WHERE GUID = v_guid
|
||||
;
|
||||
|
||||
@@ -14217,7 +14217,7 @@ BEGIN
|
||||
DROP TABLE IF EXISTS tmp_Shop_Customer;
|
||||
DROP TABLE IF EXISTS tmp_Shop_Product;
|
||||
|
||||
DELETE FROM Shop_User_Eval_Temp
|
||||
DELETE FROM Shop_Calc_User_Temp
|
||||
WHERE GUID = v_guid
|
||||
;
|
||||
END;
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
|
||||
|
||||
-- Drop dependencies
|
||||
DROP TABLE IF EXISTS Shop_User_Eval_Temp;
|
||||
DROP TABLE IF EXISTS Shop_Calc_User_Temp;
|
||||
DROP TABLE IF EXISTS tmp_Msg_Error;
|
||||
DROP TABLE IF EXISTS tmp_Currency;
|
||||
DROP TABLE IF EXISTS tmp_Delivery_Region;
|
||||
@@ -12,7 +12,7 @@ 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_Product_p_shop_calc_user;
|
||||
DROP TABLE IF EXISTS tmp_Shop_Image;
|
||||
DROP TABLE IF EXISTS tmp_Shop_Variation;
|
||||
DROP TABLE IF EXISTS tmp_Shop_Discount;
|
||||
@@ -188,9 +188,9 @@ END $$;
|
||||
|
||||
|
||||
DROP FUNCTION IF EXISTS fn_shop_user_eval;
|
||||
DROP FUNCTION IF EXISTS p_shop_user_eval;
|
||||
DROP FUNCTION IF EXISTS p_shop_calc_user;
|
||||
DROP PROCEDURE IF EXISTS fn_shop_user_eval;
|
||||
DROP PROCEDURE IF EXISTS p_shop_user_eval;
|
||||
DROP PROCEDURE IF EXISTS p_shop_calc_user;
|
||||
|
||||
DROP FUNCTION IF EXISTS fn_shop_save_product;
|
||||
DROP FUNCTION IF EXISTS p_shop_save_product;
|
||||
|
||||
@@ -169,17 +169,17 @@ BEGIN
|
||||
SET v_id_permission_product = (SELECT id_permission FROM Shop_Permission WHERE code = 'STORE_PRODUCT' LIMIT 1);
|
||||
SET v_ids_product_permission = (SELECT STRING_AGG(item, '|') FROM tmp_Shop_Product);
|
||||
|
||||
CALL p_shop_user_eval(v_guid_permission, v_id_user, v_id_permission_product, v_ids_product_permission);
|
||||
CALL p_shop_calc_user(v_guid_permission, v_id_user, v_id_permission_product, v_ids_product_permission);
|
||||
|
||||
UPDATE tmp_Shop_Product tP
|
||||
INNER JOIN Shop_User_Eval_Temp TP
|
||||
INNER JOIN Shop_Calc_User_Temp TP
|
||||
ON tP.id_product = TP.id_product
|
||||
AND TP.GUID = v_guid_permission
|
||||
SET tP.can_view = TP.can_view,
|
||||
tP.can_edit = TP.can_edit,
|
||||
tP.can_admin = TP.can_admin;
|
||||
|
||||
CALL p_shop_user_eval_clear_temp(v_guid_permission);
|
||||
CALL p_shop_calc_user_clear_temp(v_guid_permission);
|
||||
END IF;
|
||||
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
|
||||
/*
|
||||
|
||||
CALL p_shop_user_eval (
|
||||
CALL p_shop_calc_user (
|
||||
gen_random_uuid(), -- a_guid
|
||||
'', -- a_id_user
|
||||
0, -- a_get_inactive_users
|
||||
@@ -12,7 +12,7 @@ CALL p_shop_user_eval (
|
||||
|
||||
*/
|
||||
|
||||
CREATE OR REPLACE PROCEDURE p_shop_user_eval (
|
||||
CREATE OR REPLACE PROCEDURE p_shop_calc_user (
|
||||
IN a_guid UUID,
|
||||
IN a_id_user INTEGER,
|
||||
IN a_get_inactive_users BOOLEAN,
|
||||
@@ -91,48 +91,48 @@ BEGIN
|
||||
-- Clear previous proc results
|
||||
-- DROP TABLE IF EXISTS tmp_User_Role_Link;
|
||||
-- DROP TEMPORARY TABLE IF EXISTS tmp_User_Role_Link;
|
||||
DROP TABLE IF EXISTS tmp_Shop_Product_p_Shop_User_Eval;
|
||||
-- DROP TABLE IF EXISTS Shop_User_Eval_Temp;
|
||||
DROP TABLE IF EXISTS tmp_Shop_Product_p_shop_calc_user;
|
||||
-- DROP TABLE IF EXISTS Shop_Calc_User_Temp;
|
||||
|
||||
|
||||
-- Permanent Table
|
||||
CREATE TABLE IF NOT EXISTS Shop_User_Eval_Temp (
|
||||
CREATE TABLE IF NOT EXISTS Shop_Calc_User_Temp (
|
||||
id_row INTEGER NOT NULL PRIMARY KEY GENERATED ALWAYS AS IDENTITY,
|
||||
guid UUID NOT NULL,
|
||||
id_user INTEGER,
|
||||
CONSTRAINT FK_Shop_User_Eval_Temp_id_user
|
||||
CONSTRAINT FK_Shop_Calc_User_Temp_id_user
|
||||
FOREIGN KEY (id_user)
|
||||
REFERENCES Shop_User (id_user),
|
||||
id_permission_required INTEGER NOT NULL,
|
||||
CONSTRAINT FK_Shop_User_Eval_Temp_id_permission_required
|
||||
CONSTRAINT FK_Shop_Calc_User_Temp_id_permission_required
|
||||
FOREIGN KEY (id_permission_required)
|
||||
REFERENCES Shop_Permission (id_permission),
|
||||
/*
|
||||
id_access_level_required INTEGER NOT NULL,
|
||||
CONSTRAINT FK_Shop_User_Eval_Temp_id_access_level_required
|
||||
CONSTRAINT FK_Shop_Calc_User_Temp_id_access_level_required
|
||||
FOREIGN KEY (id_access_level_required)
|
||||
REFERENCES Shop_Access_Level (id_access_level),
|
||||
*/
|
||||
priority_access_level_required INTEGER NOT NULL,
|
||||
/*
|
||||
CONSTRAINT FK_Shop_User_Eval_Temp_priority_access_level_required
|
||||
CONSTRAINT FK_Shop_Calc_User_Temp_priority_access_level_required
|
||||
FOREIGN KEY (priority_access_level_required)
|
||||
REFERENCES Shop_Access_Level (priority),
|
||||
*/
|
||||
id_product INTEGER NULL,
|
||||
CONSTRAINT FK_Shop_User_Eval_Temp_id_product
|
||||
CONSTRAINT FK_Shop_Calc_User_Temp_id_product
|
||||
FOREIGN KEY (id_product)
|
||||
REFERENCES Shop_Product (id_product),
|
||||
/*
|
||||
id_permutation INTEGER NULL,
|
||||
CONSTRAINT FK_Shop_User_Eval_Temp_id_permutation
|
||||
CONSTRAINT FK_Shop_Calc_User_Temp_id_permutation
|
||||
FOREIGN KEY (id_permutation)
|
||||
REFERENCES parts.Shop_Product_Permutation (id_permutation),
|
||||
*/
|
||||
is_super_user BOOLEAN NULL,
|
||||
priority_access_level_user INTEGER NULL,
|
||||
/*
|
||||
CONSTRAINT FK_Shop_User_Eval_Temp_priority_access_level_minimum
|
||||
CONSTRAINT FK_Shop_Calc_User_Temp_priority_access_level_minimum
|
||||
FOREIGN KEY (priority_access_level_minimum)
|
||||
REFERENCES Shop_Access_Level (priority)
|
||||
*/
|
||||
@@ -143,19 +143,19 @@ BEGIN
|
||||
);
|
||||
|
||||
-- Temporary tables
|
||||
CREATE TEMPORARY TABLE tmp_Shop_Product_p_Shop_User_Eval (
|
||||
CREATE TEMPORARY TABLE tmp_Shop_Product_p_shop_calc_user (
|
||||
id_row INTEGER NOT NULL PRIMARY KEY GENERATED ALWAYS AS IDENTITY,
|
||||
id_product INTEGER NOT NULL,
|
||||
CONSTRAINT FK_tmp_Shop_Product_p_Shop_User_Eval_id_product FOREIGN KEY (id_product)
|
||||
CONSTRAINT FK_tmp_Shop_Product_p_shop_calc_user_id_product FOREIGN KEY (id_product)
|
||||
REFERENCES Shop_Product (id_product),
|
||||
/*
|
||||
id_permutation INTEGER NOT NULL,
|
||||
CONSTRAINT FK_tmp_Shop_Product_p_Shop_User_Eval_id_permutation
|
||||
CONSTRAINT FK_tmp_Shop_Product_p_shop_calc_user_id_permutation
|
||||
FOREIGN KEY (id_permutation)
|
||||
REFERENCES parts.Shop_Product_Permutation (id_permutation),
|
||||
*/
|
||||
id_access_level_required INTEGER NOT NULL,
|
||||
CONSTRAINT FK_tmp_Shop_Product_p_Shop_User_Eval_id_access_level_required
|
||||
CONSTRAINT FK_tmp_Shop_Product_p_shop_calc_user_id_access_level_required
|
||||
FOREIGN KEY (id_access_level_required)
|
||||
REFERENCES Shop_Access_Level (id_access_level),
|
||||
guid UUID NOT NULL,
|
||||
@@ -178,7 +178,7 @@ BEGIN
|
||||
|
||||
-- Permission IDs
|
||||
IF v_has_filter_permission THEN
|
||||
-- CALL p_split(v_ids_permission, ',');
|
||||
-- CALL p_split(a_guid, v_ids_permission, ',');
|
||||
|
||||
-- Invalid
|
||||
IF EXISTS (
|
||||
@@ -452,7 +452,7 @@ BEGIN
|
||||
;
|
||||
END IF;
|
||||
|
||||
INSERT INTO tmp_Shop_Product_p_Shop_User_Eval (
|
||||
INSERT INTO tmp_Shop_Product_p_shop_calc_user (
|
||||
id_product,
|
||||
-- id_permutation,
|
||||
id_access_level_required,
|
||||
@@ -475,17 +475,17 @@ BEGIN
|
||||
-- AND P.active -- not worried as we want users to be able to see their order history
|
||||
;
|
||||
/*
|
||||
DELETE FROM tmp_Shop_Product_p_Shop_User_Eval
|
||||
DELETE FROM tmp_Shop_Product_p_shop_calc_user
|
||||
WHERE rank_permutation > 1
|
||||
;
|
||||
*/
|
||||
-- v_has_filter_product := EXISTS (SELECT * FROM tmp_Shop_Product_p_Shop_User_Eval WHERE v_guid = guid);
|
||||
-- v_has_filter_product := EXISTS (SELECT * FROM tmp_Shop_Product_p_shop_calc_user WHERE v_guid = guid);
|
||||
END IF;
|
||||
|
||||
-- User permissions
|
||||
/*
|
||||
IF v_has_filter_product THEN
|
||||
INSERT INTO Shop_User_Eval_Temp (
|
||||
INSERT INTO Shop_Calc_User_Temp (
|
||||
guid,
|
||||
id_user,
|
||||
id_permission_required,
|
||||
@@ -524,7 +524,7 @@ BEGIN
|
||||
INNER JOIN Shop_Access_Level AL_U
|
||||
ON RPL.id_access_leveL = AL_U.id_access_level
|
||||
AND AL_U.active
|
||||
INNER JOIN tmp_Shop_Product_p_Shop_User_Eval t_P
|
||||
INNER JOIN tmp_Shop_Product_p_shop_calc_user t_P
|
||||
ON t_P.guid = v_guid
|
||||
AND AL.id_access_level = t_P.id_access_leveL_required
|
||||
INNER JOIN Shop_Access_Level AL_P
|
||||
@@ -536,7 +536,7 @@ BEGIN
|
||||
AND U.id_user = v_id_user
|
||||
;
|
||||
ELSE
|
||||
INSERT INTO Shop_User_Eval_Temp (--UE_T
|
||||
INSERT INTO Shop_Calc_User_Temp (--UE_T
|
||||
guid,
|
||||
id_user,
|
||||
id_permission_required,
|
||||
@@ -575,7 +575,7 @@ BEGIN
|
||||
;
|
||||
END IF;
|
||||
*/
|
||||
INSERT INTO Shop_User_Eval_Temp (--UE_T
|
||||
INSERT INTO Shop_Calc_User_Temp (--UE_T
|
||||
guid,
|
||||
id_user,
|
||||
id_permission_required,
|
||||
@@ -613,7 +613,7 @@ BEGIN
|
||||
INNER JOIN Shop_Permission Permission
|
||||
ON RPL.id_permission = Permission.id_permission
|
||||
AND Permission.active
|
||||
CROSS JOIN tmp_Shop_Product_p_Shop_User_Eval t_P -- ON t_P.guid = v_guid
|
||||
CROSS JOIN tmp_Shop_Product_p_shop_calc_user t_P -- ON t_P.guid = v_guid
|
||||
INNER JOIN Shop_Product P ON t_P.id_product = P.id_product
|
||||
INNER JOIN Shop_Access_Level AL_P
|
||||
ON t_P.id_access_level_required = AL_P.id_access_level
|
||||
@@ -645,9 +645,9 @@ BEGIN
|
||||
);
|
||||
*/
|
||||
|
||||
-- select * from tmp_Shop_Product_p_Shop_User_Eval;
|
||||
-- select * from tmp_Shop_Product_p_shop_calc_user;
|
||||
-- Clean up
|
||||
DROP TABLE IF EXISTS tmp_Shop_Product_p_Shop_User_Eval;
|
||||
DROP TABLE IF EXISTS tmp_Shop_Product_p_shop_calc_user;
|
||||
-- DROP TEMPORARY TABLE IF EXISTS tmp_User_Role_Link;
|
||||
-- DROP TABLE IF EXISTS tmp_Msg_Error;
|
||||
END;
|
||||
@@ -656,7 +656,7 @@ $$ LANGUAGE plpgsql;
|
||||
|
||||
/*
|
||||
|
||||
CALL p_shop_user_eval (
|
||||
CALL p_shop_calc_user (
|
||||
'56c9dfc1-e22f-11ee-aab4-b42e9986184a', -- v_guid
|
||||
'', -- v_id_user -- 'auth0|6582b95c895d09a70ba10fef',
|
||||
false, -- v_get_inactive_users
|
||||
@@ -667,10 +667,10 @@ CALL p_shop_user_eval (
|
||||
);
|
||||
|
||||
SELECT *
|
||||
FROM Shop_User_Eval_Temp
|
||||
FROM Shop_Calc_User_Temp
|
||||
;
|
||||
|
||||
DROP TABLE Shop_User_Eval_Temp;
|
||||
DROP TABLE Shop_Calc_User_Temp;
|
||||
|
||||
SELECT *
|
||||
FROM Shop_Permission
|
||||
|
||||
@@ -229,11 +229,11 @@ BEGIN
|
||||
INNER JOIN Shop_Product_Permutation PP ON t_SPO.id_permutation = PP.id_permutation
|
||||
);
|
||||
|
||||
CALL p_shop_user_eval(v_guid_permission, v_id_user, 0, v_id_permission_supplier_purchase_order, v_id_access_level_edit, v_ids_product);
|
||||
CALL p_shop_calc_user(v_guid_permission, v_id_user, 0, v_id_permission_supplier_purchase_order, v_id_access_level_edit, v_ids_product);
|
||||
|
||||
/*
|
||||
UPDATE tmp_Shop_Supplier t_S
|
||||
INNER JOIN Shop_User_Eval_Temp TP
|
||||
INNER JOIN Shop_Calc_User_Temp TP
|
||||
ON TP.GUID = v_guid_permission
|
||||
SET tP.can_view = TP.can_view,
|
||||
tP.can_edit = TP.can_edit,
|
||||
@@ -242,7 +242,7 @@ BEGIN
|
||||
/*
|
||||
v_has_permission := (
|
||||
SELECT can_edit
|
||||
FROM Shop_User_Eval_Temp
|
||||
FROM Shop_Calc_User_Temp
|
||||
WHERE
|
||||
GUID = v_guid_permission
|
||||
AND can_edit = 0
|
||||
@@ -264,7 +264,7 @@ BEGIN
|
||||
*/
|
||||
v_ids_product_no_permission := (
|
||||
SELECT STRING_AGG(PT.id_product, ',')
|
||||
FROM Shop_User_Eval_Temp PT
|
||||
FROM Shop_Calc_User_Temp PT
|
||||
WHERE
|
||||
PT.can_edit = 0
|
||||
AND NOT ISNULL(PT.id_product)
|
||||
@@ -275,7 +275,7 @@ BEGIN
|
||||
;
|
||||
END IF;
|
||||
|
||||
DELETE FROM Shop_User_Eval_Temp
|
||||
DELETE FROM Shop_Calc_User_Temp
|
||||
WHERE GUID = v_guid;
|
||||
|
||||
-- Transaction
|
||||
|
||||
@@ -180,17 +180,17 @@ BEGIN
|
||||
*/
|
||||
|
||||
-- Permissions
|
||||
CALL p_shop_user_eval(v_guid_permission, v_id_user, v_id_permission_supplier, '');
|
||||
CALL p_shop_calc_user(v_guid_permission, v_id_user, v_id_permission_supplier, '');
|
||||
|
||||
/*
|
||||
UPDATE tmp_Shop_Supplier t_S
|
||||
INNER JOIN Shop_User_Eval_Temp TP
|
||||
INNER JOIN Shop_Calc_User_Temp TP
|
||||
ON TP.GUID = v_guid_permission
|
||||
SET tP.can_view = TP.can_view,
|
||||
tP.can_edit = TP.can_edit,
|
||||
tP.can_admin = TP.can_admin;
|
||||
*/
|
||||
v_has_permission := (SELECT can_edit FROM Shop_User_Eval_Temp WHERE GUID = v_guid_permission);
|
||||
v_has_permission := (SELECT can_edit FROM Shop_Calc_User_Temp WHERE GUID = v_guid_permission);
|
||||
|
||||
IF v_has_permission = FALSE THEN
|
||||
v_id_error_type_no_permission := (SELECT id_type FROM Shop_Msg_Error_Type WHERE code = 'NO_PERMISSION');
|
||||
@@ -208,16 +208,16 @@ BEGIN
|
||||
*/
|
||||
RAISE EXCEPTION 'No permission: %', (
|
||||
SELECT name_error
|
||||
FROM Shop_User_Eval_Temp
|
||||
FROM Shop_Calc_User_Temp
|
||||
WHERE GUID = v_guid_permission
|
||||
)
|
||||
USING ERRCODE = '42501'
|
||||
;
|
||||
END IF;
|
||||
|
||||
-- CALL p_shop_user_eval_clear_temp(v_guid_permission);
|
||||
-- CALL p_shop_calc_user_clear_temp(v_guid_permission);
|
||||
|
||||
DELETE FROM Shop_User_Eval_Temp
|
||||
DELETE FROM Shop_Calc_User_Temp
|
||||
WHERE GUID = v_guid;
|
||||
|
||||
|
||||
|
||||
@@ -310,11 +310,11 @@ BEGIN
|
||||
INNER JOIN Shop_Product_Permutation PP ON t_MPO.id_permutation = PP.id_permutation
|
||||
);
|
||||
|
||||
CALL p_shop_user_eval(v_guid_permission, v_id_user, 0, v_id_permission_manufacturing_purchase_order, v_id_access_level_edit, v_ids_product);
|
||||
CALL p_shop_calc_user(v_guid_permission, v_id_user, 0, v_id_permission_manufacturing_purchase_order, v_id_access_level_edit, v_ids_product);
|
||||
|
||||
/*
|
||||
UPDATE tmp_Shop_Supplier t_S
|
||||
INNER JOIN Shop_User_Eval_Temp TP
|
||||
INNER JOIN Shop_Calc_User_Temp TP
|
||||
ON TP.GUID = v_guid_permission
|
||||
SET tP.can_view = TP.can_view,
|
||||
tP.can_edit = TP.can_edit,
|
||||
@@ -323,7 +323,7 @@ BEGIN
|
||||
/*
|
||||
v_has_permission := (
|
||||
SELECT can_edit
|
||||
FROM Shop_User_Eval_Temp
|
||||
FROM Shop_Calc_User_Temp
|
||||
WHERE
|
||||
GUID = v_guid_permission
|
||||
AND can_edit = 0
|
||||
@@ -345,7 +345,7 @@ BEGIN
|
||||
*/
|
||||
v_ids_product_no_permission := (
|
||||
SELECT STRING_AGG(PT.id_product, ',')
|
||||
FROM Shop_User_Eval_Temp PT
|
||||
FROM Shop_Calc_User_Temp PT
|
||||
WHERE
|
||||
PT.can_edit = 0
|
||||
AND NOT ISNULL(PT.id_product)
|
||||
|
||||
@@ -166,17 +166,17 @@ BEGIN
|
||||
*/
|
||||
|
||||
-- Permissions
|
||||
CALL p_shop_user_eval(v_guid_permission, v_id_user, 0, v_id_permission_customer, v_id_access_level_edit, '');
|
||||
CALL p_shop_calc_user(v_guid_permission, v_id_user, 0, v_id_permission_customer, v_id_access_level_edit, '');
|
||||
|
||||
/*
|
||||
UPDATE tmp_Shop_Customer t_S
|
||||
INNER JOIN Shop_User_Eval_Temp TP
|
||||
INNER JOIN Shop_Calc_User_Temp TP
|
||||
ON TP.GUID = v_guid_permission
|
||||
SET tP.can_view = TP.can_view,
|
||||
tP.can_edit = TP.can_edit,
|
||||
tP.can_admin = TP.can_admin;
|
||||
*/
|
||||
v_has_permission := (SELECT can_edit FROM Shop_User_Eval_Temp WHERE GUID = v_guid_permission);
|
||||
v_has_permission := (SELECT can_edit FROM Shop_Calc_User_Temp WHERE GUID = v_guid_permission);
|
||||
|
||||
IF v_has_permission = FALSE THEN
|
||||
v_id_error_type_no_permission := (SELECT id_type FROM Shop_Msg_Error_Type WHERE code = 'NO_PERMISSION');
|
||||
@@ -199,9 +199,9 @@ BEGIN
|
||||
*/
|
||||
END IF;
|
||||
|
||||
-- CALL p_shop_user_eval_clear_temp(v_guid_permission);
|
||||
-- CALL p_shop_calc_user_clear_temp(v_guid_permission);
|
||||
|
||||
DELETE FROM Shop_User_Eval_Temp
|
||||
DELETE FROM Shop_Calc_User_Temp
|
||||
WHERE GUID = v_guid;
|
||||
|
||||
|
||||
|
||||
@@ -262,11 +262,11 @@ BEGIN
|
||||
INNER JOIN Shop_Product_Permutation PP ON t_SPO.id_permutation = PP.id_permutation
|
||||
);
|
||||
|
||||
CALL p_shop_user_eval(v_guid_permission, v_id_user, 0, v_id_permission_Customer_Sales_order, v_id_access_level_edit, v_ids_product);
|
||||
CALL p_shop_calc_user(v_guid_permission, v_id_user, 0, v_id_permission_Customer_Sales_order, v_id_access_level_edit, v_ids_product);
|
||||
|
||||
/*
|
||||
UPDATE tmp_Shop_Supplier t_S
|
||||
INNER JOIN Shop_User_Eval_Temp TP
|
||||
INNER JOIN Shop_Calc_User_Temp TP
|
||||
ON TP.GUID = v_guid_permission
|
||||
SET tP.can_view = TP.can_view,
|
||||
tP.can_edit = TP.can_edit,
|
||||
@@ -275,7 +275,7 @@ BEGIN
|
||||
/*
|
||||
SET v_has_permission := (
|
||||
SELECT can_edit
|
||||
FROM Shop_User_Eval_Temp
|
||||
FROM Shop_Calc_User_Temp
|
||||
WHERE
|
||||
GUID = v_guid_permission
|
||||
AND can_edit = 0
|
||||
@@ -297,7 +297,7 @@ BEGIN
|
||||
*/
|
||||
v_ids_product_no_permission := (
|
||||
SELECT STRING_AGG(PT.id_product, ',')
|
||||
FROM Shop_User_Eval_Temp PT
|
||||
FROM Shop_Calc_User_Temp PT
|
||||
WHERE
|
||||
PT.can_edit = 0
|
||||
AND NOT ISNULL(PT.id_product)
|
||||
@@ -315,7 +315,7 @@ BEGIN
|
||||
;
|
||||
END IF;
|
||||
|
||||
DELETE FROM Shop_User_Eval_Temp
|
||||
DELETE FROM Shop_Calc_User_Temp
|
||||
WHERE GUID = v_guid;
|
||||
END IF;
|
||||
|
||||
|
||||
@@ -380,7 +380,7 @@ BEGIN
|
||||
-- String product id, permutation id, quantity list
|
||||
IF NOT EXISTS (SELECT * FROM tmp_Shop_Basket WHERE active LIMIT 1) AND NOT EXISTS (SELECT msg FROM tmp_Msg_Error WHERE guid = v_guid LIMIT 1) THEN -- NOT v_has_filter_user AND
|
||||
-- Get product ids
|
||||
CALL p_split(a_ids_permutation_basket, ',');
|
||||
CALL p_split(a_guid, a_ids_permutation_basket, ',');
|
||||
INSERT INTO tmp_Shop_Product (
|
||||
id_product, id_permutation, display_order
|
||||
)
|
||||
@@ -398,7 +398,7 @@ BEGIN
|
||||
DROP TABLE Split_Temp;
|
||||
|
||||
-- Get product quantities
|
||||
CALL p_split(a_quantities_permutation_basket, ',');
|
||||
CALL p_split(a_guid, a_quantities_permutation_basket, ',');
|
||||
INSERT INTO tmp_Shop_Quantity (
|
||||
quantity, display_order
|
||||
)
|
||||
|
||||
@@ -792,39 +792,39 @@ BEGIN
|
||||
-- v_ids_permutation_permission := (SELECT STRING_AGG(id_permutation, ',') FROM tmp_Shop_Product WHERE NOT ISNULL(id_permutation));
|
||||
|
||||
-- SELECT v_guid, v_id_user, false, v_id_permission_product, v_id_access_level_view, v_ids_product_permission;
|
||||
-- select * from Shop_User_Eval_Temp;
|
||||
-- select * from Shop_Calc_User_Temp;
|
||||
|
||||
CALL p_shop_user_eval(v_guid, v_id_user, false, v_id_permission_product, v_id_access_level_view, v_ids_product_permission);
|
||||
CALL p_shop_calc_user(v_guid, v_id_user, false, v_id_permission_product, v_id_access_level_view, v_ids_product_permission);
|
||||
|
||||
-- select * from Shop_User_Eval_Temp;
|
||||
-- select * from Shop_Calc_User_Temp;
|
||||
|
||||
UPDATE tmp_Shop_Product t_P
|
||||
SET t_P.can_view = UE_T.can_view,
|
||||
t_P.can_edit = UE_T.can_edit,
|
||||
t_P.can_admin = UE_T.can_admin
|
||||
FROM tmp_Shop_Product t_P
|
||||
INNER JOIN Shop_User_Eval_Temp UE_T
|
||||
INNER JOIN Shop_Calc_User_Temp UE_T
|
||||
ON t_P.id_product = UE_T.id_product
|
||||
AND UE_T.GUID = v_guid
|
||||
;
|
||||
-- select * from Shop_User_Eval_Temp;
|
||||
-- select * from Shop_Calc_User_Temp;
|
||||
-- select * from tmp_Shop_Product;
|
||||
|
||||
DELETE FROM tmp_Shop_Product t_P
|
||||
WHERE
|
||||
-- FIND_IN_SET(t_P.id_product, (SELECT STRING_AGG(UET.id_product, ',') FROM Shop_User_Eval_Temp UET)) = FALSE -- id_product NOT LIKE CONCAT('%', (SELECT STRING_AGG(id_product, '|') FROM Shop_User_Eval_Temp), '%');
|
||||
-- FIND_IN_SET(t_P.id_product, (SELECT STRING_AGG(UET.id_product, ',') FROM Shop_Calc_User_Temp UET)) = FALSE -- id_product NOT LIKE CONCAT('%', (SELECT STRING_AGG(id_product, '|') FROM Shop_Calc_User_Temp), '%');
|
||||
t_P.id_product NOT IN (
|
||||
SELECT id_product
|
||||
FROM Shop_User_Eval_Temp UET
|
||||
FROM Shop_Calc_User_Temp UET
|
||||
WHERE UET.GUID = v_guid
|
||||
)
|
||||
OR ISNULL(t_P.can_view)
|
||||
OR t_P.can_view = FALSE
|
||||
;
|
||||
|
||||
-- CALL p_shop_user_eval_clear_temp(v_guid);
|
||||
-- DROP TABLE IF EXISTS Shop_User_Eval_Temp;
|
||||
DELETE FROM Shop_User_Eval_Temp
|
||||
-- CALL p_shop_calc_user_clear_temp(v_guid);
|
||||
-- DROP TABLE IF EXISTS Shop_Calc_User_Temp;
|
||||
DELETE FROM Shop_Calc_User_Temp
|
||||
WHERE GUID = v_guid
|
||||
;
|
||||
END IF;
|
||||
|
||||
@@ -94,7 +94,7 @@ BEGIN
|
||||
END IF;
|
||||
|
||||
-- Permissions
|
||||
CALL p_shop_user_eval (
|
||||
CALL p_shop_calc_user (
|
||||
v_guid, -- a_guid
|
||||
a_id_user, -- a_id_user
|
||||
0, -- a_get_inactive_users
|
||||
@@ -104,13 +104,13 @@ BEGIN
|
||||
'' -- a_ids_permutation
|
||||
);
|
||||
|
||||
IF NOT (SELECT can_edit FROM Shop_User_Eval_Temp WHERE guid = v_guid) THEN
|
||||
IF NOT (SELECT can_edit FROM Shop_Calc_User_Temp WHERE guid = v_guid) THEN
|
||||
RAISE EXCEPTION 'User ID does not have permission to access orders.'
|
||||
USING ERRCODE = '42501'
|
||||
;
|
||||
END IF;
|
||||
|
||||
DELETE FROM Shop_User_Eval_Temp
|
||||
DELETE FROM Shop_Calc_User_Temp
|
||||
WHERE guid = v_guid
|
||||
;
|
||||
|
||||
|
||||
@@ -166,7 +166,7 @@ BEGIN
|
||||
;
|
||||
|
||||
-- Permissions
|
||||
CALL p_shop_user_eval (
|
||||
CALL p_shop_calc_user (
|
||||
v_guid, -- a_guid
|
||||
v_id_user, -- a_id_user
|
||||
0, -- a_get_inactive_users
|
||||
@@ -176,13 +176,13 @@ BEGIN
|
||||
(SELECT STRING_AGG(id_permutation, ',') From tmp_Shop_Product) -- a_ids_permutation -- WHERE NOT ISNULL(id_permutation)
|
||||
);
|
||||
|
||||
IF EXISTS (SELECT can_admin FROM Shop_User_Eval_Temp WHERE guid = v_guid AND NOT can_admin) THEN
|
||||
IF EXISTS (SELECT can_admin FROM Shop_Calc_User_Temp WHERE guid = v_guid AND NOT can_admin) THEN
|
||||
RAISE EXCEPTION 'User ID does not have permission to get all new stripe products.'
|
||||
USING ERRCODE = '42501'
|
||||
;
|
||||
END IF;
|
||||
|
||||
DELETE FROM Shop_User_Eval_Temp
|
||||
DELETE FROM Shop_Calc_User_Temp
|
||||
WHERE guid = v_guid
|
||||
;
|
||||
|
||||
@@ -303,7 +303,7 @@ CALL p_shop_get_many_stripe_product_new (
|
||||
select * from shop_product;
|
||||
select * from shop_product_permutation_variation_link;
|
||||
|
||||
CALL p_shop_user_eval (
|
||||
CALL p_shop_calc_user (
|
||||
'ead789a1-c7ac-11ee-a256-b42e9986184a', -- a_guid
|
||||
'auth0|6582b95c895d09a70ba10fef', -- a_id_user
|
||||
0, -- a_get_inactive_users
|
||||
|
||||
@@ -127,7 +127,7 @@ BEGIN
|
||||
|
||||
-- Permissions
|
||||
-- SELECT * FROM tmp_Msg_Error LIMIT 1;
|
||||
CALL p_shop_user_eval (
|
||||
CALL p_shop_calc_user (
|
||||
v_guid, -- a_guid
|
||||
v_id_user, -- a_id_user
|
||||
0, -- a_get_inactive_users
|
||||
@@ -138,13 +138,13 @@ BEGIN
|
||||
);
|
||||
-- SELECT * FROM tmp_Msg_Error LIMIT 1;
|
||||
|
||||
IF EXISTS (SELECT can_admin FROM Shop_User_Eval_Temp WHERE guid = v_guid AND NOT can_admin LIMIT 1) THEN
|
||||
IF EXISTS (SELECT can_admin FROM Shop_Calc_User_Temp WHERE guid = v_guid AND NOT can_admin LIMIT 1) THEN
|
||||
RAISE EXCEPTION 'User ID does not have permission to get all new stripe prices.'
|
||||
USING ERRCODE = '42501'
|
||||
;
|
||||
END IF;
|
||||
|
||||
DELETE FROM Shop_User_Eval_Temp
|
||||
DELETE FROM Shop_Calc_User_Temp
|
||||
WHERE guid = v_guid
|
||||
;
|
||||
|
||||
|
||||
@@ -118,13 +118,13 @@ BEGIN
|
||||
v_id_permission_supplier := (SELECT id_permission FROM Shop_Permission WHERE code = 'STORE_SUPPLIER' LIMIT 1);
|
||||
|
||||
-- SELECT v_guid, a_id_user, false, v_id_permission_product, v_id_access_level_view, v_ids_permutation_permission;
|
||||
-- select * from Shop_User_Eval_Temp;
|
||||
-- select * from Shop_Calc_User_Temp;
|
||||
|
||||
CALL p_shop_user_eval(v_guid, a_id_user, FALSE, v_id_permission_supplier, v_id_access_level_view, '');
|
||||
CALL p_shop_calc_user(v_guid, a_id_user, FALSE, v_id_permission_supplier, v_id_access_level_view, '');
|
||||
|
||||
-- select * from Shop_User_Eval_Temp;
|
||||
-- select * from Shop_Calc_User_Temp;
|
||||
|
||||
IF NOT EXISTS (SELECT can_view FROM Shop_User_Eval_Temp UE_T WHERE UE_T.GUID = v_guid) THEN
|
||||
IF NOT EXISTS (SELECT can_view FROM Shop_Calc_User_Temp UE_T WHERE UE_T.GUID = v_guid) THEN
|
||||
RAISE EXCEPTION 'You do not have view permissions for %', (
|
||||
SELECT name
|
||||
FROM Shop_Permission
|
||||
@@ -207,7 +207,7 @@ BEGIN
|
||||
-- Clean up
|
||||
DROP TABLE IF EXISTS tmp_Supplier;
|
||||
|
||||
DELETE FROM Shop_User_Eval_Temp
|
||||
DELETE FROM Shop_Calc_User_Temp
|
||||
WHERE GUID = v_guid
|
||||
;
|
||||
END;
|
||||
|
||||
@@ -507,13 +507,13 @@ BEGIN
|
||||
v_ids_product_permission := (SELECT STRING_AGG(DISTINCT t_P.id_product, ',') FROM tmp_Shop_Product t_P WHERE NOT ISNULL(t_P.id_product));
|
||||
|
||||
-- SELECT v_guid, v_id_user, false, v_id_permission_product, v_id_access_level_view, v_ids_permutation_permission;
|
||||
-- select * from Shop_User_Eval_Temp;
|
||||
-- select * from Shop_Calc_User_Temp;
|
||||
|
||||
CALL p_shop_user_eval(v_guid, v_id_user, FALSE, v_ids_permission_supplier_purchase_order, v_id_access_level_view, v_ids_product_permission);
|
||||
CALL p_shop_calc_user(v_guid, v_id_user, FALSE, v_ids_permission_supplier_purchase_order, v_id_access_level_view, v_ids_product_permission);
|
||||
|
||||
-- select * from Shop_User_Eval_Temp;
|
||||
-- select * from Shop_Calc_User_Temp;
|
||||
|
||||
IF NOT EXISTS (SELECT can_view FROM Shop_User_Eval_Temp UE_T WHERE UE_T.GUID = v_guid) THEN
|
||||
IF NOT EXISTS (SELECT can_view FROM Shop_Calc_User_Temp UE_T WHERE UE_T.GUID = v_guid) THEN
|
||||
RAISE EXCEPTION 'You do not have view permissions for %', (
|
||||
SELECT STRING_AGG(name, ', ')
|
||||
FROM Shop_Permission
|
||||
@@ -529,14 +529,14 @@ BEGIN
|
||||
t_P.can_edit = UE_T.can_edit,
|
||||
t_P.can_admin = UE_T.can_admin
|
||||
FROM tmp_Shop_Product t_P
|
||||
INNER JOIN Shop_User_Eval_Temp UE_T
|
||||
INNER JOIN Shop_Calc_User_Temp UE_T
|
||||
ON t_P.id_product = UE_T.id_product -- t_P.id_permutation = UE_T.id_permutation
|
||||
AND UE_T.GUID = v_guid
|
||||
;
|
||||
|
||||
-- CALL p_shop_user_eval_clear_temp(v_guid);
|
||||
-- DROP TABLE IF EXISTS Shop_User_Eval_Temp;
|
||||
DELETE FROM Shop_User_Eval_Temp
|
||||
-- CALL p_shop_calc_user_clear_temp(v_guid);
|
||||
-- DROP TABLE IF EXISTS Shop_Calc_User_Temp;
|
||||
DELETE FROM Shop_Calc_User_Temp
|
||||
WHERE GUID = v_guid
|
||||
;
|
||||
|
||||
@@ -657,7 +657,7 @@ BEGIN
|
||||
DROP TABLE IF EXISTS tmp_Shop_Supplier;
|
||||
DROP TABLE IF EXISTS tmp_Shop_Product;
|
||||
|
||||
DELETE FROM Shop_User_Eval_Temp
|
||||
DELETE FROM Shop_Calc_User_Temp
|
||||
WHERE GUID = v_guid
|
||||
;
|
||||
END;
|
||||
|
||||
@@ -427,13 +427,13 @@ BEGIN
|
||||
v_ids_product_permission := (SELECT STRING_AGG(P.id_product, ',') FROM (SELECT DISTINCT id_product FROM tmp_Shop_Product WHERE NOT ISNULL(id_product)) P);
|
||||
|
||||
-- SELECT v_guid, v_id_user, false, v_id_permission_product, v_id_access_level_view, v_ids_permutation_permission;
|
||||
-- select * from Shop_User_Eval_Temp;
|
||||
-- select * from Shop_Calc_User_Temp;
|
||||
|
||||
CALL p_shop_user_eval(v_guid, v_id_user, FALSE, v_ids_permission_manufacturing_purchase_order, v_id_access_level_view, v_ids_product_permission);
|
||||
CALL p_shop_calc_user(v_guid, v_id_user, FALSE, v_ids_permission_manufacturing_purchase_order, v_id_access_level_view, v_ids_product_permission);
|
||||
|
||||
-- select * from Shop_User_Eval_Temp;
|
||||
-- select * from Shop_Calc_User_Temp;
|
||||
|
||||
IF NOT EXISTS (SELECT can_view FROM Shop_User_Eval_Temp UE_T WHERE UE_T.GUID = v_guid) THEN
|
||||
IF NOT EXISTS (SELECT can_view FROM Shop_Calc_User_Temp UE_T WHERE UE_T.GUID = v_guid) THEN
|
||||
RAISE EXCEPTION 'You do not have view permissions for %', (
|
||||
SELECT STRING_AGG(name, ', ')
|
||||
FROM Shop_Permission
|
||||
@@ -449,14 +449,14 @@ BEGIN
|
||||
t_P.can_edit = UE_T.can_edit,
|
||||
t_P.can_admin = UE_T.can_admin
|
||||
FROM tmp_Shop_Product t_P
|
||||
INNER JOIN Shop_User_Eval_Temp UE_T
|
||||
INNER JOIN Shop_Calc_User_Temp UE_T
|
||||
ON t_P.id_product = UE_T.id_product -- t_P.id_permutation = UE_T.id_permutation
|
||||
AND UE_T.GUID = v_guid
|
||||
;
|
||||
|
||||
-- CALL p_shop_user_eval_clear_temp(v_guid);
|
||||
-- DROP TABLE IF EXISTS Shop_User_Eval_Temp;
|
||||
DELETE FROM Shop_User_Eval_Temp
|
||||
-- CALL p_shop_calc_user_clear_temp(v_guid);
|
||||
-- DROP TABLE IF EXISTS Shop_Calc_User_Temp;
|
||||
DELETE FROM Shop_Calc_User_Temp
|
||||
WHERE GUID = v_guid
|
||||
;
|
||||
|
||||
@@ -552,7 +552,7 @@ BEGIN
|
||||
DROP TABLE IF EXISTS tmp_Shop_Manufacturing_Purchase_Order;
|
||||
DROP TABLE IF EXISTS tmp_Shop_Product;
|
||||
|
||||
DELETE FROM Shop_User_Eval_Temp
|
||||
DELETE FROM Shop_Calc_User_Temp
|
||||
WHERE GUID = v_guid
|
||||
;
|
||||
END;
|
||||
|
||||
@@ -123,13 +123,13 @@ BEGIN
|
||||
v_id_permission_customer := (SELECT id_permission FROM Shop_Permission WHERE code = 'STORE_CUSTOMER' LIMIT 1);
|
||||
|
||||
-- SELECT v_guid, a_id_user, false, v_id_permission_product, v_id_access_level_view, v_ids_permutation_permission;
|
||||
-- select * from Shop_User_Eval_Temp;
|
||||
-- select * from Shop_Calc_User_Temp;
|
||||
|
||||
CALL p_shop_user_eval(v_guid, a_id_user, FALSE, v_id_permission_customer, v_id_access_level_view, '');
|
||||
CALL p_shop_calc_user(v_guid, a_id_user, FALSE, v_id_permission_customer, v_id_access_level_view, '');
|
||||
|
||||
-- select * from Shop_User_Eval_Temp;
|
||||
-- select * from Shop_Calc_User_Temp;
|
||||
|
||||
IF NOT EXISTS (SELECT can_view FROM Shop_User_Eval_Temp UE_T WHERE UE_T.GUID = v_guid) THEN
|
||||
IF NOT EXISTS (SELECT can_view FROM Shop_Calc_User_Temp UE_T WHERE UE_T.GUID = v_guid) THEN
|
||||
RAISE EXCEPTION 'You do not have view permissions for %', (
|
||||
SELECT COALESCE(STRING_AGG(name, ', '), 'NULL')
|
||||
FROM Shop_Permission
|
||||
@@ -209,7 +209,7 @@ BEGIN
|
||||
-- Clean up
|
||||
DROP TABLE IF EXISTS tmp_Shop_Customer;
|
||||
|
||||
DELETE FROM Shop_User_Eval_Temp
|
||||
DELETE FROM Shop_Calc_User_Temp
|
||||
WHERE GUID = v_guid
|
||||
;
|
||||
END;
|
||||
|
||||
@@ -520,13 +520,13 @@ BEGIN
|
||||
v_ids_product_permission := (SELECT STRING_AGG(P.id_product, ',') FROM (SELECT DISTINCT id_product FROM tmp_Shop_Product WHERE NOT ISNULL(id_product)) P);
|
||||
|
||||
-- SELECT v_guid, a_id_user, false, v_id_permission_product, v_id_access_level_view, v_ids_permutation_permission;
|
||||
-- select * from Shop_User_Eval_Temp;
|
||||
-- select * from Shop_Calc_User_Temp;
|
||||
|
||||
CALL p_shop_user_eval(v_guid, a_id_user, FALSE, v_ids_permission_customer_purchase_order, v_id_access_level_view, v_ids_product_permission);
|
||||
CALL p_shop_calc_user(v_guid, a_id_user, FALSE, v_ids_permission_customer_purchase_order, v_id_access_level_view, v_ids_product_permission);
|
||||
|
||||
-- select * from Shop_User_Eval_Temp;
|
||||
-- select * from Shop_Calc_User_Temp;
|
||||
|
||||
IF NOT EXISTS (SELECT can_view FROM Shop_User_Eval_Temp UE_T WHERE UE_T.GUID = v_guid) THEN
|
||||
IF NOT EXISTS (SELECT can_view FROM Shop_Calc_User_Temp UE_T WHERE UE_T.GUID = v_guid) THEN
|
||||
RAISE EXCEPTION 'You do not have view permissions for %', (
|
||||
SELECT COALESCE(STRING_AGG(name, ', '), 'NULL')
|
||||
FROM Shop_Permission
|
||||
@@ -542,14 +542,14 @@ BEGIN
|
||||
t_P.can_edit = UE_T.can_edit,
|
||||
t_P.can_admin = UE_T.can_admin
|
||||
FROM tmp_Shop_Product t_P
|
||||
INNER JOIN Shop_User_Eval_Temp UE_T
|
||||
INNER JOIN Shop_Calc_User_Temp UE_T
|
||||
ON t_P.id_product = UE_T.id_product -- t_P.id_permutation = UE_T.id_permutation
|
||||
AND UE_T.GUID = v_guid
|
||||
;
|
||||
|
||||
-- CALL p_shop_user_eval_clear_temp(v_guid);
|
||||
-- DROP TABLE IF EXISTS Shop_User_Eval_Temp;
|
||||
DELETE FROM Shop_User_Eval_Temp
|
||||
-- CALL p_shop_calc_user_clear_temp(v_guid);
|
||||
-- DROP TABLE IF EXISTS Shop_Calc_User_Temp;
|
||||
DELETE FROM Shop_Calc_User_Temp
|
||||
WHERE GUID = v_guid
|
||||
;
|
||||
|
||||
@@ -665,7 +665,7 @@ BEGIN
|
||||
DROP TABLE IF EXISTS tmp_Shop_Customer;
|
||||
DROP TABLE IF EXISTS tmp_Shop_Product;
|
||||
|
||||
DELETE FROM Shop_User_Eval_Temp
|
||||
DELETE FROM Shop_Calc_User_Temp
|
||||
WHERE GUID = v_guid
|
||||
;
|
||||
END;
|
||||
|
||||
@@ -130,7 +130,7 @@
|
||||
387.0_tri_Shop_Customer.sql
|
||||
387.2_tri_Shop_Customer_Sales_Order.sql
|
||||
389_tri_Shop_Customer_Sales_Order_Product_Link.sql
|
||||
600_p_shop_user_eval.sql
|
||||
600_p_shop_calc_user.sql
|
||||
602_p_save_supplier_purchase_order.sql
|
||||
602_p_shop_save_supplier.sql
|
||||
604_p_shop_save_manufacturing_purchase_order.sql
|
||||
|
||||
Reference in New Issue
Block a user