Feat(SQL, UI): 1. Calc and Get Many Stored Procedures created for Weather, Lighting Level, Assessment, Distraction Type, Distraction Intensity Level, Distraction, Bribe, Assessment Command Modality Link, Response Quality Metric, Obedience Level, and Assessment Response. \n 2. Assessments and Assessment pages created with data loading and hooked up, but not saving.

This commit is contained in:
2025-07-24 16:48:18 +01:00
parent 6bb3a77a34
commit fad5336cc4
137 changed files with 10442 additions and 1116 deletions

View File

@@ -1,15 +1,389 @@
https://www.molly.teddy.org.uk/login_callback, http://www.molly.teddy.org.uk/login_callback
, https://molly.teddy.org.uk/login_callback, http://molly.teddy.org.uk/login_callback
, https://www.fetch-metrics.co.uk/login_callback, http://www.fetch-metrics.co.uk/login_callback
, https://fetch-metrics.co.uk/login_callback, http://fetch-metrics.co.uk/login_callback
, https://www.fetch-metrics.com/login_callback, http://www.fetch-metrics.com/login_callback
, https://fetch-metrics.com/login_callback, http://fetch-metrics.com/login_callback
, http://127.0.0.1:5000/login_callback
USE demo;
http://www.molly.teddy.org.uk/, https://www.molly.teddy.org.uk/,
http://molly.teddy.org.uk/, https://molly.teddy.org.uk/,
http://www.molly.teddy.org.uk/logout, https://www.molly.teddy.org.uk/logout,
http://molly.teddy.org.uk/logout, https://molly.teddy.org.uk/logout,
http://www.molly.teddy.org.uk/logout_callback, https://www.molly.teddy.org.uk/logout_callback,
http://molly.teddy.org.uk/logout_callback, https://molly.teddy.org.uk/logout_callback,
http://127.0.0.1:5000/logout, http://127.0.0.1:5000/logout_callback
DROP PROCEDURE IF EXISTS demo.p_dog_get_many_response_quality_metric;
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
)
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_id_access_level_view INT;
DECLARE v_id_minimum INT;
DECLARE v_id_permission_dog_view INT;
DECLARE v_id_type_error_bad_data INT;
DECLARE v_id_type_error_no_permission INT;
DECLARE v_time_start TIMESTAMP(6);
DECLARE 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) NOT NULL
, msg TEXT NOT NULL
);
INSERT INTO tmp_Msg_Error (
id_type
, code
, msg
)
SELECT
MET.id_type
, @errno
, @text
FROM demo.CORE_Msg_Error_Type MET
WHERE MET.code = 'MYSQL_ERROR'
;
SELECT
t_ERROR.id_error
, t_ERROR.id_type
, t_ERROR.code
, ERROR_TYPE.name
, ERROR_TYPE.description
, ERROR_TYPE.is_breaking_error
, ERROR_TYPE.background_colour
, ERROR_TYPE.text_colour
, t_ERROR.msg
FROM tmp_Msg_Error t_ERROR
INNER JOIN demo.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type
;
DROP TABLE IF EXISTS tmp_Msg_Error;
END;
SET v_time_start := CURRENT_TIMESTAMP(6);
SET v_guid := UUID();
SET v_code_type_error_bad_data := 'BAD_DATA';
SET v_code_type_error_no_permission := 'NO_PERMISSION';
SET v_id_type_error_bad_data := (SELECT ERROR_TYPE.id_type FROM demo.CORE_Msg_Error_Type ERROR_TYPE WHERE ERROR_TYPE.code = v_code_type_error_bad_data LIMIT 1);
SET v_id_type_error_no_permission := (SELECT ERROR_TYPE.id_type FROM demo.CORE_Msg_Error_Type ERROR_TYPE WHERE ERROR_TYPE.code = v_code_type_error_no_permission LIMIT 1);
SET v_id_permission_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 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);
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;
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 IF NOT EXISTS tmp_Msg_Error (
id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT
, id_type INT NULL
, code VARCHAR(250) NOT NULL
, msg TEXT NOT NULL
);
-- 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_dog_view -- ids_permission
, v_id_access_level_view -- ids_access_level
, 0 -- a_show_errors
, 0 -- a_debug
;
END IF;
CALL demo.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_dog_view -- 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_view
FROM demo.DOG_Calc_User_Temp CALC_USER_T
WHERE CALC_USER_T.GUID = v_guid
LIMIT 1
;
IF a_debug = 1 THEN
SELECT v_can_view;
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 RESPONSE_QUALITY_METRIC.'
)
;
END IF;
CALL demo.p_dog_clear_calc_user(
v_guid
, 0 -- a_debug
);
-- 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
;
IF a_debug = 1 THEN
SELECT COUNT(*) FROM tmp_Response_Quality_Metric;
SELECT * FROM tmp_Response_Quality_Metric;
END IF;
END IF;
-- Filter outputs
IF EXISTS(SELECT * FROM tmp_Msg_Error t_ERROR INNER JOIN demo.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type WHERE ERROR_TYPE.is_breaking_error = 1 LIMIT 1) THEN
IF a_debug = 1 THEN
SELECT * FROM tmp_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
;
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
);
DROP TEMPORARY TABLE IF EXISTS tmp_Msg_Error;
DROP TEMPORARY TABLE IF EXISTS tmp_Response_Quality_Metric;
IF a_debug = 1 THEN
CALL demo.p_core_debug_timing_reporting ( v_time_start );
END IF;
END //
DELIMITER ;
/*
CALL demo.p_dog_get_many_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_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
);
*/

View File

