Feat: Home and Contact pages setup with Altcha bot protection and saving to database using alterntive layout.
This commit is contained in:
@@ -1,32 +1,26 @@
|
||||
|
||||
|
||||
USE demo;
|
||||
|
||||
DROP PROCEDURE IF EXISTS demo.p_dog_get_many_response_quality_metric;
|
||||
DROP PROCEDURE IF EXISTS demo.p_ph_save_contact_form;
|
||||
|
||||
DELIMITER //
|
||||
CREATE PROCEDURE demo.p_dog_get_many_response_quality_metric (
|
||||
IN a_id_user INT
|
||||
, IN a_get_all_response_quality_metric BIT
|
||||
, IN a_get_inactive_response_quality_metric BIT
|
||||
, IN a_ids_response_quality_metric TEXT
|
||||
, IN a_names_response_quality_metric TEXT
|
||||
, IN a_require_all_id_search_filters_met BIT
|
||||
, IN a_require_any_id_search_filters_met BIT
|
||||
, IN a_require_all_non_id_search_filters_met BIT
|
||||
, IN a_require_any_non_id_search_filters_met BIT
|
||||
, IN a_debug BIT
|
||||
CREATE PROCEDURE demo.p_ph_save_contact_form (
|
||||
IN a_comment VARCHAR(500),
|
||||
IN a_guid BINARY(36),
|
||||
IN a_id_user INT,
|
||||
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_guid BINARY(36);
|
||||
DECLARE v_code_type_error_bad_data VARCHAR(100);
|
||||
DECLARE v_id_access_level_view INT;
|
||||
DECLARE v_id_minimum INT;
|
||||
DECLARE v_id_permission_dog_view INT;
|
||||
DECLARE v_id_access_level_edit INT;
|
||||
DECLARE v_id_change_set INT;
|
||||
DECLARE v_id_permission_contact_form_admin INT;
|
||||
DECLARE v_id_permission_contact_form_new 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_admin BIT;
|
||||
DECLARE v_can_create BIT;
|
||||
|
||||
DECLARE exit handler for SQLEXCEPTION
|
||||
BEGIN
|
||||
@@ -39,10 +33,10 @@ BEGIN
|
||||
ROLLBACK;
|
||||
|
||||
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error (
|
||||
id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT
|
||||
display_order INT NOT NULL PRIMARY KEY AUTO_INCREMENT
|
||||
, id_type INT NULL
|
||||
, code VARCHAR(250) NOT NULL
|
||||
, msg TEXT NOT NULL
|
||||
, code VARCHAR(50) NOT NULL
|
||||
, msg VARCHAR(4000) NOT NULL
|
||||
);
|
||||
|
||||
INSERT INTO tmp_Msg_Error (
|
||||
@@ -58,94 +52,138 @@ BEGIN
|
||||
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
|
||||
SELECT *
|
||||
FROM tmp_Msg_Error;
|
||||
DROP TABLE IF EXISTS tmp_Msg_Error
|
||||
;
|
||||
|
||||
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_dog_view := (SELECT PERMISSION.id_permission FROM demo.DOG_Permission PERMISSION WHERE PERMISSION.code = 'DOG_VIEW' LIMIT 1);
|
||||
SET v_id_access_level_view := (SELECT ACCESS_LEVEL.id_access_level FROM demo.DOG_Access_Level ACCESS_LEVEL WHERE ACCESS_LEVEL.code = 'VIEW' LIMIT 1);
|
||||
SET v_id_type_error_bad_data := (SELECT id_type FROM demo.CORE_Msg_Error_Type WHERE code = v_code_type_error_bad_data LIMIT 1);
|
||||
SET v_id_permission_contact_form_admin := (SELECT id_permission FROM demo.DOG_Permission P WHERE P.code = 'CONTACT_FORM_ADMIN' LIMIT 1);
|
||||
SET v_id_permission_contact_form_new := (SELECT id_permission FROM demo.DOG_Permission P WHERE P.code = 'CONTACT_FORM_CREATE' LIMIT 1);
|
||||
|
||||
SET a_id_user := IFNULL(a_id_user, 0);
|
||||
/*
|
||||
SET a_get_all_response_quality_metric := IFNULL(a_get_all_response_quality_metric, 0);
|
||||
SET a_get_inactive_response_quality_metric := IFNULL(a_get_inactive_response_quality_metric, 0);
|
||||
SET a_ids_response_quality_metric := TRIM(IFNULL(a_ids_response_quality_metric, ''));
|
||||
SET a_names_response_quality_metric := TRIM(IFNULL(a_names_response_quality_metric, ''));
|
||||
SET a_require_all_id_search_filters_met := IFNULL(a_require_all_id_search_filters_met, 1);
|
||||
SET a_require_any_id_search_filters_met := IFNULL(a_require_any_id_search_filters_met, 1);
|
||||
SET a_require_all_non_id_search_filters_met := IFNULL(a_require_all_non_id_search_filters_met, 0);
|
||||
SET a_require_any_non_id_search_filters_met := IFNULL(a_require_any_non_id_search_filters_met, 1);
|
||||
*/
|
||||
SET a_debug := IFNULL(a_debug, 0);
|
||||
CALL demo.p_core_validate_guid ( a_guid );
|
||||
|
||||
IF a_debug = 1 THEN
|
||||
SELECT
|
||||
a_id_user
|
||||
, a_get_all_response_quality_metric
|
||||
, a_get_inactive_response_quality_metric
|
||||
, a_ids_response_quality_metric
|
||||
, a_names_response_quality_metric
|
||||
, a_require_all_id_search_filters_met
|
||||
, a_require_any_id_search_filters_met
|
||||
, a_require_all_non_id_search_filters_met
|
||||
, a_require_any_non_id_search_filters_met
|
||||
, a_debug
|
||||
;
|
||||
|
||||
SELECT
|
||||
v_id_type_error_bad_data
|
||||
, v_id_type_error_no_permission
|
||||
, v_guid
|
||||
, v_id_permission_dog_view
|
||||
, v_time_start
|
||||
;
|
||||
END IF;
|
||||
|
||||
DROP TEMPORARY TABLE IF EXISTS tmp_Msg_Error;
|
||||
DROP TEMPORARY TABLE IF EXISTS tmp_Response_Quality_Metric;
|
||||
DROP TABLE IF EXISTS tmp_Contact_Form;
|
||||
|
||||
CREATE TEMPORARY TABLE tmp_Response_Quality_Metric (
|
||||
id_metric INT NOT NULL
|
||||
, id_unit_measurement INT
|
||||
, code VARCHAR(250)
|
||||
, name VARCHAR(250)
|
||||
, value_min DOUBLE
|
||||
, value_max DOUBLE
|
||||
, active BIT
|
||||
, does_meet_id_filters BIT NOT NULL
|
||||
, does_meet_non_id_filters BIT NOT NULL
|
||||
CREATE TEMPORARY TABLE tmp_Contact_Form (
|
||||
id_contact_form INT NOT NULL
|
||||
, email VARCHAR(255) NOT NULL
|
||||
, name_contact VARCHAR(255) NOT NULL
|
||||
, name_company VARCHAR(255) NOT NULL
|
||||
, message TEXT NOT NULL
|
||||
, receive_marketing_communications BIT NOT NULL
|
||||
, active BIT NOT NULL
|
||||
, name_error VARCHAR(255)
|
||||
, is_new BIT NOT NULL
|
||||
);
|
||||
|
||||
|
||||
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error (
|
||||
id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT
|
||||
display_order INT NOT NULL PRIMARY KEY AUTO_INCREMENT
|
||||
, id_type INT NULL
|
||||
, code VARCHAR(250) NOT NULL
|
||||
, msg TEXT NOT NULL
|
||||
);
|
||||
, code VARCHAR(50) NOT NULL
|
||||
, msg VARCHAR(4000) NOT NULL
|
||||
);
|
||||
|
||||
|
||||
-- Get data from Temp table
|
||||
INSERT INTO tmp_Contact_Form (
|
||||
id_contact_form
|
||||
, email
|
||||
, name_contact
|
||||
, name_company
|
||||
, message
|
||||
, receive_marketing_communications
|
||||
, active
|
||||
, is_new
|
||||
)
|
||||
SELECT
|
||||
CF_T.id_contact_form AS id_contact_form
|
||||
, IFNULL(CF_T.email, CF.email) AS code
|
||||
, IFNULL(CF_T.name_contact, CF.name_contact) AS name_contact
|
||||
, IFNULL(CF_T.name_company, CF.name_company) AS name_company
|
||||
, IFNULL(CF_T.message, CF.message) AS message
|
||||
, COALESCE(CF_T.receive_marketing_communications, CF.receive_marketing_communications, 0) AS receive_marketing_communications
|
||||
, COALESCE(CF_T.active, CF.active, 1) AS active
|
||||
, CASE WHEN IFNULL(CF_T.id_contact_form, 0) < 1 THEN 1 ELSE 0 END AS is_new
|
||||
FROM demo.PH_Contact_Form_Temp CF_T
|
||||
LEFT JOIN demo.PH_Contact_Form CF ON CF_T.id_contact_form = CF.id_contact_form
|
||||
WHERE CF_T.guid = a_guid
|
||||
;
|
||||
|
||||
UPDATE tmp_Contact_Form t_CF
|
||||
SET name_error = COALESCE(t_CF.email, t_CF.name_company, t_CF.name_contact, t_CF.message, '(No Contact Form)')
|
||||
;
|
||||
|
||||
-- Validation
|
||||
-- Missing mandatory fields
|
||||
-- email
|
||||
IF EXISTS (SELECT * FROM tmp_Contact_Form t_CF WHERE ISNULL(t_CF.email) LIMIT 1) THEN
|
||||
INSERT INTO tmp_Msg_Error (
|
||||
id_type
|
||||
, code
|
||||
, msg
|
||||
)
|
||||
SELECT
|
||||
v_id_type_error_bad_data
|
||||
, v_code_type_error_bad_data
|
||||
, CONCAT('The following Contact Form(s) do not have an Email: ', GROUP_CONCAT(t_CF.name_error SEPARATOR ', ')) AS msg
|
||||
FROM tmp_Contact_Form t_CF
|
||||
WHERE ISNULL(t_CF.email)
|
||||
;
|
||||
END IF;
|
||||
-- name_contact
|
||||
IF EXISTS (SELECT * FROM tmp_Contact_Form t_CF WHERE ISNULL(t_CF.name_contact) LIMIT 1) THEN
|
||||
INSERT INTO tmp_Msg_Error (
|
||||
id_type
|
||||
, code
|
||||
, msg
|
||||
)
|
||||
SELECT
|
||||
v_id_type_error_bad_data
|
||||
, v_code_type_error_bad_data
|
||||
, CONCAT('The following Contact Form(s) do not have a Contact Name: ', GROUP_CONCAT(t_CF.name_error SEPARATOR ', ')) AS msg
|
||||
FROM tmp_Contact_Form t_CF
|
||||
WHERE ISNULL(t_CF.name_contact)
|
||||
;
|
||||
END IF;
|
||||
-- name_company
|
||||
IF EXISTS (SELECT * FROM tmp_Contact_Form t_CF WHERE ISNULL(t_CF.name_company) LIMIT 1) THEN
|
||||
INSERT INTO tmp_Msg_Error (
|
||||
id_type
|
||||
, code
|
||||
, msg
|
||||
)
|
||||
SELECT
|
||||
v_id_type_error_bad_data
|
||||
, v_code_type_error_bad_data
|
||||
, CONCAT('The following Contact Form(s) do not have a Company Name: ', GROUP_CONCAT(t_CF.name_error SEPARATOR ', ')) AS msg
|
||||
FROM tmp_Contact_Form t_CF
|
||||
WHERE ISNULL(t_CF.name)
|
||||
;
|
||||
END IF;
|
||||
-- message
|
||||
IF EXISTS (SELECT * FROM tmp_Contact_Form t_CF WHERE ISNULL(t_CF.message) LIMIT 1) THEN
|
||||
INSERT INTO tmp_Msg_Error (
|
||||
id_type
|
||||
, code
|
||||
, msg
|
||||
)
|
||||
SELECT
|
||||
v_id_type_error_bad_data
|
||||
, v_code_type_error_bad_data
|
||||
, CONCAT('The following Contact Form(s) do not have a Message: ', GROUP_CONCAT(t_CF.name_error SEPARATOR ', ')) AS msg
|
||||
FROM tmp_Contact_Form t_CF
|
||||
WHERE ISNULL(t_CF.message)
|
||||
;
|
||||
END IF;
|
||||
|
||||
-- Permissions
|
||||
IF a_debug = 1 THEN
|
||||
SELECT
|
||||
v_guid
|
||||
a_guid
|
||||
, 0 -- get_all_user
|
||||
, 0 -- get_inactive_user
|
||||
, a_id_user -- ids_user
|
||||
@@ -156,7 +194,7 @@ BEGIN
|
||||
, 1 -- a_require_any_id_search_filters_met
|
||||
, 0 -- a_require_all_non_id_search_filters_met
|
||||
, 0 -- a_require_any_non_id_search_filters_met
|
||||
, v_id_permission_dog_view -- ids_permission
|
||||
, v_id_permission_contact_form_admin -- ids_permission
|
||||
, v_id_access_level_view -- ids_access_level
|
||||
, 0 -- a_show_errors
|
||||
, 0 -- a_debug
|
||||
@@ -164,7 +202,7 @@ BEGIN
|
||||
END IF;
|
||||
|
||||
CALL demo.p_dog_calc_user(
|
||||
v_guid
|
||||
a_guid
|
||||
, 0 -- get_all_user
|
||||
, 0 -- get_inactive_user
|
||||
, a_id_user -- ids_user
|
||||
@@ -175,7 +213,7 @@ BEGIN
|
||||
, 1 -- a_require_any_id_search_filters_met
|
||||
, 0 -- a_require_all_non_id_search_filters_met
|
||||
, 0 -- a_require_any_non_id_search_filters_met
|
||||
, v_id_permission_dog_view -- ids_permission
|
||||
, v_id_permission_contact_form_admin -- ids_permission
|
||||
, v_id_access_level_view -- ids_access_level
|
||||
, 0 -- a_show_errors
|
||||
, 0 -- a_debug
|
||||
@@ -184,19 +222,83 @@ BEGIN
|
||||
SELECT
|
||||
IFNULL(CALC_USER_T.has_access, 0)
|
||||
INTO
|
||||
v_can_view
|
||||
v_can_admin
|
||||
FROM demo.DOG_Calc_User_Temp CALC_USER_T
|
||||
WHERE CALC_USER_T.GUID = v_guid
|
||||
WHERE CALC_USER_T.GUID = a_guid
|
||||
LIMIT 1
|
||||
;
|
||||
|
||||
IF a_debug = 1 THEN
|
||||
SELECT v_can_view;
|
||||
SELECT v_can_admin;
|
||||
SELECT COUNT(*) AS Count_Errors FROM tmp_Msg_Error t_ERROR;
|
||||
SELECT * FROM tmp_Msg_Error t_ERROR;
|
||||
END IF;
|
||||
|
||||
CALL demo.p_dog_clear_calc_user(
|
||||
a_guid
|
||||
, 0 -- a_debug
|
||||
);
|
||||
|
||||
|
||||
IF a_debug = 1 THEN
|
||||
SELECT
|
||||
a_guid
|
||||
, 0 -- get_all_user
|
||||
, 0 -- get_inactive_user
|
||||
, a_id_user -- ids_user
|
||||
, '' -- a_auth0_ids_user
|
||||
, '' -- a_names_user
|
||||
, '' -- a_emails_user
|
||||
, 1 -- a_require_all_id_search_filters_met
|
||||
, 1 -- a_require_any_id_search_filters_met
|
||||
, 0 -- a_require_all_non_id_search_filters_met
|
||||
, 0 -- a_require_any_non_id_search_filters_met
|
||||
, v_id_permission_contact_form_new -- ids_permission
|
||||
, v_id_access_level_view -- ids_access_level
|
||||
, 0 -- a_show_errors
|
||||
, 0 -- a_debug
|
||||
;
|
||||
END IF;
|
||||
|
||||
IF (v_can_view = 0) THEN
|
||||
CALL demo.p_dog_calc_user(
|
||||
a_guid
|
||||
, 0 -- get_all_user
|
||||
, 0 -- get_inactive_user
|
||||
, a_id_user -- ids_user
|
||||
, '' -- a_auth0_ids_user
|
||||
, '' -- a_names_user
|
||||
, '' -- a_emails_user
|
||||
, 1 -- a_require_all_id_search_filters_met
|
||||
, 1 -- a_require_any_id_search_filters_met
|
||||
, 0 -- a_require_all_non_id_search_filters_met
|
||||
, 0 -- a_require_any_non_id_search_filters_met
|
||||
, v_id_permission_contact_form_new -- ids_permission
|
||||
, v_id_access_level_view -- ids_access_level
|
||||
, 0 -- a_show_errors
|
||||
, 0 -- a_debug
|
||||
);
|
||||
|
||||
SELECT
|
||||
IFNULL(CALC_USER_T.has_access, 0)
|
||||
INTO
|
||||
v_can_create
|
||||
FROM demo.DOG_Calc_User_Temp CALC_USER_T
|
||||
WHERE CALC_USER_T.GUID = a_guid
|
||||
LIMIT 1
|
||||
;
|
||||
|
||||
IF a_debug = 1 THEN
|
||||
SELECT v_can_create;
|
||||
SELECT COUNT(*) AS Count_Errors FROM tmp_Msg_Error t_ERROR;
|
||||
SELECT * FROM tmp_Msg_Error t_ERROR;
|
||||
END IF;
|
||||
|
||||
CALL demo.p_dog_clear_calc_user(
|
||||
a_guid
|
||||
, 0 -- a_debug
|
||||
);
|
||||
|
||||
IF (v_can_admin = 0 AND EXISTS(SELECT * FROM tmp_Contact_Form WHERE is_new = 0)) THEN
|
||||
DELETE t_ME
|
||||
FROM tmp_Msg_Error t_ME
|
||||
WHERE t_ME.id_type <> v_id_type_error_no_permission
|
||||
@@ -204,186 +306,131 @@ BEGIN
|
||||
INSERT INTO tmp_Msg_Error (
|
||||
id_type
|
||||
, code
|
||||
, msg
|
||||
, msg
|
||||
)
|
||||
VALUES (
|
||||
v_id_type_error_no_permission
|
||||
, v_code_type_error_no_permission
|
||||
, 'You do not have permission to view RESPONSE_QUALITY_METRIC.'
|
||||
, v_code_type_error_no_permission
|
||||
, 'You do not have permission to admin Contact Forms.'
|
||||
)
|
||||
;
|
||||
END IF;
|
||||
|
||||
IF EXISTS (SELECT * FROM tmp_Msg_Error LIMIT 1) THEN
|
||||
IF a_debug = 1 THEN
|
||||
SELECT * from tmp_Contact_Form;
|
||||
END IF;
|
||||
|
||||
DELETE FROM tmp_Contact_Form;
|
||||
END IF;
|
||||
|
||||
IF NOT EXISTS (SELECT * FROM tmp_Msg_Error LIMIT 1) THEN
|
||||
START TRANSACTION;
|
||||
|
||||
INSERT INTO demo.PH_Contact_Form_Change_Set (
|
||||
comment
|
||||
, id_user_updated_last_by
|
||||
, updated_last_on
|
||||
)
|
||||
VALUES (
|
||||
a_comment
|
||||
, a_id_user
|
||||
, v_time_start
|
||||
)
|
||||
;
|
||||
|
||||
SET v_id_change_set := LAST_INSERT_ID();
|
||||
|
||||
UPDATE demo.PH_Contact_Form CF
|
||||
INNER JOIN tmp_Contact_Form t_CF
|
||||
ON CF.id_contact_form = t_CF.id_contact_form
|
||||
AND t_CF.is_new = 0
|
||||
SET
|
||||
CF.email = t_CF.email
|
||||
, CF.name_contact = t_CF.name_contact
|
||||
, CF.name_company = t_CF.name_company
|
||||
, CF.message = t_CF.message
|
||||
, CF.receive_marketing_communications = t_CF.receive_marketing_communications
|
||||
, CF.active = t_CF.active
|
||||
, CF.id_change_set = v_id_change_set
|
||||
;
|
||||
|
||||
INSERT INTO demo.PH_Contact_Form (
|
||||
email
|
||||
, name_contact
|
||||
, name_company
|
||||
, message
|
||||
, receive_marketing_communications
|
||||
, active
|
||||
, id_user_created_by
|
||||
, created_on
|
||||
)
|
||||
SELECT
|
||||
t_CF.email AS email
|
||||
, t_CF.name_contact AS name_contact
|
||||
, t_CF.name_company AS name_company
|
||||
, t_CF.message AS message
|
||||
, t_CF.receive_marketing_communications AS receive_marketing_communications
|
||||
, t_CF.active AS active
|
||||
, a_id_user AS created_by
|
||||
, v_time_start AS created_on
|
||||
FROM tmp_Contact_Form t_CF
|
||||
WHERE
|
||||
t_CF.is_new = 1
|
||||
AND t_CF.active = 1
|
||||
;
|
||||
|
||||
COMMIT;
|
||||
END IF;
|
||||
|
||||
CALL demo.p_dog_clear_calc_user(
|
||||
v_guid
|
||||
, 0 -- a_debug
|
||||
);
|
||||
START TRANSACTION;
|
||||
|
||||
|
||||
-- Call Response_Quality_Metric 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_response_quality_metric -- a_get_all_response_quality_metric
|
||||
, a_get_inactive_response_quality_metric -- a_get_inactive_response_quality_metric
|
||||
, a_ids_response_quality_metric -- a_ids_response_quality_metric
|
||||
, a_names_response_quality_metric -- a_names_response_quality_metric
|
||||
, a_require_all_id_search_filters_met -- a_require_all_id_search_filters_met
|
||||
, a_require_any_id_search_filters_met -- a_require_any_id_search_filters_met
|
||||
, a_require_all_non_id_search_filters_met -- a_require_all_non_id_search_filters_met
|
||||
, a_require_any_non_id_search_filters_met -- a_require_any_non_id_search_filters_met
|
||||
, 0 -- a_show_errors
|
||||
, 0 -- a_debug
|
||||
;
|
||||
END IF;
|
||||
|
||||
CALL demo.p_dog_calc_response_quality_metric (
|
||||
v_guid -- a_guid
|
||||
, a_id_user -- a_id_user
|
||||
, a_get_all_response_quality_metric -- a_get_all_response_quality_metric
|
||||
, a_get_inactive_response_quality_metric -- a_get_inactive_response_quality_metric
|
||||
, a_ids_response_quality_metric -- a_ids_response_quality_metric
|
||||
, a_names_response_quality_metric -- a_names_response_quality_metric
|
||||
, a_require_all_id_search_filters_met -- a_require_all_id_search_filters_met
|
||||
, a_require_any_id_search_filters_met -- a_require_any_id_search_filters_met
|
||||
, a_require_all_non_id_search_filters_met -- a_require_all_non_id_search_filters_met
|
||||
, a_require_any_non_id_search_filters_met -- a_require_any_non_id_search_filters_met
|
||||
, 0 -- a_show_errors
|
||||
, 0 -- a_debug
|
||||
);
|
||||
|
||||
IF a_debug = 1 THEN
|
||||
SELECT COUNT(*) FROM demo.DOG_Response_Quality_Metric_Temp;
|
||||
SELECT * FROM demo.DOG_Response_Quality_Metric_Temp;
|
||||
END IF;
|
||||
|
||||
INSERT INTO tmp_Response_Quality_Metric (
|
||||
id_metric
|
||||
, id_unit_measurement
|
||||
, code
|
||||
, name
|
||||
, value_min
|
||||
, value_max
|
||||
, active
|
||||
, does_meet_id_filters
|
||||
, does_meet_non_id_filters
|
||||
)
|
||||
SELECT
|
||||
RESPONSE_QUALITY_METRIC_T.id_metric
|
||||
, RESPONSE_QUALITY_METRIC_T.id_unit_measurement
|
||||
, RESPONSE_QUALITY_METRIC_T.code
|
||||
, RESPONSE_QUALITY_METRIC_T.name
|
||||
, RESPONSE_QUALITY_METRIC_T.value_min
|
||||
, RESPONSE_QUALITY_METRIC_T.value_max
|
||||
, RESPONSE_QUALITY_METRIC_T.active
|
||||
|
||||
, RESPONSE_QUALITY_METRIC_T.does_meet_id_filters
|
||||
, RESPONSE_QUALITY_METRIC_T.does_meet_non_id_filters
|
||||
FROM demo.DOG_Response_Quality_Metric_Temp RESPONSE_QUALITY_METRIC_T
|
||||
WHERE RESPONSE_QUALITY_METRIC_T.GUID = v_guid
|
||||
DELETE FROM demo.PH_Contact_Form_Temp
|
||||
WHERE GUID = a_guid
|
||||
;
|
||||
|
||||
IF a_debug = 1 THEN
|
||||
SELECT COUNT(*) FROM tmp_Response_Quality_Metric;
|
||||
SELECT * FROM tmp_Response_Quality_Metric;
|
||||
END IF;
|
||||
END IF;
|
||||
|
||||
COMMIT;
|
||||
|
||||
-- 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_Response_Quality_Metric;
|
||||
END IF;
|
||||
|
||||
DELETE FROM tmp_Response_Quality_Metric;
|
||||
END IF;
|
||||
|
||||
|
||||
-- Outputs
|
||||
-- RESPONSE_QUALITY_METRIC
|
||||
SELECT
|
||||
t_RESPONSE_QUALITY_METRIC.id_metric
|
||||
, t_RESPONSE_QUALITY_METRIC.id_unit_measurement
|
||||
, UNIT_MEASUREMENT.name_singular AS name_singular_unit_measurement
|
||||
, UNIT_MEASUREMENT.name_plural AS name_plural_unit_measurement
|
||||
, UNIT_MEASUREMENT.symbol AS symbol_unit_measurement
|
||||
, t_RESPONSE_QUALITY_METRIC.code
|
||||
, t_RESPONSE_QUALITY_METRIC.name
|
||||
, t_RESPONSE_QUALITY_METRIC.value_min
|
||||
, t_RESPONSE_QUALITY_METRIC.value_max
|
||||
, t_RESPONSE_QUALITY_METRIC.active
|
||||
|
||||
, t_RESPONSE_QUALITY_METRIC.does_meet_id_filters
|
||||
, t_RESPONSE_QUALITY_METRIC.does_meet_non_id_filters
|
||||
FROM tmp_Response_Quality_Metric t_RESPONSE_QUALITY_METRIC
|
||||
LEFT JOIN demo.DOG_Response_Quality_Metric RESPONSE_QUALITY_METRIC ON t_RESPONSE_QUALITY_METRIC.id_metric = RESPONSE_QUALITY_METRIC.id_metric
|
||||
LEFT JOIN demo.DOG_Unit_Measurement UNIT_MEASUREMENT ON t_RESPONSE_QUALITY_METRIC.id_unit_measurement = UNIT_MEASUREMENT.id_unit_measurement
|
||||
ORDER BY t_RESPONSE_QUALITY_METRIC.name
|
||||
;
|
||||
|
||||
-- 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
|
||||
SELECT *
|
||||
FROM tmp_Msg_Error t_ME
|
||||
INNER JOIN demo.CORE_Msg_Error_Type MET ON t_ME.id_type = MET.id_type
|
||||
;
|
||||
|
||||
IF a_debug = 1 AND v_can_view = 1 THEN
|
||||
SELECT * FROM tmp_Response_Quality_Metric;
|
||||
END IF;
|
||||
|
||||
CALL demo.p_dog_clear_calc_response_quality_metric(
|
||||
v_guid -- a_guid
|
||||
, 0 -- a_debug
|
||||
);
|
||||
IF a_debug = 1 THEN
|
||||
SELECT * from tmp_Contact_Form;
|
||||
END IF;
|
||||
|
||||
DROP TEMPORARY TABLE tmp_Contact_Form;
|
||||
DROP TEMPORARY TABLE tmp_Msg_Error;
|
||||
|
||||
DROP TEMPORARY TABLE IF EXISTS tmp_Msg_Error;
|
||||
DROP TEMPORARY TABLE IF EXISTS tmp_Response_Quality_Metric;
|
||||
|
||||
IF a_debug = 1 THEN
|
||||
IF a_debug = 1 THEN
|
||||
CALL demo.p_core_debug_timing_reporting ( v_time_start );
|
||||
END IF;
|
||||
END IF;
|
||||
END //
|
||||
DELIMITER ;
|
||||
|
||||
|
||||
/*
|
||||
select
|
||||
*
|
||||
-- COUNT(*)
|
||||
-- delete
|
||||
from demo.PH_Contact_Form_Temp
|
||||
;
|
||||
|
||||
CALL demo.p_dog_get_many_response_quality_metric (
|
||||
1 -- 'auth0|6582b95c895d09a70ba10fef', -- a_id_user
|
||||
, 1 -- a_get_all_response_quality_metric
|
||||
, 0 -- a_get_inactive_response_quality_metric
|
||||
, '' -- a_ids_response_quality_metric
|
||||
, '' -- a_names_response_quality_metric
|
||||
, 1 -- a_require_all_id_search_filters_met
|
||||
, 1 -- a_require_any_id_search_filters_met
|
||||
, 0 -- a_require_all_non_id_search_filters_met
|
||||
, 1 -- a_require_any_non_id_search_filters_met
|
||||
, 1 -- a_debug
|
||||
|
||||
CALL demo.p_ph_save_contact_form (
|
||||
'nipples'
|
||||
, (SELECT GUID FROM demo.PH_Contact_Form_Temp ORDER BY id_temp DESC LIMIT 1)
|
||||
, 1
|
||||
, 1
|
||||
);
|
||||
|
||||
select
|
||||
*
|
||||
-- COUNT(*)
|
||||
-- delete
|
||||
from demo.PH_Contact_Form_Temp
|
||||
;
|
||||
|
||||
CALL demo.p_dog_get_many_response_quality_metric (
|
||||
1 -- 'auth0|6582b95c895d09a70ba10fef', -- a_id_user
|
||||
, 1 -- a_get_all_response_quality_metric
|
||||
, 0 -- a_get_inactive_response_quality_metric
|
||||
, '' -- a_ids_response_quality_metric
|
||||
, 'pat,point' -- a_names_response_quality_metric
|
||||
, 1 -- a_require_all_id_search_filters_met
|
||||
, 1 -- a_require_any_id_search_filters_met
|
||||
, 0 -- a_require_all_non_id_search_filters_met
|
||||
, 1 -- a_require_any_non_id_search_filters_met
|
||||
, 1 -- a_debug
|
||||
);
|
||||
|
||||
*/
|
||||
@@ -14,6 +14,12 @@ DROP TABLE IF EXISTS parts.tmp_dog_User_Role_Link;
|
||||
|
||||
|
||||
-- Permanent Tables
|
||||
DROP TABLE IF EXISTS parts.PH_Contact_Form_Temp;
|
||||
DROP TABLE IF EXISTS parts.PH_Contact_Form_Audit;
|
||||
DROP TABLE IF EXISTS parts.PH_Contact_Form;
|
||||
|
||||
DROP TABLE IF EXISTS parts.PH_Contact_Form_Change_Set;
|
||||
|
||||
DROP TABLE IF EXISTS parts.DOG_Assessment_Response_Temp;
|
||||
DROP TABLE IF EXISTS parts.DOG_Assessment_Response_Audit;
|
||||
DROP TABLE IF EXISTS parts.DOG_Assessment_Response;
|
||||
@@ -181,6 +187,11 @@ 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_ph_test_get_many_contact_form;
|
||||
DROP PROCEDURE IF EXISTS parts.p_ph_get_many_contact_form;
|
||||
DROP PROCEDURE IF EXISTS parts.p_ph_test_save_contact_form;
|
||||
DROP PROCEDURE IF EXISTS parts.p_ph_save_contact_form;
|
||||
|
||||
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;
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
|
||||
USE parts;
|
||||
|
||||
-- DROP TABLE IF EXISTS parts.DOG_Assessment_Temp;
|
||||
|
||||
SELECT CONCAT('WARNING: Table ', TABLE_SCHEMA, '.', TABLE_NAME, ' already exists.') AS msg_warning
|
||||
FROM INFORMATION_SCHEMA.TABLES
|
||||
WHERE
|
||||
@@ -17,7 +19,7 @@ CREATE TABLE IF NOT EXISTS parts.DOG_Assessment_Temp (
|
||||
, id_user_handler INT
|
||||
, notes TEXT
|
||||
, temperature_celcius DECIMAL(5, 2)
|
||||
-- , difficulty_level DOUBLE
|
||||
, difficulty_level DOUBLE
|
||||
, active BIT
|
||||
|
||||
, does_meet_id_filters BIT
|
||||
|
||||
19
static/MySQL/11600_tbl_PH_Contact_Form_Change_Set.sql
Normal file
19
static/MySQL/11600_tbl_PH_Contact_Form_Change_Set.sql
Normal file
@@ -0,0 +1,19 @@
|
||||
|
||||
USE parts;
|
||||
|
||||
SELECT CONCAT('WARNING: Table ', TABLE_SCHEMA, '.', TABLE_NAME, ' already exists.') AS msg_warning
|
||||
FROM INFORMATION_SCHEMA.TABLES
|
||||
WHERE
|
||||
TABLE_SCHEMA = 'parts'
|
||||
AND TABLE_NAME = 'PH_Contact_Form_Change_Set'
|
||||
;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS parts.PH_Contact_Form_Change_Set (
|
||||
id_change_set INT NOT NULL AUTO_INCREMENT PRIMARY KEY
|
||||
, comment VARCHAR(500)
|
||||
, updated_last_on DATETIME
|
||||
, id_user_updated_last_by INT
|
||||
, CONSTRAINT FK_PH_Contact_Form_Change_Set_id_user_updated_last_by
|
||||
FOREIGN KEY (id_user_updated_last_by)
|
||||
REFERENCES parts.DOG_User(id_user)
|
||||
);
|
||||
28
static/MySQL/11601_tbl_PH_Contact_Form.sql
Normal file
28
static/MySQL/11601_tbl_PH_Contact_Form.sql
Normal file
@@ -0,0 +1,28 @@
|
||||
|
||||
USE parts;
|
||||
|
||||
SELECT CONCAT('WARNING: Table ', TABLE_SCHEMA, '.', TABLE_NAME, ' already exists.') AS msg_warning
|
||||
FROM INFORMATION_SCHEMA.TABLES
|
||||
WHERE
|
||||
TABLE_SCHEMA = 'parts'
|
||||
AND TABLE_NAME = 'PH_Contact_Form'
|
||||
;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS parts.PH_Contact_Form (
|
||||
id_contact_form INT NOT NULL AUTO_INCREMENT PRIMARY KEY
|
||||
, email VARCHAR(255) NOT NULL
|
||||
, name_contact VARCHAR(255) NOT NULL
|
||||
, name_company VARCHAR(255) NOT NULL
|
||||
, message TEXT NOT NULL
|
||||
, receive_marketing_communications BIT NOT NULL DEFAULT 0
|
||||
, active BIT NOT NULL DEFAULT 1
|
||||
, created_on DATETIME
|
||||
, id_user_created_by INT
|
||||
, CONSTRAINT FK_PH_Contact_Form_id_user_created_by
|
||||
FOREIGN KEY (id_user_created_by)
|
||||
REFERENCES parts.DOG_User(id_user)
|
||||
, id_change_set INT
|
||||
, CONSTRAINT FK_PH_Contact_Form_id_change_set
|
||||
FOREIGN KEY (id_change_set)
|
||||
REFERENCES parts.PH_Contact_Form_Change_Set(id_change_set)
|
||||
);
|
||||
24
static/MySQL/11602_tbl_PH_Contact_Form_Audit.sql
Normal file
24
static/MySQL/11602_tbl_PH_Contact_Form_Audit.sql
Normal file
@@ -0,0 +1,24 @@
|
||||
|
||||
USE parts;
|
||||
|
||||
SELECT CONCAT('WARNING: Table ', TABLE_SCHEMA, '.', TABLE_NAME, ' already exists.') AS msg_warning
|
||||
FROM INFORMATION_SCHEMA.TABLES
|
||||
WHERE
|
||||
TABLE_SCHEMA = 'parts'
|
||||
AND TABLE_NAME = 'PH_Contact_Form_Audit'
|
||||
;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS parts.PH_Contact_Form_Audit (
|
||||
id_audit INT NOT NULL AUTO_INCREMENT PRIMARY KEY
|
||||
, id_contact_form INT NOT NULL
|
||||
, CONSTRAINT FK_PH_Contact_Form_Audit_id_contact_form
|
||||
FOREIGN KEY (id_contact_form)
|
||||
REFERENCES parts.PH_Contact_Form(id_contact_form)
|
||||
, name_field VARCHAR(50) NOT NULL
|
||||
, value_prev TEXT
|
||||
, value_new TEXT
|
||||
, id_change_set INT NOT NULL
|
||||
, CONSTRAINT FK_PH_Contact_Form_Audit_id_change_set
|
||||
FOREIGN KEY (id_change_set)
|
||||
REFERENCES parts.PH_Contact_Form_Change_Set(id_change_set)
|
||||
);
|
||||
21
static/MySQL/11603_tbl_PH_Contact_Form_Temp.sql
Normal file
21
static/MySQL/11603_tbl_PH_Contact_Form_Temp.sql
Normal file
@@ -0,0 +1,21 @@
|
||||
|
||||
USE parts;
|
||||
|
||||
SELECT CONCAT('WARNING: Table ', TABLE_SCHEMA, '.', TABLE_NAME, ' already exists.') AS msg_warning
|
||||
FROM INFORMATION_SCHEMA.TABLES
|
||||
WHERE
|
||||
TABLE_SCHEMA = 'parts'
|
||||
AND TABLE_NAME = 'PH_Contact_Form_Temp'
|
||||
;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS parts.PH_Contact_Form_Temp (
|
||||
id_temp INT NOT NULL PRIMARY KEY AUTO_INCREMENT
|
||||
, id_contact_form INT
|
||||
, email VARCHAR(255)
|
||||
, name_contact VARCHAR(255)
|
||||
, name_company VARCHAR(255)
|
||||
, message TEXT
|
||||
, receive_marketing_communications BIT
|
||||
, active BIT
|
||||
, guid BINARY(36)
|
||||
);
|
||||
14
static/MySQL/31600_tri_PH_Contact_Form_Change_Set.sql
Normal file
14
static/MySQL/31600_tri_PH_Contact_Form_Change_Set.sql
Normal file
@@ -0,0 +1,14 @@
|
||||
USE parts;
|
||||
|
||||
DROP TRIGGER IF EXISTS parts.before_insert_PH_Contact_Form_Change_Set;
|
||||
|
||||
DELIMITER //
|
||||
CREATE TRIGGER parts.before_insert_PH_Contact_Form_Change_Set
|
||||
BEFORE INSERT ON parts.PH_Contact_Form_Change_Set
|
||||
FOR EACH ROW
|
||||
BEGIN
|
||||
IF NEW.updated_last_on <=> NULL THEN
|
||||
SET NEW.updated_last_on = NOW();
|
||||
END IF;
|
||||
END //
|
||||
DELIMITER ;
|
||||
58
static/MySQL/31601_tri_PH_Contact_Form.sql
Normal file
58
static/MySQL/31601_tri_PH_Contact_Form.sql
Normal file
@@ -0,0 +1,58 @@
|
||||
|
||||
USE parts;
|
||||
|
||||
DROP TRIGGER IF EXISTS parts.before_insert_PH_Contact_Form;
|
||||
DROP TRIGGER IF EXISTS parts.before_update_PH_Contact_Form;
|
||||
|
||||
DELIMITER //
|
||||
CREATE TRIGGER parts.before_insert_PH_Contact_Form
|
||||
BEFORE INSERT ON parts.PH_Contact_Form
|
||||
FOR EACH ROW
|
||||
BEGIN
|
||||
SET NEW.created_on := IFNULL(NEW.created_on, NOW());
|
||||
END //
|
||||
DELIMITER ;
|
||||
|
||||
DELIMITER //
|
||||
CREATE TRIGGER parts.before_update_PH_Contact_Form
|
||||
BEFORE UPDATE ON parts.PH_Contact_Form
|
||||
FOR EACH ROW
|
||||
BEGIN
|
||||
IF OLD.id_change_set <=> NEW.id_change_set THEN
|
||||
SIGNAL SQLSTATE '45000'
|
||||
SET MESSAGE_TEXT = 'New change Set ID must be provided.';
|
||||
END IF;
|
||||
|
||||
INSERT INTO parts.PH_Contact_Form_Audit (
|
||||
id_contact_form,
|
||||
name_field,
|
||||
value_prev,
|
||||
value_new,
|
||||
id_change_set
|
||||
)
|
||||
-- Changed email
|
||||
SELECT NEW.id_contact_form, 'email', OLD.email, NEW.email, NEW.id_change_set
|
||||
WHERE NOT OLD.email <=> NEW.email
|
||||
UNION
|
||||
-- Changed name_contact
|
||||
SELECT NEW.id_contact_form, 'name_contact', OLD.name_contact, NEW.name_contact, NEW.id_change_set
|
||||
WHERE NOT OLD.name_contact <=> NEW.name_contact
|
||||
UNION
|
||||
-- Changed name_company
|
||||
SELECT NEW.id_contact_form, 'name_company', OLD.name_company, NEW.name_company, NEW.id_change_set
|
||||
WHERE NOT OLD.name_company <=> NEW.name_company
|
||||
UNION
|
||||
-- Changed message
|
||||
SELECT NEW.id_contact_form, 'message', OLD.message, NEW.message, NEW.id_change_set
|
||||
WHERE NOT OLD.message <=> NEW.message
|
||||
UNION
|
||||
-- Changed receive_marketing_communications
|
||||
SELECT NEW.id_contact_form, 'receive_marketing_communications', CONVERT(CONVERT(OLD.receive_marketing_communications, SIGNED), CHAR), CONVERT(CONVERT(NEW.receive_marketing_communications, SIGNED), CHAR), NEW.id_change_set
|
||||
WHERE NOT (OLD.receive_marketing_communications <=> NEW.receive_marketing_communications)
|
||||
UNION
|
||||
-- Changed active
|
||||
SELECT NEW.id_contact_form, 'active', CONVERT(CONVERT(OLD.active, SIGNED), CHAR), CONVERT(CONVERT(NEW.active, SIGNED), CHAR), NEW.id_change_set
|
||||
WHERE NOT (OLD.active <=> NEW.active)
|
||||
;
|
||||
END //
|
||||
DELIMITER ;
|
||||
552
static/MySQL/71310_p_dog_save_assessment.sql
Normal file
552
static/MySQL/71310_p_dog_save_assessment.sql
Normal file
@@ -0,0 +1,552 @@
|
||||
|
||||
USE parts;
|
||||
|
||||
DROP PROCEDURE IF EXISTS parts.p_dog_save_assessment;
|
||||
|
||||
DELIMITER //
|
||||
CREATE PROCEDURE parts.p_dog_save_assessment (
|
||||
IN a_comment VARCHAR(500),
|
||||
IN a_guid BINARY(36),
|
||||
IN a_id_user INT,
|
||||
IN a_debug BIT
|
||||
)
|
||||
BEGIN
|
||||
DECLARE v_can_admin BIT;
|
||||
DECLARE v_can_create BIT;
|
||||
DECLARE v_code_type_error_bad_data VARCHAR(100);
|
||||
DECLARE v_id_access_level_edit INT;
|
||||
DECLARE v_id_change_set INT;
|
||||
DECLARE v_id_permission_dog_new INT;
|
||||
DECLARE v_id_type_error_bad_data 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 (
|
||||
id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT
|
||||
, id_type INT NULL
|
||||
, code VARCHAR(250)
|
||||
, msg TEXT 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 SESSION group_concat_max_len=15000;
|
||||
|
||||
SET v_time_start := CURRENT_TIMESTAMP(6);
|
||||
SET v_code_type_error_bad_data := 'BAD_DATA';
|
||||
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_permission_dog_new := (SELECT PERMISSION.id_permission FROM parts.DOG_Permission PERMISSION WHERE PERMISSION.code = 'DOG_CREATE' LIMIT 1);
|
||||
SET v_id_access_level_edit := (SELECT ACCESS_LEVEL.id_access_level FROM parts.DOG_Access_Level ACCESS_LEVEL WHERE ACCESS_LEVEL.code = 'EDIT' LIMIT 1);
|
||||
|
||||
CALL parts.p_core_validate_guid ( a_guid );
|
||||
|
||||
DROP TABLE IF EXISTS tmp_Assessment_Copy;
|
||||
DROP TABLE IF EXISTS tmp_Assessment;
|
||||
|
||||
CREATE TEMPORARY TABLE tmp_Assessment (
|
||||
id_temp INT
|
||||
, id_assessment INT
|
||||
, id_weather INT
|
||||
, id_lighting_level INT
|
||||
, id_location INT
|
||||
, id_user_handler INT
|
||||
, notes TEXT
|
||||
, temperature_celcius DECIMAL(5, 2)
|
||||
, difficulty_level FLOAT
|
||||
, active BIT
|
||||
, is_new BIT
|
||||
, name_error VARCHAR(250)
|
||||
);
|
||||
|
||||
CREATE TEMPORARY TABLE tmp_Assessment_Copy (
|
||||
id_temp INT
|
||||
, id_assessment INT
|
||||
, id_weather INT
|
||||
, id_lighting_level INT
|
||||
, id_location INT
|
||||
, id_user_handler INT
|
||||
, notes TEXT
|
||||
, temperature_celcius DECIMAL(5, 2)
|
||||
, difficulty_level FLOAT
|
||||
, active BIT
|
||||
, is_new BIT
|
||||
, name_error 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(250)
|
||||
, msg TEXT NOT NULL
|
||||
);
|
||||
|
||||
|
||||
-- Get data from Temp table
|
||||
INSERT INTO tmp_Assessment (
|
||||
id_temp
|
||||
, id_assessment
|
||||
, id_weather
|
||||
, id_lighting_level
|
||||
, id_location
|
||||
, id_user_handler
|
||||
, notes
|
||||
, temperature_celcius
|
||||
, difficulty_level
|
||||
, active
|
||||
, is_new
|
||||
)
|
||||
SELECT
|
||||
ASSESSMENT_T.id_temp
|
||||
, ASSESSMENT_T.id_assessment
|
||||
, COALESCE(
|
||||
ASSESSMENT_T.id_weather
|
||||
, ASSESSMENT.id_weather
|
||||
) AS id_weather
|
||||
, COALESCE(
|
||||
ASSESSMENT_T.id_lighting_level
|
||||
, ASSESSMENT.id_lighting_level
|
||||
) AS id_lighting_level
|
||||
, COALESCE(
|
||||
ASSESSMENT_T.id_location
|
||||
, ASSESSMENT.id_location
|
||||
) AS id_location
|
||||
, COALESCE(
|
||||
ASSESSMENT_T.id_user_handler
|
||||
, ASSESSMENT.id_user_handler
|
||||
) AS id_user_handler
|
||||
, ASSESSMENT_T.notes
|
||||
, ASSESSMENT_T.temperature_celcius
|
||||
, ASSESSMENT_T.difficulty_level
|
||||
, COALESCE(ASSESSMENT_T.active, 1) AS active
|
||||
, CASE WHEN COALESCE(ASSESSMENT_T.id_assessment, 0) < 1 THEN 1 ELSE 0 END AS is_new
|
||||
FROM parts.DOG_Assessment_Temp ASSESSMENT_T
|
||||
LEFT JOIN parts.DOG_Assessment ASSESSMENT ON ASSESSMENT_T.id_assessment = ASSESSMENT.id_assessment
|
||||
WHERE ASSESSMENT_T.guid = a_guid
|
||||
;
|
||||
|
||||
IF a_debug = 1 THEN
|
||||
SELECT 'Assessment_Temp records';
|
||||
SELECT * FROM tmp_Assessment;
|
||||
SELECT COUNT(*) FROM tmp_Assessment;
|
||||
END IF;
|
||||
|
||||
-- Error names
|
||||
UPDATE tmp_Assessment t_ASSESSMENT
|
||||
LEFT JOIN parts.DOG_Assessment ASSESSMENT ON t_ASSESSMENT.id_assessment = ASSESSMENT.id_assessment
|
||||
SET t_ASSESSMENT.name_error = CONCAT(
|
||||
CONVERT(COALESCE(t_ASSESSMENT.created_on, ASSESSMENT.created_on, v_time_start), CHAR)
|
||||
, CASE WHEN t_ASSESSMENT.notes IS NOT NULL THEN CONCAT(' - ', t_ASSESSMENT.notes) ELSE '' END
|
||||
/*
|
||||
COALESCE(WEATHER.name, '(No Weather)')
|
||||
, ' - '
|
||||
, COALESCE(LIGHTING_LEVEL.name, '(No Lighting Level)')
|
||||
, ' - '
|
||||
, COALESCE(LOCATIONS.name, '(No Location)')
|
||||
, ' - '
|
||||
, COALESCE(CONCAT(USER_HANDLER.firstname, ' ', USER_HANDLER.surname), '(No User Handler)')
|
||||
, ' - x'
|
||||
, CONVERT(COALESCE(t_ASSESSMENT.quantity, 0), CHAR)
|
||||
*/
|
||||
)
|
||||
;
|
||||
|
||||
IF a_debug = 1 THEN
|
||||
SELECT 'After set name_error';
|
||||
SELECT * FROM tmp_Assessment;
|
||||
SELECT COUNT(*) FROM tmp_Assessment;
|
||||
END IF;
|
||||
|
||||
|
||||
-- Validation
|
||||
-- Missing mandatory fields
|
||||
-- id_weather
|
||||
IF EXISTS (
|
||||
SELECT *
|
||||
FROM tmp_Assessment t_ASSESSMENT
|
||||
LEFT JOIN demo.DOG_Weather WEATHER ON t_ASSESSMENT.id_weather = WEATHER.id_weather
|
||||
WHERE
|
||||
ISNULL(t_ASSESSMENT.id_weather)
|
||||
OR ISNULL(WEATHER.id_weather)
|
||||
OR WEATHER.active = 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('The following Dog Weather Assessment(s) do not have a valid Weather: ', GROUP_CONCAT(t_ASSESSMENT.name_error SEPARATOR ', ')) AS msg
|
||||
FROM tmp_Assessment t_ASSESSMENT
|
||||
LEFT JOIN parts.DOG_Weather WEATHER ON t_ASSESSMENT.id_weather = WEATHER.id_weather
|
||||
WHERE
|
||||
ISNULL(t_ASSESSMENT.id_weather)
|
||||
OR ISNULL(WEATHER.id_weather)
|
||||
OR WEATHER.active = 0
|
||||
;
|
||||
END IF;
|
||||
-- id_lighting_level
|
||||
IF EXISTS (
|
||||
SELECT *
|
||||
FROM tmp_Assessment t_ASSESSMENT
|
||||
LEFT JOIN demo.DOG_Lighting_Level LIGHTING_LEVEL ON t_ASSESSMENT.id_lighting_level = LIGHTING_LEVEL.id_lighting_level
|
||||
WHERE
|
||||
ISNULL(t_ASSESSMENT.id_lighting_level)
|
||||
OR ISNULL(LIGHTING_LEVEL.id_lighting_level)
|
||||
OR LIGHTING_LEVEL.active = 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('The following Dog Lighting_Level Assessment(s) do not have a valid Lighting_Level: ', GROUP_CONCAT(t_ASSESSMENT.name_error SEPARATOR ', ')) AS msg
|
||||
FROM tmp_Assessment t_ASSESSMENT
|
||||
LEFT JOIN parts.DOG_Lighting_Level LIGHTING_LEVEL ON t_ASSESSMENT.id_lighting_level = LIGHTING_LEVEL.id_lighting_level
|
||||
WHERE
|
||||
ISNULL(t_ASSESSMENT.id_lighting_level)
|
||||
OR ISNULL(LIGHTING_LEVEL.id_lighting_level)
|
||||
OR LIGHTING_LEVEL.active = 0
|
||||
;
|
||||
END IF;
|
||||
-- id_location
|
||||
IF EXISTS (
|
||||
SELECT *
|
||||
FROM tmp_Assessment t_ASSESSMENT
|
||||
LEFT JOIN demo.DOG_Location LOCATION ON t_ASSESSMENT.id_location = LOCATION.id_location
|
||||
WHERE
|
||||
ISNULL(t_ASSESSMENT.id_location)
|
||||
OR ISNULL(LOCATION.id_location)
|
||||
OR LOCATION.active = 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('The following Dog Location Assessment(s) do not have a valid Location: ', GROUP_CONCAT(t_ASSESSMENT.name_error SEPARATOR ', ')) AS msg
|
||||
FROM tmp_Assessment t_ASSESSMENT
|
||||
LEFT JOIN parts.DOG_Location LOCATION ON t_ASSESSMENT.id_location = LOCATION.id_location
|
||||
WHERE
|
||||
ISNULL(t_ASSESSMENT.id_location)
|
||||
OR ISNULL(LOCATION.id_location)
|
||||
OR LOCATION.active = 0
|
||||
;
|
||||
END IF;
|
||||
-- id_user_handler
|
||||
IF EXISTS (
|
||||
SELECT *
|
||||
FROM tmp_Assessment t_ASSESSMENT
|
||||
LEFT JOIN demo.DOG_User USER_HANDLER ON t_ASSESSMENT.id_user_handler = USER_HANDLER.id_user_handler
|
||||
WHERE
|
||||
ISNULL(t_ASSESSMENT.id_user_handler)
|
||||
OR ISNULL(USER_HANDLER.id_user_handler)
|
||||
OR USER_HANDLER.active = 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('The following Dog User_Handler Assessment(s) do not have a valid User_Handler: ', GROUP_CONCAT(t_ASSESSMENT.name_error SEPARATOR ', ')) AS msg
|
||||
FROM tmp_Assessment t_ASSESSMENT
|
||||
LEFT JOIN parts.DOG_User USER_HANDLER ON t_ASSESSMENT.id_user_handler = USER_HANDLER.id_user_handler
|
||||
WHERE
|
||||
ISNULL(t_ASSESSMENT.id_user_handler)
|
||||
OR ISNULL(USER_HANDLER.id_user_handler)
|
||||
OR USER_HANDLER.active = 0
|
||||
;
|
||||
END IF;
|
||||
|
||||
-- Permissions
|
||||
-- Can Create
|
||||
CALL parts.p_dog_calc_user(
|
||||
a_guid
|
||||
, 0 -- get_all_user
|
||||
, 0 -- get_inactive_user
|
||||
, a_id_user -- ids_user
|
||||
, '' -- a_auth0_ids_user
|
||||
, '' -- a_names_user
|
||||
, '' -- a_emails_user
|
||||
, 1 -- a_require_all_id_search_filters_met
|
||||
, 1 -- a_require_any_id_search_filters_met
|
||||
, 0 -- a_require_all_non_id_search_filters_met
|
||||
, 0 -- a_require_any_non_id_search_filters_met
|
||||
, v_id_permission_dog_new -- ids_permission
|
||||
, v_id_access_level_edit -- ids_access_level
|
||||
, 0 -- a_show_errors
|
||||
, 0 -- a_debug
|
||||
);
|
||||
|
||||
SELECT
|
||||
IFNULL(CU_T.has_access, 0)
|
||||
INTO
|
||||
v_can_create
|
||||
FROM parts.DOG_Calc_User_Temp CU_T
|
||||
WHERE CU_T.GUID = a_guid
|
||||
LIMIT 1
|
||||
;
|
||||
|
||||
CALL parts.p_dog_clear_calc_user(
|
||||
a_guid
|
||||
, 0 -- a_debug
|
||||
);
|
||||
|
||||
IF v_can_create = 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 edit Assessments.'
|
||||
)
|
||||
;
|
||||
END IF;
|
||||
|
||||
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_Assessment;
|
||||
END IF;
|
||||
|
||||
DELETE FROM tmp_Assessment;
|
||||
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
|
||||
START TRANSACTION;
|
||||
|
||||
INSERT INTO parts.DOG_Dog_Change_Set (
|
||||
comment
|
||||
, id_user_updated_last_by
|
||||
, updated_last_on
|
||||
)
|
||||
VALUES (
|
||||
a_comment
|
||||
, a_id_user
|
||||
, v_time_start
|
||||
)
|
||||
;
|
||||
|
||||
SET v_id_change_set := LAST_INSERT_ID();
|
||||
|
||||
UPDATE parts.DOG_Assessment ASSESSMENT
|
||||
INNER JOIN tmp_Assessment t_ASSESSMENT
|
||||
ON ASSESSMENT.id_assessment = t_ASSESSMENT.id_assessment
|
||||
AND t_ASSESSMENT.is_new = 0
|
||||
SET
|
||||
ASSESSMENT.id_weather = t_ASSESSMENT.id_weather
|
||||
, ASSESSMENT.id_lighting_level = t_ASSESSMENT.id_lighting_level
|
||||
, ASSESSMENT.id_location = t_ASSESSMENT.id_location
|
||||
, ASSESSMENT.id_user_handler = t_ASSESSMENT.id_user_handler
|
||||
, ASSESSMENT.temperature_celcius = t_ASSESSMENT.temperature_celcius
|
||||
, ASSESSMENT.difficulty_level = t_ASSESSMENT.difficulty_level
|
||||
, ASSESSMENT.notes = t_ASSESSMENT.notes
|
||||
, ASSESSMENT.active = t_ASSESSMENT.active
|
||||
, ASSESSMENT.id_change_set = v_id_change_set
|
||||
;
|
||||
|
||||
INSERT INTO parts.DOG_Assessment (
|
||||
id_weather
|
||||
, id_lighting_level
|
||||
, id_location
|
||||
, id_user_handler
|
||||
, temperature_celcius
|
||||
, difficulty_level
|
||||
, notes
|
||||
, active
|
||||
, id_user_created_by
|
||||
, created_on
|
||||
)
|
||||
SELECT
|
||||
t_ASSESSMENT.id_weather AS id_weather
|
||||
, t_ASSESSMENT.id_lighting_level AS id_lighting_level
|
||||
, t_ASSESSMENT.id_location AS id_location
|
||||
, t_ASSESSMENT.id_user_handler AS id_user_handler
|
||||
, t_ASSESSMENT.temperature_celcius AS temperature_celcius
|
||||
, t_ASSESSMENT.difficulty_level AS difficulty_level
|
||||
, t_ASSESSMENT.notes AS notes
|
||||
, t_ASSESSMENT.active AS active
|
||||
, a_id_user AS created_by
|
||||
, v_time_start AS created_on
|
||||
FROM tmp_Assessment t_ASSESSMENT
|
||||
WHERE
|
||||
t_ASSESSMENT.is_new = 1
|
||||
AND t_ASSESSMENT.active = 1
|
||||
;
|
||||
|
||||
COMMIT;
|
||||
END IF;
|
||||
|
||||
START TRANSACTION;
|
||||
|
||||
DELETE FROM parts.DOG_Assessment_Temp
|
||||
WHERE GUID = a_guid
|
||||
;
|
||||
|
||||
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 t_ERROR
|
||||
INNER JOIN parts.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type
|
||||
;
|
||||
|
||||
IF a_debug = 1 THEN
|
||||
SELECT * FROM tmp_Assessment;
|
||||
END IF;
|
||||
|
||||
DROP TEMPORARY TABLE tmp_Assessment;
|
||||
DROP TEMPORARY TABLE tmp_Msg_Error;
|
||||
|
||||
IF a_debug = 1 THEN
|
||||
CALL parts.p_core_debug_timing_reporting ( v_time_start );
|
||||
END IF;
|
||||
END //
|
||||
DELIMITER ;
|
||||
|
||||
|
||||
|
||||
/*
|
||||
|
||||
'ripplesipplenippletippledipplekipple'
|
||||
DELETE FROM parts.DOG_Assessment WHERE id_assessment > 740;
|
||||
* /
|
||||
delete
|
||||
from parts.DOG_Assessment_Audit
|
||||
where id_assessment > 768
|
||||
;
|
||||
delete
|
||||
from parts.DOG_Assessment
|
||||
where id_assessment > 768
|
||||
;
|
||||
delete
|
||||
from parts.DOG_Assessment_Temp
|
||||
;
|
||||
select
|
||||
*
|
||||
-- COUNT(*)
|
||||
-- delete
|
||||
from parts.DOG_Assessment_Temp
|
||||
;
|
||||
select COUNT(*)
|
||||
from parts.DOG_Assessment_Temp
|
||||
;
|
||||
select
|
||||
*
|
||||
-- COUNT(*)
|
||||
-- delete
|
||||
from parts.DOG_Assessment
|
||||
;
|
||||
select COUNT(*)
|
||||
from parts.DOG_Assessment
|
||||
;
|
||||
|
||||
INSERT INTO parts.DOG_Assessment_Temp (
|
||||
id_assessment
|
||||
, id_dog
|
||||
, id_command
|
||||
, hand_signal_description
|
||||
, notes
|
||||
, active
|
||||
, guid
|
||||
)
|
||||
VALUES (
|
||||
-1 -- id_assessment
|
||||
, 1 -- id_dog
|
||||
, 1 -- id_command
|
||||
, 'Test deez noots' -- hand_signal_description
|
||||
, NULL -- notes
|
||||
, 1 -- active
|
||||
, 'ripplesipplenippletippledipplekipple'
|
||||
);
|
||||
|
||||
CALL parts.p_dog_save_assessment (
|
||||
'nipples'
|
||||
, 'ripplesipplenippletippledipplekipple'
|
||||
, 1
|
||||
, 1
|
||||
);
|
||||
|
||||
|
||||
select
|
||||
*
|
||||
-- COUNT(*)
|
||||
-- delete
|
||||
from parts.DOG_Assessment_Temp
|
||||
;
|
||||
select COUNT(*)
|
||||
from parts.DOG_Assessment_Temp
|
||||
;
|
||||
select
|
||||
*
|
||||
-- COUNT(*)
|
||||
-- delete
|
||||
from parts.DOG_Assessment
|
||||
;
|
||||
select COUNT(*)
|
||||
from parts.DOG_Assessment
|
||||
;
|
||||
|
||||
*/
|
||||
@@ -1,693 +0,0 @@
|
||||
|
||||
USE parts;
|
||||
|
||||
DROP PROCEDURE IF EXISTS parts.p_dog_save_dog_command_link;
|
||||
|
||||
DELIMITER //
|
||||
CREATE PROCEDURE parts.p_dog_save_dog_command_link (
|
||||
IN a_comment VARCHAR(500),
|
||||
IN a_guid BINARY(36),
|
||||
IN a_id_user INT,
|
||||
IN a_debug BIT
|
||||
)
|
||||
BEGIN
|
||||
DECLARE v_can_admin BIT;
|
||||
DECLARE v_can_create BIT;
|
||||
DECLARE v_code_type_error_bad_data VARCHAR(100);
|
||||
DECLARE v_id_access_level_edit INT;
|
||||
DECLARE v_id_change_set INT;
|
||||
DECLARE v_id_permission_dog_new INT;
|
||||
DECLARE v_id_type_error_bad_data 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 (
|
||||
id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT
|
||||
, id_type INT NULL
|
||||
, code VARCHAR(250)
|
||||
, msg TEXT 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 SESSION group_concat_max_len=15000;
|
||||
|
||||
SET v_time_start := CURRENT_TIMESTAMP(6);
|
||||
SET v_code_type_error_bad_data := 'BAD_DATA';
|
||||
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_permission_dog_new := (SELECT PERMISSION.id_permission FROM parts.DOG_Permission PERMISSION WHERE PERMISSION.code = 'DOG_CREATE' LIMIT 1);
|
||||
SET v_id_access_level_edit := (SELECT ACCESS_LEVEL.id_access_level FROM parts.DOG_Access_Level ACCESS_LEVEL WHERE ACCESS_LEVEL.code = 'EDIT' LIMIT 1);
|
||||
|
||||
CALL parts.p_core_validate_guid ( a_guid );
|
||||
|
||||
DROP TABLE IF EXISTS tmp_Dog_Command_Link_Copy;
|
||||
DROP TABLE IF EXISTS tmp_Dog_Command_Link;
|
||||
|
||||
CREATE TEMPORARY TABLE tmp_Dog_Command_Link (
|
||||
id_temp INT
|
||||
, id_link INT
|
||||
, id_dog INT
|
||||
, id_command INT
|
||||
, hand_signal_description TEXT
|
||||
, notes TEXT
|
||||
, active BIT
|
||||
, is_new BIT
|
||||
, name_error VARCHAR(250)
|
||||
);
|
||||
|
||||
CREATE TEMPORARY TABLE tmp_Dog_Command_Link_Copy (
|
||||
id_temp INT
|
||||
, id_link INT
|
||||
, id_dog INT
|
||||
, id_command INT
|
||||
, hand_signal_description TEXT
|
||||
, notes TEXT
|
||||
, active BIT
|
||||
, is_new BIT
|
||||
, name_error 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(250)
|
||||
, msg TEXT NOT NULL
|
||||
);
|
||||
|
||||
|
||||
-- Get data from Temp table
|
||||
INSERT INTO tmp_Dog_Command_Link (
|
||||
id_temp
|
||||
, id_link
|
||||
, id_dog
|
||||
, id_command
|
||||
, hand_signal_description
|
||||
, notes
|
||||
, active
|
||||
, is_new
|
||||
)
|
||||
SELECT
|
||||
DOG_COMMAND_LINK_T.id_temp
|
||||
, COALESCE(DOG_COMMAND_LINK.id_link, DOG_COMMAND_LINK_T.id_link)
|
||||
, COALESCE(
|
||||
DOG_COMMAND_LINK_T.id_dog
|
||||
, DOG_COMMAND_LINK.id_dog
|
||||
) AS id_dog
|
||||
, COALESCE(
|
||||
DOG_COMMAND_LINK_T.id_command
|
||||
, DOG_COMMAND_LINK.id_command
|
||||
) AS id_command
|
||||
/*
|
||||
, NULLIF(
|
||||
COALESCE(
|
||||
DOG_COMMAND_LINK_T.hand_signal_description
|
||||
, DOG_COMMAND_LINK.hand_signal_description
|
||||
)
|
||||
, ''
|
||||
) AS hand_signal_description
|
||||
, NULLIF(
|
||||
COALESCE(
|
||||
DOG_COMMAND_LINK_T.notes
|
||||
, DOG_COMMAND_LINK.notes
|
||||
)
|
||||
, ''
|
||||
) AS notes
|
||||
*/
|
||||
, COALESCE(
|
||||
DOG_COMMAND_LINK_T.hand_signal_description
|
||||
, DOG_COMMAND_LINK.hand_signal_description
|
||||
) AS hand_signal_description
|
||||
, COALESCE(
|
||||
DOG_COMMAND_LINK_T.notes
|
||||
, DOG_COMMAND_LINK.notes
|
||||
) AS notes
|
||||
, COALESCE(DOG_COMMAND_LINK_T.active, 1) AS active
|
||||
, CASE WHEN COALESCE(DOG_COMMAND_LINK.id_link, DOG_COMMAND_LINK_T.id_link, 0) < 1 THEN 1 ELSE 0 END AS is_new
|
||||
FROM parts.DOG_Dog_Command_Link_Temp DOG_COMMAND_LINK_T
|
||||
LEFT JOIN parts.DOG_Dog_Command_Link DOG_COMMAND_LINK
|
||||
ON DOG_COMMAND_LINK_T.id_link = DOG_COMMAND_LINK.id_link
|
||||
OR (
|
||||
DOG_COMMAND_LINK_T.id_dog = DOG_COMMAND_LINK.id_dog
|
||||
AND DOG_COMMAND_LINK_T.id_command = DOG_COMMAND_LINK.id_command
|
||||
AND (
|
||||
DOG_COMMAND_LINK.hand_signal_description IS NULL
|
||||
OR DOG_COMMAND_LINK_T.hand_signal_description <=> DOG_COMMAND_LINK.hand_signal_description
|
||||
)
|
||||
AND (
|
||||
DOG_COMMAND_LINK.notes IS NULL
|
||||
OR DOG_COMMAND_LINK_T.notes <=> DOG_COMMAND_LINK.notes
|
||||
)
|
||||
)
|
||||
WHERE DOG_COMMAND_LINK_T.guid = a_guid
|
||||
;
|
||||
|
||||
IF a_debug = 1 THEN
|
||||
SELECT 'Dog_Command_Link_Temp records';
|
||||
SELECT * FROM tmp_Dog_Command_Link;
|
||||
SELECT COUNT(*) FROM tmp_Dog_Command_Link;
|
||||
END IF;
|
||||
|
||||
-- Error names
|
||||
UPDATE tmp_Dog_Command_Link t_DOG_COMMAND_LINK
|
||||
LEFT JOIN parts.DOG_Dog DOG ON t_DOG_COMMAND_LINK.id_dog = DOG.id_dog
|
||||
LEFT JOIN parts.DOG_Command COMMAND ON t_DOG_COMMAND_LINK.id_command = COMMAND.id_command
|
||||
SET t_DOG_COMMAND_LINK.name_error = CASE WHEN
|
||||
ISNULL(DOG.id_dog)
|
||||
AND ISNULL(COMMAND.id_command)
|
||||
THEN COALESCE(t_DOG_COMMAND_LINK.hand_signal_description, t_DOG_COMMAND_LINK.notes, '(No Dog Command Link)')
|
||||
ELSE CONCAT(
|
||||
COALESCE(DOG.name, t_DOG_COMMAND_LINK.id_dog, '(No Dog)')
|
||||
, ' - '
|
||||
, COALESCE(COMMAND.name, t_DOG_COMMAND_LINK.id_command, '(No Command)')
|
||||
) END
|
||||
;
|
||||
|
||||
IF a_debug = 1 THEN
|
||||
SELECT 'After set name_error';
|
||||
SELECT * FROM tmp_Dog_Command_Link;
|
||||
SELECT COUNT(*) FROM tmp_Dog_Command_Link;
|
||||
END IF;
|
||||
|
||||
/*
|
||||
-- Missing Dog Command Link Ids
|
||||
UPDATE tmp_Dog_Command_Link t_DOG_COMMAND_LINK
|
||||
LEFT JOIN parts.DOG_Dog_Command_Link DOG_COMMAND_LINK
|
||||
-- ON t_DOG_COMMAND_LINK.id_link = DOG_COMMAND_LINK.id_link
|
||||
ON t_DOG_COMMAND_LINK.id_dog = DOG_COMMAND_LINK.id_dog
|
||||
AND t_DOG_COMMAND_LINK.id_command = DOG_COMMAND_LINK.id_command
|
||||
SET
|
||||
t_DOG_COMMAND_LINK.id_link = DOG_COMMAND_LINK.id_link
|
||||
, t_DOG_COMMAND_LINK.is_new = 0
|
||||
WHERE
|
||||
IFNULL(t_DOG_COMMAND_LINK.id_link, 0) < 1
|
||||
AND NOT ISNULL(DOG_COMMAND_LINK.id_link)
|
||||
;
|
||||
|
||||
IF a_debug = 1 THEN
|
||||
SELECT 'After set missing id_link';
|
||||
SELECT * FROM tmp_Dog_Command_Link;
|
||||
SELECT COUNT(*) FROM tmp_Dog_Command_Link;
|
||||
END IF;
|
||||
*/
|
||||
|
||||
-- Validation
|
||||
-- Missing mandatory fields
|
||||
-- id_dog
|
||||
IF EXISTS (
|
||||
SELECT *
|
||||
FROM tmp_Dog_Command_Link t_DOG_COMMAND_LINK
|
||||
LEFT JOIN demo.DOG_Dog DOG ON t_DOG_COMMAND_LINK.id_dog = DOG.id_dog
|
||||
WHERE
|
||||
ISNULL(t_DOG_COMMAND_LINK.id_dog)
|
||||
OR ISNULL(DOG.id_dog)
|
||||
OR DOG.active = 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('The following Dog Command Link(s) do not have a valid Dog: ', GROUP_CONCAT(t_DOG_COMMAND_LINK.name_error SEPARATOR ', ')) AS msg
|
||||
FROM tmp_Dog_Command_Link t_DOG_COMMAND_LINK
|
||||
LEFT JOIN parts.DOG_Dog DOG ON t_DOG_COMMAND_LINK.id_dog = DOG.id_dog
|
||||
WHERE
|
||||
ISNULL(t_DOG_COMMAND_LINK.id_dog)
|
||||
OR ISNULL(DOG.id_dog)
|
||||
OR DOG.active = 0
|
||||
;
|
||||
END IF;
|
||||
-- id_command
|
||||
IF EXISTS (
|
||||
SELECT *
|
||||
FROM tmp_Dog_Command_Link t_DOG_COMMAND_LINK
|
||||
LEFT JOIN demo.DOG_Command COMMAND ON t_DOG_COMMAND_LINK.id_command = COMMAND.id_command
|
||||
WHERE
|
||||
ISNULL(t_DOG_COMMAND_LINK.id_command)
|
||||
OR ISNULL(COMMAND.id_command)
|
||||
OR COMMAND.active = 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('The following Dog Command Link(s) do not have a valid Command: ', GROUP_CONCAT(t_DOG_COMMAND_LINK.name_error SEPARATOR ', ')) AS msg
|
||||
FROM tmp_Dog_Command_Link t_DOG_COMMAND_LINK
|
||||
LEFT JOIN parts.DOG_Command COMMAND ON t_DOG_COMMAND_LINK.id_command = COMMAND.id_command
|
||||
WHERE
|
||||
ISNULL(t_DOG_COMMAND_LINK.id_command)
|
||||
OR ISNULL(COMMAND.id_command)
|
||||
OR COMMAND.active = 0
|
||||
;
|
||||
END IF;
|
||||
|
||||
-- Duplicates
|
||||
INSERT INTO tmp_Dog_Command_Link_Copy (
|
||||
id_temp
|
||||
, id_link
|
||||
, id_dog
|
||||
, id_command
|
||||
, hand_signal_description
|
||||
, notes
|
||||
, active
|
||||
, is_new
|
||||
, name_error
|
||||
)
|
||||
SELECT
|
||||
t_DOG_COMMAND_LINK.id_temp
|
||||
, t_DOG_COMMAND_LINK.id_link
|
||||
, t_DOG_COMMAND_LINK.id_dog
|
||||
, t_DOG_COMMAND_LINK.id_command
|
||||
, t_DOG_COMMAND_LINK.hand_signal_description
|
||||
, t_DOG_COMMAND_LINK.notes
|
||||
, t_DOG_COMMAND_LINK.active
|
||||
, t_DOG_COMMAND_LINK.is_new
|
||||
, t_DOG_COMMAND_LINK.name_error
|
||||
FROM tmp_Dog_Command_Link t_DOG_COMMAND_LINK
|
||||
;
|
||||
|
||||
IF a_debug = 1 THEN
|
||||
SELECT COUNT(*) AS Count_Temp_Link FROM tmp_Dog_Command_Link;
|
||||
SELECT COUNT(*) AS Count_Temp_Link_Copy FROM tmp_Dog_Command_Link_Copy;
|
||||
|
||||
WITH
|
||||
Combined_Links AS (
|
||||
SELECT
|
||||
DOG_COMMAND_LINK.id_link
|
||||
, DOG_COMMAND_LINK.id_dog
|
||||
, DOG_COMMAND_LINK.id_command
|
||||
, IFNULL(
|
||||
t_DOG_COMMAND_LINK_COPY.name_error
|
||||
, CONCAT(
|
||||
COALESCE(DOG.name, t_DOG_COMMAND_LINK_COPY.id_dog, '(No Dog)')
|
||||
, ' - '
|
||||
, COALESCE(COMMAND.name, t_DOG_COMMAND_LINK_COPY.id_command, '(No Command)')
|
||||
)
|
||||
) AS name_error
|
||||
FROM parts.DOG_Dog_Command_Link DOG_COMMAND_LINK
|
||||
LEFT JOIN tmp_Dog_Command_Link_Copy t_DOG_COMMAND_LINK_COPY
|
||||
ON DOG_COMMAND_LINK.id_dog = t_DOG_COMMAND_LINK_COPY.id_dog
|
||||
AND DOG_COMMAND_LINK.id_command = t_DOG_COMMAND_LINK_COPY.id_command
|
||||
INNER JOIN parts.DOG_Dog DOG ON DOG_COMMAND_LINK.id_dog = DOG.id_dog
|
||||
INNER JOIN parts.DOG_Command COMMAND ON DOG_COMMAND_LINK.id_command = COMMAND.id_command
|
||||
WHERE t_DOG_COMMAND_LINK_COPY.is_new = 1
|
||||
UNION
|
||||
SELECT
|
||||
t_DOG_COMMAND_LINK.id_link
|
||||
, t_DOG_COMMAND_LINK.id_dog
|
||||
, t_DOG_COMMAND_LINK.id_command
|
||||
, t_DOG_COMMAND_LINK.name_error
|
||||
FROM tmp_Dog_Command_Link t_DOG_COMMAND_LINK
|
||||
)
|
||||
, Duplicate_Link_Row_Numbers AS (
|
||||
SELECT
|
||||
COMBINED_LINK.id_link
|
||||
, COMBINED_LINK.id_dog
|
||||
, COMBINED_LINK.id_command
|
||||
, COMBINED_LINK.name_error
|
||||
, ROW_NUMBER() OVER (PARTITION BY COMBINED_LINK.id_dog, COMBINED_LINK.id_command ORDER BY COMBINED_LINK.name_error ASC) AS index_link_as_duplicate
|
||||
FROM Combined_Links COMBINED_LINK
|
||||
)
|
||||
SELECT *
|
||||
FROM Duplicate_Link_Row_Numbers;
|
||||
END IF;
|
||||
|
||||
IF EXISTS (
|
||||
WITH
|
||||
Combined_Links AS (
|
||||
SELECT
|
||||
DOG_COMMAND_LINK.id_link
|
||||
, DOG_COMMAND_LINK.id_dog
|
||||
, DOG_COMMAND_LINK.id_command
|
||||
, IFNULL(
|
||||
t_DOG_COMMAND_LINK_COPY.name_error
|
||||
, CONCAT(
|
||||
COALESCE(DOG.name, t_DOG_COMMAND_LINK_COPY.id_dog, '(No Dog)')
|
||||
, ' - '
|
||||
, COALESCE(COMMAND.name, t_DOG_COMMAND_LINK_COPY.id_command, '(No Command)')
|
||||
)
|
||||
) AS name_error
|
||||
FROM parts.DOG_Dog_Command_Link DOG_COMMAND_LINK
|
||||
LEFT JOIN tmp_Dog_Command_Link_Copy t_DOG_COMMAND_LINK_COPY
|
||||
ON DOG_COMMAND_LINK.id_dog = t_DOG_COMMAND_LINK_COPY.id_dog
|
||||
AND DOG_COMMAND_LINK.id_command = t_DOG_COMMAND_LINK_COPY.id_command
|
||||
INNER JOIN parts.DOG_Dog DOG ON DOG_COMMAND_LINK.id_dog = DOG.id_dog
|
||||
INNER JOIN parts.DOG_Command COMMAND ON DOG_COMMAND_LINK.id_command = COMMAND.id_command
|
||||
WHERE t_DOG_COMMAND_LINK_COPY.is_new = 1
|
||||
UNION
|
||||
SELECT
|
||||
t_DOG_COMMAND_LINK.id_link
|
||||
, t_DOG_COMMAND_LINK.id_dog
|
||||
, t_DOG_COMMAND_LINK.id_command
|
||||
, t_DOG_COMMAND_LINK.name_error
|
||||
FROM tmp_Dog_Command_Link t_DOG_COMMAND_LINK
|
||||
)
|
||||
, Duplicate_Link_Row_Numbers AS (
|
||||
SELECT
|
||||
COMBINED_LINK.id_link
|
||||
, COMBINED_LINK.id_dog
|
||||
, COMBINED_LINK.id_command
|
||||
, COMBINED_LINK.name_error
|
||||
, ROW_NUMBER() OVER (PARTITION BY COMBINED_LINK.id_dog, COMBINED_LINK.id_command ORDER BY COMBINED_LINK.name_error ASC) AS index_link_as_duplicate
|
||||
FROM Combined_Links COMBINED_LINK
|
||||
)
|
||||
SELECT *
|
||||
FROM Duplicate_Link_Row_Numbers DUPLICATE_LINK
|
||||
WHERE DUPLICATE_LINK.index_link_as_duplicate > 1
|
||||
GROUP BY DUPLICATE_LINK.id_dog, DUPLICATE_LINK.id_command
|
||||
) THEN
|
||||
INSERT INTO tmp_Msg_Error (
|
||||
id_type
|
||||
, code
|
||||
, msg
|
||||
)
|
||||
WITH
|
||||
Combined_Links AS (
|
||||
SELECT
|
||||
DOG_COMMAND_LINK.id_link
|
||||
, DOG_COMMAND_LINK.id_dog
|
||||
, DOG_COMMAND_LINK.id_command
|
||||
, IFNULL(
|
||||
t_DOG_COMMAND_LINK_COPY.name_error
|
||||
, CONCAT(
|
||||
COALESCE(DOG.name, t_DOG_COMMAND_LINK_COPY.id_dog, '(No Dog)')
|
||||
, ' - '
|
||||
, COALESCE(COMMAND.name, t_DOG_COMMAND_LINK_COPY.id_command, '(No Command)')
|
||||
)
|
||||
) AS name_error
|
||||
FROM parts.DOG_Dog_Command_Link DOG_COMMAND_LINK
|
||||
LEFT JOIN tmp_Dog_Command_Link_Copy t_DOG_COMMAND_LINK_COPY
|
||||
ON DOG_COMMAND_LINK.id_dog = t_DOG_COMMAND_LINK_COPY.id_dog
|
||||
AND DOG_COMMAND_LINK.id_command = t_DOG_COMMAND_LINK_COPY.id_command
|
||||
INNER JOIN parts.DOG_Dog DOG ON DOG_COMMAND_LINK.id_dog = DOG.id_dog
|
||||
INNER JOIN parts.DOG_Command COMMAND ON DOG_COMMAND_LINK.id_command = COMMAND.id_command
|
||||
WHERE t_DOG_COMMAND_LINK_COPY.is_new = 1
|
||||
UNION
|
||||
SELECT
|
||||
t_DOG_COMMAND_LINK.id_link
|
||||
, t_DOG_COMMAND_LINK.id_dog
|
||||
, t_DOG_COMMAND_LINK.id_command
|
||||
, t_DOG_COMMAND_LINK.name_error
|
||||
FROM tmp_Dog_Command_Link t_DOG_COMMAND_LINK
|
||||
)
|
||||
, Duplicate_Link_Row_Numbers AS (
|
||||
SELECT
|
||||
COMBINED_LINK.id_link
|
||||
, COMBINED_LINK.id_dog
|
||||
, COMBINED_LINK.id_command
|
||||
, COMBINED_LINK.name_error
|
||||
, ROW_NUMBER() OVER (PARTITION BY COMBINED_LINK.id_dog, COMBINED_LINK.id_command ORDER BY COMBINED_LINK.name_error ASC) AS index_link_as_duplicate
|
||||
FROM Combined_Links COMBINED_LINK
|
||||
)
|
||||
SELECT
|
||||
v_id_type_error_bad_data
|
||||
, v_code_type_error_bad_data
|
||||
, CONCAT('Attempt to create duplicate or overwrite existing Dog Command Links on: ', GROUP_CONCAT(DUPLICATE_LINK.name_error SEPARATOR ', ')) AS msg
|
||||
FROM Duplicate_Link_Row_Numbers DUPLICATE_LINK
|
||||
WHERE DUPLICATE_LINK.index_link_as_duplicate > 1
|
||||
GROUP BY
|
||||
DUPLICATE_LINK.id_dog
|
||||
, DUPLICATE_LINK.id_command
|
||||
;
|
||||
END IF;
|
||||
|
||||
|
||||
-- Permissions
|
||||
-- Can Create
|
||||
CALL parts.p_dog_calc_user(
|
||||
a_guid
|
||||
, 0 -- get_all_user
|
||||
, 0 -- get_inactive_user
|
||||
, a_id_user -- ids_user
|
||||
, '' -- a_auth0_ids_user
|
||||
, '' -- a_names_user
|
||||
, '' -- a_emails_user
|
||||
, 1 -- a_require_all_id_search_filters_met
|
||||
, 1 -- a_require_any_id_search_filters_met
|
||||
, 0 -- a_require_all_non_id_search_filters_met
|
||||
, 0 -- a_require_any_non_id_search_filters_met
|
||||
, v_id_permission_dog_new -- ids_permission
|
||||
, v_id_access_level_edit -- ids_access_level
|
||||
, 0 -- a_show_errors
|
||||
, 0 -- a_debug
|
||||
);
|
||||
|
||||
SELECT
|
||||
IFNULL(CU_T.has_access, 0)
|
||||
INTO
|
||||
v_can_create
|
||||
FROM parts.DOG_Calc_User_Temp CU_T
|
||||
WHERE CU_T.GUID = a_guid
|
||||
LIMIT 1
|
||||
;
|
||||
|
||||
CALL parts.p_dog_clear_calc_user(
|
||||
a_guid
|
||||
, 0 -- a_debug
|
||||
);
|
||||
|
||||
IF v_can_create = 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 edit Commands.'
|
||||
)
|
||||
;
|
||||
END IF;
|
||||
|
||||
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_Command_Link;
|
||||
END IF;
|
||||
|
||||
DELETE FROM tmp_Dog_Command_Link;
|
||||
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
|
||||
START TRANSACTION;
|
||||
|
||||
INSERT INTO parts.DOG_Dog_Change_Set (
|
||||
comment
|
||||
, id_user_updated_last_by
|
||||
, updated_last_on
|
||||
)
|
||||
VALUES (
|
||||
a_comment
|
||||
, a_id_user
|
||||
, v_time_start
|
||||
)
|
||||
;
|
||||
|
||||
SET v_id_change_set := LAST_INSERT_ID();
|
||||
|
||||
UPDATE parts.DOG_Dog_Command_Link DOG_COMMAND_LINK
|
||||
INNER JOIN tmp_Dog_Command_Link t_DOG_COMMAND_LINK
|
||||
ON DOG_COMMAND_LINK.id_link = t_DOG_COMMAND_LINK.id_link
|
||||
AND t_DOG_COMMAND_LINK.is_new = 0
|
||||
SET
|
||||
DOG_COMMAND_LINK.id_dog = t_DOG_COMMAND_LINK.id_dog
|
||||
, DOG_COMMAND_LINK.id_command = t_DOG_COMMAND_LINK.id_command
|
||||
, DOG_COMMAND_LINK.hand_signal_description = t_DOG_COMMAND_LINK.hand_signal_description
|
||||
, DOG_COMMAND_LINK.notes = t_DOG_COMMAND_LINK.notes
|
||||
, DOG_COMMAND_LINK.active = t_DOG_COMMAND_LINK.active
|
||||
, DOG_COMMAND_LINK.id_change_set = v_id_change_set
|
||||
;
|
||||
|
||||
INSERT INTO parts.DOG_Dog_Command_Link (
|
||||
id_dog
|
||||
, id_command
|
||||
, hand_signal_description
|
||||
, notes
|
||||
, active
|
||||
, id_user_created_by
|
||||
, created_on
|
||||
)
|
||||
SELECT
|
||||
t_DOG_COMMAND_LINK.id_dog AS id_dog
|
||||
, t_DOG_COMMAND_LINK.id_command AS id_command
|
||||
, t_DOG_COMMAND_LINK.hand_signal_description AS hand_signal_description
|
||||
, t_DOG_COMMAND_LINK.notes AS notes
|
||||
, t_DOG_COMMAND_LINK.active AS active
|
||||
, a_id_user AS created_by
|
||||
, v_time_start AS created_on
|
||||
FROM tmp_Dog_Command_Link t_DOG_COMMAND_LINK
|
||||
WHERE
|
||||
t_DOG_COMMAND_LINK.is_new = 1
|
||||
AND t_DOG_COMMAND_LINK.active = 1
|
||||
;
|
||||
|
||||
COMMIT;
|
||||
END IF;
|
||||
|
||||
START TRANSACTION;
|
||||
|
||||
DELETE FROM parts.DOG_Dog_Command_Link_Temp
|
||||
WHERE GUID = a_guid
|
||||
;
|
||||
|
||||
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 t_ERROR
|
||||
INNER JOIN parts.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type
|
||||
;
|
||||
|
||||
IF a_debug = 1 THEN
|
||||
SELECT * FROM tmp_Dog_Command_Link;
|
||||
END IF;
|
||||
|
||||
DROP TEMPORARY TABLE tmp_Dog_Command_Link;
|
||||
DROP TEMPORARY TABLE tmp_Msg_Error;
|
||||
|
||||
IF a_debug = 1 THEN
|
||||
CALL parts.p_core_debug_timing_reporting ( v_time_start );
|
||||
END IF;
|
||||
END //
|
||||
DELIMITER ;
|
||||
|
||||
|
||||
|
||||
/*
|
||||
|
||||
'ripplesipplenippletippledipplekipple'
|
||||
DELETE FROM parts.DOG_Dog_Command_Link WHERE id_link > 740;
|
||||
* /
|
||||
delete
|
||||
from parts.DOG_Dog_Command_Link_Audit
|
||||
where id_link > 768
|
||||
;
|
||||
delete
|
||||
from parts.DOG_Dog_Command_Link
|
||||
where id_link > 768
|
||||
;
|
||||
delete
|
||||
from parts.DOG_Dog_Command_Link_Temp
|
||||
;
|
||||
select
|
||||
*
|
||||
-- COUNT(*)
|
||||
-- delete
|
||||
from parts.DOG_Dog_Command_Link_Temp
|
||||
;
|
||||
select COUNT(*)
|
||||
from parts.DOG_Dog_Command_Link_Temp
|
||||
;
|
||||
select
|
||||
*
|
||||
-- COUNT(*)
|
||||
-- delete
|
||||
from parts.DOG_Dog_Command_Link
|
||||
;
|
||||
select COUNT(*)
|
||||
from parts.DOG_Dog_Command_Link
|
||||
;
|
||||
|
||||
INSERT INTO parts.DOG_Dog_Command_Link_Temp (
|
||||
id_link
|
||||
, id_dog
|
||||
, id_command
|
||||
, hand_signal_description
|
||||
, notes
|
||||
, active
|
||||
, guid
|
||||
)
|
||||
VALUES (
|
||||
-1 -- id_link
|
||||
, 1 -- id_dog
|
||||
, 1 -- id_command
|
||||
, 'Test deez noots' -- hand_signal_description
|
||||
, NULL -- notes
|
||||
, 1 -- active
|
||||
, 'ripplesipplenippletippledipplekipple'
|
||||
);
|
||||
|
||||
CALL parts.p_dog_save_dog_command_link (
|
||||
'nipples'
|
||||
, 'ripplesipplenippletippledipplekipple'
|
||||
, 1
|
||||
, 1
|
||||
);
|
||||
|
||||
|
||||
select
|
||||
*
|
||||
-- COUNT(*)
|
||||
-- delete
|
||||
from parts.DOG_Dog_Command_Link_Temp
|
||||
;
|
||||
select COUNT(*)
|
||||
from parts.DOG_Dog_Command_Link_Temp
|
||||
;
|
||||
select
|
||||
*
|
||||
-- COUNT(*)
|
||||
-- delete
|
||||
from parts.DOG_Dog_Command_Link
|
||||
;
|
||||
select COUNT(*)
|
||||
from parts.DOG_Dog_Command_Link
|
||||
;
|
||||
|
||||
*/
|
||||
672
static/MySQL/71322_p_dog_save_distraction.sql
Normal file
672
static/MySQL/71322_p_dog_save_distraction.sql
Normal file
@@ -0,0 +1,672 @@
|
||||
|
||||
USE parts;
|
||||
|
||||
DROP PROCEDURE IF EXISTS parts.p_dog_save_distraction;
|
||||
|
||||
DELIMITER //
|
||||
CREATE PROCEDURE parts.p_dog_save_distraction (
|
||||
IN a_comment VARCHAR(500),
|
||||
IN a_guid BINARY(36),
|
||||
IN a_id_user INT,
|
||||
IN a_debug BIT
|
||||
)
|
||||
BEGIN
|
||||
DECLARE v_can_admin BIT;
|
||||
DECLARE v_can_create BIT;
|
||||
DECLARE v_code_type_error_bad_data VARCHAR(100);
|
||||
DECLARE v_id_access_level_edit INT;
|
||||
DECLARE v_id_change_set INT;
|
||||
DECLARE v_id_permission_dog_new INT;
|
||||
DECLARE v_id_type_error_bad_data 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 (
|
||||
id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT
|
||||
, id_type INT NULL
|
||||
, code VARCHAR(250)
|
||||
, msg TEXT 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 SESSION group_concat_max_len=15000;
|
||||
|
||||
SET v_time_start := CURRENT_TIMESTAMP(6);
|
||||
SET v_code_type_error_bad_data := 'BAD_DATA';
|
||||
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_permission_dog_new := (SELECT PERMISSION.id_permission FROM parts.DOG_Permission PERMISSION WHERE PERMISSION.code = 'DOG_CREATE' LIMIT 1);
|
||||
SET v_id_access_level_edit := (SELECT ACCESS_LEVEL.id_access_level FROM parts.DOG_Access_Level ACCESS_LEVEL WHERE ACCESS_LEVEL.code = 'EDIT' LIMIT 1);
|
||||
|
||||
CALL parts.p_core_validate_guid ( a_guid );
|
||||
|
||||
DROP TABLE IF EXISTS tmp_Distraction_Copy;
|
||||
DROP TABLE IF EXISTS tmp_Distraction;
|
||||
|
||||
CREATE TEMPORARY TABLE tmp_Distraction (
|
||||
id_temp INT
|
||||
, id_distraction INT
|
||||
, id_assessment INT
|
||||
, id_distraction_type INT
|
||||
, id_intensity_level_emotional INT
|
||||
, id_intensity_level_scent INT
|
||||
, id_intensity_level_sight INT
|
||||
, id_intensity_level_sound INT
|
||||
, id_intensity_level_touch INT
|
||||
, quantity INT
|
||||
, proximity_metres FLOAT
|
||||
, notes TEXT
|
||||
, active BIT
|
||||
, is_new BIT
|
||||
, name_error VARCHAR(250)
|
||||
);
|
||||
|
||||
CREATE TEMPORARY TABLE tmp_Distraction_Copy (
|
||||
id_temp INT
|
||||
, id_distraction INT
|
||||
, id_assessment INT
|
||||
, id_distraction_type INT
|
||||
, id_intensity_level_emotional INT
|
||||
, id_intensity_level_scent INT
|
||||
, id_intensity_level_sight INT
|
||||
, id_intensity_level_sound INT
|
||||
, id_intensity_level_touch INT
|
||||
, quantity INT
|
||||
, proximity_metres FLOAT
|
||||
, notes TEXT
|
||||
, active BIT
|
||||
, is_new BIT
|
||||
, name_error 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(250)
|
||||
, msg TEXT NOT NULL
|
||||
);
|
||||
|
||||
|
||||
-- Get data from Temp table
|
||||
INSERT INTO tmp_Distraction (
|
||||
id_temp
|
||||
, id_distraction
|
||||
, id_assessment
|
||||
, id_distraction_type
|
||||
, id_intensity_level_emotional
|
||||
, id_intensity_level_scent
|
||||
, id_intensity_level_sight
|
||||
, id_intensity_level_sound
|
||||
, id_intensity_level_touch
|
||||
, quantity
|
||||
, proximity_metres
|
||||
, notes
|
||||
, active
|
||||
, is_new
|
||||
)
|
||||
SELECT
|
||||
DISTRACTION_T.id_temp
|
||||
, DISTRACTION_T.id_distraction
|
||||
, COALESCE(
|
||||
DISTRACTION_T.id_assessment
|
||||
, DISTRACTION.id_assessment
|
||||
) AS id_assessment
|
||||
, COALESCE(
|
||||
DISTRACTION_T.id_distraction_type
|
||||
, DISTRACTION.id_distraction_type
|
||||
) AS id_distraction_type
|
||||
, COALESCE(
|
||||
DISTRACTION_T.id_intensity_level_emotional
|
||||
, DISTRACTION.id_intensity_level_emotional
|
||||
) AS id_intensity_level_emotional
|
||||
, COALESCE(
|
||||
DISTRACTION_T.id_intensity_level_scent
|
||||
, DISTRACTION.id_intensity_level_scent
|
||||
) AS id_intensity_level_scent
|
||||
, COALESCE(
|
||||
DISTRACTION_T.id_intensity_level_sight
|
||||
, DISTRACTION.id_intensity_level_sight
|
||||
) AS id_intensity_level_sight
|
||||
, COALESCE(
|
||||
DISTRACTION_T.id_intensity_level_sound
|
||||
, DISTRACTION.id_intensity_level_sound
|
||||
) AS id_intensity_level_sound
|
||||
, COALESCE(
|
||||
DISTRACTION_T.id_intensity_level_touch
|
||||
, DISTRACTION.id_intensity_level_touch
|
||||
) AS id_intensity_level_touch
|
||||
, DISTRACTION_T.quantity
|
||||
, DISTRACTION_T.proximity_metres
|
||||
, DISTRACTION_T.notes
|
||||
, COALESCE(DISTRACTION_T.active, 1) AS active
|
||||
, CASE WHEN COALESCE(DISTRACTION_T.id_distraction, 0) < 1 THEN 1 ELSE 0 END AS is_new
|
||||
FROM parts.DOG_Distraction_Temp DISTRACTION_T
|
||||
LEFT JOIN parts.DOG_Distraction DISTRACTION ON DISTRACTION_T.id_distraction = DISTRACTION.id_distraction
|
||||
WHERE DISTRACTION_T.guid = a_guid
|
||||
;
|
||||
|
||||
IF a_debug = 1 THEN
|
||||
SELECT 'Distraction_Temp records';
|
||||
SELECT * FROM tmp_Distraction;
|
||||
SELECT COUNT(*) FROM tmp_Distraction;
|
||||
END IF;
|
||||
|
||||
-- Error names
|
||||
UPDATE tmp_Distraction t_DISTRACTION
|
||||
LEFT JOIN parts.DOG_Distraction_Type DISTRACTION_TYPE ON t_DISTRACTION.id_distraction_type = DISTRACTION_TYPE.id_type
|
||||
LEFT JOIN parts.DOG_Distraction_Intensity_Level DISTRACTION_INTENSITY_LEVEL_EMOTIONAL ON t_DISTRACTION.id_intensity_level_emotional = DISTRACTION_INTENSITY_LEVEL_EMOTIONAL.id_intensity_level
|
||||
LEFT JOIN parts.DOG_Distraction_Intensity_Level DISTRACTION_INTENSITY_LEVEL_SCENT ON t_DISTRACTION.id_intensity_level_scent = DISTRACTION_INTENSITY_LEVEL_SCENT.id_intensity_level
|
||||
LEFT JOIN parts.DOG_Distraction_Intensity_Level DISTRACTION_INTENSITY_LEVEL_SIGHT ON t_DISTRACTION.id_intensity_level_sight = DISTRACTION_INTENSITY_LEVEL_SIGHT.id_intensity_level
|
||||
LEFT JOIN parts.DOG_Distraction_Intensity_Level DISTRACTION_INTENSITY_LEVEL_SOUND ON t_DISTRACTION.id_intensity_level_sound = DISTRACTION_INTENSITY_LEVEL_SOUND.id_intensity_level
|
||||
LEFT JOIN parts.DOG_Distraction_Intensity_Level DISTRACTION_INTENSITY_LEVEL_TOUCH ON t_DISTRACTION.id_intensity_level_touch = DISTRACTION_INTENSITY_LEVEL_TOUCH.id_intensity_level
|
||||
SET t_DISTRACTION.name_error = CONCAT(
|
||||
/*
|
||||
CONVERT(COALESCE(t_DISTRACTION.created_on, DISTRACTION.created_on, v_time_start), CHAR)
|
||||
, CASE WHEN t_DISTRACTION.notes IS NOT NULL THEN CONCAT(' - ', t_DISTRACTION.notes) ELSE '' END
|
||||
*/
|
||||
COALESCE(DISTRACTION_TYPE.name, '(No Distraction Type)')
|
||||
, ' - '
|
||||
, COALESCE(DISTRACTION_INTENSITY_LEVEL_EMOTIONAL.name, '(No Distraction Intensity Level Emotional)')
|
||||
, ' - '
|
||||
, COALESCE(DISTRACTION_INTENSITY_LEVEL_SCENT.name, '(No Distraction Intensity Level Scent)')
|
||||
, ' - '
|
||||
, COALESCE(DISTRACTION_INTENSITY_LEVEL_SCENT.name, '(No Distraction Intensity Level Sight)')
|
||||
, ' - '
|
||||
, COALESCE(DISTRACTION_INTENSITY_LEVEL_SCENT.name, '(No Distraction Intensity Level Sound)')
|
||||
, ' - '
|
||||
, COALESCE(DISTRACTION_INTENSITY_LEVEL_SCENT.name, '(No Distraction Intensity Level Touch)')
|
||||
, ' - x'
|
||||
, CONVERT(COALESCE(t_ASSESSMENT.quantity, 0), CHAR)
|
||||
)
|
||||
;
|
||||
|
||||
IF a_debug = 1 THEN
|
||||
SELECT 'After set name_error';
|
||||
SELECT * FROM tmp_Distraction;
|
||||
SELECT COUNT(*) FROM tmp_Distraction;
|
||||
END IF;
|
||||
|
||||
|
||||
-- Validation
|
||||
-- Missing mandatory fields
|
||||
-- id_assessment
|
||||
IF EXISTS (
|
||||
SELECT *
|
||||
FROM tmp_Distraction t_DISTRACTION
|
||||
LEFT JOIN demo.DOG_Assessment ASSESSMENT ON t_DISTRACTION.id_assessment = ASSESSMENT.id_assessment
|
||||
WHERE
|
||||
ISNULL(t_DISTRACTION.id_assessment)
|
||||
OR ISNULL(ASSESSMENT.id_assessment)
|
||||
OR ASSESSMENT.active = 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('The following Dog Assessment Distraction(s) do not have a valid Assessment: ', GROUP_CONCAT(t_DISTRACTION.name_error SEPARATOR ', ')) AS msg
|
||||
FROM tmp_Distraction t_DISTRACTION
|
||||
LEFT JOIN parts.DOG_Assessment ASSESSMENT ON t_DISTRACTION.id_assessment = ASSESSMENT.id_assessment
|
||||
WHERE
|
||||
ISNULL(t_DISTRACTION.id_assessment)
|
||||
OR ISNULL(ASSESSMENT.id_assessment)
|
||||
OR ASSESSMENT.active = 0
|
||||
;
|
||||
END IF;
|
||||
-- id_distraction_type
|
||||
IF EXISTS (
|
||||
SELECT *
|
||||
FROM tmp_Distraction t_DISTRACTION
|
||||
LEFT JOIN demo.DOG_Distraction_Type DISTRACTION_TYPE ON t_DISTRACTION.id_distraction_type = DISTRACTION_TYPE.id_distraction_type
|
||||
WHERE
|
||||
ISNULL(t_DISTRACTION.id_distraction_type)
|
||||
OR ISNULL(DISTRACTION_TYPE.id_distraction_type)
|
||||
OR DISTRACTION_TYPE.active = 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('The following Dog Distraction_Type Distraction(s) do not have a valid Distraction_Type: ', GROUP_CONCAT(t_DISTRACTION.name_error SEPARATOR ', ')) AS msg
|
||||
FROM tmp_Distraction t_DISTRACTION
|
||||
LEFT JOIN parts.DOG_Distraction_Type DISTRACTION_TYPE ON t_DISTRACTION.id_distraction_type = DISTRACTION_TYPE.id_distraction_type
|
||||
WHERE
|
||||
ISNULL(t_DISTRACTION.id_distraction_type)
|
||||
OR ISNULL(DISTRACTION_TYPE.id_distraction_type)
|
||||
OR DISTRACTION_TYPE.active = 0
|
||||
;
|
||||
END IF;
|
||||
-- id_intensity_level_emotional
|
||||
IF EXISTS (
|
||||
SELECT *
|
||||
FROM tmp_Distraction t_DISTRACTION
|
||||
LEFT JOIN demo.DOG_Distraction_Intensity_Level DISTRACTION_INTENSITY_LEVEL_EMOTIONAL ON t_DISTRACTION.id_intensity_level_emotional = DISTRACTION_INTENSITY_LEVEL_EMOTIONAL.id_intensity_level_emotional
|
||||
WHERE
|
||||
ISNULL(t_DISTRACTION.id_intensity_level_emotional)
|
||||
OR ISNULL(DISTRACTION_INTENSITY_LEVEL_EMOTIONAL.id_intensity_level_emotional)
|
||||
OR DISTRACTION_INTENSITY_LEVEL_EMOTIONAL.active = 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('The following Distraction(s) do not have a valid Distraction_Intensity_Level_Emotional: ', GROUP_CONCAT(t_DISTRACTION.name_error SEPARATOR ', ')) AS msg
|
||||
FROM tmp_Distraction t_DISTRACTION
|
||||
LEFT JOIN parts.DOG_Distraction_Intensity_Level DISTRACTION_INTENSITY_LEVEL_EMOTIONAL ON t_DISTRACTION.id_intensity_level_emotional = DISTRACTION_INTENSITY_LEVEL_EMOTIONAL.id_intensity_level_emotional
|
||||
WHERE
|
||||
ISNULL(t_DISTRACTION.id_intensity_level_emotional)
|
||||
OR ISNULL(DISTRACTION_INTENSITY_LEVEL_EMOTIONAL.id_intensity_level_emotional)
|
||||
OR DISTRACTION_INTENSITY_LEVEL_EMOTIONAL.active = 0
|
||||
;
|
||||
END IF;
|
||||
-- id_intensity_level_scent
|
||||
IF EXISTS (
|
||||
SELECT *
|
||||
FROM tmp_Distraction t_DISTRACTION
|
||||
LEFT JOIN demo.DOG_Distraction_Intensity_Level DISTRACTION_INTENSITY_LEVEL_SCENT ON t_DISTRACTION.id_intensity_level_scent = DISTRACTION_INTENSITY_LEVEL_SCENT.id_intensity_level
|
||||
WHERE
|
||||
ISNULL(t_DISTRACTION.id_intensity_level_scent)
|
||||
OR ISNULL(DISTRACTION_INTENSITY_LEVEL_SCENT.id_intensity_level_scent)
|
||||
OR DISTRACTION_INTENSITY_LEVEL_SCENT.active = 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('The following Distraction(s) do not have a valid Intensity Level Scent: ', GROUP_CONCAT(t_DISTRACTION.name_error SEPARATOR ', ')) AS msg
|
||||
FROM tmp_Distraction t_DISTRACTION
|
||||
LEFT JOIN parts.DOG_Distraction_Intensity_Level DISTRACTION_INTENSITY_LEVEL_SCENT ON t_DISTRACTION.id_intensity_level_scent = DISTRACTION_INTENSITY_LEVEL_SCENT.id_intensity_level
|
||||
WHERE
|
||||
ISNULL(t_DISTRACTION.id_intensity_level_scent)
|
||||
OR ISNULL(DISTRACTION_INTENSITY_LEVEL_SCENT.id_intensity_level_scent)
|
||||
OR DISTRACTION_INTENSITY_LEVEL_SCENT.active = 0
|
||||
;
|
||||
END IF;
|
||||
-- id_intensity_level_sight
|
||||
IF EXISTS (
|
||||
SELECT *
|
||||
FROM tmp_Distraction t_DISTRACTION
|
||||
LEFT JOIN demo.DOG_Distraction_Intensity_Level DISTRACTION_INTENSITY_LEVEL_SIGHT ON t_DISTRACTION.id_intensity_level_sight = DISTRACTION_INTENSITY_LEVEL_SIGHT.id_intensity_level
|
||||
WHERE
|
||||
ISNULL(t_DISTRACTION.id_intensity_level_sight)
|
||||
OR ISNULL(DISTRACTION_INTENSITY_LEVEL_SIGHT.id_intensity_level_sight)
|
||||
OR DISTRACTION_INTENSITY_LEVEL_SIGHT.active = 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('The following Distraction(s) do not have a valid Intensity Level Sight: ', GROUP_CONCAT(t_DISTRACTION.name_error SEPARATOR ', ')) AS msg
|
||||
FROM tmp_Distraction t_DISTRACTION
|
||||
LEFT JOIN parts.DOG_Distraction_Intensity_Level DISTRACTION_INTENSITY_LEVEL_SIGHT ON t_DISTRACTION.id_intensity_level_sight = DISTRACTION_INTENSITY_LEVEL_SIGHT.id_intensity_level
|
||||
WHERE
|
||||
ISNULL(t_DISTRACTION.id_intensity_level_sight)
|
||||
OR ISNULL(DISTRACTION_INTENSITY_LEVEL_SIGHT.id_intensity_level_sight)
|
||||
OR DISTRACTION_INTENSITY_LEVEL_SIGHT.active = 0
|
||||
;
|
||||
END IF;
|
||||
-- id_intensity_level_sound
|
||||
IF EXISTS (
|
||||
SELECT *
|
||||
FROM tmp_Distraction t_DISTRACTION
|
||||
LEFT JOIN demo.DOG_Distraction_Intensity_Level DISTRACTION_INTENSITY_LEVEL_SOUND ON t_DISTRACTION.id_intensity_level_sound = DISTRACTION_INTENSITY_LEVEL_SOUND.id_intensity_level
|
||||
WHERE
|
||||
ISNULL(t_DISTRACTION.id_intensity_level_sound)
|
||||
OR ISNULL(DISTRACTION_INTENSITY_LEVEL_SOUND.id_intensity_level_sound)
|
||||
OR DISTRACTION_INTENSITY_LEVEL_SOUND.active = 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('The following Distraction(s) do not have a valid Intensity Level Sound: ', GROUP_CONCAT(t_DISTRACTION.name_error SEPARATOR ', ')) AS msg
|
||||
FROM tmp_Distraction t_DISTRACTION
|
||||
LEFT JOIN parts.DOG_Distraction_Intensity_Level DISTRACTION_INTENSITY_LEVEL_SOUND ON t_DISTRACTION.id_intensity_level_sound = DISTRACTION_INTENSITY_LEVEL_SOUND.id_intensity_level
|
||||
WHERE
|
||||
ISNULL(t_DISTRACTION.id_intensity_level_sound)
|
||||
OR ISNULL(DISTRACTION_INTENSITY_LEVEL_SOUND.id_intensity_level_sound)
|
||||
OR DISTRACTION_INTENSITY_LEVEL_SOUND.active = 0
|
||||
;
|
||||
END IF;
|
||||
-- id_intensity_level_touch
|
||||
IF EXISTS (
|
||||
SELECT *
|
||||
FROM tmp_Distraction t_DISTRACTION
|
||||
LEFT JOIN demo.DOG_Distraction_Intensity_Level DISTRACTION_INTENSITY_LEVEL_TOUCH ON t_DISTRACTION.id_intensity_level_touch = DISTRACTION_INTENSITY_LEVEL_TOUCH.id_intensity_level
|
||||
WHERE
|
||||
ISNULL(t_DISTRACTION.id_intensity_level_touch)
|
||||
OR ISNULL(DISTRACTION_INTENSITY_LEVEL_TOUCH.id_intensity_level_touch)
|
||||
OR DISTRACTION_INTENSITY_LEVEL_TOUCH.active = 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('The following Distraction(s) do not have a valid Intensity Level Touch: ', GROUP_CONCAT(t_DISTRACTION.name_error SEPARATOR ', ')) AS msg
|
||||
FROM tmp_Distraction t_DISTRACTION
|
||||
LEFT JOIN parts.DOG_Distraction_Intensity_Level DISTRACTION_INTENSITY_LEVEL_TOUCH ON t_DISTRACTION.id_intensity_level_touch = DISTRACTION_INTENSITY_LEVEL_TOUCH.id_intensity_level
|
||||
WHERE
|
||||
ISNULL(t_DISTRACTION.id_intensity_level_touch)
|
||||
OR ISNULL(DISTRACTION_INTENSITY_LEVEL_TOUCH.id_intensity_level_touch)
|
||||
OR DISTRACTION_INTENSITY_LEVEL_TOUCH.active = 0
|
||||
;
|
||||
END IF;
|
||||
|
||||
-- Permissions
|
||||
-- Can Create
|
||||
CALL parts.p_dog_calc_user(
|
||||
a_guid
|
||||
, 0 -- get_all_user
|
||||
, 0 -- get_inactive_user
|
||||
, a_id_user -- ids_user
|
||||
, '' -- a_auth0_ids_user
|
||||
, '' -- a_names_user
|
||||
, '' -- a_emails_user
|
||||
, 1 -- a_require_all_id_search_filters_met
|
||||
, 1 -- a_require_any_id_search_filters_met
|
||||
, 0 -- a_require_all_non_id_search_filters_met
|
||||
, 0 -- a_require_any_non_id_search_filters_met
|
||||
, v_id_permission_dog_new -- ids_permission
|
||||
, v_id_access_level_edit -- ids_access_level
|
||||
, 0 -- a_show_errors
|
||||
, 0 -- a_debug
|
||||
);
|
||||
|
||||
SELECT
|
||||
IFNULL(CU_T.has_access, 0)
|
||||
INTO
|
||||
v_can_create
|
||||
FROM parts.DOG_Calc_User_Temp CU_T
|
||||
WHERE CU_T.GUID = a_guid
|
||||
LIMIT 1
|
||||
;
|
||||
|
||||
CALL parts.p_dog_clear_calc_user(
|
||||
a_guid
|
||||
, 0 -- a_debug
|
||||
);
|
||||
|
||||
IF v_can_create = 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 edit Distractions.'
|
||||
)
|
||||
;
|
||||
END IF;
|
||||
|
||||
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_Distraction;
|
||||
END IF;
|
||||
|
||||
DELETE FROM tmp_Distraction;
|
||||
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
|
||||
START TRANSACTION;
|
||||
|
||||
INSERT INTO parts.DOG_Dog_Change_Set (
|
||||
comment
|
||||
, id_user_updated_last_by
|
||||
, updated_last_on
|
||||
)
|
||||
VALUES (
|
||||
a_comment
|
||||
, a_id_user
|
||||
, v_time_start
|
||||
)
|
||||
;
|
||||
|
||||
SET v_id_change_set := LAST_INSERT_ID();
|
||||
|
||||
UPDATE parts.DOG_Distraction DISTRACTION
|
||||
INNER JOIN tmp_Distraction t_DISTRACTION
|
||||
ON DISTRACTION.id_distraction = t_DISTRACTION.id_distraction
|
||||
AND t_DISTRACTION.is_new = 0
|
||||
SET
|
||||
DISTRACTION.id_assessment = t_DISTRACTION.id_assessment
|
||||
, DISTRACTION.id_distraction_type = t_DISTRACTION.id_distraction_type
|
||||
, DISTRACTION.id_intensity_level_emotional = t_DISTRACTION.id_intensity_level_emotional
|
||||
, DISTRACTION.id_intensity_level_scent = t_DISTRACTION.id_intensity_level_scent
|
||||
, DISTRACTION.id_intensity_level_sight = t_DISTRACTION.id_intensity_level_sight
|
||||
, DISTRACTION.id_intensity_level_sound = t_DISTRACTION.id_intensity_level_sound
|
||||
, DISTRACTION.id_intensity_level_touch = t_DISTRACTION.id_intensity_level_touch
|
||||
, DISTRACTION.quantity = t_DISTRACTION.quantity
|
||||
, DISTRACTION.proximity_metres = t_DISTRACTION.proximity_metres
|
||||
, DISTRACTION.notes = t_DISTRACTION.notes
|
||||
, DISTRACTION.active = t_DISTRACTION.active
|
||||
, DISTRACTION.id_change_set = v_id_change_set
|
||||
;
|
||||
|
||||
INSERT INTO parts.DOG_Distraction (
|
||||
id_assessment
|
||||
, id_distraction_type
|
||||
, id_intensity_level_emotional
|
||||
, id_intensity_level_scent
|
||||
, id_intensity_level_sight
|
||||
, id_intensity_level_sound
|
||||
, id_intensity_level_touch
|
||||
, quantity
|
||||
, proximity_metres
|
||||
, notes
|
||||
, active
|
||||
, id_user_created_by
|
||||
, created_on
|
||||
)
|
||||
SELECT
|
||||
t_DISTRACTION.id_assessment AS id_assessment
|
||||
, t_DISTRACTION.id_distraction_type AS id_distraction_type
|
||||
, t_DISTRACTION.id_intensity_level_emotional AS id_intensity_level_emotional
|
||||
, t_DISTRACTION.id_intensity_level_scent AS id_intensity_level_scent
|
||||
, t_DISTRACTION.id_intensity_level_sight AS id_intensity_level_sight
|
||||
, t_DISTRACTION.id_intensity_level_sound AS id_intensity_level_sound
|
||||
, t_DISTRACTION.id_intensity_level_touch AS id_intensity_level_touch
|
||||
, t_DISTRACTION.quantity AS quantity
|
||||
, t_DISTRACTION.proximity_metres AS proximity_metres
|
||||
, t_DISTRACTION.notes AS notes
|
||||
, t_DISTRACTION.active AS active
|
||||
, a_id_user AS created_by
|
||||
, v_time_start AS created_on
|
||||
FROM tmp_Distraction t_DISTRACTION
|
||||
WHERE
|
||||
t_DISTRACTION.is_new = 1
|
||||
AND t_DISTRACTION.active = 1
|
||||
;
|
||||
|
||||
COMMIT;
|
||||
END IF;
|
||||
|
||||
START TRANSACTION;
|
||||
|
||||
DELETE FROM parts.DOG_Distraction_Temp
|
||||
WHERE GUID = a_guid
|
||||
;
|
||||
|
||||
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 t_ERROR
|
||||
INNER JOIN parts.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type
|
||||
;
|
||||
|
||||
IF a_debug = 1 THEN
|
||||
SELECT * FROM tmp_Distraction;
|
||||
END IF;
|
||||
|
||||
DROP TEMPORARY TABLE tmp_Distraction;
|
||||
DROP TEMPORARY TABLE tmp_Msg_Error;
|
||||
|
||||
IF a_debug = 1 THEN
|
||||
CALL parts.p_core_debug_timing_reporting ( v_time_start );
|
||||
END IF;
|
||||
END //
|
||||
DELIMITER ;
|
||||
|
||||
|
||||
|
||||
/*
|
||||
|
||||
'ripplesipplenippletippledipplekipple'
|
||||
DELETE FROM parts.DOG_Distraction WHERE id_distraction > 740;
|
||||
* /
|
||||
delete
|
||||
from parts.DOG_Distraction_Audit
|
||||
where id_distraction > 768
|
||||
;
|
||||
delete
|
||||
from parts.DOG_Distraction
|
||||
where id_distraction > 768
|
||||
;
|
||||
delete
|
||||
from parts.DOG_Distraction_Temp
|
||||
;
|
||||
select
|
||||
*
|
||||
-- COUNT(*)
|
||||
-- delete
|
||||
from parts.DOG_Distraction_Temp
|
||||
;
|
||||
select COUNT(*)
|
||||
from parts.DOG_Distraction_Temp
|
||||
;
|
||||
select
|
||||
*
|
||||
-- COUNT(*)
|
||||
-- delete
|
||||
from parts.DOG_Distraction
|
||||
;
|
||||
select COUNT(*)
|
||||
from parts.DOG_Distraction
|
||||
;
|
||||
|
||||
INSERT INTO parts.DOG_Distraction_Temp (
|
||||
id_distraction
|
||||
, id_dog
|
||||
, id_command
|
||||
, hand_signal_description
|
||||
, notes
|
||||
, active
|
||||
, guid
|
||||
)
|
||||
VALUES (
|
||||
-1 -- id_distraction
|
||||
, 1 -- id_dog
|
||||
, 1 -- id_command
|
||||
, 'Test deez noots' -- hand_signal_description
|
||||
, NULL -- notes
|
||||
, 1 -- active
|
||||
, 'ripplesipplenippletippledipplekipple'
|
||||
);
|
||||
|
||||
CALL parts.p_dog_save_distraction (
|
||||
'nipples'
|
||||
, 'ripplesipplenippletippledipplekipple'
|
||||
, 1
|
||||
, 1
|
||||
);
|
||||
|
||||
|
||||
select
|
||||
*
|
||||
-- COUNT(*)
|
||||
-- delete
|
||||
from parts.DOG_Distraction_Temp
|
||||
;
|
||||
select COUNT(*)
|
||||
from parts.DOG_Distraction_Temp
|
||||
;
|
||||
select
|
||||
*
|
||||
-- COUNT(*)
|
||||
-- delete
|
||||
from parts.DOG_Distraction
|
||||
;
|
||||
select COUNT(*)
|
||||
from parts.DOG_Distraction
|
||||
;
|
||||
|
||||
*/
|
||||
@@ -0,0 +1,672 @@
|
||||
|
||||
USE parts;
|
||||
|
||||
DROP PROCEDURE IF EXISTS parts.p_dog_save_assessment_command_modality_link;
|
||||
|
||||
DELIMITER //
|
||||
CREATE PROCEDURE parts.p_dog_save_assessment_command_modality_link (
|
||||
IN a_comment VARCHAR(500),
|
||||
IN a_guid BINARY(36),
|
||||
IN a_id_user INT,
|
||||
IN a_debug BIT
|
||||
)
|
||||
BEGIN
|
||||
DECLARE v_can_admin BIT;
|
||||
DECLARE v_can_create BIT;
|
||||
DECLARE v_code_type_error_bad_data VARCHAR(100);
|
||||
DECLARE v_id_access_level_edit INT;
|
||||
DECLARE v_id_change_set INT;
|
||||
DECLARE v_id_permission_dog_new INT;
|
||||
DECLARE v_id_type_error_bad_data 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 (
|
||||
id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT
|
||||
, id_type INT NULL
|
||||
, code VARCHAR(250)
|
||||
, msg TEXT 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 SESSION group_concat_max_len=15000;
|
||||
|
||||
SET v_time_start := CURRENT_TIMESTAMP(6);
|
||||
SET v_code_type_error_bad_data := 'BAD_DATA';
|
||||
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_permission_dog_new := (SELECT PERMISSION.id_permission FROM parts.DOG_Permission PERMISSION WHERE PERMISSION.code = 'DOG_CREATE' LIMIT 1);
|
||||
SET v_id_access_level_edit := (SELECT ACCESS_LEVEL.id_access_level FROM parts.DOG_Access_Level ACCESS_LEVEL WHERE ACCESS_LEVEL.code = 'EDIT' LIMIT 1);
|
||||
|
||||
CALL parts.p_core_validate_guid ( a_guid );
|
||||
|
||||
DROP TABLE IF EXISTS tmp_Assessment_Command_Modality_Link_Copy;
|
||||
DROP TABLE IF EXISTS tmp_Assessment_Command_Modality_Link;
|
||||
|
||||
CREATE TEMPORARY TABLE tmp_Assessment_Command_Modality_Link (
|
||||
id_temp INT
|
||||
, id_link INT
|
||||
, id_assessment INT
|
||||
, id_command INT
|
||||
, id_command_modality INT
|
||||
, id_bribe INT
|
||||
, distance_from_handler FLOAT
|
||||
, is_in_sight_of_handler BIT
|
||||
, is_in_scent_range_of_handler BIT
|
||||
, is_in_hearing_range_of_handler BIT
|
||||
, is_on_lead BIT
|
||||
, trial_count INT
|
||||
, active BIT
|
||||
, is_new BIT
|
||||
, name_error VARCHAR(250)
|
||||
);
|
||||
|
||||
CREATE TEMPORARY TABLE tmp_Assessment_Command_Modality_Link_Copy (
|
||||
id_temp INT
|
||||
, id_link INT
|
||||
, id_assessment INT
|
||||
, id_command INT
|
||||
, id_command_modality INT
|
||||
, id_bribe INT
|
||||
, id_distance_from_handler INT
|
||||
, id_is_in_sight_of_handler INT
|
||||
, id_is_in_scent_range_of_handler INT
|
||||
, is_in_hearing_range_of_handler INT
|
||||
, is_on_lead FLOAT
|
||||
, trial_count TEXT
|
||||
, active BIT
|
||||
, is_new BIT
|
||||
, name_error 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(250)
|
||||
, msg TEXT NOT NULL
|
||||
);
|
||||
|
||||
|
||||
-- Get data from Temp table
|
||||
INSERT INTO tmp_Assessment_Command_Modality_Link (
|
||||
id_temp
|
||||
, id_link
|
||||
, id_assessment
|
||||
, id_command
|
||||
, id_command_modality
|
||||
, id_bribe
|
||||
, id_distance_from_handler
|
||||
, id_is_in_sight_of_handler
|
||||
, id_is_in_scent_range_of_handler
|
||||
, is_in_hearing_range_of_handler
|
||||
, is_on_lead
|
||||
, trial_count
|
||||
, active
|
||||
, is_new
|
||||
)
|
||||
SELECT
|
||||
ASSESSMENT_COMMAND_MODALITY_LINK_T.id_temp
|
||||
, ASSESSMENT_COMMAND_MODALITY_LINK_T.id_link
|
||||
, COALESCE(
|
||||
ASSESSMENT_COMMAND_MODALITY_LINK_T.id_assessment
|
||||
, ASSESSMENT_COMMAND_MODALITY_LINK.id_assessment
|
||||
) AS id_assessment
|
||||
, COALESCE(
|
||||
ASSESSMENT_COMMAND_MODALITY_LINK_T.id_command
|
||||
, ASSESSMENT_COMMAND_MODALITY_LINK.id_command
|
||||
) AS id_command
|
||||
, COALESCE(
|
||||
ASSESSMENT_COMMAND_MODALITY_LINK_T.id_command_modality
|
||||
, ASSESSMENT_COMMAND_MODALITY_LINK.id_command_modality
|
||||
) AS id_command_modality
|
||||
, COALESCE(
|
||||
ASSESSMENT_COMMAND_MODALITY_LINK_T.id_bribe
|
||||
, ASSESSMENT_COMMAND_MODALITY_LINK.id_bribe
|
||||
) AS id_bribe
|
||||
, COALESCE(
|
||||
ASSESSMENT_COMMAND_MODALITY_LINK_T.id_distance_from_handler
|
||||
, ASSESSMENT_COMMAND_MODALITY_LINK.id_distance_from_handler
|
||||
) AS id_distance_from_handler
|
||||
, COALESCE(
|
||||
ASSESSMENT_COMMAND_MODALITY_LINK_T.id_is_in_sight_of_handler
|
||||
, ASSESSMENT_COMMAND_MODALITY_LINK.id_is_in_sight_of_handler
|
||||
) AS id_is_in_sight_of_handler
|
||||
, COALESCE(
|
||||
ASSESSMENT_COMMAND_MODALITY_LINK_T.id_is_in_scent_range_of_handler
|
||||
, ASSESSMENT_COMMAND_MODALITY_LINK.id_is_in_scent_range_of_handler
|
||||
) AS id_is_in_scent_range_of_handler
|
||||
, ASSESSMENT_COMMAND_MODALITY_LINK_T.is_in_hearing_range_of_handler
|
||||
, ASSESSMENT_COMMAND_MODALITY_LINK_T.is_on_lead
|
||||
, ASSESSMENT_COMMAND_MODALITY_LINK_T.trial_count
|
||||
, COALESCE(ASSESSMENT_COMMAND_MODALITY_LINK_T.active, 1) AS active
|
||||
, CASE WHEN COALESCE(ASSESSMENT_COMMAND_MODALITY_LINK_T.id_link, 0) < 1 THEN 1 ELSE 0 END AS is_new
|
||||
FROM parts.DOG_Assessment_Command_Modality_Link_Temp ASSESSMENT_COMMAND_MODALITY_LINK_T
|
||||
LEFT JOIN parts.DOG_Assessment_Command_Modality_Link ASSESSMENT_COMMAND_MODALITY_LINK ON ASSESSMENT_COMMAND_MODALITY_LINK_T.id_link = ASSESSMENT_COMMAND_MODALITY_LINK.id_link
|
||||
WHERE ASSESSMENT_COMMAND_MODALITY_LINK_T.guid = a_guid
|
||||
;
|
||||
|
||||
IF a_debug = 1 THEN
|
||||
SELECT 'Assessment_Command_Modality_Link_Temp records';
|
||||
SELECT * FROM tmp_Assessment_Command_Modality_Link;
|
||||
SELECT COUNT(*) FROM tmp_Assessment_Command_Modality_Link;
|
||||
END IF;
|
||||
|
||||
-- Error names
|
||||
UPDATE tmp_Assessment_Command_Modality_Link t_ASSESSMENT_COMMAND_MODALITY_LINK
|
||||
LEFT JOIN parts.DOG_Assessment_Command_Modality_Command ASSESSMENT_COMMAND_MODALITY_COMMAND ON t_ASSESSMENT_COMMAND_MODALITY_LINK.id_command = ASSESSMENT_COMMAND_MODALITY_COMMAND.id_type
|
||||
LEFT JOIN parts.DOG_Assessment_Command_Modality_Link_Intensity_Level ASSESSMENT_COMMAND_MODALITY_LINK_COMMAND_MODALITY ON t_ASSESSMENT_COMMAND_MODALITY_LINK.id_command_modality = ASSESSMENT_COMMAND_MODALITY_LINK_COMMAND_MODALITY.id_intensity_level
|
||||
LEFT JOIN parts.DOG_Assessment_Command_Modality_Link_Intensity_Level ASSESSMENT_COMMAND_MODALITY_LINK_BRIBE ON t_ASSESSMENT_COMMAND_MODALITY_LINK.id_bribe = ASSESSMENT_COMMAND_MODALITY_LINK_BRIBE.id_intensity_level
|
||||
LEFT JOIN parts.DOG_Assessment_Command_Modality_Link_Intensity_Level ASSESSMENT_COMMAND_MODALITY_LINK_DISTANCE_FROM_HANDLER ON t_ASSESSMENT_COMMAND_MODALITY_LINK.id_distance_from_handler = ASSESSMENT_COMMAND_MODALITY_LINK_DISTANCE_FROM_HANDLER.id_intensity_level
|
||||
LEFT JOIN parts.DOG_Assessment_Command_Modality_Link_Intensity_Level ASSESSMENT_COMMAND_MODALITY_LINK_IS_IN_SIGHT_OF_HANDLER ON t_ASSESSMENT_COMMAND_MODALITY_LINK.id_is_in_sight_of_handler = ASSESSMENT_COMMAND_MODALITY_LINK_IS_IN_SIGHT_OF_HANDLER.id_intensity_level
|
||||
LEFT JOIN parts.DOG_Assessment_Command_Modality_Link_Intensity_Level ASSESSMENT_COMMAND_MODALITY_LINK_IS_IN_SCENT_RANGE_OF_HANDLER ON t_ASSESSMENT_COMMAND_MODALITY_LINK.id_is_in_scent_range_of_handler = ASSESSMENT_COMMAND_MODALITY_LINK_IS_IN_SCENT_RANGE_OF_HANDLER.id_intensity_level
|
||||
SET t_ASSESSMENT_COMMAND_MODALITY_LINK.name_error = CONCAT(
|
||||
/*
|
||||
CONVERT(COALESCE(t_ASSESSMENT_COMMAND_MODALITY_LINK.created_on, ASSESSMENT_COMMAND_MODALITY_LINK.created_on, v_time_start), CHAR)
|
||||
, CASE WHEN t_ASSESSMENT_COMMAND_MODALITY_LINK.trial_count IS NOT NULL THEN CONCAT(' - ', t_ASSESSMENT_COMMAND_MODALITY_LINK.trial_count) ELSE '' END
|
||||
*/
|
||||
COALESCE(ASSESSMENT_COMMAND_MODALITY_COMMAND.name, '(No Assessment_Command_Modality_Link Type)')
|
||||
, ' - '
|
||||
, COALESCE(ASSESSMENT_COMMAND_MODALITY_LINK_COMMAND_MODALITY.name, '(No Assessment_Command_Modality_Link Intensity Level Emotional)')
|
||||
, ' - '
|
||||
, COALESCE(ASSESSMENT_COMMAND_MODALITY_LINK_BRIBE.name, '(No Assessment_Command_Modality_Link Intensity Level Scent)')
|
||||
, ' - '
|
||||
, COALESCE(ASSESSMENT_COMMAND_MODALITY_LINK_BRIBE.name, '(No Assessment_Command_Modality_Link Intensity Level Sight)')
|
||||
, ' - '
|
||||
, COALESCE(ASSESSMENT_COMMAND_MODALITY_LINK_BRIBE.name, '(No Assessment_Command_Modality_Link Intensity Level Sound)')
|
||||
, ' - '
|
||||
, COALESCE(ASSESSMENT_COMMAND_MODALITY_LINK_BRIBE.name, '(No Assessment_Command_Modality_Link Intensity Level Touch)')
|
||||
, ' - x'
|
||||
, CONVERT(COALESCE(t_ASSESSMENT.is_in_hearing_range_of_handler, 0), CHAR)
|
||||
)
|
||||
;
|
||||
|
||||
IF a_debug = 1 THEN
|
||||
SELECT 'After set name_error';
|
||||
SELECT * FROM tmp_Assessment_Command_Modality_Link;
|
||||
SELECT COUNT(*) FROM tmp_Assessment_Command_Modality_Link;
|
||||
END IF;
|
||||
|
||||
|
||||
-- Validation
|
||||
-- Missing mandatory fields
|
||||
-- id_assessment
|
||||
IF EXISTS (
|
||||
SELECT *
|
||||
FROM tmp_Assessment_Command_Modality_Link t_ASSESSMENT_COMMAND_MODALITY_LINK
|
||||
LEFT JOIN demo.DOG_Assessment ASSESSMENT ON t_ASSESSMENT_COMMAND_MODALITY_LINK.id_assessment = ASSESSMENT.id_assessment
|
||||
WHERE
|
||||
ISNULL(t_ASSESSMENT_COMMAND_MODALITY_LINK.id_assessment)
|
||||
OR ISNULL(ASSESSMENT.id_assessment)
|
||||
OR ASSESSMENT.active = 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('The following Dog Assessment Assessment_Command_Modality_Link(s) do not have a valid Assessment: ', GROUP_CONCAT(t_ASSESSMENT_COMMAND_MODALITY_LINK.name_error SEPARATOR ', ')) AS msg
|
||||
FROM tmp_Assessment_Command_Modality_Link t_ASSESSMENT_COMMAND_MODALITY_LINK
|
||||
LEFT JOIN parts.DOG_Assessment ASSESSMENT ON t_ASSESSMENT_COMMAND_MODALITY_LINK.id_assessment = ASSESSMENT.id_assessment
|
||||
WHERE
|
||||
ISNULL(t_ASSESSMENT_COMMAND_MODALITY_LINK.id_assessment)
|
||||
OR ISNULL(ASSESSMENT.id_assessment)
|
||||
OR ASSESSMENT.active = 0
|
||||
;
|
||||
END IF;
|
||||
-- id_command
|
||||
IF EXISTS (
|
||||
SELECT *
|
||||
FROM tmp_Assessment_Command_Modality_Link t_ASSESSMENT_COMMAND_MODALITY_LINK
|
||||
LEFT JOIN demo.DOG_Assessment_Command_Modality_Command ASSESSMENT_COMMAND_MODALITY_COMMAND ON t_ASSESSMENT_COMMAND_MODALITY_LINK.id_command = ASSESSMENT_COMMAND_MODALITY_COMMAND.id_command
|
||||
WHERE
|
||||
ISNULL(t_ASSESSMENT_COMMAND_MODALITY_LINK.id_command)
|
||||
OR ISNULL(ASSESSMENT_COMMAND_MODALITY_COMMAND.id_command)
|
||||
OR ASSESSMENT_COMMAND_MODALITY_COMMAND.active = 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('The following Dog Assessment_Command_Modality_Command Assessment_Command_Modality_Link(s) do not have a valid Assessment_Command_Modality_Command: ', GROUP_CONCAT(t_ASSESSMENT_COMMAND_MODALITY_LINK.name_error SEPARATOR ', ')) AS msg
|
||||
FROM tmp_Assessment_Command_Modality_Link t_ASSESSMENT_COMMAND_MODALITY_LINK
|
||||
LEFT JOIN parts.DOG_Assessment_Command_Modality_Command ASSESSMENT_COMMAND_MODALITY_COMMAND ON t_ASSESSMENT_COMMAND_MODALITY_LINK.id_command = ASSESSMENT_COMMAND_MODALITY_COMMAND.id_command
|
||||
WHERE
|
||||
ISNULL(t_ASSESSMENT_COMMAND_MODALITY_LINK.id_command)
|
||||
OR ISNULL(ASSESSMENT_COMMAND_MODALITY_COMMAND.id_command)
|
||||
OR ASSESSMENT_COMMAND_MODALITY_COMMAND.active = 0
|
||||
;
|
||||
END IF;
|
||||
-- id_command_modality
|
||||
IF EXISTS (
|
||||
SELECT *
|
||||
FROM tmp_Assessment_Command_Modality_Link t_ASSESSMENT_COMMAND_MODALITY_LINK
|
||||
LEFT JOIN demo.DOG_Assessment_Command_Modality_Link_Intensity_Level ASSESSMENT_COMMAND_MODALITY_LINK_COMMAND_MODALITY ON t_ASSESSMENT_COMMAND_MODALITY_LINK.id_command_modality = ASSESSMENT_COMMAND_MODALITY_LINK_COMMAND_MODALITY.id_command_modality
|
||||
WHERE
|
||||
ISNULL(t_ASSESSMENT_COMMAND_MODALITY_LINK.id_command_modality)
|
||||
OR ISNULL(ASSESSMENT_COMMAND_MODALITY_LINK_COMMAND_MODALITY.id_command_modality)
|
||||
OR ASSESSMENT_COMMAND_MODALITY_LINK_COMMAND_MODALITY.active = 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('The following Assessment_Command_Modality_Link(s) do not have a valid Assessment_Command_Modality_Link_Command_Modality: ', GROUP_CONCAT(t_ASSESSMENT_COMMAND_MODALITY_LINK.name_error SEPARATOR ', ')) AS msg
|
||||
FROM tmp_Assessment_Command_Modality_Link t_ASSESSMENT_COMMAND_MODALITY_LINK
|
||||
LEFT JOIN parts.DOG_Assessment_Command_Modality_Link_Intensity_Level ASSESSMENT_COMMAND_MODALITY_LINK_COMMAND_MODALITY ON t_ASSESSMENT_COMMAND_MODALITY_LINK.id_command_modality = ASSESSMENT_COMMAND_MODALITY_LINK_COMMAND_MODALITY.id_command_modality
|
||||
WHERE
|
||||
ISNULL(t_ASSESSMENT_COMMAND_MODALITY_LINK.id_command_modality)
|
||||
OR ISNULL(ASSESSMENT_COMMAND_MODALITY_LINK_COMMAND_MODALITY.id_command_modality)
|
||||
OR ASSESSMENT_COMMAND_MODALITY_LINK_COMMAND_MODALITY.active = 0
|
||||
;
|
||||
END IF;
|
||||
-- id_bribe
|
||||
IF EXISTS (
|
||||
SELECT *
|
||||
FROM tmp_Assessment_Command_Modality_Link t_ASSESSMENT_COMMAND_MODALITY_LINK
|
||||
LEFT JOIN demo.DOG_Assessment_Command_Modality_Link_Intensity_Level ASSESSMENT_COMMAND_MODALITY_LINK_BRIBE ON t_ASSESSMENT_COMMAND_MODALITY_LINK.id_bribe = ASSESSMENT_COMMAND_MODALITY_LINK_BRIBE.id_intensity_level
|
||||
WHERE
|
||||
ISNULL(t_ASSESSMENT_COMMAND_MODALITY_LINK.id_bribe)
|
||||
OR ISNULL(ASSESSMENT_COMMAND_MODALITY_LINK_BRIBE.id_bribe)
|
||||
OR ASSESSMENT_COMMAND_MODALITY_LINK_BRIBE.active = 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('The following Assessment_Command_Modality_Link(s) do not have a valid Intensity Level Scent: ', GROUP_CONCAT(t_ASSESSMENT_COMMAND_MODALITY_LINK.name_error SEPARATOR ', ')) AS msg
|
||||
FROM tmp_Assessment_Command_Modality_Link t_ASSESSMENT_COMMAND_MODALITY_LINK
|
||||
LEFT JOIN parts.DOG_Assessment_Command_Modality_Link_Intensity_Level ASSESSMENT_COMMAND_MODALITY_LINK_BRIBE ON t_ASSESSMENT_COMMAND_MODALITY_LINK.id_bribe = ASSESSMENT_COMMAND_MODALITY_LINK_BRIBE.id_intensity_level
|
||||
WHERE
|
||||
ISNULL(t_ASSESSMENT_COMMAND_MODALITY_LINK.id_bribe)
|
||||
OR ISNULL(ASSESSMENT_COMMAND_MODALITY_LINK_BRIBE.id_bribe)
|
||||
OR ASSESSMENT_COMMAND_MODALITY_LINK_BRIBE.active = 0
|
||||
;
|
||||
END IF;
|
||||
-- id_distance_from_handler
|
||||
IF EXISTS (
|
||||
SELECT *
|
||||
FROM tmp_Assessment_Command_Modality_Link t_ASSESSMENT_COMMAND_MODALITY_LINK
|
||||
LEFT JOIN demo.DOG_Assessment_Command_Modality_Link_Intensity_Level ASSESSMENT_COMMAND_MODALITY_LINK_DISTANCE_FROM_HANDLER ON t_ASSESSMENT_COMMAND_MODALITY_LINK.id_distance_from_handler = ASSESSMENT_COMMAND_MODALITY_LINK_DISTANCE_FROM_HANDLER.id_intensity_level
|
||||
WHERE
|
||||
ISNULL(t_ASSESSMENT_COMMAND_MODALITY_LINK.id_distance_from_handler)
|
||||
OR ISNULL(ASSESSMENT_COMMAND_MODALITY_LINK_DISTANCE_FROM_HANDLER.id_distance_from_handler)
|
||||
OR ASSESSMENT_COMMAND_MODALITY_LINK_DISTANCE_FROM_HANDLER.active = 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('The following Assessment_Command_Modality_Link(s) do not have a valid Intensity Level Sight: ', GROUP_CONCAT(t_ASSESSMENT_COMMAND_MODALITY_LINK.name_error SEPARATOR ', ')) AS msg
|
||||
FROM tmp_Assessment_Command_Modality_Link t_ASSESSMENT_COMMAND_MODALITY_LINK
|
||||
LEFT JOIN parts.DOG_Assessment_Command_Modality_Link_Intensity_Level ASSESSMENT_COMMAND_MODALITY_LINK_DISTANCE_FROM_HANDLER ON t_ASSESSMENT_COMMAND_MODALITY_LINK.id_distance_from_handler = ASSESSMENT_COMMAND_MODALITY_LINK_DISTANCE_FROM_HANDLER.id_intensity_level
|
||||
WHERE
|
||||
ISNULL(t_ASSESSMENT_COMMAND_MODALITY_LINK.id_distance_from_handler)
|
||||
OR ISNULL(ASSESSMENT_COMMAND_MODALITY_LINK_DISTANCE_FROM_HANDLER.id_distance_from_handler)
|
||||
OR ASSESSMENT_COMMAND_MODALITY_LINK_DISTANCE_FROM_HANDLER.active = 0
|
||||
;
|
||||
END IF;
|
||||
-- id_is_in_sight_of_handler
|
||||
IF EXISTS (
|
||||
SELECT *
|
||||
FROM tmp_Assessment_Command_Modality_Link t_ASSESSMENT_COMMAND_MODALITY_LINK
|
||||
LEFT JOIN demo.DOG_Assessment_Command_Modality_Link_Intensity_Level ASSESSMENT_COMMAND_MODALITY_LINK_IS_IN_SIGHT_OF_HANDLER ON t_ASSESSMENT_COMMAND_MODALITY_LINK.id_is_in_sight_of_handler = ASSESSMENT_COMMAND_MODALITY_LINK_IS_IN_SIGHT_OF_HANDLER.id_intensity_level
|
||||
WHERE
|
||||
ISNULL(t_ASSESSMENT_COMMAND_MODALITY_LINK.id_is_in_sight_of_handler)
|
||||
OR ISNULL(ASSESSMENT_COMMAND_MODALITY_LINK_IS_IN_SIGHT_OF_HANDLER.id_is_in_sight_of_handler)
|
||||
OR ASSESSMENT_COMMAND_MODALITY_LINK_IS_IN_SIGHT_OF_HANDLER.active = 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('The following Assessment_Command_Modality_Link(s) do not have a valid Intensity Level Sound: ', GROUP_CONCAT(t_ASSESSMENT_COMMAND_MODALITY_LINK.name_error SEPARATOR ', ')) AS msg
|
||||
FROM tmp_Assessment_Command_Modality_Link t_ASSESSMENT_COMMAND_MODALITY_LINK
|
||||
LEFT JOIN parts.DOG_Assessment_Command_Modality_Link_Intensity_Level ASSESSMENT_COMMAND_MODALITY_LINK_IS_IN_SIGHT_OF_HANDLER ON t_ASSESSMENT_COMMAND_MODALITY_LINK.id_is_in_sight_of_handler = ASSESSMENT_COMMAND_MODALITY_LINK_IS_IN_SIGHT_OF_HANDLER.id_intensity_level
|
||||
WHERE
|
||||
ISNULL(t_ASSESSMENT_COMMAND_MODALITY_LINK.id_is_in_sight_of_handler)
|
||||
OR ISNULL(ASSESSMENT_COMMAND_MODALITY_LINK_IS_IN_SIGHT_OF_HANDLER.id_is_in_sight_of_handler)
|
||||
OR ASSESSMENT_COMMAND_MODALITY_LINK_IS_IN_SIGHT_OF_HANDLER.active = 0
|
||||
;
|
||||
END IF;
|
||||
-- id_is_in_scent_range_of_handler
|
||||
IF EXISTS (
|
||||
SELECT *
|
||||
FROM tmp_Assessment_Command_Modality_Link t_ASSESSMENT_COMMAND_MODALITY_LINK
|
||||
LEFT JOIN demo.DOG_Assessment_Command_Modality_Link_Intensity_Level ASSESSMENT_COMMAND_MODALITY_LINK_IS_IN_SCENT_RANGE_OF_HANDLER ON t_ASSESSMENT_COMMAND_MODALITY_LINK.id_is_in_scent_range_of_handler = ASSESSMENT_COMMAND_MODALITY_LINK_IS_IN_SCENT_RANGE_OF_HANDLER.id_intensity_level
|
||||
WHERE
|
||||
ISNULL(t_ASSESSMENT_COMMAND_MODALITY_LINK.id_is_in_scent_range_of_handler)
|
||||
OR ISNULL(ASSESSMENT_COMMAND_MODALITY_LINK_IS_IN_SCENT_RANGE_OF_HANDLER.id_is_in_scent_range_of_handler)
|
||||
OR ASSESSMENT_COMMAND_MODALITY_LINK_IS_IN_SCENT_RANGE_OF_HANDLER.active = 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('The following Assessment_Command_Modality_Link(s) do not have a valid Intensity Level Touch: ', GROUP_CONCAT(t_ASSESSMENT_COMMAND_MODALITY_LINK.name_error SEPARATOR ', ')) AS msg
|
||||
FROM tmp_Assessment_Command_Modality_Link t_ASSESSMENT_COMMAND_MODALITY_LINK
|
||||
LEFT JOIN parts.DOG_Assessment_Command_Modality_Link_Intensity_Level ASSESSMENT_COMMAND_MODALITY_LINK_IS_IN_SCENT_RANGE_OF_HANDLER ON t_ASSESSMENT_COMMAND_MODALITY_LINK.id_is_in_scent_range_of_handler = ASSESSMENT_COMMAND_MODALITY_LINK_IS_IN_SCENT_RANGE_OF_HANDLER.id_intensity_level
|
||||
WHERE
|
||||
ISNULL(t_ASSESSMENT_COMMAND_MODALITY_LINK.id_is_in_scent_range_of_handler)
|
||||
OR ISNULL(ASSESSMENT_COMMAND_MODALITY_LINK_IS_IN_SCENT_RANGE_OF_HANDLER.id_is_in_scent_range_of_handler)
|
||||
OR ASSESSMENT_COMMAND_MODALITY_LINK_IS_IN_SCENT_RANGE_OF_HANDLER.active = 0
|
||||
;
|
||||
END IF;
|
||||
|
||||
-- Permissions
|
||||
-- Can Create
|
||||
CALL parts.p_dog_calc_user(
|
||||
a_guid
|
||||
, 0 -- get_all_user
|
||||
, 0 -- get_inactive_user
|
||||
, a_id_user -- ids_user
|
||||
, '' -- a_auth0_ids_user
|
||||
, '' -- a_names_user
|
||||
, '' -- a_emails_user
|
||||
, 1 -- a_require_all_id_search_filters_met
|
||||
, 1 -- a_require_any_id_search_filters_met
|
||||
, 0 -- a_require_all_non_id_search_filters_met
|
||||
, 0 -- a_require_any_non_id_search_filters_met
|
||||
, v_id_permission_dog_new -- ids_permission
|
||||
, v_id_access_level_edit -- ids_access_level
|
||||
, 0 -- a_show_errors
|
||||
, 0 -- a_debug
|
||||
);
|
||||
|
||||
SELECT
|
||||
IFNULL(CU_T.has_access, 0)
|
||||
INTO
|
||||
v_can_create
|
||||
FROM parts.DOG_Calc_User_Temp CU_T
|
||||
WHERE CU_T.GUID = a_guid
|
||||
LIMIT 1
|
||||
;
|
||||
|
||||
CALL parts.p_dog_clear_calc_user(
|
||||
a_guid
|
||||
, 0 -- a_debug
|
||||
);
|
||||
|
||||
IF v_can_create = 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 edit Assessment_Command_Modality_Links.'
|
||||
)
|
||||
;
|
||||
END IF;
|
||||
|
||||
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_Assessment_Command_Modality_Link;
|
||||
END IF;
|
||||
|
||||
DELETE FROM tmp_Assessment_Command_Modality_Link;
|
||||
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
|
||||
START TRANSACTION;
|
||||
|
||||
INSERT INTO parts.DOG_Dog_Change_Set (
|
||||
comment
|
||||
, id_user_updated_last_by
|
||||
, updated_last_on
|
||||
)
|
||||
VALUES (
|
||||
a_comment
|
||||
, a_id_user
|
||||
, v_time_start
|
||||
)
|
||||
;
|
||||
|
||||
SET v_id_change_set := LAST_INSERT_ID();
|
||||
|
||||
UPDATE parts.DOG_Assessment_Command_Modality_Link ASSESSMENT_COMMAND_MODALITY_LINK
|
||||
INNER JOIN tmp_Assessment_Command_Modality_Link t_ASSESSMENT_COMMAND_MODALITY_LINK
|
||||
ON ASSESSMENT_COMMAND_MODALITY_LINK.id_link = t_ASSESSMENT_COMMAND_MODALITY_LINK.id_link
|
||||
AND t_ASSESSMENT_COMMAND_MODALITY_LINK.is_new = 0
|
||||
SET
|
||||
ASSESSMENT_COMMAND_MODALITY_LINK.id_assessment = t_ASSESSMENT_COMMAND_MODALITY_LINK.id_assessment
|
||||
, ASSESSMENT_COMMAND_MODALITY_LINK.id_command = t_ASSESSMENT_COMMAND_MODALITY_LINK.id_command
|
||||
, ASSESSMENT_COMMAND_MODALITY_LINK.id_command_modality = t_ASSESSMENT_COMMAND_MODALITY_LINK.id_command_modality
|
||||
, ASSESSMENT_COMMAND_MODALITY_LINK.id_bribe = t_ASSESSMENT_COMMAND_MODALITY_LINK.id_bribe
|
||||
, ASSESSMENT_COMMAND_MODALITY_LINK.id_distance_from_handler = t_ASSESSMENT_COMMAND_MODALITY_LINK.id_distance_from_handler
|
||||
, ASSESSMENT_COMMAND_MODALITY_LINK.id_is_in_sight_of_handler = t_ASSESSMENT_COMMAND_MODALITY_LINK.id_is_in_sight_of_handler
|
||||
, ASSESSMENT_COMMAND_MODALITY_LINK.id_is_in_scent_range_of_handler = t_ASSESSMENT_COMMAND_MODALITY_LINK.id_is_in_scent_range_of_handler
|
||||
, ASSESSMENT_COMMAND_MODALITY_LINK.is_in_hearing_range_of_handler = t_ASSESSMENT_COMMAND_MODALITY_LINK.is_in_hearing_range_of_handler
|
||||
, ASSESSMENT_COMMAND_MODALITY_LINK.is_on_lead = t_ASSESSMENT_COMMAND_MODALITY_LINK.is_on_lead
|
||||
, ASSESSMENT_COMMAND_MODALITY_LINK.trial_count = t_ASSESSMENT_COMMAND_MODALITY_LINK.trial_count
|
||||
, ASSESSMENT_COMMAND_MODALITY_LINK.active = t_ASSESSMENT_COMMAND_MODALITY_LINK.active
|
||||
, ASSESSMENT_COMMAND_MODALITY_LINK.id_change_set = v_id_change_set
|
||||
;
|
||||
|
||||
INSERT INTO parts.DOG_Assessment_Command_Modality_Link (
|
||||
id_assessment
|
||||
, id_command
|
||||
, id_command_modality
|
||||
, id_bribe
|
||||
, id_distance_from_handler
|
||||
, id_is_in_sight_of_handler
|
||||
, id_is_in_scent_range_of_handler
|
||||
, is_in_hearing_range_of_handler
|
||||
, is_on_lead
|
||||
, trial_count
|
||||
, active
|
||||
, id_user_created_by
|
||||
, created_on
|
||||
)
|
||||
SELECT
|
||||
t_ASSESSMENT_COMMAND_MODALITY_LINK.id_assessment AS id_assessment
|
||||
, t_ASSESSMENT_COMMAND_MODALITY_LINK.id_command AS id_command
|
||||
, t_ASSESSMENT_COMMAND_MODALITY_LINK.id_command_modality AS id_command_modality
|
||||
, t_ASSESSMENT_COMMAND_MODALITY_LINK.id_bribe AS id_bribe
|
||||
, t_ASSESSMENT_COMMAND_MODALITY_LINK.id_distance_from_handler AS id_distance_from_handler
|
||||
, t_ASSESSMENT_COMMAND_MODALITY_LINK.id_is_in_sight_of_handler AS id_is_in_sight_of_handler
|
||||
, t_ASSESSMENT_COMMAND_MODALITY_LINK.id_is_in_scent_range_of_handler AS id_is_in_scent_range_of_handler
|
||||
, t_ASSESSMENT_COMMAND_MODALITY_LINK.is_in_hearing_range_of_handler AS is_in_hearing_range_of_handler
|
||||
, t_ASSESSMENT_COMMAND_MODALITY_LINK.is_on_lead AS is_on_lead
|
||||
, t_ASSESSMENT_COMMAND_MODALITY_LINK.trial_count AS trial_count
|
||||
, t_ASSESSMENT_COMMAND_MODALITY_LINK.active AS active
|
||||
, a_id_user AS created_by
|
||||
, v_time_start AS created_on
|
||||
FROM tmp_Assessment_Command_Modality_Link t_ASSESSMENT_COMMAND_MODALITY_LINK
|
||||
WHERE
|
||||
t_ASSESSMENT_COMMAND_MODALITY_LINK.is_new = 1
|
||||
AND t_ASSESSMENT_COMMAND_MODALITY_LINK.active = 1
|
||||
;
|
||||
|
||||
COMMIT;
|
||||
END IF;
|
||||
|
||||
START TRANSACTION;
|
||||
|
||||
DELETE FROM parts.DOG_Assessment_Command_Modality_Link_Temp
|
||||
WHERE GUID = a_guid
|
||||
;
|
||||
|
||||
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 t_ERROR
|
||||
INNER JOIN parts.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type
|
||||
;
|
||||
|
||||
IF a_debug = 1 THEN
|
||||
SELECT * FROM tmp_Assessment_Command_Modality_Link;
|
||||
END IF;
|
||||
|
||||
DROP TEMPORARY TABLE tmp_Assessment_Command_Modality_Link;
|
||||
DROP TEMPORARY TABLE tmp_Msg_Error;
|
||||
|
||||
IF a_debug = 1 THEN
|
||||
CALL parts.p_core_debug_timing_reporting ( v_time_start );
|
||||
END IF;
|
||||
END //
|
||||
DELIMITER ;
|
||||
|
||||
|
||||
|
||||
/*
|
||||
|
||||
'ripplesipplenippletippledipplekipple'
|
||||
DELETE FROM parts.DOG_Assessment_Command_Modality_Link WHERE id_link > 740;
|
||||
* /
|
||||
delete
|
||||
from parts.DOG_Assessment_Command_Modality_Link_Audit
|
||||
where id_link > 768
|
||||
;
|
||||
delete
|
||||
from parts.DOG_Assessment_Command_Modality_Link
|
||||
where id_link > 768
|
||||
;
|
||||
delete
|
||||
from parts.DOG_Assessment_Command_Modality_Link_Temp
|
||||
;
|
||||
select
|
||||
*
|
||||
-- COUNT(*)
|
||||
-- delete
|
||||
from parts.DOG_Assessment_Command_Modality_Link_Temp
|
||||
;
|
||||
select COUNT(*)
|
||||
from parts.DOG_Assessment_Command_Modality_Link_Temp
|
||||
;
|
||||
select
|
||||
*
|
||||
-- COUNT(*)
|
||||
-- delete
|
||||
from parts.DOG_Assessment_Command_Modality_Link
|
||||
;
|
||||
select COUNT(*)
|
||||
from parts.DOG_Assessment_Command_Modality_Link
|
||||
;
|
||||
|
||||
INSERT INTO parts.DOG_Assessment_Command_Modality_Link_Temp (
|
||||
id_link
|
||||
, id_dog
|
||||
, id_command
|
||||
, hand_signal_description
|
||||
, trial_count
|
||||
, active
|
||||
, guid
|
||||
)
|
||||
VALUES (
|
||||
-1 -- id_link
|
||||
, 1 -- id_dog
|
||||
, 1 -- id_command
|
||||
, 'Test deez noots' -- hand_signal_description
|
||||
, NULL -- trial_count
|
||||
, 1 -- active
|
||||
, 'ripplesipplenippletippledipplekipple'
|
||||
);
|
||||
|
||||
CALL parts.p_dog_save_assessment_command_modality_link (
|
||||
'nipples'
|
||||
, 'ripplesipplenippletippledipplekipple'
|
||||
, 1
|
||||
, 1
|
||||
);
|
||||
|
||||
|
||||
select
|
||||
*
|
||||
-- COUNT(*)
|
||||
-- delete
|
||||
from parts.DOG_Assessment_Command_Modality_Link_Temp
|
||||
;
|
||||
select COUNT(*)
|
||||
from parts.DOG_Assessment_Command_Modality_Link_Temp
|
||||
;
|
||||
select
|
||||
*
|
||||
-- COUNT(*)
|
||||
-- delete
|
||||
from parts.DOG_Assessment_Command_Modality_Link
|
||||
;
|
||||
select COUNT(*)
|
||||
from parts.DOG_Assessment_Command_Modality_Link
|
||||
;
|
||||
|
||||
*/
|
||||
436
static/MySQL/71601_p_ph_save_contact_form.sql
Normal file
436
static/MySQL/71601_p_ph_save_contact_form.sql
Normal file
@@ -0,0 +1,436 @@
|
||||
|
||||
USE parts;
|
||||
|
||||
DROP PROCEDURE IF EXISTS parts.p_ph_save_contact_form;
|
||||
|
||||
DELIMITER //
|
||||
CREATE PROCEDURE parts.p_ph_save_contact_form (
|
||||
IN a_comment VARCHAR(500),
|
||||
IN a_guid BINARY(36),
|
||||
IN a_id_user INT,
|
||||
IN a_debug BIT
|
||||
)
|
||||
BEGIN
|
||||
DECLARE v_code_type_error_bad_data VARCHAR(100);
|
||||
DECLARE v_id_access_level_view INT;
|
||||
DECLARE v_id_access_level_edit INT;
|
||||
DECLARE v_id_change_set INT;
|
||||
DECLARE v_id_permission_contact_form_admin INT;
|
||||
DECLARE v_id_permission_contact_form_new INT;
|
||||
DECLARE v_id_type_error_bad_data INT;
|
||||
DECLARE v_time_start TIMESTAMP(6);
|
||||
DECLARE v_can_admin BIT;
|
||||
DECLARE v_can_create 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 (
|
||||
display_order INT NOT NULL PRIMARY KEY AUTO_INCREMENT
|
||||
, id_type INT NULL
|
||||
, code VARCHAR(50) 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 *
|
||||
FROM tmp_Msg_Error;
|
||||
DROP TABLE IF EXISTS tmp_Msg_Error
|
||||
;
|
||||
END;
|
||||
|
||||
SET v_time_start := CURRENT_TIMESTAMP(6);
|
||||
SET v_code_type_error_bad_data := '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 LIMIT 1);
|
||||
SET v_id_permission_contact_form_admin := (SELECT id_permission FROM parts.DOG_Permission P WHERE P.code = 'CONTACT_FORM_ADMIN' LIMIT 1);
|
||||
SET v_id_permission_contact_form_new := (SELECT id_permission FROM parts.DOG_Permission P WHERE P.code = 'CONTACT_FORM_CREATE' LIMIT 1);
|
||||
|
||||
CALL parts.p_core_validate_guid ( a_guid );
|
||||
|
||||
DROP TABLE IF EXISTS tmp_Contact_Form;
|
||||
|
||||
CREATE TEMPORARY TABLE tmp_Contact_Form (
|
||||
id_contact_form INT NOT NULL
|
||||
, email VARCHAR(255) NOT NULL
|
||||
, name_contact VARCHAR(255) NOT NULL
|
||||
, name_company VARCHAR(255) NOT NULL
|
||||
, message TEXT NOT NULL
|
||||
, receive_marketing_communications BIT NOT NULL
|
||||
, active BIT NOT NULL
|
||||
, name_error VARCHAR(255)
|
||||
, is_new BIT NOT NULL
|
||||
);
|
||||
|
||||
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error (
|
||||
display_order INT NOT NULL PRIMARY KEY AUTO_INCREMENT
|
||||
, id_type INT NULL
|
||||
, code VARCHAR(50) NOT NULL
|
||||
, msg VARCHAR(4000) NOT NULL
|
||||
);
|
||||
|
||||
|
||||
-- Get data from Temp table
|
||||
INSERT INTO tmp_Contact_Form (
|
||||
id_contact_form
|
||||
, email
|
||||
, name_contact
|
||||
, name_company
|
||||
, message
|
||||
, receive_marketing_communications
|
||||
, active
|
||||
, is_new
|
||||
)
|
||||
SELECT
|
||||
CF_T.id_contact_form AS id_contact_form
|
||||
, IFNULL(CF_T.email, CF.email) AS code
|
||||
, IFNULL(CF_T.name_contact, CF.name_contact) AS name_contact
|
||||
, IFNULL(CF_T.name_company, CF.name_company) AS name_company
|
||||
, IFNULL(CF_T.message, CF.message) AS message
|
||||
, COALESCE(CF_T.receive_marketing_communications, CF.receive_marketing_communications, 0) AS receive_marketing_communications
|
||||
, COALESCE(CF_T.active, CF.active, 1) AS active
|
||||
, CASE WHEN IFNULL(CF_T.id_contact_form, 0) < 1 THEN 1 ELSE 0 END AS is_new
|
||||
FROM parts.PH_Contact_Form_Temp CF_T
|
||||
LEFT JOIN parts.PH_Contact_Form CF ON CF_T.id_contact_form = CF.id_contact_form
|
||||
WHERE CF_T.guid = a_guid
|
||||
;
|
||||
|
||||
UPDATE tmp_Contact_Form t_CF
|
||||
SET name_error = COALESCE(t_CF.email, t_CF.name_company, t_CF.name_contact, t_CF.message, '(No Contact Form)')
|
||||
;
|
||||
|
||||
-- Validation
|
||||
-- Missing mandatory fields
|
||||
-- email
|
||||
IF EXISTS (SELECT * FROM tmp_Contact_Form t_CF WHERE ISNULL(t_CF.email) LIMIT 1) THEN
|
||||
INSERT INTO tmp_Msg_Error (
|
||||
id_type
|
||||
, code
|
||||
, msg
|
||||
)
|
||||
SELECT
|
||||
v_id_type_error_bad_data
|
||||
, v_code_type_error_bad_data
|
||||
, CONCAT('The following Contact Form(s) do not have an Email: ', GROUP_CONCAT(t_CF.name_error SEPARATOR ', ')) AS msg
|
||||
FROM tmp_Contact_Form t_CF
|
||||
WHERE ISNULL(t_CF.email)
|
||||
;
|
||||
END IF;
|
||||
-- name_contact
|
||||
IF EXISTS (SELECT * FROM tmp_Contact_Form t_CF WHERE ISNULL(t_CF.name_contact) LIMIT 1) THEN
|
||||
INSERT INTO tmp_Msg_Error (
|
||||
id_type
|
||||
, code
|
||||
, msg
|
||||
)
|
||||
SELECT
|
||||
v_id_type_error_bad_data
|
||||
, v_code_type_error_bad_data
|
||||
, CONCAT('The following Contact Form(s) do not have a Contact Name: ', GROUP_CONCAT(t_CF.name_error SEPARATOR ', ')) AS msg
|
||||
FROM tmp_Contact_Form t_CF
|
||||
WHERE ISNULL(t_CF.name_contact)
|
||||
;
|
||||
END IF;
|
||||
-- name_company
|
||||
IF EXISTS (SELECT * FROM tmp_Contact_Form t_CF WHERE ISNULL(t_CF.name_company) LIMIT 1) THEN
|
||||
INSERT INTO tmp_Msg_Error (
|
||||
id_type
|
||||
, code
|
||||
, msg
|
||||
)
|
||||
SELECT
|
||||
v_id_type_error_bad_data
|
||||
, v_code_type_error_bad_data
|
||||
, CONCAT('The following Contact Form(s) do not have a Company Name: ', GROUP_CONCAT(t_CF.name_error SEPARATOR ', ')) AS msg
|
||||
FROM tmp_Contact_Form t_CF
|
||||
WHERE ISNULL(t_CF.name)
|
||||
;
|
||||
END IF;
|
||||
-- message
|
||||
IF EXISTS (SELECT * FROM tmp_Contact_Form t_CF WHERE ISNULL(t_CF.message) LIMIT 1) THEN
|
||||
INSERT INTO tmp_Msg_Error (
|
||||
id_type
|
||||
, code
|
||||
, msg
|
||||
)
|
||||
SELECT
|
||||
v_id_type_error_bad_data
|
||||
, v_code_type_error_bad_data
|
||||
, CONCAT('The following Contact Form(s) do not have a Message: ', GROUP_CONCAT(t_CF.name_error SEPARATOR ', ')) AS msg
|
||||
FROM tmp_Contact_Form t_CF
|
||||
WHERE ISNULL(t_CF.message)
|
||||
;
|
||||
END IF;
|
||||
|
||||
-- Permissions
|
||||
IF a_debug = 1 THEN
|
||||
SELECT
|
||||
a_guid
|
||||
, 0 -- get_all_user
|
||||
, 0 -- get_inactive_user
|
||||
, a_id_user -- ids_user
|
||||
, '' -- a_auth0_ids_user
|
||||
, '' -- a_names_user
|
||||
, '' -- a_emails_user
|
||||
, 1 -- a_require_all_id_search_filters_met
|
||||
, 1 -- a_require_any_id_search_filters_met
|
||||
, 0 -- a_require_all_non_id_search_filters_met
|
||||
, 0 -- a_require_any_non_id_search_filters_met
|
||||
, v_id_permission_contact_form_admin -- ids_permission
|
||||
, v_id_access_level_view -- ids_access_level
|
||||
, 0 -- a_show_errors
|
||||
, 0 -- a_debug
|
||||
;
|
||||
END IF;
|
||||
|
||||
CALL parts.p_dog_calc_user(
|
||||
a_guid
|
||||
, 0 -- get_all_user
|
||||
, 0 -- get_inactive_user
|
||||
, a_id_user -- ids_user
|
||||
, '' -- a_auth0_ids_user
|
||||
, '' -- a_names_user
|
||||
, '' -- a_emails_user
|
||||
, 1 -- a_require_all_id_search_filters_met
|
||||
, 1 -- a_require_any_id_search_filters_met
|
||||
, 0 -- a_require_all_non_id_search_filters_met
|
||||
, 0 -- a_require_any_non_id_search_filters_met
|
||||
, v_id_permission_contact_form_admin -- ids_permission
|
||||
, v_id_access_level_view -- ids_access_level
|
||||
, 0 -- a_show_errors
|
||||
, 0 -- a_debug
|
||||
);
|
||||
|
||||
SELECT
|
||||
IFNULL(CALC_USER_T.has_access, 0)
|
||||
INTO
|
||||
v_can_admin
|
||||
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_admin;
|
||||
SELECT COUNT(*) AS Count_Errors FROM tmp_Msg_Error t_ERROR;
|
||||
SELECT * FROM tmp_Msg_Error t_ERROR;
|
||||
END IF;
|
||||
|
||||
CALL parts.p_dog_clear_calc_user(
|
||||
a_guid
|
||||
, 0 -- a_debug
|
||||
);
|
||||
|
||||
|
||||
IF a_debug = 1 THEN
|
||||
SELECT
|
||||
a_guid
|
||||
, 0 -- get_all_user
|
||||
, 0 -- get_inactive_user
|
||||
, a_id_user -- ids_user
|
||||
, '' -- a_auth0_ids_user
|
||||
, '' -- a_names_user
|
||||
, '' -- a_emails_user
|
||||
, 1 -- a_require_all_id_search_filters_met
|
||||
, 1 -- a_require_any_id_search_filters_met
|
||||
, 0 -- a_require_all_non_id_search_filters_met
|
||||
, 0 -- a_require_any_non_id_search_filters_met
|
||||
, v_id_permission_contact_form_new -- ids_permission
|
||||
, v_id_access_level_view -- ids_access_level
|
||||
, 0 -- a_show_errors
|
||||
, 0 -- a_debug
|
||||
;
|
||||
END IF;
|
||||
|
||||
CALL parts.p_dog_calc_user(
|
||||
a_guid
|
||||
, 0 -- get_all_user
|
||||
, 0 -- get_inactive_user
|
||||
, a_id_user -- ids_user
|
||||
, '' -- a_auth0_ids_user
|
||||
, '' -- a_names_user
|
||||
, '' -- a_emails_user
|
||||
, 1 -- a_require_all_id_search_filters_met
|
||||
, 1 -- a_require_any_id_search_filters_met
|
||||
, 0 -- a_require_all_non_id_search_filters_met
|
||||
, 0 -- a_require_any_non_id_search_filters_met
|
||||
, v_id_permission_contact_form_new -- ids_permission
|
||||
, v_id_access_level_view -- ids_access_level
|
||||
, 0 -- a_show_errors
|
||||
, 0 -- a_debug
|
||||
);
|
||||
|
||||
SELECT
|
||||
IFNULL(CALC_USER_T.has_access, 0)
|
||||
INTO
|
||||
v_can_create
|
||||
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_create;
|
||||
SELECT COUNT(*) AS Count_Errors FROM tmp_Msg_Error t_ERROR;
|
||||
SELECT * FROM tmp_Msg_Error t_ERROR;
|
||||
END IF;
|
||||
|
||||
CALL parts.p_dog_clear_calc_user(
|
||||
a_guid
|
||||
, 0 -- a_debug
|
||||
);
|
||||
|
||||
IF (v_can_admin = 0 AND EXISTS(SELECT * FROM tmp_Contact_Form WHERE is_new = 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 admin Contact Forms.'
|
||||
)
|
||||
;
|
||||
END IF;
|
||||
|
||||
IF EXISTS (SELECT * FROM tmp_Msg_Error LIMIT 1) THEN
|
||||
IF a_debug = 1 THEN
|
||||
SELECT * from tmp_Contact_Form;
|
||||
END IF;
|
||||
|
||||
DELETE FROM tmp_Contact_Form;
|
||||
END IF;
|
||||
|
||||
IF NOT EXISTS (SELECT * FROM tmp_Msg_Error LIMIT 1) THEN
|
||||
START TRANSACTION;
|
||||
|
||||
INSERT INTO parts.PH_Contact_Form_Change_Set (
|
||||
comment
|
||||
, id_user_updated_last_by
|
||||
, updated_last_on
|
||||
)
|
||||
VALUES (
|
||||
a_comment
|
||||
, a_id_user
|
||||
, v_time_start
|
||||
)
|
||||
;
|
||||
|
||||
SET v_id_change_set := LAST_INSERT_ID();
|
||||
|
||||
UPDATE parts.PH_Contact_Form CF
|
||||
INNER JOIN tmp_Contact_Form t_CF
|
||||
ON CF.id_contact_form = t_CF.id_contact_form
|
||||
AND t_CF.is_new = 0
|
||||
SET
|
||||
CF.email = t_CF.email
|
||||
, CF.name_contact = t_CF.name_contact
|
||||
, CF.name_company = t_CF.name_company
|
||||
, CF.message = t_CF.message
|
||||
, CF.receive_marketing_communications = t_CF.receive_marketing_communications
|
||||
, CF.active = t_CF.active
|
||||
, CF.id_change_set = v_id_change_set
|
||||
;
|
||||
|
||||
INSERT INTO parts.PH_Contact_Form (
|
||||
email
|
||||
, name_contact
|
||||
, name_company
|
||||
, message
|
||||
, receive_marketing_communications
|
||||
, active
|
||||
, id_user_created_by
|
||||
, created_on
|
||||
)
|
||||
SELECT
|
||||
t_CF.email AS email
|
||||
, t_CF.name_contact AS name_contact
|
||||
, t_CF.name_company AS name_company
|
||||
, t_CF.message AS message
|
||||
, t_CF.receive_marketing_communications AS receive_marketing_communications
|
||||
, t_CF.active AS active
|
||||
, a_id_user AS created_by
|
||||
, v_time_start AS created_on
|
||||
FROM tmp_Contact_Form t_CF
|
||||
WHERE
|
||||
t_CF.is_new = 1
|
||||
AND t_CF.active = 1
|
||||
;
|
||||
|
||||
COMMIT;
|
||||
END IF;
|
||||
|
||||
START TRANSACTION;
|
||||
|
||||
DELETE FROM parts.PH_Contact_Form_Temp
|
||||
WHERE GUID = a_guid
|
||||
;
|
||||
|
||||
COMMIT;
|
||||
|
||||
-- Errors
|
||||
SELECT *
|
||||
FROM tmp_Msg_Error t_ME
|
||||
INNER JOIN parts.CORE_Msg_Error_Type MET ON t_ME.id_type = MET.id_type
|
||||
;
|
||||
|
||||
IF a_debug = 1 THEN
|
||||
SELECT * from tmp_Contact_Form;
|
||||
END IF;
|
||||
|
||||
DROP TEMPORARY TABLE tmp_Contact_Form;
|
||||
DROP TEMPORARY TABLE tmp_Msg_Error;
|
||||
|
||||
IF a_debug = 1 THEN
|
||||
CALL parts.p_core_debug_timing_reporting ( v_time_start );
|
||||
END IF;
|
||||
END //
|
||||
DELIMITER ;
|
||||
|
||||
/*
|
||||
select
|
||||
*
|
||||
-- COUNT(*)
|
||||
-- delete
|
||||
from parts.PH_Contact_Form_Temp
|
||||
;
|
||||
|
||||
|
||||
CALL parts.p_ph_save_contact_form (
|
||||
'nipples'
|
||||
, (SELECT GUID FROM parts.PH_Contact_Form_Temp ORDER BY id_temp DESC LIMIT 1)
|
||||
, 1
|
||||
, 1
|
||||
);
|
||||
|
||||
select
|
||||
*
|
||||
-- COUNT(*)
|
||||
-- delete
|
||||
from parts.PH_Contact_Form_Temp
|
||||
;
|
||||
|
||||
*/
|
||||
277
static/MySQL/71603_p_ph_get_many_contact_form.sql
Normal file
277
static/MySQL/71603_p_ph_get_many_contact_form.sql
Normal file
@@ -0,0 +1,277 @@
|
||||
|
||||
USE parts;
|
||||
|
||||
DROP PROCEDURE IF EXISTS parts.p_ph_get_many_contact_form;
|
||||
|
||||
DELIMITER //
|
||||
CREATE PROCEDURE parts.p_ph_get_many_contact_form (
|
||||
IN a_id_user INT
|
||||
, IN a_get_all_contact_form BIT
|
||||
, IN a_get_inactive_contact_form BIT
|
||||
, IN a_ids_contact_form VARCHAR(500)
|
||||
, IN a_debug BIT
|
||||
)
|
||||
BEGIN
|
||||
DECLARE v_has_filter_contact_form BIT;
|
||||
DECLARE v_guid BINARY(36);
|
||||
DECLARE v_id_access_level_admin INT;
|
||||
DECLARE v_id_permission_contact_form_admin INT;
|
||||
DECLARE v_id_minimum INT;
|
||||
DECLARE v_time_start TIMESTAMP(6);
|
||||
DECLARE v_can_view BIT;
|
||||
|
||||
SET v_time_start := CURRENT_TIMESTAMP(6);
|
||||
SET v_guid := UUID();
|
||||
SET v_id_access_level_admin := (SELECT ACCESS_LEVEL.id_access_level FROM parts.DOG_Access_Level ACCESS_LEVEL WHERE ACCESS_LEVEL.code = 'ADMIN' LIMIT 1);
|
||||
SET v_id_permission_contact_form_admin := (SELECT PERMISSION.id_permission FROM parts.DOG_Permission PERMISSION WHERE PERMISSION.code = 'CONTACT_FORM_ADMIN' LIMIT 1);
|
||||
|
||||
SET a_id_user := IFNULL(a_id_user, 0);
|
||||
SET a_get_all_contact_form := IFNULL(a_get_all_contact_form, 0);
|
||||
SET a_get_inactive_contact_form := IFNULL(a_get_inactive_contact_form, 0);
|
||||
SET a_ids_contact_form := TRIM(IFNULL(a_ids_contact_form, ''));
|
||||
SET a_debug := IFNULL(a_debug, 0);
|
||||
|
||||
IF a_debug = 1 THEN
|
||||
SELECT
|
||||
a_id_user
|
||||
, a_get_all_contact_form
|
||||
, a_get_inactive_contact_form
|
||||
, a_ids_contact_form
|
||||
, a_debug
|
||||
;
|
||||
END IF;
|
||||
|
||||
DROP TEMPORARY TABLE IF EXISTS tmp_Split;
|
||||
DROP TEMPORARY TABLE IF EXISTS tmp_Contact_Form;
|
||||
|
||||
CREATE TEMPORARY TABLE tmp_Contact_Form (
|
||||
id_contact_form INT NOT NULL
|
||||
);
|
||||
|
||||
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error (
|
||||
display_order INT NOT NULL PRIMARY KEY AUTO_INCREMENT
|
||||
, id_type INT NULL
|
||||
, code VARCHAR(50) NOT NULL
|
||||
, 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_contact_form = CASE WHEN a_ids_contact_form = '' THEN 0 ELSE 1 END;
|
||||
|
||||
-- Contact Forms
|
||||
IF v_has_filter_contact_form = 1 THEN
|
||||
CALL parts.p_split(v_guid, a_ids_contact_form, ',', 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 LIMIT 1) THEN
|
||||
IF EXISTS (
|
||||
SELECT *
|
||||
FROM tmp_Split t_S
|
||||
LEFT JOIN parts.PH_Contact_Form CF ON t_S.as_int = CF.id_contact_form
|
||||
WHERE
|
||||
ISNULL(t_S.as_int)
|
||||
OR ISNULL(CF.id_contact_form)
|
||||
OR (
|
||||
CF.active = 0
|
||||
AND a_get_inactive_contact_form = 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 Contact Form IDs: ', IFNULL(GROUP_CONCAT(t_S.substring SEPARATOR ', '), 'NULL'))
|
||||
FROM tmp_Split t_S
|
||||
LEFT JOIN parts.PH_Contact_Form CF ON t_S.as_int = CF.id_contact_form
|
||||
WHERE
|
||||
ISNULL(t_S.as_int)
|
||||
OR ISNULL(CF.id_contact_form)
|
||||
OR (
|
||||
CF.active = 0
|
||||
AND a_get_inactive_contact_form = 0
|
||||
)
|
||||
;
|
||||
ELSE
|
||||
INSERT INTO tmp_Contact_Form (
|
||||
id_contact_form
|
||||
)
|
||||
SELECT
|
||||
CF.id_contact_form
|
||||
FROM tmp_Split t_S
|
||||
RIGHT JOIN parts.PH_Contact_Form CF ON t_S.as_int = CF.id_contact_form
|
||||
WHERE
|
||||
(
|
||||
a_get_all_contact_form = 1
|
||||
OR (
|
||||
v_has_filter_contact_form = 1
|
||||
AND NOT ISNULL(t_S.as_int)
|
||||
)
|
||||
)
|
||||
AND (
|
||||
a_get_inactive_contact_form = 1
|
||||
OR CF.active = 1
|
||||
)
|
||||
;
|
||||
END IF;
|
||||
END IF;
|
||||
|
||||
DELETE FROM tmp_Split;
|
||||
|
||||
|
||||
-- Permissions
|
||||
IF a_debug = 1 THEN
|
||||
SELECT
|
||||
v_guid
|
||||
, 0 -- get_all_user
|
||||
, 0 -- get_inactive_user
|
||||
, a_id_user -- ids_user
|
||||
, '' -- a_auth0_ids_user
|
||||
, '' -- a_names_user
|
||||
, '' -- a_emails_user
|
||||
, 1 -- a_require_all_id_search_filters_met
|
||||
, 1 -- a_require_any_id_search_filters_met
|
||||
, 0 -- a_require_all_non_id_search_filters_met
|
||||
, 0 -- a_require_any_non_id_search_filters_met
|
||||
, v_id_permission_contact_form_admin -- ids_permission
|
||||
, v_id_access_level_admin -- ids_access_level
|
||||
, 0 -- a_show_errors
|
||||
, 0 -- a_debug
|
||||
;
|
||||
END IF;
|
||||
|
||||
CALL parts.p_dog_calc_user(
|
||||
v_guid
|
||||
, 0 -- get_all_user
|
||||
, 0 -- get_inactive_user
|
||||
, a_id_user -- ids_user
|
||||
, '' -- a_auth0_ids_user
|
||||
, '' -- a_names_user
|
||||
, '' -- a_emails_user
|
||||
, 1 -- a_require_all_id_search_filters_met
|
||||
, 1 -- a_require_any_id_search_filters_met
|
||||
, 0 -- a_require_all_non_id_search_filters_met
|
||||
, 0 -- a_require_any_non_id_search_filters_met
|
||||
, v_id_permission_contact_form_admin -- ids_permission
|
||||
, v_id_access_level_admin -- ids_access_level
|
||||
, 0 -- a_show_errors
|
||||
, 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;
|
||||
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
|
||||
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 Contact Forms.'
|
||||
)
|
||||
;
|
||||
|
||||
IF a_debug = 1 THEN
|
||||
SELECT * FROM tmp_Contact_Form;
|
||||
END IF;
|
||||
|
||||
DELETE FROM tmp_Contact_Form;
|
||||
END IF;
|
||||
|
||||
CALL parts.p_dog_clear_calc_user(
|
||||
v_guid
|
||||
, 0 -- a_debug
|
||||
);
|
||||
|
||||
-- Outputs
|
||||
-- Contact Forms
|
||||
SELECT
|
||||
t_CF.id_contact_form
|
||||
, CF.email
|
||||
, CF.name_contact
|
||||
, CF.name_company
|
||||
, CF.message
|
||||
, CF.active
|
||||
, v_can_view
|
||||
FROM tmp_Contact_Form t_CF
|
||||
INNER JOIN parts.PH_Contact_Form CF ON t_CF.id_contact_form = CF.id_contact_form
|
||||
GROUP BY t_CF.id_contact_form
|
||||
ORDER BY CF.created_on DESC
|
||||
;
|
||||
|
||||
-- Errors
|
||||
SELECT *
|
||||
FROM tmp_Msg_Error t_ME
|
||||
INNER JOIN parts.CORE_Msg_Error_Type MET ON t_ME.id_type = MET.id_type
|
||||
;
|
||||
|
||||
IF a_debug = 1 AND v_can_view = 1 THEN
|
||||
SELECT * FROM tmp_Contact_Form;
|
||||
END IF;
|
||||
|
||||
DROP TEMPORARY TABLE IF EXISTS tmp_Split;
|
||||
DROP TEMPORARY TABLE IF EXISTS tmp_Contact_Form;
|
||||
|
||||
IF a_debug = 1 THEN
|
||||
CALL parts.p_core_debug_timing_reporting ( v_time_start );
|
||||
END IF;
|
||||
END //
|
||||
DELIMITER ;
|
||||
|
||||
|
||||
/*
|
||||
|
||||
CALL parts.p_ph_get_many_contact_form (
|
||||
1 -- 'auth0|6582b95c895d09a70ba10fef', -- a_id_user
|
||||
, 1 -- a_get_all_contact_form
|
||||
, 0 -- a_get_inactive_contact_form
|
||||
, '' -- a_ids_contact_form
|
||||
, 0 -- a_debug
|
||||
);
|
||||
|
||||
*/
|
||||
@@ -99,7 +99,12 @@ VALUES
|
||||
, (
|
||||
1
|
||||
, 'USER'
|
||||
, 'Admin User'
|
||||
, 'User'
|
||||
)
|
||||
, (
|
||||
2
|
||||
, 'PROJECT_HUB'
|
||||
, 'Project Hub'
|
||||
)
|
||||
;
|
||||
|
||||
@@ -154,6 +159,20 @@ VALUES
|
||||
, 2
|
||||
, 2
|
||||
)
|
||||
, (
|
||||
1
|
||||
, 'CONTACT_FORM_ADMIN'
|
||||
, 'Admin Contact Form'
|
||||
, 3
|
||||
, 3
|
||||
)
|
||||
, (
|
||||
1
|
||||
, 'CONTACT_FORM_CREATE'
|
||||
, 'Create Contact Form'
|
||||
, 3
|
||||
, 4
|
||||
)
|
||||
;
|
||||
|
||||
-- Users
|
||||
@@ -265,6 +284,18 @@ VALUES
|
||||
, 6
|
||||
, 3
|
||||
, 1
|
||||
)
|
||||
, (
|
||||
1
|
||||
, 7
|
||||
, 3
|
||||
, 1
|
||||
)
|
||||
, (
|
||||
1
|
||||
, 8
|
||||
, 3
|
||||
, 1
|
||||
)
|
||||
, (
|
||||
2
|
||||
@@ -302,6 +333,18 @@ VALUES
|
||||
, 1
|
||||
, 1
|
||||
)
|
||||
, (
|
||||
2
|
||||
, 7
|
||||
, 4
|
||||
, 1
|
||||
)
|
||||
, (
|
||||
2
|
||||
, 8
|
||||
, 1
|
||||
, 1
|
||||
)
|
||||
;
|
||||
|
||||
-- User Role link
|
||||
|
||||
@@ -0,0 +1,108 @@
|
||||
USE parts;
|
||||
|
||||
DROP PROCEDURE IF EXISTS parts.p_ph_test_save_contact_form;
|
||||
|
||||
|
||||
DELIMITER //
|
||||
CREATE PROCEDURE parts.p_ph_test_save_contact_form ()
|
||||
BEGIN
|
||||
|
||||
DECLARE v_guid BINARY(36);
|
||||
DECLARE v_time_start TIMESTAMP(6);
|
||||
|
||||
SET v_time_start := CURRENT_TIMESTAMP(6);
|
||||
SET v_guid := 'nipple_ripple_chipple_spittle_pickle'; -- 123456789012345678901234567890123456
|
||||
|
||||
SELECT 'Start of Test';
|
||||
|
||||
SELECT *
|
||||
FROM parts.PH_Contact_Form
|
||||
;
|
||||
SELECT *
|
||||
FROM parts.PH_Contact_Form_Temp
|
||||
;
|
||||
|
||||
START TRANSACTION;
|
||||
|
||||
INSERT INTO parts.PH_Contact_Form_Temp (
|
||||
id_contact_form
|
||||
, email
|
||||
, name_contact
|
||||
, name_company
|
||||
, message
|
||||
, guid
|
||||
, active
|
||||
)
|
||||
/*
|
||||
VALUES (
|
||||
-1 -- id_contact_form
|
||||
, 'edward.middletonsmith@gmail.com' -- email
|
||||
, 'Teddy' -- name_contact
|
||||
, 'PARTS Ltd' -- name_company
|
||||
, 'Sa dude' -- message
|
||||
, v_guid
|
||||
)
|
||||
*/
|
||||
VALUES (
|
||||
-1 -- id_contact_form
|
||||
, 'edward.middletonsmith@gmail.com' -- email
|
||||
, 'Teddy' -- name_contact
|
||||
, 'PARTS Ltd' -- name_company
|
||||
, 'hegrodorf is good' -- message
|
||||
, v_guid
|
||||
, 1 -- active
|
||||
)
|
||||
;
|
||||
|
||||
COMMIT;
|
||||
|
||||
SELECT *
|
||||
FROM parts.PH_Contact_Form_Temp
|
||||
-- WHERE GUID = v_guid
|
||||
;
|
||||
|
||||
CALL parts.p_ph_save_contact_form (
|
||||
'Test save Contact Form' -- comment
|
||||
, v_guid -- guid
|
||||
, 3 -- 1 -- id_user
|
||||
, 1 -- debug
|
||||
);
|
||||
|
||||
SELECT *
|
||||
FROM parts.PH_Contact_Form
|
||||
;
|
||||
SELECT *
|
||||
FROM parts.PH_Contact_Form_Temp
|
||||
;
|
||||
|
||||
CALL parts.p_debug_timing_reporting ( v_time_start );
|
||||
END //
|
||||
DELIMITER ;
|
||||
|
||||
|
||||
/*
|
||||
SELECT 'Before Test';
|
||||
SELECT *
|
||||
FROM parts.PH_Contact_Form
|
||||
;
|
||||
SELECT *
|
||||
FROM parts.PH_Contact_Form_Temp
|
||||
;
|
||||
|
||||
|
||||
CALL parts.p_ph_test_save_contact_form ();
|
||||
|
||||
SELECT 'After Test';
|
||||
SELECT *
|
||||
FROM parts.PH_Contact_Form
|
||||
;
|
||||
SELECT *
|
||||
FROM parts.PH_Contact_Form_Temp
|
||||
;
|
||||
|
||||
DELETE FROM parts.PH_Contact_Form_Temp;
|
||||
|
||||
DROP TABLE IF EXISTS tmp_Msg_Error;
|
||||
|
||||
|
||||
*/
|
||||
Reference in New Issue
Block a user