Feat(SQL, UI): Logic for Get-Many SQL Stored Procedures refactored to use Calc Stored Procedures and Dog Command Links page styling improved.
This commit is contained in:
@@ -1,24 +1,34 @@
|
||||
|
||||
USE demo;
|
||||
|
||||
DROP PROCEDURE IF EXISTS demo.p_DOG_get_many_dog;
|
||||
DROP PROCEDURE IF EXISTS demo.p_dog_get_many_dog_command;
|
||||
DROP PROCEDURE IF EXISTS demo.p_dog_get_many_dog_command_link;
|
||||
|
||||
DELIMITER //
|
||||
CREATE PROCEDURE demo.p_DOG_get_many_dog (
|
||||
CREATE PROCEDURE demo.p_dog_get_many_dog_command_link (
|
||||
IN a_id_user INT
|
||||
, IN a_get_all_dog BIT
|
||||
, IN a_get_inactive_dog BIT
|
||||
, IN a_ids_dog TEXT
|
||||
, IN a_names_dog TEXT
|
||||
, IN a_get_all_command_category BIT
|
||||
, IN a_get_inactive_command_category BIT
|
||||
, IN a_ids_command_category TEXT
|
||||
, IN a_names_command_category TEXT
|
||||
, IN a_get_all_command BIT
|
||||
, IN a_get_inactive_command BIT
|
||||
, IN a_ids_command TEXT
|
||||
, IN a_names_command TEXT
|
||||
, IN a_debug BIT
|
||||
)
|
||||
BEGIN
|
||||
DECLARE v_code_type_error_bad_data VARCHAR(100);
|
||||
DECLARE v_code_type_error_no_permission VARCHAR(100);
|
||||
DECLARE v_code_type_error_warning VARCHAR(100);
|
||||
DECLARE v_id_type_error_bad_data INT;
|
||||
DECLARE v_id_type_error_no_permission INT;
|
||||
DECLARE v_has_filter_dog_id BIT;
|
||||
DECLARE v_has_filter_dog_name BIT;
|
||||
DECLARE v_id_type_error_warning INT;
|
||||
DECLARE v_has_filter_dog BIT;
|
||||
DECLARE v_guid BINARY(36);
|
||||
DECLARE v_id_permission_dog_view INT;
|
||||
DECLARE v_id_minimum INT;
|
||||
@@ -76,15 +86,22 @@ BEGIN
|
||||
SET v_guid := UUID();
|
||||
SET v_code_type_error_bad_data := 'BAD_DATA';
|
||||
SET v_code_type_error_no_permission := 'NO_PERMISSION';
|
||||
SET v_code_type_error_warning := 'WARNING';
|
||||
SET v_id_type_error_bad_data := (SELECT ERROR_TYPE.id_type FROM demo.CORE_Msg_Error_Type ERROR_TYPE WHERE ERROR_TYPE.code = v_code_type_error_bad_data LIMIT 1);
|
||||
SET v_id_type_error_no_permission := (SELECT ERROR_TYPE.id_type FROM demo.CORE_Msg_Error_Type ERROR_TYPE WHERE ERROR_TYPE.code = v_code_type_error_no_permission LIMIT 1);
|
||||
SET v_id_type_error_warning := (SELECT ERROR_TYPE.id_type FROM demo.CORE_Msg_Error_Type ERROR_TYPE WHERE ERROR_TYPE.code = v_code_type_error_warning LIMIT 1);
|
||||
SET v_id_permission_dog_view := (SELECT PERMISSION.id_permission FROM demo.DOG_Permission PERMISSION WHERE PERMISSION.code = 'DOG_VIEW' LIMIT 1);
|
||||
|
||||
SET a_id_user := IFNULL(a_id_user, 0);
|
||||
SET a_get_all_dog := IFNULL(a_get_all_dog, 0);
|
||||
SET a_get_inactive_dog := IFNULL(a_get_inactive_dog, 0);
|
||||
SET a_ids_dog := TRIM(IFNULL(a_ids_dog, ''));
|
||||
SET a_names_dog := TRIM(IFNULL(a_names_dog, ''));
|
||||
-- SET a_get_all_dog := IFNULL(a_get_all_dog, 0);
|
||||
-- SET a_get_inactive_dog := IFNULL(a_get_inactive_dog, 0);
|
||||
-- SET a_ids_dog := TRIM(IFNULL(a_ids_dog, ''));
|
||||
-- SET a_get_all_command_category := IFNULL(a_get_all_command_category, 0);
|
||||
-- SET a_get_inactive_command_category := IFNULL(a_get_inactive_command_category, 0);
|
||||
-- SET a_ids_command_category := TRIM(IFNULL(a_ids_command_category, ''));
|
||||
-- SET a_get_all_command := IFNULL(a_get_all_command, 0);
|
||||
-- SET a_get_inactive_command := IFNULL(a_get_inactive_command, 0);
|
||||
-- SET a_ids_command := TRIM(IFNULL(a_ids_command, ''));
|
||||
SET a_debug := IFNULL(a_debug, 0);
|
||||
|
||||
IF a_debug = 1 THEN
|
||||
@@ -94,26 +111,57 @@ BEGIN
|
||||
, a_get_inactive_dog
|
||||
, a_ids_dog
|
||||
, a_names_dog
|
||||
, a_get_all_command_category
|
||||
, a_get_inactive_command_category
|
||||
, a_ids_command_category
|
||||
, a_names_command_category
|
||||
, a_get_all_command
|
||||
, a_get_inactive_command
|
||||
, a_ids_command
|
||||
, a_names_command
|
||||
, a_debug
|
||||
;
|
||||
|
||||
SELECT
|
||||
v_id_type_error_bad_data
|
||||
, v_id_type_error_no_permission
|
||||
, v_id_type_error_warning
|
||||
, v_guid
|
||||
, v_id_permission_dog_view
|
||||
, v_time_start
|
||||
;
|
||||
END IF;
|
||||
|
||||
DROP TEMPORARY TABLE IF EXISTS tmp_Split_Name;
|
||||
DROP TEMPORARY TABLE IF EXISTS tmp_Split_Id;
|
||||
DROP TEMPORARY TABLE IF EXISTS tmp_Split;
|
||||
DROP TEMPORARY TABLE IF EXISTS tmp_Msg_Error;
|
||||
DROP TEMPORARY TABLE IF EXISTS tmp_Command;
|
||||
DROP TEMPORARY TABLE IF EXISTS tmp_Command_Category;
|
||||
DROP TEMPORARY TABLE IF EXISTS tmp_Dog;
|
||||
|
||||
CREATE TEMPORARY TABLE tmp_Dog (
|
||||
id_dog INT NOT NULL
|
||||
, name VARCHAR(250)
|
||||
, appearance VARCHAR(1000)
|
||||
, mass_kg DECIMAL(7, 3)
|
||||
, notes TEXT
|
||||
, active BIT
|
||||
);
|
||||
|
||||
CREATE TEMPORARY TABLE tmp_Command_Category (
|
||||
id_command_category INT NOT NULL
|
||||
, code VARCHAR(100)
|
||||
, name VARCHAR(250)
|
||||
, active BIT
|
||||
);
|
||||
|
||||
CREATE TEMPORARY TABLE tmp_Command (
|
||||
id_command INT NOT NULL
|
||||
, id_command_category INT NOT NULL
|
||||
, name VARCHAR(250)
|
||||
, hand_signal_default_description TEXT
|
||||
, can_have_button BIT
|
||||
, notes TEXT
|
||||
, active BIT
|
||||
);
|
||||
|
||||
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error (
|
||||
@@ -123,157 +171,6 @@ BEGIN
|
||||
, msg VARCHAR(4000) NOT NULL
|
||||
);
|
||||
|
||||
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Split_Id (
|
||||
substring VARCHAR(4000) NOT NULL
|
||||
, as_int INT NULL
|
||||
);
|
||||
DELETE FROM tmp_Split_Id;
|
||||
|
||||
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Split_Name (
|
||||
substring VARCHAR(4000) NOT NULL
|
||||
, as_int INT NULL
|
||||
);
|
||||
DELETE FROM tmp_Split_Name;
|
||||
|
||||
CALL demo.p_core_validate_guid ( v_guid );
|
||||
|
||||
SET v_has_filter_dog_id = CASE WHEN a_ids_dog = '' THEN 0 ELSE 1 END;
|
||||
SET v_has_filter_dog_name = CASE WHEN a_names_dog = '' THEN 0 ELSE 1 END;
|
||||
|
||||
-- Dogs
|
||||
IF v_has_filter_dog_id = 1 THEN
|
||||
CALL demo.p_split(v_guid, a_ids_dog, ',', a_debug);
|
||||
|
||||
INSERT INTO tmp_Split_Id (
|
||||
substring
|
||||
, as_int
|
||||
)
|
||||
SELECT
|
||||
SPLIT_T.substring
|
||||
, CONVERT(SPLIT_T.substring, DECIMAL(10,0)) AS as_int
|
||||
FROM demo.CORE_Split_Temp SPLIT_T
|
||||
WHERE
|
||||
SPLIT_T.GUID = v_guid
|
||||
AND IFNULL(SPLIT_T.substring, '') <> ''
|
||||
;
|
||||
|
||||
CALL demo.p_clear_split_temp( v_guid );
|
||||
END IF;
|
||||
|
||||
IF v_has_filter_dog_name = 1 THEN
|
||||
CALL demo.p_split(v_guid, a_names_dog, ',', a_debug);
|
||||
|
||||
INSERT INTO tmp_Split_Name (
|
||||
substring
|
||||
, as_int
|
||||
)
|
||||
SELECT
|
||||
SPLIT_T.substring
|
||||
, CONVERT(SPLIT_T.substring, DECIMAL(10,0)) AS as_int
|
||||
FROM demo.CORE_Split_Temp SPLIT_T
|
||||
WHERE
|
||||
SPLIT_T.GUID = v_guid
|
||||
AND IFNULL(SPLIT_T.substring, '') <> ''
|
||||
;
|
||||
|
||||
CALL demo.p_clear_split_temp( v_guid );
|
||||
END IF;
|
||||
|
||||
IF NOT EXISTS (SELECT * FROM tmp_Msg_Error t_ERROR INNER JOIN demo.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type WHERE ERROR_TYPE.is_breaking_error = 1 LIMIT 1) THEN
|
||||
IF EXISTS (
|
||||
SELECT *
|
||||
FROM tmp_Split_Id t_SPLIT_ID
|
||||
LEFT JOIN demo.DOG_Dog DOG ON t_SPLIT_ID.as_int = DOG.id_dog
|
||||
WHERE
|
||||
ISNULL(t_SPLIT_ID.as_int)
|
||||
OR ISNULL(DOG.id_dog)
|
||||
OR (
|
||||
DOG.active = 0
|
||||
AND a_get_inactive_dog = 0
|
||||
)
|
||||
) THEN
|
||||
INSERT INTO tmp_Msg_Error (
|
||||
id_type
|
||||
, code
|
||||
, msg
|
||||
)
|
||||
SELECT
|
||||
v_id_type_error_bad_data
|
||||
, v_code_type_error_bad_data
|
||||
, CONCAT('Invalid or inactive Dog IDs: ', IFNULL(GROUP_CONCAT(t_SPLIT_ID.substring SEPARATOR ', '), 'NULL'))
|
||||
FROM tmp_Split_Id t_SPLIT_ID
|
||||
LEFT JOIN demo.DOG_Dog DOG ON t_SPLIT_ID.as_int = DOG.id_dog
|
||||
WHERE
|
||||
ISNULL(t_SPLIT_ID.as_int)
|
||||
OR ISNULL(DOG.id_dog)
|
||||
OR (
|
||||
DOG.active = 0
|
||||
AND a_get_inactive_dog = 0
|
||||
)
|
||||
;
|
||||
/* Don't error on names not found
|
||||
ELSEIF EXISTS (
|
||||
SELECT *
|
||||
FROM tmp_Split t_SPLIT
|
||||
LEFT JOIN demo.DOG_Dog DOG ON t_SPLIT.as_int = DOG.id_dog
|
||||
WHERE
|
||||
ISNULL(t_SPLIT.as_int)
|
||||
OR ISNULL(DOG.id_dog)
|
||||
OR (
|
||||
DOG.active = 0
|
||||
AND a_get_inactive_dog = 0
|
||||
)
|
||||
) THEN
|
||||
INSERT INTO tmp_Msg_Error (
|
||||
id_type
|
||||
, code
|
||||
, msg
|
||||
)
|
||||
SELECT
|
||||
v_id_type_error_bad_data
|
||||
, v_code_type_error_bad_data
|
||||
, CONCAT('Invalid or inactive Dog IDs: ', IFNULL(GROUP_CONCAT(t_SPLIT.substring SEPARATOR ', '), 'NULL'))
|
||||
FROM tmp_Split t_SPLIT
|
||||
LEFT JOIN demo.DOG_Dog DOG ON t_SPLIT.as_int = DOG.id_dog
|
||||
WHERE
|
||||
ISNULL(t_SPLIT.as_int)
|
||||
OR ISNULL(DOG.id_dog)
|
||||
OR (
|
||||
DOG.active = 0
|
||||
AND a_get_inactive_dog = 0
|
||||
)
|
||||
;
|
||||
*/
|
||||
ELSE
|
||||
INSERT INTO tmp_Dog (
|
||||
id_dog
|
||||
, name
|
||||
)
|
||||
SELECT
|
||||
DOG.id_dog
|
||||
, DOG.name
|
||||
FROM demo.DOG_Dog DOG
|
||||
LEFT JOIN tmp_Split_Id t_SPLIT_ID ON DOG.id_dog = t_SPLIT_ID.as_int
|
||||
LEFT JOIN tmp_Split_Name t_SPLIT_NAME ON DOG.name = t_SPLIT_NAME.substring
|
||||
WHERE
|
||||
(
|
||||
a_get_all_dog = 1
|
||||
OR (
|
||||
v_has_filter_dog_id = 1
|
||||
OR v_has_filter_dog_name = 1
|
||||
)
|
||||
)
|
||||
AND (
|
||||
a_get_inactive_dog = 1
|
||||
OR DOG.active = 1
|
||||
)
|
||||
;
|
||||
END IF;
|
||||
END IF;
|
||||
|
||||
DELETE FROM tmp_Split_Id;
|
||||
DELETE FROM tmp_Split_Name;
|
||||
|
||||
|
||||
-- Permissions
|
||||
IF a_debug = 1 THEN
|
||||
@@ -286,11 +183,11 @@ BEGIN
|
||||
;
|
||||
END IF;
|
||||
|
||||
CALL demo.p_DOG_calc_user(
|
||||
v_guid
|
||||
, a_id_user
|
||||
CALL demo.p_dog_calc_user(
|
||||
v_guid -- a_guid
|
||||
, a_id_user -- a_ids_user
|
||||
, FALSE -- a_get_inactive_user
|
||||
, v_id_permission_dog_view
|
||||
, v_id_permission_dog_view -- a_ids_permission
|
||||
, 0 -- a_debug
|
||||
);
|
||||
|
||||
@@ -320,35 +217,175 @@ BEGIN
|
||||
VALUES (
|
||||
v_id_type_error_no_permission
|
||||
, v_code_type_error_no_permission
|
||||
, 'You do not have permission to view Commands.'
|
||||
, 'You do not have permission to view Dogs and Commands.'
|
||||
)
|
||||
;
|
||||
END IF;
|
||||
|
||||
CALL demo.p_DOG_clear_calc_user(
|
||||
CALL demo.p_dog_clear_calc_user(
|
||||
v_guid
|
||||
, 0 -- a_debug
|
||||
);
|
||||
|
||||
IF EXISTS(SELECT * FROM tmp_Msg_Error t_ERROR INNER JOIN demo.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type WHERE ERROR_TYPE.is_breaking_error = 1 LIMIT 1) THEN
|
||||
-- Call Dog Calc
|
||||
IF NOT EXISTS(SELECT * FROM tmp_Msg_Error t_ERROR INNER JOIN demo.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type WHERE ERROR_TYPE.is_breaking_error = 1 LIMIT 1) THEN
|
||||
IF a_debug = 1 THEN
|
||||
SELECT
|
||||
v_guid -- a_guid
|
||||
, a_id_user -- a_id_user
|
||||
, a_get_all_dog -- a_get_all_dog
|
||||
, a_get_inactive_dog -- a_get_inactive_dog
|
||||
, a_ids_dog -- a_ids_dog
|
||||
, a_names_dog -- a_names_dog
|
||||
, 0 -- a_show_errors
|
||||
, 0 -- a_debug
|
||||
;
|
||||
END IF;
|
||||
|
||||
CALL demo.p_dog_calc_dog(
|
||||
v_guid -- a_guid
|
||||
, a_id_user -- a_id_user
|
||||
, a_get_all_dog -- a_get_all_dog
|
||||
, a_get_inactive_dog -- a_get_inactive_dog
|
||||
, a_ids_dog -- a_ids_dog
|
||||
, a_names_dog -- a_names_dog
|
||||
, 0 -- a_show_errors
|
||||
, 0 -- a_debug
|
||||
);
|
||||
|
||||
INSERT INTO tmp_Dog (
|
||||
id_dog
|
||||
, name
|
||||
, appearance
|
||||
, mass_kg
|
||||
, notes
|
||||
, active
|
||||
)
|
||||
SELECT
|
||||
DOG_T.id_dog
|
||||
, DOG_T.name
|
||||
, DOG_T.appearance
|
||||
, DOG_T.mass_kg
|
||||
, DOG_T.notes
|
||||
, DOG_T.active
|
||||
FROM demo.DOG_Dog_Temp DOG_T
|
||||
WHERE DOG_T.GUID = v_guid
|
||||
;
|
||||
|
||||
IF a_debug = 1 THEN
|
||||
SELECT * FROM tmp_Dog;
|
||||
END IF;
|
||||
END IF;
|
||||
|
||||
-- Call Command Calc
|
||||
IF NOT EXISTS(SELECT * FROM tmp_Msg_Error t_ERROR INNER JOIN demo.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type WHERE ERROR_TYPE.is_breaking_error = 1 LIMIT 1) THEN
|
||||
IF a_debug = 1 THEN
|
||||
SELECT
|
||||
v_guid -- a_guid
|
||||
, a_id_user -- a_id_user
|
||||
, a_get_all_command_category
|
||||
, a_get_inactive_command_category
|
||||
, a_ids_command_category
|
||||
, a_names_command_category
|
||||
, a_get_all_command -- a_get_all_command
|
||||
, a_get_inactive_command -- a_get_inactive_command
|
||||
, a_ids_command -- a_ids_command
|
||||
, a_names_command -- a_names_command
|
||||
, 0 -- a_show_errors
|
||||
, 0 -- a_debug
|
||||
;
|
||||
END IF;
|
||||
|
||||
CALL demo.p_dog_calc_command (
|
||||
v_guid -- a_guid
|
||||
, a_id_user -- a_id_user
|
||||
, a_get_all_command_category
|
||||
, a_get_inactive_command_category
|
||||
, a_ids_command_category
|
||||
, a_names_command_category
|
||||
, a_get_all_command -- a_get_all_command
|
||||
, a_get_inactive_command -- a_get_inactive_command
|
||||
, a_ids_command -- a_ids_command
|
||||
, a_names_command -- a_names_command
|
||||
, 0 -- a_show_errors
|
||||
, 0 -- a_debug
|
||||
);
|
||||
|
||||
INSERT INTO tmp_Command_Category (
|
||||
id_command_category
|
||||
, code
|
||||
, name
|
||||
, active
|
||||
)
|
||||
SELECT
|
||||
COMMAND_CATEGORY_T.id_command_category
|
||||
, COMMAND_CATEGORY_T.code
|
||||
, COMMAND_CATEGORY_T.name
|
||||
, COMMAND_CATEGORY_T.active
|
||||
FROM demo.DOG_Command_Category_Temp COMMAND_CATEGORY_T
|
||||
WHERE COMMAND_CATEGORY_T.GUID = v_guid
|
||||
;
|
||||
|
||||
INSERT INTO tmp_Command (
|
||||
id_command
|
||||
, id_command_category
|
||||
, name
|
||||
, hand_signal_default_description
|
||||
, can_have_button
|
||||
, notes
|
||||
, active
|
||||
)
|
||||
SELECT
|
||||
COMMAND_T.id_command
|
||||
, COMMAND_T.id_command_category
|
||||
, COMMAND_T.name
|
||||
, COMMAND_T.hand_signal_default_description
|
||||
, COMMAND_T.can_have_button
|
||||
, COMMAND_T.notes
|
||||
, COMMAND_T.active
|
||||
FROM demo.DOG_Command_Temp COMMAND_T
|
||||
WHERE COMMAND_T.GUID = v_guid
|
||||
;
|
||||
|
||||
IF a_debug = 1 THEN
|
||||
SELECT * FROM tmp_Command_Category;
|
||||
SELECT * FROM tmp_Command;
|
||||
END IF;
|
||||
END IF;
|
||||
|
||||
|
||||
-- Filter outputs
|
||||
IF EXISTS(SELECT * FROM tmp_Msg_Error t_ERROR INNER JOIN demo.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type WHERE ERROR_TYPE.is_breaking_error = 1 LIMIT 1) THEN
|
||||
IF a_debug = 1 THEN
|
||||
SELECT * FROM tmp_Dog;
|
||||
SELECT * FROM tmp_Command;
|
||||
SELECT * FROM tmp_Command_Category;
|
||||
END IF;
|
||||
|
||||
DELETE FROM tmp_Dog;
|
||||
DELETE FROM tmp_Command;
|
||||
DELETE FROM tmp_Command_Category;
|
||||
END IF;
|
||||
|
||||
-- Outputs
|
||||
-- Commands
|
||||
SELECT
|
||||
t_DOG.id_dog
|
||||
, t_DOG.name
|
||||
, DOG.appearance
|
||||
, DOG.mass_kg
|
||||
, DOG.notes
|
||||
, DOG.active
|
||||
FROM demo.DOG_Dog DOG
|
||||
INNER JOIN tmp_Dog t_DOG ON DOG.id_dog = t_DOG.id_dog
|
||||
DOG_COMMAND_LINK.id_link AS id_dog_command_link
|
||||
, t_DOG.id_dog
|
||||
, t_DOG.name AS name_dog
|
||||
, t_COMMAND.id_command_category
|
||||
, t_COMMAND_CATEGORY.name AS name_command_category
|
||||
, t_COMMAND.id_command
|
||||
, t_COMMAND.name AS name_command
|
||||
-- , t_COMMAND.has_button AS command_has_button
|
||||
, COALESCE(DOG_COMMAND_LINK.hand_signal_description, t_COMMAND.hand_signal_default_description) AS hand_signal_description_command
|
||||
, t_COMMAND.can_have_button AS can_have_button_command
|
||||
, DOG_COMMAND_LINK.notes
|
||||
, DOG_COMMAND_LINK.active
|
||||
FROM demo.DOG_Dog_Command_Link DOG_COMMAND_LINK
|
||||
INNER JOIN tmp_Dog t_DOG ON DOG_COMMAND_LINK.id_dog = t_DOG.id_dog
|
||||
INNER JOIN tmp_Command t_COMMAND ON DOG_COMMAND_LINK.id_command = t_COMMAND.id_command
|
||||
INNER JOIN tmp_Command_Category t_COMMAND_CATEGORY ON t_COMMAND.id_command_category = t_COMMAND_CATEGORY.id_command_category
|
||||
;
|
||||
|
||||
-- Errors
|
||||
@@ -368,11 +405,14 @@ BEGIN
|
||||
|
||||
IF a_debug = 1 AND v_can_view = 1 THEN
|
||||
SELECT * FROM tmp_Dog;
|
||||
SELECT * FROM tmp_Command;
|
||||
SELECT * FROM tmp_Command_Category;
|
||||
END IF;
|
||||
|
||||
DROP TEMPORARY TABLE IF EXISTS tmp_Split_Name;
|
||||
DROP TEMPORARY TABLE IF EXISTS tmp_Split_Id;
|
||||
DROP TEMPORARY TABLE IF EXISTS tmp_Split;
|
||||
DROP TEMPORARY TABLE IF EXISTS tmp_Msg_Error;
|
||||
DROP TEMPORARY TABLE IF EXISTS tmp_Command;
|
||||
DROP TEMPORARY TABLE IF EXISTS tmp_Command_Category;
|
||||
DROP TEMPORARY TABLE IF EXISTS tmp_Dog;
|
||||
|
||||
IF a_debug = 1 THEN
|
||||
@@ -382,378 +422,37 @@ END //
|
||||
DELIMITER ;
|
||||
|
||||
|
||||
/*
|
||||
|
||||
USE demo;
|
||||
|
||||
DROP PROCEDURE IF EXISTS demo.p_DOG_get_many_command;
|
||||
|
||||
DELIMITER //
|
||||
CREATE PROCEDURE demo.p_DOG_get_many_command (
|
||||
IN a_id_user INT
|
||||
, IN a_get_all_command BIT
|
||||
, IN a_get_inactive_command BIT
|
||||
, IN a_ids_command TEXT
|
||||
, IN a_names_command TEXT
|
||||
, IN a_debug BIT
|
||||
)
|
||||
BEGIN
|
||||
DECLARE v_code_type_error_bad_data VARCHAR(100);
|
||||
DECLARE v_code_type_error_no_permission VARCHAR(100);
|
||||
DECLARE v_id_type_error_bad_data INT;
|
||||
DECLARE v_id_type_error_no_permission INT;
|
||||
DECLARE v_has_filter_command_id BIT;
|
||||
DECLARE v_has_filter_command_name BIT;
|
||||
DECLARE v_guid BINARY(36);
|
||||
DECLARE v_id_permission_command_view INT;
|
||||
DECLARE v_id_minimum INT;
|
||||
DECLARE v_time_start TIMESTAMP(6);
|
||||
DECLARE v_can_view BIT;
|
||||
|
||||
DECLARE exit handler for SQLEXCEPTION
|
||||
BEGIN
|
||||
GET DIAGNOSTICS CONDITION 1
|
||||
@sqlstate = RETURNED_SQLSTATE
|
||||
, @errno = MYSQL_ERRNO
|
||||
, @text = MESSAGE_TEXT
|
||||
;
|
||||
|
||||
ROLLBACK;
|
||||
|
||||
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error (
|
||||
id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT
|
||||
, id_type INT NULL
|
||||
, code VARCHAR(100) NOT NULL
|
||||
, msg VARCHAR(4000) NOT NULL
|
||||
);
|
||||
|
||||
INSERT INTO tmp_Msg_Error (
|
||||
id_type
|
||||
, code
|
||||
, msg
|
||||
)
|
||||
SELECT
|
||||
MET.id_type
|
||||
, @errno
|
||||
, @text
|
||||
FROM demo.CORE_Msg_Error_Type MET
|
||||
WHERE MET.code = 'MYSQL_ERROR'
|
||||
;
|
||||
|
||||
SELECT
|
||||
t_ERROR.id_error
|
||||
, t_ERROR.id_type
|
||||
, t_ERROR.code
|
||||
, ERROR_TYPE.name
|
||||
, ERROR_TYPE.description
|
||||
, ERROR_TYPE.is_breaking_error
|
||||
, ERROR_TYPE.background_colour
|
||||
, ERROR_TYPE.text_colour
|
||||
, t_ERROR.msg
|
||||
FROM tmp_Msg_Error t_ERROR
|
||||
INNER JOIN demo.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type
|
||||
;
|
||||
|
||||
DROP TABLE IF EXISTS tmp_Msg_Error;
|
||||
END;
|
||||
|
||||
SET v_time_start := CURRENT_TIMESTAMP(6);
|
||||
SET v_guid := UUID();
|
||||
SET v_code_type_error_bad_data := 'BAD_DATA';
|
||||
SET v_code_type_error_no_permission := 'NO_PERMISSION';
|
||||
SET v_id_type_error_bad_data := (SELECT ERROR_TYPE.id_type FROM demo.CORE_Msg_Error_Type ERROR_TYPE WHERE ERROR_TYPE.code = v_code_type_error_bad_data LIMIT 1);
|
||||
SET v_id_type_error_no_permission := (SELECT ERROR_TYPE.id_type FROM demo.CORE_Msg_Error_Type ERROR_TYPE WHERE ERROR_TYPE.code = v_code_type_error_no_permission LIMIT 1);
|
||||
SET v_id_permission_command_view := (SELECT PERMISSION.id_permission FROM demo.DOG_Permission PERMISSION WHERE PERMISSION.code = 'DOG_VIEW' LIMIT 1);
|
||||
|
||||
SET a_id_user := IFNULL(a_id_user, 0);
|
||||
SET a_get_all_command := IFNULL(a_get_all_command, 0);
|
||||
SET a_get_inactive_command := IFNULL(a_get_inactive_command, 0);
|
||||
SET a_ids_command := TRIM(IFNULL(a_ids_command, ''));
|
||||
SET a_names_command := TRIM(IFNULL(a_names_command, ''));
|
||||
SET a_debug := IFNULL(a_debug, 0);
|
||||
|
||||
IF a_debug = 1 THEN
|
||||
SELECT
|
||||
a_id_user
|
||||
, a_get_all_command
|
||||
, a_get_inactive_command
|
||||
, a_ids_command
|
||||
, a_names_command
|
||||
, a_debug
|
||||
;
|
||||
|
||||
SELECT
|
||||
v_id_type_error_bad_data
|
||||
, v_id_type_error_no_permission
|
||||
, v_guid
|
||||
, v_id_permission_command_view
|
||||
, v_time_start
|
||||
;
|
||||
END IF;
|
||||
|
||||
DROP TEMPORARY TABLE IF EXISTS tmp_Split_Name;
|
||||
DROP TEMPORARY TABLE IF EXISTS tmp_Split_Id;
|
||||
DROP TEMPORARY TABLE IF EXISTS tmp_Msg_Error;
|
||||
DROP TEMPORARY TABLE IF EXISTS tmp_Command;
|
||||
|
||||
CREATE TEMPORARY TABLE tmp_Command (
|
||||
id_command INT NOT NULL
|
||||
, name VARCHAR(250)
|
||||
);
|
||||
|
||||
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error (
|
||||
id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT
|
||||
, id_type INT NULL
|
||||
, code VARCHAR(100) NOT NULL
|
||||
, msg VARCHAR(4000) NOT NULL
|
||||
);
|
||||
|
||||
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Split_Id (
|
||||
substring VARCHAR(4000) NOT NULL
|
||||
, as_int INT NULL
|
||||
);
|
||||
DELETE FROM tmp_Split_Id;
|
||||
|
||||
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Split_Name (
|
||||
substring VARCHAR(4000) NOT NULL
|
||||
, as_int INT NULL
|
||||
);
|
||||
DELETE FROM tmp_Split_Name;
|
||||
|
||||
CALL demo.p_core_validate_guid ( v_guid );
|
||||
|
||||
SET v_has_filter_command_id = CASE WHEN a_ids_command = '' THEN 0 ELSE 1 END;
|
||||
SET v_has_filter_command_name = CASE WHEN a_names_command = '' THEN 0 ELSE 1 END;
|
||||
|
||||
-- Commands
|
||||
IF v_has_filter_command_id = 1 THEN
|
||||
CALL demo.p_split(v_guid, a_ids_command, ',', a_debug);
|
||||
|
||||
INSERT INTO tmp_Split_Id (
|
||||
substring
|
||||
, as_int
|
||||
)
|
||||
SELECT
|
||||
SPLIT_T.substring
|
||||
, CONVERT(SPLIT_T.substring, DECIMAL(10,0)) AS as_int
|
||||
FROM demo.CORE_Split_Temp SPLIT_T
|
||||
WHERE
|
||||
SPLIT_T.GUID = v_guid
|
||||
AND IFNULL(SPLIT_T.substring, '') <> ''
|
||||
;
|
||||
|
||||
CALL demo.p_clear_split_temp( v_guid );
|
||||
END IF;
|
||||
|
||||
IF v_has_filter_command_name = 1 THEN
|
||||
CALL demo.p_split(v_guid, a_names_command, ',', a_debug);
|
||||
|
||||
INSERT INTO tmp_Split_Name (
|
||||
substring
|
||||
, as_int
|
||||
)
|
||||
SELECT
|
||||
SPLIT_T.substring
|
||||
, CONVERT(SPLIT_T.substring, DECIMAL(10,0)) AS as_int
|
||||
FROM demo.CORE_Split_Temp SPLIT_T
|
||||
WHERE
|
||||
SPLIT_T.GUID = v_guid
|
||||
AND IFNULL(SPLIT_T.substring, '') <> ''
|
||||
;
|
||||
|
||||
CALL demo.p_clear_split_temp( v_guid );
|
||||
END IF;
|
||||
|
||||
IF NOT EXISTS (SELECT * FROM tmp_Msg_Error t_ERROR INNER JOIN demo.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type WHERE ERROR_TYPE.is_breaking_error = 1 LIMIT 1) THEN
|
||||
IF EXISTS (
|
||||
SELECT *
|
||||
FROM tmp_Split_Id t_SPLIT_ID
|
||||
LEFT JOIN demo.DOG_Command COMMAND ON t_SPLIT_ID.as_int = COMMAND.id_command
|
||||
WHERE
|
||||
ISNULL(t_SPLIT_ID.as_int)
|
||||
OR ISNULL(COMMAND.id_command)
|
||||
OR (
|
||||
COMMAND.active = 0
|
||||
AND a_get_inactive_command = 0
|
||||
)
|
||||
) THEN
|
||||
INSERT INTO tmp_Msg_Error (
|
||||
id_type
|
||||
, code
|
||||
, msg
|
||||
)
|
||||
SELECT
|
||||
v_id_type_error_bad_data
|
||||
, v_code_type_error_bad_data
|
||||
, CONCAT('Invalid or inactive Command IDs: ', IFNULL(GROUP_CONCAT(t_SPLIT_ID.substring SEPARATOR ', '), 'NULL'))
|
||||
FROM tmp_Split_Id t_SPLIT_ID
|
||||
LEFT JOIN demo.DOG_Command COMMAND ON t_SPLIT_ID.as_int = COMMAND.id_command
|
||||
WHERE
|
||||
ISNULL(t_SPLIT_ID.as_int)
|
||||
OR ISNULL(COMMAND.id_command)
|
||||
OR (
|
||||
COMMAND.active = 0
|
||||
AND a_get_inactive_command = 0
|
||||
)
|
||||
;
|
||||
/* Don't error on codes or names not found
|
||||
ELSEIF EXISTS (
|
||||
SELECT *
|
||||
*/
|
||||
ELSE
|
||||
INSERT INTO tmp_Command (
|
||||
id_command
|
||||
, name
|
||||
)
|
||||
SELECT
|
||||
COMMAND.id_command
|
||||
, COMMAND.name
|
||||
FROM demo.DOG_Command COMMAND
|
||||
LEFT JOIN tmp_Split_Id t_SPLIT_ID ON COMMAND.id_command = t_SPLIT_ID.as_int
|
||||
LEFT JOIN tmp_Split_Name t_SPLIT_NAME ON COMMAND.name = t_SPLIT_NAME.substring
|
||||
WHERE
|
||||
(
|
||||
a_get_all_command = 1
|
||||
OR (
|
||||
v_has_filter_command_id = 1
|
||||
OR v_has_filter_command_name = 1
|
||||
)
|
||||
)
|
||||
AND (
|
||||
a_get_inactive_command = 1
|
||||
OR COMMAND.active = 1
|
||||
)
|
||||
;
|
||||
END IF;
|
||||
END IF;
|
||||
|
||||
DELETE FROM tmp_Split_Id;
|
||||
DELETE FROM tmp_Split_Name;
|
||||
|
||||
|
||||
-- Permissions
|
||||
IF a_debug = 1 THEN
|
||||
SELECT
|
||||
v_guid
|
||||
, a_id_user
|
||||
, FALSE -- a_get_inactive_user
|
||||
, v_id_permission_command_view
|
||||
, 0 -- a_debug
|
||||
;
|
||||
END IF;
|
||||
|
||||
CALL demo.p_DOG_calc_user(
|
||||
v_guid
|
||||
, a_id_user
|
||||
, FALSE -- a_get_inactive_user
|
||||
, v_id_permission_command_view
|
||||
, 0 -- a_debug
|
||||
);
|
||||
|
||||
SELECT
|
||||
IFNULL(CALC_USER_T.has_access, 0)
|
||||
INTO
|
||||
v_can_view
|
||||
FROM demo.DOG_Calc_User_Temp CALC_USER_T
|
||||
WHERE CALC_USER_T.GUID = v_guid
|
||||
LIMIT 1
|
||||
;
|
||||
|
||||
IF a_debug = 1 THEN
|
||||
SELECT v_can_view;
|
||||
END IF;
|
||||
|
||||
IF (v_can_view = 0) THEN
|
||||
DELETE t_ME
|
||||
FROM tmp_Msg_Error t_ME
|
||||
WHERE t_ME.id_type <> v_id_type_error_no_permission
|
||||
;
|
||||
INSERT INTO tmp_Msg_Error (
|
||||
id_type
|
||||
, code
|
||||
, msg
|
||||
)
|
||||
VALUES (
|
||||
v_id_type_error_no_permission
|
||||
, v_code_type_error_no_permission
|
||||
, 'You do not have permission to view Commands.'
|
||||
)
|
||||
;
|
||||
END IF;
|
||||
|
||||
CALL demo.p_DOG_clear_calc_user(
|
||||
v_guid
|
||||
, 0 -- a_debug
|
||||
);
|
||||
|
||||
IF EXISTS(SELECT * FROM tmp_Msg_Error t_ERROR INNER JOIN demo.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type WHERE ERROR_TYPE.is_breaking_error = 1 LIMIT 1) THEN
|
||||
IF a_debug = 1 THEN
|
||||
SELECT * FROM tmp_Command;
|
||||
END IF;
|
||||
|
||||
DELETE FROM tmp_Command;
|
||||
END IF;
|
||||
|
||||
-- Outputs
|
||||
-- Commands
|
||||
SELECT
|
||||
t_COMMAND.id_command
|
||||
, COMMAND.id_command_category
|
||||
, t_COMMAND.name
|
||||
, COMMAND.hand_signal_default_description
|
||||
, COMMAND.can_have_button
|
||||
, COMMAND.notes
|
||||
, COMMAND.active
|
||||
FROM demo.DOG_Command COMMAND
|
||||
INNER JOIN tmp_Command t_COMMAND ON COMMAND.id_command = t_COMMAND.id_command
|
||||
;
|
||||
|
||||
-- Errors
|
||||
SELECT
|
||||
t_ERROR.id_error
|
||||
, t_ERROR.id_type
|
||||
, t_ERROR.code
|
||||
, ERROR_TYPE.name
|
||||
, ERROR_TYPE.description
|
||||
, ERROR_TYPE.is_breaking_error
|
||||
, ERROR_TYPE.background_colour
|
||||
, ERROR_TYPE.text_colour
|
||||
, t_ERROR.msg
|
||||
FROM tmp_Msg_Error t_ERROR
|
||||
INNER JOIN demo.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type
|
||||
;
|
||||
|
||||
IF a_debug = 1 AND v_can_view = 1 THEN
|
||||
SELECT * FROM tmp_Command;
|
||||
END IF;
|
||||
|
||||
DROP TEMPORARY TABLE IF EXISTS tmp_Split_Name;
|
||||
DROP TEMPORARY TABLE IF EXISTS tmp_Split_Id;
|
||||
DROP TEMPORARY TABLE IF EXISTS tmp_Msg_Error;
|
||||
DROP TEMPORARY TABLE IF EXISTS tmp_Command;
|
||||
|
||||
IF a_debug = 1 THEN
|
||||
CALL demo.p_core_debug_timing_reporting ( v_time_start );
|
||||
END IF;
|
||||
END //
|
||||
DELIMITER ;
|
||||
|
||||
|
||||
CALL demo.p_DOG_get_many_dog (
|
||||
CALL demo.p_dog_get_many_dog_command_link (
|
||||
1 -- 'auth0|6582b95c895d09a70ba10fef', -- a_id_user
|
||||
, 1 -- a_get_all_dog
|
||||
, 0 -- a_get_inactive_dog
|
||||
, '' -- a_ids_dog
|
||||
, '' -- a_names_dog
|
||||
, 1 -- a_debug
|
||||
);
|
||||
|
||||
|
||||
|
||||
CALL demo.p_DOG_get_many_command (
|
||||
1 -- 'auth0|6582b95c895d09a70ba10fef', -- a_id_user
|
||||
, 1 -- a_get_all_command_category
|
||||
, 0 -- a_get_inactive_command_category
|
||||
, '' -- a_ids_command_category
|
||||
, 1 -- a_get_all_command
|
||||
, 0 -- a_get_inactive_command
|
||||
, '' -- a_ids_command
|
||||
, '' -- a_names_command
|
||||
, 1 -- a_debug
|
||||
);
|
||||
|
||||
CALL demo.p_dog_get_many_dog_command_link (
|
||||
1 -- 'auth0|6582b95c895d09a70ba10fef', -- a_id_user
|
||||
, 1 -- a_get_all_dog
|
||||
, 0 -- a_get_inactive_dog
|
||||
, '' -- a_ids_dog
|
||||
, '' -- a_names_dog
|
||||
, 1 -- a_get_all_command_category
|
||||
, 0 -- a_get_inactive_command_category
|
||||
, '' -- a_ids_command_category
|
||||
, '' -- a_names_command_category
|
||||
, 0 -- a_get_all_command
|
||||
, 0 -- a_get_inactive_command
|
||||
, '2' -- a_ids_command
|
||||
, '2' -- a_names_command
|
||||
, 1 -- a_debug
|
||||
);
|
||||
|
||||
*/
|
||||
@@ -7,10 +7,10 @@ FLUSH PRIVILEGES;
|
||||
USE parts;
|
||||
|
||||
-- Permanent Temp Tables
|
||||
DROP TABLE IF EXISTS parts.tmp_DOG_Calc_User;
|
||||
DROP TABLE IF EXISTS parts.tmp_dog_Calc_User;
|
||||
-- DROP TABLE IF EXISTS parts.tmp_core_Msg_Error;
|
||||
DROP TABLE IF EXISTS parts.tmp_DOG_User;
|
||||
DROP TABLE IF EXISTS parts.tmp_DOG_User_Role_Link;
|
||||
DROP TABLE IF EXISTS parts.tmp_dog_User;
|
||||
DROP TABLE IF EXISTS parts.tmp_dog_User_Role_Link;
|
||||
|
||||
|
||||
-- Permanent Tables
|
||||
@@ -181,16 +181,18 @@ DROP TABLE IF EXISTS parts.CORE_File_Type;
|
||||
DROP TABLE IF EXISTS parts.CORE_Msg_Error_Type;
|
||||
|
||||
-- Stored Procedures
|
||||
DROP PROCEDURE IF EXISTS parts.p_DOG_test_get_many_dog_command;
|
||||
DROP PROCEDURE IF EXISTS parts.p_DOG_test_get_many_command;
|
||||
DROP PROCEDURE IF EXISTS parts.p_DOG_get_many_command;
|
||||
DROP PROCEDURE IF EXISTS parts.p_DOG_get_many_dog_command;
|
||||
DROP PROCEDURE IF EXISTS parts.p_DOG_get_many_dog_command_link;
|
||||
DROP PROCEDURE IF EXISTS parts.p_DOG_test_save_command;
|
||||
DROP PROCEDURE IF EXISTS parts.p_DOG_save_command;
|
||||
DROP PROCEDURE IF EXISTS parts.p_dog_test_get_many_dog_command;
|
||||
DROP PROCEDURE IF EXISTS parts.p_dog_test_get_many_command;
|
||||
DROP PROCEDURE IF EXISTS parts.p_dog_get_many_command;
|
||||
DROP PROCEDURE IF EXISTS parts.p_dog_get_many_dog_command;
|
||||
DROP PROCEDURE IF EXISTS parts.p_dog_get_many_dog_command_link;
|
||||
DROP PROCEDURE IF EXISTS parts.p_dog_test_save_command;
|
||||
DROP PROCEDURE IF EXISTS parts.p_dog_save_command;
|
||||
DROP PROCEDURE IF EXISTS parts.p_command_clear_calc_command;
|
||||
|
||||
DROP PROCEDURE IF EXISTS parts.p_DOG_clear_calc_user;
|
||||
DROP PROCEDURE IF EXISTS parts.p_DOG_calc_user;
|
||||
DROP PROCEDURE IF EXISTS parts.p_dog_clear_calc_user;
|
||||
DROP PROCEDURE IF EXISTS parts.p_dog_calc_user;
|
||||
DROP PROCEDURE IF EXISTS parts.p_clear_split_temp;
|
||||
|
||||
/*
|
||||
DROP PROCEDURE IF EXISTS parts.p_core_clear_split_key_value_pair_csv;
|
||||
@@ -198,9 +200,9 @@ DROP PROCEDURE IF EXISTS parts.p_core_split_key_value_pair_csv;
|
||||
DROP PROCEDURE IF EXISTS parts.p_core_clear_split;
|
||||
DROP PROCEDURE IF EXISTS parts.p_core_split;
|
||||
DROP PROCEDURE IF EXISTS parts.p_clear_split_key_value_pair_csv;
|
||||
DROP PROCEDURE IF EXISTS parts.p_split_key_value_pair_csv;
|
||||
DROP PROCEDURE IF EXISTS parts.p_core_split_key_value_pair_csv;
|
||||
DROP PROCEDURE IF EXISTS parts.p_clear_split;
|
||||
DROP PROCEDURE IF EXISTS parts.p_split;
|
||||
DROP PROCEDURE IF EXISTS parts.p_core_split;
|
||||
|
||||
DROP PROCEDURE IF EXISTS parts.p_core_debug_timing_reporting;
|
||||
DROP PROCEDURE IF EXISTS parts.p_debug_timing_reporting;
|
||||
|
||||
@@ -13,10 +13,11 @@ BEGIN
|
||||
|
||||
START TRANSACTION;
|
||||
|
||||
-- DROP TABLE IF EXISTS
|
||||
DELETE FROM parts.CORE_Split_Temp
|
||||
WHERE GUID = a_guid
|
||||
;
|
||||
-- DROP TABLE IF EXISTS
|
||||
DELETE SPLIT_T
|
||||
FROM parts.CORE_Split_Temp SPLIT_T
|
||||
WHERE SPLIT_T.GUID = a_guid
|
||||
;
|
||||
|
||||
COMMIT;
|
||||
END //
|
||||
|
||||
@@ -13,11 +13,12 @@ BEGIN
|
||||
|
||||
START TRANSACTION;
|
||||
|
||||
-- DROP TABLE IF EXISTS
|
||||
DELETE FROM parts.CORE_Split_Key_Value_Pair_Csv_Temp
|
||||
WHERE GUID = a_guid
|
||||
;
|
||||
|
||||
-- DROP TABLE IF EXISTS
|
||||
DELETE SPLIT_PAIR_T
|
||||
FROM parts.CORE_Split_Key_Value_Pair_Csv_Temp SPLIT_PAIR_T
|
||||
WHERE SPLIT_PAIR_T.GUID = a_guid
|
||||
;
|
||||
|
||||
COMMIT;
|
||||
END //
|
||||
DELIMITER ;
|
||||
|
||||
@@ -18,7 +18,7 @@ CREATE PROCEDURE p_dog_get_many_user (
|
||||
BEGIN
|
||||
DECLARE v_id_access_level_admin INT;
|
||||
DECLARE v_id_access_level_view INT;
|
||||
DECLARE v_id_permission_store_admin INT;
|
||||
DECLARE v_id_permission_dog_admin INT;
|
||||
DECLARE v_id_permission_user INT;
|
||||
DECLARE v_id_permission_user_admin INT;
|
||||
DECLARE v_ids_permission_required VARCHAR(4000);
|
||||
@@ -34,14 +34,14 @@ BEGIN
|
||||
|
||||
SET v_time_start := CURRENT_TIMESTAMP(6);
|
||||
SET v_guid := UUID();
|
||||
SET v_id_access_level_admin := (SELECT id_access_level FROM demo.Shop_Access_Level WHERE code = 'ADMIN' LIMIT 1);
|
||||
SET v_id_access_level_view := (SELECT id_access_level FROM demo.Shop_Access_Level WHERE code = 'VIEW' LIMIT 1);
|
||||
SET v_id_permission_store_admin := (SELECT id_permission FROM demo.Shop_Permission WHERE code = 'STORE_ADMIN' LIMIT 1);
|
||||
SET v_id_permission_user := (SELECT id_permission FROM demo.Shop_Permission WHERE code = 'STORE_USER' LIMIT 1);
|
||||
SET v_id_permission_user_admin := (SELECT id_permission FROM demo.Shop_Permission WHERE code = 'STORE_USER_ADMIN' LIMIT 1);
|
||||
SET v_code_error_bad_data := (SELECT code FROM demo.Shop_Msg_Error_Type WHERE code = 'BAD_DATA' LIMIT 1);
|
||||
SET v_id_type_error_bad_data := (SELECT id_type FROM demo.Shop_Msg_Error_Type WHERE code = v_code_error_bad_data LIMIT 1);
|
||||
SET v_ids_permission_required := CONCAT(v_id_permission_user, ',', v_id_permission_user_admin, ',', v_id_permission_store_admin);
|
||||
SET v_id_access_level_admin := (SELECT id_access_level FROM parts.Shop_Access_Level WHERE code = 'ADMIN' LIMIT 1);
|
||||
SET v_id_access_level_view := (SELECT id_access_level FROM parts.Shop_Access_Level WHERE code = 'VIEW' LIMIT 1);
|
||||
SET v_id_permission_dog_admin := (SELECT id_permission FROM parts.Shop_Permission WHERE code = 'DOG_ADMIN' LIMIT 1);
|
||||
SET v_id_permission_user := (SELECT id_permission FROM parts.Shop_Permission WHERE code = 'USER_VIEW' LIMIT 1);
|
||||
SET v_id_permission_user_admin := (SELECT id_permission FROM parts.Shop_Permission WHERE code = 'USER_ADMIN' LIMIT 1);
|
||||
SET v_code_error_bad_data := (SELECT code FROM parts.Shop_Msg_Error_Type WHERE code = 'BAD_DATA' LIMIT 1);
|
||||
SET v_id_type_error_bad_data := (SELECT id_type FROM parts.Shop_Msg_Error_Type WHERE code = v_code_error_bad_data LIMIT 1);
|
||||
SET v_ids_permission_required := CONCAT(v_id_permission_user, ',', v_id_permission_user_admin, ',', v_id_permission_dog_admin);
|
||||
SET v_is_new := FALSE;
|
||||
|
||||
SET a_get_all_user := IFNULL(a_get_all_user, 1);
|
||||
@@ -70,7 +70,7 @@ BEGIN
|
||||
CREATE TEMPORARY TABLE tmp_User (
|
||||
id_user INT NULL
|
||||
, rank_user INT NULL
|
||||
, can_admin_store BIT NULL
|
||||
, can_admin_dog BIT NULL
|
||||
, can_admin_user BIT NULL
|
||||
);
|
||||
|
||||
@@ -88,12 +88,12 @@ BEGIN
|
||||
);
|
||||
|
||||
IF ISNULL(a_id_user) AND NOT ISNULL(a_id_user_auth0) THEN
|
||||
SET a_id_user := (SELECT U.id_user FROM demo.Shop_User U WHERE U.id_user_auth0 = a_id_user_auth0 LIMIT 1); -- LIKE CONCAT('%', a_id_user_auth0, '%') LIMIT 1);
|
||||
SET a_id_user := (SELECT U.id_user FROM parts.Shop_User U WHERE U.id_user_auth0 = a_id_user_auth0 LIMIT 1); -- LIKE CONCAT('%', a_id_user_auth0, '%') LIMIT 1);
|
||||
END IF;
|
||||
|
||||
IF ISNULL(a_id_user) THEN
|
||||
IF NOT ISNULL(a_id_user_auth0) THEN
|
||||
INSERT INTO demo.Shop_User (
|
||||
INSERT INTO parts.Shop_User (
|
||||
id_user_auth0
|
||||
, is_super_user
|
||||
, active
|
||||
@@ -104,7 +104,7 @@ BEGIN
|
||||
, 1 -- active
|
||||
)
|
||||
;
|
||||
SET a_id_user := (SELECT U.id_user FROM demo.Shop_User U WHERE U.id_user_auth0 = a_id_user_auth0 LIMIT 1);
|
||||
SET a_id_user := (SELECT U.id_user FROM parts.Shop_User U WHERE U.id_user_auth0 = a_id_user_auth0 LIMIT 1);
|
||||
SET v_is_new := TRUE;
|
||||
ELSE
|
||||
INSERT INTO tmp_Msg_Error (
|
||||
@@ -133,7 +133,7 @@ BEGIN
|
||||
|
||||
-- User IDs
|
||||
IF (NOT EXISTS (SELECT * FROM tmp_Msg_Error LIMIT 1) AND v_has_filter_user = 1) THEN
|
||||
CALL demo.p_split(v_guid, a_ids_user, ',', FALSE);
|
||||
CALL parts.p_core_split(v_guid, a_ids_user, ',', FALSE);
|
||||
|
||||
DELETE FROM tmp_Split;
|
||||
|
||||
@@ -144,21 +144,21 @@ BEGIN
|
||||
SELECT
|
||||
substring
|
||||
, CONVERT(substring, DECIMAL(10,0)) AS as_int
|
||||
FROM demo.Split_Temp
|
||||
FROM parts.Split_Temp
|
||||
WHERE 1=1
|
||||
AND GUID = v_guid
|
||||
AND NOT ISNULL(substring)
|
||||
AND substring != ''
|
||||
;
|
||||
|
||||
CALL demo.p_clear_split_temp( v_guid );
|
||||
CALL parts.p_core_clear_split( v_guid );
|
||||
END IF;
|
||||
|
||||
IF (NOT EXISTS (SELECT * FROM tmp_Msg_Error LIMIT 1) AND v_has_filter_user = 1) THEN
|
||||
IF EXISTS (
|
||||
SELECT *
|
||||
FROM tmp_Split t_S
|
||||
LEFT JOIN demo.Shop_User U ON t_S.as_int = U.id_user
|
||||
LEFT JOIN parts.Shop_User U ON t_S.as_int = U.id_user
|
||||
WHERE
|
||||
ISNULL(t_S.as_int)
|
||||
OR ISNULL(U.id_user)
|
||||
@@ -175,7 +175,7 @@ BEGIN
|
||||
v_code_error_bad_data,
|
||||
CONCAT('Invalid or inactive User IDs: ', IFNULL(GROUP_CONCAT(t_S.substring SEPARATOR ', '), 'NULL'))
|
||||
FROM tmp_Split t_S
|
||||
LEFT JOIN demo.Shop_User U ON t_S.as_int = U.id_user
|
||||
LEFT JOIN parts.Shop_User U ON t_S.as_int = U.id_user
|
||||
WHERE
|
||||
ISNULL(t_S.as_int)
|
||||
OR ISNULL(U.id_user)
|
||||
@@ -189,7 +189,7 @@ BEGIN
|
||||
U.id_user
|
||||
, RANK() OVER (ORDER BY U.id_user DESC) AS rank_user
|
||||
FROM tmp_Split t_S
|
||||
RIGHT JOIN demo.Shop_User U ON t_S.as_int = U.id_user
|
||||
RIGHT JOIN parts.Shop_User U ON t_S.as_int = U.id_user
|
||||
WHERE
|
||||
(
|
||||
a_get_all_user = 1
|
||||
@@ -208,7 +208,7 @@ BEGIN
|
||||
|
||||
-- Auth0 User IDs
|
||||
IF (NOT EXISTS (SELECT * FROM tmp_Msg_Error LIMIT 1) AND v_has_filter_user_auth0 = 1) THEN
|
||||
CALL demo.p_split(v_guid, a_ids_user_auth0, ',', FALSE);
|
||||
CALL parts.p_core_split(v_guid, a_ids_user_auth0, ',', FALSE);
|
||||
|
||||
DELETE FROM tmp_Split;
|
||||
|
||||
@@ -217,21 +217,21 @@ BEGIN
|
||||
)
|
||||
SELECT
|
||||
substring
|
||||
FROM demo.Split_Temp
|
||||
FROM parts.Split_Temp
|
||||
WHERE 1=1
|
||||
AND GUID = v_guid
|
||||
AND NOT ISNULL(substring)
|
||||
AND substring != ''
|
||||
;
|
||||
|
||||
CALL demo.p_clear_split_temp( v_guid );
|
||||
CALL parts.p_core_clear_split( v_guid );
|
||||
END IF;
|
||||
|
||||
IF (NOT EXISTS (SELECT * FROM tmp_Msg_Error LIMIT 1) AND v_has_filter_user_auth0 = 1) THEN
|
||||
IF EXISTS (
|
||||
SELECT *
|
||||
FROM tmp_Split t_S
|
||||
LEFT JOIN demo.Shop_User U ON t_S.substring = U.id_user_auth0
|
||||
LEFT JOIN parts.Shop_User U ON t_S.substring = U.id_user_auth0
|
||||
WHERE
|
||||
ISNULL(t_S.substring)
|
||||
OR ISNULL(U.id_user_auth0)
|
||||
@@ -248,7 +248,7 @@ BEGIN
|
||||
v_code_error_bad_data,
|
||||
CONCAT('Invalid or inactive Auth0 User IDs: ', IFNULL(GROUP_CONCAT(t_S.substring SEPARATOR ', '), 'NULL'))
|
||||
FROM tmp_Split t_S
|
||||
LEFT JOIN demo.Shop_User U ON t_S.substring = U.id_user_auth0
|
||||
LEFT JOIN parts.Shop_User U ON t_S.substring = U.id_user_auth0
|
||||
WHERE
|
||||
ISNULL(t_S.substring)
|
||||
OR ISNULL(U.id_user_auth0)
|
||||
@@ -264,7 +264,7 @@ BEGIN
|
||||
U.id_user
|
||||
, v_rank_max + (RANK() OVER (ORDER BY U.id_user DESC)) AS rank_user
|
||||
FROM tmp_Split t_S
|
||||
RIGHT JOIN demo.Shop_User U ON t_S.substring = U.id_user_auth0
|
||||
RIGHT JOIN parts.Shop_User U ON t_S.substring = U.id_user_auth0
|
||||
WHERE
|
||||
(
|
||||
a_get_all_user = 1
|
||||
@@ -300,43 +300,43 @@ BEGIN
|
||||
SELECT * FROM tmp_User;
|
||||
END IF;
|
||||
|
||||
-- Can admin store
|
||||
-- Can admin dog
|
||||
IF NOT EXISTS (SELECT * FROM tmp_Msg_Error LIMIT 1) THEN
|
||||
IF a_debug = 1 THEN
|
||||
SELECT
|
||||
v_guid -- guid
|
||||
, a_id_user -- ids_user
|
||||
, FALSE -- get_inactive_user
|
||||
, v_id_permission_store_admin -- ids_permission
|
||||
, v_id_permission_dog_admin -- ids_permission
|
||||
, v_id_access_level_admin -- ids_access_level
|
||||
, '' -- ids_product
|
||||
, 0 -- a_debug
|
||||
;
|
||||
SELECT * FROM demo.Shop_Calc_User_Temp;
|
||||
SELECT * FROM parts.Shop_Calc_User_Temp;
|
||||
END IF;
|
||||
|
||||
CALL demo.p_shop_calc_user(
|
||||
CALL parts.p_dog_calc_user(
|
||||
v_guid -- guid
|
||||
, a_id_user -- ids_user
|
||||
, FALSE -- get_inactive_user
|
||||
, v_id_permission_store_admin -- ids_permission
|
||||
, v_id_permission_dog_admin -- ids_permission
|
||||
, v_id_access_level_admin -- ids_access_level
|
||||
, '' -- ids_product
|
||||
, 0 -- a_debug
|
||||
);
|
||||
|
||||
IF a_debug = 1 THEN
|
||||
SELECT * FROM demo.Shop_Calc_User_Temp WHERE GUID = v_guid;
|
||||
SELECT * FROM parts.Shop_Calc_User_Temp WHERE GUID = v_guid;
|
||||
END IF;
|
||||
|
||||
UPDATE tmp_User t_U
|
||||
INNER JOIN demo.Shop_Calc_User_Temp CUT
|
||||
INNER JOIN parts.Shop_Calc_User_Temp CUT
|
||||
ON CUT.GUID = v_guid
|
||||
AND t_U.id_user = CUT.id_user
|
||||
SET t_U.can_admin_store = CUT.can_admin
|
||||
SET t_U.can_admin_dog = CUT.can_admin
|
||||
;
|
||||
|
||||
CALL demo.p_shop_clear_calc_user( v_guid, FALSE );
|
||||
CALL parts.p_dog_clear_calc_user( v_guid, FALSE );
|
||||
END IF;
|
||||
|
||||
-- Can admin user
|
||||
@@ -351,10 +351,10 @@ BEGIN
|
||||
, '' -- ids_product
|
||||
, 0 -- a_debug
|
||||
;
|
||||
SELECT * FROM demo.Shop_Calc_User_Temp;
|
||||
SELECT * FROM parts.Shop_Calc_User_Temp;
|
||||
END IF;
|
||||
|
||||
CALL demo.p_shop_calc_user(
|
||||
CALL parts.p_dog_calc_user(
|
||||
v_guid -- guid
|
||||
, a_id_user -- ids_user
|
||||
, FALSE -- get_inactive_user
|
||||
@@ -365,17 +365,17 @@ BEGIN
|
||||
);
|
||||
|
||||
IF a_debug = 1 THEN
|
||||
SELECT * FROM demo.Shop_Calc_User_Temp WHERE GUID = v_guid;
|
||||
SELECT * FROM parts.Shop_Calc_User_Temp WHERE GUID = v_guid;
|
||||
END IF;
|
||||
|
||||
UPDATE tmp_User t_U
|
||||
INNER JOIN demo.Shop_Calc_User_Temp CUT
|
||||
INNER JOIN parts.Shop_Calc_User_Temp CUT
|
||||
ON CUT.GUID = v_guid
|
||||
AND t_U.id_user = CUT.id_user
|
||||
SET t_U.can_admin_user = CUT.can_admin
|
||||
;
|
||||
|
||||
CALL demo.p_shop_clear_calc_user( v_guid, FALSE );
|
||||
CALL parts.p_dog_clear_calc_user( v_guid, FALSE );
|
||||
END IF;
|
||||
|
||||
-- Permissions
|
||||
@@ -390,10 +390,10 @@ BEGIN
|
||||
, '' -- ids_product
|
||||
, 0 -- a_debug
|
||||
;
|
||||
SELECT * FROM demo.Shop_Calc_User_Temp;
|
||||
SELECT * FROM parts.Shop_Calc_User_Temp;
|
||||
END IF;
|
||||
|
||||
CALL demo.p_shop_calc_user(
|
||||
CALL parts.p_dog_calc_user(
|
||||
v_guid -- guid
|
||||
, a_id_user -- ids_user
|
||||
, FALSE -- get_inactive_user
|
||||
@@ -404,12 +404,12 @@ BEGIN
|
||||
);
|
||||
|
||||
IF a_debug = 1 THEN
|
||||
SELECT * FROM demo.Shop_Calc_User_Temp WHERE GUID = v_guid;
|
||||
SELECT * FROM parts.Shop_Calc_User_Temp WHERE GUID = v_guid;
|
||||
END IF;
|
||||
|
||||
IF NOT EXISTS (
|
||||
SELECT can_view
|
||||
FROM demo.Shop_Calc_User_Temp CUT
|
||||
FROM parts.Shop_Calc_User_Temp CUT
|
||||
WHERE 1=1
|
||||
AND CUT.GUID = v_guid
|
||||
AND can_view = 1
|
||||
@@ -423,9 +423,9 @@ BEGIN
|
||||
VALUES (
|
||||
v_id_type_error_bad_data,
|
||||
v_code_error_bad_data,
|
||||
-- CONCAT('You do not have view permissions for ', (SELECT name FROM demo.Shop_Permission WHERE id_permission = v_id_permission_user LIMIT 1))
|
||||
-- CONCAT('You do not have view permissions for ', (SELECT GROUP_CONCAT(name SEPARATOR ', ') FROM demo.Shop_Permission WHERE FIND_IN_SET(v_id_permission_user, id_permission) > 0))
|
||||
CONCAT('You do not have view permissions for ', (SELECT name FROM demo.Shop_Permission P INNER JOIN demo.Shop_Calc_User_Temp CUT ON P.id_permission = CUT.id_permission_required WHERE GUID = v_guid AND IFNULL(can_view, 0) = 0 LIMIT 1)) -- WHERE IFNULL(CUT.can_view, 0) = 0
|
||||
-- CONCAT('You do not have view permissions for ', (SELECT name FROM parts.Shop_Permission WHERE id_permission = v_id_permission_user LIMIT 1))
|
||||
-- CONCAT('You do not have view permissions for ', (SELECT GROUP_CONCAT(name SEPARATOR ', ') FROM parts.Shop_Permission WHERE FIND_IN_SET(v_id_permission_user, id_permission) > 0))
|
||||
CONCAT('You do not have view permissions for ', (SELECT name FROM parts.Shop_Permission P INNER JOIN parts.Shop_Calc_User_Temp CUT ON P.id_permission = CUT.id_permission_required WHERE GUID = v_guid AND IFNULL(can_view, 0) = 0 LIMIT 1)) -- WHERE IFNULL(CUT.can_view, 0) = 0
|
||||
)
|
||||
;
|
||||
ELSE
|
||||
@@ -433,7 +433,7 @@ BEGIN
|
||||
SET a_debug := a_debug;
|
||||
END IF;
|
||||
|
||||
CALL demo.p_shop_clear_calc_user( v_guid, FALSE );
|
||||
CALL parts.p_dog_clear_calc_user( v_guid, FALSE );
|
||||
END IF;
|
||||
|
||||
|
||||
@@ -457,11 +457,11 @@ BEGIN
|
||||
, U.id_region_default
|
||||
, U.is_included_VAT_default
|
||||
, U.is_super_user
|
||||
, t_U.can_admin_store
|
||||
, t_U.can_admin_dog
|
||||
, t_U.can_admin_user
|
||||
, v_is_new AS is_new
|
||||
FROM tmp_User t_U
|
||||
INNER JOIN demo.Shop_User U ON t_U.id_user = U.id_user
|
||||
INNER JOIN parts.Shop_User U ON t_U.id_user = U.id_user
|
||||
;
|
||||
|
||||
# Errors
|
||||
@@ -472,7 +472,7 @@ BEGIN
|
||||
MET.name,
|
||||
MET.description
|
||||
FROM tmp_Msg_Error t_ME
|
||||
INNER JOIN demo.Shop_Msg_Error_Type MET
|
||||
INNER JOIN parts.Shop_Msg_Error_Type MET
|
||||
ON t_ME.id_type = MET.id_type
|
||||
;
|
||||
|
||||
@@ -486,12 +486,12 @@ BEGIN
|
||||
DROP TEMPORARY TABLE IF EXISTS tmp_Msg_Error;
|
||||
|
||||
/*
|
||||
DELETE FROM demo.Shop_Calc_User_Temp
|
||||
DELETE FROM parts.Shop_Calc_User_Temp
|
||||
WHERE GUID = v_guid;
|
||||
*/
|
||||
|
||||
IF a_debug = 1 THEN
|
||||
CALL demo.p_debug_timing_reporting ( v_time_start );
|
||||
CALL parts.p_debug_timing_reporting ( v_time_start );
|
||||
END IF;
|
||||
END //
|
||||
DELIMITER ;
|
||||
@@ -520,11 +520,11 @@ CALL p_dog_get_many_user (
|
||||
);*/
|
||||
|
||||
/*
|
||||
select * FROM demo.Shop_Calc_User_Temp;
|
||||
delete FROM demo.Shop_Calc_User_Temp;
|
||||
select * FROM parts.Shop_Calc_User_Temp;
|
||||
delete FROM parts.Shop_Calc_User_Temp;
|
||||
|
||||
SELECT *
|
||||
FROM demo.Shop_USER;
|
||||
FROM parts.Shop_USER;
|
||||
|
||||
CALL p_dog_get_many_user(
|
||||
NULL -- :a_id_user,
|
||||
|
||||
@@ -45,7 +45,7 @@ BEGIN
|
||||
MET.id_type
|
||||
, @errno
|
||||
, @text
|
||||
FROM demo.Shop_Msg_Error_Type MET
|
||||
FROM parts.Shop_Msg_Error_Type MET
|
||||
WHERE MET.code = 'MYSQL_ERROR'
|
||||
;
|
||||
SELECT *
|
||||
@@ -112,7 +112,7 @@ BEGIN
|
||||
, IFNULL(U_T.is_included_VAT_default, U.is_included_VAT_default) AS is_included_VAT_default
|
||||
, IFNULL(IFNULL(U_T.active, U.active), 1) AS active
|
||||
, IFNULL(U_T.display_order, PC.display_order) AS display_order
|
||||
FROM demo.Shop_User_Temp U_T
|
||||
FROM parts.Shop_User_Temp U_T
|
||||
LEFT JOIN Shop_User U ON U_T.id_user = U.id_user
|
||||
WHERE U_T.guid = a_guid
|
||||
;
|
||||
@@ -183,7 +183,7 @@ BEGIN
|
||||
;
|
||||
END IF;
|
||||
|
||||
CALL p_shop_calc_user(
|
||||
CALL p_dog_calc_user(
|
||||
a_guid -- GUID
|
||||
, a_id_user -- ID User
|
||||
, FALSE -- get inactive Users
|
||||
@@ -194,7 +194,7 @@ BEGIN
|
||||
|
||||
SET v_can_admin_user := (
|
||||
SELECT IFNULL(UE_T.can_edit, 0) = 1
|
||||
FROM demo.Shop_User_Eval_Temp UE_T
|
||||
FROM parts.Shop_User_Eval_Temp UE_T
|
||||
WHERE
|
||||
UE_T.GUID = a_guid
|
||||
AND UE_T.id_user = a_id_user
|
||||
@@ -221,7 +221,7 @@ BEGIN
|
||||
;
|
||||
END IF;
|
||||
|
||||
CALL p_shop_clear_calc_user(a_guid);
|
||||
CALL p_dog_clear_calc_user(a_guid);
|
||||
|
||||
IF NOT EXISTS (SELECT * FROM tmp_Msg_Error LIMIT 1) THEN
|
||||
START TRANSACTION;
|
||||
@@ -261,7 +261,7 @@ BEGIN
|
||||
# Errors
|
||||
SELECT *
|
||||
FROM tmp_Msg_Error t_ME
|
||||
INNER JOIN demo.Shop_Msg_Error_Type MET ON t_ME.id_type = MET.id_type
|
||||
INNER JOIN parts.Shop_Msg_Error_Type MET ON t_ME.id_type = MET.id_type
|
||||
;
|
||||
|
||||
IF a_debug = 1 THEN
|
||||
@@ -272,7 +272,7 @@ BEGIN
|
||||
DROP TABLE IF EXISTS tmp_User;
|
||||
|
||||
IF a_debug = 1 THEN
|
||||
CALL demo.p_debug_timing_reporting ( v_time_start );
|
||||
CALL parts.p_debug_timing_reporting ( v_time_start );
|
||||
END IF;
|
||||
END //
|
||||
DELIMITER ;
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
|
||||
USE parts;
|
||||
|
||||
DROP PROCEDURE IF EXISTS parts.p_DOG_user_eval;
|
||||
DROP PROCEDURE IF EXISTS parts.p_DOG_calc_user;
|
||||
DROP PROCEDURE IF EXISTS parts.p_dog_user_eval;
|
||||
DROP PROCEDURE IF EXISTS parts.p_dog_calc_user;
|
||||
|
||||
DELIMITER //
|
||||
CREATE PROCEDURE parts.p_DOG_calc_user (
|
||||
CREATE PROCEDURE parts.p_dog_calc_user (
|
||||
IN a_guid BINARY(36)
|
||||
, IN a_ids_user TEXT
|
||||
, IN a_get_inactive_user BIT
|
||||
@@ -18,17 +18,17 @@ BEGIN
|
||||
DECLARE v_id_permission INT;
|
||||
DECLARE v_time_start TIMESTAMP(6);
|
||||
DECLARE v_ids_row_delete VARCHAR(500);
|
||||
DECLARE v_code_type_error_bad_data VARCHAR(200);
|
||||
DECLARE v_code_type_error_bad_data VARCHAR(250);
|
||||
DECLARE v_id_type_error_bad_data INT;
|
||||
DECLARE v_code_error_permission VARCHAR(200);
|
||||
DECLARE v_code_type_error_no_permission VARCHAR(250);
|
||||
DECLARE v_id_permission_required INT;
|
||||
DECLARE v_priority_access_level_required INT;
|
||||
DECLARE v_priority_access_level_view INT;
|
||||
|
||||
SET v_time_start := CURRENT_TIMESTAMP(6);
|
||||
SET v_code_type_error_bad_data := (SELECT code FROM parts.CORE_Msg_Error_Type WHERE code = 'BAD_DATA');
|
||||
SET v_id_type_error_bad_data := (SELECT id_type FROM parts.CORE_Msg_Error_Type WHERE code = v_code_type_error_bad_data);
|
||||
SET v_code_error_permission := (SELECT code FROM parts.CORE_Msg_Error_Type WHERE id_type = 2);
|
||||
SET v_code_type_error_bad_data := (SELECT code FROM parts.CORE_Msg_Error_Type WHERE code = 'BAD_DATA' LIMIT 1);
|
||||
SET v_id_type_error_bad_data := (SELECT id_type FROM parts.CORE_Msg_Error_Type WHERE code = v_code_type_error_bad_data LIMIT 1);
|
||||
SET v_code_type_error_no_permission := (SELECT code FROM parts.CORE_Msg_Error_Type WHERE code = 'NO_PERMISSION' LIMIT 1);
|
||||
SET v_priority_access_level_view := (SELECT priority FROM parts.DOG_Access_Level WHERE code = 'VIEW' LIMIT 1);
|
||||
|
||||
CALL parts.p_core_validate_guid ( a_guid );
|
||||
@@ -38,6 +38,7 @@ BEGIN
|
||||
SET a_debug := IFNULL(a_debug, 0);
|
||||
|
||||
IF a_debug = 1 THEN
|
||||
SELECT 'Arguments';
|
||||
SELECT
|
||||
a_guid
|
||||
, a_ids_user
|
||||
@@ -45,6 +46,14 @@ BEGIN
|
||||
, a_ids_permission
|
||||
, a_debug
|
||||
;
|
||||
SELECT 'Derived variables';
|
||||
SELECT
|
||||
v_code_type_error_bad_data
|
||||
, v_code_type_error_no_permission
|
||||
, v_id_type_error_bad_data
|
||||
, v_priority_access_level_view
|
||||
, v_time_start
|
||||
;
|
||||
END IF;
|
||||
|
||||
DROP TABLE IF EXISTS tmp_Calc_User;
|
||||
@@ -174,6 +183,10 @@ BEGIN
|
||||
END IF;
|
||||
DELETE FROM tmp_Split_Calc_User;
|
||||
|
||||
IF a_debug = 1 THEN
|
||||
SELECT v_id_permission_required;
|
||||
END IF;
|
||||
|
||||
-- Users
|
||||
CALL parts.p_core_split(a_guid, a_ids_user, ',', a_debug);
|
||||
|
||||
@@ -247,6 +260,17 @@ BEGIN
|
||||
AND AL_U.active
|
||||
GROUP BY U.id_user
|
||||
;
|
||||
|
||||
IF a_debug = 1 THEN
|
||||
SELECT
|
||||
t_UCU.id_user
|
||||
, v_id_permission_required
|
||||
, v_priority_access_level_required
|
||||
, t_UCU.priority_access_level AS priority_access_level_user
|
||||
, t_UCU.is_super_user AS is_super_user
|
||||
FROM tmp_User_Calc_User t_UCU
|
||||
;
|
||||
END IF;
|
||||
|
||||
INSERT INTO tmp_Calc_User (
|
||||
id_user
|
||||
@@ -306,7 +330,7 @@ BEGIN
|
||||
SELECT * FROM tmp_Calc_User;
|
||||
SELECT * FROM tmp_User_Calc_User;
|
||||
SELECT * FROM parts.DOG_Calc_User_Temp WHERE GUID = a_guid;
|
||||
CALL parts.p_DOG_clear_calc_user ( a_guid, a_debug );
|
||||
CALL parts.p_dog_clear_calc_user ( a_guid, a_debug );
|
||||
END IF;
|
||||
|
||||
-- Clean up
|
||||
@@ -322,7 +346,7 @@ DELIMITER ;
|
||||
|
||||
/*
|
||||
|
||||
CALL parts.p_DOG_calc_user (
|
||||
CALL parts.p_dog_calc_user (
|
||||
'chips ' -- a_guid
|
||||
, 1 -- a_ids_user
|
||||
, 0 -- a_get_inactive_user
|
||||
@@ -330,7 +354,7 @@ CALL parts.p_DOG_calc_user (
|
||||
, '1' -- a_ids_access_level
|
||||
, 0 -- a_debug
|
||||
);
|
||||
CALL parts.p_DOG_calc_user (
|
||||
CALL parts.p_dog_calc_user (
|
||||
'chips ' -- a_guid
|
||||
, 1 -- a_ids_user
|
||||
, 0 -- a_get_inactive_user
|
||||
@@ -338,4 +362,15 @@ CALL parts.p_DOG_calc_user (
|
||||
, '1' -- a_ids_access_level
|
||||
, 0 -- a_debug
|
||||
);
|
||||
|
||||
|
||||
DELETE FROM demo.DOG_Calc_User_Temp;
|
||||
CALL demo.p_dog_calc_user (
|
||||
'chips ' -- a_guid
|
||||
, 1 -- a_ids_user
|
||||
, 0 -- a_get_inactive_user
|
||||
, '7' -- a_ids_permission
|
||||
, 0 -- a_debug
|
||||
);
|
||||
SELECT * FROM demo.DOG_Calc_User_Temp;
|
||||
*/
|
||||
@@ -1,10 +1,10 @@
|
||||
|
||||
USE parts;
|
||||
|
||||
DROP PROCEDURE IF EXISTS parts.p_DOG_clear_calc_user;
|
||||
DROP PROCEDURE IF EXISTS parts.p_dog_clear_calc_user;
|
||||
|
||||
DELIMITER //
|
||||
CREATE PROCEDURE parts.p_DOG_clear_calc_user (
|
||||
CREATE PROCEDURE parts.p_dog_clear_calc_user (
|
||||
IN a_guid BINARY(36)
|
||||
, IN a_debug BIT
|
||||
)
|
||||
@@ -16,8 +16,9 @@ BEGIN
|
||||
|
||||
START TRANSACTION;
|
||||
|
||||
DELETE FROM parts.DOG_Calc_User_Temp
|
||||
WHERE GUID = a_guid
|
||||
DELETE CALC_USER_T
|
||||
FROM parts.DOG_Calc_User_Temp CALC_USER_T
|
||||
WHERE CALC_USER_T.GUID = a_guid
|
||||
;
|
||||
|
||||
COMMIT;
|
||||
@@ -30,7 +31,7 @@ DELIMITER ;
|
||||
|
||||
/*
|
||||
|
||||
CALL parts.p_DOG_clear_calc_user (
|
||||
CALL parts.p_dog_clear_calc_user (
|
||||
'chips ' -- a_guid
|
||||
, 1 -- debug
|
||||
);
|
||||
|
||||
443
static/MySQL/71001_p_dog_calc_dog.sql
Normal file
443
static/MySQL/71001_p_dog_calc_dog.sql
Normal file
@@ -0,0 +1,443 @@
|
||||
|
||||
USE parts;
|
||||
|
||||
DROP PROCEDURE IF EXISTS parts.p_dog_calc_dog;
|
||||
|
||||
DELIMITER //
|
||||
CREATE PROCEDURE parts.p_dog_calc_dog (
|
||||
IN a_guid BINARY(36)
|
||||
, IN a_id_user INT
|
||||
, IN a_get_all_dog BIT
|
||||
, IN a_get_inactive_dog BIT
|
||||
, IN a_ids_dog TEXT
|
||||
, IN a_names_dog TEXT
|
||||
, IN a_show_errors BIT
|
||||
, IN a_debug BIT
|
||||
)
|
||||
BEGIN
|
||||
DECLARE v_can_view BIT;
|
||||
DECLARE v_code_type_error_bad_data VARCHAR(100);
|
||||
DECLARE v_code_type_error_no_permission VARCHAR(100);
|
||||
DECLARE v_has_filter_dog_id BIT;
|
||||
DECLARE v_has_filter_dog_name BIT;
|
||||
DECLARE v_id_minimum INT;
|
||||
DECLARE v_id_permission_dog_view INT;
|
||||
DECLARE v_id_type_error_bad_data INT;
|
||||
DECLARE v_id_type_error_no_permission INT;
|
||||
DECLARE v_time_start TIMESTAMP(6);
|
||||
|
||||
DECLARE exit handler for SQLEXCEPTION
|
||||
BEGIN
|
||||
GET DIAGNOSTICS CONDITION 1
|
||||
@sqlstate = RETURNED_SQLSTATE
|
||||
, @errno = MYSQL_ERRNO
|
||||
, @text = MESSAGE_TEXT
|
||||
;
|
||||
|
||||
ROLLBACK;
|
||||
|
||||
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error_Calc_Dog (
|
||||
id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT
|
||||
, id_type INT NULL
|
||||
, code VARCHAR(100) NOT NULL
|
||||
, msg VARCHAR(4000) NOT NULL
|
||||
);
|
||||
|
||||
INSERT INTO tmp_Msg_Error_Calc_Dog (
|
||||
id_type
|
||||
, code
|
||||
, msg
|
||||
)
|
||||
SELECT
|
||||
MET.id_type
|
||||
, @errno
|
||||
, @text
|
||||
FROM parts.CORE_Msg_Error_Type MET
|
||||
WHERE MET.code = 'MYSQL_ERROR'
|
||||
;
|
||||
|
||||
SELECT
|
||||
t_ERROR.id_error
|
||||
, t_ERROR.id_type
|
||||
, t_ERROR.code
|
||||
, ERROR_TYPE.name
|
||||
, ERROR_TYPE.description
|
||||
, ERROR_TYPE.is_breaking_error
|
||||
, ERROR_TYPE.background_colour
|
||||
, ERROR_TYPE.text_colour
|
||||
, t_ERROR.msg
|
||||
FROM tmp_Msg_Error_Calc_Dog t_ERROR
|
||||
INNER JOIN parts.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type
|
||||
;
|
||||
|
||||
DROP TABLE IF EXISTS tmp_Msg_Error_Calc_Dog;
|
||||
END;
|
||||
|
||||
SET v_time_start := CURRENT_TIMESTAMP(6);
|
||||
SET v_code_type_error_bad_data := 'BAD_DATA';
|
||||
SET v_code_type_error_no_permission := 'NO_PERMISSION';
|
||||
SET v_id_type_error_bad_data := (SELECT ERROR_TYPE.id_type FROM parts.CORE_Msg_Error_Type ERROR_TYPE WHERE ERROR_TYPE.code = v_code_type_error_bad_data LIMIT 1);
|
||||
SET v_id_type_error_no_permission := (SELECT ERROR_TYPE.id_type FROM parts.CORE_Msg_Error_Type ERROR_TYPE WHERE ERROR_TYPE.code = v_code_type_error_no_permission LIMIT 1);
|
||||
SET v_id_permission_dog_view := (SELECT PERMISSION.id_permission FROM parts.DOG_Permission PERMISSION WHERE PERMISSION.code = 'DOG_VIEW' LIMIT 1);
|
||||
|
||||
|
||||
CALL parts.p_core_validate_guid ( a_guid );
|
||||
|
||||
SET a_id_user := IFNULL(a_id_user, 0);
|
||||
SET a_get_all_dog := IFNULL(a_get_all_dog, 0);
|
||||
SET a_get_inactive_dog := IFNULL(a_get_inactive_dog, 0);
|
||||
SET a_ids_dog := TRIM(IFNULL(a_ids_dog, ''));
|
||||
SET a_names_dog := TRIM(IFNULL(a_names_dog, ''));
|
||||
SET a_show_errors := IFNULL(a_show_errors, 0);
|
||||
SET a_debug := IFNULL(a_debug, 0);
|
||||
|
||||
IF a_debug = 1 THEN
|
||||
SELECT
|
||||
a_guid
|
||||
, a_id_user
|
||||
, a_get_all_dog
|
||||
, a_get_inactive_dog
|
||||
, a_ids_dog
|
||||
, a_names_dog
|
||||
, a_show_errors
|
||||
, a_debug
|
||||
;
|
||||
|
||||
SELECT
|
||||
v_id_type_error_bad_data
|
||||
, v_id_type_error_no_permission
|
||||
, v_id_permission_dog_view
|
||||
, v_time_start
|
||||
;
|
||||
END IF;
|
||||
|
||||
DROP TEMPORARY TABLE IF EXISTS tmp_Split_Name_Calc_Dog;
|
||||
DROP TEMPORARY TABLE IF EXISTS tmp_Split_Id_Calc_Dog;
|
||||
DROP TEMPORARY TABLE IF EXISTS tmp_Msg_Error_Calc_Dog;
|
||||
DROP TEMPORARY TABLE IF EXISTS tmp_Dog_Calc_Dog;
|
||||
|
||||
CREATE TEMPORARY TABLE tmp_Dog_Calc_Dog (
|
||||
id_dog INT NOT NULL
|
||||
);
|
||||
|
||||
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error_Calc_Dog (
|
||||
id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT
|
||||
, id_type INT NULL
|
||||
, code VARCHAR(100) NOT NULL
|
||||
, msg VARCHAR(4000) NOT NULL
|
||||
);
|
||||
|
||||
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Split_Id_Calc_Dog (
|
||||
substring VARCHAR(4000) NOT NULL
|
||||
, as_int INT NULL
|
||||
);
|
||||
DELETE FROM tmp_Split_Id_Calc_Dog;
|
||||
|
||||
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Split_Name_Calc_Dog (
|
||||
substring VARCHAR(4000) NOT NULL
|
||||
, as_int INT NULL
|
||||
);
|
||||
DELETE FROM tmp_Split_Name_Calc_Dog;
|
||||
|
||||
SET v_has_filter_dog_id = CASE WHEN a_ids_dog = '' THEN 0 ELSE 1 END;
|
||||
SET v_has_filter_dog_name = CASE WHEN a_names_dog = '' THEN 0 ELSE 1 END;
|
||||
|
||||
-- Dogs
|
||||
IF v_has_filter_dog_id = 1 THEN
|
||||
CALL parts.p_core_split(a_guid, a_ids_dog, ',', a_debug);
|
||||
|
||||
INSERT INTO tmp_Split_Id_Calc_Dog (
|
||||
substring
|
||||
, as_int
|
||||
)
|
||||
SELECT
|
||||
SPLIT_T.substring
|
||||
, CONVERT(SPLIT_T.substring, DECIMAL(10,0)) AS as_int
|
||||
FROM parts.CORE_Split_Temp SPLIT_T
|
||||
WHERE
|
||||
SPLIT_T.GUID = a_guid
|
||||
AND IFNULL(SPLIT_T.substring, '') <> ''
|
||||
;
|
||||
|
||||
CALL parts.p_core_clear_split( a_guid );
|
||||
END IF;
|
||||
|
||||
IF v_has_filter_dog_name = 1 THEN
|
||||
CALL parts.p_core_split(a_guid, a_names_dog, ',', a_debug);
|
||||
|
||||
INSERT INTO tmp_Split_Name_Calc_Dog (
|
||||
substring
|
||||
, as_int
|
||||
)
|
||||
SELECT
|
||||
SPLIT_T.substring
|
||||
, CONVERT(SPLIT_T.substring, DECIMAL(10,0)) AS as_int
|
||||
FROM parts.CORE_Split_Temp SPLIT_T
|
||||
WHERE
|
||||
SPLIT_T.GUID = a_guid
|
||||
AND IFNULL(SPLIT_T.substring, '') <> ''
|
||||
;
|
||||
|
||||
CALL parts.p_core_clear_split( a_guid );
|
||||
END IF;
|
||||
|
||||
IF NOT EXISTS (SELECT * FROM tmp_Msg_Error_Calc_Dog t_ERROR INNER JOIN parts.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type WHERE ERROR_TYPE.is_breaking_error = 1 LIMIT 1) THEN
|
||||
IF EXISTS (
|
||||
SELECT *
|
||||
FROM tmp_Split_Id_Calc_Dog t_SPLIT_ID
|
||||
LEFT JOIN parts.DOG_Dog DOG ON t_SPLIT_ID.as_int = DOG.id_dog
|
||||
WHERE
|
||||
ISNULL(t_SPLIT_ID.as_int)
|
||||
OR ISNULL(DOG.id_dog)
|
||||
OR (
|
||||
DOG.active = 0
|
||||
AND a_get_inactive_dog = 0
|
||||
)
|
||||
) THEN
|
||||
INSERT INTO tmp_Msg_Error_Calc_Dog (
|
||||
id_type
|
||||
, code
|
||||
, msg
|
||||
)
|
||||
SELECT
|
||||
v_id_type_error_bad_data
|
||||
, v_code_type_error_bad_data
|
||||
, CONCAT('Invalid or inactive Dog IDs: ', IFNULL(GROUP_CONCAT(t_SPLIT_ID.substring SEPARATOR ', '), 'NULL'))
|
||||
FROM tmp_Split_Id_Calc_Dog t_SPLIT_ID
|
||||
LEFT JOIN parts.DOG_Dog DOG ON t_SPLIT_ID.as_int = DOG.id_dog
|
||||
WHERE
|
||||
ISNULL(t_SPLIT_ID.as_int)
|
||||
OR ISNULL(DOG.id_dog)
|
||||
OR (
|
||||
DOG.active = 0
|
||||
AND a_get_inactive_dog = 0
|
||||
)
|
||||
;
|
||||
/* Don't error on names not found
|
||||
ELSEIF EXISTS (
|
||||
SELECT *
|
||||
FROM tmp_Split t_SPLIT
|
||||
LEFT JOIN parts.DOG_Dog DOG ON t_SPLIT.as_int = DOG.id_dog
|
||||
WHERE
|
||||
ISNULL(t_SPLIT.as_int)
|
||||
OR ISNULL(DOG.id_dog)
|
||||
OR (
|
||||
DOG.active = 0
|
||||
AND a_get_inactive_dog = 0
|
||||
)
|
||||
) THEN
|
||||
INSERT INTO tmp_Msg_Error_Calc_Dog (
|
||||
id_type
|
||||
, code
|
||||
, msg
|
||||
)
|
||||
SELECT
|
||||
v_id_type_error_bad_data
|
||||
, v_code_type_error_bad_data
|
||||
, CONCAT('Invalid or inactive Dog IDs: ', IFNULL(GROUP_CONCAT(t_SPLIT.substring SEPARATOR ', '), 'NULL'))
|
||||
FROM tmp_Split t_SPLIT
|
||||
LEFT JOIN parts.DOG_Dog DOG ON t_SPLIT.as_int = DOG.id_dog
|
||||
WHERE
|
||||
ISNULL(t_SPLIT.as_int)
|
||||
OR ISNULL(DOG.id_dog)
|
||||
OR (
|
||||
DOG.active = 0
|
||||
AND a_get_inactive_dog = 0
|
||||
)
|
||||
;
|
||||
*/
|
||||
ELSE
|
||||
INSERT INTO tmp_Dog_Calc_Dog (
|
||||
id_dog
|
||||
)
|
||||
WITH
|
||||
Dog_Id_Filter AS (
|
||||
SELECT DOG.id_dog
|
||||
FROM tmp_Split_Id_Calc_Dog t_SPLIT_ID
|
||||
RIGHT JOIN parts.DOG_Dog DOG ON t_SPLIT_ID.as_int = DOG.id_dog
|
||||
WHERE t_SPLIT_ID.as_int IS NOT NULL
|
||||
)
|
||||
, Dog_Name_Filter AS (
|
||||
SELECT DOG.id_dog
|
||||
FROM tmp_Split_Name_Calc_Dog t_SPLIT_NAME
|
||||
RIGHT JOIN parts.DOG_Dog DOG ON DOG.name LIKE CONCAT('%', t_SPLIT_NAME.substring, '%')
|
||||
WHERE
|
||||
t_SPLIT_NAME.substring IS NOT NULL
|
||||
AND t_SPLIT_NAME.substring <> ''
|
||||
)
|
||||
, Dog_Filters AS (
|
||||
SELECT DISTINCT DOG_COMBINED.id_dog
|
||||
FROM (
|
||||
SELECT DOG_ID_FILTER.id_dog FROM Dog_Id_Filter DOG_ID_FILTER
|
||||
UNION
|
||||
SELECT DOG_NAME_FILTER.id_dog FROM Dog_Name_Filter DOG_NAME_FILTER
|
||||
) DOG_COMBINED
|
||||
)
|
||||
SELECT
|
||||
DOG.id_dog
|
||||
FROM parts.DOG_Dog DOG
|
||||
LEFT JOIN Dog_Filters DOG_FILTERS ON DOG.id_dog = DOG_FILTERS.id_dog
|
||||
WHERE
|
||||
(
|
||||
a_get_all_dog = 1
|
||||
OR (
|
||||
(
|
||||
v_has_filter_dog_id = 1
|
||||
OR v_has_filter_dog_name = 1
|
||||
)
|
||||
AND DOG_FILTERS.id_dog IS NOT NULL
|
||||
)
|
||||
)
|
||||
AND (
|
||||
a_get_inactive_dog = 1
|
||||
OR DOG.active = 1
|
||||
)
|
||||
;
|
||||
END IF;
|
||||
END IF;
|
||||
|
||||
DELETE FROM tmp_Split_Id_Calc_Dog;
|
||||
DELETE FROM tmp_Split_Name_Calc_Dog;
|
||||
|
||||
|
||||
-- Permissions
|
||||
IF a_debug = 1 THEN
|
||||
SELECT
|
||||
a_guid
|
||||
, a_id_user
|
||||
, FALSE -- a_get_inactive_user
|
||||
, v_id_permission_dog_view
|
||||
, 0 -- a_debug
|
||||
;
|
||||
END IF;
|
||||
|
||||
CALL parts.p_dog_calc_user(
|
||||
a_guid
|
||||
, a_id_user
|
||||
, FALSE -- a_get_inactive_user
|
||||
, v_id_permission_dog_view
|
||||
, 0 -- a_debug
|
||||
);
|
||||
|
||||
SELECT
|
||||
IFNULL(CALC_USER_T.has_access, 0)
|
||||
INTO
|
||||
v_can_view
|
||||
FROM parts.DOG_Calc_User_Temp CALC_USER_T
|
||||
WHERE CALC_USER_T.GUID = a_guid
|
||||
LIMIT 1
|
||||
;
|
||||
|
||||
IF a_debug = 1 THEN
|
||||
SELECT v_can_view;
|
||||
END IF;
|
||||
|
||||
IF (v_can_view = 0) THEN
|
||||
DELETE t_ME
|
||||
FROM tmp_Msg_Error_Calc_Dog t_ME
|
||||
WHERE t_ME.id_type <> v_id_type_error_no_permission
|
||||
;
|
||||
INSERT INTO tmp_Msg_Error_Calc_Dog (
|
||||
id_type
|
||||
, code
|
||||
, msg
|
||||
)
|
||||
VALUES (
|
||||
v_id_type_error_no_permission
|
||||
, v_code_type_error_no_permission
|
||||
, 'You do not have permission to view Commands.'
|
||||
)
|
||||
;
|
||||
END IF;
|
||||
|
||||
CALL parts.p_dog_clear_calc_user(
|
||||
a_guid
|
||||
, 0 -- a_debug
|
||||
);
|
||||
|
||||
IF EXISTS(SELECT * FROM tmp_Msg_Error_Calc_Dog t_ERROR INNER JOIN parts.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type WHERE ERROR_TYPE.is_breaking_error = 1 LIMIT 1) THEN
|
||||
IF a_debug = 1 THEN
|
||||
SELECT * FROM tmp_Dog_Calc_Dog;
|
||||
END IF;
|
||||
|
||||
DELETE FROM tmp_Dog_Calc_Dog;
|
||||
END IF;
|
||||
|
||||
-- Outputs
|
||||
-- Commands
|
||||
INSERT INTO parts.DOG_Dog_Temp (
|
||||
guid
|
||||
, id_dog
|
||||
, name
|
||||
, appearance
|
||||
, mass_kg
|
||||
, notes
|
||||
, active
|
||||
)
|
||||
SELECT
|
||||
a_guid
|
||||
, t_DOG.id_dog
|
||||
, DOG.name
|
||||
, DOG.appearance
|
||||
, DOG.mass_kg
|
||||
, DOG.notes
|
||||
, DOG.active
|
||||
FROM parts.DOG_Dog DOG
|
||||
INNER JOIN tmp_Dog_Calc_Dog t_DOG ON DOG.id_dog = t_DOG.id_dog
|
||||
;
|
||||
|
||||
-- Errors
|
||||
SELECT
|
||||
t_ERROR.id_error
|
||||
, t_ERROR.id_type
|
||||
, t_ERROR.code
|
||||
, ERROR_TYPE.name
|
||||
, ERROR_TYPE.description
|
||||
, ERROR_TYPE.is_breaking_error
|
||||
, ERROR_TYPE.background_colour
|
||||
, ERROR_TYPE.text_colour
|
||||
, t_ERROR.msg
|
||||
FROM tmp_Msg_Error_Calc_Dog t_ERROR
|
||||
INNER JOIN parts.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type
|
||||
;
|
||||
|
||||
IF a_debug = 1 AND v_can_view = 1 THEN
|
||||
SELECT * FROM tmp_Dog_Calc_Dog;
|
||||
END IF;
|
||||
|
||||
DROP TEMPORARY TABLE IF EXISTS tmp_Split_Name_Calc_Dog;
|
||||
DROP TEMPORARY TABLE IF EXISTS tmp_Split_Id_Calc_Dog;
|
||||
DROP TEMPORARY TABLE IF EXISTS tmp_Msg_Error_Calc_Dog;
|
||||
DROP TEMPORARY TABLE IF EXISTS tmp_Dog_Calc_Dog;
|
||||
|
||||
IF a_debug = 1 THEN
|
||||
CALL parts.p_core_debug_timing_reporting ( v_time_start );
|
||||
END IF;
|
||||
END //
|
||||
DELIMITER ;
|
||||
|
||||
|
||||
/*
|
||||
|
||||
|
||||
CALL parts.p_dog_calc_dog (
|
||||
'slips ' -- a_guid
|
||||
, 1 -- 'auth0|6582b95c895d09a70ba10fef', -- a_id_user
|
||||
, 1 -- a_get_all_dog
|
||||
, 0 -- a_get_inactive_dog
|
||||
, '' -- a_ids_dog
|
||||
, '' -- a_names_dog
|
||||
, 1 -- a_show_errors
|
||||
, 1 -- a_debug
|
||||
);
|
||||
|
||||
SELECT *
|
||||
FROM parts.DOG_Dog_Temp
|
||||
;
|
||||
|
||||
CALL parts.p_dog_clear_calc_dog (
|
||||
'slips ' -- a_guid
|
||||
, 1 -- debug
|
||||
);
|
||||
|
||||
*/
|
||||
44
static/MySQL/71001_p_dog_clear_calc_dog.sql
Normal file
44
static/MySQL/71001_p_dog_clear_calc_dog.sql
Normal file
@@ -0,0 +1,44 @@
|
||||
|
||||
USE parts;
|
||||
|
||||
DROP PROCEDURE IF EXISTS parts.p_dog_clear_calc_dog;
|
||||
|
||||
DELIMITER //
|
||||
CREATE PROCEDURE parts.p_dog_clear_calc_dog (
|
||||
IN a_guid BINARY(36)
|
||||
, IN a_debug BIT
|
||||
)
|
||||
BEGIN
|
||||
DECLARE v_time_start TIMESTAMP(6);
|
||||
SET v_time_start := CURRENT_TIMESTAMP(6);
|
||||
|
||||
CALL parts.p_core_validate_guid ( a_guid );
|
||||
|
||||
START TRANSACTION;
|
||||
|
||||
DELETE DOG_T
|
||||
FROM parts.DOG_Dog_Temp DOG_T
|
||||
WHERE DOG_T.GUID = a_guid
|
||||
;
|
||||
|
||||
COMMIT;
|
||||
|
||||
IF a_debug = 1 THEN
|
||||
CALL parts.p_debug_timing_reporting( v_time_start );
|
||||
END IF;
|
||||
END //
|
||||
DELIMITER ;
|
||||
|
||||
/*
|
||||
|
||||
CALL parts.p_dog_clear_calc_dog (
|
||||
'crips ' -- a_guid
|
||||
, 1 -- debug
|
||||
);
|
||||
|
||||
SELECT *
|
||||
FROM parts.DOG_Calc_User_Temp
|
||||
WHERE GUID = 'chips '
|
||||
;
|
||||
|
||||
*/
|
||||
@@ -1,10 +1,10 @@
|
||||
|
||||
USE parts;
|
||||
|
||||
DROP PROCEDURE IF EXISTS parts.p_DOG_get_many_dog;
|
||||
DROP PROCEDURE IF EXISTS parts.p_dog_get_many_dog;
|
||||
|
||||
DELIMITER //
|
||||
CREATE PROCEDURE parts.p_DOG_get_many_dog (
|
||||
CREATE PROCEDURE parts.p_dog_get_many_dog (
|
||||
IN a_id_user INT
|
||||
, IN a_get_all_dog BIT
|
||||
, IN a_get_inactive_dog BIT
|
||||
@@ -13,17 +13,17 @@ CREATE PROCEDURE parts.p_DOG_get_many_dog (
|
||||
, IN a_debug BIT
|
||||
)
|
||||
BEGIN
|
||||
DECLARE v_can_view BIT;
|
||||
DECLARE v_code_type_error_bad_data VARCHAR(100);
|
||||
DECLARE v_code_type_error_no_permission VARCHAR(100);
|
||||
DECLARE v_id_type_error_bad_data INT;
|
||||
DECLARE v_id_type_error_no_permission INT;
|
||||
DECLARE v_guid BINARY(36);
|
||||
DECLARE v_has_filter_dog_id BIT;
|
||||
DECLARE v_has_filter_dog_name BIT;
|
||||
DECLARE v_guid BINARY(36);
|
||||
DECLARE v_id_permission_dog_view INT;
|
||||
DECLARE v_id_minimum INT;
|
||||
DECLARE v_id_permission_dog_view INT;
|
||||
DECLARE v_id_type_error_bad_data INT;
|
||||
DECLARE v_id_type_error_no_permission INT;
|
||||
DECLARE v_time_start TIMESTAMP(6);
|
||||
DECLARE v_can_view BIT;
|
||||
|
||||
DECLARE exit handler for SQLEXCEPTION
|
||||
BEGIN
|
||||
@@ -106,14 +106,16 @@ BEGIN
|
||||
;
|
||||
END IF;
|
||||
|
||||
DROP TEMPORARY TABLE IF EXISTS tmp_Split_Name;
|
||||
DROP TEMPORARY TABLE IF EXISTS tmp_Split_Id;
|
||||
DROP TEMPORARY TABLE IF EXISTS tmp_Msg_Error;
|
||||
DROP TEMPORARY TABLE IF EXISTS tmp_Dog;
|
||||
|
||||
CREATE TEMPORARY TABLE tmp_Dog (
|
||||
id_dog INT NOT NULL
|
||||
, name VARCHAR(250)
|
||||
, appearance VARCHAR(1000)
|
||||
, mass_kg DECIMAL(7, 3)
|
||||
, notes TEXT
|
||||
, active BIT
|
||||
);
|
||||
|
||||
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error (
|
||||
@@ -121,160 +123,8 @@ BEGIN
|
||||
, id_type INT NULL
|
||||
, code VARCHAR(100) NOT NULL
|
||||
, msg VARCHAR(4000) NOT NULL
|
||||
);
|
||||
);
|
||||
|
||||
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Split_Id (
|
||||
substring VARCHAR(4000) NOT NULL
|
||||
, as_int INT NULL
|
||||
);
|
||||
DELETE FROM tmp_Split_Id;
|
||||
|
||||
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Split_Name (
|
||||
substring VARCHAR(4000) NOT NULL
|
||||
, as_int INT NULL
|
||||
);
|
||||
DELETE FROM tmp_Split_Name;
|
||||
|
||||
CALL parts.p_core_validate_guid ( v_guid );
|
||||
|
||||
SET v_has_filter_dog_id = CASE WHEN a_ids_dog = '' THEN 0 ELSE 1 END;
|
||||
SET v_has_filter_dog_name = CASE WHEN a_names_dog = '' THEN 0 ELSE 1 END;
|
||||
|
||||
-- Dogs
|
||||
IF v_has_filter_dog_id = 1 THEN
|
||||
CALL parts.p_split(v_guid, a_ids_dog, ',', a_debug);
|
||||
|
||||
INSERT INTO tmp_Split_Id (
|
||||
substring
|
||||
, as_int
|
||||
)
|
||||
SELECT
|
||||
SPLIT_T.substring
|
||||
, CONVERT(SPLIT_T.substring, DECIMAL(10,0)) AS as_int
|
||||
FROM parts.CORE_Split_Temp SPLIT_T
|
||||
WHERE
|
||||
SPLIT_T.GUID = v_guid
|
||||
AND IFNULL(SPLIT_T.substring, '') <> ''
|
||||
;
|
||||
|
||||
CALL parts.p_clear_split_temp( v_guid );
|
||||
END IF;
|
||||
|
||||
IF v_has_filter_dog_name = 1 THEN
|
||||
CALL parts.p_split(v_guid, a_names_dog, ',', a_debug);
|
||||
|
||||
INSERT INTO tmp_Split_Name (
|
||||
substring
|
||||
, as_int
|
||||
)
|
||||
SELECT
|
||||
SPLIT_T.substring
|
||||
, CONVERT(SPLIT_T.substring, DECIMAL(10,0)) AS as_int
|
||||
FROM parts.CORE_Split_Temp SPLIT_T
|
||||
WHERE
|
||||
SPLIT_T.GUID = v_guid
|
||||
AND IFNULL(SPLIT_T.substring, '') <> ''
|
||||
;
|
||||
|
||||
CALL parts.p_clear_split_temp( v_guid );
|
||||
END IF;
|
||||
|
||||
IF NOT EXISTS (SELECT * FROM tmp_Msg_Error t_ERROR INNER JOIN parts.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type WHERE ERROR_TYPE.is_breaking_error = 1 LIMIT 1) THEN
|
||||
IF EXISTS (
|
||||
SELECT *
|
||||
FROM tmp_Split_Id t_SPLIT_ID
|
||||
LEFT JOIN parts.DOG_Dog DOG ON t_SPLIT_ID.as_int = DOG.id_dog
|
||||
WHERE
|
||||
ISNULL(t_SPLIT_ID.as_int)
|
||||
OR ISNULL(DOG.id_dog)
|
||||
OR (
|
||||
DOG.active = 0
|
||||
AND a_get_inactive_dog = 0
|
||||
)
|
||||
) THEN
|
||||
INSERT INTO tmp_Msg_Error (
|
||||
id_type
|
||||
, code
|
||||
, msg
|
||||
)
|
||||
SELECT
|
||||
v_id_type_error_bad_data
|
||||
, v_code_type_error_bad_data
|
||||
, CONCAT('Invalid or inactive Dog IDs: ', IFNULL(GROUP_CONCAT(t_SPLIT_ID.substring SEPARATOR ', '), 'NULL'))
|
||||
FROM tmp_Split_Id t_SPLIT_ID
|
||||
LEFT JOIN parts.DOG_Dog DOG ON t_SPLIT_ID.as_int = DOG.id_dog
|
||||
WHERE
|
||||
ISNULL(t_SPLIT_ID.as_int)
|
||||
OR ISNULL(DOG.id_dog)
|
||||
OR (
|
||||
DOG.active = 0
|
||||
AND a_get_inactive_dog = 0
|
||||
)
|
||||
;
|
||||
/* Don't error on names not found
|
||||
ELSEIF EXISTS (
|
||||
SELECT *
|
||||
FROM tmp_Split t_SPLIT
|
||||
LEFT JOIN parts.DOG_Dog DOG ON t_SPLIT.as_int = DOG.id_dog
|
||||
WHERE
|
||||
ISNULL(t_SPLIT.as_int)
|
||||
OR ISNULL(DOG.id_dog)
|
||||
OR (
|
||||
DOG.active = 0
|
||||
AND a_get_inactive_dog = 0
|
||||
)
|
||||
) THEN
|
||||
INSERT INTO tmp_Msg_Error (
|
||||
id_type
|
||||
, code
|
||||
, msg
|
||||
)
|
||||
SELECT
|
||||
v_id_type_error_bad_data
|
||||
, v_code_type_error_bad_data
|
||||
, CONCAT('Invalid or inactive Dog IDs: ', IFNULL(GROUP_CONCAT(t_SPLIT.substring SEPARATOR ', '), 'NULL'))
|
||||
FROM tmp_Split t_SPLIT
|
||||
LEFT JOIN parts.DOG_Dog DOG ON t_SPLIT.as_int = DOG.id_dog
|
||||
WHERE
|
||||
ISNULL(t_SPLIT.as_int)
|
||||
OR ISNULL(DOG.id_dog)
|
||||
OR (
|
||||
DOG.active = 0
|
||||
AND a_get_inactive_dog = 0
|
||||
)
|
||||
;
|
||||
*/
|
||||
ELSE
|
||||
INSERT INTO tmp_Dog (
|
||||
id_dog
|
||||
, name
|
||||
)
|
||||
SELECT
|
||||
DOG.id_dog
|
||||
, DOG.name
|
||||
FROM parts.DOG_Dog DOG
|
||||
LEFT JOIN tmp_Split_Id t_SPLIT_ID ON DOG.id_dog = t_SPLIT_ID.as_int
|
||||
LEFT JOIN tmp_Split_Name t_SPLIT_NAME ON DOG.name = t_SPLIT_NAME.substring
|
||||
WHERE
|
||||
(
|
||||
a_get_all_dog = 1
|
||||
OR (
|
||||
v_has_filter_dog_id = 1
|
||||
OR v_has_filter_dog_name = 1
|
||||
)
|
||||
)
|
||||
AND (
|
||||
a_get_inactive_dog = 1
|
||||
OR DOG.active = 1
|
||||
)
|
||||
;
|
||||
END IF;
|
||||
END IF;
|
||||
|
||||
DELETE FROM tmp_Split_Id;
|
||||
DELETE FROM tmp_Split_Name;
|
||||
|
||||
|
||||
-- Permissions
|
||||
IF a_debug = 1 THEN
|
||||
SELECT
|
||||
@@ -286,7 +136,7 @@ BEGIN
|
||||
;
|
||||
END IF;
|
||||
|
||||
CALL parts.p_DOG_calc_user(
|
||||
CALL parts.p_dog_calc_user(
|
||||
v_guid
|
||||
, a_id_user
|
||||
, FALSE -- a_get_inactive_user
|
||||
@@ -305,6 +155,8 @@ BEGIN
|
||||
|
||||
IF a_debug = 1 THEN
|
||||
SELECT v_can_view;
|
||||
SELECT COUNT(*) AS Count_Errors FROM tmp_Msg_Error t_ERROR;
|
||||
SELECT * FROM tmp_Msg_Error t_ERROR;
|
||||
END IF;
|
||||
|
||||
IF (v_can_view = 0) THEN
|
||||
@@ -325,11 +177,63 @@ BEGIN
|
||||
;
|
||||
END IF;
|
||||
|
||||
CALL parts.p_DOG_clear_calc_user(
|
||||
CALL parts.p_dog_clear_calc_user(
|
||||
v_guid
|
||||
, 0 -- a_debug
|
||||
);
|
||||
|
||||
|
||||
-- Call Dog Calc
|
||||
IF NOT EXISTS(SELECT * FROM tmp_Msg_Error t_ERROR INNER JOIN parts.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type WHERE ERROR_TYPE.is_breaking_error = 1 LIMIT 1) THEN
|
||||
IF a_debug = 1 THEN
|
||||
SELECT
|
||||
v_guid -- a_guid
|
||||
, a_id_user -- a_id_user
|
||||
, a_get_all_dog -- a_get_all_dog
|
||||
, a_get_inactive_dog -- a_get_inactive_dog
|
||||
, a_ids_dog -- a_ids_dog
|
||||
, a_names_dog -- a_names_dog
|
||||
, 0 -- a_show_errors
|
||||
, 0 -- a_debug
|
||||
;
|
||||
END IF;
|
||||
|
||||
CALL parts.p_dog_calc_dog(
|
||||
v_guid -- a_guid
|
||||
, a_id_user -- a_id_user
|
||||
, a_get_all_dog -- a_get_all_dog
|
||||
, a_get_inactive_dog -- a_get_inactive_dog
|
||||
, a_ids_dog -- a_ids_dog
|
||||
, a_names_dog -- a_names_dog
|
||||
, 0 -- a_show_errors
|
||||
, 0 -- a_debug
|
||||
);
|
||||
|
||||
INSERT INTO tmp_Dog (
|
||||
id_dog
|
||||
, name
|
||||
, appearance
|
||||
, mass_kg
|
||||
, notes
|
||||
, active
|
||||
)
|
||||
SELECT
|
||||
DOG_T.id_dog
|
||||
, DOG_T.name
|
||||
, DOG_T.appearance
|
||||
, DOG_T.mass_kg
|
||||
, DOG_T.notes
|
||||
, DOG_T.active
|
||||
FROM parts.DOG_Dog_Temp DOG_T
|
||||
WHERE DOG_T.GUID = v_guid
|
||||
;
|
||||
|
||||
IF a_debug = 1 THEN
|
||||
SELECT * FROM tmp_Dog;
|
||||
END IF;
|
||||
END IF;
|
||||
|
||||
-- Filter outputs
|
||||
IF EXISTS(SELECT * FROM tmp_Msg_Error t_ERROR INNER JOIN parts.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type WHERE ERROR_TYPE.is_breaking_error = 1 LIMIT 1) THEN
|
||||
IF a_debug = 1 THEN
|
||||
SELECT * FROM tmp_Dog;
|
||||
@@ -338,19 +242,18 @@ BEGIN
|
||||
DELETE FROM tmp_Dog;
|
||||
END IF;
|
||||
|
||||
|
||||
-- Outputs
|
||||
-- Commands
|
||||
SELECT
|
||||
t_DOG.id_dog
|
||||
, t_DOG.name
|
||||
, DOG.appearance
|
||||
, DOG.mass_kg
|
||||
, DOG.notes
|
||||
, DOG.active
|
||||
FROM parts.DOG_Dog DOG
|
||||
INNER JOIN tmp_Dog t_DOG ON DOG.id_dog = t_DOG.id_dog
|
||||
;
|
||||
|
||||
DOG_T.id_dog
|
||||
, DOG_T.name
|
||||
, DOG_T.appearance
|
||||
, DOG_T.mass_kg
|
||||
, DOG_T.notes
|
||||
, DOG_T.active
|
||||
FROM parts.DOG_Dog_Temp DOG_T
|
||||
;
|
||||
|
||||
-- Errors
|
||||
SELECT
|
||||
t_ERROR.id_error
|
||||
@@ -369,9 +272,12 @@ BEGIN
|
||||
IF a_debug = 1 AND v_can_view = 1 THEN
|
||||
SELECT * FROM tmp_Dog;
|
||||
END IF;
|
||||
|
||||
CALL parts.p_dog_clear_calc_dog(
|
||||
v_guid -- a_guid
|
||||
, 0 -- a_debug
|
||||
);
|
||||
|
||||
DROP TEMPORARY TABLE IF EXISTS tmp_Split_Name;
|
||||
DROP TEMPORARY TABLE IF EXISTS tmp_Split_Id;
|
||||
DROP TEMPORARY TABLE IF EXISTS tmp_Msg_Error;
|
||||
DROP TEMPORARY TABLE IF EXISTS tmp_Dog;
|
||||
|
||||
@@ -384,7 +290,7 @@ DELIMITER ;
|
||||
|
||||
/*
|
||||
|
||||
CALL parts.p_DOG_get_many_dog (
|
||||
CALL parts.p_dog_get_many_dog (
|
||||
1 -- 'auth0|6582b95c895d09a70ba10fef', -- a_id_user
|
||||
, 1 -- a_get_all_dog
|
||||
, 0 -- a_get_inactive_dog
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
|
||||
USE parts;
|
||||
|
||||
DROP PROCEDURE IF EXISTS parts.p_DOG_save_command;
|
||||
DROP PROCEDURE IF EXISTS parts.p_dog_save_command;
|
||||
|
||||
DELIMITER //
|
||||
CREATE PROCEDURE parts.p_DOG_save_command (
|
||||
CREATE PROCEDURE parts.p_dog_save_command (
|
||||
IN a_comment VARCHAR(500),
|
||||
IN a_guid BINARY(36),
|
||||
IN a_id_user INT,
|
||||
@@ -219,7 +219,7 @@ BEGIN
|
||||
;
|
||||
END IF;
|
||||
|
||||
CALL parts.p_DOG_calc_user(
|
||||
CALL parts.p_dog_calc_user(
|
||||
a_guid
|
||||
, a_id_user
|
||||
, FALSE -- a_get_inactive_user
|
||||
@@ -236,12 +236,12 @@ BEGIN
|
||||
LIMIT 1
|
||||
;
|
||||
|
||||
CALL parts.p_DOG_clear_calc_user(
|
||||
CALL parts.p_dog_clear_calc_user(
|
||||
a_guid
|
||||
, 0 -- a_debug
|
||||
);
|
||||
|
||||
CALL parts.p_DOG_calc_user(
|
||||
CALL parts.p_dog_calc_user(
|
||||
a_guid
|
||||
, a_id_user
|
||||
, FALSE -- a_get_inactive_user
|
||||
@@ -258,7 +258,7 @@ BEGIN
|
||||
LIMIT 1
|
||||
;
|
||||
|
||||
CALL parts.p_DOG_clear_calc_user(
|
||||
CALL parts.p_dog_clear_calc_user(
|
||||
a_guid
|
||||
, 0 -- a_debug
|
||||
);
|
||||
@@ -427,7 +427,7 @@ from parts.DOG_Command
|
||||
;
|
||||
|
||||
|
||||
CALL parts.p_DOG_save_command (
|
||||
CALL parts.p_dog_save_command (
|
||||
'nipples'
|
||||
, (SELECT GUID FROM parts.DOG_Command_Temp COMMAND_TEMP ORDER BY id_temp DESC LIMIT 1)
|
||||
, 1
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
USE parts;
|
||||
|
||||
DROP PROCEDURE IF EXISTS parts.p_DOG_test_save_command;
|
||||
DROP PROCEDURE IF EXISTS parts.p_dog_test_save_command;
|
||||
|
||||
|
||||
DELIMITER //
|
||||
CREATE PROCEDURE parts.p_DOG_test_save_command ()
|
||||
CREATE PROCEDURE parts.p_dog_test_save_command ()
|
||||
BEGIN
|
||||
|
||||
DECLARE v_guid BINARY(36);
|
||||
@@ -61,7 +61,7 @@ BEGIN
|
||||
-- WHERE GUID = v_guid
|
||||
;
|
||||
|
||||
CALL parts.p_DOG_save_command (
|
||||
CALL parts.p_dog_save_command (
|
||||
'Test save Command' -- comment
|
||||
, v_guid -- guid
|
||||
, 3 -- 1 -- id_user
|
||||
@@ -90,7 +90,7 @@ FROM parts.DOG_Command_Temp
|
||||
;
|
||||
|
||||
|
||||
CALL parts.p_DOG_test_save_command ();
|
||||
CALL parts.p_dog_test_save_command ();
|
||||
|
||||
SELECT 'After Test';
|
||||
SELECT *
|
||||
|
||||
651
static/MySQL/71104_p_dog_calc_command.sql
Normal file
651
static/MySQL/71104_p_dog_calc_command.sql
Normal file
@@ -0,0 +1,651 @@
|
||||
|
||||
USE parts;
|
||||
|
||||
DROP PROCEDURE IF EXISTS parts.p_dog_calc_command;
|
||||
|
||||
DELIMITER //
|
||||
CREATE PROCEDURE parts.p_dog_calc_command (
|
||||
IN a_guid BINARY(36)
|
||||
, IN a_id_user INT
|
||||
, IN a_get_all_command_category BIT
|
||||
, IN a_get_inactive_command_category BIT
|
||||
, IN a_ids_command_category TEXT
|
||||
, IN a_names_command_category TEXT
|
||||
, IN a_get_all_command BIT
|
||||
, IN a_get_inactive_command BIT
|
||||
, IN a_ids_command TEXT
|
||||
, IN a_names_command TEXT
|
||||
, IN a_show_errors BIT
|
||||
, IN a_debug BIT
|
||||
)
|
||||
BEGIN
|
||||
DECLARE v_can_view BIT;
|
||||
DECLARE v_code_type_error_bad_data VARCHAR(100);
|
||||
DECLARE v_code_type_error_no_permission VARCHAR(100);
|
||||
DECLARE v_has_filter_command_id BIT;
|
||||
DECLARE v_has_filter_command_name BIT;
|
||||
DECLARE v_has_filter_command_category_id BIT;
|
||||
DECLARE v_has_filter_command_category_name BIT;
|
||||
DECLARE v_id_minimum INT;
|
||||
DECLARE v_id_permission_dog_view INT;
|
||||
DECLARE v_id_type_error_bad_data INT;
|
||||
DECLARE v_id_type_error_no_permission INT;
|
||||
DECLARE v_time_start TIMESTAMP(6);
|
||||
|
||||
DECLARE exit handler for SQLEXCEPTION
|
||||
BEGIN
|
||||
GET DIAGNOSTICS CONDITION 1
|
||||
@sqlstate = RETURNED_SQLSTATE
|
||||
, @errno = MYSQL_ERRNO
|
||||
, @text = MESSAGE_TEXT
|
||||
;
|
||||
|
||||
ROLLBACK;
|
||||
|
||||
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error_Calc_Command (
|
||||
id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT
|
||||
, id_type INT NULL
|
||||
, code VARCHAR(100) NOT NULL
|
||||
, msg VARCHAR(4000) NOT NULL
|
||||
);
|
||||
|
||||
INSERT INTO tmp_Msg_Error_Calc_Command (
|
||||
id_type
|
||||
, code
|
||||
, msg
|
||||
)
|
||||
SELECT
|
||||
MET.id_type
|
||||
, @errno
|
||||
, @text
|
||||
FROM parts.CORE_Msg_Error_Type MET
|
||||
WHERE MET.code = 'MYSQL_ERROR'
|
||||
;
|
||||
|
||||
SELECT
|
||||
t_ERROR.id_error
|
||||
, t_ERROR.id_type
|
||||
, t_ERROR.code
|
||||
, ERROR_TYPE.name
|
||||
, ERROR_TYPE.description
|
||||
, ERROR_TYPE.is_breaking_error
|
||||
, ERROR_TYPE.background_colour
|
||||
, ERROR_TYPE.text_colour
|
||||
, t_ERROR.msg
|
||||
FROM tmp_Msg_Error_Calc_Command t_ERROR
|
||||
INNER JOIN parts.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type
|
||||
;
|
||||
|
||||
DROP TABLE IF EXISTS tmp_Msg_Error_Calc_Command;
|
||||
END;
|
||||
|
||||
SET v_time_start := CURRENT_TIMESTAMP(6);
|
||||
SET v_code_type_error_bad_data := 'BAD_DATA';
|
||||
SET v_code_type_error_no_permission := 'NO_PERMISSION';
|
||||
SET v_id_type_error_bad_data := (SELECT ERROR_TYPE.id_type FROM parts.CORE_Msg_Error_Type ERROR_TYPE WHERE ERROR_TYPE.code = v_code_type_error_bad_data LIMIT 1);
|
||||
SET v_id_type_error_no_permission := (SELECT ERROR_TYPE.id_type FROM parts.CORE_Msg_Error_Type ERROR_TYPE WHERE ERROR_TYPE.code = v_code_type_error_no_permission LIMIT 1);
|
||||
SET v_id_permission_dog_view := (SELECT PERMISSION.id_permission FROM parts.DOG_Permission PERMISSION WHERE PERMISSION.code = 'DOG_VIEW' LIMIT 1);
|
||||
|
||||
|
||||
CALL parts.p_core_validate_guid ( a_guid );
|
||||
|
||||
SET a_id_user := IFNULL(a_id_user, 0);
|
||||
SET a_get_all_command_category := IFNULL(a_get_all_command_category, 0);
|
||||
SET a_get_inactive_command_category := IFNULL(a_get_inactive_command_category, 0);
|
||||
SET a_ids_command_category := TRIM(IFNULL(a_ids_command_category, ''));
|
||||
SET a_names_command_category := TRIM(IFNULL(a_names_command_category, ''));
|
||||
SET a_get_all_command := IFNULL(a_get_all_command, 0);
|
||||
SET a_get_inactive_command := IFNULL(a_get_inactive_command, 0);
|
||||
SET a_ids_command := TRIM(IFNULL(a_ids_command, ''));
|
||||
SET a_names_command := TRIM(IFNULL(a_names_command, ''));
|
||||
SET a_show_errors := IFNULL(a_show_errors, 0);
|
||||
SET a_debug := IFNULL(a_debug, 0);
|
||||
|
||||
IF a_debug = 1 THEN
|
||||
SELECT
|
||||
a_guid
|
||||
, a_id_user
|
||||
, a_get_all_command_category
|
||||
, a_get_inactive_command_category
|
||||
, a_ids_command_category
|
||||
, a_names_command_category
|
||||
, a_get_all_command
|
||||
, a_get_inactive_command
|
||||
, a_ids_command
|
||||
, a_names_command
|
||||
, a_show_errors
|
||||
, a_debug
|
||||
;
|
||||
|
||||
SELECT
|
||||
v_id_type_error_bad_data
|
||||
, v_id_type_error_no_permission
|
||||
, v_id_permission_dog_view
|
||||
, v_time_start
|
||||
;
|
||||
END IF;
|
||||
|
||||
DROP TEMPORARY TABLE IF EXISTS tmp_Split_Name_Calc_Command;
|
||||
DROP TEMPORARY TABLE IF EXISTS tmp_Split_Id_Calc_Command;
|
||||
DROP TEMPORARY TABLE IF EXISTS tmp_Msg_Error_Calc_Command;
|
||||
DROP TEMPORARY TABLE IF EXISTS tmp_Command_Calc_Command;
|
||||
|
||||
CREATE TEMPORARY TABLE tmp_Command_Calc_Command_Category (
|
||||
id_command_category INT NOT NULL
|
||||
);
|
||||
|
||||
CREATE TEMPORARY TABLE tmp_Command_Calc_Command (
|
||||
id_command INT NOT NULL
|
||||
, id_command_category INT NOT NULL
|
||||
);
|
||||
|
||||
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error_Calc_Command (
|
||||
id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT
|
||||
, id_type INT NULL
|
||||
, code VARCHAR(100) NOT NULL
|
||||
, msg VARCHAR(4000) NOT NULL
|
||||
);
|
||||
|
||||
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Split_Id_Calc_Command (
|
||||
substring VARCHAR(4000) NOT NULL
|
||||
, as_int INT NULL
|
||||
);
|
||||
DELETE FROM tmp_Split_Id_Calc_Command;
|
||||
|
||||
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Split_Name_Calc_Command (
|
||||
substring VARCHAR(4000) NOT NULL
|
||||
, as_int INT NULL
|
||||
);
|
||||
DELETE FROM tmp_Split_Name_Calc_Command;
|
||||
|
||||
SET v_has_filter_command_category_id = CASE WHEN a_ids_command_category = '' THEN 0 ELSE 1 END;
|
||||
SET v_has_filter_command_category_name = CASE WHEN a_names_command_category = '' THEN 0 ELSE 1 END;
|
||||
SET v_has_filter_command_id = CASE WHEN a_ids_command = '' THEN 0 ELSE 1 END;
|
||||
SET v_has_filter_command_name = CASE WHEN a_names_command = '' THEN 0 ELSE 1 END;
|
||||
|
||||
-- Command Categories
|
||||
IF v_has_filter_command_category_id = 1 THEN
|
||||
CALL parts.p_core_split(a_guid, a_ids_command_category, ',', a_debug);
|
||||
|
||||
INSERT INTO tmp_Split_Id_Calc_Command (
|
||||
substring
|
||||
, as_int
|
||||
)
|
||||
SELECT
|
||||
SPLIT_T.substring
|
||||
, CONVERT(SPLIT_T.substring, DECIMAL(10,0)) AS as_int
|
||||
FROM parts.CORE_Split_Temp SPLIT_T
|
||||
WHERE
|
||||
SPLIT_T.GUID = a_guid
|
||||
AND IFNULL(SPLIT_T.substring, '') <> ''
|
||||
;
|
||||
|
||||
CALL parts.p_core_clear_split( a_guid );
|
||||
END IF;
|
||||
|
||||
IF v_has_filter_command_category_name = 1 THEN
|
||||
CALL parts.p_core_split(a_guid, a_names_command_category, ',', a_debug);
|
||||
|
||||
INSERT INTO tmp_Split_Name_Calc_Command (
|
||||
substring
|
||||
, as_int
|
||||
)
|
||||
SELECT
|
||||
SPLIT_T.substring
|
||||
, CONVERT(SPLIT_T.substring, DECIMAL(10,0)) AS as_int
|
||||
FROM parts.CORE_Split_Temp SPLIT_T
|
||||
WHERE
|
||||
SPLIT_T.GUID = a_guid
|
||||
AND IFNULL(SPLIT_T.substring, '') <> ''
|
||||
;
|
||||
|
||||
CALL parts.p_core_clear_split( a_guid );
|
||||
END IF;
|
||||
|
||||
IF NOT EXISTS (SELECT * FROM tmp_Msg_Error_Calc_Command t_ERROR INNER JOIN parts.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type WHERE ERROR_TYPE.is_breaking_error = 1 LIMIT 1) THEN
|
||||
IF EXISTS (
|
||||
SELECT *
|
||||
FROM tmp_Split_Id_Calc_Command t_SPLIT_ID
|
||||
LEFT JOIN parts.DOG_Command_Category COMMAND_CATEGORY ON t_SPLIT_ID.as_int = COMMAND_CATEGORY.id_command_category
|
||||
WHERE
|
||||
ISNULL(t_SPLIT_ID.as_int)
|
||||
OR ISNULL(COMMAND_CATEGORY.id_command_category)
|
||||
OR (
|
||||
COMMAND_CATEGORY.active = 0
|
||||
AND a_get_inactive_command_category = 0
|
||||
)
|
||||
) THEN
|
||||
INSERT INTO tmp_Msg_Error_Calc_Command (
|
||||
id_type
|
||||
, code
|
||||
, msg
|
||||
)
|
||||
SELECT
|
||||
v_id_type_error_bad_data
|
||||
, v_code_type_error_bad_data
|
||||
, CONCAT('Invalid or inactive Command IDs: ', IFNULL(GROUP_CONCAT(t_SPLIT_ID.substring SEPARATOR ', '), 'NULL'))
|
||||
FROM tmp_Split_Id_Calc_Command t_SPLIT_ID
|
||||
LEFT JOIN parts.DOG_Command_Category COMMAND_CATEGORY ON t_SPLIT_ID.as_int = COMMAND_CATEGORY.id_command_category
|
||||
WHERE
|
||||
ISNULL(t_SPLIT_ID.as_int)
|
||||
OR ISNULL(COMMAND_CATEGORY.id_command_category)
|
||||
OR (
|
||||
COMMAND_CATEGORY.active = 0
|
||||
AND a_get_inactive_command_category = 0
|
||||
)
|
||||
;
|
||||
/* Don't error on names not found
|
||||
ELSEIF EXISTS (
|
||||
SELECT *
|
||||
FROM tmp_Split t_SPLIT
|
||||
LEFT JOIN parts.DOG_Command_Category COMMAND_CATEGORY ON t_SPLIT.as_int = COMMAND_CATEGORY.id_command_category
|
||||
WHERE
|
||||
ISNULL(t_SPLIT.as_int)
|
||||
OR ISNULL(COMMAND_CATEGORY.id_command_category)
|
||||
OR (
|
||||
COMMAND_CATEGORY.active = 0
|
||||
AND a_get_inactive_command_category = 0
|
||||
)
|
||||
) THEN
|
||||
INSERT INTO tmp_Msg_Error_Calc_Command (
|
||||
id_type
|
||||
, code
|
||||
, msg
|
||||
)
|
||||
SELECT
|
||||
v_id_type_error_bad_data
|
||||
, v_code_type_error_bad_data
|
||||
, CONCAT('Invalid or inactive Command IDs: ', IFNULL(GROUP_CONCAT(t_SPLIT.substring SEPARATOR ', '), 'NULL'))
|
||||
FROM tmp_Split t_SPLIT
|
||||
LEFT JOIN parts.DOG_Command_Category COMMAND_CATEGORY ON t_SPLIT.as_int = COMMAND_CATEGORY.id_command_category
|
||||
WHERE
|
||||
ISNULL(t_SPLIT.as_int)
|
||||
OR ISNULL(COMMAND_CATEGORY.id_command_category)
|
||||
OR (
|
||||
COMMAND_CATEGORY.active = 0
|
||||
AND a_get_inactive_command_category = 0
|
||||
)
|
||||
;
|
||||
*/
|
||||
ELSE
|
||||
INSERT INTO tmp_Command_Calc_Command_Category (
|
||||
id_command_category
|
||||
)
|
||||
WITH
|
||||
Command_Category_Id_Filter AS (
|
||||
SELECT COMMAND_CATEGORY.id_command_category
|
||||
FROM tmp_Split_Id_Calc_Command t_SPLIT_ID
|
||||
RIGHT JOIN parts.DOG_Command_Category COMMAND_CATEGORY ON t_SPLIT_ID.as_int = COMMAND_CATEGORY.id_command_category
|
||||
WHERE t_SPLIT_ID.as_int IS NOT NULL
|
||||
)
|
||||
, Command_Category_Name_Filter AS (
|
||||
SELECT COMMAND_CATEGORY.id_command_category
|
||||
FROM tmp_Split_Name_Calc_Command t_SPLIT_NAME
|
||||
RIGHT JOIN parts.DOG_Command_Category COMMAND_CATEGORY ON COMMAND_CATEGORY.name LIKE CONCAT('%', t_SPLIT_NAME.substring, '%')
|
||||
WHERE
|
||||
t_SPLIT_NAME.substring IS NOT NULL
|
||||
AND t_SPLIT_NAME.substring <> ''
|
||||
)
|
||||
, Command_Category_Filters AS (
|
||||
SELECT DISTINCT COMMAND_CATEGORY_COMBINED.id_command_category
|
||||
FROM (
|
||||
SELECT COMMAND_CATEGORY_ID_FILTER.id_command_category FROM Command_Category_Id_Filter COMMAND_CATEGORY_ID_FILTER
|
||||
UNION
|
||||
SELECT COMMAND_CATEGORY_NAME_FILTER.id_command_category FROM Command_Category_Name_Filter COMMAND_CATEGORY_NAME_FILTER
|
||||
) COMMAND_CATEGORY_COMBINED
|
||||
)
|
||||
SELECT
|
||||
COMMAND_CATEGORY.id_command_category
|
||||
FROM parts.DOG_Command_Category COMMAND_CATEGORY
|
||||
LEFT JOIN Command_Category_Filters COMMAND_CATEGORY_FILTERS ON COMMAND_CATEGORY.id_command_category = COMMAND_CATEGORY_FILTERS.id_command_category
|
||||
WHERE
|
||||
(
|
||||
a_get_all_command_category = 1
|
||||
OR (
|
||||
(
|
||||
v_has_filter_command_category_id = 1
|
||||
OR v_has_filter_command_category_name = 1
|
||||
)
|
||||
AND COMMAND_CATEGORY_FILTERS.id_command_category IS NOT NULL
|
||||
)
|
||||
)
|
||||
AND (
|
||||
a_get_inactive_command_category = 1
|
||||
OR COMMAND_CATEGORY.active = 1
|
||||
)
|
||||
;
|
||||
END IF;
|
||||
END IF;
|
||||
|
||||
DELETE FROM tmp_Split_Id_Calc_Command;
|
||||
DELETE FROM tmp_Split_Name_Calc_Command;
|
||||
|
||||
-- Commands
|
||||
IF v_has_filter_command_id = 1 THEN
|
||||
CALL parts.p_core_split(a_guid, a_ids_command, ',', a_debug);
|
||||
|
||||
INSERT INTO tmp_Split_Id_Calc_Command (
|
||||
substring
|
||||
, as_int
|
||||
)
|
||||
SELECT
|
||||
SPLIT_T.substring
|
||||
, CONVERT(SPLIT_T.substring, DECIMAL(10,0)) AS as_int
|
||||
FROM parts.CORE_Split_Temp SPLIT_T
|
||||
WHERE
|
||||
SPLIT_T.GUID = a_guid
|
||||
AND IFNULL(SPLIT_T.substring, '') <> ''
|
||||
;
|
||||
|
||||
CALL parts.p_core_clear_split( a_guid );
|
||||
END IF;
|
||||
|
||||
IF v_has_filter_command_name = 1 THEN
|
||||
CALL parts.p_core_split(a_guid, a_names_command, ',', a_debug);
|
||||
|
||||
INSERT INTO tmp_Split_Name_Calc_Command (
|
||||
substring
|
||||
, as_int
|
||||
)
|
||||
SELECT
|
||||
SPLIT_T.substring
|
||||
, CONVERT(SPLIT_T.substring, DECIMAL(10,0)) AS as_int
|
||||
FROM parts.CORE_Split_Temp SPLIT_T
|
||||
WHERE
|
||||
SPLIT_T.GUID = a_guid
|
||||
AND IFNULL(SPLIT_T.substring, '') <> ''
|
||||
;
|
||||
|
||||
CALL parts.p_core_clear_split( a_guid );
|
||||
END IF;
|
||||
|
||||
IF NOT EXISTS (SELECT * FROM tmp_Msg_Error_Calc_Command t_ERROR INNER JOIN parts.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type WHERE ERROR_TYPE.is_breaking_error = 1 LIMIT 1) THEN
|
||||
IF EXISTS (
|
||||
SELECT *
|
||||
FROM tmp_Split_Id_Calc_Command t_SPLIT_ID
|
||||
LEFT JOIN parts.DOG_Command COMMAND ON t_SPLIT_ID.as_int = COMMAND.id_command
|
||||
WHERE
|
||||
ISNULL(t_SPLIT_ID.as_int)
|
||||
OR ISNULL(COMMAND.id_command)
|
||||
OR (
|
||||
COMMAND.active = 0
|
||||
AND a_get_inactive_command = 0
|
||||
)
|
||||
) THEN
|
||||
INSERT INTO tmp_Msg_Error_Calc_Command (
|
||||
id_type
|
||||
, code
|
||||
, msg
|
||||
)
|
||||
SELECT
|
||||
v_id_type_error_bad_data
|
||||
, v_code_type_error_bad_data
|
||||
, CONCAT('Invalid or inactive Command IDs: ', IFNULL(GROUP_CONCAT(t_SPLIT_ID.substring SEPARATOR ', '), 'NULL'))
|
||||
FROM tmp_Split_Id_Calc_Command t_SPLIT_ID
|
||||
LEFT JOIN parts.DOG_Command COMMAND ON t_SPLIT_ID.as_int = COMMAND.id_command
|
||||
WHERE
|
||||
ISNULL(t_SPLIT_ID.as_int)
|
||||
OR ISNULL(COMMAND.id_command)
|
||||
OR (
|
||||
COMMAND.active = 0
|
||||
AND a_get_inactive_command = 0
|
||||
)
|
||||
;
|
||||
/* Don't error on names not found
|
||||
ELSEIF EXISTS (
|
||||
SELECT *
|
||||
FROM tmp_Split t_SPLIT
|
||||
LEFT JOIN parts.DOG_Command COMMAND ON t_SPLIT.as_int = COMMAND.id_command
|
||||
WHERE
|
||||
ISNULL(t_SPLIT.as_int)
|
||||
OR ISNULL(COMMAND.id_command)
|
||||
OR (
|
||||
COMMAND.active = 0
|
||||
AND a_get_inactive_command = 0
|
||||
)
|
||||
) THEN
|
||||
INSERT INTO tmp_Msg_Error_Calc_Command (
|
||||
id_type
|
||||
, code
|
||||
, msg
|
||||
)
|
||||
SELECT
|
||||
v_id_type_error_bad_data
|
||||
, v_code_type_error_bad_data
|
||||
, CONCAT('Invalid or inactive Command IDs: ', IFNULL(GROUP_CONCAT(t_SPLIT.substring SEPARATOR ', '), 'NULL'))
|
||||
FROM tmp_Split t_SPLIT
|
||||
LEFT JOIN parts.DOG_Command COMMAND ON t_SPLIT.as_int = COMMAND.id_command
|
||||
WHERE
|
||||
ISNULL(t_SPLIT.as_int)
|
||||
OR ISNULL(COMMAND.id_command)
|
||||
OR (
|
||||
COMMAND.active = 0
|
||||
AND a_get_inactive_command = 0
|
||||
)
|
||||
;
|
||||
*/
|
||||
ELSE
|
||||
INSERT INTO tmp_Command_Calc_Command (
|
||||
id_command
|
||||
, id_command_category
|
||||
)
|
||||
WITH
|
||||
Command_Id_Filter AS (
|
||||
SELECT COMMAND.id_command
|
||||
FROM tmp_Split_Id_Calc_Command t_SPLIT_ID
|
||||
RIGHT JOIN parts.DOG_Command COMMAND ON t_SPLIT_ID.as_int = COMMAND.id_command
|
||||
WHERE t_SPLIT_ID.as_int IS NOT NULL
|
||||
)
|
||||
, Command_Name_Filter AS (
|
||||
SELECT COMMAND.id_command
|
||||
FROM tmp_Split_Name_Calc_Command t_SPLIT_NAME
|
||||
RIGHT JOIN parts.DOG_Command COMMAND ON COMMAND.name LIKE CONCAT('%', t_SPLIT_NAME.substring, '%')
|
||||
WHERE
|
||||
t_SPLIT_NAME.substring IS NOT NULL
|
||||
AND t_SPLIT_NAME.substring <> ''
|
||||
)
|
||||
, Command_Filters AS (
|
||||
SELECT DISTINCT COMMAND_COMBINED.id_command
|
||||
FROM (
|
||||
SELECT COMMAND_ID_FILTER.id_command FROM Command_Id_Filter COMMAND_ID_FILTER
|
||||
UNION
|
||||
SELECT COMMAND_NAME_FILTER.id_command FROM Command_Name_Filter COMMAND_NAME_FILTER
|
||||
) COMMAND_COMBINED
|
||||
)
|
||||
SELECT
|
||||
COMMAND.id_command
|
||||
, COMMAND.id_command_category
|
||||
FROM parts.DOG_Command COMMAND
|
||||
INNER JOIN tmp_Command_Calc_Command_Category t_COMMAND_CATEGORY ON COMMAND.id_command_category = t_COMMAND_CATEGORY.id_command_category
|
||||
LEFT JOIN Command_Filters COMMAND_FILTERS ON COMMAND.id_command = COMMAND_FILTERS.id_command
|
||||
WHERE
|
||||
(
|
||||
a_get_all_command = 1
|
||||
OR (
|
||||
(
|
||||
v_has_filter_command_id = 1
|
||||
OR v_has_filter_command_name = 1
|
||||
)
|
||||
AND COMMAND_FILTERS.id_command IS NOT NULL
|
||||
)
|
||||
)
|
||||
AND (
|
||||
a_get_inactive_command = 1
|
||||
OR COMMAND.active = 1
|
||||
)
|
||||
;
|
||||
END IF;
|
||||
END IF;
|
||||
|
||||
DELETE FROM tmp_Split_Id_Calc_Command;
|
||||
DELETE FROM tmp_Split_Name_Calc_Command;
|
||||
|
||||
|
||||
-- Permissions
|
||||
IF a_debug = 1 THEN
|
||||
SELECT
|
||||
a_guid
|
||||
, a_id_user
|
||||
, FALSE -- a_get_inactive_user
|
||||
, v_id_permission_dog_view
|
||||
, 0 -- a_debug
|
||||
;
|
||||
END IF;
|
||||
|
||||
CALL parts.p_dog_calc_user(
|
||||
a_guid
|
||||
, a_id_user
|
||||
, FALSE -- a_get_inactive_user
|
||||
, v_id_permission_dog_view
|
||||
, 0 -- a_debug
|
||||
);
|
||||
|
||||
SELECT
|
||||
IFNULL(CALC_USER_T.has_access, 0)
|
||||
INTO
|
||||
v_can_view
|
||||
FROM parts.DOG_Calc_User_Temp CALC_USER_T
|
||||
WHERE CALC_USER_T.GUID = a_guid
|
||||
LIMIT 1
|
||||
;
|
||||
|
||||
IF a_debug = 1 THEN
|
||||
SELECT v_can_view;
|
||||
END IF;
|
||||
|
||||
IF (v_can_view = 0) THEN
|
||||
DELETE t_ME
|
||||
FROM tmp_Msg_Error_Calc_Command t_ME
|
||||
WHERE t_ME.id_type <> v_id_type_error_no_permission
|
||||
;
|
||||
INSERT INTO tmp_Msg_Error_Calc_Command (
|
||||
id_type
|
||||
, code
|
||||
, msg
|
||||
)
|
||||
VALUES (
|
||||
v_id_type_error_no_permission
|
||||
, v_code_type_error_no_permission
|
||||
, 'You do not have permission to view Dogs and Commands.'
|
||||
)
|
||||
;
|
||||
END IF;
|
||||
|
||||
CALL parts.p_dog_clear_calc_user(
|
||||
a_guid
|
||||
, 0 -- a_debug
|
||||
);
|
||||
|
||||
IF EXISTS(SELECT * FROM tmp_Msg_Error_Calc_Command t_ERROR INNER JOIN parts.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type WHERE ERROR_TYPE.is_breaking_error = 1 LIMIT 1) THEN
|
||||
IF a_debug = 1 THEN
|
||||
SELECT * FROM tmp_Command_Calc_Command;
|
||||
END IF;
|
||||
|
||||
DELETE FROM tmp_Command_Calc_Command;
|
||||
END IF;
|
||||
|
||||
-- Outputs
|
||||
START TRANSACTION;
|
||||
-- Command Categories
|
||||
INSERT INTO parts.DOG_Command_Category_Temp (
|
||||
guid
|
||||
, id_command_category
|
||||
, code
|
||||
, name
|
||||
, active
|
||||
)
|
||||
SELECT
|
||||
a_guid
|
||||
, t_COMMAND_CATEGORY.id_command_category
|
||||
, COMMAND_CATEGORY.code
|
||||
, COMMAND_CATEGORY.name
|
||||
, COMMAND_CATEGORY.active
|
||||
FROM parts.DOG_Command_Category COMMAND_CATEGORY
|
||||
INNER JOIN tmp_Command_Calc_Command_Category t_COMMAND_CATEGORY ON COMMAND_CATEGORY.id_command_category = t_COMMAND_CATEGORY.id_command_category
|
||||
;
|
||||
|
||||
-- Commands
|
||||
INSERT INTO parts.DOG_Command_Temp (
|
||||
guid
|
||||
, id_command
|
||||
, id_command_category
|
||||
, name
|
||||
, hand_signal_default_description
|
||||
, can_have_button
|
||||
, notes
|
||||
, active
|
||||
)
|
||||
SELECT
|
||||
a_guid
|
||||
, t_COMMAND.id_command
|
||||
, t_COMMAND_CATEGORY.id_command_category
|
||||
, COMMAND.name
|
||||
, COMMAND.hand_signal_default_description
|
||||
, COMMAND.can_have_button
|
||||
, COMMAND.notes
|
||||
, COMMAND.active
|
||||
FROM parts.DOG_Command COMMAND
|
||||
INNER JOIN tmp_Command_Calc_Command t_COMMAND ON COMMAND.id_command = t_COMMAND.id_command
|
||||
INNER JOIN tmp_Command_Calc_Command_Category t_COMMAND_CATEGORY ON t_COMMAND.id_command_category = t_COMMAND_CATEGORY.id_command_category
|
||||
;
|
||||
COMMIT;
|
||||
|
||||
-- Errors
|
||||
SELECT
|
||||
t_ERROR.id_error
|
||||
, t_ERROR.id_type
|
||||
, t_ERROR.code
|
||||
, ERROR_TYPE.name
|
||||
, ERROR_TYPE.description
|
||||
, ERROR_TYPE.is_breaking_error
|
||||
, ERROR_TYPE.background_colour
|
||||
, ERROR_TYPE.text_colour
|
||||
, t_ERROR.msg
|
||||
FROM tmp_Msg_Error_Calc_Command t_ERROR
|
||||
INNER JOIN parts.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type
|
||||
;
|
||||
|
||||
IF a_debug = 1 AND v_can_view = 1 THEN
|
||||
SELECT * FROM tmp_Command_Calc_Command;
|
||||
END IF;
|
||||
|
||||
DROP TEMPORARY TABLE IF EXISTS tmp_Split_Name_Calc_Command;
|
||||
DROP TEMPORARY TABLE IF EXISTS tmp_Split_Id_Calc_Command;
|
||||
DROP TEMPORARY TABLE IF EXISTS tmp_Msg_Error_Calc_Command;
|
||||
DROP TEMPORARY TABLE IF EXISTS tmp_Command_Calc_Command;
|
||||
|
||||
IF a_debug = 1 THEN
|
||||
CALL parts.p_core_debug_timing_reporting ( v_time_start );
|
||||
END IF;
|
||||
END //
|
||||
DELIMITER ;
|
||||
|
||||
|
||||
/*
|
||||
|
||||
|
||||
CALL parts.p_dog_calc_command (
|
||||
'slips ' -- a_guid
|
||||
, 1 -- 'auth0|6582b95c895d09a70ba10fef', -- a_id_user
|
||||
, 1 -- a_get_all_command_category
|
||||
, 0 -- a_get_inactive_command_category
|
||||
, '' -- a_ids_command_category
|
||||
, '' -- a_names_command_category
|
||||
, 1 -- a_get_all_command
|
||||
, 0 -- a_get_inactive_command
|
||||
, '' -- a_ids_command
|
||||
, '' -- a_names_command
|
||||
, 1 -- a_show_errors
|
||||
, 1 -- a_debug
|
||||
);
|
||||
|
||||
SELECT *
|
||||
FROM parts.DOG_Command_Temp
|
||||
;
|
||||
|
||||
CALL parts.p_dog_clear_calc_command (
|
||||
'slips ' -- a_guid
|
||||
, 1 -- debug
|
||||
);
|
||||
|
||||
*/
|
||||
45
static/MySQL/71104_p_dog_clear_calc_command.sql
Normal file
45
static/MySQL/71104_p_dog_clear_calc_command.sql
Normal file
@@ -0,0 +1,45 @@
|
||||
|
||||
USE parts;
|
||||
|
||||
DROP PROCEDURE IF EXISTS parts.p_dog_clear_calc_command;
|
||||
DROP PROCEDURE IF EXISTS parts.p_command_clear_calc_command;
|
||||
|
||||
DELIMITER //
|
||||
CREATE PROCEDURE parts.p_dog_clear_calc_command (
|
||||
IN a_guid BINARY(36)
|
||||
, IN a_debug BIT
|
||||
)
|
||||
BEGIN
|
||||
DECLARE v_time_start TIMESTAMP(6);
|
||||
SET v_time_start := CURRENT_TIMESTAMP(6);
|
||||
|
||||
CALL parts.p_core_validate_guid ( a_guid );
|
||||
|
||||
START TRANSACTION;
|
||||
|
||||
DELETE COMMAND_T
|
||||
FROM parts.DOG_Command_Temp COMMAND_T
|
||||
WHERE COMMAND_T.GUID = a_guid
|
||||
;
|
||||
|
||||
COMMIT;
|
||||
|
||||
IF a_debug = 1 THEN
|
||||
CALL parts.p_debug_timing_reporting( v_time_start );
|
||||
END IF;
|
||||
END //
|
||||
DELIMITER ;
|
||||
|
||||
/*
|
||||
|
||||
CALL parts.p_dog_clear_calc_command (
|
||||
'crips ' -- a_guid
|
||||
, 1 -- debug
|
||||
);
|
||||
|
||||
SELECT *
|
||||
FROM parts.DOG_Calc_User_Temp
|
||||
WHERE GUID = 'chips '
|
||||
;
|
||||
|
||||
*/
|
||||
@@ -1,29 +1,37 @@
|
||||
|
||||
USE parts;
|
||||
|
||||
DROP PROCEDURE IF EXISTS parts.p_DOG_get_many_command;
|
||||
DROP PROCEDURE IF EXISTS parts.p_dog_get_many_command;
|
||||
|
||||
DELIMITER //
|
||||
CREATE PROCEDURE parts.p_DOG_get_many_command (
|
||||
CREATE PROCEDURE parts.p_dog_get_many_command (
|
||||
IN a_id_user INT
|
||||
, IN a_get_all_command_category BIT
|
||||
, IN a_get_inactive_command_category BIT
|
||||
, IN a_ids_command_category TEXT
|
||||
, IN a_names_command_category TEXT
|
||||
, IN a_get_all_command BIT
|
||||
, IN a_get_inactive_command BIT
|
||||
, IN a_ids_command TEXT
|
||||
, IN a_names_command TEXT
|
||||
, IN a_output_command_categories BIT
|
||||
, IN a_output_commands BIT
|
||||
, IN a_debug BIT
|
||||
)
|
||||
BEGIN
|
||||
DECLARE v_can_view BIT;
|
||||
DECLARE v_code_type_error_bad_data VARCHAR(100);
|
||||
DECLARE v_code_type_error_no_permission VARCHAR(100);
|
||||
DECLARE v_id_type_error_bad_data INT;
|
||||
DECLARE v_id_type_error_no_permission INT;
|
||||
DECLARE v_guid BINARY(36);
|
||||
DECLARE v_has_filter_command_id BIT;
|
||||
DECLARE v_has_filter_command_name BIT;
|
||||
DECLARE v_guid BINARY(36);
|
||||
DECLARE v_id_permission_command_view INT;
|
||||
DECLARE v_has_filter_command_category_id BIT;
|
||||
DECLARE v_has_filter_command_category_name BIT;
|
||||
DECLARE v_id_minimum INT;
|
||||
DECLARE v_id_permission_dog_view INT;
|
||||
DECLARE v_id_type_error_bad_data INT;
|
||||
DECLARE v_id_type_error_no_permission INT;
|
||||
DECLARE v_time_start TIMESTAMP(6);
|
||||
DECLARE v_can_view BIT;
|
||||
|
||||
DECLARE exit handler for SQLEXCEPTION
|
||||
BEGIN
|
||||
@@ -78,22 +86,36 @@ BEGIN
|
||||
SET v_code_type_error_no_permission := 'NO_PERMISSION';
|
||||
SET v_id_type_error_bad_data := (SELECT ERROR_TYPE.id_type FROM parts.CORE_Msg_Error_Type ERROR_TYPE WHERE ERROR_TYPE.code = v_code_type_error_bad_data LIMIT 1);
|
||||
SET v_id_type_error_no_permission := (SELECT ERROR_TYPE.id_type FROM parts.CORE_Msg_Error_Type ERROR_TYPE WHERE ERROR_TYPE.code = v_code_type_error_no_permission LIMIT 1);
|
||||
SET v_id_permission_command_view := (SELECT PERMISSION.id_permission FROM parts.DOG_Permission PERMISSION WHERE PERMISSION.code = 'DOG_VIEW' LIMIT 1);
|
||||
SET v_id_permission_dog_view := (SELECT PERMISSION.id_permission FROM parts.DOG_Permission PERMISSION WHERE PERMISSION.code = 'DOG_VIEW' LIMIT 1);
|
||||
|
||||
SET a_id_user := IFNULL(a_id_user, 0);
|
||||
/*
|
||||
SET a_get_all_command_category := IFNULL(a_get_all_command_category, 0);
|
||||
SET a_get_inactive_command_category := IFNULL(a_get_inactive_command_category, 0);
|
||||
SET a_ids_command_category := TRIM(IFNULL(a_ids_command_category, ''));
|
||||
SET a_names_command_category := TRIM(IFNULL(a_names_command_category, ''));
|
||||
SET a_get_all_command := IFNULL(a_get_all_command, 0);
|
||||
SET a_get_inactive_command := IFNULL(a_get_inactive_command, 0);
|
||||
SET a_ids_command := TRIM(IFNULL(a_ids_command, ''));
|
||||
SET a_names_command := TRIM(IFNULL(a_names_command, ''));
|
||||
*/
|
||||
SET a_output_command_categories := IFNULL(a_output_command_categories, 0);
|
||||
SET a_output_commands := IFNULL(a_output_commands, 0);
|
||||
SET a_debug := IFNULL(a_debug, 0);
|
||||
|
||||
IF a_debug = 1 THEN
|
||||
SELECT
|
||||
a_id_user
|
||||
, a_get_all_command_category
|
||||
, a_get_inactive_command_category
|
||||
, a_ids_command_category
|
||||
, a_names_command_category
|
||||
, a_get_all_command
|
||||
, a_get_inactive_command
|
||||
, a_ids_command
|
||||
, a_names_command
|
||||
, a_output_command_categories
|
||||
, a_output_commands
|
||||
, a_debug
|
||||
;
|
||||
|
||||
@@ -101,19 +123,30 @@ BEGIN
|
||||
v_id_type_error_bad_data
|
||||
, v_id_type_error_no_permission
|
||||
, v_guid
|
||||
, v_id_permission_command_view
|
||||
, v_id_permission_dog_view
|
||||
, v_time_start
|
||||
;
|
||||
END IF;
|
||||
|
||||
DROP TEMPORARY TABLE IF EXISTS tmp_Split_Name;
|
||||
DROP TEMPORARY TABLE IF EXISTS tmp_Split_Id;
|
||||
DROP TEMPORARY TABLE IF EXISTS tmp_Msg_Error;
|
||||
DROP TEMPORARY TABLE IF EXISTS tmp_Command;
|
||||
DROP TEMPORARY TABLE IF EXISTS tmp_Command_Category;
|
||||
|
||||
CREATE TEMPORARY TABLE tmp_Command_Category (
|
||||
id_command_category INT NOT NULL
|
||||
, code VARCHAR(100)
|
||||
, name VARCHAR(250)
|
||||
, active BIT
|
||||
);
|
||||
|
||||
CREATE TEMPORARY TABLE tmp_Command (
|
||||
id_command INT NOT NULL
|
||||
, id_command_category INT NOT NULL
|
||||
, name VARCHAR(250)
|
||||
, hand_signal_default_description TEXT
|
||||
, can_have_button BIT
|
||||
, notes TEXT
|
||||
, active BIT
|
||||
);
|
||||
|
||||
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error (
|
||||
@@ -121,147 +154,24 @@ BEGIN
|
||||
, id_type INT NULL
|
||||
, code VARCHAR(100) NOT NULL
|
||||
, msg VARCHAR(4000) NOT NULL
|
||||
);
|
||||
);
|
||||
|
||||
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Split_Id (
|
||||
substring VARCHAR(4000) NOT NULL
|
||||
, as_int INT NULL
|
||||
);
|
||||
DELETE FROM tmp_Split_Id;
|
||||
|
||||
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Split_Name (
|
||||
substring VARCHAR(4000) NOT NULL
|
||||
, as_int INT NULL
|
||||
);
|
||||
DELETE FROM tmp_Split_Name;
|
||||
|
||||
CALL parts.p_core_validate_guid ( v_guid );
|
||||
|
||||
SET v_has_filter_command_id = CASE WHEN a_ids_command = '' THEN 0 ELSE 1 END;
|
||||
SET v_has_filter_command_name = CASE WHEN a_names_command = '' THEN 0 ELSE 1 END;
|
||||
|
||||
-- Commands
|
||||
IF v_has_filter_command_id = 1 THEN
|
||||
CALL parts.p_split(v_guid, a_ids_command, ',', a_debug);
|
||||
|
||||
INSERT INTO tmp_Split_Id (
|
||||
substring
|
||||
, as_int
|
||||
)
|
||||
SELECT
|
||||
SPLIT_T.substring
|
||||
, CONVERT(SPLIT_T.substring, DECIMAL(10,0)) AS as_int
|
||||
FROM parts.CORE_Split_Temp SPLIT_T
|
||||
WHERE
|
||||
SPLIT_T.GUID = v_guid
|
||||
AND IFNULL(SPLIT_T.substring, '') <> ''
|
||||
;
|
||||
|
||||
CALL parts.p_clear_split_temp( v_guid );
|
||||
END IF;
|
||||
|
||||
IF v_has_filter_command_name = 1 THEN
|
||||
CALL parts.p_split(v_guid, a_names_command, ',', a_debug);
|
||||
|
||||
INSERT INTO tmp_Split_Name (
|
||||
substring
|
||||
, as_int
|
||||
)
|
||||
SELECT
|
||||
SPLIT_T.substring
|
||||
, CONVERT(SPLIT_T.substring, DECIMAL(10,0)) AS as_int
|
||||
FROM parts.CORE_Split_Temp SPLIT_T
|
||||
WHERE
|
||||
SPLIT_T.GUID = v_guid
|
||||
AND IFNULL(SPLIT_T.substring, '') <> ''
|
||||
;
|
||||
|
||||
CALL parts.p_clear_split_temp( v_guid );
|
||||
END IF;
|
||||
|
||||
IF NOT EXISTS (SELECT * FROM tmp_Msg_Error t_ERROR INNER JOIN parts.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type WHERE ERROR_TYPE.is_breaking_error = 1 LIMIT 1) THEN
|
||||
IF EXISTS (
|
||||
SELECT *
|
||||
FROM tmp_Split_Id t_SPLIT_ID
|
||||
LEFT JOIN parts.DOG_Command COMMAND ON t_SPLIT_ID.as_int = COMMAND.id_command
|
||||
WHERE
|
||||
ISNULL(t_SPLIT_ID.as_int)
|
||||
OR ISNULL(COMMAND.id_command)
|
||||
OR (
|
||||
COMMAND.active = 0
|
||||
AND a_get_inactive_command = 0
|
||||
)
|
||||
) THEN
|
||||
INSERT INTO tmp_Msg_Error (
|
||||
id_type
|
||||
, code
|
||||
, msg
|
||||
)
|
||||
SELECT
|
||||
v_id_type_error_bad_data
|
||||
, v_code_type_error_bad_data
|
||||
, CONCAT('Invalid or inactive Command IDs: ', IFNULL(GROUP_CONCAT(t_SPLIT_ID.substring SEPARATOR ', '), 'NULL'))
|
||||
FROM tmp_Split_Id t_SPLIT_ID
|
||||
LEFT JOIN parts.DOG_Command COMMAND ON t_SPLIT_ID.as_int = COMMAND.id_command
|
||||
WHERE
|
||||
ISNULL(t_SPLIT_ID.as_int)
|
||||
OR ISNULL(COMMAND.id_command)
|
||||
OR (
|
||||
COMMAND.active = 0
|
||||
AND a_get_inactive_command = 0
|
||||
)
|
||||
;
|
||||
/* Don't error on codes or names not found
|
||||
ELSEIF EXISTS (
|
||||
SELECT *
|
||||
*/
|
||||
ELSE
|
||||
INSERT INTO tmp_Command (
|
||||
id_command
|
||||
, name
|
||||
)
|
||||
SELECT
|
||||
COMMAND.id_command
|
||||
, COMMAND.name
|
||||
FROM parts.DOG_Command COMMAND
|
||||
LEFT JOIN tmp_Split_Id t_SPLIT_ID ON COMMAND.id_command = t_SPLIT_ID.as_int
|
||||
LEFT JOIN tmp_Split_Name t_SPLIT_NAME ON COMMAND.name = t_SPLIT_NAME.substring
|
||||
WHERE
|
||||
(
|
||||
a_get_all_command = 1
|
||||
OR (
|
||||
v_has_filter_command_id = 1
|
||||
OR v_has_filter_command_name = 1
|
||||
)
|
||||
)
|
||||
AND (
|
||||
a_get_inactive_command = 1
|
||||
OR COMMAND.active = 1
|
||||
)
|
||||
;
|
||||
END IF;
|
||||
END IF;
|
||||
|
||||
DELETE FROM tmp_Split_Id;
|
||||
DELETE FROM tmp_Split_Name;
|
||||
|
||||
|
||||
-- Permissions
|
||||
IF a_debug = 1 THEN
|
||||
SELECT
|
||||
v_guid
|
||||
, a_id_user
|
||||
, FALSE -- a_get_inactive_user
|
||||
, v_id_permission_command_view
|
||||
, v_id_permission_dog_view
|
||||
, 0 -- a_debug
|
||||
;
|
||||
END IF;
|
||||
|
||||
CALL parts.p_DOG_calc_user(
|
||||
CALL parts.p_dog_calc_user(
|
||||
v_guid
|
||||
, a_id_user
|
||||
, FALSE -- a_get_inactive_user
|
||||
, v_id_permission_command_view
|
||||
, v_id_permission_dog_view
|
||||
, 0 -- a_debug
|
||||
);
|
||||
|
||||
@@ -276,6 +186,8 @@ BEGIN
|
||||
|
||||
IF a_debug = 1 THEN
|
||||
SELECT v_can_view;
|
||||
SELECT COUNT(*) AS Count_Errors FROM tmp_Msg_Error t_ERROR;
|
||||
SELECT * FROM tmp_Msg_Error t_ERROR;
|
||||
END IF;
|
||||
|
||||
IF (v_can_view = 0) THEN
|
||||
@@ -296,33 +208,126 @@ BEGIN
|
||||
;
|
||||
END IF;
|
||||
|
||||
CALL parts.p_DOG_clear_calc_user(
|
||||
CALL parts.p_dog_clear_calc_user(
|
||||
v_guid
|
||||
, 0 -- a_debug
|
||||
);
|
||||
|
||||
|
||||
-- Call Command Calc
|
||||
IF NOT EXISTS(SELECT * FROM tmp_Msg_Error t_ERROR INNER JOIN parts.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type WHERE ERROR_TYPE.is_breaking_error = 1 LIMIT 1) THEN
|
||||
IF a_debug = 1 THEN
|
||||
SELECT
|
||||
v_guid -- a_guid
|
||||
, a_id_user -- a_id_user
|
||||
, a_get_all_command_category
|
||||
, a_get_inactive_command_category
|
||||
, a_ids_command_category
|
||||
, a_names_command_category
|
||||
, a_get_all_command -- a_get_all_command
|
||||
, a_get_inactive_command -- a_get_inactive_command
|
||||
, a_ids_command -- a_ids_command
|
||||
, a_names_command -- a_names_command
|
||||
, 0 -- a_show_errors
|
||||
, 0 -- a_debug
|
||||
;
|
||||
END IF;
|
||||
|
||||
CALL parts.p_dog_calc_command (
|
||||
v_guid -- a_guid
|
||||
, a_id_user -- a_id_user
|
||||
, a_get_all_command_category
|
||||
, a_get_inactive_command_category
|
||||
, a_ids_command_category
|
||||
, a_names_command_category
|
||||
, a_get_all_command -- a_get_all_command
|
||||
, a_get_inactive_command -- a_get_inactive_command
|
||||
, a_ids_command -- a_ids_command
|
||||
, a_names_command -- a_names_command
|
||||
, 0 -- a_show_errors
|
||||
, 0 -- a_debug
|
||||
);
|
||||
|
||||
INSERT INTO tmp_Command_Category (
|
||||
id_command_category
|
||||
, code
|
||||
, name
|
||||
, active
|
||||
)
|
||||
SELECT
|
||||
COMMAND_CATEGORY_T.id_command_category
|
||||
, COMMAND_CATEGORY_T.code
|
||||
, COMMAND_CATEGORY_T.name
|
||||
, COMMAND_CATEGORY_T.active
|
||||
FROM parts.DOG_Command_Category_Temp COMMAND_CATEGORY_T
|
||||
WHERE COMMAND_CATEGORY_T.GUID = v_guid
|
||||
;
|
||||
|
||||
INSERT INTO tmp_Command (
|
||||
id_command
|
||||
, id_command_category
|
||||
, name
|
||||
, hand_signal_default_description
|
||||
, can_have_button
|
||||
, notes
|
||||
, active
|
||||
)
|
||||
SELECT
|
||||
COMMAND_T.id_command
|
||||
, COMMAND_T.id_command_category
|
||||
, COMMAND_T.name
|
||||
, COMMAND_T.hand_signal_default_description
|
||||
, COMMAND_T.can_have_button
|
||||
, COMMAND_T.notes
|
||||
, COMMAND_T.active
|
||||
FROM parts.DOG_Command_Temp COMMAND_T
|
||||
WHERE COMMAND_T.GUID = v_guid
|
||||
;
|
||||
|
||||
IF a_debug = 1 THEN
|
||||
SELECT * FROM tmp_Command_Category;
|
||||
SELECT * FROM tmp_Command;
|
||||
END IF;
|
||||
END IF;
|
||||
|
||||
-- Filter outputs
|
||||
IF EXISTS(SELECT * FROM tmp_Msg_Error t_ERROR INNER JOIN parts.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type WHERE ERROR_TYPE.is_breaking_error = 1 LIMIT 1) THEN
|
||||
IF a_debug = 1 THEN
|
||||
SELECT * FROM tmp_Command_Category;
|
||||
SELECT * FROM tmp_Command;
|
||||
END IF;
|
||||
|
||||
DELETE FROM tmp_Command;
|
||||
DELETE FROM tmp_Command_Category;
|
||||
END IF;
|
||||
|
||||
|
||||
-- Outputs
|
||||
-- Command Categories
|
||||
IF a_output_command_categories = 1 THEN
|
||||
SELECT
|
||||
t_COMMAND_CATEGORY.id_command_category
|
||||
, t_COMMAND_CATEGORY.code
|
||||
, t_COMMAND_CATEGORY.name
|
||||
, t_COMMAND_CATEGORY.active
|
||||
FROM tmp_Command_Category t_COMMAND_CATEGORY
|
||||
;
|
||||
END IF;
|
||||
|
||||
-- Commands
|
||||
SELECT
|
||||
t_COMMAND.id_command
|
||||
, COMMAND.id_command_category
|
||||
, t_COMMAND.name
|
||||
, COMMAND.hand_signal_default_description
|
||||
, COMMAND.can_have_button
|
||||
, COMMAND.notes
|
||||
, COMMAND.active
|
||||
FROM parts.DOG_Command COMMAND
|
||||
INNER JOIN tmp_Command t_COMMAND ON COMMAND.id_command = t_COMMAND.id_command
|
||||
;
|
||||
|
||||
IF a_output_commands = 1 THEN
|
||||
SELECT
|
||||
t_COMMAND.id_command
|
||||
, t_COMMAND.id_command_category
|
||||
, t_COMMAND.name
|
||||
, t_COMMAND.hand_signal_default_description
|
||||
, t_COMMAND.can_have_button
|
||||
, t_COMMAND.notes
|
||||
, t_COMMAND.active
|
||||
FROM tmp_Command t_COMMAND
|
||||
;
|
||||
END IF;
|
||||
|
||||
-- Errors
|
||||
SELECT
|
||||
t_ERROR.id_error
|
||||
@@ -341,11 +346,15 @@ BEGIN
|
||||
IF a_debug = 1 AND v_can_view = 1 THEN
|
||||
SELECT * FROM tmp_Command;
|
||||
END IF;
|
||||
|
||||
CALL parts.p_dog_clear_calc_dog(
|
||||
v_guid -- a_guid
|
||||
, 0 -- a_debug
|
||||
);
|
||||
|
||||
DROP TEMPORARY TABLE IF EXISTS tmp_Split_Name;
|
||||
DROP TEMPORARY TABLE IF EXISTS tmp_Split_Id;
|
||||
DROP TEMPORARY TABLE IF EXISTS tmp_Msg_Error;
|
||||
DROP TEMPORARY TABLE IF EXISTS tmp_Command;
|
||||
DROP TEMPORARY TABLE IF EXISTS tmp_Command_Category;
|
||||
|
||||
IF a_debug = 1 THEN
|
||||
CALL parts.p_core_debug_timing_reporting ( v_time_start );
|
||||
@@ -356,12 +365,18 @@ DELIMITER ;
|
||||
|
||||
/*
|
||||
|
||||
CALL parts.p_DOG_get_many_command (
|
||||
CALL parts.p_dog_get_many_command (
|
||||
1 -- 'auth0|6582b95c895d09a70ba10fef', -- a_id_user
|
||||
, 1 -- a_get_all_command_category
|
||||
, 0 -- a_get_inactive_command_category
|
||||
, '' -- a_ids_command_category
|
||||
, '' -- a_names_command_category
|
||||
, 1 -- a_get_all_command
|
||||
, 0 -- a_get_inactive_command
|
||||
, '' -- a_ids_command
|
||||
, '' -- a_names_command
|
||||
, 1 -- a_output_command_categories
|
||||
, 1 -- a_output_commands
|
||||
, 1 -- a_debug
|
||||
);
|
||||
|
||||
|
||||
@@ -1,26 +1,33 @@
|
||||
|
||||
USE parts;
|
||||
|
||||
DROP PROCEDURE IF EXISTS parts.p_DOG_get_many_dog_command;
|
||||
DROP PROCEDURE IF EXISTS parts.p_DOG_get_many_dog_command_link;
|
||||
DROP PROCEDURE IF EXISTS parts.p_dog_get_many_dog_command;
|
||||
DROP PROCEDURE IF EXISTS parts.p_dog_get_many_dog_command_link;
|
||||
|
||||
DELIMITER //
|
||||
CREATE PROCEDURE parts.p_DOG_get_many_dog_command_link (
|
||||
CREATE PROCEDURE parts.p_dog_get_many_dog_command_link (
|
||||
IN a_id_user INT
|
||||
, IN a_get_all_dog BIT
|
||||
, IN a_get_inactive_dog BIT
|
||||
, IN a_ids_dog TEXT
|
||||
, IN a_names_dog TEXT
|
||||
, IN a_get_all_command_category BIT
|
||||
, IN a_get_inactive_command_category BIT
|
||||
, IN a_ids_command_category TEXT
|
||||
, IN a_names_command_category TEXT
|
||||
, IN a_get_all_command BIT
|
||||
, IN a_get_inactive_command BIT
|
||||
, IN a_ids_command TEXT
|
||||
, IN a_names_command TEXT
|
||||
, IN a_debug BIT
|
||||
)
|
||||
BEGIN
|
||||
DECLARE v_code_type_error_bad_data VARCHAR(100);
|
||||
DECLARE v_code_type_error_no_permission VARCHAR(100);
|
||||
DECLARE v_code_type_error_warning VARCHAR(100);
|
||||
DECLARE v_id_type_error_bad_data INT;
|
||||
DECLARE v_id_type_error_no_permission INT;
|
||||
DECLARE v_has_filter_command BIT;
|
||||
DECLARE v_id_type_error_warning INT;
|
||||
DECLARE v_has_filter_dog BIT;
|
||||
DECLARE v_guid BINARY(36);
|
||||
DECLARE v_id_permission_dog_view INT;
|
||||
@@ -79,17 +86,22 @@ BEGIN
|
||||
SET v_guid := UUID();
|
||||
SET v_code_type_error_bad_data := 'BAD_DATA';
|
||||
SET v_code_type_error_no_permission := 'NO_PERMISSION';
|
||||
SET v_code_type_error_warning := 'WARNING';
|
||||
SET v_id_type_error_bad_data := (SELECT ERROR_TYPE.id_type FROM parts.CORE_Msg_Error_Type ERROR_TYPE WHERE ERROR_TYPE.code = v_code_type_error_bad_data LIMIT 1);
|
||||
SET v_id_type_error_no_permission := (SELECT ERROR_TYPE.id_type FROM parts.CORE_Msg_Error_Type ERROR_TYPE WHERE ERROR_TYPE.code = v_code_type_error_no_permission LIMIT 1);
|
||||
SET v_id_type_error_warning := (SELECT ERROR_TYPE.id_type FROM parts.CORE_Msg_Error_Type ERROR_TYPE WHERE ERROR_TYPE.code = v_code_type_error_warning LIMIT 1);
|
||||
SET v_id_permission_dog_view := (SELECT PERMISSION.id_permission FROM parts.DOG_Permission PERMISSION WHERE PERMISSION.code = 'DOG_VIEW' LIMIT 1);
|
||||
|
||||
SET a_id_user := IFNULL(a_id_user, 0);
|
||||
SET a_get_all_dog := IFNULL(a_get_all_dog, 0);
|
||||
SET a_get_inactive_dog := IFNULL(a_get_inactive_dog, 0);
|
||||
SET a_ids_dog := TRIM(IFNULL(a_ids_dog, ''));
|
||||
SET a_get_all_command := IFNULL(a_get_all_command, 0);
|
||||
SET a_get_inactive_command := IFNULL(a_get_inactive_command, 0);
|
||||
SET a_ids_command := TRIM(IFNULL(a_ids_command, ''));
|
||||
-- SET a_get_all_dog := IFNULL(a_get_all_dog, 0);
|
||||
-- SET a_get_inactive_dog := IFNULL(a_get_inactive_dog, 0);
|
||||
-- SET a_ids_dog := TRIM(IFNULL(a_ids_dog, ''));
|
||||
-- SET a_get_all_command_category := IFNULL(a_get_all_command_category, 0);
|
||||
-- SET a_get_inactive_command_category := IFNULL(a_get_inactive_command_category, 0);
|
||||
-- SET a_ids_command_category := TRIM(IFNULL(a_ids_command_category, ''));
|
||||
-- SET a_get_all_command := IFNULL(a_get_all_command, 0);
|
||||
-- SET a_get_inactive_command := IFNULL(a_get_inactive_command, 0);
|
||||
-- SET a_ids_command := TRIM(IFNULL(a_ids_command, ''));
|
||||
SET a_debug := IFNULL(a_debug, 0);
|
||||
|
||||
IF a_debug = 1 THEN
|
||||
@@ -98,15 +110,22 @@ BEGIN
|
||||
, a_get_all_dog
|
||||
, a_get_inactive_dog
|
||||
, a_ids_dog
|
||||
, a_names_dog
|
||||
, a_get_all_command_category
|
||||
, a_get_inactive_command_category
|
||||
, a_ids_command_category
|
||||
, a_names_command_category
|
||||
, a_get_all_command
|
||||
, a_get_inactive_command
|
||||
, a_ids_command
|
||||
, a_names_command
|
||||
, a_debug
|
||||
;
|
||||
|
||||
SELECT
|
||||
v_id_type_error_bad_data
|
||||
, v_id_type_error_no_permission
|
||||
, v_id_type_error_warning
|
||||
, v_guid
|
||||
, v_id_permission_dog_view
|
||||
, v_time_start
|
||||
@@ -116,20 +135,33 @@ BEGIN
|
||||
DROP TEMPORARY TABLE IF EXISTS tmp_Split;
|
||||
DROP TEMPORARY TABLE IF EXISTS tmp_Msg_Error;
|
||||
DROP TEMPORARY TABLE IF EXISTS tmp_Command;
|
||||
DROP TEMPORARY TABLE IF EXISTS tmp_Command_Category;
|
||||
DROP TEMPORARY TABLE IF EXISTS tmp_Dog;
|
||||
|
||||
CREATE TEMPORARY TABLE tmp_Dog (
|
||||
id_dog INT NOT NULL
|
||||
, name VARCHAR(250)
|
||||
, appearance VARCHAR(1000)
|
||||
, mass_kg DECIMAL(7, 3)
|
||||
, notes TEXT
|
||||
, active BIT
|
||||
);
|
||||
|
||||
CREATE TEMPORARY TABLE tmp_Command_Category (
|
||||
id_command_category INT NOT NULL
|
||||
, code VARCHAR(100)
|
||||
, name VARCHAR(250)
|
||||
, active BIT
|
||||
);
|
||||
|
||||
CREATE TEMPORARY TABLE tmp_Command (
|
||||
id_command INT NOT NULL
|
||||
, id_command_category INT NOT NULL
|
||||
, name_command_category VARCHAR(250)
|
||||
-- , code VARCHAR(100)
|
||||
, id_command_category INT NOT NULL
|
||||
, name VARCHAR(250)
|
||||
, has_button BIT
|
||||
, hand_signal_default_description TEXT
|
||||
, can_have_button BIT
|
||||
, notes TEXT
|
||||
, active BIT
|
||||
);
|
||||
|
||||
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error (
|
||||
@@ -139,190 +171,6 @@ BEGIN
|
||||
, msg VARCHAR(4000) NOT NULL
|
||||
);
|
||||
|
||||
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Split (
|
||||
substring VARCHAR(4000) NOT NULL
|
||||
, as_int INT NULL
|
||||
);
|
||||
DELETE FROM tmp_Split;
|
||||
|
||||
CALL parts.p_core_validate_guid ( v_guid );
|
||||
|
||||
SET v_has_filter_dog = CASE WHEN a_ids_dog = '' THEN 0 ELSE 1 END;
|
||||
SET v_has_filter_command = CASE WHEN a_ids_command = '' THEN 0 ELSE 1 END;
|
||||
|
||||
-- Dogs
|
||||
IF v_has_filter_dog = 1 THEN
|
||||
CALL parts.p_split(v_guid, a_ids_dog, ',', a_debug);
|
||||
|
||||
INSERT INTO tmp_Split (
|
||||
substring
|
||||
, as_int
|
||||
)
|
||||
SELECT
|
||||
SPLIT_T.substring
|
||||
, CONVERT(SPLIT_T.substring, DECIMAL(10,0)) AS as_int
|
||||
FROM parts.CORE_Split_Temp SPLIT_T
|
||||
WHERE
|
||||
SPLIT_T.GUID = v_guid
|
||||
AND IFNULL(SPLIT_T.substring, '') <> ''
|
||||
;
|
||||
|
||||
CALL parts.p_clear_split_temp( v_guid );
|
||||
END IF;
|
||||
|
||||
IF NOT EXISTS (SELECT * FROM tmp_Msg_Error t_ERROR INNER JOIN parts.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type WHERE ERROR_TYPE.is_breaking_error = 1 LIMIT 1) THEN
|
||||
IF EXISTS (
|
||||
SELECT *
|
||||
FROM tmp_Split t_SPLIT
|
||||
LEFT JOIN parts.DOG_Dog DOG ON t_SPLIT.as_int = DOG.id_dog
|
||||
WHERE
|
||||
ISNULL(t_SPLIT.as_int)
|
||||
OR ISNULL(DOG.id_dog)
|
||||
OR (
|
||||
DOG.active = 0
|
||||
AND a_get_inactive_dog = 0
|
||||
)
|
||||
) THEN
|
||||
INSERT INTO tmp_Msg_Error (
|
||||
id_type
|
||||
, code
|
||||
, msg
|
||||
)
|
||||
SELECT
|
||||
v_id_type_error_bad_data
|
||||
, v_code_type_error_bad_data
|
||||
, CONCAT('Invalid or inactive Dog IDs: ', IFNULL(GROUP_CONCAT(t_SPLIT.substring SEPARATOR ', '), 'NULL'))
|
||||
FROM tmp_Split t_SPLIT
|
||||
LEFT JOIN parts.DOG_Dog DOG ON t_SPLIT.as_int = DOG.id_dog
|
||||
WHERE
|
||||
ISNULL(t_SPLIT.as_int)
|
||||
OR ISNULL(DOG.id_dog)
|
||||
OR (
|
||||
DOG.active = 0
|
||||
AND a_get_inactive_dog = 0
|
||||
)
|
||||
;
|
||||
ELSE
|
||||
INSERT INTO tmp_Dog (
|
||||
id_dog
|
||||
, name
|
||||
)
|
||||
SELECT
|
||||
DOG.id_dog
|
||||
, DOG.name
|
||||
FROM tmp_Split t_SPLIT
|
||||
RIGHT JOIN parts.DOG_Dog DOG ON t_SPLIT.as_int = DOG.id_dog
|
||||
WHERE
|
||||
(
|
||||
a_get_all_dog = 1
|
||||
OR (
|
||||
v_has_filter_dog = 1
|
||||
AND NOT ISNULL(t_SPLIT.as_int)
|
||||
)
|
||||
)
|
||||
AND (
|
||||
a_get_inactive_dog = 1
|
||||
OR DOG.active = 1
|
||||
)
|
||||
;
|
||||
END IF;
|
||||
END IF;
|
||||
|
||||
DELETE FROM tmp_Split;
|
||||
|
||||
-- Commands
|
||||
IF v_has_filter_command = 1 THEN
|
||||
CALL parts.p_split(v_guid, a_ids_command, ',', a_debug);
|
||||
|
||||
INSERT INTO tmp_Split (
|
||||
substring
|
||||
, as_int
|
||||
)
|
||||
SELECT
|
||||
substring
|
||||
, CONVERT(substring, DECIMAL(10,0)) AS as_int
|
||||
FROM parts.CORE_Split_Temp
|
||||
WHERE
|
||||
GUID = v_guid
|
||||
AND NOT ISNULL(substring)
|
||||
AND substring <> ''
|
||||
;
|
||||
|
||||
CALL parts.p_clear_split_temp( v_guid );
|
||||
END IF;
|
||||
|
||||
IF NOT EXISTS (SELECT * FROM tmp_Msg_Error t_ERROR INNER JOIN parts.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type WHERE ERROR_TYPE.is_breaking_error = 1 LIMIT 1) THEN
|
||||
IF EXISTS (
|
||||
SELECT *
|
||||
FROM tmp_Split t_SPLIT
|
||||
LEFT JOIN parts.DOG_Command COMMAND ON t_SPLIT.as_int = COMMAND.id_command
|
||||
WHERE
|
||||
ISNULL(t_SPLIT.as_int)
|
||||
OR ISNULL(COMMAND.id_command)
|
||||
OR (
|
||||
COMMAND.active = 0
|
||||
AND a_get_inactive_command = 0
|
||||
)
|
||||
) THEN
|
||||
INSERT INTO tmp_Msg_Error (
|
||||
id_type
|
||||
, code
|
||||
, msg
|
||||
)
|
||||
SELECT
|
||||
v_id_type_error_bad_data
|
||||
, v_code_type_error_bad_data
|
||||
, CONCAT('Invalid or inactive Command IDs: ', IFNULL(GROUP_CONCAT(t_SPLIT.substring SEPARATOR ', '), 'NULL'))
|
||||
FROM tmp_Split t_SPLIT
|
||||
LEFT JOIN parts.DOG_Command COMMAND ON t_SPLIT.as_int = COMMAND.id_command
|
||||
WHERE
|
||||
ISNULL(t_SPLIT.as_int)
|
||||
OR ISNULL(COMMAND.id_command)
|
||||
OR (
|
||||
COMMAND.active = 0
|
||||
AND a_get_inactive_command = 0
|
||||
)
|
||||
;
|
||||
ELSE
|
||||
INSERT INTO tmp_Command (
|
||||
id_command
|
||||
, id_command_category
|
||||
, name_command_category
|
||||
, name
|
||||
, has_button
|
||||
)
|
||||
SELECT
|
||||
COMMAND.id_command
|
||||
, COMMAND.id_command_category
|
||||
, COMMAND_CATEGORY.name AS name_command_category
|
||||
-- , COMMAND.code
|
||||
, COMMAND.name
|
||||
, CASE WHEN ISNULL(COMMANDS_WITH_BUTTONS.id_command) THEN 0 ELSE 1 END AS has_button
|
||||
FROM tmp_Split t_SPLIT
|
||||
RIGHT JOIN parts.DOG_Command COMMAND ON t_SPLIT.as_int = COMMAND.id_command
|
||||
LEFT JOIN parts.DOG_Command_Category COMMAND_CATEGORY ON COMMAND.id_command_category = COMMAND_CATEGORY.id_command_category
|
||||
LEFT JOIN (
|
||||
SELECT DISTINCT COMMAND_BUTTON_LINK.id_command
|
||||
FROM parts.DOG_Command_Button_Link COMMAND_BUTTON_LINK
|
||||
) COMMANDS_WITH_BUTTONS ON COMMAND.id_command = COMMANDS_WITH_BUTTONS.id_command
|
||||
WHERE
|
||||
(
|
||||
a_get_all_command = 1
|
||||
OR (
|
||||
v_has_filter_command = 1
|
||||
AND NOT ISNULL(t_SPLIT.as_int)
|
||||
)
|
||||
)
|
||||
AND (
|
||||
a_get_inactive_command = 1
|
||||
OR COMMAND.active = 1
|
||||
)
|
||||
;
|
||||
END IF;
|
||||
END IF;
|
||||
|
||||
DELETE FROM tmp_Split;
|
||||
|
||||
|
||||
-- Permissions
|
||||
IF a_debug = 1 THEN
|
||||
@@ -335,11 +183,11 @@ BEGIN
|
||||
;
|
||||
END IF;
|
||||
|
||||
CALL parts.p_DOG_calc_user(
|
||||
v_guid
|
||||
, a_id_user
|
||||
CALL parts.p_dog_calc_user(
|
||||
v_guid -- a_guid
|
||||
, a_id_user -- a_ids_user
|
||||
, FALSE -- a_get_inactive_user
|
||||
, v_id_permission_dog_view
|
||||
, v_id_permission_dog_view -- a_ids_permission
|
||||
, 0 -- a_debug
|
||||
);
|
||||
|
||||
@@ -369,24 +217,154 @@ BEGIN
|
||||
VALUES (
|
||||
v_id_type_error_no_permission
|
||||
, v_code_type_error_no_permission
|
||||
, 'You do not have permission to view Commands.'
|
||||
, 'You do not have permission to view Dogs and Commands.'
|
||||
)
|
||||
;
|
||||
END IF;
|
||||
|
||||
CALL parts.p_DOG_clear_calc_user(
|
||||
CALL parts.p_dog_clear_calc_user(
|
||||
v_guid
|
||||
, 0 -- a_debug
|
||||
);
|
||||
|
||||
-- Call Dog Calc
|
||||
IF NOT EXISTS(SELECT * FROM tmp_Msg_Error t_ERROR INNER JOIN parts.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type WHERE ERROR_TYPE.is_breaking_error = 1 LIMIT 1) THEN
|
||||
IF a_debug = 1 THEN
|
||||
SELECT
|
||||
v_guid -- a_guid
|
||||
, a_id_user -- a_id_user
|
||||
, a_get_all_dog -- a_get_all_dog
|
||||
, a_get_inactive_dog -- a_get_inactive_dog
|
||||
, a_ids_dog -- a_ids_dog
|
||||
, a_names_dog -- a_names_dog
|
||||
, 0 -- a_show_errors
|
||||
, 0 -- a_debug
|
||||
;
|
||||
END IF;
|
||||
|
||||
CALL parts.p_dog_calc_dog(
|
||||
v_guid -- a_guid
|
||||
, a_id_user -- a_id_user
|
||||
, a_get_all_dog -- a_get_all_dog
|
||||
, a_get_inactive_dog -- a_get_inactive_dog
|
||||
, a_ids_dog -- a_ids_dog
|
||||
, a_names_dog -- a_names_dog
|
||||
, 0 -- a_show_errors
|
||||
, 0 -- a_debug
|
||||
);
|
||||
|
||||
INSERT INTO tmp_Dog (
|
||||
id_dog
|
||||
, name
|
||||
, appearance
|
||||
, mass_kg
|
||||
, notes
|
||||
, active
|
||||
)
|
||||
SELECT
|
||||
DOG_T.id_dog
|
||||
, DOG_T.name
|
||||
, DOG_T.appearance
|
||||
, DOG_T.mass_kg
|
||||
, DOG_T.notes
|
||||
, DOG_T.active
|
||||
FROM parts.DOG_Dog_Temp DOG_T
|
||||
WHERE DOG_T.GUID = v_guid
|
||||
;
|
||||
|
||||
IF a_debug = 1 THEN
|
||||
SELECT * FROM tmp_Dog;
|
||||
END IF;
|
||||
END IF;
|
||||
|
||||
-- Call Command Calc
|
||||
IF NOT EXISTS(SELECT * FROM tmp_Msg_Error t_ERROR INNER JOIN parts.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type WHERE ERROR_TYPE.is_breaking_error = 1 LIMIT 1) THEN
|
||||
IF a_debug = 1 THEN
|
||||
SELECT
|
||||
v_guid -- a_guid
|
||||
, a_id_user -- a_id_user
|
||||
, a_get_all_command_category
|
||||
, a_get_inactive_command_category
|
||||
, a_ids_command_category
|
||||
, a_names_command_category
|
||||
, a_get_all_command -- a_get_all_command
|
||||
, a_get_inactive_command -- a_get_inactive_command
|
||||
, a_ids_command -- a_ids_command
|
||||
, a_names_command -- a_names_command
|
||||
, 0 -- a_show_errors
|
||||
, 0 -- a_debug
|
||||
;
|
||||
END IF;
|
||||
|
||||
CALL parts.p_dog_calc_command (
|
||||
v_guid -- a_guid
|
||||
, a_id_user -- a_id_user
|
||||
, a_get_all_command_category
|
||||
, a_get_inactive_command_category
|
||||
, a_ids_command_category
|
||||
, a_names_command_category
|
||||
, a_get_all_command -- a_get_all_command
|
||||
, a_get_inactive_command -- a_get_inactive_command
|
||||
, a_ids_command -- a_ids_command
|
||||
, a_names_command -- a_names_command
|
||||
, 0 -- a_show_errors
|
||||
, 0 -- a_debug
|
||||
);
|
||||
|
||||
INSERT INTO tmp_Command_Category (
|
||||
id_command_category
|
||||
, code
|
||||
, name
|
||||
, active
|
||||
)
|
||||
SELECT
|
||||
COMMAND_CATEGORY_T.id_command_category
|
||||
, COMMAND_CATEGORY_T.code
|
||||
, COMMAND_CATEGORY_T.name
|
||||
, COMMAND_CATEGORY_T.active
|
||||
FROM parts.DOG_Command_Category_Temp COMMAND_CATEGORY_T
|
||||
WHERE COMMAND_CATEGORY_T.GUID = v_guid
|
||||
;
|
||||
|
||||
INSERT INTO tmp_Command (
|
||||
id_command
|
||||
, id_command_category
|
||||
, name
|
||||
, hand_signal_default_description
|
||||
, can_have_button
|
||||
, notes
|
||||
, active
|
||||
)
|
||||
SELECT
|
||||
COMMAND_T.id_command
|
||||
, COMMAND_T.id_command_category
|
||||
, COMMAND_T.name
|
||||
, COMMAND_T.hand_signal_default_description
|
||||
, COMMAND_T.can_have_button
|
||||
, COMMAND_T.notes
|
||||
, COMMAND_T.active
|
||||
FROM parts.DOG_Command_Temp COMMAND_T
|
||||
WHERE COMMAND_T.GUID = v_guid
|
||||
;
|
||||
|
||||
IF a_debug = 1 THEN
|
||||
SELECT * FROM tmp_Command_Category;
|
||||
SELECT * FROM tmp_Command;
|
||||
END IF;
|
||||
END IF;
|
||||
|
||||
|
||||
-- Filter outputs
|
||||
IF EXISTS(SELECT * FROM tmp_Msg_Error t_ERROR INNER JOIN parts.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type WHERE ERROR_TYPE.is_breaking_error = 1 LIMIT 1) THEN
|
||||
IF a_debug = 1 THEN
|
||||
SELECT * FROM tmp_Dog;
|
||||
SELECT * FROM tmp_Command;
|
||||
SELECT * FROM tmp_Command_Category;
|
||||
END IF;
|
||||
|
||||
DELETE FROM tmp_Dog;
|
||||
DELETE FROM tmp_Command;
|
||||
DELETE FROM tmp_Command_Category;
|
||||
END IF;
|
||||
|
||||
-- Outputs
|
||||
@@ -396,17 +374,18 @@ BEGIN
|
||||
, t_DOG.id_dog
|
||||
, t_DOG.name AS name_dog
|
||||
, t_COMMAND.id_command_category
|
||||
, t_COMMAND.name_command_category
|
||||
, t_COMMAND_CATEGORY.name AS name_command_category
|
||||
, t_COMMAND.id_command
|
||||
-- , t_COMMAND.code
|
||||
, t_COMMAND.name AS name_command
|
||||
, t_COMMAND.has_button AS command_has_button
|
||||
, DOG_COMMAND_LINK.hand_signal_description
|
||||
-- , t_COMMAND.has_button AS command_has_button
|
||||
, COALESCE(DOG_COMMAND_LINK.hand_signal_description, t_COMMAND.hand_signal_default_description) AS hand_signal_description_command
|
||||
, t_COMMAND.can_have_button AS can_have_button_command
|
||||
, DOG_COMMAND_LINK.notes
|
||||
, DOG_COMMAND_LINK.active
|
||||
FROM parts.DOG_Dog_Command_Link DOG_COMMAND_LINK
|
||||
INNER JOIN tmp_Dog t_DOG ON DOG_COMMAND_LINK.id_dog = t_DOG.id_dog
|
||||
INNER JOIN tmp_Command t_COMMAND ON DOG_COMMAND_LINK.id_command = t_COMMAND.id_command
|
||||
INNER JOIN tmp_Command_Category t_COMMAND_CATEGORY ON t_COMMAND.id_command_category = t_COMMAND_CATEGORY.id_command_category
|
||||
;
|
||||
|
||||
-- Errors
|
||||
@@ -427,11 +406,13 @@ BEGIN
|
||||
IF a_debug = 1 AND v_can_view = 1 THEN
|
||||
SELECT * FROM tmp_Dog;
|
||||
SELECT * FROM tmp_Command;
|
||||
SELECT * FROM tmp_Command_Category;
|
||||
END IF;
|
||||
|
||||
DROP TEMPORARY TABLE IF EXISTS tmp_Split;
|
||||
DROP TEMPORARY TABLE IF EXISTS tmp_Msg_Error;
|
||||
DROP TEMPORARY TABLE IF EXISTS tmp_Command;
|
||||
DROP TEMPORARY TABLE IF EXISTS tmp_Command_Category;
|
||||
DROP TEMPORARY TABLE IF EXISTS tmp_Dog;
|
||||
|
||||
IF a_debug = 1 THEN
|
||||
@@ -443,15 +424,35 @@ DELIMITER ;
|
||||
|
||||
/*
|
||||
|
||||
CALL parts.p_DOG_get_many_dog_command_link (
|
||||
CALL parts.p_dog_get_many_dog_command_link (
|
||||
1 -- 'auth0|6582b95c895d09a70ba10fef', -- a_id_user
|
||||
, 1 -- a_get_all_dog
|
||||
, 0 -- a_get_inactive_dog
|
||||
, '' -- a_ids_dog
|
||||
, 1 -- a_get_all_command_category
|
||||
, 0 -- a_get_inactive_command_category
|
||||
, '' -- a_ids_command_category
|
||||
, 1 -- a_get_all_command
|
||||
, 0 -- a_get_inactive_command
|
||||
, '' -- a_ids_command
|
||||
, 1 -- a_debug
|
||||
);
|
||||
|
||||
CALL parts.p_dog_get_many_dog_command_link (
|
||||
1 -- 'auth0|6582b95c895d09a70ba10fef', -- a_id_user
|
||||
, 1 -- a_get_all_dog
|
||||
, 0 -- a_get_inactive_dog
|
||||
, '' -- a_ids_dog
|
||||
, '' -- a_names_dog
|
||||
, 1 -- a_get_all_command_category
|
||||
, 0 -- a_get_inactive_command_category
|
||||
, '' -- a_ids_command_category
|
||||
, '' -- a_names_command_category
|
||||
, 0 -- a_get_all_command
|
||||
, 0 -- a_get_inactive_command
|
||||
, '2' -- a_ids_command
|
||||
, '2' -- a_names_command
|
||||
, 1 -- a_debug
|
||||
);
|
||||
|
||||
*/
|
||||
@@ -111,7 +111,7 @@ VALUES
|
||||
, 'DOG_VIEW'
|
||||
, 'View Dog'
|
||||
, 1
|
||||
, 3
|
||||
, 1
|
||||
)
|
||||
, (
|
||||
1
|
||||
@@ -125,8 +125,29 @@ VALUES
|
||||
, 'DOG_CREATE'
|
||||
, 'Create Dog'
|
||||
, 1
|
||||
, 2
|
||||
)
|
||||
, (
|
||||
1
|
||||
, 'USER_VIEW'
|
||||
, 'View User'
|
||||
, 2
|
||||
, 1
|
||||
)
|
||||
, (
|
||||
1
|
||||
, 'USER_ADMIN'
|
||||
, 'Admin User'
|
||||
, 2
|
||||
, 3
|
||||
)
|
||||
, (
|
||||
1
|
||||
, 'USER_CREATE'
|
||||
, 'Create User'
|
||||
, 2
|
||||
, 2
|
||||
)
|
||||
;
|
||||
|
||||
-- Users
|
||||
@@ -212,6 +233,24 @@ VALUES
|
||||
, 3
|
||||
, 3
|
||||
, 1
|
||||
)
|
||||
, (
|
||||
1
|
||||
, 4
|
||||
, 3
|
||||
, 1
|
||||
)
|
||||
, (
|
||||
1
|
||||
, 5
|
||||
, 3
|
||||
, 1
|
||||
)
|
||||
, (
|
||||
1
|
||||
, 6
|
||||
, 3
|
||||
, 1
|
||||
)
|
||||
, (
|
||||
2
|
||||
@@ -231,6 +270,24 @@ VALUES
|
||||
, 1
|
||||
, 1
|
||||
)
|
||||
, (
|
||||
2
|
||||
, 4
|
||||
, 1
|
||||
, 1
|
||||
)
|
||||
, (
|
||||
2
|
||||
, 5
|
||||
, 1
|
||||
, 1
|
||||
)
|
||||
, (
|
||||
2
|
||||
, 6
|
||||
, 1
|
||||
, 1
|
||||
)
|
||||
;
|
||||
|
||||
-- User Role link
|
||||
@@ -1018,7 +1075,7 @@ VALUES
|
||||
|
||||
SELECT COUNT(*) FROM parts.DOG_Command_Temp;
|
||||
|
||||
CALL parts.p_DOG_save_command (
|
||||
CALL parts.p_dog_save_command (
|
||||
'nipples'
|
||||
, (SELECT GUID FROM parts.DOG_Command_Temp COMMAND_TEMP ORDER BY id_temp DESC LIMIT 1)
|
||||
, 1
|
||||
|
||||
368
static/MySQL/deprecated/71104_p_dog_get_many_command.sql
Normal file
368
static/MySQL/deprecated/71104_p_dog_get_many_command.sql
Normal file
@@ -0,0 +1,368 @@
|
||||
|
||||
USE parts;
|
||||
|
||||
DROP PROCEDURE IF EXISTS parts.p_dog_get_many_command;
|
||||
|
||||
DELIMITER //
|
||||
CREATE PROCEDURE parts.p_dog_get_many_command (
|
||||
IN a_id_user INT
|
||||
, IN a_get_all_command BIT
|
||||
, IN a_get_inactive_command BIT
|
||||
, IN a_ids_command TEXT
|
||||
, IN a_names_command TEXT
|
||||
, IN a_debug BIT
|
||||
)
|
||||
BEGIN
|
||||
DECLARE v_code_type_error_bad_data VARCHAR(100);
|
||||
DECLARE v_code_type_error_no_permission VARCHAR(100);
|
||||
DECLARE v_id_type_error_bad_data INT;
|
||||
DECLARE v_id_type_error_no_permission INT;
|
||||
DECLARE v_has_filter_command_id BIT;
|
||||
DECLARE v_has_filter_command_name BIT;
|
||||
DECLARE v_guid BINARY(36);
|
||||
DECLARE v_id_permission_command_view INT;
|
||||
DECLARE v_id_minimum INT;
|
||||
DECLARE v_time_start TIMESTAMP(6);
|
||||
DECLARE v_can_view BIT;
|
||||
|
||||
DECLARE exit handler for SQLEXCEPTION
|
||||
BEGIN
|
||||
GET DIAGNOSTICS CONDITION 1
|
||||
@sqlstate = RETURNED_SQLSTATE
|
||||
, @errno = MYSQL_ERRNO
|
||||
, @text = MESSAGE_TEXT
|
||||
;
|
||||
|
||||
ROLLBACK;
|
||||
|
||||
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error (
|
||||
id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT
|
||||
, id_type INT NULL
|
||||
, code VARCHAR(100) NOT NULL
|
||||
, msg VARCHAR(4000) NOT NULL
|
||||
);
|
||||
|
||||
INSERT INTO tmp_Msg_Error (
|
||||
id_type
|
||||
, code
|
||||
, msg
|
||||
)
|
||||
SELECT
|
||||
MET.id_type
|
||||
, @errno
|
||||
, @text
|
||||
FROM parts.CORE_Msg_Error_Type MET
|
||||
WHERE MET.code = 'MYSQL_ERROR'
|
||||
;
|
||||
|
||||
SELECT
|
||||
t_ERROR.id_error
|
||||
, t_ERROR.id_type
|
||||
, t_ERROR.code
|
||||
, ERROR_TYPE.name
|
||||
, ERROR_TYPE.description
|
||||
, ERROR_TYPE.is_breaking_error
|
||||
, ERROR_TYPE.background_colour
|
||||
, ERROR_TYPE.text_colour
|
||||
, t_ERROR.msg
|
||||
FROM tmp_Msg_Error t_ERROR
|
||||
INNER JOIN parts.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type
|
||||
;
|
||||
|
||||
DROP TABLE IF EXISTS tmp_Msg_Error;
|
||||
END;
|
||||
|
||||
SET v_time_start := CURRENT_TIMESTAMP(6);
|
||||
SET v_guid := UUID();
|
||||
SET v_code_type_error_bad_data := 'BAD_DATA';
|
||||
SET v_code_type_error_no_permission := 'NO_PERMISSION';
|
||||
SET v_id_type_error_bad_data := (SELECT ERROR_TYPE.id_type FROM parts.CORE_Msg_Error_Type ERROR_TYPE WHERE ERROR_TYPE.code = v_code_type_error_bad_data LIMIT 1);
|
||||
SET v_id_type_error_no_permission := (SELECT ERROR_TYPE.id_type FROM parts.CORE_Msg_Error_Type ERROR_TYPE WHERE ERROR_TYPE.code = v_code_type_error_no_permission LIMIT 1);
|
||||
SET v_id_permission_command_view := (SELECT PERMISSION.id_permission FROM parts.DOG_Permission PERMISSION WHERE PERMISSION.code = 'DOG_VIEW' LIMIT 1);
|
||||
|
||||
SET a_id_user := IFNULL(a_id_user, 0);
|
||||
SET a_get_all_command := IFNULL(a_get_all_command, 0);
|
||||
SET a_get_inactive_command := IFNULL(a_get_inactive_command, 0);
|
||||
SET a_ids_command := TRIM(IFNULL(a_ids_command, ''));
|
||||
SET a_names_command := TRIM(IFNULL(a_names_command, ''));
|
||||
SET a_debug := IFNULL(a_debug, 0);
|
||||
|
||||
IF a_debug = 1 THEN
|
||||
SELECT
|
||||
a_id_user
|
||||
, a_get_all_command
|
||||
, a_get_inactive_command
|
||||
, a_ids_command
|
||||
, a_names_command
|
||||
, a_debug
|
||||
;
|
||||
|
||||
SELECT
|
||||
v_id_type_error_bad_data
|
||||
, v_id_type_error_no_permission
|
||||
, v_guid
|
||||
, v_id_permission_command_view
|
||||
, v_time_start
|
||||
;
|
||||
END IF;
|
||||
|
||||
DROP TEMPORARY TABLE IF EXISTS tmp_Split_Name;
|
||||
DROP TEMPORARY TABLE IF EXISTS tmp_Split_Id;
|
||||
DROP TEMPORARY TABLE IF EXISTS tmp_Msg_Error;
|
||||
DROP TEMPORARY TABLE IF EXISTS tmp_Command;
|
||||
|
||||
CREATE TEMPORARY TABLE tmp_Command (
|
||||
id_command INT NOT NULL
|
||||
, name VARCHAR(250)
|
||||
);
|
||||
|
||||
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error (
|
||||
id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT
|
||||
, id_type INT NULL
|
||||
, code VARCHAR(100) NOT NULL
|
||||
, msg VARCHAR(4000) NOT NULL
|
||||
);
|
||||
|
||||
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Split_Id (
|
||||
substring VARCHAR(4000) NOT NULL
|
||||
, as_int INT NULL
|
||||
);
|
||||
DELETE FROM tmp_Split_Id;
|
||||
|
||||
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Split_Name (
|
||||
substring VARCHAR(4000) NOT NULL
|
||||
, as_int INT NULL
|
||||
);
|
||||
DELETE FROM tmp_Split_Name;
|
||||
|
||||
CALL parts.p_core_validate_guid ( v_guid );
|
||||
|
||||
SET v_has_filter_command_id = CASE WHEN a_ids_command = '' THEN 0 ELSE 1 END;
|
||||
SET v_has_filter_command_name = CASE WHEN a_names_command = '' THEN 0 ELSE 1 END;
|
||||
|
||||
-- Commands
|
||||
IF v_has_filter_command_id = 1 THEN
|
||||
CALL parts.p_core_split(v_guid, a_ids_command, ',', a_debug);
|
||||
|
||||
INSERT INTO tmp_Split_Id (
|
||||
substring
|
||||
, as_int
|
||||
)
|
||||
SELECT
|
||||
SPLIT_T.substring
|
||||
, CONVERT(SPLIT_T.substring, DECIMAL(10,0)) AS as_int
|
||||
FROM parts.CORE_Split_Temp SPLIT_T
|
||||
WHERE
|
||||
SPLIT_T.GUID = v_guid
|
||||
AND IFNULL(SPLIT_T.substring, '') <> ''
|
||||
;
|
||||
|
||||
CALL parts.p_core_clear_split( v_guid );
|
||||
END IF;
|
||||
|
||||
IF v_has_filter_command_name = 1 THEN
|
||||
CALL parts.p_core_split(v_guid, a_names_command, ',', a_debug);
|
||||
|
||||
INSERT INTO tmp_Split_Name (
|
||||
substring
|
||||
, as_int
|
||||
)
|
||||
SELECT
|
||||
SPLIT_T.substring
|
||||
, CONVERT(SPLIT_T.substring, DECIMAL(10,0)) AS as_int
|
||||
FROM parts.CORE_Split_Temp SPLIT_T
|
||||
WHERE
|
||||
SPLIT_T.GUID = v_guid
|
||||
AND IFNULL(SPLIT_T.substring, '') <> ''
|
||||
;
|
||||
|
||||
CALL parts.p_core_clear_split( v_guid );
|
||||
END IF;
|
||||
|
||||
IF NOT EXISTS (SELECT * FROM tmp_Msg_Error t_ERROR INNER JOIN parts.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type WHERE ERROR_TYPE.is_breaking_error = 1 LIMIT 1) THEN
|
||||
IF EXISTS (
|
||||
SELECT *
|
||||
FROM tmp_Split_Id t_SPLIT_ID
|
||||
LEFT JOIN parts.DOG_Command COMMAND ON t_SPLIT_ID.as_int = COMMAND.id_command
|
||||
WHERE
|
||||
ISNULL(t_SPLIT_ID.as_int)
|
||||
OR ISNULL(COMMAND.id_command)
|
||||
OR (
|
||||
COMMAND.active = 0
|
||||
AND a_get_inactive_command = 0
|
||||
)
|
||||
) THEN
|
||||
INSERT INTO tmp_Msg_Error (
|
||||
id_type
|
||||
, code
|
||||
, msg
|
||||
)
|
||||
SELECT
|
||||
v_id_type_error_bad_data
|
||||
, v_code_type_error_bad_data
|
||||
, CONCAT('Invalid or inactive Command IDs: ', IFNULL(GROUP_CONCAT(t_SPLIT_ID.substring SEPARATOR ', '), 'NULL'))
|
||||
FROM tmp_Split_Id t_SPLIT_ID
|
||||
LEFT JOIN parts.DOG_Command COMMAND ON t_SPLIT_ID.as_int = COMMAND.id_command
|
||||
WHERE
|
||||
ISNULL(t_SPLIT_ID.as_int)
|
||||
OR ISNULL(COMMAND.id_command)
|
||||
OR (
|
||||
COMMAND.active = 0
|
||||
AND a_get_inactive_command = 0
|
||||
)
|
||||
;
|
||||
/* Don't error on codes or names not found
|
||||
ELSEIF EXISTS (
|
||||
SELECT *
|
||||
*/
|
||||
ELSE
|
||||
INSERT INTO tmp_Command (
|
||||
id_command
|
||||
, name
|
||||
)
|
||||
SELECT
|
||||
COMMAND.id_command
|
||||
, COMMAND.name
|
||||
FROM parts.DOG_Command COMMAND
|
||||
LEFT JOIN tmp_Split_Id t_SPLIT_ID ON COMMAND.id_command = t_SPLIT_ID.as_int
|
||||
LEFT JOIN tmp_Split_Name t_SPLIT_NAME ON COMMAND.name = t_SPLIT_NAME.substring
|
||||
WHERE
|
||||
(
|
||||
a_get_all_command = 1
|
||||
OR (
|
||||
v_has_filter_command_id = 1
|
||||
OR v_has_filter_command_name = 1
|
||||
)
|
||||
)
|
||||
AND (
|
||||
a_get_inactive_command = 1
|
||||
OR COMMAND.active = 1
|
||||
)
|
||||
;
|
||||
END IF;
|
||||
END IF;
|
||||
|
||||
DELETE FROM tmp_Split_Id;
|
||||
DELETE FROM tmp_Split_Name;
|
||||
|
||||
|
||||
-- Permissions
|
||||
IF a_debug = 1 THEN
|
||||
SELECT
|
||||
v_guid
|
||||
, a_id_user
|
||||
, FALSE -- a_get_inactive_user
|
||||
, v_id_permission_command_view
|
||||
, 0 -- a_debug
|
||||
;
|
||||
END IF;
|
||||
|
||||
CALL parts.p_dog_calc_user(
|
||||
v_guid
|
||||
, a_id_user
|
||||
, FALSE -- a_get_inactive_user
|
||||
, v_id_permission_command_view
|
||||
, 0 -- a_debug
|
||||
);
|
||||
|
||||
SELECT
|
||||
IFNULL(CALC_USER_T.has_access, 0)
|
||||
INTO
|
||||
v_can_view
|
||||
FROM parts.DOG_Calc_User_Temp CALC_USER_T
|
||||
WHERE CALC_USER_T.GUID = v_guid
|
||||
LIMIT 1
|
||||
;
|
||||
|
||||
IF a_debug = 1 THEN
|
||||
SELECT v_can_view;
|
||||
END IF;
|
||||
|
||||
IF (v_can_view = 0) THEN
|
||||
DELETE t_ME
|
||||
FROM tmp_Msg_Error t_ME
|
||||
WHERE t_ME.id_type <> v_id_type_error_no_permission
|
||||
;
|
||||
INSERT INTO tmp_Msg_Error (
|
||||
id_type
|
||||
, code
|
||||
, msg
|
||||
)
|
||||
VALUES (
|
||||
v_id_type_error_no_permission
|
||||
, v_code_type_error_no_permission
|
||||
, 'You do not have permission to view Commands.'
|
||||
)
|
||||
;
|
||||
END IF;
|
||||
|
||||
CALL parts.p_dog_clear_calc_user(
|
||||
v_guid
|
||||
, 0 -- a_debug
|
||||
);
|
||||
|
||||
IF EXISTS(SELECT * FROM tmp_Msg_Error t_ERROR INNER JOIN parts.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type WHERE ERROR_TYPE.is_breaking_error = 1 LIMIT 1) THEN
|
||||
IF a_debug = 1 THEN
|
||||
SELECT * FROM tmp_Command;
|
||||
END IF;
|
||||
|
||||
DELETE FROM tmp_Command;
|
||||
END IF;
|
||||
|
||||
-- Outputs
|
||||
-- Commands
|
||||
SELECT
|
||||
t_COMMAND.id_command
|
||||
, COMMAND.id_command_category
|
||||
, t_COMMAND.name
|
||||
, COMMAND.hand_signal_default_description
|
||||
, COMMAND.can_have_button
|
||||
, COMMAND.notes
|
||||
, COMMAND.active
|
||||
FROM parts.DOG_Command COMMAND
|
||||
INNER JOIN tmp_Command t_COMMAND ON COMMAND.id_command = t_COMMAND.id_command
|
||||
;
|
||||
|
||||
-- Errors
|
||||
SELECT
|
||||
t_ERROR.id_error
|
||||
, t_ERROR.id_type
|
||||
, t_ERROR.code
|
||||
, ERROR_TYPE.name
|
||||
, ERROR_TYPE.description
|
||||
, ERROR_TYPE.is_breaking_error
|
||||
, ERROR_TYPE.background_colour
|
||||
, ERROR_TYPE.text_colour
|
||||
, t_ERROR.msg
|
||||
FROM tmp_Msg_Error t_ERROR
|
||||
INNER JOIN parts.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type
|
||||
;
|
||||
|
||||
IF a_debug = 1 AND v_can_view = 1 THEN
|
||||
SELECT * FROM tmp_Command;
|
||||
END IF;
|
||||
|
||||
DROP TEMPORARY TABLE IF EXISTS tmp_Split_Name;
|
||||
DROP TEMPORARY TABLE IF EXISTS tmp_Split_Id;
|
||||
DROP TEMPORARY TABLE IF EXISTS tmp_Msg_Error;
|
||||
DROP TEMPORARY TABLE IF EXISTS tmp_Command;
|
||||
|
||||
IF a_debug = 1 THEN
|
||||
CALL parts.p_core_debug_timing_reporting ( v_time_start );
|
||||
END IF;
|
||||
END //
|
||||
DELIMITER ;
|
||||
|
||||
|
||||
/*
|
||||
|
||||
CALL parts.p_dog_get_many_command (
|
||||
1 -- 'auth0|6582b95c895d09a70ba10fef', -- a_id_user
|
||||
, 1 -- a_get_all_command
|
||||
, 0 -- a_get_inactive_command
|
||||
, '' -- a_ids_command
|
||||
, '' -- a_names_command
|
||||
, 1 -- a_debug
|
||||
);
|
||||
|
||||
*/
|
||||
@@ -1,10 +1,10 @@
|
||||
|
||||
USE parts;
|
||||
|
||||
DROP PROCEDURE IF EXISTS parts.p_DOG_get_many_understanding_level;
|
||||
DROP PROCEDURE IF EXISTS parts.p_dog_get_many_understanding_level;
|
||||
|
||||
DELIMITER //
|
||||
CREATE PROCEDURE parts.p_DOG_get_many_understanding_level (
|
||||
CREATE PROCEDURE parts.p_dog_get_many_understanding_level (
|
||||
IN a_id_user INT
|
||||
, IN a_get_all_understanding_level BIT
|
||||
, IN a_get_inactive_understanding_level BIT
|
||||
@@ -155,7 +155,7 @@ BEGIN
|
||||
|
||||
-- Understanding_Levels
|
||||
IF v_has_filter_understanding_level_id = 1 THEN
|
||||
CALL parts.p_split(v_guid, a_ids_understanding_level, ',', a_debug);
|
||||
CALL parts.p_core_split(v_guid, a_ids_understanding_level, ',', a_debug);
|
||||
|
||||
INSERT INTO tmp_Split_Id (
|
||||
substring
|
||||
@@ -170,11 +170,11 @@ BEGIN
|
||||
AND IFNULL(SPLIT_T.substring, '') <> ''
|
||||
;
|
||||
|
||||
CALL parts.p_clear_split_temp( v_guid );
|
||||
CALL parts.p_core_clear_split( v_guid );
|
||||
END IF;
|
||||
|
||||
IF v_has_filter_understanding_level_code = 1 THEN
|
||||
CALL parts.p_split(v_guid, a_codes_understanding_level, ',', a_debug);
|
||||
CALL parts.p_core_split(v_guid, a_codes_understanding_level, ',', a_debug);
|
||||
|
||||
INSERT INTO tmp_Split_Code (
|
||||
substring
|
||||
@@ -189,11 +189,11 @@ BEGIN
|
||||
AND IFNULL(SPLIT_T.substring, '') <> ''
|
||||
;
|
||||
|
||||
CALL parts.p_clear_split_temp( v_guid );
|
||||
CALL parts.p_core_clear_split( v_guid );
|
||||
END IF;
|
||||
|
||||
IF v_has_filter_understanding_level_name = 1 THEN
|
||||
CALL parts.p_split(v_guid, a_names_understanding_level, ',', a_debug);
|
||||
CALL parts.p_core_split(v_guid, a_names_understanding_level, ',', a_debug);
|
||||
|
||||
INSERT INTO tmp_Split_Name (
|
||||
substring
|
||||
@@ -208,7 +208,7 @@ BEGIN
|
||||
AND IFNULL(SPLIT_T.substring, '') <> ''
|
||||
;
|
||||
|
||||
CALL parts.p_clear_split_temp( v_guid );
|
||||
CALL parts.p_core_clear_split( v_guid );
|
||||
END IF;
|
||||
|
||||
IF NOT EXISTS (SELECT * FROM tmp_Msg_Error t_ERROR INNER JOIN parts.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type WHERE ERROR_TYPE.is_breaking_error = 1 LIMIT 1) THEN
|
||||
@@ -294,7 +294,7 @@ BEGIN
|
||||
;
|
||||
END IF;
|
||||
|
||||
CALL parts.p_DOG_calc_user(
|
||||
CALL parts.p_dog_calc_user(
|
||||
v_guid
|
||||
, a_id_user
|
||||
, FALSE -- a_get_inactive_user
|
||||
@@ -333,7 +333,7 @@ BEGIN
|
||||
;
|
||||
END IF;
|
||||
|
||||
CALL parts.p_DOG_clear_calc_user(
|
||||
CALL parts.p_dog_clear_calc_user(
|
||||
v_guid
|
||||
, 0 -- a_debug
|
||||
);
|
||||
@@ -391,7 +391,7 @@ DELIMITER ;
|
||||
|
||||
/*
|
||||
|
||||
CALL parts.p_DOG_get_many_understanding_level (
|
||||
CALL parts.p_dog_get_many_understanding_level (
|
||||
1 -- 'auth0|6582b95c895d09a70ba10fef', -- a_id_user
|
||||
, 1 -- a_get_all_understanding_level
|
||||
, 0 -- a_get_inactive_understanding_level
|
||||
|
||||
Reference in New Issue
Block a user