@@ -12,8 +12,8 @@ WHERE
CREATE TABLE IF NOT EXISTS DOG_Unit_Measurement (
id_unit_measurement INT NOT NULL AUTO_INCREMENT PRIMARY KEY
, name_singular VARCHAR(255) NOT NULL
, name_plural VARCHAR(256) NOT NULL
, name_singular VARCHAR(250) NOT NULL
, name_plural VARCHAR(250) NOT NULL
, symbol VARCHAR(50) NOT NULL
, symbol_is_suffix_not_prefix BIT NOT NULL DEFAULT 1
, is_base_unit BIT NOT NULL DEFAULT 0

View File

@@ -1,6 +1,8 @@
USE parts;
DROP TABLE IF EXISTS parts.DOG_Distraction_Temp;
SELECT CONCAT('WARNING: Table ', TABLE_SCHEMA, '.', TABLE_NAME, ' already exists.') AS msg_warning
FROM INFORMATION_SCHEMA.TABLES
WHERE
@@ -14,6 +16,7 @@ CREATE TABLE IF NOT EXISTS parts.DOG_Distraction_Temp (
, 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

View File

@@ -1,6 +1,8 @@
USE parts;
-- DROP TABLE IF EXISTS parts.DOG_Assessment_Response_Temp;
SELECT CONCAT('WARNING: Table ', TABLE_SCHEMA, '.', TABLE_NAME, ' already exists.') AS msg_warning
FROM INFORMATION_SCHEMA.TABLES
WHERE
@@ -10,6 +12,7 @@ WHERE
CREATE TABLE IF NOT EXISTS parts.DOG_Assessment_Response_Temp (
id_temp INT NOT NULL PRIMARY KEY AUTO_INCREMENT
, id_response INT
, id_assessment_command_modality_link INT
, id_response_quality_metric INT
, id_obedience_level INT

View File

@@ -68,8 +68,8 @@ BEGIN
, ERROR_TYPE.name
, ERROR_TYPE.description
, ERROR_TYPE.is_breaking_error
, ERROR_TYPE.background_lighting_level
, ERROR_TYPE.text_lighting_level
, ERROR_TYPE.background_colour
, ERROR_TYPE.text_colour
, t_ERROR.msg
FROM tmp_Msg_Error_Calc_Lighting_Level t_ERROR
INNER JOIN parts.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type
@@ -481,8 +481,8 @@ BEGIN
, ERROR_TYPE.name
, ERROR_TYPE.description
, ERROR_TYPE.is_breaking_error
, ERROR_TYPE.background_lighting_level
, ERROR_TYPE.text_lighting_level
, ERROR_TYPE.background_colour
, ERROR_TYPE.text_colour
, t_ERROR.msg
FROM tmp_Msg_Error_Calc_Lighting_Level t_ERROR
INNER JOIN parts.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type

View File

@@ -65,8 +65,8 @@ BEGIN
, ERROR_TYPE.name
, ERROR_TYPE.description
, ERROR_TYPE.is_breaking_error
, ERROR_TYPE.background_lighting_level
, ERROR_TYPE.text_lighting_level
, 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
@@ -317,8 +317,8 @@ BEGIN
, ERROR_TYPE.name
, ERROR_TYPE.description
, ERROR_TYPE.is_breaking_error
, ERROR_TYPE.background_lighting_level
, ERROR_TYPE.text_lighting_level
, 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

View File

@@ -163,6 +163,7 @@ BEGIN
, id_user_handler INT
, notes TEXT
, temperature_celcius DECIMAL(5, 2)
-- , difficulty_level FLOAT
, active BIT
, does_meet_id_filters BIT NOT NULL
, does_meet_non_id_filters BIT NOT NULL
@@ -340,6 +341,7 @@ BEGIN
, id_user_handler
, notes
, temperature_celcius
-- , difficulty_level
, active
, does_meet_id_filters
, does_meet_non_id_filters
@@ -352,6 +354,7 @@ BEGIN
, ASSESSMENT_T.id_user_handler
, ASSESSMENT_T.notes
, ASSESSMENT_T.temperature_celcius
-- , ASSESSMENT_T.difficulty_level
, ASSESSMENT_T.active
, ASSESSMENT_T.does_meet_id_filters
@@ -391,6 +394,7 @@ BEGIN
, USER.surname AS surname_user_handler
, t_ASSESSMENT.notes
, t_ASSESSMENT.temperature_celcius
-- , t_ASSESSMENT.difficulty_level
, t_ASSESSMENT.active
, t_ASSESSMENT.does_meet_id_filters

View File

@@ -0,0 +1,693 @@
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
;
*/

View File

@@ -23,6 +23,10 @@ CREATE PROCEDURE parts.p_dog_calc_distraction (
, IN a_get_inactive_intensity_level_emotional BIT
, IN a_ids_intensity_level_emotional TEXT
, IN a_names_intensity_level_emotional TEXT
, IN a_get_all_intensity_level_scent BIT
, IN a_get_inactive_intensity_level_scent BIT
, IN a_ids_intensity_level_scent TEXT
, IN a_names_intensity_level_scent TEXT
, IN a_get_all_intensity_level_sight BIT
, IN a_get_inactive_intensity_level_sight BIT
, IN a_ids_intensity_level_sight TEXT
@@ -180,6 +184,10 @@ BEGIN
, a_get_inactive_intensity_level_emotional
, a_ids_intensity_level_emotional
, a_names_intensity_level_emotional
, a_get_all_intensity_level_scent
, a_get_inactive_intensity_level_scent
, a_ids_intensity_level_scent
, a_names_intensity_level_scent
, a_get_all_intensity_level_sight
, a_get_inactive_intensity_level_sight
, a_ids_intensity_level_sight
@@ -239,6 +247,7 @@ BEGIN
DROP TEMPORARY TABLE IF EXISTS tmp_Intensity_Level_Touch_Calc_Distraction;
DROP TEMPORARY TABLE IF EXISTS tmp_Intensity_Level_Sound_Calc_Distraction;
DROP TEMPORARY TABLE IF EXISTS tmp_Intensity_Level_Sight_Calc_Distraction;
DROP TEMPORARY TABLE IF EXISTS tmp_Intensity_Level_Scent_Calc_Distraction;
DROP TEMPORARY TABLE IF EXISTS tmp_Intensity_Level_Emotional_Calc_Distraction;
DROP TEMPORARY TABLE IF EXISTS tmp_Distraction_Type_Calc_Distraction;
DROP TEMPORARY TABLE IF EXISTS tmp_Assessment_Calc_Distraction;
@@ -274,6 +283,15 @@ BEGIN
, does_meet_non_id_filters BIT NOT NULL
);
CREATE TEMPORARY TABLE tmp_Intensity_Level_Scent_Calc_Distraction (
id_intensity_level INT NOT NULL
, code VARCHAR(250)
, name VARCHAR(250)
, active BIT
, does_meet_id_filters BIT NOT NULL
, does_meet_non_id_filters BIT NOT NULL
);
CREATE TEMPORARY TABLE tmp_Intensity_Level_Sight_Calc_Distraction (
id_intensity_level INT NOT NULL
, code VARCHAR(250)
@@ -306,6 +324,7 @@ BEGIN
, 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
@@ -576,6 +595,71 @@ BEGIN
);
END IF;
-- Call Calc Intensity Level Scent
IF NOT EXISTS(SELECT * FROM tmp_Msg_Error_Calc_Distraction 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
a_guid -- a_guid
, a_id_user -- a_id_user
, a_get_all_intensity_level_scent -- a_get_all_intensity_level_scent
, a_get_inactive_intensity_level_scent -- a_get_inactive_intensity_level_scent
, a_ids_intensity_level_scent -- a_ids_intensity_level_scent
, a_names_intensity_level_scent -- a_names_intensity_level_scent
, a_require_all_id_search_filters_met -- a_require_all_id_search_filters_met
, 0 -- a_require_any_id_search_filters_met
, a_require_all_non_id_search_filters_met -- a_require_all_non_id_search_filters_met
, 0 -- a_require_any_non_id_search_filters_met
, 0 -- a_show_errors
, 0 -- a_debug
;
END IF;
CALL parts.p_dog_calc_distraction_intensity_level (
a_guid -- a_guid
, a_id_user -- a_id_user
, a_get_all_intensity_level_scent -- a_get_all_intensity_level_scent
, a_get_inactive_intensity_level_scent -- a_get_inactive_intensity_level_scent
, a_ids_intensity_level_scent -- a_ids_intensity_level_scent
, a_names_intensity_level_scent -- a_names_intensity_level_scent
, a_require_all_id_search_filters_met -- a_require_all_id_search_filters_met
, 0 -- 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
, 0 -- a_require_any_non_id_search_filters_met -- a_require_any_non_id_search_filters_met
, 0 -- a_show_errors
, 0 -- a_debug
);
INSERT INTO tmp_Intensity_Level_Scent_Calc_Distraction (
id_intensity_level
, code
, name
, active
, does_meet_id_filters
, does_meet_non_id_filters
)
SELECT
INTENSITY_LEVEL_SCENT_T.id_intensity_level
, INTENSITY_LEVEL_SCENT_T.code
, INTENSITY_LEVEL_SCENT_T.name
, INTENSITY_LEVEL_SCENT_T.active
, INTENSITY_LEVEL_SCENT_T.does_meet_id_filters
, INTENSITY_LEVEL_SCENT_T.does_meet_non_id_filters
FROM parts.DOG_Distraction_Intensity_Level_Temp INTENSITY_LEVEL_SCENT_T
WHERE INTENSITY_LEVEL_SCENT_T.GUID = a_guid
;
IF a_debug = 1 THEN
SELECT * FROM tmp_Intensity_Level_Scent_Calc_Distraction;
END IF;
CALL parts.p_dog_clear_calc_distraction_intensity_level (
a_guid
, 0 -- a_debug
);
END IF;
-- Call Calc Intensity Level Sight
IF NOT EXISTS(SELECT * FROM tmp_Msg_Error_Calc_Distraction 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
@@ -889,6 +973,7 @@ BEGIN
, DISTRACTION.id_assessment
, DISTRACTION.id_distraction_type
, DISTRACTION.id_intensity_level_emotional
, DISTRACTION.id_intensity_level_scent
, DISTRACTION.id_intensity_level_sight
, DISTRACTION.id_intensity_level_sound
, DISTRACTION.id_intensity_level_touch
@@ -979,6 +1064,7 @@ BEGIN
, 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
@@ -1028,6 +1114,7 @@ BEGIN
, DISTRACTION.id_assessment
, DISTRACTION.id_distraction_type
, DISTRACTION.id_intensity_level_emotional
, DISTRACTION.id_intensity_level_scent
, DISTRACTION.id_intensity_level_sight
, DISTRACTION.id_intensity_level_sound
, DISTRACTION.id_intensity_level_touch
@@ -1130,6 +1217,7 @@ BEGIN
LEFT JOIN tmp_Assessment_Calc_Distraction t_ASSESSMENT ON t_DISTRACTION.id_assessment = t_ASSESSMENT.id_assessment
LEFT JOIN tmp_Distraction_Type_Calc_Distraction t_DISTRACTION_TYPE ON t_DISTRACTION.id_distraction_type = t_DISTRACTION_TYPE.id_type
LEFT JOIN tmp_Intensity_Level_Emotional_Calc_Distraction t_INTENSITY_LEVEL_EMOTIONAL ON t_DISTRACTION.id_intensity_level_emotional = t_INTENSITY_LEVEL_EMOTIONAL.id_intensity_level
LEFT JOIN tmp_Intensity_Level_Scent_Calc_Distraction t_INTENSITY_LEVEL_SCENT ON t_DISTRACTION.id_intensity_level_scent = t_INTENSITY_LEVEL_SCENT.id_intensity_level
LEFT JOIN tmp_Intensity_Level_Sight_Calc_Distraction t_INTENSITY_LEVEL_SIGHT ON t_DISTRACTION.id_intensity_level_sight = t_INTENSITY_LEVEL_SIGHT.id_intensity_level
LEFT JOIN tmp_Intensity_Level_Sound_Calc_Distraction t_INTENSITY_LEVEL_SOUND ON t_DISTRACTION.id_intensity_level_sound = t_INTENSITY_LEVEL_SOUND.id_intensity_level
LEFT JOIN tmp_Intensity_Level_Touch_Calc_Distraction t_INTENSITY_LEVEL_TOUCH ON t_DISTRACTION.id_intensity_level_touch = t_INTENSITY_LEVEL_TOUCH.id_intensity_level
@@ -1141,6 +1229,7 @@ BEGIN
OR IFNULL(t_ASSESSMENT.does_meet_id_filters, 1) = 0
OR IFNULL(t_DISTRACTION_TYPE.does_meet_id_filters, 1) = 0
OR IFNULL(t_INTENSITY_LEVEL_EMOTIONAL.does_meet_id_filters, 1) = 0
OR IFNULL(t_INTENSITY_LEVEL_SCENT.does_meet_id_filters, 1) = 0
OR IFNULL(t_INTENSITY_LEVEL_SIGHT.does_meet_id_filters, 1) = 0
OR IFNULL(t_INTENSITY_LEVEL_SOUND.does_meet_id_filters, 1) = 0
OR IFNULL(t_INTENSITY_LEVEL_TOUCH.does_meet_id_filters, 1) = 0
@@ -1153,6 +1242,7 @@ BEGIN
OR IFNULL(t_ASSESSMENT.does_meet_non_id_filters, 1) = 0
OR IFNULL(t_DISTRACTION_TYPE.does_meet_non_id_filters, 1) = 0
OR IFNULL(t_INTENSITY_LEVEL_EMOTIONAL.does_meet_non_id_filters, 1) = 0
OR IFNULL(t_INTENSITY_LEVEL_SCENT.does_meet_non_id_filters, 1) = 0
OR IFNULL(t_INTENSITY_LEVEL_SIGHT.does_meet_non_id_filters, 1) = 0
OR IFNULL(t_INTENSITY_LEVEL_SOUND.does_meet_non_id_filters, 1) = 0
OR IFNULL(t_INTENSITY_LEVEL_TOUCH.does_meet_non_id_filters, 1) = 0
@@ -1164,6 +1254,7 @@ BEGIN
AND IFNULL(t_ASSESSMENT.does_meet_id_filters, 1) = 0
AND IFNULL(t_DISTRACTION_TYPE.does_meet_id_filters, 1) = 0
AND IFNULL(t_INTENSITY_LEVEL_EMOTIONAL.does_meet_id_filters, 1) = 0
AND IFNULL(t_INTENSITY_LEVEL_SCENT.does_meet_id_filters, 1) = 0
AND IFNULL(t_INTENSITY_LEVEL_SIGHT.does_meet_id_filters, 1) = 0
AND IFNULL(t_INTENSITY_LEVEL_SOUND.does_meet_id_filters, 1) = 0
AND IFNULL(t_INTENSITY_LEVEL_TOUCH.does_meet_id_filters, 1) = 0
@@ -1174,6 +1265,7 @@ BEGIN
AND IFNULL(t_ASSESSMENT.does_meet_non_id_filters, 1) = 0
AND IFNULL(t_DISTRACTION_TYPE.does_meet_non_id_filters, 1) = 0
AND IFNULL(t_INTENSITY_LEVEL_EMOTIONAL.does_meet_non_id_filters, 1) = 0
AND IFNULL(t_INTENSITY_LEVEL_SCENT.does_meet_non_id_filters, 1) = 0
AND IFNULL(t_INTENSITY_LEVEL_SIGHT.does_meet_non_id_filters, 1) = 0
AND IFNULL(t_INTENSITY_LEVEL_SOUND.does_meet_non_id_filters, 1) = 0
AND IFNULL(t_INTENSITY_LEVEL_TOUCH.does_meet_non_id_filters, 1) = 0
@@ -1186,6 +1278,7 @@ BEGIN
SELECT * FROM tmp_Assessment_Calc_Distraction;
SELECT * FROM tmp_Distraction_Type_Calc_Distraction;
SELECT * FROM tmp_Intensity_Level_Emotional_Calc_Distraction;
SELECT * FROM tmp_Intensity_Level_Scent_Calc_Distraction;
SELECT * FROM tmp_Intensity_Level_Sight_Calc_Distraction;
SELECT * FROM tmp_Intensity_Level_Sound_Calc_Distraction;
SELECT * FROM tmp_Intensity_Level_Touch_Calc_Distraction;
@@ -1273,6 +1366,7 @@ BEGIN
SELECT * FROM tmp_Assessment_Calc_Distraction;
SELECT * FROM tmp_Distraction_Type_Calc_Distraction;
SELECT * FROM tmp_Intensity_Level_Emotional_Calc_Distraction;
SELECT * FROM tmp_Intensity_Level_Scent_Calc_Distraction;
SELECT * FROM tmp_Intensity_Level_Sight_Calc_Distraction;
SELECT * FROM tmp_Intensity_Level_Sound_Calc_Distraction;
SELECT * FROM tmp_Intensity_Level_Touch_Calc_Distraction;
@@ -1283,19 +1377,21 @@ BEGIN
IF a_debug = 1 THEN
SELECT * FROM tmp_Assessment_Calc_Distraction;
SELECT * FROM tmp_Distraction_Type_Calc_Distraction;
SELECT * FROM tmp_Intensity_Level_Emotional_Calc_Distraction;
SELECT * FROM tmp_Intensity_Level_Sight_Calc_Distraction;
SELECT * FROM tmp_Intensity_Level_Sound_Calc_Distraction;
SELECT * FROM tmp_Intensity_Level_Touch_Calc_Distraction;
SELECT * FROM tmp_Intensity_Level_Emotional_Calc_Distraction;
SELECT * FROM tmp_Intensity_Level_Scent_Calc_Distraction;
SELECT * FROM tmp_Intensity_Level_Sight_Calc_Distraction;
SELECT * FROM tmp_Intensity_Level_Sound_Calc_Distraction;
SELECT * FROM tmp_Intensity_Level_Touch_Calc_Distraction;
SELECT * FROM tmp_Distraction_Calc_Distraction;
END IF;
DELETE FROM tmp_Assessment_Calc_Distraction;
DELETE FROM tmp_Distraction_Type_Calc_Distraction;
DELETE FROM tmp_Intensity_Level_Emotional_Calc_Distraction;
DELETE FROM tmp_Intensity_Level_Sight_Calc_Distraction;
DELETE FROM tmp_Intensity_Level_Sound_Calc_Distraction;
DELETE FROM tmp_Intensity_Level_Touch_Calc_Distraction;
DELETE FROM tmp_Intensity_Level_Sound_Calc_Distraction;
DELETE FROM tmp_Intensity_Level_Sight_Calc_Distraction;
DELETE FROM tmp_Intensity_Level_Scent_Calc_Distraction;
DELETE FROM tmp_Intensity_Level_Emotional_Calc_Distraction;
DELETE FROM tmp_Distraction_Type_Calc_Distraction;
DELETE FROM tmp_Assessment_Calc_Distraction;
DELETE FROM tmp_Distraction_Calc_Distraction;
END IF;
@@ -1312,6 +1408,7 @@ BEGIN
, 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
@@ -1329,6 +1426,7 @@ BEGIN
, t_DISTRACTION.id_assessment
, t_DISTRACTION.id_distraction_type
, t_DISTRACTION.id_intensity_level_emotional
, t_DISTRACTION.id_intensity_level_scent
, t_DISTRACTION.id_intensity_level_sight
, t_DISTRACTION.id_intensity_level_sound
, t_DISTRACTION.id_intensity_level_touch
@@ -1365,6 +1463,7 @@ BEGIN
SELECT * FROM tmp_Assessment_Calc_Distraction;
SELECT * FROM tmp_Distraction_Type_Calc_Distraction;
SELECT * FROM tmp_Intensity_Level_Emotional_Calc_Distraction;
SELECT * FROM tmp_Intensity_Level_Scent_Calc_Distraction;
SELECT * FROM tmp_Intensity_Level_Sight_Calc_Distraction;
SELECT * FROM tmp_Intensity_Level_Sound_Calc_Distraction;
SELECT * FROM tmp_Intensity_Level_Touch_Calc_Distraction;
@@ -1388,6 +1487,7 @@ BEGIN
DROP TEMPORARY TABLE IF EXISTS tmp_Intensity_Level_Touch_Calc_Distraction;
DROP TEMPORARY TABLE IF EXISTS tmp_Intensity_Level_Sound_Calc_Distraction;
DROP TEMPORARY TABLE IF EXISTS tmp_Intensity_Level_Sight_Calc_Distraction;
DROP TEMPORARY TABLE IF EXISTS tmp_Intensity_Level_Scent_Calc_Distraction;
DROP TEMPORARY TABLE IF EXISTS tmp_Intensity_Level_Emotional_Calc_Distraction;
DROP TEMPORARY TABLE IF EXISTS tmp_Distraction_Type_Calc_Distraction;
DROP TEMPORARY TABLE IF EXISTS tmp_Assessment_Calc_Distraction;
@@ -1423,6 +1523,11 @@ CALL parts.p_dog_calc_distraction (
, '' -- a_ids_intensity_level_emotional
, '' -- a_names_intensity_level_emotional
, 1 -- a_get_all_intensity_level_scent
, 0 -- a_get_inactive_intensity_level_scent
, '' -- a_ids_intensity_level_scent
, '' -- a_names_intensity_level_scent
, 1 -- a_get_all_intensity_level_sight
, 0 -- a_get_inactive_intensity_level_sight
, '' -- a_ids_intensity_level_sight

View File

@@ -22,6 +22,10 @@ CREATE PROCEDURE parts.p_dog_get_many_distraction (
, IN a_get_inactive_intensity_level_emotional BIT
, IN a_ids_intensity_level_emotional TEXT
, IN a_names_intensity_level_emotional TEXT
, IN a_get_all_intensity_level_scent BIT
, IN a_get_inactive_intensity_level_scent BIT
, IN a_ids_intensity_level_scent TEXT
, IN a_names_intensity_level_scent TEXT
, IN a_get_all_intensity_level_sight BIT
, IN a_get_inactive_intensity_level_sight BIT
, IN a_ids_intensity_level_sight TEXT
@@ -159,6 +163,10 @@ BEGIN
, a_get_inactive_intensity_level_emotional
, a_ids_intensity_level_emotional
, a_names_intensity_level_emotional
, a_get_all_intensity_level_scent
, a_get_inactive_intensity_level_scent
, a_ids_intensity_level_scent
, a_names_intensity_level_scent
, a_get_all_intensity_level_sight
, a_get_inactive_intensity_level_sight
, a_ids_intensity_level_sight
@@ -220,6 +228,7 @@ BEGIN
, 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
@@ -339,6 +348,10 @@ BEGIN
, a_get_inactive_intensity_level_emotional
, a_ids_intensity_level_emotional
, a_names_intensity_level_emotional
, a_get_all_intensity_level_scent
, a_get_inactive_intensity_level_scent
, a_ids_intensity_level_scent
, a_names_intensity_level_scent
, a_get_all_intensity_level_sight
, a_get_inactive_intensity_level_sight
, a_ids_intensity_level_sight
@@ -403,6 +416,10 @@ BEGIN
, a_get_inactive_intensity_level_emotional
, a_ids_intensity_level_emotional
, a_names_intensity_level_emotional
, a_get_all_intensity_level_scent
, a_get_inactive_intensity_level_scent
, a_ids_intensity_level_scent
, a_names_intensity_level_scent
, a_get_all_intensity_level_sight
, a_get_inactive_intensity_level_sight
, a_ids_intensity_level_sight
@@ -457,6 +474,7 @@ BEGIN
, 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
@@ -472,6 +490,7 @@ BEGIN
, DISTRACTION_T.id_assessment
, DISTRACTION_T.id_distraction_type
, DISTRACTION_T.id_intensity_level_emotional
, DISTRACTION_T.id_intensity_level_scent
, DISTRACTION_T.id_intensity_level_sight
, DISTRACTION_T.id_intensity_level_sound
, DISTRACTION_T.id_intensity_level_touch
@@ -511,6 +530,8 @@ BEGIN
, DISTRACTION_TYPE.name AS name_distraction_type
, t_DISTRACTION.id_intensity_level_emotional
, INTENSITY_LEVEL_EMOTIONAL.name AS name_intensity_level_emotional
, t_DISTRACTION.id_intensity_level_scent
, INTENSITY_LEVEL_SCENT.name AS name_intensity_level_scent
, t_DISTRACTION.id_intensity_level_sight
, INTENSITY_LEVEL_SIGHT.name AS name_intensity_level_sight
, t_DISTRACTION.id_intensity_level_sound
@@ -527,6 +548,7 @@ BEGIN
FROM 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 INTENSITY_LEVEL_EMOTIONAL ON t_DISTRACTION.id_intensity_level_emotional = INTENSITY_LEVEL_EMOTIONAL.id_intensity_level
LEFT JOIN parts.DOG_Distraction_Intensity_Level INTENSITY_LEVEL_SCENT ON t_DISTRACTION.id_intensity_level_scent = INTENSITY_LEVEL_SCENT.id_intensity_level
LEFT JOIN parts.DOG_Distraction_Intensity_Level INTENSITY_LEVEL_SIGHT ON t_DISTRACTION.id_intensity_level_sight = INTENSITY_LEVEL_SIGHT.id_intensity_level
LEFT JOIN parts.DOG_Distraction_Intensity_Level INTENSITY_LEVEL_SOUND ON t_DISTRACTION.id_intensity_level_sound = INTENSITY_LEVEL_SOUND.id_intensity_level
LEFT JOIN parts.DOG_Distraction_Intensity_Level INTENSITY_LEVEL_TOUCH ON t_DISTRACTION.id_intensity_level_touch = INTENSITY_LEVEL_TOUCH.id_intensity_level
@@ -590,6 +612,11 @@ CALL parts.p_dog_get_many_distraction (
, '' -- a_ids_intensity_level_emotional
, '' -- a_names_intensity_level_emotional
, 1 -- a_get_all_intensity_level_scent
, 0 -- a_get_inactive_intensity_level_scent
, '' -- a_ids_intensity_level_scent
, '' -- a_names_intensity_level_scent
, 1 -- a_get_all_intensity_level_sight
, 0 -- a_get_inactive_intensity_level_sight
, '' -- a_ids_intensity_level_sight

View File

@@ -12,10 +12,10 @@ CREATE PROCEDURE parts.p_dog_calc_assessment_command_modality_link (
, IN a_ids_link TEXT
, IN a_min_distance_from_handler_link FLOAT
, IN a_max_distance_from_handler_link FLOAT
, IN a_value_is_in_sight_of_handler_link INT
, IN a_value_is_in_scent_range_of_handler_link INT
, IN a_value_is_in_hearing_range_of_handler_link INT
, IN a_value_is_on_lead_link INT
, IN a_value_is_in_sight_of_handler_link BIT
, IN a_value_is_in_scent_range_of_handler_link BIT
, IN a_value_is_in_hearing_range_of_handler_link BIT
, IN a_value_is_on_lead_link BIT
, IN a_min_trial_count_link FLOAT
, IN a_max_trial_count_link FLOAT

View File

@@ -11,10 +11,10 @@ CREATE PROCEDURE parts.p_dog_get_many_assessment_command_modality_link (
, IN a_ids_link TEXT
, IN a_min_distance_from_handler_link FLOAT
, IN a_max_distance_from_handler_link FLOAT
, IN a_value_is_in_sight_of_handler_link INT
, IN a_value_is_in_scent_range_of_handler_link INT
, IN a_value_is_in_hearing_range_of_handler_link INT
, IN a_value_is_on_lead_link INT
, IN a_value_is_in_sight_of_handler_link BIT
, IN a_value_is_in_scent_range_of_handler_link BIT
, IN a_value_is_in_hearing_range_of_handler_link BIT
, IN a_value_is_on_lead_link BIT
, IN a_min_trial_count_link FLOAT
, IN a_max_trial_count_link FLOAT
@@ -63,6 +63,7 @@ CREATE PROCEDURE parts.p_dog_get_many_assessment_command_modality_link (
, IN a_get_inactive_bribe BIT
, IN a_ids_bribe TEXT
, IN a_names_bribe 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

View File

@@ -1,15 +1,15 @@
USE parts;
DROP PROCEDURE IF EXISTS parts.p_dog_get_many_colour;
DROP PROCEDURE IF EXISTS parts.p_dog_get_many_response_quality_metric;
DELIMITER //
CREATE PROCEDURE parts.p_dog_get_many_colour (
CREATE PROCEDURE parts.p_dog_get_many_response_quality_metric (
IN a_id_user INT
, IN a_get_all_colour BIT
, IN a_get_inactive_colour BIT
, IN a_ids_colour TEXT
, IN a_names_colour TEXT
, 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
@@ -86,10 +86,10 @@ BEGIN
SET a_id_user := IFNULL(a_id_user, 0);
/*
SET a_get_all_colour := IFNULL(a_get_all_colour, 0);
SET a_get_inactive_colour := IFNULL(a_get_inactive_colour, 0);
SET a_ids_colour := TRIM(IFNULL(a_ids_colour, ''));
SET a_names_colour := TRIM(IFNULL(a_names_colour, ''));
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);
@@ -100,10 +100,10 @@ BEGIN
IF a_debug = 1 THEN
SELECT
a_id_user
, a_get_all_colour
, a_get_inactive_colour
, a_ids_colour
, a_names_colour
, 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
@@ -121,16 +121,18 @@ BEGIN
END IF;
DROP TEMPORARY TABLE IF EXISTS tmp_Msg_Error;
DROP TEMPORARY TABLE IF EXISTS tmp_Colour;
DROP TEMPORARY TABLE IF EXISTS tmp_Response_Quality_Metric;
CREATE TEMPORARY TABLE tmp_Colour (
id_colour INT NOT NULL
, code VARCHAR(250)
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
, does_meet_non_id_filters BIT
, does_meet_id_filters BIT NOT NULL
, does_meet_non_id_filters BIT NOT NULL
);
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error (
@@ -207,7 +209,7 @@ BEGIN
VALUES (
v_id_type_error_no_permission
, v_code_type_error_no_permission
, 'You do not have permission to view Colours.'
, 'You do not have permission to view RESPONSE_QUALITY_METRIC.'
)
;
END IF;
@@ -218,16 +220,16 @@ BEGIN
);
-- Call Colour Calc
-- Call Response_Quality_Metric Calc
IF NOT EXISTS(SELECT * FROM tmp_Msg_Error t_ERROR INNER JOIN parts.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type WHERE ERROR_TYPE.is_breaking_error = 1 LIMIT 1) THEN
IF a_debug = 1 THEN
SELECT
v_guid -- a_guid
, a_id_user -- a_id_user
, a_get_all_colour -- a_get_all_colour
, a_get_inactive_colour -- a_get_inactive_colour
, a_ids_colour -- a_ids_colour
, a_names_colour -- a_names_colour
, 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
@@ -237,13 +239,13 @@ BEGIN
;
END IF;
CALL parts.p_dog_calc_colour (
CALL parts.p_dog_calc_response_quality_metric (
v_guid -- a_guid
, a_id_user -- a_id_user
, a_get_all_colour -- a_get_all_colour
, a_get_inactive_colour -- a_get_inactive_colour
, a_ids_colour -- a_ids_colour
, a_names_colour -- a_names_colour
, 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
@@ -253,60 +255,72 @@ BEGIN
);
IF a_debug = 1 THEN
SELECT COUNT(*) FROM parts.DOG_Colour_Temp;
SELECT * FROM parts.DOG_Colour_Temp;
SELECT COUNT(*) FROM parts.DOG_Response_Quality_Metric_Temp;
SELECT * FROM parts.DOG_Response_Quality_Metric_Temp;
END IF;
INSERT INTO tmp_Colour (
id_colour
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
COLOUR_T.id_colour
, COLOUR_T.code
, COLOUR_T.name
, COLOUR_T.active
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
, COLOUR_T.does_meet_id_filters
, COLOUR_T.does_meet_non_id_filters
FROM parts.DOG_Colour_Temp COLOUR_T
WHERE COLOUR_T.GUID = v_guid
, RESPONSE_QUALITY_METRIC_T.does_meet_id_filters
, RESPONSE_QUALITY_METRIC_T.does_meet_non_id_filters
FROM parts.DOG_Response_Quality_Metric_Temp RESPONSE_QUALITY_METRIC_T
WHERE RESPONSE_QUALITY_METRIC_T.GUID = v_guid
;
IF a_debug = 1 THEN
SELECT COUNT(*) FROM tmp_Colour;
SELECT * FROM tmp_Colour;
SELECT COUNT(*) FROM tmp_Response_Quality_Metric;
SELECT * FROM tmp_Response_Quality_Metric;
END IF;
END IF;
-- Filter outputs
IF EXISTS(SELECT * FROM tmp_Msg_Error t_ERROR INNER JOIN parts.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type WHERE ERROR_TYPE.is_breaking_error = 1 LIMIT 1) THEN
IF a_debug = 1 THEN
SELECT * FROM tmp_Colour;
SELECT * FROM tmp_Response_Quality_Metric;
END IF;
DELETE FROM tmp_Colour;
DELETE FROM tmp_Response_Quality_Metric;
END IF;
-- Outputs
-- Colours
-- RESPONSE_QUALITY_METRIC
SELECT
t_COLOURS.id_colour
, t_COLOURS.code
, t_COLOURS.name
, t_COLOURS.active
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_COLOURS.does_meet_id_filters
, t_COLOURS.does_meet_non_id_filters
FROM tmp_Colour t_COLOURS
LEFT JOIN parts.DOG_Colour COLOURS ON t_COLOURS.id_colour = COLOURS.id_colour
ORDER BY t_COLOURS.name
, 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 parts.DOG_Response_Quality_Metric RESPONSE_QUALITY_METRIC ON t_RESPONSE_QUALITY_METRIC.id_metric = RESPONSE_QUALITY_METRIC.id_metric
LEFT JOIN parts.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
@@ -325,16 +339,16 @@ BEGIN
;
IF a_debug = 1 AND v_can_view = 1 THEN
SELECT * FROM tmp_Colour;
SELECT * FROM tmp_Response_Quality_Metric;
END IF;
CALL parts.p_dog_clear_calc_colour(
CALL parts.p_dog_clear_calc_response_quality_metric(
v_guid -- a_guid
, 0 -- a_debug
);
DROP TEMPORARY TABLE IF EXISTS tmp_Msg_Error;
DROP TEMPORARY TABLE IF EXISTS tmp_Colour;
DROP TEMPORARY TABLE IF EXISTS tmp_Response_Quality_Metric;
IF a_debug = 1 THEN
CALL parts.p_core_debug_timing_reporting ( v_time_start );
@@ -345,12 +359,12 @@ DELIMITER ;
/*
CALL parts.p_dog_get_many_colour (
CALL parts.p_dog_get_many_response_quality_metric (
1 -- 'auth0|6582b95c895d09a70ba10fef', -- a_id_user
, 1 -- a_get_all_colour
, 0 -- a_get_inactive_colour
, '' -- a_ids_colour
, '' -- a_names_colour
, 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
@@ -359,12 +373,12 @@ CALL parts.p_dog_get_many_colour (
);
CALL demo.p_dog_get_many_colour (
CALL demo.p_dog_get_many_response_quality_metric (
1 -- 'auth0|6582b95c895d09a70ba10fef', -- a_id_user
, 1 -- a_get_all_colour
, 0 -- a_get_inactive_colour
, '' -- a_ids_colour
, 'pat,point' -- a_names_colour
, 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

View File

@@ -68,8 +68,8 @@ BEGIN
, ERROR_TYPE.name
, ERROR_TYPE.description
, ERROR_TYPE.is_breaking_error
, ERROR_TYPE.background_obedience_level
, ERROR_TYPE.text_obedience_level
, ERROR_TYPE.background_colour
, ERROR_TYPE.text_colour
, t_ERROR.msg
FROM tmp_Msg_Error_Calc_Obedience_Level t_ERROR
INNER JOIN parts.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type
@@ -481,8 +481,8 @@ BEGIN
, ERROR_TYPE.name
, ERROR_TYPE.description
, ERROR_TYPE.is_breaking_error
, ERROR_TYPE.background_obedience_level
, ERROR_TYPE.text_obedience_level
, ERROR_TYPE.background_colour
, ERROR_TYPE.text_colour
, t_ERROR.msg
FROM tmp_Msg_Error_Calc_Obedience_Level t_ERROR
INNER JOIN parts.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type

View File

@@ -65,8 +65,8 @@ BEGIN
, ERROR_TYPE.name
, ERROR_TYPE.description
, ERROR_TYPE.is_breaking_error
, ERROR_TYPE.background_obedience_level
, ERROR_TYPE.text_obedience_level
, 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
@@ -317,8 +317,8 @@ BEGIN
, ERROR_TYPE.name
, ERROR_TYPE.description
, ERROR_TYPE.is_breaking_error
, ERROR_TYPE.background_obedience_level
, ERROR_TYPE.text_obedience_level
, 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

File diff suppressed because it is too large Load Diff

View File

@@ -1,11 +1,11 @@
USE parts;
DROP PROCEDURE IF EXISTS parts.p_dog_clear_calc_colour;
DROP PROCEDURE IF EXISTS parts.p_colour_clear_calc_colour;
DROP PROCEDURE IF EXISTS parts.p_dog_clear_calc_assessment_response;
DROP PROCEDURE IF EXISTS parts.p_assessment_response_clear_calc_assessment_response;
DELIMITER //
CREATE PROCEDURE parts.p_dog_clear_calc_colour (
CREATE PROCEDURE parts.p_dog_clear_calc_assessment_response (
IN a_guid BINARY(36)
, IN a_debug BIT
)
@@ -17,9 +17,9 @@ BEGIN
START TRANSACTION;
DELETE COLOURS_T
FROM parts.DOG_Colour_Temp COLOURS_T
WHERE COLOURS_T.GUID = a_guid
DELETE ASSESSMENT_RESPONSES_T
FROM parts.DOG_Assessment_Response_Temp ASSESSMENT_RESPONSES_T
WHERE ASSESSMENT_RESPONSES_T.GUID = a_guid
;
COMMIT;
@@ -32,7 +32,7 @@ DELIMITER ;
/*
CALL parts.p_dog_clear_calc_colour (
CALL parts.p_dog_clear_calc_assessment_response (
'crips ' -- a_guid
, 1 -- debug
);

View File

@@ -1,15 +1,82 @@
USE parts;
DROP PROCEDURE IF EXISTS parts.p_dog_get_many_colour;
DROP PROCEDURE IF EXISTS parts.p_dog_get_many_assessment_response;
DELIMITER //
CREATE PROCEDURE parts.p_dog_get_many_colour (
CREATE PROCEDURE parts.p_dog_get_many_assessment_response (
IN a_id_user INT
, IN a_get_all_colour BIT
, IN a_get_inactive_colour BIT
, IN a_ids_colour TEXT
, IN a_names_colour TEXT
, IN a_get_all_assessment_response BIT
, IN a_get_inactive_assessment_response BIT
, IN a_ids_assessment_response TEXT
, IN a_notes_assessment_response TEXT
, IN a_min_value_measured_assessment_response INT
, IN a_max_value_measured_assessment_response INT
, IN a_get_all_ACM_link BIT
, IN a_get_inactive_ACM_link BIT
, IN a_ids_ACM_link TEXT
, IN a_min_distance_from_handler_ACM_link FLOAT
, IN a_max_distance_from_handler_ACM_link FLOAT
, IN a_value_is_in_sight_of_handler_ACM_link INT
, IN a_value_is_in_scent_range_of_handler_ACM_link INT
, IN a_value_is_in_hearing_range_of_handler_ACM_link INT
, IN a_value_is_on_lead_ACM_link INT
, IN a_min_trial_count_ACM_link FLOAT
, IN a_max_trial_count_ACM_link FLOAT
, IN a_get_all_assessment BIT
, IN a_get_inactive_assessment BIT
, IN a_ids_assessment TEXT
, IN a_notes_assessment TEXT
, IN a_min_temperature_assessment DECIMAL(5, 2)
, IN a_max_temperature_assessment DECIMAL(5, 2)
, IN a_get_all_weather BIT
, IN a_get_inactive_weather BIT
, IN a_ids_weather TEXT
, IN a_names_weather TEXT
, IN a_get_all_lighting_level BIT
, IN a_get_inactive_lighting_level BIT
, IN a_ids_lighting_level TEXT
, IN a_names_lighting_level TEXT
, IN a_get_all_location BIT
, IN a_get_inactive_location BIT
, IN a_ids_location TEXT
, IN a_names_location TEXT
, IN a_get_all_user_handler BIT
, IN a_get_inactive_user_handler BIT
, IN a_ids_user_handler TEXT
-- , IN a_auth0_ids_user_handler TEXT
, IN a_names_user_handler TEXT
, IN a_emails_user_handler TEXT
, IN a_get_all_command_category BIT
, IN a_get_inactive_command_category BIT
, IN a_ids_command_category TEXT
, IN a_names_command_category TEXT
, IN a_get_all_command BIT
, IN a_get_inactive_command BIT
, IN a_ids_command TEXT
, IN a_names_command TEXT
, IN a_hand_signal_default_descriptions_command TEXT
, IN a_notes_command TEXT
, IN a_get_all_command_modality BIT
, IN a_get_inactive_command_modality BIT
, IN a_ids_command_modality TEXT
, IN a_names_command_modality TEXT
, IN a_get_all_bribe BIT
, IN a_get_inactive_bribe BIT
, IN a_ids_bribe TEXT
, IN a_names_bribe TEXT
, 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_get_all_obedience_level BIT
, IN a_get_inactive_obedience_level BIT
, IN a_ids_obedience_level TEXT
, IN a_names_obedience_level 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
@@ -86,24 +153,85 @@ BEGIN
SET a_id_user := IFNULL(a_id_user, 0);
/*
SET a_get_all_colour := IFNULL(a_get_all_colour, 0);
SET a_get_inactive_colour := IFNULL(a_get_inactive_colour, 0);
SET a_ids_colour := TRIM(IFNULL(a_ids_colour, ''));
SET a_names_colour := TRIM(IFNULL(a_names_colour, ''));
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);
Filters handled by Calc
*/
SET a_debug := IFNULL(a_debug, 0);
IF a_debug = 1 THEN
SELECT
a_id_user
, a_get_all_colour
, a_get_inactive_colour
, a_ids_colour
, a_names_colour
, a_get_all_assessment_response
, a_get_inactive_assessment_response
, a_ids_assessment_response
, a_notes_assessment_response
, a_min_value_measured_assessment_response
, a_max_value_measured_assessment_response
, a_get_all_ACM_link
, a_get_inactive_ACM_link
, a_ids_ACM_link
, a_min_distance_from_handler_ACM_link
, a_max_distance_from_handler_ACM_link
, a_value_is_in_sight_of_handler_ACM_link
, a_value_is_in_scent_range_of_handler_ACM_link
, a_value_is_in_hearing_range_of_handler_ACM_link
, a_value_is_on_lead_ACM_link
, a_min_trial_count_ACM_link
, a_max_trial_count_ACM_link
, a_get_all_assessment
, a_get_inactive_assessment
, a_ids_assessment
, a_notes_assessment
, a_min_temperature_assessment
, a_max_temperature_assessment
, a_get_all_weather
, a_get_inactive_weather
, a_ids_weather
, a_names_weather
, a_get_all_lighting_level
, a_get_inactive_lighting_level
, a_ids_lighting_level
, a_names_lighting_level
, a_get_all_location
, a_get_inactive_location
, a_ids_location
, a_names_location
, a_get_all_user_handler
, a_get_inactive_user_handler
, a_ids_user_handler
-- , a_auth0_ids_user_handler
, a_names_user_handler
, a_emails_user_handler
, a_get_all_command_category
, a_get_inactive_command_category
, a_ids_command_category
, a_names_command_category
, a_get_all_command
, a_get_inactive_command
, a_ids_command
, a_names_command
, a_hand_signal_default_descriptions_command
, a_notes_command
, a_get_all_command_modality
, a_get_inactive_command_modality
, a_ids_command_modality
, a_names_command_modality
, a_get_all_bribe
, a_get_inactive_bribe
, a_ids_bribe
, a_names_bribe
, a_get_all_response_quality_metric
, a_get_inactive_response_quality_metric
, a_ids_response_quality_metric
, a_names_response_quality_metric
, a_get_all_obedience_level
, a_get_inactive_obedience_level
, a_ids_obedience_level
, a_names_obedience_level
, a_require_all_id_search_filters_met
, a_require_any_id_search_filters_met
, a_require_all_non_id_search_filters_met
@@ -121,12 +249,15 @@ BEGIN
END IF;
DROP TEMPORARY TABLE IF EXISTS tmp_Msg_Error;
DROP TEMPORARY TABLE IF EXISTS tmp_Colour;
DROP TEMPORARY TABLE IF EXISTS tmp_Assessment_Response;
CREATE TEMPORARY TABLE tmp_Colour (
id_colour INT NOT NULL
, code VARCHAR(250)
, name VARCHAR(250)
CREATE TEMPORARY TABLE tmp_Assessment_Response (
id_response INT NOT NULL
, id_assessment_command_modality_link INT
, id_response_quality_metric INT
, id_obedience_level INT
, value_measured DOUBLE
, notes TEXT
, active BIT
, does_meet_id_filters BIT
@@ -207,7 +338,7 @@ BEGIN
VALUES (
v_id_type_error_no_permission
, v_code_type_error_no_permission
, 'You do not have permission to view Colours.'
, 'You do not have permission to view Assessment_Responses.'
)
;
END IF;
@@ -218,16 +349,84 @@ BEGIN
);
-- Call Colour Calc
-- Call Assessment_Response Calc
IF NOT EXISTS(SELECT * FROM tmp_Msg_Error t_ERROR INNER JOIN parts.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type WHERE ERROR_TYPE.is_breaking_error = 1 LIMIT 1) THEN
IF a_debug = 1 THEN
SELECT
v_guid -- a_guid
, a_id_user -- a_id_user
, a_get_all_colour -- a_get_all_colour
, a_get_inactive_colour -- a_get_inactive_colour
, a_ids_colour -- a_ids_colour
, a_names_colour -- a_names_colour
, a_get_all_assessment_response
, a_get_inactive_assessment_response
, a_ids_assessment_response
, a_notes_assessment_response
, a_min_value_measured_assessment_response
, a_max_value_measured_assessment_response
, a_get_all_ACM_link
, a_get_inactive_ACM_link
, a_ids_ACM_link
, a_min_distance_from_handler_ACM_link
, a_max_distance_from_handler_ACM_link
, a_value_is_in_sight_of_handler_ACM_link
, a_value_is_in_scent_range_of_handler_ACM_link
, a_value_is_in_hearing_range_of_handler_ACM_link
, a_value_is_on_lead_ACM_link
, a_min_trial_count_ACM_link
, a_max_trial_count_ACM_link
, a_get_all_assessment
, a_get_inactive_assessment
, a_ids_assessment
, a_notes_assessment
, a_min_temperature_assessment
, a_max_temperature_assessment
, a_get_all_weather
, a_get_inactive_weather
, a_ids_weather
, a_names_weather
, a_get_all_lighting_level
, a_get_inactive_lighting_level
, a_ids_lighting_level
, a_names_lighting_level
, a_get_all_location
, a_get_inactive_location
, a_ids_location
, a_names_location
, a_get_all_user_handler
, a_get_inactive_user_handler
, a_ids_user_handler
-- , a_auth0_ids_user_handler
, a_names_user_handler
, a_emails_user_handler
, a_get_all_command_category
, a_get_inactive_command_category
, a_ids_command_category
, a_names_command_category
, a_get_all_command
, a_get_inactive_command
, a_ids_command
, a_names_command
, a_hand_signal_default_descriptions_command
, a_notes_command
, a_get_all_command_modality
, a_get_inactive_command_modality
, a_ids_command_modality
, a_names_command_modality
, a_get_all_bribe
, a_get_inactive_bribe
, a_ids_bribe
, a_names_bribe
, a_get_all_response_quality_metric
, a_get_inactive_response_quality_metric
, a_ids_response_quality_metric
, a_names_response_quality_metric
, a_get_all_obedience_level
, a_get_inactive_obedience_level
, a_ids_obedience_level
, a_names_obedience_level
, 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
@@ -237,13 +436,81 @@ BEGIN
;
END IF;
CALL parts.p_dog_calc_colour (
CALL parts.p_dog_calc_assessment_response (
v_guid -- a_guid
, a_id_user -- a_id_user
, a_get_all_colour -- a_get_all_colour
, a_get_inactive_colour -- a_get_inactive_colour
, a_ids_colour -- a_ids_colour
, a_names_colour -- a_names_colour
, a_get_all_assessment_response
, a_get_inactive_assessment_response
, a_ids_assessment_response
, a_notes_assessment_response
, a_min_value_measured_assessment_response
, a_max_value_measured_assessment_response
, a_get_all_ACM_link
, a_get_inactive_ACM_link
, a_ids_ACM_link
, a_min_distance_from_handler_ACM_link
, a_max_distance_from_handler_ACM_link
, a_value_is_in_sight_of_handler_ACM_link
, a_value_is_in_scent_range_of_handler_ACM_link
, a_value_is_in_hearing_range_of_handler_ACM_link
, a_value_is_on_lead_ACM_link
, a_min_trial_count_ACM_link
, a_max_trial_count_ACM_link
, a_get_all_assessment
, a_get_inactive_assessment
, a_ids_assessment
, a_notes_assessment
, a_min_temperature_assessment
, a_max_temperature_assessment
, a_get_all_weather
, a_get_inactive_weather
, a_ids_weather
, a_names_weather
, a_get_all_lighting_level
, a_get_inactive_lighting_level
, a_ids_lighting_level
, a_names_lighting_level
, a_get_all_location
, a_get_inactive_location
, a_ids_location
, a_names_location
, a_get_all_user_handler
, a_get_inactive_user_handler
, a_ids_user_handler
-- , a_auth0_ids_user_handler
, a_names_user_handler
, a_emails_user_handler
, a_get_all_command_category
, a_get_inactive_command_category
, a_ids_command_category
, a_names_command_category
, a_get_all_command
, a_get_inactive_command
, a_ids_command
, a_names_command
, a_hand_signal_default_descriptions_command
, a_notes_command
, a_get_all_command_modality
, a_get_inactive_command_modality
, a_ids_command_modality
, a_names_command_modality
, a_get_all_bribe
, a_get_inactive_bribe
, a_ids_bribe
, a_names_bribe
, a_get_all_response_quality_metric
, a_get_inactive_response_quality_metric
, a_ids_response_quality_metric
, a_names_response_quality_metric
, a_get_all_obedience_level
, a_get_inactive_obedience_level
, a_ids_obedience_level
, a_names_obedience_level
, 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
@@ -253,60 +520,73 @@ BEGIN
);
IF a_debug = 1 THEN
SELECT COUNT(*) FROM parts.DOG_Colour_Temp;
SELECT * FROM parts.DOG_Colour_Temp;
SELECT COUNT(*) FROM parts.DOG_Assessment_Response_Temp;
SELECT * FROM parts.DOG_Assessment_Response_Temp;
END IF;
INSERT INTO tmp_Colour (
id_colour
, code
, name
INSERT INTO tmp_Assessment_Response (
id_response
, id_assessment_command_modality_link
, id_response_quality_metric
, id_obedience_level
, value_measured
, notes
, active
, does_meet_id_filters
, does_meet_non_id_filters
)
SELECT
COLOUR_T.id_colour
, COLOUR_T.code
, COLOUR_T.name
, COLOUR_T.active
ASSESSMENT_RESPONSE_T.id_response
, ASSESSMENT_RESPONSE_T.id_assessment_command_modality_link
, ASSESSMENT_RESPONSE_T.id_response_quality_metric
, ASSESSMENT_RESPONSE_T.id_obedience_level
, ASSESSMENT_RESPONSE_T.value_measured
, ASSESSMENT_RESPONSE_T.notes
, ASSESSMENT_RESPONSE_T.active
, COLOUR_T.does_meet_id_filters
, COLOUR_T.does_meet_non_id_filters
FROM parts.DOG_Colour_Temp COLOUR_T
WHERE COLOUR_T.GUID = v_guid
, ASSESSMENT_RESPONSE_T.does_meet_id_filters
, ASSESSMENT_RESPONSE_T.does_meet_non_id_filters
FROM parts.DOG_Assessment_Response_Temp ASSESSMENT_RESPONSE_T
WHERE ASSESSMENT_RESPONSE_T.GUID = v_guid
;
IF a_debug = 1 THEN
SELECT COUNT(*) FROM tmp_Colour;
SELECT * FROM tmp_Colour;
SELECT COUNT(*) FROM tmp_Assessment_Response;
SELECT * FROM tmp_Assessment_Response;
END IF;
END IF;
-- Filter outputs
IF EXISTS(SELECT * FROM tmp_Msg_Error t_ERROR INNER JOIN parts.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type WHERE ERROR_TYPE.is_breaking_error = 1 LIMIT 1) THEN
IF a_debug = 1 THEN
SELECT * FROM tmp_Colour;
SELECT * FROM tmp_Assessment_Response;
END IF;
DELETE FROM tmp_Colour;
DELETE FROM tmp_Assessment_Response;
END IF;
-- Outputs
-- Colours
-- Assessment_Responses
SELECT
t_COLOURS.id_colour
, t_COLOURS.code
, t_COLOURS.name
, t_COLOURS.active
t_ASSESSMENT_RESPONSE.id_response
, t_ASSESSMENT_RESPONSE.id_assessment_command_modality_link
, t_ASSESSMENT_RESPONSE.id_response_quality_metric
, RESPONSE_QUALITY_METRIC.name AS name_response_quality_metric
, t_ASSESSMENT_RESPONSE.id_obedience_level
, OBEDIENCE_LEVEL.name AS name_obedience_level
, t_ASSESSMENT_RESPONSE.value_measured
, t_ASSESSMENT_RESPONSE.notes
, t_ASSESSMENT_RESPONSE.active
, t_COLOURS.does_meet_id_filters
, t_COLOURS.does_meet_non_id_filters
FROM tmp_Colour t_COLOURS
LEFT JOIN parts.DOG_Colour COLOURS ON t_COLOURS.id_colour = COLOURS.id_colour
ORDER BY t_COLOURS.name
, t_ASSESSMENT_RESPONSE.does_meet_id_filters
, t_ASSESSMENT_RESPONSE.does_meet_non_id_filters
FROM tmp_Assessment_Response t_ASSESSMENT_RESPONSE
LEFT JOIN parts.DOG_Assessment_Response ASSESSMENT_RESPONSE ON t_ASSESSMENT_RESPONSE.id_response = ASSESSMENT_RESPONSE.id_response
LEFT JOIN parts.DOG_Obedience_Level OBEDIENCE_LEVEL ON t_ASSESSMENT_RESPONSE.id_obedience_level = OBEDIENCE_LEVEL.id_obedience_level
LEFT JOIN parts.DOG_Response_Quality_Metric RESPONSE_QUALITY_METRIC ON t_ASSESSMENT_RESPONSE.id_response_quality_metric = RESPONSE_QUALITY_METRIC.id_metric
ORDER BY ASSESSMENT_RESPONSE.created_on DESC
;
-- Errors
@@ -325,16 +605,16 @@ BEGIN
;
IF a_debug = 1 AND v_can_view = 1 THEN
SELECT * FROM tmp_Colour;
SELECT * FROM tmp_Assessment_Response;
END IF;
CALL parts.p_dog_clear_calc_colour(
CALL parts.p_dog_clear_calc_assessment_response(
v_guid -- a_guid
, 0 -- a_debug
);
DROP TEMPORARY TABLE IF EXISTS tmp_Msg_Error;
DROP TEMPORARY TABLE IF EXISTS tmp_Colour;
DROP TEMPORARY TABLE IF EXISTS tmp_Assessment_Response;
IF a_debug = 1 THEN
CALL parts.p_core_debug_timing_reporting ( v_time_start );
@@ -345,26 +625,81 @@ DELIMITER ;
/*
CALL parts.p_dog_get_many_colour (
CALL parts.p_dog_get_many_assessment_response (
1 -- 'auth0|6582b95c895d09a70ba10fef', -- a_id_user
, 1 -- a_get_all_colour
, 0 -- a_get_inactive_colour
, '' -- a_ids_colour
, '' -- a_names_colour
, 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
);
, 1 -- a_get_all_assessment_response
, 0 -- a_get_inactive_assessment_response
, '' -- a_ids_assessment_response
, '' -- a_notes_assessment_response
, NULL -- a_min_value_measured_assessment_response
, NULL -- a_max_value_measured_assessment_response
, 1 -- a_get_all_ACM_link
, 0 -- a_get_inactive_ACM_link
, '' -- a_ids_ACM_link
, NULL -- a_min_distance_from_handler_ACM_link
, NULL -- a_max_distance_from_handler_ACM_link
, NULL -- a_value_is_in_sight_of_handler_ACM_link
, NULL -- a_value_is_in_scent_range_of_handler_ACM_link
, NULL -- a_value_is_in_hearing_range_of_handler_ACM_link
, NULL -- a_value_is_on_lead_ACM_link
, NULL -- a_min_trial_count_ACM_link
, NULL -- a_max_trial_count_ACM_link
, 1 -- a_get_all_assessment
, 0 -- a_get_inactive_assessment
, '' -- a_ids_assessment
, '' -- a_notes_assessment
, NULL -- a_min_temperature_assessment
, NULL -- a_max_temperature_assessment
, 1 -- a_get_all_weather
, 0 -- a_get_inactive_weather
, '' -- a_ids_weather
, '' -- a_names_weather
, 1 -- a_get_all_lighting_level
, 0 -- a_get_inactive_lighting_level
, '' -- a_ids_lighting_level
, '' -- a_names_lighting_level
, 1 -- a_get_all_location
, 0 -- a_get_inactive_location
, '' -- a_ids_location
, '' -- a_names_location
, 1 -- a_get_all_user_handler
, 0 -- a_get_inactive_user_handler
, '' -- a_ids_user_handler
-- , IN a_auth0_ids_user_handler TEXT
, '' -- a_names_user_handler
, '' -- a_emails_user_handler
, 1 -- a_get_all_command_category
, 0 -- a_get_inactive_command_category
, '' -- a_ids_command_category
, '' -- a_names_command_category
, 1 -- a_get_all_command
, 0 -- a_get_inactive_command
, '' -- a_ids_command
, '' -- a_names_command
, '' -- a_hand_signal_default_descriptions_command
, '' -- a_notes_command
, 1 -- a_get_all_command_modality
, 0 -- a_get_inactive_command_modality
, '' -- a_ids_command_modality
, '' -- a_names_command_modality
, 1 -- a_get_all_bribe
, 0 -- a_get_inactive_bribe
, '' -- a_ids_bribe
, '' -- a_names_bribe
, 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_get_all_obedience_level
, 0 -- a_get_inactive_obedience_level
, '' -- a_ids_obedience_level
, '' -- a_names_obedience_level
CALL demo.p_dog_get_many_colour (
1 -- 'auth0|6582b95c895d09a70ba10fef', -- a_id_user
, 1 -- a_get_all_colour
, 0 -- a_get_inactive_colour
, '' -- a_ids_colour
, 'pat,point' -- a_names_colour
, 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