diff --git a/business_objects/dog/dog_command_link.py b/business_objects/dog/dog_command_link.py index 72bf252..32126a6 100644 --- a/business_objects/dog/dog_command_link.py +++ b/business_objects/dog/dog_command_link.py @@ -170,7 +170,7 @@ class Parameters_Dog_Command_Link(Get_Many_Parameters_Base): require_any_non_id_search_filters_met: bool @classmethod - def get_default(cls): + def get_default(cls, id_user_session): return cls( get_all_link = True , get_inactive_link = False diff --git a/business_objects/dog/location.py b/business_objects/dog/location.py index b061a32..18479fa 100644 --- a/business_objects/dog/location.py +++ b/business_objects/dog/location.py @@ -235,6 +235,5 @@ class Parameters_Location(Get_Many_Parameters_Base): , 'a_require_any_id_search_filters_met': self.require_any_id_search_filters_met , 'a_require_all_non_id_search_filters_met': self.require_all_non_id_search_filters_met , 'a_require_any_non_id_search_filters_met': self.require_any_non_id_search_filters_met - , 'a_output_locations': self.output_locations } diff --git a/controllers/user/user.py b/controllers/user/user.py index 347ba09..cdc574e 100644 --- a/controllers/user/user.py +++ b/controllers/user/user.py @@ -138,7 +138,24 @@ def login_callback(): session[Model_View_Base.FLAG_USER] = user_json Helper_App.console_log(f'user stored on session') except: - Helper_App.console_log(f'User not found: {filters}\nDatabase query error: {errors}') + # Helper_App.console_log(f'User not found: {filters}\nDatabase query error: {errors}') + user = User.from_json_auth0(token) + errors = datastore_user.save_new_founding_partner(user) + + filters = Parameters_User.from_user(user) + datastore_user = DataStore_User() + users, errors = datastore_user.get_many_user(filters, user) + try: + user = users[0] + Helper_App.console_log('User logged in') + Helper_App.console_log(f'user ({str(type(user))}): {user}') + Helper_App.console_log(f'user key: {Model_View_Base.FLAG_USER}') + user_json = user.to_json() + Helper_App.console_log(f'User JSON: {user_json}') + session[Model_View_Base.FLAG_USER] = user_json + Helper_App.console_log(f'user stored on session') + except: + Helper_App.console_log(f'User not found: {filters}\nDatabase query error: {errors}') try: hash_callback = token.get('hash_callback') diff --git a/datastores/datastore_user.py b/datastores/datastore_user.py index c473024..f9956a7 100644 --- a/datastores/datastore_user.py +++ b/datastores/datastore_user.py @@ -131,6 +131,40 @@ class DataStore_User(DataStore_Base): cls.db_cursor_clear(cursor) return errors + @classmethod + def save_new_founding_partner(cls, user): + _m = f'{cls}.save_new_founding_partner' + av.val_str(comment, 'comment', _m) + + guid = Helper_DB_MySQL.create_guid_str() + user = cls.get_user_session() + + Helper_App.console_log(f'saving users: {users}') + + argument_dict_list = { + 'a_comment': comment, + 'a_guid': guid, + 'a_id_user_auth0': user.id_user_auth0, + 'a_email_user': user.email + 'a_debug': 0 + } + result = cls.db_procedure_execute('p_dog_save_new_founding_partner', argument_dict_list) + + Helper_App.console_log('Users saved') + + # Errors + cursor = result.cursor + cursor.nextset() + result_set_e = cursor.fetchall() + errors = [] + if len(result_set_e) > 0: + errors = [SQL_Error.from_db_record(row) for row in result_set_e] + for error in errors: + Helper_App.console_log(f"Error [{error.code}]: {error.msg}") + + cls.db_cursor_clear(cursor) + return errors + @classmethod def get_many_role(cls, role_filters): diff --git a/models/model_view_base.py b/models/model_view_base.py index 9d9561a..ee8e5bf 100644 --- a/models/model_view_base.py +++ b/models/model_view_base.py @@ -194,6 +194,7 @@ class Model_View_Base(BaseModel, ABC): FLAG_FORM_FILTERS: ClassVar[str] = 'form-filters' FLAG_HAMBURGER: ClassVar[str] = 'hamburger' FLAG_ICON: ClassVar[str] = "icon" + FLAG_IMAGE: ClassVar[str] = Image.FLAG_IMAGE FLAG_IMAGE_LOGO: ClassVar[str] = 'image-logo' FLAG_INITIALISED: ClassVar[str] = 'initialised' FLAG_INPUT_ANSWER: ClassVar[str] = 'input-answer' diff --git a/static/MySQL/00000_combined.sql b/static/MySQL/00000_combined.sql index d0b087f..c836450 100644 --- a/static/MySQL/00000_combined.sql +++ b/static/MySQL/00000_combined.sql @@ -1,103 +1,31 @@ - -USE demo; -DROP PROCEDURE IF EXISTS demo.p_dog_calc_assessment_response; + +USE demo; + +DROP PROCEDURE IF EXISTS p_dog_save_new_founding_partner; + DELIMITER // -CREATE PROCEDURE demo.p_dog_calc_assessment_response ( - IN a_guid BINARY(36) - , IN a_id_user INT - , 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_metres_ACM_link FLOAT - , IN a_max_distance_from_handler_metres_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 - , IN a_require_any_non_id_search_filters_met BIT - , IN a_show_errors BIT +CREATE PROCEDURE p_dog_save_new_founding_partner ( + IN a_comment VARCHAR(500) + , IN a_guid BINARY(36) + , IN a_id_user_auth0 VARCHAR(256) + , IN a_email_user VARCHAR(256) , IN a_debug BIT ) BEGIN - DECLARE v_can_view BIT; - DECLARE v_code_type_error_bad_data VARCHAR(100); - DECLARE v_code_type_error_no_permission VARCHAR(100); - DECLARE v_has_filter_assessment_response_id BIT; - DECLARE v_has_filter_assessment_response_notes BIT; - DECLARE v_has_filter_assessment_response_value_measured_min BIT; - DECLARE v_has_filter_assessment_response_value_measured_max BIT; - DECLARE v_id_access_level_view INT; - DECLARE v_id_minimum INT; - DECLARE v_id_permission_dog_view INT; + 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_product INT; + DECLARE v_id_permission_user_edit INT; + DECLARE v_id_role_manager INT; + DECLARE v_is_super_user BIT; DECLARE v_id_type_error_bad_data INT; - DECLARE v_id_type_error_no_permission INT; + DECLARE v_can_edit_user BIT; + DECLARE v_priority_access_level_admin INT; + DECLARE v_priority_access_level_none INT; + DECLARE v_priority_access_level_user INT; DECLARE v_time_start TIMESTAMP(6); DECLARE exit handler for SQLEXCEPTION @@ -110,1195 +38,179 @@ BEGIN ROLLBACK; - CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error_Calc_Assessment_Response ( - id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT + CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error ( + display_order INT NOT NULL PRIMARY KEY AUTO_INCREMENT , id_type INT , code VARCHAR(250) NOT NULL , msg TEXT NOT NULL ); - - INSERT INTO tmp_Msg_Error_Calc_Assessment_Response ( - id_type + INSERT INTO tmp_Msg_Error ( + id_type , code , msg ) SELECT - MET.id_type + 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_Calc_Assessment_Response 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_Calc_Assessment_Response; + 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_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_access_level_edit := (SELECT ACCESS_LEVEL.id_access_level FROM demo.DOG_Access_Level ACCESS_LEVEL WHERE ACCESS_LEVEL.code = 'EDIT' LIMIT 1); + SET v_id_permission_user_edit := (SELECT GROUP_CONCAT(PERMISSION.id_permission SEPARATOR ',') FROM demo.DOG_Permission PERMISSION WHERE PERMISSION.code = 'USER_CREATE' LIMIT 1); + SET v_priority_access_level_admin := (SELECT ACCESS_LEVEL.priority FROM demo.DOG_Access_Level ACCESS_LEVEL WHERE ACCESS_LEVEL.code = 'ADMIN' LIMIT 1); + SET v_priority_access_level_none := (SELECT ACCESS_LEVEL.priority FROM demo.DOG_Access_Level ACCESS_LEVEL WHERE ACCESS_LEVEL.code = 'NONE' LIMIT 1); + SET v_id_role_manager := (SELECT ROLES.id_role FROM demo.DOG_Role ROLES WHERE ROLES.code = 'COMPANY_MANAGER' LIMIT 1); + CALL demo.p_core_validate_guid ( a_guid ); - - SET a_id_user := IFNULL(a_id_user, 0); - SET a_get_all_assessment_response := IFNULL(a_get_all_assessment_response, 0); - SET a_get_inactive_assessment_response := IFNULL(a_get_inactive_assessment_response, 0); - SET a_ids_assessment_response := TRIM(IFNULL(a_ids_assessment_response, '')); - SET a_notes_assessment_response := TRIM(IFNULL(a_notes_assessment_response, '')); - /* - , IN a_min_value_measured_assessment_response INT - , IN a_max_value_measured_assessment_response INT - */ - -- Foreign key filters corected in their Calc Stored Procedures - 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_show_errors := IFNULL(a_show_errors, 0); - SET a_debug := IFNULL(a_debug, 0); - IF a_debug = 1 THEN - SELECT - a_guid - , a_id_user - , a_get_all_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_metres_ACM_link - , a_max_distance_from_handler_metres_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 - , a_require_any_non_id_search_filters_met - , a_show_errors - , a_debug - ; - - SELECT - v_id_type_error_bad_data - , v_id_type_error_no_permission - , v_id_permission_dog_view - , v_time_start - ; - END IF; - - DROP TEMPORARY TABLE IF EXISTS tmp_Split_Notes_Calc_Assessment_Response; - DROP TEMPORARY TABLE IF EXISTS tmp_Split_Id_Calc_Assessment_Response; - DROP TEMPORARY TABLE IF EXISTS tmp_Msg_Error_Calc_Assessment_Response; - DROP TEMPORARY TABLE IF EXISTS tmp_Assessment_Response_Calc_Assessment_Response; - DROP TEMPORARY TABLE IF EXISTS tmp_Obedience_Level_Calc_Assessment_Response; - DROP TEMPORARY TABLE IF EXISTS tmp_Response_Quality_Metric_Calc_Assessment_Response; - DROP TEMPORARY TABLE IF EXISTS tmp_Assessment_Command_Modality_Link_Calc_Assessment_Response; - - CREATE TEMPORARY TABLE tmp_Assessment_Command_Modality_Link_Calc_Assessment_Response ( - id_link INT NOT NULL - , id_assessment INT - , id_command INT - , id_command_modality INT - , id_bribe INT - , distance_from_handler_metres 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 - , does_meet_id_filters BIT NOT NULL - , does_meet_non_id_filters BIT NOT NULL - ); - - CREATE TEMPORARY TABLE tmp_Response_Quality_Metric_Calc_Assessment_Response ( - 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_Obedience_Level_Calc_Assessment_Response ( - id_obedience_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_Assessment_Response_Calc_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 NOT NULL - , does_meet_non_id_filters BIT NOT NULL + DROP TABLE IF EXISTS tmp_Msg_Error; + DROP TABLE IF EXISTS tmp_User_Save_User; + + CREATE TABLE tmp_User_Save_User ( + id_user INT NOT NULL + , id_role INT + , id_user_auth0 VARCHAR(250) + , firstname VARCHAR(250) + , surname VARCHAR(250) + , email VARCHAR(254) + , is_email_verified BIT DEFAULT 0 + , is_super_user BIT DEFAULT 0 + , active BIT DEFAULT 1 + , name_error VARCHAR(1000) ); - CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error_Calc_Assessment_Response ( - id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT - , id_type INT - , code VARCHAR(250) NOT NULL - , msg TEXT NOT NULL - ); + CREATE TABLE tmp_Msg_Error ( + display_order INT NOT NULL PRIMARY KEY AUTO_INCREMENT, + id_type INT NOT NULL, + code VARCHAR(250) NOT NULL, + msg TEXT NOT NULL + ); - CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Split_Id_Calc_Assessment_Response ( - substring VARCHAR(4000) NOT NULL - , as_int INT - ); - DELETE FROM tmp_Split_Id_Calc_Assessment_Response; - - CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Split_Notes_Calc_Assessment_Response ( - substring VARCHAR(4000) NOT NULL - , as_int INT - ); - DELETE FROM tmp_Split_Notes_Calc_Assessment_Response; - - SET v_has_filter_assessment_response_id := CASE WHEN a_ids_assessment_response <> '' THEN 1 ELSE 0 END; - SET v_has_filter_assessment_response_notes := CASE WHEN a_notes_assessment_response <> '' THEN 1 ELSE 0 END; - SET v_has_filter_assessment_response_value_measured_min := NOT ISNULL(a_min_value_measured_assessment_response); - SET v_has_filter_assessment_response_value_measured_max := NOT ISNULL(a_max_value_measured_assessment_response); - - -- Call Calc Assessment Command Modality Link - IF NOT EXISTS(SELECT * FROM tmp_Msg_Error_Calc_Assessment_Response 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_ACM_link - , a_get_inactive_ACM_link - , a_ids_ACM_link - , a_min_distance_from_handler_metres_ACM_link - , a_max_distance_from_handler_metres_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_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 demo.p_dog_calc_assessment_command_modality_link ( - a_guid -- a_guid - , a_id_user -- a_id_user - , a_get_all_ACM_link - , a_get_inactive_ACM_link - , a_ids_ACM_link - , a_min_distance_from_handler_metres_ACM_link - , a_max_distance_from_handler_metres_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_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 - ); - - INSERT INTO tmp_Assessment_Command_Modality_Link_Calc_Assessment_Response ( - id_link - , id_assessment - , id_command - , id_command_modality - , id_bribe - , distance_from_handler_metres - , is_in_sight_of_handler - , is_in_scent_range_of_handler - , is_in_hearing_range_of_handler - , is_on_lead - , trial_count - , active - , does_meet_id_filters - , does_meet_non_id_filters - ) - SELECT - ASSESSMENT_COMMAND_MODALITY_LINK_T.id_link - , ASSESSMENT_COMMAND_MODALITY_LINK_T.id_assessment - , ASSESSMENT_COMMAND_MODALITY_LINK_T.id_command - , ASSESSMENT_COMMAND_MODALITY_LINK_T.id_command_modality - , ASSESSMENT_COMMAND_MODALITY_LINK_T.id_bribe - , ASSESSMENT_COMMAND_MODALITY_LINK_T.distance_from_handler_metres - , ASSESSMENT_COMMAND_MODALITY_LINK_T.is_in_sight_of_handler - , ASSESSMENT_COMMAND_MODALITY_LINK_T.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 - , ASSESSMENT_COMMAND_MODALITY_LINK_T.active - - , ASSESSMENT_COMMAND_MODALITY_LINK_T.does_meet_id_filters - , ASSESSMENT_COMMAND_MODALITY_LINK_T.does_meet_non_id_filters - FROM demo.DOG_Assessment_Command_Modality_Link_Temp ASSESSMENT_COMMAND_MODALITY_LINK_T - WHERE ASSESSMENT_COMMAND_MODALITY_LINK_T.GUID = a_guid - ; - - IF a_debug = 1 THEN - SELECT * FROM tmp_Assessment_Command_Modality_Link_Calc_Assessment_Response; - END IF; - END IF; - - -- Call Calc Response Quality Metric - IF NOT EXISTS(SELECT * FROM tmp_Msg_Error_Calc_Assessment_Response 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 - a_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_get_all_user_handler - , a_get_inactive_user_handler - , a_ids_user_handler - , a_names_user_handler - , a_emails_user_handler - , 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 demo.p_dog_calc_response_quality_metric ( - a_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_get_all_user_handler - , a_get_inactive_user_handler - , a_ids_user_handler - , a_names_user_handler - , a_emails_user_handler - , 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_Response_Quality_Metric_Calc_Assessment_Response ( - id_metric - , id_unit_measurement + IF NOT EXISTS (SELECT * FROM demo.PH_Apply_Founding_Partner_Form AFPF WHERE AFPF.email = a_email_user) THEN + INSERT INTO tmp_Msg_Error ( + id_type , 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 = a_guid - ; - - IF a_debug = 1 THEN - SELECT * FROM tmp_Response_Quality_Metric_Calc_Assessment_Response; - END IF; - END IF; - - -- Call Calc Obedience Level - IF NOT EXISTS(SELECT * FROM tmp_Msg_Error_Calc_Assessment_Response 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 - a_guid -- a_guid - , a_id_user -- a_id_user - , a_get_all_obedience_level -- a_get_all_obedience_level - , a_get_inactive_obedience_level -- a_get_inactive_obedience_level - , a_ids_obedience_level -- a_ids_obedience_level - , a_names_obedience_level -- a_names_obedience_level - , a_get_all_user_handler - , a_get_inactive_user_handler - , a_ids_user_handler - , a_names_user_handler - , a_emails_user_handler - , 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 demo.p_dog_calc_obedience_level ( - a_guid -- a_guid - , a_id_user -- a_id_user - , a_get_all_obedience_level -- a_get_all_obedience_level - , a_get_inactive_obedience_level -- a_get_inactive_obedience_level - , a_ids_obedience_level -- a_ids_obedience_level - , a_names_obedience_level -- a_names_obedience_level - , a_get_all_user_handler - , a_get_inactive_user_handler - , a_ids_user_handler - , a_names_user_handler - , a_emails_user_handler - , 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_Obedience_Level_Calc_Assessment_Response ( - id_obedience_level - , code - , name - , active - - , does_meet_id_filters - , does_meet_non_id_filters - ) - SELECT - OBEDIENCE_LEVEL_T.id_obedience_level - , OBEDIENCE_LEVEL_T.code - , OBEDIENCE_LEVEL_T.name - , OBEDIENCE_LEVEL_T.active - - , OBEDIENCE_LEVEL_T.does_meet_id_filters - , OBEDIENCE_LEVEL_T.does_meet_non_id_filters - FROM demo.DOG_Obedience_Level_Temp OBEDIENCE_LEVEL_T - WHERE OBEDIENCE_LEVEL_T.GUID = a_guid - ; - - IF a_debug = 1 THEN - SELECT * FROM tmp_Obedience_Level_Calc_Assessment_Response; - END IF; - END IF; - - -- Assessment_Responses - IF v_has_filter_assessment_response_id = 1 THEN - CALL demo.p_core_split(a_guid, a_ids_assessment_response, ',', a_debug); - - SET sql_mode = ''; - - INSERT INTO tmp_Split_Id_Calc_Assessment_Response ( - substring - , as_int - ) - SELECT - SPLIT_T.substring - , CAST(SPLIT_T.substring AS DECIMAL(10,0)) AS as_int - FROM demo.CORE_Split_Temp SPLIT_T - WHERE - SPLIT_T.GUID = a_guid - AND IFNULL(SPLIT_T.substring, '') <> '' - ; - - CALL demo.p_core_clear_split( a_guid ); - END IF; - - IF v_has_filter_assessment_response_notes = 1 THEN - CALL demo.p_core_split(a_guid, a_notes_assessment_response, ',', a_debug); - - SET sql_mode = ''; - - INSERT INTO tmp_Split_Notes_Calc_Assessment_Response ( - substring - , as_int - ) - SELECT - SPLIT_T.substring - , CAST(SPLIT_T.substring AS DECIMAL(10,0)) AS as_int - FROM demo.CORE_Split_Temp SPLIT_T - WHERE - SPLIT_T.GUID = a_guid - AND IFNULL(SPLIT_T.substring, '') <> '' - ; - - CALL demo.p_core_clear_split( a_guid ); - END IF; - - IF NOT EXISTS (SELECT * FROM tmp_Msg_Error_Calc_Assessment_Response t_ERROR INNER JOIN demo.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type WHERE ERROR_TYPE.is_breaking_error = 1 LIMIT 1) THEN - IF EXISTS ( - SELECT * - FROM tmp_Split_Id_Calc_Assessment_Response t_SPLIT_ID - LEFT JOIN demo.DOG_Assessment_Response ASSESSMENT_RESPONSE ON t_SPLIT_ID.as_int = ASSESSMENT_RESPONSE.id_response - WHERE - ISNULL(t_SPLIT_ID.as_int) - OR ISNULL(ASSESSMENT_RESPONSE.id_response) - OR ( - ASSESSMENT_RESPONSE.active = 0 - AND a_get_inactive_assessment_response = 0 - ) - ) THEN - INSERT INTO tmp_Msg_Error_Calc_Assessment_Response ( - id_type - , code - , msg - ) - SELECT - v_id_type_error_bad_data - , v_code_type_error_bad_data - , CONCAT('Invalid or inactive Assessment_Response IDs: ', IFNULL(GROUP_CONCAT(t_SPLIT_ID.substring SEPARATOR ', '), 'NULL')) - FROM tmp_Split_Id_Calc_Assessment_Response t_SPLIT_ID - LEFT JOIN demo.DOG_Assessment_Response ASSESSMENT_RESPONSE ON t_SPLIT_ID.as_int = ASSESSMENT_RESPONSE.id_response - WHERE - ISNULL(t_SPLIT_ID.as_int) - OR ISNULL(ASSESSMENT_RESPONSE.id_response) - OR ( - ASSESSMENT_RESPONSE.active = 0 - AND a_get_inactive_assessment_response = 0 - ) - ; - /* Don't error on notes not found - ELSEIF EXISTS () - */ - ELSE - IF a_debug = 1 THEN - SELECT 'Assessment_Response Filters'; - WITH - Assessment_Response_Id_Filter AS ( - SELECT ASSESSMENT_RESPONSE.id_response - FROM tmp_Split_Id_Calc_Assessment_Response t_SPLIT_ID - INNER JOIN demo.DOG_Assessment_Response ASSESSMENT_RESPONSE ON t_SPLIT_ID.as_int = ASSESSMENT_RESPONSE.id_response - ) - , Assessment_Response_Notes_Filter AS ( - SELECT ASSESSMENT_RESPONSE.id_response - FROM tmp_Split_Notes_Calc_Assessment_Response t_SPLIT_NOTES - INNER JOIN demo.DOG_Assessment_Response ASSESSMENT_RESPONSE ON ASSESSMENT_RESPONSE.notes LIKE CONCAT('%', t_SPLIT_NOTES.substring, '%') - WHERE NULLIF(t_SPLIT_NOTES.substring, '') IS NOT NULL - ) - , Assessment_Response_Filters AS ( - SELECT - ASSESSMENT_RESPONSE_COMBINED.id_response - , MAX(ASSESSMENT_RESPONSE_COMBINED.does_meet_id_filter) AS does_meet_id_filter - , MAX(ASSESSMENT_RESPONSE_COMBINED.does_meet_notes_filter) AS does_meet_notes_filter - FROM ( - SELECT - ASSESSMENT_RESPONSE_ID_FILTER.id_response - , 1 AS does_meet_id_filter - , 0 AS does_meet_notes_filter - FROM Assessment_Response_Id_Filter ASSESSMENT_RESPONSE_ID_FILTER - UNION - SELECT - ASSESSMENT_RESPONSE_NOTES_FILTER.id_response - , 0 AS does_meet_id_filter - , 1 AS does_meet_notes_filter - FROM Assessment_Response_Notes_Filter ASSESSMENT_RESPONSE_NOTES_FILTER - ) ASSESSMENT_RESPONSE_COMBINED - GROUP BY ASSESSMENT_RESPONSE_COMBINED.id_response - ) - SELECT - ASSESSMENT_RESPONSE.id_response - , ASSESSMENT_RESPONSE.id_assessment_command_modality_link - , ASSESSMENT_RESPONSE.id_response_quality_metric - , ASSESSMENT_RESPONSE.id_obedience_level - , ASSESSMENT_RESPONSE.value_measured - , ASSESSMENT_RESPONSE.notes - , ASSESSMENT_RESPONSE.active - , CASE WHEN - v_has_filter_assessment_response_id = 0 - OR ASSESSMENT_RESPONSE_FILTERS.does_meet_id_filter = 1 - THEN 1 ELSE 0 END AS does_meet_id_filters - , CASE WHEN - ( - v_has_filter_assessment_response_notes = 0 - AND v_has_filter_assessment_response_value_measured_min = 0 - AND v_has_filter_assessment_response_value_measured_max = 0 - ) - OR ASSESSMENT_RESPONSE_FILTERS.does_meet_notes_filter = 1 - OR ( - v_has_filter_assessment_response_value_measured_min = 0 - OR ( - v_has_filter_assessment_response_value_measured_min = 1 - AND ASSESSMENT_RESPONSE.value_measured >= v_has_filter_assessment_response_value_measured_min - ) - ) - OR ( - v_has_filter_assessment_response_value_measured_max = 0 - OR ( - v_has_filter_assessment_response_value_measured_max = 1 - AND ASSESSMENT_RESPONSE.value_measured <= v_has_filter_assessment_response_value_measured_max - ) - ) - THEN 1 ELSE 0 END AS does_meet_non_id_filters - FROM demo.DOG_Assessment_Response ASSESSMENT_RESPONSE - LEFT JOIN Assessment_Response_Filters ASSESSMENT_RESPONSE_FILTERS ON ASSESSMENT_RESPONSE.id_response = ASSESSMENT_RESPONSE_FILTERS.id_response - WHERE - ( - a_get_all_assessment_response = 1 - OR ( - v_has_filter_assessment_response_id = 1 - AND ASSESSMENT_RESPONSE_FILTERS.does_meet_id_filter = 1 - ) - OR ( - v_has_filter_assessment_response_notes = 1 - AND ASSESSMENT_RESPONSE_FILTERS.does_meet_notes_filter = 1 - ) - OR ( - v_has_filter_assessment_response_value_measured_min = 1 - AND ASSESSMENT_RESPONSE.value_measured >= v_has_filter_assessment_response_value_measured_min - ) - OR ( - v_has_filter_assessment_response_value_measured_max = 1 - AND ASSESSMENT_RESPONSE.value_measured <= v_has_filter_assessment_response_value_measured_max - ) - ) - AND ( - a_get_inactive_assessment_response = 1 - OR ASSESSMENT_RESPONSE.active = 1 - ) - ; - END IF; - INSERT INTO tmp_Assessment_Response_Calc_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 - ) - WITH - Assessment_Response_Id_Filter AS ( - SELECT ASSESSMENT_RESPONSE.id_response - FROM tmp_Split_Id_Calc_Assessment_Response t_SPLIT_ID - INNER JOIN demo.DOG_Assessment_Response ASSESSMENT_RESPONSE ON t_SPLIT_ID.as_int = ASSESSMENT_RESPONSE.id_response - ) - , Assessment_Response_Notes_Filter AS ( - SELECT ASSESSMENT_RESPONSE.id_response - FROM tmp_Split_Notes_Calc_Assessment_Response t_SPLIT_NOTES - INNER JOIN demo.DOG_Assessment_Response ASSESSMENT_RESPONSE ON ASSESSMENT_RESPONSE.notes LIKE CONCAT('%', t_SPLIT_NOTES.substring, '%') - WHERE NULLIF(t_SPLIT_NOTES.substring, '') IS NOT NULL - ) - , Assessment_Response_Filters AS ( - SELECT - ASSESSMENT_RESPONSE_COMBINED.id_response - , MAX(ASSESSMENT_RESPONSE_COMBINED.does_meet_id_filter) AS does_meet_id_filter - , MAX(ASSESSMENT_RESPONSE_COMBINED.does_meet_notes_filter) AS does_meet_notes_filter - FROM ( - SELECT - ASSESSMENT_RESPONSE_ID_FILTER.id_response - , 1 AS does_meet_id_filter - , 0 AS does_meet_notes_filter - FROM Assessment_Response_Id_Filter ASSESSMENT_RESPONSE_ID_FILTER - UNION - SELECT - ASSESSMENT_RESPONSE_NOTES_FILTER.id_response - , 0 AS does_meet_id_filter - , 1 AS does_meet_notes_filter - FROM Assessment_Response_Notes_Filter ASSESSMENT_RESPONSE_NOTES_FILTER - ) ASSESSMENT_RESPONSE_COMBINED - GROUP BY ASSESSMENT_RESPONSE_COMBINED.id_response - ) - SELECT - ASSESSMENT_RESPONSE.id_response - , ASSESSMENT_RESPONSE.id_assessment_command_modality_link - , ASSESSMENT_RESPONSE.id_response_quality_metric - , ASSESSMENT_RESPONSE.id_obedience_level - , ASSESSMENT_RESPONSE.value_measured - , ASSESSMENT_RESPONSE.notes - , ASSESSMENT_RESPONSE.active - , CASE WHEN - v_has_filter_assessment_response_id = 0 - OR ASSESSMENT_RESPONSE_FILTERS.does_meet_id_filter = 1 - THEN 1 ELSE 0 END AS does_meet_id_filters - , CASE WHEN - ( - v_has_filter_assessment_response_notes = 0 - AND v_has_filter_assessment_response_value_measured_min = 0 - AND v_has_filter_assessment_response_value_measured_max = 0 - ) - OR ASSESSMENT_RESPONSE_FILTERS.does_meet_notes_filter = 1 - OR ( - v_has_filter_assessment_response_value_measured_min = 0 - OR ( - v_has_filter_assessment_response_value_measured_min = 1 - AND ASSESSMENT_RESPONSE.value_measured >= v_has_filter_assessment_response_value_measured_min - ) - ) - OR ( - v_has_filter_assessment_response_value_measured_max = 0 - OR ( - v_has_filter_assessment_response_value_measured_max = 1 - AND ASSESSMENT_RESPONSE.value_measured <= v_has_filter_assessment_response_value_measured_max - ) - ) - THEN 1 ELSE 0 END AS does_meet_non_id_filters - FROM demo.DOG_Assessment_Response ASSESSMENT_RESPONSE - LEFT JOIN Assessment_Response_Filters ASSESSMENT_RESPONSE_FILTERS ON ASSESSMENT_RESPONSE.id_response = ASSESSMENT_RESPONSE_FILTERS.id_response - WHERE - ( - a_get_all_assessment_response = 1 - OR ( - v_has_filter_assessment_response_id = 1 - AND ASSESSMENT_RESPONSE_FILTERS.does_meet_id_filter = 1 - ) - OR ( - v_has_filter_assessment_response_notes = 1 - AND ASSESSMENT_RESPONSE_FILTERS.does_meet_notes_filter = 1 - ) - OR ( - v_has_filter_assessment_response_value_measured_min = 1 - AND ASSESSMENT_RESPONSE.value_measured >= v_has_filter_assessment_response_value_measured_min - ) - OR ( - v_has_filter_assessment_response_value_measured_max = 1 - AND ASSESSMENT_RESPONSE.value_measured <= v_has_filter_assessment_response_value_measured_max - ) - ) - AND ( - a_get_inactive_assessment_response = 1 - OR ASSESSMENT_RESPONSE.active = 1 - ) - ; - END IF; - END IF; - - DELETE FROM tmp_Split_Id_Calc_Assessment_Response; - DELETE FROM tmp_Split_Notes_Calc_Assessment_Response; - - IF a_debug = 1 THEN - SELECT 'After get Assessment_Responses'; - SELECT * FROM tmp_Assessment_Response_Calc_Assessment_Response; - END IF; - - -- Filter records - IF NOT EXISTS (SELECT * FROM tmp_Msg_Error_Calc_Assessment_Response 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 - DELETE t_ASSESSMENT_RESPONSE - FROM tmp_Assessment_Response_Calc_Assessment_Response t_ASSESSMENT_RESPONSE - LEFT JOIN tmp_Assessment_Command_Modality_Link_Calc_Assessment_Response t_ASSESSMENT_COMMAND_MODALITY_LINK ON t_ASSESSMENT_RESPONSE.id_assessment_command_modality_link = t_ASSESSMENT_COMMAND_MODALITY_LINK.id_link - LEFT JOIN tmp_Response_Quality_Metric_Calc_Assessment_Response t_RESPONSE_QUALITY_METRIC ON t_ASSESSMENT_RESPONSE.id_response_quality_metric = t_RESPONSE_QUALITY_METRIC.id_metric - LEFT JOIN tmp_Obedience_Level_Calc_Assessment_Response t_OBEDIENCE_LEVEL ON t_ASSESSMENT_RESPONSE.id_obedience_level = t_OBEDIENCE_LEVEL.id_obedience_level - WHERE - ( - a_require_all_id_search_filters_met = 1 - AND ( - t_ASSESSMENT_RESPONSE.does_meet_id_filters = 0 - OR IFNULL(t_ASSESSMENT_COMMAND_MODALITY_LINK.does_meet_id_filters, 1) = 0 - OR IFNULL(t_RESPONSE_QUALITY_METRIC.does_meet_id_filters, 1) = 0 - OR IFNULL(t_OBEDIENCE_LEVEL.does_meet_id_filters, 1) = 0 - ) - ) - OR ( - a_require_all_non_id_search_filters_met = 1 - AND ( - t_ASSESSMENT_RESPONSE.does_meet_non_id_filters = 0 - OR IFNULL(t_ASSESSMENT_COMMAND_MODALITY_LINK.does_meet_non_id_filters, 1) = 0 - OR IFNULL(t_RESPONSE_QUALITY_METRIC.does_meet_non_id_filters, 1) = 0 - OR IFNULL(t_OBEDIENCE_LEVEL.does_meet_non_id_filters, 1) = 0 - ) - ) - OR ( - a_require_any_id_search_filters_met = 1 - AND t_ASSESSMENT_RESPONSE.does_meet_id_filters = 0 - AND IFNULL(t_ASSESSMENT_COMMAND_MODALITY_LINK.does_meet_id_filters, 1) = 0 - AND IFNULL(t_RESPONSE_QUALITY_METRIC.does_meet_id_filters, 1) = 0 - AND IFNULL(t_OBEDIENCE_LEVEL.does_meet_id_filters, 1) = 0 - ) - OR ( - a_require_any_non_id_search_filters_met = 1 - AND t_ASSESSMENT_RESPONSE.does_meet_non_id_filters = 0 - AND IFNULL(t_ASSESSMENT_COMMAND_MODALITY_LINK.does_meet_non_id_filters, 1) = 0 - AND IFNULL(t_RESPONSE_QUALITY_METRIC.does_meet_non_id_filters, 1) = 0 - AND IFNULL(t_OBEDIENCE_LEVEL.does_meet_non_id_filters, 1) = 0 - ) - ; - END IF; - - IF a_debug = 1 THEN - SELECT 'After filter Assessment_Responses'; - SELECT * FROM tmp_Assessment_Command_Modality_Link_Calc_Assessment_Response; - SELECT * FROM tmp_Response_Quality_Metric_Calc_Assessment_Response; - SELECT * FROM tmp_Obedience_Level_Calc_Assessment_Response; - SELECT * FROM tmp_Assessment_Response_Calc_Assessment_Response; - END IF; - - - -- Permissions - IF a_debug = 1 THEN - SELECT - a_guid -- 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_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_access( - a_guid -- 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_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_Access_Temp CALC_USER_T - WHERE CALC_USER_T.GUID = a_guid - LIMIT 1 - ; - - IF a_debug = 1 THEN - SELECT v_can_view; - END IF; - - IF (v_can_view = 0) THEN - DELETE t_ME - FROM tmp_Msg_Error_Calc_Assessment_Response t_ME - WHERE t_ME.id_type <> v_id_type_error_no_permission - ; - INSERT INTO tmp_Msg_Error_Calc_Assessment_Response ( - id_type - , code , msg ) - VALUES ( - v_id_type_error_no_permission - , v_code_type_error_no_permission - , 'You do not have permission to view Dogs and Button Icons.' - ) - ; + SELECT + MET.id_type + , MET.code + , 'Founding Partner not found.' + FROM demo.CORE_Msg_Error_Type MET + WHERE MET.id_type = v_id_type_error_bad_data + ; + END IF; + + -- Get data from Temp table + INSERT INTO tmp_User_Save_User ( + id_user + , id_user_auth0 + , id_role + , email + , firstname + , surname + , name_error + ) + VALUES ( + -1 -- AS id_user + , a_id_user_auth0 + , v_id_role_manager + , a_email_user + , (SELECT LEFT(AFPF.name_contact, LOCATE(' ', AFPF.name_contact) - 1) FROM demo.PH_Apply_Founding_Partner_Form AFPF WHERE AFPF.email = a_email_user) -- AS firstname + , (SELECT SUBSTRING(AFPF.name_contact, LOCATE(' ', AFPF.name_contact) + 1) FROM demo.PH_Apply_Founding_Partner_Form AFPF WHERE AFPF.email = a_email_user) -- AS surname + , COALESCE(a_email_user, a_id_user_auth0) -- AS name_error + ); + + + IF NOT EXISTS (SELECT * FROM tmp_Msg_Error LIMIT 1) THEN + START TRANSACTION; + + INSERT INTO demo.DOG_User ( + id_user_auth0 + , firstname + , surname + , email + , is_email_verified + , is_super_user + , active + ) + SELECT + t_USER.id_user_auth0 + , t_USER.firstname + , t_USER.surname + , t_USER.email + , t_USER.is_email_verified + , t_USER.is_super_user + , t_USER.active + FROM tmp_User_Save_User t_USER + ; + + UPDATE tmp_User_Save_User t_USER + INNER JOIN demo.DOG_User USER ON t_USER.id_user_auth0 = USER.id_user_auth0 + SET t_USER.id_user = USER.id_user + ; + + INSERT INTO demo.DOG_User_Role_Link ( + id_role + , id_user + , active + , id_user_created_by + , created_on + ) + SELECT + t_USER.id_role + , t_USER.id_user + , 1 -- active + , t_USER.id_user AS created_by + , v_time_start AS created_on + FROM tmp_User_Save_User t_USER + ; + + COMMIT; END IF; - CALL demo.p_dog_clear_calc_user_access( - a_guid - , 0 -- a_debug - ); - - IF a_debug = 1 THEN - SELECT 'Before non-permitted data deletion'; - SELECT * FROM tmp_Assessment_Command_Modality_Link_Calc_Assessment_Response; - SELECT * FROM tmp_Response_Quality_Metric_Calc_Assessment_Response; - SELECT * FROM tmp_Obedience_Level_Calc_Assessment_Response; - SELECT * FROM tmp_Assessment_Response_Calc_Assessment_Response; - END IF; + # Errors + SELECT * + FROM tmp_Msg_Error t_ME + INNER JOIN demo.CORE_Msg_Error_Type MET ON t_ME.id_type = MET.id_type + ; - IF EXISTS(SELECT * FROM tmp_Msg_Error_Calc_Assessment_Response 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_Assessment_Command_Modality_Link_Calc_Assessment_Response; - SELECT * FROM tmp_Response_Quality_Metric_Calc_Assessment_Response; - SELECT * FROM tmp_Obedience_Level_Calc_Assessment_Response; - SELECT * FROM tmp_Assessment_Response_Calc_Assessment_Response; - END IF; + IF a_debug = 1 THEN + SELECT * from tmp_User_Save_User; + END IF; - DELETE FROM tmp_Assessment_Command_Modality_Link_Calc_Assessment_Response; - DELETE FROM tmp_Response_Quality_Metric_Calc_Assessment_Response; - DELETE FROM tmp_Obedience_Level_Calc_Assessment_Response; - DELETE FROM tmp_Assessment_Response_Calc_Assessment_Response; - END IF; - - IF a_debug = 1 THEN - SELECT 'After non-permitted data deletion'; - END IF; - - -- Outputs - START TRANSACTION; - -- Assessment_Responses - INSERT INTO demo.DOG_Assessment_Response_Temp ( - guid - , 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 - a_guid - , t_ASSESSMENT_RESPONSE.id_response - , t_ASSESSMENT_RESPONSE.id_assessment_command_modality_link - , t_ASSESSMENT_RESPONSE.id_response_quality_metric - , t_ASSESSMENT_RESPONSE.id_obedience_level - , t_ASSESSMENT_RESPONSE.value_measured - , t_ASSESSMENT_RESPONSE.notes - , t_ASSESSMENT_RESPONSE.active - - , t_ASSESSMENT_RESPONSE.does_meet_id_filters - , t_ASSESSMENT_RESPONSE.does_meet_non_id_filters - FROM demo.DOG_Assessment_Response ASSESSMENT_RESPONSE - INNER JOIN tmp_Assessment_Response_Calc_Assessment_Response t_ASSESSMENT_RESPONSE ON ASSESSMENT_RESPONSE.id_response = t_ASSESSMENT_RESPONSE.id_response - ; - COMMIT; - - -- Errors - IF a_show_errors = 1 THEN - SELECT - t_ERROR.id_error - , t_ERROR.id_type - , t_ERROR.code - , ERROR_TYPE.name - , ERROR_TYPE.description - , ERROR_TYPE.is_breaking_error - , ERROR_TYPE.background_colour - , ERROR_TYPE.text_colour - , t_ERROR.msg - FROM tmp_Msg_Error_Calc_Assessment_Response t_ERROR - INNER JOIN demo.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type - ; - END IF; - - IF a_debug = 1 AND v_can_view = 1 THEN - SELECT * FROM tmp_Assessment_Command_Modality_Link_Calc_Assessment_Response; - SELECT * FROM tmp_Response_Quality_Metric_Calc_Assessment_Response; - SELECT * FROM tmp_Obedience_Level_Calc_Assessment_Response; - SELECT * FROM tmp_Assessment_Response_Calc_Assessment_Response; - END IF; - - CALL demo.p_dog_clear_calc_assessment_command_modality_link ( - a_guid - , 0 -- a_debug - ); - - CALL demo.p_dog_clear_calc_response_quality_metric ( - a_guid - , 0 -- a_debug - ); - - CALL demo.p_dog_clear_calc_obedience_level ( - a_guid - , 0 -- a_debug - ); - - DROP TEMPORARY TABLE IF EXISTS tmp_Split_Notes_Calc_Assessment_Response; - DROP TEMPORARY TABLE IF EXISTS tmp_Split_Id_Calc_Assessment_Response; - DROP TEMPORARY TABLE IF EXISTS tmp_Msg_Error_Calc_Assessment_Response; - DROP TEMPORARY TABLE IF EXISTS tmp_Assessment_Response_Calc_Assessment_Response; - DROP TEMPORARY TABLE IF EXISTS tmp_Obedience_Level_Calc_Assessment_Response; - DROP TEMPORARY TABLE IF EXISTS tmp_Response_Quality_Metric_Calc_Assessment_Response; - DROP TEMPORARY TABLE IF EXISTS tmp_Assessment_Command_Modality_Link_Calc_Assessment_Response; + DROP TABLE IF EXISTS tmp_Msg_Error; + DROP TABLE IF EXISTS tmp_User_Save_User; - IF a_debug = 1 THEN - CALL demo.p_core_debug_timing_reporting ( v_time_start ); - END IF; + IF a_debug = 1 THEN + CALL demo.p_debug_timing_reporting ( v_time_start ); + END IF; END // DELIMITER ; -/* -CALL demo.p_dog_calc_assessment_response ( - 'slippery ' -- a_guid - , 1 -- 'auth0|6582b95c895d09a70ba10fef', -- a_id_user - , 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 +SELECT * +FROM demo.PH_Apply_Founding_Partner_Form; +SELECT * +FROM demo.DOG_User; - , 1 -- a_get_all_ACM_link - , 0 -- a_get_inactive_ACM_link - , '' -- a_ids_ACM_link - , NULL -- a_min_distance_from_handler_metres_ACM_link - , NULL -- a_max_distance_from_handler_metres_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 - - , 0 -- a_require_all_id_search_filters_met - , 0 -- 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 - , 0 -- a_show_errors - , 0 -- a_debug +CALL demo.p_dog_save_new_founding_partner ( + 'Test' -- a_comment + , 'lipsandchipsanddipslipsandchipsanddi' -- a_guid + , 'nipples' -- id_user-auth0 + , 'edwardmanic.ms@gmail.com' -- email -- 'teddy@demoltd.co.uk' + , 0 -- debug ); SELECT * -FROM demo.DOG_Assessment_Response_Temp -; - -CALL demo.p_dog_clear_calc_assessment_response ( - 'slippery ' -- a_guid - , 1 -- debug -); - --- DELETE FROM demo.DOG_Assessment_Response_Temp; - -*/ +FROM demo.DOG_User; diff --git a/static/MySQL/11001_tbl_DOG_Dog.sql b/static/MySQL/11001_tbl_DOG_Dog.sql index ac74e96..aa7f8e5 100644 --- a/static/MySQL/11001_tbl_DOG_Dog.sql +++ b/static/MySQL/11001_tbl_DOG_Dog.sql @@ -10,6 +10,7 @@ WHERE CREATE TABLE IF NOT EXISTS fetchmetrics.DOG_Dog ( id_dog INT NOT NULL AUTO_INCREMENT PRIMARY KEY + , id_temp INT , name VARCHAR(250) NOT NULL , appearance VARCHAR(1000) , mass_kg DECIMAL(7, 3) diff --git a/static/MySQL/11003_tbl_DOG_Dog_Temp.sql b/static/MySQL/11003_tbl_DOG_Dog_Temp.sql index 190bd15..705e42b 100644 --- a/static/MySQL/11003_tbl_DOG_Dog_Temp.sql +++ b/static/MySQL/11003_tbl_DOG_Dog_Temp.sql @@ -1,6 +1,11 @@ USE fetchmetrics; +/* +Must remove existing Temp Ids from DOG_Command_Category before dropping table! + +*/ + SELECT CONCAT('WARNING: Table ', TABLE_SCHEMA, '.', TABLE_NAME, ' already exists.') AS msg_warning FROM INFORMATION_SCHEMA.TABLES WHERE diff --git a/static/MySQL/11100_tbl_DOG_Command_Category.sql b/static/MySQL/11100_tbl_DOG_Command_Category.sql index b4821a5..c55a8ce 100644 --- a/static/MySQL/11100_tbl_DOG_Command_Category.sql +++ b/static/MySQL/11100_tbl_DOG_Command_Category.sql @@ -10,6 +10,7 @@ WHERE CREATE TABLE IF NOT EXISTS fetchmetrics.DOG_Command_Category ( id_command_category INT NOT NULL AUTO_INCREMENT PRIMARY KEY + , id_temp INT , code VARCHAR(250) NOT NULL , name VARCHAR(250) NOT NULL , active BIT NOT NULL DEFAULT 1 diff --git a/static/MySQL/11102_tbl_DOG_Command_Category_Temp.sql b/static/MySQL/11102_tbl_DOG_Command_Category_Temp.sql index ba3804c..81bb55e 100644 --- a/static/MySQL/11102_tbl_DOG_Command_Category_Temp.sql +++ b/static/MySQL/11102_tbl_DOG_Command_Category_Temp.sql @@ -1,6 +1,12 @@ USE fetchmetrics; +/* +Must remove existing Temp Ids from DOG_Command_Category before dropping table! + +DROP TABLE fetchmetrics.DOG_Command_Category_Temp +*/ + SELECT CONCAT('WARNING: Table ', TABLE_SCHEMA, '.', TABLE_NAME, ' already exists.') AS msg_warning FROM INFORMATION_SCHEMA.TABLES WHERE diff --git a/static/MySQL/11200_tbl_DOG_Location.sql b/static/MySQL/11200_tbl_DOG_Location.sql index 10739ec..41f1536 100644 --- a/static/MySQL/11200_tbl_DOG_Location.sql +++ b/static/MySQL/11200_tbl_DOG_Location.sql @@ -10,7 +10,8 @@ WHERE CREATE TABLE IF NOT EXISTS fetchmetrics.DOG_Location ( id_location INT NOT NULL AUTO_INCREMENT PRIMARY KEY - , id_locaiton_parent INT + , id_temp INT + , id_location_parent INT , code VARCHAR(250) NOT NULL , name VARCHAR(250) NOT NULL , active BIT NOT NULL DEFAULT 1 diff --git a/static/MySQL/11202_tbl_DOG_Location_Temp.sql b/static/MySQL/11202_tbl_DOG_Location_Temp.sql index eb869fb..4a549f8 100644 --- a/static/MySQL/11202_tbl_DOG_Location_Temp.sql +++ b/static/MySQL/11202_tbl_DOG_Location_Temp.sql @@ -1,6 +1,13 @@ USE fetchmetrics; +/* +Must remove existing Temp Ids from DOG_Command_Category before dropping table! + +DROP TABLE fetchmetrics.DOG_Location_Temp; + +*/ + SELECT CONCAT('WARNING: Table ', TABLE_SCHEMA, '.', TABLE_NAME, ' already exists.') AS msg_warning FROM INFORMATION_SCHEMA.TABLES WHERE diff --git a/static/MySQL/11220_tbl_DOG_Button_Shape.sql b/static/MySQL/11220_tbl_DOG_Button_Shape.sql index c1cf38c..c6b82ff 100644 --- a/static/MySQL/11220_tbl_DOG_Button_Shape.sql +++ b/static/MySQL/11220_tbl_DOG_Button_Shape.sql @@ -10,6 +10,7 @@ WHERE CREATE TABLE IF NOT EXISTS fetchmetrics.DOG_Button_Shape ( id_button_shape INT NOT NULL AUTO_INCREMENT PRIMARY KEY + , id_temp INT , code VARCHAR(250) NOT NULL , name VARCHAR(250) NOT NULL , notes TEXT diff --git a/static/MySQL/11222_tbl_DOG_Button_Shape_Temp.sql b/static/MySQL/11222_tbl_DOG_Button_Shape_Temp.sql index 52ca082..3126ffd 100644 --- a/static/MySQL/11222_tbl_DOG_Button_Shape_Temp.sql +++ b/static/MySQL/11222_tbl_DOG_Button_Shape_Temp.sql @@ -1,6 +1,13 @@ USE fetchmetrics; +/* +Must remove existing Temp Ids from DOG_Button_Shape_Temp before dropping table! + +DROP TABLE fetchmetrics.DOG_Button_Shape_Temp; + +*/ + SELECT CONCAT('WARNING: Table ', TABLE_SCHEMA, '.', TABLE_NAME, ' already exists.') AS msg_warning FROM INFORMATION_SCHEMA.TABLES WHERE diff --git a/static/MySQL/11228_tbl_DOG_Image.sql b/static/MySQL/11228_tbl_DOG_Image.sql index 2c7bb59..d502661 100644 --- a/static/MySQL/11228_tbl_DOG_Image.sql +++ b/static/MySQL/11228_tbl_DOG_Image.sql @@ -10,6 +10,7 @@ WHERE CREATE TABLE IF NOT EXISTS fetchmetrics.DOG_Image ( id_image INT NOT NULL AUTO_INCREMENT PRIMARY KEY + , id_temp INT , id_file_type INT NOT NULL , CONSTRAINT FK_DOG_Image_id_file_type FOREIGN KEY (id_file_type) diff --git a/static/MySQL/11230_tbl_DOG_Image_Temp.sql b/static/MySQL/11230_tbl_DOG_Image_Temp.sql index 39c71b9..7b78bc8 100644 --- a/static/MySQL/11230_tbl_DOG_Image_Temp.sql +++ b/static/MySQL/11230_tbl_DOG_Image_Temp.sql @@ -1,6 +1,13 @@ USE fetchmetrics; +/* +Must remove existing Temp Ids from DOG_Image_Temp before dropping table! + +DROP TABLE fetchmetrics.DOG_Image_Temp; + +*/ + SELECT CONCAT('WARNING: Table ', TABLE_SCHEMA, '.', TABLE_NAME, ' already exists.') AS msg_warning FROM INFORMATION_SCHEMA.TABLES WHERE diff --git a/static/MySQL/11312_tbl_DOG_Distraction_Type.sql b/static/MySQL/11312_tbl_DOG_Distraction_Type.sql index 7d2575c..4f60c37 100644 --- a/static/MySQL/11312_tbl_DOG_Distraction_Type.sql +++ b/static/MySQL/11312_tbl_DOG_Distraction_Type.sql @@ -10,6 +10,7 @@ WHERE CREATE TABLE IF NOT EXISTS fetchmetrics.DOG_Distraction_Type ( id_type INT NOT NULL AUTO_INCREMENT PRIMARY KEY + , id_temp INT , code VARCHAR(250) NOT NULL , name VARCHAR(250) NOT NULL , active BIT NOT NULL DEFAULT 1 diff --git a/static/MySQL/11314_tbl_DOG_Distraction_Type_Temp.sql b/static/MySQL/11314_tbl_DOG_Distraction_Type_Temp.sql index 1aedd5c..e126ccc 100644 --- a/static/MySQL/11314_tbl_DOG_Distraction_Type_Temp.sql +++ b/static/MySQL/11314_tbl_DOG_Distraction_Type_Temp.sql @@ -1,6 +1,13 @@ USE fetchmetrics; +/* +Must remove existing Temp Ids from DOG_Distraction_Type_Temp before dropping table! + +DROP TABLE fetchmetrics.DOG_Distraction_Type_Temp; + +*/ + SELECT CONCAT('WARNING: Table ', TABLE_SCHEMA, '.', TABLE_NAME, ' already exists.') AS msg_warning FROM INFORMATION_SCHEMA.TABLES WHERE diff --git a/static/MySQL/11316_tbl_DOG_Distraction_Intensity_Level.sql b/static/MySQL/11316_tbl_DOG_Distraction_Intensity_Level.sql index c771a62..f211301 100644 --- a/static/MySQL/11316_tbl_DOG_Distraction_Intensity_Level.sql +++ b/static/MySQL/11316_tbl_DOG_Distraction_Intensity_Level.sql @@ -10,6 +10,7 @@ WHERE CREATE TABLE IF NOT EXISTS fetchmetrics.DOG_Distraction_Intensity_Level ( id_intensity_level INT NOT NULL AUTO_INCREMENT PRIMARY KEY + , id_temp INT , code VARCHAR(250) NOT NULL , name VARCHAR(250) NOT NULL , active BIT NOT NULL DEFAULT 1 diff --git a/static/MySQL/11318_tbl_DOG_Distraction_Intensity_Level_Temp.sql b/static/MySQL/11318_tbl_DOG_Distraction_Intensity_Level_Temp.sql index 1ccda37..b5c9c65 100644 --- a/static/MySQL/11318_tbl_DOG_Distraction_Intensity_Level_Temp.sql +++ b/static/MySQL/11318_tbl_DOG_Distraction_Intensity_Level_Temp.sql @@ -1,6 +1,13 @@ USE fetchmetrics; +/* +Must remove existing Temp Ids from DOG_Distraction_Type_Temp before dropping table! + +DROP TABLE fetchmetrics.DOG_Distraction_Type_Temp; + +*/ + SELECT CONCAT('WARNING: Table ', TABLE_SCHEMA, '.', TABLE_NAME, ' already exists.') AS msg_warning FROM INFORMATION_SCHEMA.TABLES WHERE diff --git a/static/MySQL/11324_tbl_DOG_Bribe.sql b/static/MySQL/11324_tbl_DOG_Bribe.sql index ea652bd..37ba29f 100644 --- a/static/MySQL/11324_tbl_DOG_Bribe.sql +++ b/static/MySQL/11324_tbl_DOG_Bribe.sql @@ -10,6 +10,7 @@ WHERE CREATE TABLE IF NOT EXISTS fetchmetrics.DOG_Bribe ( id_bribe INT NOT NULL AUTO_INCREMENT PRIMARY KEY + , id_temp INT , code VARCHAR(250) NOT NULL , name VARCHAR(250) NOT NULL , active BIT NOT NULL DEFAULT 1 diff --git a/static/MySQL/11326_tbl_DOG_Bribe_Temp.sql b/static/MySQL/11326_tbl_DOG_Bribe_Temp.sql index a599486..f4cd979 100644 --- a/static/MySQL/11326_tbl_DOG_Bribe_Temp.sql +++ b/static/MySQL/11326_tbl_DOG_Bribe_Temp.sql @@ -1,6 +1,13 @@ USE fetchmetrics; +/* +Must remove existing Temp Ids from DOG_Bribe_Temp before dropping table! + +DROP TABLE fetchmetrics.DOG_Bribe_Temp; + +*/ + SELECT CONCAT('WARNING: Table ', TABLE_SCHEMA, '.', TABLE_NAME, ' already exists.') AS msg_warning FROM INFORMATION_SCHEMA.TABLES WHERE diff --git a/static/MySQL/11332_tbl_DOG_Response_Quality_Metric.sql b/static/MySQL/11332_tbl_DOG_Response_Quality_Metric.sql index 8fcb191..13764ba 100644 --- a/static/MySQL/11332_tbl_DOG_Response_Quality_Metric.sql +++ b/static/MySQL/11332_tbl_DOG_Response_Quality_Metric.sql @@ -10,6 +10,7 @@ WHERE CREATE TABLE IF NOT EXISTS fetchmetrics.DOG_Response_Quality_Metric ( id_metric INT NOT NULL AUTO_INCREMENT PRIMARY KEY + , id_temp INT , id_unit_measurement INT NOT NULL , CONSTRAINT FK_DOG_Response_Quality_Metric_id_unit_measurement FOREIGN KEY (id_unit_measurement) diff --git a/static/MySQL/11334_tbl_DOG_Response_Quality_Metric_Temp.sql b/static/MySQL/11334_tbl_DOG_Response_Quality_Metric_Temp.sql index dd39dd0..8696bb1 100644 --- a/static/MySQL/11334_tbl_DOG_Response_Quality_Metric_Temp.sql +++ b/static/MySQL/11334_tbl_DOG_Response_Quality_Metric_Temp.sql @@ -1,6 +1,13 @@ USE fetchmetrics; +/* +Must remove existing Temp Ids from DOG_Response_Quality_Metric_Temp before dropping table! + +DROP TABLE fetchmetrics.DOG_Response_Quality_Metric_Temp; + +*/ + SELECT CONCAT('WARNING: Table ', TABLE_SCHEMA, '.', TABLE_NAME, ' already exists.') AS msg_warning FROM INFORMATION_SCHEMA.TABLES WHERE diff --git a/static/MySQL/11336_tbl_DOG_Obedience_Level.sql b/static/MySQL/11336_tbl_DOG_Obedience_Level.sql index 51bc996..4b19d5e 100644 --- a/static/MySQL/11336_tbl_DOG_Obedience_Level.sql +++ b/static/MySQL/11336_tbl_DOG_Obedience_Level.sql @@ -10,6 +10,7 @@ WHERE CREATE TABLE IF NOT EXISTS fetchmetrics.DOG_Obedience_Level ( id_obedience_level INT NOT NULL AUTO_INCREMENT PRIMARY KEY + , id_temp INT , code VARCHAR(250) NOT NULL , name VARCHAR(250) NOT NULL , active BIT NOT NULL DEFAULT 1 diff --git a/static/MySQL/11338_tbl_DOG_Obedience_Level_Temp.sql b/static/MySQL/11338_tbl_DOG_Obedience_Level_Temp.sql index b595f1a..24e2e49 100644 --- a/static/MySQL/11338_tbl_DOG_Obedience_Level_Temp.sql +++ b/static/MySQL/11338_tbl_DOG_Obedience_Level_Temp.sql @@ -1,6 +1,13 @@ USE fetchmetrics; +/* +Must remove existing Temp Ids from DOG_Obedience_Level_Temp before dropping table! + +DROP TABLE fetchmetrics.DOG_Obedience_Level_Temp; + +*/ + SELECT CONCAT('WARNING: Table ', TABLE_SCHEMA, '.', TABLE_NAME, ' already exists.') AS msg_warning FROM INFORMATION_SCHEMA.TABLES WHERE diff --git a/static/MySQL/70518_p_dog_save_new_founding_partner.sql b/static/MySQL/70518_p_dog_save_new_founding_partner.sql new file mode 100644 index 0000000..9b087cd --- /dev/null +++ b/static/MySQL/70518_p_dog_save_new_founding_partner.sql @@ -0,0 +1,216 @@ + + +USE fetchmetrics; + +DROP PROCEDURE IF EXISTS p_dog_save_new_founding_partner; + + +DELIMITER // +CREATE PROCEDURE p_dog_save_new_founding_partner ( + IN a_comment VARCHAR(500) + , IN a_guid BINARY(36) + , IN a_id_user_auth0 VARCHAR(256) + , IN a_email_user VARCHAR(256) + , IN a_debug BIT +) +BEGIN + 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_product INT; + DECLARE v_id_permission_user_edit INT; + DECLARE v_id_role_manager INT; + DECLARE v_is_super_user BIT; + DECLARE v_id_type_error_bad_data INT; + DECLARE v_can_edit_user BIT; + DECLARE v_priority_access_level_admin INT; + DECLARE v_priority_access_level_none INT; + DECLARE v_priority_access_level_user 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 ( + display_order INT NOT NULL PRIMARY KEY AUTO_INCREMENT + , id_type INT + , 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 fetchmetrics.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 ERROR_TYPE.id_type FROM fetchmetrics.CORE_Msg_Error_Type ERROR_TYPE WHERE ERROR_TYPE.code = v_code_type_error_bad_data LIMIT 1); + SET v_id_access_level_edit := (SELECT ACCESS_LEVEL.id_access_level FROM fetchmetrics.DOG_Access_Level ACCESS_LEVEL WHERE ACCESS_LEVEL.code = 'EDIT' LIMIT 1); + SET v_id_permission_user_edit := (SELECT GROUP_CONCAT(PERMISSION.id_permission SEPARATOR ',') FROM fetchmetrics.DOG_Permission PERMISSION WHERE PERMISSION.code = 'USER_CREATE' LIMIT 1); + SET v_priority_access_level_admin := (SELECT ACCESS_LEVEL.priority FROM fetchmetrics.DOG_Access_Level ACCESS_LEVEL WHERE ACCESS_LEVEL.code = 'ADMIN' LIMIT 1); + SET v_priority_access_level_none := (SELECT ACCESS_LEVEL.priority FROM fetchmetrics.DOG_Access_Level ACCESS_LEVEL WHERE ACCESS_LEVEL.code = 'NONE' LIMIT 1); + SET v_id_role_manager := (SELECT ROLES.id_role FROM fetchmetrics.DOG_Role ROLES WHERE ROLES.code = 'COMPANY_MANAGER' LIMIT 1); + + CALL fetchmetrics.p_core_validate_guid ( a_guid ); + + DROP TABLE IF EXISTS tmp_Msg_Error; + DROP TABLE IF EXISTS tmp_User_Save_User; + + CREATE TABLE tmp_User_Save_User ( + id_user INT NOT NULL + , id_role INT + , id_user_auth0 VARCHAR(250) + , firstname VARCHAR(250) + , surname VARCHAR(250) + , email VARCHAR(254) + , is_email_verified BIT DEFAULT 0 + , is_super_user BIT DEFAULT 0 + , active BIT DEFAULT 1 + , name_error VARCHAR(1000) + ); + + CREATE TABLE tmp_Msg_Error ( + display_order INT NOT NULL PRIMARY KEY AUTO_INCREMENT, + id_type INT NOT NULL, + code VARCHAR(250) NOT NULL, + msg TEXT NOT NULL + ); + + IF NOT EXISTS (SELECT * FROM fetchmetrics.PH_Apply_Founding_Partner_Form AFPF WHERE AFPF.email = a_email_user) THEN + INSERT INTO tmp_Msg_Error ( + id_type + , code + , msg + ) + SELECT + MET.id_type + , MET.code + , 'Founding Partner not found.' + FROM fetchmetrics.CORE_Msg_Error_Type MET + WHERE MET.id_type = v_id_type_error_bad_data + ; + END IF; + + -- Get data from Temp table + INSERT INTO tmp_User_Save_User ( + id_user + , id_user_auth0 + , id_role + , email + , firstname + , surname + , name_error + ) + VALUES ( + -1 -- AS id_user + , a_id_user_auth0 + , v_id_role_manager + , a_email_user + , (SELECT LEFT(AFPF.name_contact, LOCATE(' ', AFPF.name_contact) - 1) FROM fetchmetrics.PH_Apply_Founding_Partner_Form AFPF WHERE AFPF.email = a_email_user) -- AS firstname + , (SELECT SUBSTRING(AFPF.name_contact, LOCATE(' ', AFPF.name_contact) + 1) FROM fetchmetrics.PH_Apply_Founding_Partner_Form AFPF WHERE AFPF.email = a_email_user) -- AS surname + , COALESCE(a_email_user, a_id_user_auth0) -- AS name_error + ); + + + IF NOT EXISTS (SELECT * FROM tmp_Msg_Error LIMIT 1) THEN + START TRANSACTION; + + INSERT INTO fetchmetrics.DOG_User ( + id_user_auth0 + , firstname + , surname + , email + , is_email_verified + , is_super_user + , active + ) + SELECT + t_USER.id_user_auth0 + , t_USER.firstname + , t_USER.surname + , t_USER.email + , t_USER.is_email_verified + , t_USER.is_super_user + , t_USER.active + FROM tmp_User_Save_User t_USER + ; + + UPDATE tmp_User_Save_User t_USER + INNER JOIN fetchmetrics.DOG_User USER ON t_USER.id_user_auth0 = USER.id_user_auth0 + SET t_USER.id_user = USER.id_user + ; + + INSERT INTO fetchmetrics.DOG_User_Role_Link ( + id_role + , id_user + , active + , id_user_created_by + , created_on + ) + SELECT + t_USER.id_role + , t_USER.id_user + , 1 -- active + , t_USER.id_user AS created_by + , v_time_start AS created_on + FROM tmp_User_Save_User t_USER + ; + + COMMIT; + END IF; + + # Errors + SELECT * + FROM tmp_Msg_Error t_ME + INNER JOIN fetchmetrics.CORE_Msg_Error_Type MET ON t_ME.id_type = MET.id_type + ; + + IF a_debug = 1 THEN + SELECT * from tmp_User_Save_User; + END IF; + + DROP TABLE IF EXISTS tmp_Msg_Error; + DROP TABLE IF EXISTS tmp_User_Save_User; + + IF a_debug = 1 THEN + CALL fetchmetrics.p_debug_timing_reporting ( v_time_start ); + END IF; +END // +DELIMITER ; + + + +SELECT * +FROM fetchmetrics.PH_Apply_Founding_Partner_Form; +SELECT * +FROM fetchmetrics.DOG_User; + +CALL fetchmetrics.p_dog_save_new_founding_partner ( + 'Test' -- a_comment + , 'lipsandchipsanddipslipsandchipsanddi' -- a_guid + , 'nipples' -- id_user-auth0 + , 'edwardmanic.ms@gmail.com' -- email -- 'teddy@demoltd.co.uk' + , 0 -- debug +); + +SELECT * +FROM fetchmetrics.DOG_User; diff --git a/static/MySQL/71002_p_dog_save_dog.sql b/static/MySQL/71002_p_dog_save_dog.sql new file mode 100644 index 0000000..d2cd607 --- /dev/null +++ b/static/MySQL/71002_p_dog_save_dog.sql @@ -0,0 +1,459 @@ + +USE fetchmetrics; + +DROP PROCEDURE IF EXISTS fetchmetrics.p_dog_save_dog; + +DELIMITER // +CREATE PROCEDURE fetchmetrics.p_dog_save_dog ( + 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_access_level_view INT; + DECLARE v_id_change_set INT; + DECLARE v_id_permission_dog_edit 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 + , code VARCHAR(250) + , msg TEXT NOT NULL + ); + + INSERT INTO tmp_Msg_Error ( + id_type + , code + , msg + ) + SELECT + MET.id_type + , @errno + , @text + FROM fetchmetrics.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 fetchmetrics.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 fetchmetrics.CORE_Msg_Error_Type ERROR_TYPE WHERE ERROR_TYPE.code = v_code_type_error_bad_data LIMIT 1); + SET v_id_permission_dog_edit := (SELECT PERMISSION.id_permission FROM fetchmetrics.DOG_Permission PERMISSION WHERE PERMISSION.code = 'DOG_EDIT' LIMIT 1); + SET v_id_access_level_edit := (SELECT ACCESS_LEVEL.id_access_level FROM fetchmetrics.DOG_Access_Level ACCESS_LEVEL WHERE ACCESS_LEVEL.code = 'EDIT' LIMIT 1); + SET v_id_access_level_view := (SELECT ACCESS_LEVEL.id_access_level FROM fetchmetrics.DOG_Access_Level ACCESS_LEVEL WHERE ACCESS_LEVEL.code = 'VIEW' LIMIT 1); + + CALL fetchmetrics.p_core_validate_guid ( a_guid ); + + DROP TABLE IF EXISTS tmp_Dog; + + CREATE TEMPORARY TABLE tmp_Dog ( + id_temp INT + , id_dog INT + , name VARCHAR(250) + , appearance VARCHAR(1000) + , mass_kg DECIMAL(7, 3) + , 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 + , code VARCHAR(250) + , msg TEXT NOT NULL + ); + + + -- Get data from Temp table + INSERT INTO tmp_Dog ( + id_temp + , id_dog + , name + , appearance + , mass_kg + , notes + , active + , is_new + ) + SELECT + DOG_T.id_temp + , COALESCE(DOG.id_dog, DOG_T.id_dog) AS id_dog + , COALESCE( + DOG_T.name + , DOG.name + ) AS name + , COALESCE( + DOG_T.appearance + , DOG.appearance + ) AS appearance + , COALESCE( + DOG_T.mass_kg + , DOG.mass_kg + ) AS mass_kg + , COALESCE( + DOG_T.notes + , DOG.notes + ) AS notes + , COALESCE(DOG_T.active, 1) AS active + , CASE WHEN IFNULL(DOG_T.id_dog, 0) < 1 THEN 1 ELSE 0 END AS is_new + FROM fetchmetrics.DOG_Dog_Temp DOG_T + LEFT JOIN fetchmetrics.DOG_Dog DOG ON DOG_T.id_dog = DOG.id_dog + WHERE DOG_T.guid = a_guid + ; + + IF a_debug = 1 THEN + SELECT 'Dog_Temp records'; + SELECT * FROM tmp_Dog; + SELECT COUNT(*) FROM tmp_Dog; + END IF; + + -- Error names + UPDATE tmp_Dog t_DOG + SET t_DOG.name_error = COALESCE(t_DOG.code, t_DOG.name, t_DOG.id_dog, '(No Dog)') + ; + + IF a_debug = 1 THEN + SELECT 'After set name_error'; + SELECT * FROM tmp_Dog; + SELECT COUNT(*) FROM tmp_Dog; + END IF; + + /* + -- Missing Dog Ids + UPDATE tmp_Dog t_DOG + LEFT JOIN fetchmetrics.DOG_Dog DOG ON t_DOG.code = DOG.code + SET + t_DOG.id_dog = DOG.id_dog + , t_DOG.is_new = 0 + WHERE + IFNULL(t_DOG.id_dog, 0) < 1 + AND NOT ISNULL(DOG.id_dog) + ; + + IF a_debug = 1 THEN + SELECT 'After set missing id_dog'; + SELECT * FROM tmp_Dog; + SELECT COUNT(*) FROM tmp_Dog; + END IF; + */ + + -- Validation + -- Missing mandatory fields + -- name + IF EXISTS ( SELECT * FROM tmp_Dog t_DOG WHERE t_DOG.name IS NULL ) 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(s) do not have a valid Name: ', GROUP_CONCAT(t_DOG.name_error SEPARATOR ', ')) AS msg + FROM tmp_Dog t_DOG + WHERE t_DOG.name IS NULL + ; + END IF; + + + -- Permissions + -- Can Create + CALL fetchmetrics.p_dog_calc_user_access( + 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_edit -- 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 fetchmetrics.DOG_Calc_User_Access_Temp CU_T + WHERE CU_T.GUID = a_guid + LIMIT 1 + ; + + CALL fetchmetrics.p_dog_clear_calc_user_access( + 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 Dogs.' + ) + ; + END IF; + + IF EXISTS (SELECT * FROM tmp_Msg_Error t_ERROR INNER JOIN fetchmetrics.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; + END IF; + + DELETE FROM tmp_Dog; + END IF; + + IF NOT EXISTS (SELECT * FROM tmp_Msg_Error t_ERROR INNER JOIN fetchmetrics.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 fetchmetrics.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 fetchmetrics.DOG_Dog DOG + INNER JOIN tmp_Dog t_DOG + ON DOG.id_dog = t_DOG.id_dog + AND t_DOG.is_new = 0 + SET + DOG.name = t_DOG.name + , DOG.appearance = t_DOG.appearance + , DOG.mass_kg = t_DOG.mass_kg + , DOG.notes = t_DOG.notes + , DOG.active = t_DOG.active + , DOG.id_change_set = v_id_change_set + ; + + IF EXISTS ( + SELECT * + FROM tmp_Dog t_DOG + WHERE + t_DOG.is_new = 1 + AND t_DOG.active = 1 + LIMIT 1 + ) THEN + INSERT INTO fetchmetrics.DOG_Dog ( + id_temp + , name + , appearance + , mass_kg + , notes + , active + , id_user_created_by + , created_on + ) + SELECT + t_DOG.id_temp AS id_temp + , t_DOG.name AS name + , t_DOG.appearance AS appearance + , t_DOG.mass_kg AS mass_kg + , t_DOG.notes AS notes + , t_DOG.active AS active + , a_id_user AS created_by + , v_time_start AS created_on + FROM tmp_Dog t_DOG + WHERE + t_DOG.is_new = 1 + AND t_DOG.active = 1 + ; + + UPDATE tmp_Dog t_DOG + INNER JOIN fetchmetrics.DOG_Dog DOG ON t_DOG.id_temp = DOG.id_temp + SET t_DOG.id_dog = DOG.id_dog + WHERE + t_DOG.is_new = 1 + AND t_DOG.active = 1 + ; + + INSERT INTO fetchmetrics.DOG_Dog_User_Link ( + id_dog + , id_user + , id_access_level + , active + , id_user_created_by + , created_on + ) + SELECT + t_DOG.id_dog + , a_id_user + , v_id_access_level_view + , 1 -- active + , a_id_user AS created_by + , v_time_start AS created_on + FROM tmp_Dog t_DOG + WHERE + t_DOG.is_new = 1 + AND t_DOG.active = 1 + ; + END IF; + COMMIT; + END IF; + + START TRANSACTION; + + DELETE FROM fetchmetrics.DOG_Dog_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 fetchmetrics.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type + ; + + IF a_debug = 1 THEN + SELECT * FROM tmp_Dog; + END IF; + + DROP TEMPORARY TABLE tmp_Dog; + DROP TEMPORARY TABLE tmp_Msg_Error; + + IF a_debug = 1 THEN + CALL fetchmetrics.p_core_debug_timing_reporting ( v_time_start ); + END IF; +END // +DELIMITER ; + + + +/* + +'ripplesipplenippletippledipplekipple' +DELETE FROM fetchmetrics.DOG_Dog_Audit WHERE id_dog > 740; +DELETE FROM fetchmetrics.DOG_Dog WHERE id_dog > 740; +* / +delete +from fetchmetrics.DOG_Dog_Temp +; +select + * + -- COUNT(*) +-- delete +from fetchmetrics.DOG_Dog_Temp +; +select COUNT(*) +from fetchmetrics.DOG_Dog_Temp +; +select + * + -- COUNT(*) +-- delete +from fetchmetrics.DOG_Dog +; +select COUNT(*) +from fetchmetrics.DOG_Dog +; + +INSERT INTO fetchmetrics.DOG_Dog_Temp ( + id_dog + , code + , name + , active + , guid +) +VALUES ( + -1 -- id_dog + , 'ACTIVITIES' -- code + , 'A Sport Is Fun' -- name + , 1 -- active + , 'ripplesipplenippletippledipplekipple' +); + +CALL fetchmetrics.p_dog_save_dog ( + 'nipples' + , 'ripplesipplenippletippledipplekipple' + , 1 + , 1 +); + + +select + * + -- COUNT(*) +-- delete +from fetchmetrics.DOG_Dog_Temp +; +select COUNT(*) +from fetchmetrics.DOG_Dog_Temp +; +select + * + -- COUNT(*) +-- delete +from fetchmetrics.DOG_Dog +; +select COUNT(*) +from fetchmetrics.DOG_Dog +; + +*/ \ No newline at end of file diff --git a/static/MySQL/71102_p_dog_save_command_category.sql b/static/MySQL/71102_p_dog_save_command_category.sql index ad186d8..aefeaf7 100644 --- a/static/MySQL/71102_p_dog_save_command_category.sql +++ b/static/MySQL/71102_p_dog_save_command_category.sql @@ -15,8 +15,9 @@ BEGIN DECLARE v_can_create BIT; DECLARE v_code_type_error_bad_data VARCHAR(100); DECLARE v_id_access_level_edit INT; + DECLARE v_id_access_level_view INT; DECLARE v_id_change_set INT; - DECLARE v_id_permission_dog_new INT; + DECLARE v_id_permission_command_edit INT; DECLARE v_id_type_error_bad_data INT; DECLARE v_time_start TIMESTAMP(6); @@ -72,8 +73,9 @@ BEGIN 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 fetchmetrics.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 fetchmetrics.DOG_Permission PERMISSION WHERE PERMISSION.code = 'DOG_CREATE' LIMIT 1); + SET v_id_permission_command_edit := (SELECT PERMISSION.id_permission FROM fetchmetrics.DOG_Permission PERMISSION WHERE PERMISSION.code = 'COMMAND_EDIT' LIMIT 1); SET v_id_access_level_edit := (SELECT ACCESS_LEVEL.id_access_level FROM fetchmetrics.DOG_Access_Level ACCESS_LEVEL WHERE ACCESS_LEVEL.code = 'EDIT' LIMIT 1); + SET v_id_access_level_view := (SELECT ACCESS_LEVEL.id_access_level FROM fetchmetrics.DOG_Access_Level ACCESS_LEVEL WHERE ACCESS_LEVEL.code = 'VIEW' LIMIT 1); CALL fetchmetrics.p_core_validate_guid ( a_guid ); @@ -123,6 +125,7 @@ BEGIN , COALESCE( COMMAND_CATEGORY_T.code , COMMAND_CATEGORY.code + , UPPER(COMMAND_CATEGORY_T.name) ) AS code , COALESCE( COMMAND_CATEGORY_T.name @@ -361,7 +364,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_new -- ids_permission + , v_id_permission_command_edit -- ids_permission , v_id_access_level_edit -- ids_access_level , 0 -- a_show_errors , 0 -- a_debug @@ -435,25 +438,64 @@ BEGIN , COMMAND_CATEGORY.id_change_set = v_id_change_set ; - INSERT INTO fetchmetrics.DOG_Command_Category ( - code - , name - , active - , id_user_created_by - , created_on - ) - SELECT - t_COMMAND_CATEGORY.code AS code - , t_COMMAND_CATEGORY.name AS name - , t_COMMAND_CATEGORY.active AS active - , a_id_user AS created_by - , v_time_start AS created_on - FROM tmp_Command_Category t_COMMAND_CATEGORY - WHERE - t_COMMAND_CATEGORY.is_new = 1 - AND t_COMMAND_CATEGORY.active = 1 - ; - + IF EXISTS ( + SELECT * + FROM tmp_Command_Category t_COMMAND_CATEGORY + WHERE + t_COMMAND_CATEGORY.is_new = 1 + AND t_COMMAND_CATEGORY.active = 1 + LIMIT 1 + ) THEN + INSERT INTO fetchmetrics.DOG_Command_Category ( + id_temp + , code + , name + , active + , id_user_created_by + , created_on + ) + SELECT + t_COMMAND_CATEGORY.id_temp AS id_temp + , t_COMMAND_CATEGORY.code AS code + , t_COMMAND_CATEGORY.name AS name + , t_COMMAND_CATEGORY.active AS active + , a_id_user AS created_by + , v_time_start AS created_on + FROM tmp_Command_Category t_COMMAND_CATEGORY + WHERE + t_COMMAND_CATEGORY.is_new = 1 + AND t_COMMAND_CATEGORY.active = 1 + ; + + UPDATE tmp_Command_Category t_COMMAND_CATEGORY + INNER JOIN fetchmetrics.DOG_Command_Category COMMAND_CATEGORY ON t_COMMAND_CATEGORY.id_temp = COMMAND_CATEGORY.id_temp + SET t_COMMAND_CATEGORY.id_command_category = COMMAND_CATEGORY.id_command_category + WHERE + t_COMMAND_CATEGORY.is_new = 1 + AND t_COMMAND_CATEGORY.active = 1 + ; + + INSERT INTO fetchmetrics.DOG_Command_Category_User_Link ( + id_command_category + , id_user + , id_access_level + , active + , id_user_created_by + , created_on + ) + SELECT + t_COMMAND_CATEGORY.id_command_category + , a_id_user + , v_id_access_level_view + , 1 -- active + , a_id_user AS created_by + , v_time_start AS created_on + FROM tmp_Command_Category t_COMMAND_CATEGORY + WHERE + t_COMMAND_CATEGORY.is_new = 1 + AND t_COMMAND_CATEGORY.active = 1 + ; + END IF; COMMIT; END IF; @@ -484,6 +526,7 @@ BEGIN SELECT * FROM tmp_Command_Category; END IF; + DROP TEMPORARY TABLE tmp_Command_Category_Copy; DROP TEMPORARY TABLE tmp_Command_Category; DROP TEMPORARY TABLE tmp_Msg_Error; diff --git a/static/MySQL/71104_p_dog_calc_command.sql b/static/MySQL/71104_p_dog_calc_command.sql index a514339..2186144 100644 --- a/static/MySQL/71104_p_dog_calc_command.sql +++ b/static/MySQL/71104_p_dog_calc_command.sql @@ -78,20 +78,21 @@ BEGIN FROM fetchmetrics.CORE_Msg_Error_Type MET WHERE MET.code = 'MYSQL_ERROR' ; - - SELECT - t_ERROR.id_error - , t_ERROR.id_type - , t_ERROR.code - , ERROR_TYPE.name - , ERROR_TYPE.description - , ERROR_TYPE.is_breaking_error - , ERROR_TYPE.background_colour - , ERROR_TYPE.text_colour - , t_ERROR.msg - FROM tmp_Msg_Error_Calc_Command t_ERROR - INNER JOIN fetchmetrics.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type - ; + IF a_show_errors = 1 THEN + SELECT + t_ERROR.id_error + , t_ERROR.id_type + , t_ERROR.code + , ERROR_TYPE.name + , ERROR_TYPE.description + , ERROR_TYPE.is_breaking_error + , ERROR_TYPE.background_colour + , ERROR_TYPE.text_colour + , t_ERROR.msg + FROM tmp_Msg_Error_Calc_Command t_ERROR + INNER JOIN fetchmetrics.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type + ; + END IF; DROP TABLE IF EXISTS tmp_Msg_Error_Calc_Command; END; @@ -343,7 +344,7 @@ BEGIN , v_id_permission_command_view -- ids_permission , v_id_access_level_view -- ids_access_level , 0 -- a_show_errors - , a_debug -- a_debug + , 0 -- a_debug ; END IF; @@ -362,7 +363,7 @@ BEGIN , v_id_permission_command_view -- ids_permission , v_id_access_level_view -- ids_access_level , 0 -- a_show_errors - , a_debug -- a_debug + , 0 -- a_debug ); INSERT INTO tmp_Calc_User_Access_Calc_Command ( @@ -410,7 +411,7 @@ BEGIN -- Command Categories IF v_has_filter_command_category_id = 1 THEN - CALL fetchmetrics.p_core_split(a_guid, a_ids_command_category, ',', a_debug); + CALL fetchmetrics.p_core_split(a_guid, a_ids_command_category, ',', 0); SET sql_mode = ''; @@ -431,7 +432,7 @@ BEGIN END IF; IF v_has_filter_command_category_name = 1 THEN - CALL fetchmetrics.p_core_split(a_guid, a_names_command_category, ',', a_debug); + CALL fetchmetrics.p_core_split(a_guid, a_names_command_category, ',', 0); SET sql_mode = ''; @@ -584,7 +585,7 @@ BEGIN ( v_has_filter_command_category_name = 0 ) - OR COMMAND_CATEGORY_FILTERS.does_meet_name_filter = 1 + OR COMMAND_CATEGORY_FILTERS.does_meet_name_filter = 1 THEN 1 ELSE 0 END AS does_meet_non_id_filters FROM fetchmetrics.DOG_Command_Category COMMAND_CATEGORY LEFT JOIN Command_Category_Filters COMMAND_CATEGORY_FILTERS ON COMMAND_CATEGORY.id_command_category = COMMAND_CATEGORY_FILTERS.id_command_category @@ -617,7 +618,7 @@ BEGIN -- Commands IF v_has_filter_command_id = 1 THEN - CALL fetchmetrics.p_core_split(a_guid, a_ids_command, ',', a_debug); + CALL fetchmetrics.p_core_split(a_guid, a_ids_command, ',', 0); SET sql_mode = ''; @@ -638,7 +639,7 @@ BEGIN END IF; IF v_has_filter_command_name = 1 THEN - CALL fetchmetrics.p_core_split(a_guid, a_names_command, ',', a_debug); + CALL fetchmetrics.p_core_split(a_guid, a_names_command, ',', 0); SET sql_mode = ''; @@ -659,7 +660,7 @@ BEGIN END IF; IF v_has_filter_command_hand_signal_default_description = 1 THEN - CALL fetchmetrics.p_core_split(a_guid, a_hand_signal_default_descriptions_command, ',', a_debug); + CALL fetchmetrics.p_core_split(a_guid, a_hand_signal_default_descriptions_command, ',', 0); SET sql_mode = ''; @@ -680,7 +681,7 @@ BEGIN END IF; IF v_has_filter_command_notes = 1 THEN - CALL fetchmetrics.p_core_split(a_guid, a_notes_command, ',', a_debug); + CALL fetchmetrics.p_core_split(a_guid, a_notes_command, ',', 0); SET sql_mode = ''; @@ -958,14 +959,13 @@ BEGIN DELETE t_COMMAND FROM tmp_Command_Calc_Command t_COMMAND LEFT JOIN tmp_Command_Category_Calc_Command t_COMMAND_CATEGORY ON t_COMMAND.id_command_category = t_COMMAND_CATEGORY.id_command_category - LEFT JOIN fetchmetrics.DOG_Command_Category_User_Link COMMAND_CATEGORY_USER_LINK ON t_COMMAND_CATEGORY.id_command_category = COMMAND_CATEGORY_USER_LINK.id_command_category - LEFT JOIN tmp_Calc_User_Access_Calc_Command t_USER ON COMMAND_CATEGORY_USER_LINK.id_user = t_USER.id_user + LEFT JOIN tmp_Calc_User_Access_Calc_Command t_USER ON t_COMMAND_CATEGORY.id_user = t_USER.id_user WHERE ( a_require_all_id_search_filters_met = 1 AND ( t_COMMAND.does_meet_id_filters = 0 - OR t_COMMAND_CATEGORY.does_meet_id_filters = 0 + OR IFNULL(t_COMMAND_CATEGORY.does_meet_id_filters, 0) = 0 OR IFNULL(t_USER.does_meet_id_filters, 0) = 0 ) ) @@ -973,24 +973,24 @@ BEGIN a_require_all_non_id_search_filters_met = 1 AND ( t_COMMAND.does_meet_non_id_filters = 0 - OR t_COMMAND_CATEGORY.does_meet_non_id_filters = 0 + OR IFNULL(t_COMMAND_CATEGORY.does_meet_non_id_filters, 0) = 0 OR IFNULL(t_USER.does_meet_non_id_filters, 0) = 0 ) ) OR ( a_require_any_id_search_filters_met = 1 AND t_COMMAND.does_meet_id_filters = 0 - AND t_COMMAND_CATEGORY.does_meet_id_filters = 0 + AND IFNULL(t_COMMAND_CATEGORY.does_meet_id_filters, 0) = 0 AND IFNULL(t_USER.does_meet_id_filters, 0) = 0 ) OR ( a_require_any_non_id_search_filters_met = 1 AND t_COMMAND.does_meet_non_id_filters = 0 - AND t_COMMAND_CATEGORY.does_meet_non_id_filters = 0 + AND IFNULL(t_COMMAND_CATEGORY.does_meet_non_id_filters, 0) = 0 AND IFNULL(t_USER.does_meet_non_id_filters, 0) = 0 ) ; - + /* WITH Category_And_Best_Command AS ( SELECT @@ -1000,58 +1000,9 @@ BEGIN FROM tmp_Command_Calc_Command t_COMMAND GROUP BY t_COMMAND.id_command_category ) - /* - , Command_Category_Access AS ( - SELECT - COMMAND_CATEGORY.id_command_category - , CASE WHEN - v_is_super_user = 1 - OR ( - t_USER.id_user IS NOT NULL - AND IFNULL(ACCESS_LEVEL.priority, v_priority_access_level_none) <= v_priority_access_level_view - ) - THEN 1 ELSE 0 END AS can_user_access_command_category - , ROW_NUMBER() OVER ( - PARTITION BY COMMAND_CATEGORY.id_command_category - ORDER BY CASE WHEN - v_is_super_user = 1 - OR ( - t_USER.id_user IS NOT NULL - AND IFNULL(ACCESS_LEVEL.priority, v_priority_access_level_none) <= v_priority_access_level_view - ) - THEN 1 ELSE 0 END DESC - ) AS index_link_in_command_category - , t_USER.does_meet_id_filters AS does_user_meet_id_filters - , t_USER.does_meet_non_id_filters AS does_user_meet_non_id_filters - FROM fetchmetrics.DOG_Command_Category COMMAND_CATEGORY - LEFT JOIN fetchmetrics.DOG_Command_Category_User_Link COMMAND_CATEGORY_USER_LINK - ON COMMAND_CATEGORY.id_command_category = COMMAND_CATEGORY_USER_LINK.id_command_category - AND ( - ( - a_get_inactive_command_category = 1 - AND a_get_inactive_user = 1 - ) - OR COMMAND_CATEGORY_USER_LINK.active = 1 - ) - LEFT JOIN tmp_Calc_User_Access_Calc_Command t_USER - ON COMMAND_CATEGORY_USER_LINK.id_user = t_USER.id_user - AND ( - a_get_inactive_user = 1 - OR t_USER.active = 1 - ) - LEFT JOIN fetchmetrics.DOG_Access_Level ACCESS_LEVEL - ON COMMAND_CATEGORY_USER_LINK.id_access_level = ACCESS_LEVEL.id_access_level - AND ACCESS_LEVEL.active = 1 - ) - */ - SELECT * + DELETE t_COMMAND_CATEGORY -- SELECT * FROM tmp_Command_Category_Calc_Command t_COMMAND_CATEGORY LEFT JOIN Category_And_Best_Command CATEGORY_BEST ON t_COMMAND_CATEGORY.id_command_category = CATEGORY_BEST.id_command_category - /* - LEFT JOIN Command_Category_Access COMMAND_CATEGORY_ACCESS - ON t_COMMAND_CATEGORY.id_command_category = COMMAND_CATEGORY_ACCESS.id_command_category - AND COMMAND_CATEGORY_ACCESS.index_link_in_command_category = 1 - */ LEFT JOIN tmp_Calc_User_Access_Calc_Command t_USER ON t_COMMAND_CATEGORY.id_user = t_USER.id_user WHERE ( @@ -1083,16 +1034,14 @@ BEGIN AND IFNULL(t_USER.does_meet_non_id_filters, 0) = 0 ) ; + */ END IF; IF a_debug = 1 THEN SELECT 'After filter Commands and Categories'; -- SELECT * FROM tmp_Command_Category_Calc_Command; -- SELECT * FROM tmp_Command_Calc_Command; - END IF; - - IF a_debug = 1 THEN - SELECT 'Before non-permitted data deletion'; + SELECT '(&) Before non-permitted data deletion'; SELECT * FROM tmp_Command_Category_Calc_Command; SELECT * FROM tmp_Command_Calc_Command; SELECT * FROM tmp_Msg_Error_Calc_Command; diff --git a/static/MySQL/71202_p_dog_save_location.sql b/static/MySQL/71202_p_dog_save_location.sql index 1c6d548..2319e8d 100644 --- a/static/MySQL/71202_p_dog_save_location.sql +++ b/static/MySQL/71202_p_dog_save_location.sql @@ -450,26 +450,66 @@ BEGIN , LOCATIONS.id_change_set = v_id_change_set ; - INSERT INTO fetchmetrics.DOG_Location ( - id_location_parent - , code - , name - , active - , id_user_created_by - , created_on - ) - SELECT - t_LOCATIONS.id_location_parent AS id_location_parent - , t_LOCATIONS.code AS code - , t_LOCATIONS.name AS name - , t_LOCATIONS.active AS active - , a_id_user AS created_by - , v_time_start AS created_on - FROM tmp_Location t_LOCATIONS - WHERE - t_LOCATIONS.is_new = 1 - AND t_LOCATIONS.active = 1 - ; + IF EXISTS ( + SELECT * + FROM tmp_Location t_LOCATIONS + WHERE + t_LOCATIONS.is_new = 1 + AND t_LOCATIONS.active = 1 + LIMIT 1 + ) THEN + INSERT INTO fetchmetrics.DOG_Location ( + id_temp + , id_location_parent + , code + , name + , active + , id_user_created_by + , created_on + ) + SELECT + t_LOCATIONS.id_temp + , t_LOCATIONS.id_location_parent AS id_location_parent + , t_LOCATIONS.code AS code + , t_LOCATIONS.name AS name + , t_LOCATIONS.active AS active + , a_id_user AS created_by + , v_time_start AS created_on + FROM tmp_Location t_LOCATIONS + WHERE + t_LOCATIONS.is_new = 1 + AND t_LOCATIONS.active = 1 + ; + + UPDATE tmp_Location t_LOCATIONS + INNER JOIN fetchmetrics.DOG_Location LOCATIONS ON t_LOCATIONS.id_temp = LOCATIONS.id_temp + SET t_LOCATIONS.id_location = LOCATIONS.id_location + WHERE + t_LOCATIONS.is_new = 1 + AND t_LOCATIONS.active = 1 + ; + + INSERT INTO fetchmetrics.DOG_Location_User_Link ( + id_location + , id_user + , id_access_level + , active + , id_user_created_by + , created_on + ) + SELECT + t_LOCATIONS.id_location + , a_id_user + , v_id_access_level_view + , 1 -- active + , a_id_user AS created_by + , v_time_start AS created_on + FROM tmp_Location t_LOCATIONS + WHERE + t_LOCATIONS.is_new = 1 + AND t_LOCATIONS.active = 1 + ; + END IF; COMMIT; END IF; diff --git a/static/MySQL/71620_p_ph_save_apply_founding_partner_form.sql b/static/MySQL/71620_p_ph_save_apply_founding_partner_form.sql index 58e925e..19b164f 100644 --- a/static/MySQL/71620_p_ph_save_apply_founding_partner_form.sql +++ b/static/MySQL/71620_p_ph_save_apply_founding_partner_form.sql @@ -58,6 +58,8 @@ BEGIN ; END; + SET a_id_user := NULLIF(a_id_user, 0); + 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 fetchmetrics.CORE_Msg_Error_Type WHERE code = v_code_type_error_bad_data LIMIT 1); diff --git a/static/css/pages/dog/assessment.css b/static/css/pages/dog/assessment.css index c1e7aab..bd620c9 100644 --- a/static/css/pages/dog/assessment.css +++ b/static/css/pages/dog/assessment.css @@ -13,8 +13,9 @@ h2 { .container.save.button-cancel { position: fixed; - top: 10vh; - right: 10vh; + top: 1vh; + right: 5vh; + z-index: 2; } table.table-main tbody { diff --git a/static/css/pages/user/company.css b/static/css/pages/user/company.css index 0ff583c..95834e7 100644 --- a/static/css/pages/user/company.css +++ b/static/css/pages/user/company.css @@ -3,6 +3,13 @@ display: none; } +.container.save.button-cancel { + position: fixed; + top: 1vh; + right: 5vh; + z-index: 2; +} + .container-input { margin: 0 auto; } diff --git a/static/dist/css/dog_assessment.bundle.css b/static/dist/css/dog_assessment.bundle.css index 1771faf..28df593 100644 --- a/static/dist/css/dog_assessment.bundle.css +++ b/static/dist/css/dog_assessment.bundle.css @@ -79,8 +79,9 @@ h2 { .container.save.button-cancel { position: fixed; - top: 10vh; - right: 10vh; + top: 1vh; + right: 5vh; + z-index: 2; } table.table-main tbody { diff --git a/static/dist/css/dog_assessment.bundle.css.map b/static/dist/css/dog_assessment.bundle.css.map index ef8e6a1..cfaf104 100644 --- a/static/dist/css/dog_assessment.bundle.css.map +++ b/static/dist/css/dog_assessment.bundle.css.map @@ -1 +1 @@ -{"version":3,"file":"css/dog_assessment.bundle.css","mappings":";;AAEA;IACI,gBAAgB;IAChB,oBAAoB;IACpB,cAAc;AAClB;;;AAGA,iBAAiB;AACjB;IACI,sBAAsB;AAC1B;;AAEA,eAAe;AACf;IACI,gBAAgB;IAChB,cAAc;IACd,SAAS;IACT,SAAS;IACT,qBAAqB;IACrB,2BAA2B;IAC3B,aAAa;IACb,sBAAsB;IACtB,uBAAuB;IACvB,gBAAgB;IAChB,kBAAkB;IAClB,kBAAkB;IAClB,WAAW;IACX,yBAAyB;AAC7B;;;AAGA,WAAW;AACX;IACI,gBAAgB;IAChB,kBAAkB;IAClB,SAAS;IACT,eAAe;IACf,gBAAgB;IAChB,sCAAsC;IACtC,kBAAkB;IAClB,SAAS;IACT,WAAW;AACf;;AAEA;IACI;QACI,eAAe;QACf,mBAAmB;QACnB,eAAe;QACf,WAAW;QACX,eAAe;IACnB;IACA;QACI,eAAe;IACnB;IACA;QACI,cAAc;IAClB;AACJ;;AAEA;IACI,UAAU;IACV,SAAS;AACb,C;;AChEA;IACI,4BAA4B;IAC5B,WAAW;AACf;;AAEA;IACI,aAAa;AACjB;AACA;IACI,iBAAiB;AACrB;;AAEA;IACI,eAAe;IACf,SAAS;IACT,WAAW;AACf;;AAEA;IACI,gBAAgB;AACpB;AACA;IACI,WAAW;AACf;;AAEA;;;;;;;;IAQI,cAAc;IACd,cAAc;AAClB;;AAEA;;IAEI,eAAe;IACf,eAAe;AACnB;;AAEA;;IAEI,eAAe;IACf,eAAe;AACnB;;AAEA;;IAEI,cAAc;IACd,cAAc;AAClB;AACA;;IAEI,oBAAoB;AACxB;AACA;;IAEI,eAAe;IACf,eAAe;AACnB;AACA;;;;;;;;IAQI,cAAc;IACd,cAAc;AAClB;AACA;;IAEI,eAAe;IACf,eAAe;AACnB;;;AAGA;;IAEI,eAAe;IACf,eAAe;IACf,mBAAmB;AACvB;;AAEA;IACI,YAAY;AAChB;AACA;;IAEI,eAAe;IACf,eAAe;AACnB;AACA;;IAEI,eAAe;IACf,eAAe;AACnB,C","sources":["webpack://app/./static/css/sections/dog.css","webpack://app/./static/css/pages/dog/assessment.css"],"sourcesContent":["\n\n.container-input > input {\n padding: 0vh 1vh;\n border-radius: 0.5vh;\n max-width: 7vh;\n}\n\n\n/* Right column */\n.rightcolumn {\n min-width: fit-content;\n}\n\n/* Main Table */\n#pageBody {\n max-height: 88vh;\n padding: 0 5vw;\n margin: 0;\n border: 0;\n align-content: center;\n justify-content: flex-start;\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n overflow-y: auto;\n overflow-x: hidden;\n position: absolute;\n width: 90vw;\n color: var(--colour-text);\n}\n\n\n/* Footer */\n.footer {\n padding: 1vh 1vw;\n text-align: center;\n margin: 0;\n max-height: 5vh;\n overflow-y: auto;\n background-color: var(--colour-accent);\n position: absolute;\n bottom: 0;\n width: 98vw;\n}\n\n@media screen and (max-width: 400px) {\n .footer {\n max-height: 8vh;\n padding: 0.75vh 2vw;\n font-size: 10px; \n width: 96vw;\n max-width: 96vw;\n }\n .footer > h4 {\n font-size: 10px;\n }\n .footer > h5 {\n font-size: 9px;\n }\n}\n\n.footer > h4, h5 {\n padding: 0;\n margin: 0;\n}","\nh2 {\n color: var(--colour-primary);\n width: 100%;\n}\n\n#formFilters {\n display: none;\n}\n.company-name {\n font-size: 2.5rem;\n}\n\n.container.save.button-cancel {\n position: fixed;\n top: 10vh;\n right: 10vh;\n}\n\ntable.table-main tbody {\n max-height: 28vh;\n}\ntable.table-main tbody tr td {\n height: 4vh;\n}\n\ntable.table-main.assessment thead tr th.active,\ntable.table-main.assessment tbody tr td.active,\ntable.table-main.distraction thead tr th.active,\ntable.table-main.distraction tbody tr td.active,\ntable.table-main.assessment_command_modality_link thead tr th.active,\ntable.table-main.assessment_command_modality_link tbody tr td.active,\ntable.table-main.assessment_response thead tr th.active,\ntable.table-main.assessment_response tbody tr td.active {\n max-width: 6vh;\n min-width: 6vh;\n}\n\ntable.table-main.assessment thead tr th,\ntable.table-main.assessment tbody tr td {\n max-width: 15vh;\n min-width: 15vh;\n}\n\ntable.table-main.distraction thead tr th,\ntable.table-main.distraction tbody tr td {\n max-width: 12vh;\n min-width: 12vh;\n}\n\ntable.table-main.assessment_command_modality_link thead tr th,\ntable.table-main.assessment_command_modality_link tbody tr td {\n max-width: 6vh;\n min-width: 6vh;\n}\ntable.table-main.assessment_command_modality_link tbody tr td.ddl-preview div, \ntable.table-main.assessment_command_modality_link tbody tr td.ddl-preview select {\n padding: 0.5vh 0.5vw;\n}\ntable.table-main.assessment_command_modality_link thead tr th.command-category, \ntable.table-main.assessment_command_modality_link tbody tr td.command-category {\n min-width: 12vh;\n max-width: 12vh;\n}\ntable.table-main.assessment_command_modality_link thead tr th.is-in-hearing-range-of-handler,\ntable.table-main.assessment_command_modality_link tbody tr td.is-in-hearing-range-of-handler,\ntable.table-main.assessment_command_modality_link thead tr th.is-in-scent-range-of-handler,\ntable.table-main.assessment_command_modality_link tbody tr td.is-in-scent-range-of-handler,\ntable.table-main.assessment_command_modality_link thead tr th.is-in-sight-of-handler,\ntable.table-main.assessment_command_modality_link tbody tr td.is-in-sight-of-handler,\ntable.table-main.assessment_command_modality_link thead tr th.is-on-lead,\ntable.table-main.assessment_command_modality_link tbody tr td.is-on-lead {\n max-width: 3vh;\n min-width: 3vh;\n}\ntable.table-main.assessment_command_modality_link thead tr th.notes,\ntable.table-main.assessment_command_modality_link tbody tr td.notes {\n max-width: 12vh;\n min-width: 12vh;\n}\n\n\ntable.table-main.assessment_command_modality_link thead tr th.assessment_response,\ntable.table-main.assessment_command_modality_link tbody tr td.assessment_response {\n max-width: 60vh;\n min-width: 60vh;\n height: fit-content;\n}\n\ntable.table-main.assessment_command_modality_link tbody tr td.assessment_response div.ddl-preview div.row {\n border: none;\n}\ntable.table-main.assessment_command_modality_link tbody tr td.assessment_response thead tr th.response-quality-metric,\ntable.table-main.assessment_command_modality_link tbody tr td.assessment_response tbody tr td.response-quality-metric {\n max-width: 15vh;\n min-width: 15vh;\n}\ntable.table-main.assessment_command_modality_link tbody tr td.assessment_response thead tr th.obedience-level,\ntable.table-main.assessment_command_modality_link tbody tr td.assessment_response tbody tr td.obedience-level {\n max-width: 15vh;\n min-width: 15vh;\n}"],"names":[],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"css/dog_assessment.bundle.css","mappings":";;AAEA;IACI,gBAAgB;IAChB,oBAAoB;IACpB,cAAc;AAClB;;;AAGA,iBAAiB;AACjB;IACI,sBAAsB;AAC1B;;AAEA,eAAe;AACf;IACI,gBAAgB;IAChB,cAAc;IACd,SAAS;IACT,SAAS;IACT,qBAAqB;IACrB,2BAA2B;IAC3B,aAAa;IACb,sBAAsB;IACtB,uBAAuB;IACvB,gBAAgB;IAChB,kBAAkB;IAClB,kBAAkB;IAClB,WAAW;IACX,yBAAyB;AAC7B;;;AAGA,WAAW;AACX;IACI,gBAAgB;IAChB,kBAAkB;IAClB,SAAS;IACT,eAAe;IACf,gBAAgB;IAChB,sCAAsC;IACtC,kBAAkB;IAClB,SAAS;IACT,WAAW;AACf;;AAEA;IACI;QACI,eAAe;QACf,mBAAmB;QACnB,eAAe;QACf,WAAW;QACX,eAAe;IACnB;IACA;QACI,eAAe;IACnB;IACA;QACI,cAAc;IAClB;AACJ;;AAEA;IACI,UAAU;IACV,SAAS;AACb,C;;AChEA;IACI,4BAA4B;IAC5B,WAAW;AACf;;AAEA;IACI,aAAa;AACjB;AACA;IACI,iBAAiB;AACrB;;AAEA;IACI,eAAe;IACf,QAAQ;IACR,UAAU;IACV,UAAU;AACd;;AAEA;IACI,gBAAgB;AACpB;AACA;IACI,WAAW;AACf;;AAEA;;;;;;;;IAQI,cAAc;IACd,cAAc;AAClB;;AAEA;;IAEI,eAAe;IACf,eAAe;AACnB;;AAEA;;IAEI,eAAe;IACf,eAAe;AACnB;;AAEA;;IAEI,cAAc;IACd,cAAc;AAClB;AACA;;IAEI,oBAAoB;AACxB;AACA;;IAEI,eAAe;IACf,eAAe;AACnB;AACA;;;;;;;;IAQI,cAAc;IACd,cAAc;AAClB;AACA;;IAEI,eAAe;IACf,eAAe;AACnB;;;AAGA;;IAEI,eAAe;IACf,eAAe;IACf,mBAAmB;AACvB;;AAEA;IACI,YAAY;AAChB;AACA;;IAEI,eAAe;IACf,eAAe;AACnB;AACA;;IAEI,eAAe;IACf,eAAe;AACnB,C","sources":["webpack://app/./static/css/sections/dog.css","webpack://app/./static/css/pages/dog/assessment.css"],"sourcesContent":["\n\n.container-input > input {\n padding: 0vh 1vh;\n border-radius: 0.5vh;\n max-width: 7vh;\n}\n\n\n/* Right column */\n.rightcolumn {\n min-width: fit-content;\n}\n\n/* Main Table */\n#pageBody {\n max-height: 88vh;\n padding: 0 5vw;\n margin: 0;\n border: 0;\n align-content: center;\n justify-content: flex-start;\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n overflow-y: auto;\n overflow-x: hidden;\n position: absolute;\n width: 90vw;\n color: var(--colour-text);\n}\n\n\n/* Footer */\n.footer {\n padding: 1vh 1vw;\n text-align: center;\n margin: 0;\n max-height: 5vh;\n overflow-y: auto;\n background-color: var(--colour-accent);\n position: absolute;\n bottom: 0;\n width: 98vw;\n}\n\n@media screen and (max-width: 400px) {\n .footer {\n max-height: 8vh;\n padding: 0.75vh 2vw;\n font-size: 10px; \n width: 96vw;\n max-width: 96vw;\n }\n .footer > h4 {\n font-size: 10px;\n }\n .footer > h5 {\n font-size: 9px;\n }\n}\n\n.footer > h4, h5 {\n padding: 0;\n margin: 0;\n}","\nh2 {\n color: var(--colour-primary);\n width: 100%;\n}\n\n#formFilters {\n display: none;\n}\n.company-name {\n font-size: 2.5rem;\n}\n\n.container.save.button-cancel {\n position: fixed;\n top: 1vh;\n right: 5vh;\n z-index: 2;\n}\n\ntable.table-main tbody {\n max-height: 28vh;\n}\ntable.table-main tbody tr td {\n height: 4vh;\n}\n\ntable.table-main.assessment thead tr th.active,\ntable.table-main.assessment tbody tr td.active,\ntable.table-main.distraction thead tr th.active,\ntable.table-main.distraction tbody tr td.active,\ntable.table-main.assessment_command_modality_link thead tr th.active,\ntable.table-main.assessment_command_modality_link tbody tr td.active,\ntable.table-main.assessment_response thead tr th.active,\ntable.table-main.assessment_response tbody tr td.active {\n max-width: 6vh;\n min-width: 6vh;\n}\n\ntable.table-main.assessment thead tr th,\ntable.table-main.assessment tbody tr td {\n max-width: 15vh;\n min-width: 15vh;\n}\n\ntable.table-main.distraction thead tr th,\ntable.table-main.distraction tbody tr td {\n max-width: 12vh;\n min-width: 12vh;\n}\n\ntable.table-main.assessment_command_modality_link thead tr th,\ntable.table-main.assessment_command_modality_link tbody tr td {\n max-width: 6vh;\n min-width: 6vh;\n}\ntable.table-main.assessment_command_modality_link tbody tr td.ddl-preview div, \ntable.table-main.assessment_command_modality_link tbody tr td.ddl-preview select {\n padding: 0.5vh 0.5vw;\n}\ntable.table-main.assessment_command_modality_link thead tr th.command-category, \ntable.table-main.assessment_command_modality_link tbody tr td.command-category {\n min-width: 12vh;\n max-width: 12vh;\n}\ntable.table-main.assessment_command_modality_link thead tr th.is-in-hearing-range-of-handler,\ntable.table-main.assessment_command_modality_link tbody tr td.is-in-hearing-range-of-handler,\ntable.table-main.assessment_command_modality_link thead tr th.is-in-scent-range-of-handler,\ntable.table-main.assessment_command_modality_link tbody tr td.is-in-scent-range-of-handler,\ntable.table-main.assessment_command_modality_link thead tr th.is-in-sight-of-handler,\ntable.table-main.assessment_command_modality_link tbody tr td.is-in-sight-of-handler,\ntable.table-main.assessment_command_modality_link thead tr th.is-on-lead,\ntable.table-main.assessment_command_modality_link tbody tr td.is-on-lead {\n max-width: 3vh;\n min-width: 3vh;\n}\ntable.table-main.assessment_command_modality_link thead tr th.notes,\ntable.table-main.assessment_command_modality_link tbody tr td.notes {\n max-width: 12vh;\n min-width: 12vh;\n}\n\n\ntable.table-main.assessment_command_modality_link thead tr th.assessment_response,\ntable.table-main.assessment_command_modality_link tbody tr td.assessment_response {\n max-width: 60vh;\n min-width: 60vh;\n height: fit-content;\n}\n\ntable.table-main.assessment_command_modality_link tbody tr td.assessment_response div.ddl-preview div.row {\n border: none;\n}\ntable.table-main.assessment_command_modality_link tbody tr td.assessment_response thead tr th.response-quality-metric,\ntable.table-main.assessment_command_modality_link tbody tr td.assessment_response tbody tr td.response-quality-metric {\n max-width: 15vh;\n min-width: 15vh;\n}\ntable.table-main.assessment_command_modality_link tbody tr td.assessment_response thead tr th.obedience-level,\ntable.table-main.assessment_command_modality_link tbody tr td.assessment_response tbody tr td.obedience-level {\n max-width: 15vh;\n min-width: 15vh;\n}"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/static/dist/css/user_company.bundle.css b/static/dist/css/user_company.bundle.css index 80f30f6..93c49d9 100644 --- a/static/dist/css/user_company.bundle.css +++ b/static/dist/css/user_company.bundle.css @@ -70,6 +70,13 @@ display: none; } +.container.save.button-cancel { + position: fixed; + top: 1vh; + right: 5vh; + z-index: 2; +} + .container-input { margin: 0 auto; } diff --git a/static/dist/css/user_company.bundle.css.map b/static/dist/css/user_company.bundle.css.map index b4582b3..a20a1ae 100644 --- a/static/dist/css/user_company.bundle.css.map +++ b/static/dist/css/user_company.bundle.css.map @@ -1 +1 @@ -{"version":3,"file":"css/user_company.bundle.css","mappings":";;AAEA;IACI,gBAAgB;IAChB,oBAAoB;IACpB,cAAc;AAClB;;;AAGA,iBAAiB;AACjB;IACI,sBAAsB;AAC1B;;AAEA,eAAe;AACf;IACI,gBAAgB;IAChB,cAAc;IACd,SAAS;IACT,SAAS;IACT,qBAAqB;IACrB,2BAA2B;IAC3B,aAAa;IACb,sBAAsB;IACtB,uBAAuB;IACvB,gBAAgB;IAChB,kBAAkB;IAClB,kBAAkB;IAClB,WAAW;IACX,yBAAyB;AAC7B;;;AAGA,WAAW;AACX;IACI,gBAAgB;IAChB,kBAAkB;IAClB,SAAS;IACT,eAAe;IACf,gBAAgB;IAChB,sCAAsC;IACtC,kBAAkB;IAClB,SAAS;IACT,WAAW;AACf;;AAEA;IACI;QACI,eAAe;QACf,mBAAmB;QACnB,eAAe;QACf,WAAW;QACX,eAAe;IACnB;IACA;QACI,eAAe;IACnB;IACA;QACI,cAAc;IAClB;AACJ;;AAEA;IACI,UAAU;IACV,SAAS;AACb,C;;;AChEA;IACI,aAAa;AACjB;;AAEA;IACI,cAAc;AAClB;AACA;IACI,gBAAgB;IAChB,gBAAgB;AACpB;;AAEA;IACI,YAAY;AAChB,C","sources":["webpack://app/./static/css/sections/dog.css","webpack://app/./static/css/pages/user/company.css"],"sourcesContent":["\n\n.container-input > input {\n padding: 0vh 1vh;\n border-radius: 0.5vh;\n max-width: 7vh;\n}\n\n\n/* Right column */\n.rightcolumn {\n min-width: fit-content;\n}\n\n/* Main Table */\n#pageBody {\n max-height: 88vh;\n padding: 0 5vw;\n margin: 0;\n border: 0;\n align-content: center;\n justify-content: flex-start;\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n overflow-y: auto;\n overflow-x: hidden;\n position: absolute;\n width: 90vw;\n color: var(--colour-text);\n}\n\n\n/* Footer */\n.footer {\n padding: 1vh 1vw;\n text-align: center;\n margin: 0;\n max-height: 5vh;\n overflow-y: auto;\n background-color: var(--colour-accent);\n position: absolute;\n bottom: 0;\n width: 98vw;\n}\n\n@media screen and (max-width: 400px) {\n .footer {\n max-height: 8vh;\n padding: 0.75vh 2vw;\n font-size: 10px; \n width: 96vw;\n max-width: 96vw;\n }\n .footer > h4 {\n font-size: 10px;\n }\n .footer > h5 {\n font-size: 9px;\n }\n}\n\n.footer > h4, h5 {\n padding: 0;\n margin: 0;\n}","\n#formFilters {\n display: none;\n}\n\n.container-input {\n margin: 0 auto;\n}\n.container-input input {\n max-width: 250px;\n padding: 1vh 1vw;\n}\n\n.container-input textarea {\n width: 300px;\n}"],"names":[],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"css/user_company.bundle.css","mappings":";;AAEA;IACI,gBAAgB;IAChB,oBAAoB;IACpB,cAAc;AAClB;;;AAGA,iBAAiB;AACjB;IACI,sBAAsB;AAC1B;;AAEA,eAAe;AACf;IACI,gBAAgB;IAChB,cAAc;IACd,SAAS;IACT,SAAS;IACT,qBAAqB;IACrB,2BAA2B;IAC3B,aAAa;IACb,sBAAsB;IACtB,uBAAuB;IACvB,gBAAgB;IAChB,kBAAkB;IAClB,kBAAkB;IAClB,WAAW;IACX,yBAAyB;AAC7B;;;AAGA,WAAW;AACX;IACI,gBAAgB;IAChB,kBAAkB;IAClB,SAAS;IACT,eAAe;IACf,gBAAgB;IAChB,sCAAsC;IACtC,kBAAkB;IAClB,SAAS;IACT,WAAW;AACf;;AAEA;IACI;QACI,eAAe;QACf,mBAAmB;QACnB,eAAe;QACf,WAAW;QACX,eAAe;IACnB;IACA;QACI,eAAe;IACnB;IACA;QACI,cAAc;IAClB;AACJ;;AAEA;IACI,UAAU;IACV,SAAS;AACb,C;;;AChEA;IACI,aAAa;AACjB;;AAEA;IACI,eAAe;IACf,QAAQ;IACR,UAAU;IACV,UAAU;AACd;;AAEA;IACI,cAAc;AAClB;AACA;IACI,gBAAgB;IAChB,gBAAgB;AACpB;;AAEA;IACI,YAAY;AAChB,C","sources":["webpack://app/./static/css/sections/dog.css","webpack://app/./static/css/pages/user/company.css"],"sourcesContent":["\n\n.container-input > input {\n padding: 0vh 1vh;\n border-radius: 0.5vh;\n max-width: 7vh;\n}\n\n\n/* Right column */\n.rightcolumn {\n min-width: fit-content;\n}\n\n/* Main Table */\n#pageBody {\n max-height: 88vh;\n padding: 0 5vw;\n margin: 0;\n border: 0;\n align-content: center;\n justify-content: flex-start;\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n overflow-y: auto;\n overflow-x: hidden;\n position: absolute;\n width: 90vw;\n color: var(--colour-text);\n}\n\n\n/* Footer */\n.footer {\n padding: 1vh 1vw;\n text-align: center;\n margin: 0;\n max-height: 5vh;\n overflow-y: auto;\n background-color: var(--colour-accent);\n position: absolute;\n bottom: 0;\n width: 98vw;\n}\n\n@media screen and (max-width: 400px) {\n .footer {\n max-height: 8vh;\n padding: 0.75vh 2vw;\n font-size: 10px; \n width: 96vw;\n max-width: 96vw;\n }\n .footer > h4 {\n font-size: 10px;\n }\n .footer > h5 {\n font-size: 9px;\n }\n}\n\n.footer > h4, h5 {\n padding: 0;\n margin: 0;\n}","\n#formFilters {\n display: none;\n}\n\n.container.save.button-cancel {\n position: fixed;\n top: 1vh;\n right: 5vh;\n z-index: 2;\n}\n\n.container-input {\n margin: 0 auto;\n}\n.container-input input {\n max-width: 250px;\n padding: 1vh 1vw;\n}\n\n.container-input textarea {\n width: 300px;\n}"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/templates/components/dog/_preview_DDL_image.html b/templates/components/dog/_preview_DDL_image.html index d0f5df0..296329d 100644 --- a/templates/components/dog/_preview_DDL_image.html +++ b/templates/components/dog/_preview_DDL_image.html @@ -2,6 +2,15 @@ {% with _attribute_text = '' if (attribute_text is not defined or attribute_text is none) else attribute_text %} {% set value_previous = '0' if (is_blank_row or (image_preview is not defined) or (image_preview is none) or (image_preview.id_image is none)) else image_preview.id_image %} {% set text_previous = '' if (is_blank_row or (image_preview is not defined) or (image_preview is none)) else model.format_null_string_as_blank(image_preview.name) %} + {% set path_previous = '' if (is_blank_row or (image_preview is not defined) or (image_preview is none)) else model.format_null_string_as_blank(image_preview.path) %} -