Feat: Assessment page completed with save method combining Assessment, Distraction, Assessment Command Modality Link, and Assessment Response save for creating new complete Assessnent.

This commit is contained in:
2025-07-28 22:41:38 +01:00
parent 1bbe6f0040
commit 574d60442a
122 changed files with 3261 additions and 1057 deletions

View File

@@ -56,10 +56,11 @@ class Assessment(SQLAlchemy_ABC, Base):
self.is_new = False
self.weather = None
self.lighting_level = None
self.temperature_celcius = 22
self.location = None
self.user_handler = None
self.distractions = None
self.assessment_command_modality_links = None
self.distractions = []
self.assessment_command_modality_links = []
super().__init__()
@classmethod
@@ -99,18 +100,15 @@ class Assessment(SQLAlchemy_ABC, Base):
_m = f'{cls.__qualname__}.from_json'
assessment = cls()
if json is None: return assessment
# Helper_App.console_log(f'{_m}\njson: {json}')
assessment.id_assessment = json.get(Assessment.ATTR_ID_ASSESSMENT, -1)
assessment.id_weather = json[Weather.ATTR_ID_WEATHER]
assessment.id_lighting_level = json[Lighting_Level.ATTR_ID_LIGHTING_LEVEL]
assessment.id_location = json[Location.ATTR_ID_LOCATION]
assessment.user_handler = json[cls.FLAG_USER_HANDLER]
assessment.id_user_handler = json[cls.FLAG_USER_HANDLER]
assessment.notes = json[cls.FLAG_NOTES]
assessment.temperature_celcius = json[cls.FLAG_TEMPERATURE_CELCIUS]
assessment.active = json[cls.FLAG_ACTIVE]
assessment.active = av.input_bool(json[cls.FLAG_ACTIVE], cls.FLAG_ACTIVE, _m)
assessment.created_on = json.get(cls.FLAG_CREATED_ON, None)
# assessment.id_command_category = json[Command_Category.FLAG_COMMAND_CATEGORY]
# Helper_App.console_log(f'Dog Command Link: {assessment}')
return assessment
def to_json(self):
@@ -129,8 +127,6 @@ class Assessment(SQLAlchemy_ABC, Base):
, self.FLAG_DISTRACTION: [distraction.to_json() for distraction in self.distractions] if (self.distractions is not None and len(self.distractions) > 0) else []
, self.FLAG_ASSESSMENT_COMMAND_MODALITY_LINK: [link.to_json() for link in self.assessment_command_modality_links] if (self.assessment_command_modality_links is not None and len(self.assessment_command_modality_links) > 0) else []
}
# , Command_Category.FLAG_COMMAND_CATEGORY: self.id_command_category
# Helper_App.console_log(f'as_json: {as_json}')
return as_json
def __repr__(self):
@@ -283,8 +279,6 @@ class Parameters_Assessment(Get_Many_Parameters_Base):
@classmethod
def from_form_filters_assessment(cls, form):
_m = f'{cls.__qualname__}.from_form_filters_assessment'
Helper_App.console_log(_m)
Helper_App.console_log(f'Filters: {form}')
av.val_instance(form, 'form', _m, Filters_Assessment)
has_filter_search_text = not (form.search.data == '' or form.search.data is None)
has_filter_weather = not (form.id_weather.data == '0' or form.id_weather.data == '' or form.id_weather.data is None)
@@ -292,14 +286,7 @@ class Parameters_Assessment(Get_Many_Parameters_Base):
has_filter_location = not (form.id_location.data == '0' or form.id_location.data == '' or form.id_location.data is None)
has_filter_user_handler = not (form.id_user_handler.data == '0' or form.id_user_handler.data == '' or form.id_user_handler.data is None)
active_only = av.input_bool(form.active_only.data, "active", _m)
Helper_App.console_log(f'''
has_filter_search_text: {has_filter_search_text}
has_filter_weather: {has_filter_weather}
has_filter_lighting_level: {has_filter_lighting_level}
has_filter_location: {has_filter_location}
has_filter_user_handler: {has_filter_user_handler}
active_only: {active_only}
''')
filters = cls.get_default()
filters.get_all_assessment = True
filters.get_inactive_assessment = not active_only

View File

@@ -33,7 +33,7 @@ class Assessment_Command_Modality_Link(SQLAlchemy_ABC, Base):
ATTR_ID_ASSESSMENT_COMMAND_MODALITY_LINK: ClassVar[str] = 'id_link'
FLAG_ASSESSMENT_COMMAND_MODALITY_LINK: ClassVar[str] = Assessment.FLAG_ASSESSMENT_COMMAND_MODALITY_LINK
FLAG_ASSESSMENT_RESPONSE: ClassVar[str] = 'assessment_response'
FLAG_DISTANCE_FROM_HANDLER: ClassVar[str] = 'distance-from-handler'
FLAG_DISTANCE_FROM_HANDLER_METRES: ClassVar[str] = 'distance-from-handler-metres'
FLAG_IS_IN_HEARING_RANGE_OF_HANDLER: ClassVar[str] = 'is-in-hearing-range-of-handler'
FLAG_IS_IN_SCENT_RANGE_OF_HANDLER: ClassVar[str] = 'is-in-scent-range-of-handler'
FLAG_IS_IN_SIGHT_OF_HANDLER: ClassVar[str] = 'is-in-sight-of-handler'
@@ -50,7 +50,7 @@ class Assessment_Command_Modality_Link(SQLAlchemy_ABC, Base):
id_command = db.Column(db.Integer)
id_command_modality = db.Column(db.Integer)
id_bribe = db.Column(db.Integer)
distance_from_handler = db.Column(db.Float)
distance_from_handler_metres = db.Column(db.Float)
is_in_hearing_range_of_handler = db.Column(db.Boolean)
is_in_scent_range_of_handler = db.Column(db.Boolean)
is_in_sight_of_handler = db.Column(db.Boolean)
@@ -78,7 +78,7 @@ class Assessment_Command_Modality_Link(SQLAlchemy_ABC, Base):
assessment_command_modality_link.id_command = query_row[5]
assessment_command_modality_link.id_command_modality = query_row[7]
assessment_command_modality_link.id_bribe = query_row[9]
assessment_command_modality_link.distance_from_handler = query_row[11]
assessment_command_modality_link.distance_from_handler_metres = query_row[11]
assessment_command_modality_link.is_in_hearing_range_of_handler = av.input_bool(query_row[12], 'is_in_hearing_range_of_handler', _m)
assessment_command_modality_link.is_in_scent_range_of_handler = av.input_bool(query_row[13], 'is_in_scent_range_of_handler', _m)
assessment_command_modality_link.is_in_sight_of_handler = av.input_bool(query_row[14], 'is_in_sight_of_handler', _m)
@@ -104,22 +104,19 @@ class Assessment_Command_Modality_Link(SQLAlchemy_ABC, Base):
_m = f'{cls.__qualname__}.from_json'
assessment_command_modality_link = cls()
if json is None: return assessment_command_modality_link
# Helper_App.console_log(f'{_m}\njson: {json}')
assessment_command_modality_link.id_link = json.get(Assessment_Command_Modality_Link.ATTR_ID_ASSESSMENT_COMMAND_MODALITY_LINK, -1)
assessment_command_modality_link.id_assessment = json[Assessment.ATTR_ID_ASSESSMENT]
assessment_command_modality_link.id_command = json[Command.ATTR_ID_COMMAND]
assessment_command_modality_link.id_command_modality = json[Command_Modality.ATTR_ID_COMMAND_MODALITY]
assessment_command_modality_link.id_bribe = json[Bribe.ATTR_ID_BRIBE]
assessment_command_modality_link.distance_from_handler = json[cls.FLAG_DISTANCE_FROM_HANDLER]
assessment_command_modality_link.is_in_hearing_range_of_handler = json[cls.FLAG_IS_IN_HEARING_RANGE_OF_HANDLER]
assessment_command_modality_link.is_in_scent_range_of_handler = json[cls.FLAG_IS_IN_SCENT_RANGE_OF_HANDLER]
assessment_command_modality_link.is_in_sight_of_handler = json[cls.FLAG_IS_IN_SIGHT_OF_HANDLER]
assessment_command_modality_link.is_on_lead = json[cls.FLAG_IS_ON_LEAD]
assessment_command_modality_link.trial_count = json[cls.FLAG_TRIAL_COUNT]
assessment_command_modality_link.active = json[cls.FLAG_ACTIVE]
assessment_command_modality_link.distance_from_handler_metres = json[cls.FLAG_DISTANCE_FROM_HANDLER_METRES]
assessment_command_modality_link.is_in_hearing_range_of_handler = av.input_bool(json[cls.FLAG_IS_IN_HEARING_RANGE_OF_HANDLER], cls.FLAG_IS_IN_HEARING_RANGE_OF_HANDLER, _m)
assessment_command_modality_link.is_in_scent_range_of_handler = av.input_bool(json[cls.FLAG_IS_IN_SCENT_RANGE_OF_HANDLER], cls.FLAG_IS_IN_SCENT_RANGE_OF_HANDLER, _m)
assessment_command_modality_link.is_in_sight_of_handler = av.input_bool(json[cls.FLAG_IS_IN_SIGHT_OF_HANDLER], cls.FLAG_IS_IN_SIGHT_OF_HANDLER, _m)
assessment_command_modality_link.is_on_lead = av.input_bool(json[cls.FLAG_IS_ON_LEAD], cls.FLAG_IS_ON_LEAD, _m)
assessment_command_modality_link.trial_count = json.get(cls.FLAG_TRIAL_COUNT)
assessment_command_modality_link.active = av.input_bool(json[cls.FLAG_ACTIVE], cls.FLAG_ACTIVE, _m)
assessment_command_modality_link.created_on = json.get(cls.FLAG_CREATED_ON, None)
# assessment_command_modality_link.id_command_category = json[Command_Category.FLAG_COMMAND_CATEGORY]
# Helper_App.console_log(f'Dog Command Link: {assessment_command_modality_link}')
return assessment_command_modality_link
def to_json(self):
@@ -130,7 +127,7 @@ class Assessment_Command_Modality_Link(SQLAlchemy_ABC, Base):
, Command.ATTR_ID_COMMAND: { Command.ATTR_ID_COMMAND: None } if self.command is None else self.command.to_json()
, Command_Modality.ATTR_ID_COMMAND_MODALITY: { Command_Modality.ATTR_ID_COMMAND_MODALITY: None } if self.command_modality is None else self.command_modality.to_json()
, Bribe.FLAG_BRIBE: { Bribe.FLAG_BRIBE: None } if self.bribe is None else self.bribe.to_json()
, self.FLAG_DISTANCE_FROM_HANDLER: self.distance_from_handler
, self.FLAG_DISTANCE_FROM_HANDLER_METRES: self.distance_from_handler_metres
, self.FLAG_IS_IN_HEARING_RANGE_OF_HANDLER: self.is_in_hearing_range_of_handler
, self.FLAG_IS_IN_SCENT_RANGE_OF_HANDLER: self.is_in_scent_range_of_handler
, self.FLAG_IS_IN_SIGHT_OF_HANDLER: self.is_in_sight_of_handler
@@ -140,8 +137,6 @@ class Assessment_Command_Modality_Link(SQLAlchemy_ABC, Base):
, self.FLAG_CREATED_ON: self.created_on
, self.FLAG_ASSESSMENT_RESPONSE: [] if self.assessment_responses is None else [response.to_json() for response in self.assessment_responses]
}
# , Command_Category.FLAG_COMMAND_CATEGORY: self.id_command_category
# Helper_App.console_log(f'as_json: {as_json}')
return as_json
def __repr__(self):
@@ -152,7 +147,7 @@ class Assessment_Command_Modality_Link(SQLAlchemy_ABC, Base):
{Command.FLAG_COMMAND}: {self.command}
{Command_Modality.FLAG_COMMAND_MODALITY}: {self.command_modality}
{Bribe.FLAG_BRIBE}: {self.bribe}
{self.FLAG_DISTANCE_FROM_HANDLER}: {self.distance_from_handler}
{self.FLAG_DISTANCE_FROM_HANDLER_METRES}: {self.distance_from_handler_metres}
{self.FLAG_IS_IN_HEARING_RANGE_OF_HANDLER}: {self.is_in_hearing_range_of_handler}
{self.FLAG_IS_IN_SCENT_RANGE_OF_HANDLER}: {self.is_in_scent_range_of_handler}
{self.FLAG_IS_IN_SIGHT_OF_HANDLER}: {self.is_in_sight_of_handler}
@@ -173,7 +168,7 @@ class Assessment_Command_Modality_Link_Temp(db.Model, Base):
id_command = db.Column(db.Integer)
id_command_modality = db.Column(db.Integer)
id_bribe = db.Column(db.Integer)
distance_from_handler = db.Column(db.Float)
distance_from_handler_metres = db.Column(db.Float)
is_in_hearing_range_of_handler = db.Column(db.Boolean)
is_in_scent_range_of_handler = db.Column(db.Boolean)
is_in_sight_of_handler = db.Column(db.Boolean)
@@ -195,7 +190,7 @@ class Assessment_Command_Modality_Link_Temp(db.Model, Base):
temp.id_command = assessment_command_modality_link.id_command
temp.id_command_modality = assessment_command_modality_link.id_command_modality
temp.id_bribe = assessment_command_modality_link.id_bribe
temp.distance_from_handler = assessment_command_modality_link.distance_from_handler
temp.distance_from_handler_metres = assessment_command_modality_link.distance_from_handler_metres
temp.is_in_hearing_range_of_handler = assessment_command_modality_link.is_in_hearing_range_of_handler
temp.is_in_scent_range_of_handler = assessment_command_modality_link.is_in_scent_range_of_handler
temp.is_in_sight_of_handler = assessment_command_modality_link.is_in_sight_of_handler
@@ -210,8 +205,8 @@ class Parameters_Assessment_Command_Modality_Link(Get_Many_Parameters_Base):
get_all_link: bool
get_inactive_link: bool
ids_link: str
min_distance_from_handler_link: Optional[float]
max_distance_from_handler_link: Optional[float]
min_distance_from_handler_metres_link: Optional[float]
max_distance_from_handler_metres_link: Optional[float]
value_is_in_sight_of_handler_link: Optional[bool]
value_is_in_scent_range_of_handler_link: Optional[bool]
value_is_in_hearing_range_of_handler_link: Optional[bool]
@@ -276,8 +271,8 @@ class Parameters_Assessment_Command_Modality_Link(Get_Many_Parameters_Base):
get_all_link = True
, get_inactive_link = False
, ids_link = ''
, min_distance_from_handler_link = None
, max_distance_from_handler_link = None
, min_distance_from_handler_metres_link = None
, max_distance_from_handler_metres_link = None
, value_is_in_sight_of_handler_link = None
, value_is_in_scent_range_of_handler_link = None
, value_is_in_hearing_range_of_handler_link = None
@@ -344,8 +339,8 @@ class Parameters_Assessment_Command_Modality_Link(Get_Many_Parameters_Base):
, get_inactive_link = json.get('a_get_inactive_link', False)
, ids_link = json.get('a_ids_link', '')
, notes_assessment_command_modality_link = json.get('a_notes_assessment_command_modality_link', '')
, min_distance_from_handler_link = json.get('a_min_distance_from_handler_link', None)
, max_distance_from_handler_link = json.get('a_max_distance_from_handler_link', None)
, min_distance_from_handler_metres_link = json.get('a_min_distance_from_handler_metres_link', None)
, max_distance_from_handler_metres_link = json.get('a_max_distance_from_handler_metres_link', None)
, value_is_in_sight_of_handler_link = json.get('a_value_is_in_sight_of_handler_link', None)
, value_is_in_scent_range_of_handler_link = json.get('a_value_is_in_scent_range_of_handler_link', None)
, value_is_in_hearing_range_of_handler_link = json.get('a_value_is_in_hearing_range_of_handler_link', None)
@@ -408,8 +403,6 @@ class Parameters_Assessment_Command_Modality_Link(Get_Many_Parameters_Base):
@classmethod
def from_form_filters_assessment(cls, form):
_m = f'{cls.__qualname__}.from_form_filters_assessment'
Helper_App.console_log(_m)
Helper_App.console_log(f'Filters: {form}')
av.val_instance(form, 'form', _m, Filters_Assessment)
has_filter_search_text = not (form.search.data == '' or form.search.data is None)
has_filter_assessment = not (form.id_assessment.data == '0' or form.id_assessment.data == '' or form.id_assessment.data is None)
@@ -417,14 +410,7 @@ class Parameters_Assessment_Command_Modality_Link(Get_Many_Parameters_Base):
has_filter_command_modality = False
has_filter_bribe = False
active_only = av.input_bool(form.active_only.data, "active", _m)
Helper_App.console_log(f'''
has_filter_search_text: {has_filter_search_text}
has_filter_assessment: {has_filter_assessment}
has_filter_command: {has_filter_command}
has_filter_command_modality: {has_filter_command_modality}
has_filter_bribe: {has_filter_bribe}
active_only: {active_only}
''')
filters = cls.get_default()
filters.get_all_link = True
filters.get_inactive_link = not active_only
@@ -451,8 +437,8 @@ active_only: {active_only}
'a_get_all_link': self.get_all_link
, 'a_get_inactive_link': self.get_inactive_link
, 'a_ids_link': self.ids_link
, 'a_min_distance_from_handler_link': self.min_distance_from_handler_link
, 'a_max_distance_from_handler_link': self.max_distance_from_handler_link
, 'a_min_distance_from_handler_metres_link': self.min_distance_from_handler_metres_link
, 'a_max_distance_from_handler_metres_link': self.max_distance_from_handler_metres_link
, 'a_value_is_in_sight_of_handler_link': self.value_is_in_sight_of_handler_link
, 'a_value_is_in_scent_range_of_handler_link': self.value_is_in_scent_range_of_handler_link
, 'a_value_is_in_hearing_range_of_handler_link': self.value_is_in_hearing_range_of_handler_link

View File

@@ -61,10 +61,10 @@ class Assessment_Response(SQLAlchemy_ABC, Base):
assessment_response.id_response = query_row[0]
assessment_response.id_assessment_command_modality_link = query_row[1]
assessment_response.id_response_quality_metric = query_row[2]
assessment_response.id_obedience_level = query_row[3]
assessment_response.value_measured = query_row[11]
assessment_response.notes = query_row[10]
assessment_response.active = av.input_bool(query_row[12], 'active', _m)
assessment_response.id_obedience_level = query_row[4]
assessment_response.value_measured = query_row[6]
assessment_response.notes = query_row[7]
assessment_response.active = av.input_bool(query_row[8], 'active', _m)
assessment_response.assessment_command_modality_link = Assessment_Command_Modality_Link.from_db_assessment_response(query_row)
assessment_response.response_quality_metric = Response_Quality_Metric.from_db_assessment_response(query_row)
@@ -76,17 +76,14 @@ class Assessment_Response(SQLAlchemy_ABC, Base):
_m = f'{cls.__qualname__}.from_json'
assessment_response = cls()
if json is None: return assessment_response
# Helper_App.console_log(f'{_m}\njson: {json}')
assessment_response.id_response = json.get(Assessment_Response.ATTR_ID_ASSESSMENT_RESPONSE, -1)
assessment_response.id_assessment_command_modality_link = json[Assessment_Command_Modality_Link.ATTR_ID_ASSESSMENT_COMMAND_MODALITY_LINK]
assessment_response.id_response_quality_metric = json[Response_Quality_Metric.ATTR_ID_ASSESSMENT_RESPONSE_QUALITY_METRIC]
assessment_response.id_response_quality_metric = json[Response_Quality_Metric.ATTR_ID_RESPONSE_QUALITY_METRIC]
assessment_response.id_obedience_level = json[Obedience_Level.ATTR_ID_OBEDIENCE_LEVEL]
assessment_response.value_measured = json[cls.FLAG_VALUE_MEASURED]
assessment_response.notes = json[cls.FLAG_NOTES]
assessment_response.active = json[cls.FLAG_ACTIVE]
assessment_response.active = av.input_bool(json[cls.FLAG_ACTIVE], cls.FLAG_ACTIVE, _m)
assessment_response.created_on = json.get(cls.FLAG_CREATED_ON, None)
# assessment_response.id_command_category = json[Command_Category.FLAG_COMMAND_CATEGORY]
# Helper_App.console_log(f'Dog Command Link: {assessment_response}')
return assessment_response
def to_json(self):
@@ -94,15 +91,13 @@ class Assessment_Response(SQLAlchemy_ABC, Base):
**self.get_shared_json_attributes(self)
, self.ATTR_ID_ASSESSMENT_RESPONSE: self.id_response
, Assessment_Command_Modality_Link.ATTR_ID_ASSESSMENT_COMMAND_MODALITY_LINK: { Assessment_Command_Modality_Link.ATTR_ID_ASSESSMENT_COMMAND_MODALITY_LINK: None } if self.assessment_command_modality_link is None else self.assessment_command_modality_link.to_json()
, Response_Quality_Metric.ATTR_ID_ASSESSMENT_RESPONSE_QUALITY_METRIC: { Response_Quality_Metric.ATTR_ID_ASSESSMENT_RESPONSE_QUALITY_METRIC: None } if self.response_quality_metric is None else self.response_quality_metric.to_json()
, Obedience_Level.ATTR_ID_OBEDIENCE_LEVEL: { Obedience_Level.ATTR_ID_OBEDIENCE_LEVEL: None } if self.assessment_command_modality_link is None else self.assessment_command_modality_link.to_json()
, Response_Quality_Metric.ATTR_ID_RESPONSE_QUALITY_METRIC: { Response_Quality_Metric.ATTR_ID_RESPONSE_QUALITY_METRIC: None } if self.response_quality_metric is None else self.response_quality_metric.to_json()
, Obedience_Level.ATTR_ID_OBEDIENCE_LEVEL: { Obedience_Level.ATTR_ID_OBEDIENCE_LEVEL: None } if self.obedience_level is None else self.obedience_level.to_json()
, self.FLAG_VALUE_MEASURED: self.value_measured
, self.FLAG_NOTES: self.notes
, self.FLAG_ACTIVE: self.active
, self.FLAG_CREATED_ON: self.created_on
}
# , Command_Category.FLAG_COMMAND_CATEGORY: self.id_command_category
# Helper_App.console_log(f'as_json: {as_json}')
return as_json
def __repr__(self):
@@ -163,8 +158,8 @@ class Parameters_Assessment_Response(Get_Many_Parameters_Base):
get_all_ACM_link: bool
get_inactive_ACM_link: bool
ids_ACM_link: str
min_distance_from_handler_ACM_link: Optional[float]
max_distance_from_handler_ACM_link: Optional[float]
min_distance_from_handler_metres_ACM_link: Optional[float]
max_distance_from_handler_metres_ACM_link: Optional[float]
value_is_in_sight_of_handler_ACM_link: Optional[bool]
value_is_in_scent_range_of_handler_ACM_link: Optional[bool]
value_is_in_hearing_range_of_handler_ACM_link: Optional[bool]
@@ -242,8 +237,8 @@ class Parameters_Assessment_Response(Get_Many_Parameters_Base):
, get_all_ACM_link = True
, get_inactive_ACM_link = False
, ids_ACM_link = ''
, min_distance_from_handler_ACM_link = None
, max_distance_from_handler_ACM_link = None
, min_distance_from_handler_metres_ACM_link = None
, max_distance_from_handler_metres_ACM_link = None
, value_is_in_sight_of_handler_ACM_link = None
, value_is_in_scent_range_of_handler_ACM_link = None
, value_is_in_hearing_range_of_handler_ACM_link = None
@@ -323,8 +318,8 @@ class Parameters_Assessment_Response(Get_Many_Parameters_Base):
, get_inactive_ACM_link = json.get('a_get_inactive_ACM_link', False)
, ids_ACM_link = json.get('a_ids_ACM_link', '')
, notes_assessment_command_modality_link = json.get('a_notes_assessment_command_modality_link', '')
, min_distance_from_handler_ACM_link = json.get('a_min_distance_from_handler_ACM_link', None)
, max_distance_from_handler_ACM_link = json.get('a_max_distance_from_handler_ACM_link', None)
, min_distance_from_handler_metres_ACM_link = json.get('a_min_distance_from_handler_metres_ACM_link', None)
, max_distance_from_handler_metres_ACM_link = json.get('a_max_distance_from_handler_metres_ACM_link', None)
, value_is_in_sight_of_handler_ACM_link = json.get('a_value_is_in_sight_of_handler_ACM_link', None)
, value_is_in_scent_range_of_handler_ACM_link = json.get('a_value_is_in_scent_range_of_handler_ACM_link', None)
, value_is_in_hearing_range_of_handler_ACM_link = json.get('a_value_is_in_hearing_range_of_handler_ACM_link', None)
@@ -393,8 +388,6 @@ class Parameters_Assessment_Response(Get_Many_Parameters_Base):
@classmethod
def from_form_filters_assessment(cls, form):
_m = f'{cls.__qualname__}.from_form_filters_assessment'
Helper_App.console_log(_m)
Helper_App.console_log(f'Filters: {form}')
av.val_instance(form, 'form', _m, Filters_Assessment)
has_filter_search_text = not (form.search.data == '' or form.search.data is None)
has_filter_assessment_command_modality_link = False
@@ -403,14 +396,7 @@ class Parameters_Assessment_Response(Get_Many_Parameters_Base):
has_filter_user_handler = False
has_filter_assessment = not (form.id_assessment.data == '' or form.id_assessment.data == '0' or form.id_assessment.data is None)
active_only = av.input_bool(form.active_only.data, "active", _m)
Helper_App.console_log(f'''
has_filter_search_text: {has_filter_search_text}
has_filter_assessment_command_modality_link: {has_filter_assessment_command_modality_link}
has_filter_response_quality_metric: {has_filter_response_quality_metric}
has_filter_obedience_level: {has_filter_obedience_level}
has_filter_user_handler: {has_filter_user_handler}
active_only: {active_only}
''')
filters = cls.get_default()
filters.get_all_assessment_response = True
filters.get_inactive_assessment_response = not active_only
@@ -448,8 +434,8 @@ active_only: {active_only}
, 'a_get_all_ACM_link': self.get_all_ACM_link
, 'a_get_inactive_ACM_link': self.get_inactive_ACM_link
, 'a_ids_ACM_link': self.ids_ACM_link
, 'a_min_distance_from_handler_ACM_link': self.min_distance_from_handler_ACM_link
, 'a_max_distance_from_handler_ACM_link': self.max_distance_from_handler_ACM_link
, 'a_min_distance_from_handler_metres_ACM_link': self.min_distance_from_handler_metres_ACM_link
, 'a_max_distance_from_handler_metres_ACM_link': self.max_distance_from_handler_metres_ACM_link
, 'a_value_is_in_sight_of_handler_ACM_link': self.value_is_in_sight_of_handler_ACM_link
, 'a_value_is_in_scent_range_of_handler_ACM_link': self.value_is_in_scent_range_of_handler_ACM_link
, 'a_value_is_in_hearing_range_of_handler_ACM_link': self.value_is_in_hearing_range_of_handler_ACM_link

View File

@@ -71,12 +71,10 @@ class Bribe(SQLAlchemy_ABC, Base):
_m = 'Bribe.from_json'
bribe = cls()
if json is None: return Bribe
# Helper_App.console_log(f'{_m}\njson: {json}')
bribe.id_bribe = json.get(cls.ATTR_ID_BRIBE, -1)
bribe.name = json[cls.FLAG_NAME]
bribe.code = json.get(cls.FLAG_CODE, bribe.name.upper().replace(" ", "_"))
bribe.active = json[cls.FLAG_ACTIVE]
# Helper_App.console_log(f'Bribe: {bribe}')
bribe.active = av.input_bool(json[cls.FLAG_ACTIVE], cls.FLAG_ACTIVE, _m)
return bribe
@@ -88,7 +86,6 @@ class Bribe(SQLAlchemy_ABC, Base):
, self.FLAG_NAME: self.name
, self.FLAG_ACTIVE: self.active
}
# Helper_App.console_log(f'as_json: {as_json}')
return as_json
def __repr__(self):

View File

@@ -72,15 +72,13 @@ class Button_Icon(SQLAlchemy_ABC, Base):
_m = f'{cls.__qualname__}.from_json'
button_icon = cls()
if json is None: return button_icon
# Helper_App.console_log(f'{_m}\njson: {json}')
button_icon.id_button_icon = json.get(Button_Icon.ATTR_ID_BUTTON_ICON, -1)
button_icon.id_image = json[Image.FLAG_IMAGE]
button_icon.name = json[cls.FLAG_NAME]
button_icon.code = json.get(cls.FLAG_CODE, button_icon.name.upper().replace(" ", "_"))
button_icon.notes = json[cls.FLAG_NOTES]
button_icon.active = json[cls.FLAG_ACTIVE]
button_icon.active = av.input_bool(json[cls.FLAG_ACTIVE], cls.FLAG_ACTIVE, _m)
button_icon.created_on = json.get(cls.FLAG_CREATED_ON, None)
# Helper_App.console_log(f'Button_Icon: {button_icon}')
return button_icon
def to_json(self):
@@ -94,7 +92,6 @@ class Button_Icon(SQLAlchemy_ABC, Base):
, self.FLAG_ACTIVE: self.active
, self.FLAG_CREATED_ON: self.created_on
}
# Helper_App.console_log(f'as_json: {as_json}')
return as_json
def __repr__(self):

View File

@@ -66,14 +66,12 @@ class Button_Shape(SQLAlchemy_ABC, Base):
_m = f'{cls.__qualname__}.from_json'
button_shape = cls()
if json is None: return button_shape
# Helper_App.console_log(f'{_m}\njson: {json}')
button_shape.id_button_shape = json.get(Button_Shape.ATTR_ID_BUTTON_SHAPE, -1)
button_shape.name = json[cls.FLAG_NAME]
button_shape.code = json.get(cls.FLAG_CODE, button_shape.name.upper().replace(" ", "_"))
button_shape.notes = json[cls.FLAG_NOTES]
button_shape.active = json[cls.FLAG_ACTIVE]
button_shape.active = av.input_bool(json[cls.FLAG_ACTIVE], cls.FLAG_ACTIVE, _m)
button_shape.created_on = json.get(cls.FLAG_CREATED_ON, None)
# Helper_App.console_log(f'Button_Shape: {button_shape}')
return button_shape
def to_json(self):
@@ -86,7 +84,6 @@ class Button_Shape(SQLAlchemy_ABC, Base):
, self.FLAG_ACTIVE: self.active
, self.FLAG_CREATED_ON: self.created_on
}
# Helper_App.console_log(f'as_json: {as_json}')
return as_json
def __repr__(self):

View File

@@ -64,13 +64,11 @@ class Colour(SQLAlchemy_ABC, Base):
_m = f'{cls.__qualname__}.from_json'
colour = cls()
if json is None: return colour
# Helper_App.console_log(f'{_m}\njson: {json}')
colour.id_colour = json.get(Colour.ATTR_ID_COLOUR, -1)
colour.name = json[cls.FLAG_NAME]
colour.code = json.get(cls.FLAG_CODE, colour.name.upper().replace(" ", "_"))
colour.active = json[cls.FLAG_ACTIVE]
colour.active = av.input_bool(json[cls.FLAG_ACTIVE], cls.FLAG_ACTIVE, _m)
colour.created_on = json.get(cls.FLAG_CREATED_ON, None)
# Helper_App.console_log(f'Colour: {colour}')
return colour
def to_json(self):
@@ -82,7 +80,6 @@ class Colour(SQLAlchemy_ABC, Base):
, self.FLAG_ACTIVE: self.active
, self.FLAG_CREATED_ON: self.created_on
}
# Helper_App.console_log(f'as_json: {as_json}')
return as_json
def __repr__(self):

View File

@@ -112,7 +112,7 @@ class Command(SQLAlchemy_ABC, Base):
command.hand_signal_default_description = json[cls.FLAG_HAND_SIGNAL_DEFAULT_DESCRIPTION]
command.can_have_button = json[cls.FLAG_CAN_HAVE_BUTTON]
command.notes = json[cls.FLAG_NOTES]
command.active = json[cls.FLAG_ACTIVE]
command.active = av.input_bool(json[cls.FLAG_ACTIVE], cls.FLAG_ACTIVE, _m)
command.created_on = json.get(cls.FLAG_CREATED_ON, None)
# Helper_App.console_log(f'Command: {command}')
return command

View File

@@ -79,17 +79,14 @@ class Command_Button_Link(SQLAlchemy_ABC, Base):
_m = 'Command_Button_Link.from_json'
command_button_link = cls()
if json is None: return command_button_link
# Helper_App.console_log(f'{_m}\njson: {json}')
command_button_link.id_link = json.get(Command_Button_Link.ATTR_ID_COMMAND_BUTTON_LINK, -1)
command_button_link.id_command = json[Command.FLAG_COMMAND]
command_button_link.id_button_shape = json[Button_Shape.FLAG_BUTTON_SHAPE]
command_button_link.id_button_colour = json[Colour.FLAG_COLOUR]
command_button_link.id_button_icon = json[Button_Icon.FLAG_BUTTON_ICON]
command_button_link.id_location = json[Location.FLAG_LOCATION]
command_button_link.active = json[cls.FLAG_ACTIVE]
command_button_link.active = av.input_bool(json[cls.FLAG_ACTIVE], cls.FLAG_ACTIVE, _m)
command_button_link.created_on = json.get(cls.FLAG_CREATED_ON, None)
# command_button_link.id_command_category = json[Command_Category.FLAG_COMMAND_CATEGORY]
# Helper_App.console_log(f'Dog Command Link: {command_button_link}')
return command_button_link
def to_json(self):
@@ -104,8 +101,6 @@ class Command_Button_Link(SQLAlchemy_ABC, Base):
, self.FLAG_ACTIVE: self.active
, self.FLAG_CREATED_ON: self.created_on
}
# , Command_Category.FLAG_COMMAND_CATEGORY: self.id_command_category
# Helper_App.console_log(f'as_json: {as_json}')
return as_json
def __repr__(self):
@@ -299,8 +294,6 @@ class Parameters_Command_Button_Link(Get_Many_Parameters_Base):
@classmethod
def from_form_filters_command_button_link(cls, form):
_m = f'{cls.__qualname__}.from_form_filters_command_button_link'
Helper_App.console_log(_m)
Helper_App.console_log(f'Filters: {form}')
av.val_instance(form, 'form', _m, Filters_Command_Button_Link)
has_filter_search_text = not (form.search.data == '' or form.search.data is None)
has_filter_command_category = not (form.id_command_category.data == '0' or form.id_command_category.data == '' or form.id_command_category.data is None)
@@ -310,16 +303,7 @@ class Parameters_Command_Button_Link(Get_Many_Parameters_Base):
has_filter_button_icon = not (form.id_button_icon.data == '0' or form.id_button_icon.data == '' or form.id_button_icon.data is None)
has_filter_location = not (form.id_location.data == '0' or form.id_location.data == '' or form.id_location.data is None)
active_only = av.input_bool(form.active_only.data, "active", _m)
Helper_App.console_log(f'''
has_filter_search_text: {has_filter_search_text}
has_filter_command_category: {has_filter_command_category}
has_filter_command: {has_filter_command}
has_filter_button_shape: {has_filter_button_shape}
has_filter_colour: {has_filter_colour}
has_filter_button_icon: {has_filter_button_icon}
has_filter_location: {has_filter_location}
active_only: {active_only}
''')
filters = cls.get_default()
filters.get_all_link = True
filters.get_inactive_link = not active_only

View File

@@ -85,7 +85,7 @@ class Command_Category(SQLAlchemy_ABC, Base):
command_category.id_command_category = json.get(cls.ATTR_ID_COMMAND_CATEGORY, -1)
command_category.name = json[cls.FLAG_NAME]
command_category.code = json.get(cls.FLAG_CODE, command_category.name.upper().replace(" ", "_"))
command_category.active = json[cls.FLAG_ACTIVE]
command_category.active = av.input_bool(json[cls.FLAG_ACTIVE], cls.FLAG_ACTIVE, _m)
# Helper_App.console_log(f'Command_Category: {command_category}')
return command_category

View File

@@ -71,12 +71,10 @@ class Command_Modality(SQLAlchemy_ABC, Base):
_m = 'Command_Modality.from_json'
command_modality = cls()
if json is None: return Command_Modality
# Helper_App.console_log(f'{_m}\njson: {json}')
command_modality.id_command_modality = json.get(cls.ATTR_ID_COMMAND_MODALITY, -1)
command_modality.name = json[cls.FLAG_NAME]
command_modality.code = json.get(cls.FLAG_CODE, command_modality.name.upper().replace(" ", "_"))
command_modality.active = json[cls.FLAG_ACTIVE]
# Helper_App.console_log(f'Command_Modality: {command_modality}')
command_modality.active = av.input_bool(json[cls.FLAG_ACTIVE], cls.FLAG_ACTIVE, _m)
return command_modality
@@ -88,7 +86,6 @@ class Command_Modality(SQLAlchemy_ABC, Base):
, self.FLAG_NAME: self.name
, self.FLAG_ACTIVE: self.active
}
# Helper_App.console_log(f'as_json: {as_json}')
return as_json
def __repr__(self):

View File

@@ -111,7 +111,7 @@ class Distraction(SQLAlchemy_ABC, Base):
distraction.quantity = json[cls.FLAG_QUANTITY]
distraction.proximity_metres = json[cls.FLAG_PROXIMITY_METRES]
distraction.notes = json[cls.FLAG_NOTES]
distraction.active = json[cls.FLAG_ACTIVE]
distraction.active = av.input_bool(json[cls.FLAG_ACTIVE], cls.FLAG_ACTIVE, _m)
distraction.created_on = json.get(cls.FLAG_CREATED_ON, None)
# distraction.id_command_category = json[Command_Category.FLAG_COMMAND_CATEGORY]
# Helper_App.console_log(f'Dog Command Link: {distraction}')

View File

@@ -102,7 +102,7 @@ class Distraction_Intensity_Level(SQLAlchemy_ABC, Base):
distraction_intensity_level.id_intensity_level = json.get(cls.ATTR_ID_DISTRACTION_INTENSITY_LEVEL, -1)
distraction_intensity_level.name = json[cls.FLAG_NAME]
distraction_intensity_level.code = json.get(cls.FLAG_CODE, distraction_intensity_level.name.upper().replace(" ", "_"))
distraction_intensity_level.active = json[cls.FLAG_ACTIVE]
distraction_intensity_level.active = av.input_bool(json[cls.FLAG_ACTIVE], cls.FLAG_ACTIVE, _m)
# Helper_App.console_log(f'Distraction_Intensity_Level: {distraction_intensity_level}')
return distraction_intensity_level

View File

@@ -66,7 +66,7 @@ class Distraction_Type(SQLAlchemy_ABC, Base):
distraction_type.id_distraction_type = json.get(cls.ATTR_ID_DISTRACTION_TYPE, -1)
distraction_type.name = json[cls.FLAG_NAME]
distraction_type.code = json.get(cls.FLAG_CODE, distraction_type.name.upper().replace(" ", "_"))
distraction_type.active = json[cls.FLAG_ACTIVE]
distraction_type.active = av.input_bool(json[cls.FLAG_ACTIVE], cls.FLAG_ACTIVE, _m)
# Helper_App.console_log(f'Distraction_Type: {distraction_type}')
return distraction_type

View File

@@ -79,7 +79,7 @@ class Dog(SQLAlchemy_ABC, Base):
dog.appearance = json[cls.FLAG_APPEARANCE]
dog.mass_kg = json[cls.FLAG_MASS_KG]
dog.notes = json[cls.FLAG_NOTES]
dog.active = json[cls.FLAG_ACTIVE]
dog.active = av.input_bool(json[cls.FLAG_ACTIVE], cls.FLAG_ACTIVE, _m)
# Helper_App.console_log(f'Dog: {dog}')
return dog

View File

@@ -75,7 +75,7 @@ class Dog_Command_Link(SQLAlchemy_ABC, Base):
dog_command_link.id_command = json[Command.ATTR_ID_COMMAND]
dog_command_link.hand_signal_description = json[cls.FLAG_HAND_SIGNAL_DESCRIPTION]
dog_command_link.notes = json[cls.FLAG_NOTES]
dog_command_link.active = json[cls.FLAG_ACTIVE]
dog_command_link.active = av.input_bool(json[cls.FLAG_ACTIVE], cls.FLAG_ACTIVE, _m)
dog_command_link.created_on = json.get(cls.FLAG_CREATED_ON, None)
# dog_command_link.id_command_category = json[Command_Category.FLAG_COMMAND_CATEGORY]
# Helper_App.console_log(f'Dog Command Link: {dog_command_link}')
@@ -221,21 +221,13 @@ class Parameters_Dog_Command_Link(Get_Many_Parameters_Base):
@classmethod
def from_form_filters_dog_command_link(cls, form):
_m = f'{cls.__qualname__}.from_form_filters_dog_command_link'
Helper_App.console_log(_m)
Helper_App.console_log(f'Filters: {form}')
av.val_instance(form, 'form', _m, Filters_Dog_Command_Link)
has_filter_search_text = not (form.search.data == '' or form.search.data is None)
has_filter_dog = not (form.id_dog.data == '0' or form.id_dog.data == '' or form.id_dog.data is None)
has_filter_command_category = not (form.id_command_category.data == '0' or form.id_command_category.data == '' or form.id_command_category.data is None)
has_filter_command = not (form.id_command.data == '0' or form.id_command.data == '' or form.id_command.data is None)
active_only = av.input_bool(form.active_only.data, "active", _m)
Helper_App.console_log(f'''
has_filter_search_text: {has_filter_search_text}
has_filter_dog: {has_filter_dog}
has_filter_command_category: {has_filter_command_category}
has_filter_command: {has_filter_command}
active_only: {active_only}
''')
filters = cls.get_default()
filters.get_all_link = True
filters.get_inactive_link = not active_only

View File

@@ -85,7 +85,7 @@ class Image(SQLAlchemy_ABC, Base):
image.id_dog = json[Dog.FLAG_DOG]
image.path = json[cls.FLAG_PATH]
image.name = json[cls.FLAG_NAME]
image.active = json[cls.FLAG_ACTIVE]
image.active = av.input_bool(json[cls.FLAG_ACTIVE], cls.FLAG_ACTIVE, _m)
image.created_on = json.get(cls.FLAG_CREATED_ON, None)
# Helper_App.console_log(f'Image: {image}')
return image

View File

@@ -68,7 +68,7 @@ class Lighting_Level(SQLAlchemy_ABC, Base):
lighting_level.id_lighting_level = json.get(Lighting_Level.ATTR_ID_LIGHTING_LEVEL, -1)
lighting_level.name = json[cls.FLAG_NAME]
lighting_level.code = json.get(cls.FLAG_CODE, lighting_level.name.upper().replace(" ", "_"))
lighting_level.active = json[cls.FLAG_ACTIVE]
lighting_level.active = av.input_bool(json[cls.FLAG_ACTIVE], cls.FLAG_ACTIVE, _m)
lighting_level.created_on = json.get(cls.FLAG_CREATED_ON, None)
# Helper_App.console_log(f'Lighting_Level: {lighting_level}')
return lighting_level

View File

@@ -85,7 +85,7 @@ class Location(SQLAlchemy_ABC, Base):
location.id_location_parent = json[Location.FLAG_LOCATION_PARENT]
location.name = json[cls.FLAG_NAME]
location.code = json.get(cls.FLAG_CODE, location.name.upper().replace(" ", "_"))
location.active = json[cls.FLAG_ACTIVE]
location.active = av.input_bool(json[cls.FLAG_ACTIVE], cls.FLAG_ACTIVE, _m)
location.created_on = json.get(cls.FLAG_CREATED_ON, None)
# Helper_App.console_log(f'Location: {location}')
return location

View File

@@ -61,12 +61,10 @@ class Obedience_Level(SQLAlchemy_ABC, Base):
_m = f'{cls.__qualname__}.from_json'
obedience_level = cls()
if json is None: return Obedience_Level
Helper_App.console_log(f'{_m}\njson: {json}')
obedience_level.id_obedience_level = json.get(Obedience_Level.ATTR_ID_OBEDIENCE_LEVEL, -1)
obedience_level.code = json[cls.FLAG_CODE]
obedience_level.name = json[cls.FLAG_NAME]
obedience_level.active = json[cls.FLAG_ACTIVE]
Helper_App.console_log(f'Obedience_Level: {obedience_level}')
obedience_level.active = av.input_bool(json[cls.FLAG_ACTIVE], cls.FLAG_ACTIVE, _m)
return obedience_level
@@ -78,7 +76,6 @@ class Obedience_Level(SQLAlchemy_ABC, Base):
, self.FLAG_NAME: self.name
, self.FLAG_ACTIVE: self.active
}
Helper_App.console_log(f'as_json: {as_json}')
return as_json
def __repr__(self):

View File

@@ -20,11 +20,11 @@ from typing import ClassVar
class Response_Quality_Metric(SQLAlchemy_ABC, Base):
ATTR_ID_ASSESSMENT_RESPONSE_QUALITY_METRIC: ClassVar[str] = 'id_response_quality_metric'
ATTR_ID_RESPONSE_QUALITY_METRIC: ClassVar[str] = 'id_response_quality_metric'
FLAG_RESPONSE_QUALITY_METRIC: ClassVar[str] = 'response-quality-metric'
FLAG_VALUE_MIN: ClassVar[str] = 'value-min'
FLAG_VALUE_MAX: ClassVar[str] = 'value-max'
NAME_ATTR_OPTION_VALUE: ClassVar[str] = ATTR_ID_ASSESSMENT_RESPONSE_QUALITY_METRIC
NAME_ATTR_OPTION_VALUE: ClassVar[str] = ATTR_ID_RESPONSE_QUALITY_METRIC
NAME_ATTR_OPTION_TEXT: ClassVar[str] = Base.FLAG_NAME
__tablename__ = 'DOG_Response_Quality_Metric'
@@ -47,25 +47,26 @@ class Response_Quality_Metric(SQLAlchemy_ABC, Base):
@classmethod
def from_db_response_quality_metric(cls, query_row):
_m = f'{cls.__qualname__}.from_db_response_quality_metric'
response = cls()
response.id_response_quality_metric = query_row[0]
response.id_unit_measurement = query_row[1]
response.code = query_row[5]
response.name = query_row[6]
response.value_min = query_row[7]
response.value_max = query_row[8]
response.active = av.input_bool(query_row[9], 'active', _m)
response.unit_measurement = Unit_Measurement.from_db_response_quality_metric(query_row)
return response
metric = cls()
metric.id_response_quality_metric = query_row[0]
metric.id_unit_measurement = query_row[1]
metric.code = query_row[5]
metric.name = query_row[6]
metric.value_min = query_row[7]
metric.value_max = query_row[8]
metric.active = av.input_bool(query_row[9], 'active', _m)
metric.unit_measurement = Unit_Measurement.from_db_response_quality_metric(query_row)
return metric
@classmethod
def from_db_assessment_response(cls, query_row):
_m = f'{cls.__qualname__}.from_db_assessment_response'
level = cls()
level.id_response_quality_metric = query_row[2]
level.name = query_row[3]
level.active = True
return level
metric = cls()
metric.id_response_quality_metric = query_row[2]
metric.name = query_row[3]
metric.active = True
metric.unit_measurement = Unit_Measurement.from_db_assessment_response(query_row)
return metric
@classmethod
def from_json(cls, json):
@@ -73,12 +74,12 @@ class Response_Quality_Metric(SQLAlchemy_ABC, Base):
response_quality_metric = cls()
if json is None: return Response_Quality_Metric
# Helper_App.console_log(f'{_m}\njson: {json}')
response_quality_metric.id_response_quality_metric = json.get(cls.ATTR_ID_ASSESSMENT_RESPONSE_QUALITY_METRIC, -1)
response_quality_metric.id_response_quality_metric = json.get(cls.ATTR_ID_RESPONSE_QUALITY_METRIC, -1)
response_quality_metric.name = json[cls.FLAG_NAME]
response_quality_metric.code = json.get(cls.FLAG_CODE, response_quality_metric.name.upper().replace(" ", "_"))
response_quality_metric.value_min = json[cls.FLAG_VALUE_MIN]
response_quality_metric.value_max = json[cls.FLAG_VALUE_MAX]
response_quality_metric.active = json[cls.FLAG_ACTIVE]
response_quality_metric.active = av.input_bool(json[cls.FLAG_ACTIVE], cls.FLAG_ACTIVE, _m)
# Helper_App.console_log(f'Response_Quality_Metric: {response_quality_metric}')
return response_quality_metric
@@ -86,7 +87,7 @@ class Response_Quality_Metric(SQLAlchemy_ABC, Base):
def to_json(self):
as_json = {
**self.get_shared_json_attributes(self)
, self.ATTR_ID_ASSESSMENT_RESPONSE_QUALITY_METRIC: self.id_response_quality_metric
, self.ATTR_ID_RESPONSE_QUALITY_METRIC: self.id_response_quality_metric
, self.FLAG_CODE: self.code
, self.FLAG_NAME: f'{self.name} ({self.unit_measurement.symbol})'
, self.FLAG_VALUE_MIN: self.value_min

View File

@@ -53,49 +53,57 @@ class Unit_Measurement(SQLAlchemy_ABC, Base):
@classmethod
def from_db_unit_measurement(cls, query_row):
_m = f'{cls.__qualname__}.from_db_unit_measurement'
level = cls()
level.id_unit_measurement = query_row[0]
level.name_singular = query_row[1]
level.name_plural = query_row[2]
level.symbol = query_row[3]
level.symbol_is_suffix_not_prefix = query_row[4]
level.is_base_unit = query_row[5]
level.is_unit_of_distance = query_row[6]
level.is_unit_of_mass = query_row[7]
level.is_unit_of_time = query_row[8]
level.is_unit_of_volume = query_row[9]
level.active = True
return level
unit = cls()
unit.id_unit_measurement = query_row[0]
unit.name_singular = query_row[1]
unit.name_plural = query_row[2]
unit.symbol = query_row[3]
unit.symbol_is_suffix_not_prefix = query_row[4]
unit.is_base_unit = av.input_bool(query_row[5], 'is_base_unit', _m)
unit.is_unit_of_distance = av.input_bool(query_row[6], 'is_base_unit', _m)
unit.is_unit_of_mass = av.input_bool(query_row[7], 'is_base_unit', _m)
unit.is_unit_of_time = av.input_bool(query_row[8], 'is_base_unit', _m)
unit.is_unit_of_volume = av.input_bool(query_row[9], 'is_base_unit', _m)
unit.active = True
return unit
@classmethod
def from_db_response_quality_metric(cls, query_row):
_m = f'{cls.__qualname__}.from_db_response_quality_metric'
level = cls()
level.id_unit_measurement = query_row[1]
level.name_singular = query_row[2]
level.name_plural = query_row[3]
level.symbol = query_row[4]
level.active = True
return level
unit = cls()
unit.id_unit_measurement = query_row[1]
unit.name_singular = query_row[2]
unit.name_plural = query_row[3]
unit.symbol = query_row[4]
unit.active = True
return unit
@classmethod
def from_db_assessment_response(cls, query_row):
_m = f'{cls.__qualname__}.from_db_assessment_response'
unit = cls()
unit.id_unit_measurement = None
unit.name_singular = ''
unit.name_plural = ''
unit.symbol = ''
return unit
@classmethod
def from_json(cls, json):
_m = f'{cls.__qualname__}.from_json'
unit_measurement = cls()
if json is None: return Unit_Measurement
Helper_App.console_log(f'{_m}\njson: {json}')
unit_measurement.id_unit_measurement = json.get(Unit_Measurement.ATTR_ID_UNIT_MEASUREMENT, -1)
unit_measurement.name_singular = json[cls.FLAG_NAME_SINGULAR]
unit_measurement.name_plural = json[cls.FLAG_NAME_PLURAL]
unit_measurement.symbol = json[cls.FLAG_SYMBOL]
unit_measurement.symbol_is_suffix_not_prefix = json[cls.FLAG_SYMBOL_IS_SUFFIX_NOT_PREFIX]
unit_measurement.is_base_unit = json[cls.FLAG_IS_BASE_UNIT]
unit_measurement.is_unit_of_distance = json[cls.FLAG_IS_UNIT_OF_DISTANCE]
unit_measurement.is_unit_of_mass = json[cls.FLAG_IS_UNIT_OF_MASS]
unit_measurement.is_unit_of_time = json[cls.FLAG_IS_UNIT_OF_TIME]
unit_measurement.is_unit_of_volume = json[cls.FLAG_IS_UNIT_OF_VOLUME]
unit_measurement.active = json[cls.FLAG_ACTIVE]
Helper_App.console_log(f'Unit_Measurement: {unit_measurement}')
unit_measurement.symbol_is_suffix_not_prefix = av.input_bool(json[cls.FLAG_SYMBOL_IS_SUFFIX_NOT_PREFIX], cls.FLAG_ACTIVE, _m)
unit_measurement.is_base_unit = av.input_bool(json[cls.FLAG_IS_BASE_UNIT], cls.FLAG_ACTIVE, _m)
unit_measurement.is_unit_of_distance = av.input_bool(json[cls.FLAG_IS_UNIT_OF_DISTANCE], cls.FLAG_ACTIVE, _m)
unit_measurement.is_unit_of_mass = av.input_bool(json[cls.FLAG_IS_UNIT_OF_MASS], cls.FLAG_ACTIVE, _m)
unit_measurement.is_unit_of_time = av.input_bool(json[cls.FLAG_IS_UNIT_OF_TIME], cls.FLAG_ACTIVE, _m)
unit_measurement.is_unit_of_volume = av.input_bool(json[cls.FLAG_IS_UNIT_OF_VOLUME], cls.FLAG_ACTIVE, _m)
unit_measurement.active = av.input_bool(json[cls.FLAG_ACTIVE], cls.FLAG_ACTIVE, _m)
return unit_measurement
@@ -114,7 +122,6 @@ class Unit_Measurement(SQLAlchemy_ABC, Base):
, self.FLAG_IS_UNIT_OF_VOLUME: self.is_unit_of_volume
, self.FLAG_ACTIVE: self.active
}
Helper_App.console_log(f'as_json: {as_json}')
return as_json
def __repr__(self):

View File

@@ -72,7 +72,6 @@ class User(SQLAlchemy_ABC, Base):
_m = 'User.from_json'
user = User()
if json is None: return user
Helper_App.console_log(f'{_m}\njson: {json}')
user.id_user = json['id_user']
user.id_user_auth0 = json['id_user_auth0']
user.firstname = json['firstname']
@@ -83,7 +82,6 @@ class User(SQLAlchemy_ABC, Base):
user.can_admin_dog = user.is_super_user
Helper_App.console_log(f'user: {user}')
return user
@staticmethod
@@ -91,7 +89,6 @@ class User(SQLAlchemy_ABC, Base):
_m = 'User.from_json_auth0'
user = User()
if json is None: return user
Helper_App.console_log(f'{_m}\njson: {json}')
user_info = json['userinfo']
user.id_user = None
user.id_user_auth0 = user_info['sub']
@@ -103,7 +100,6 @@ class User(SQLAlchemy_ABC, Base):
user.can_admin_dog = user.is_super_user
Helper_App.console_log(f'user: {user}')
return user
def to_json(self):
@@ -118,7 +114,6 @@ class User(SQLAlchemy_ABC, Base):
, 'is_email_verified': self.is_email_verified
, 'is_super_user': self.is_super_user
}
Helper_App.console_log(f'as_json: {as_json}')
return as_json
def __repr__(self):

View File

@@ -68,7 +68,7 @@ class Weather(SQLAlchemy_ABC, Base):
weather.id_weather = json.get(Weather.ATTR_ID_WEATHER, -1)
weather.name = json[cls.FLAG_NAME]
weather.code = json.get(cls.FLAG_CODE, weather.name.upper().replace(" ", "_"))
weather.active = json[cls.FLAG_ACTIVE]
weather.active = av.input_bool(json[cls.FLAG_ACTIVE], cls.FLAG_ACTIVE, _m)
weather.created_on = json.get(cls.FLAG_CREATED_ON, None)
# Helper_App.console_log(f'Weather: {weather}')
return weather

View File

@@ -56,13 +56,11 @@ class File_Type(SQLAlchemy_ABC, Base):
_m = 'File_Type.from_json'
file_type = cls()
if json is None: return File_Type
# Helper_App.console_log(f'{_m}\njson: {json}')
file_type.id_file_type = json.get(cls.ATTR_ID_FILE_TYPE, -1)
file_type.name = json[cls.FLAG_NAME]
file_type.code = json.get(cls.FLAG_CODE, file_type.name.upper().replace(" ", "_"))
file_type.is_image = json[cls.FLAG_IS_IMAGE]
file_type.active = json[cls.FLAG_ACTIVE]
# Helper_App.console_log(f'File_Type: {file_type}')
return file_type
@@ -75,7 +73,6 @@ class File_Type(SQLAlchemy_ABC, Base):
, self.FLAG_IS_IMAGE: self.is_image
, self.FLAG_ACTIVE: self.active
}
# Helper_App.console_log(f'as_json: {as_json}')
return as_json
def __repr__(self):

View File

@@ -63,16 +63,14 @@ class Contact_Form(SQLAlchemy_ABC, Base):
_m = 'Contact_Form.from_json'
contact_form = cls()
if json is None: return Contact_Form
Helper_App.console_log(f'{_m}\njson: {json}')
contact_form.id_contact_form = -1
contact_form.email = json[cls.FLAG_EMAIL]
contact_form.name_contact = json[cls.FLAG_NAME_CONTACT]
contact_form.name_company = json[cls.FLAG_NAME_COMPANY]
contact_form.message = json[cls.FLAG_MESSAGE]
contact_form.receive_marketing_communications = json[cls.FLAG_RECEIVE_MARKETING_COMMUNICATIONS]
contact_form.active = json[cls.FLAG_ACTIVE]
contact_form.active = av.input_bool(json[cls.FLAG_ACTIVE], cls.FLAG_ACTIVE, _m)
contact_form.created_on = json.get(cls.FLAG_CREATED_ON, None)
Helper_App.console_log(f'Contact_Form: {contact_form}')
return contact_form
@@ -87,7 +85,6 @@ class Contact_Form(SQLAlchemy_ABC, Base):
, self.FLAG_ACTIVE: self.active
, self.FLAG_CREATED_ON: self.created_on
}
Helper_App.console_log(f'as_json: {as_json}')
return as_json
def __repr__(self):

View File

@@ -15,6 +15,9 @@ Dog Assessments Page Controller.
from business_objects.api import API
from business_objects.dog.command import Command
from business_objects.dog.assessment import Assessment
from business_objects.dog.assessment_command_modality_link import Assessment_Command_Modality_Link
from business_objects.dog.assessment_response import Assessment_Response
from business_objects.dog.distraction import Distraction
from datastores.datastore_dog import DataStore_Dog
from forms.dog.assessment import Filters_Assessment
from helpers.helper_app import Helper_App
@@ -56,18 +59,31 @@ def assessments():
Helper_App.console_log(f'form_filters={form_filters}')
return render_template('pages/dog/_assessments.html', model = model)
@routes_dog_assessment.route(Model_View_Dog_Assessment.HASH_SAVE_DOG_ASSESSMENT, methods=['POST'])
@routes_dog_assessment.route(Model_View_Dog_Assessment.HASH_SAVE_DOG_ASSESSMENT_DISTRACTION_AND_RESPONSE, methods=['POST'])
def save_assessment():
Helper_App.console_log('save_assessment')
data = Helper_App.get_request_data(request)
try:
token_received = data.get(Model_View_Dog_Assessment.FLAG_CSRF_TOKEN)
token_expected = session.get(Model_View_Dog_Assessment.FLAG_CSRF_TOKEN) # 'csrf_token'
if (not token_received) or not hmac.compare_digest(token_received, token_expected):
Helper_App.console_log(f'token_received: {token_received}\ntoken_expected: {token_expected}')
Helper_App.console_log(f'session: {session}\nkey: {Model_View_Dog_Assessment.FLAG_CSRF_TOKEN}')
return jsonify({
Model_View_Dog_Assessment.FLAG_STATUS: Model_View_Dog_Assessment.FLAG_FAILURE,
Model_View_Dog_Assessment.FLAG_MESSAGE: f'Invalid token received.'
})
form_filters = Filters_Assessment.from_json(data[Model_View_Dog_Assessment.FLAG_FORM_FILTERS])
"""
if not form_filters.validate_on_submit():
return jsonify({
Model_View_Dog_Assessment.FLAG_STATUS: Model_View_Dog_Assessment.FLAG_FAILURE,
Model_View_Dog_Assessment.FLAG_MESSAGE: f'Filters form invalid.\n{form_filters.errors}'
})
model_return = Model_View_Dog_Assessment(form_filters_old=form_filters)
if not model_return.is_user_logged_in:
"""
model_permissions = Model_View_Dog_Assessment(form_filters_old=form_filters)
Helper_App.console_log('made model')
if not model_permissions.is_user_logged_in:
raise Exception('User not logged in')
assessments = data[Model_View_Dog_Assessment.FLAG_ASSESSMENT]
@@ -77,19 +93,47 @@ def save_assessment():
Model_View_Dog_Assessment.FLAG_MESSAGE: f'No assessments.'
})
objs_assessment = []
objs_distraction = []
objs_assessment_command_modality_link = []
objs_assessment_responses = []
for assessment in assessments:
objs_assessment.append(Assessment.from_json(assessment))
objs_distraction.extend([Distraction.from_json(link_json) for link_json in assessment.get(Distraction.FLAG_DISTRACTION, [])])
for link_json in assessment.get(Assessment_Command_Modality_Link.FLAG_ASSESSMENT_COMMAND_MODALITY_LINK, []):
objs_assessment_command_modality_link.append(Assessment_Command_Modality_Link.from_json(link_json))
objs_assessment_responses.extend([Assessment_Response.from_json(response_json) for response_json in link_json.get(Assessment_Response.FLAG_ASSESSMENT_RESPONSE, [])])
"""
errors = []
Helper_App.console_log(f'objs_assessment={objs_assessment}')
errors = DataStore_Dog.save_assessments(data.get('comment', 'No comment'), objs_assessment)
if len(objs_assessment) > 0:
errors.extend(DataStore_Dog.save_assessments(data.get('comment', 'No comment'), objs_assessment))
Helper_App.console_log(f'objs_distraction={objs_distraction}')
if len(objs_distraction) > 0:
errors.extend(DataStore_Dog.save_distractions(data.get('comment', 'No comment'), objs_distraction))
Helper_App.console_log(f'objs_assessment_command_modality_link={objs_assessment_command_modality_link}')
if len(objs_assessment_command_modality_link) > 0:
errors.extend(DataStore_Dog.save_assessment_command_modality_links(data.get('comment', 'No comment'), objs_assessment_command_modality_link))
Helper_App.console_log(f'objs_assessment_responses={objs_assessment_responses}')
if len(objs_assessment_responses) > 0:
errors.extend(DataStore_Dog.save_assessment_responses(data.get('comment', 'No comment'), objs_assessment_responses))
"""
errors = DataStore_Dog.save_assessments_distactions_and_responses(
comment = data.get('comment', 'No comment')
, assessments = objs_assessment
, distractions = objs_distraction
, assessment_command_modality_links = objs_assessment_command_modality_link
, assessment_responses = objs_assessment_responses
)
# model_return = Model_View_Dog_Assessment(form_filters_old=form_filters)
if (len(errors) > 0):
return jsonify({
Model_View_Dog_Assessment.FLAG_STATUS: Model_View_Dog_Assessment.FLAG_FAILURE,
Model_View_Dog_Assessment.FLAG_MESSAGE: f'Error saving assessments.\n{model_return.convert_list_objects_to_json(errors)}'
Model_View_Dog_Assessment.FLAG_MESSAGE: f'Error saving assessments.\n{model_permissions.convert_list_objects_to_json(errors)}'
})
return jsonify({
Model_View_Dog_Assessment.FLAG_STATUS: Model_View_Dog_Assessment.FLAG_SUCCESS,
Model_View_Dog_Assessment.FLAG_DATA: Model_View_Dog_Assessment.convert_list_objects_to_json(model_return.assessments)
Model_View_Dog_Assessment.FLAG_DATA: None # Model_View_Dog_Assessment.convert_list_objects_to_json(model_permissions.assessments)
})
except Exception as e:
return jsonify({
@@ -107,12 +151,17 @@ def assessment():
Helper_App.console_log(f'Error: {e}')
form_filters = Filters_Assessment()
Helper_App.console_log(f'form_filters={form_filters}')
id_assessment = request.args.get(Model_View_Dog_Assessment.ATTR_ID_ASSESSMENT, None)
temp_id_assessment = request.args.get(Model_View_Dog_Assessment.ATTR_ID_ASSESSMENT, -1)
id_assessment = None if (temp_id_assessment is None or temp_id_assessment == '') else int(temp_id_assessment)
model = Model_View_Dog_Assessment(form_filters_old = form_filters, id_assessment = id_assessment, hash_page_current = Model_View_Dog_Assessment.HASH_PAGE_DOG_ASSESSMENT)
model._title = 'Assessment'
if model.assessments is None or len(model.assessments) == 0:
return assessments()
if id_assessment is not None and id_assessment > 0:
return assessments()
else:
model.assessments = [Assessment()]
if not model.is_user_logged_in:
return redirect(url_for('routes_core_home.home'))
session[Model_View_Dog_Assessment.FLAG_CSRF_TOKEN] = model.form_filters.csrf_token.current_token #.hidden_tag()
Helper_App.console_log(f'form_filters={form_filters}')
return render_template('pages/dog/_assessment.html', model = model)

View File

@@ -20,7 +20,7 @@ from models.model_view_accessibility_statement import Model_View_Accessibility_S
from models.model_view_retention_schedule import Model_View_Retention_Schedule
import lib.argument_validation as av
# external
from flask import render_template, Blueprint
from flask import render_template, Blueprint, send_from_directory
routes_legal = Blueprint('routes_legal', __name__)
@@ -67,4 +67,6 @@ def privacy_policy():
except Exception as e:
return str(e)
return html_body
@routes_legal.route('/robots.txt', methods=['GET'])
def robots_txt():
return send_from_directory('static', 'docs/robots.txt')

View File

@@ -681,6 +681,54 @@ class DataStore_Dog(DataStore_Base):
cls.db_cursor_clear(cursor)
return assessments, errors
@classmethod
def save_assessments(cls, comment, assessments):
_m = f'{cls}.save_assessments'
av.val_str(comment, 'comment', _m)
guid = Helper_DB_MySQL.create_guid_str()
now = datetime.now()
user = cls.get_user_session()
Helper_App.console_log(f'saving assessments: {assessments}')
rows = []
for link in assessments:
row = Assessment_Temp.from_assessment(link)
row.guid = guid
rows.append(row)
Helper_App.console_log(f'rows: {rows}')
cls.upload_bulk(Assessment_Temp.__tablename__, rows, 1000)
Helper_App.console_log('assessments uploaded')
argument_dict_list = {
'a_comment': comment,
'a_guid': guid,
'a_id_user': user.id_user,
'a_debug': 0
}
result = cls.db_procedure_execute('p_dog_save_assessment', argument_dict_list)
Helper_App.console_log('Assessments saved')
# Errors
cursor = result.cursor
cursor.nextset()
result_set_e = cursor.fetchall()
Helper_App.console_log(f"Raw errors: {result_set_e}")
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
@@ -872,6 +920,54 @@ class DataStore_Dog(DataStore_Base):
cls.db_cursor_clear(cursor)
return distractions, errors
@classmethod
def save_distractions(cls, comment, distractions):
_m = f'{cls}.save_distractions'
av.val_str(comment, 'comment', _m)
guid = Helper_DB_MySQL.create_guid_str()
now = datetime.now()
user = cls.get_user_session()
Helper_App.console_log(f'saving distractions: {distractions}')
rows = []
for distraction in distractions:
row = Distraction_Temp.from_distraction(distraction)
row.guid = guid
rows.append(row)
Helper_App.console_log(f'rows: {rows}')
cls.upload_bulk(Distraction_Temp.__tablename__, rows, 1000)
Helper_App.console_log('distractions uploaded')
argument_dict_list = {
'a_comment': comment,
'a_guid': guid,
'a_id_user': user.id_user,
'a_debug': 0
}
result = cls.db_procedure_execute('p_dog_save_distraction', argument_dict_list)
Helper_App.console_log('Distractions saved')
# Errors
cursor = result.cursor
cursor.nextset()
result_set_e = cursor.fetchall()
Helper_App.console_log(f"Raw errors: {result_set_e}")
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
@@ -986,6 +1082,54 @@ class DataStore_Dog(DataStore_Base):
cls.db_cursor_clear(cursor)
return assessment_command_modality_links, errors
@classmethod
def save_assessment_command_modality_links(cls, comment, assessment_command_modality_links):
_m = f'{cls}.save_assessment_command_modality_links'
av.val_str(comment, 'comment', _m)
guid = Helper_DB_MySQL.create_guid_str()
now = datetime.now()
user = cls.get_user_session()
Helper_App.console_log(f'saving assessment_command_modality_links: {assessment_command_modality_links}')
rows = []
for link in assessment_command_modality_links:
row = Assessment_Command_Modality_Link_Temp.from_assessment_command_modality_link(link)
row.guid = guid
rows.append(row)
Helper_App.console_log(f'rows: {rows}')
cls.upload_bulk(Assessment_Command_Modality_Link_Temp.__tablename__, rows, 1000)
Helper_App.console_log('assessment_command_modality_links uploaded')
argument_dict_list = {
'a_comment': comment,
'a_guid': guid,
'a_id_user': user.id_user,
'a_debug': 0
}
result = cls.db_procedure_execute('p_dog_save_assessment_command_modality_link', argument_dict_list)
Helper_App.console_log('Assessment_Command_Modality_Links saved')
# Errors
cursor = result.cursor
cursor.nextset()
result_set_e = cursor.fetchall()
Helper_App.console_log(f"Raw errors: {result_set_e}")
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
@@ -1100,3 +1244,124 @@ class DataStore_Dog(DataStore_Base):
cls.db_cursor_clear(cursor)
return assessment_responses, errors
@classmethod
def save_assessment_responses(cls, comment, assessment_responses):
_m = f'{cls}.save_assessment_responses'
av.val_str(comment, 'comment', _m)
guid = Helper_DB_MySQL.create_guid_str()
now = datetime.now()
user = cls.get_user_session()
Helper_App.console_log(f'saving assessment_responses: {assessment_responses}')
rows = []
for response in assessment_responses:
row = Assessment_Response_Temp.from_assessment_response(response)
row.guid = guid
rows.append(row)
Helper_App.console_log(f'rows: {rows}')
cls.upload_bulk(Assessment_Response_Temp.__tablename__, rows, 1000)
Helper_App.console_log('assessment_responses uploaded')
argument_dict_list = {
'a_comment': comment,
'a_guid': guid,
'a_id_user': user.id_user,
'a_debug': 0
}
result = cls.db_procedure_execute('p_dog_save_assessment_response', argument_dict_list)
Helper_App.console_log('Assessment_Responses saved')
# Errors
cursor = result.cursor
cursor.nextset()
result_set_e = cursor.fetchall()
Helper_App.console_log(f"Raw errors: {result_set_e}")
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 save_assessments_distactions_and_responses(cls, comment, assessments, distractions, assessment_command_modality_links, assessment_responses):
_m = f'{cls}.save_assessments_distactions_and_responses'
av.val_str(comment, 'comment', _m)
guid = Helper_DB_MySQL.create_guid_str()
now = datetime.now()
user = cls.get_user_session()
Helper_App.console_log(f'saving assessments, distractions, and responses:\nAssessments: {assessments}\nDistractions: {distractions}\nAssessment Command Modality Links: {assessment_command_modality_links}\nResponses: {assessment_responses}')
rows_assessment = []
for assessment in assessments:
row = Assessment_Temp.from_assessment(assessment)
row.guid = guid
rows_assessment.append(row)
Helper_App.console_log(f'rows_assessment: {rows_assessment}')
cls.upload_bulk(Assessment_Temp.__tablename__, rows_assessment, 1000)
Helper_App.console_log('assessments uploaded')
rows_distraction = []
for distraction in distractions:
row = Distraction_Temp.from_distraction(distraction)
row.guid = guid
rows_distraction.append(row)
Helper_App.console_log(f'rows_distraction: {rows_distraction}')
cls.upload_bulk(Distraction_Temp.__tablename__, rows_distraction, 1000)
Helper_App.console_log('distractions uploaded')
rows_link = []
for link in assessment_command_modality_links:
row = Assessment_Command_Modality_Link_Temp.from_assessment_command_modality_link(link)
row.guid = guid
rows_link.append(row)
Helper_App.console_log(f'rows_link: {rows_link}')
cls.upload_bulk(Assessment_Command_Modality_Link_Temp.__tablename__, rows_link, 1000)
Helper_App.console_log('links uploaded')
rows_response = []
for response in assessment_responses:
row = Assessment_Response_Temp.from_assessment_response(response)
row.guid = guid
rows_response.append(row)
Helper_App.console_log(f'rows_response: {rows_response}')
cls.upload_bulk(Assessment_Response_Temp.__tablename__, rows_response, 1000)
Helper_App.console_log('assessment responses uploaded')
argument_dict_list = {
'a_comment': comment,
'a_guid': guid,
'a_id_user': user.id_user,
'a_debug': 0
}
result = cls.db_procedure_execute('p_dog_save_assessment_distraction_and_response', argument_dict_list)
Helper_App.console_log('All saved')
# Errors
cursor = result.cursor
cursor.nextset()
result_set_e = cursor.fetchall()
Helper_App.console_log(f"Raw errors: {result_set_e}")
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

View File

@@ -41,7 +41,7 @@ class Form_Base(FlaskForm, metaclass=Form_Base_Meta):
@staticmethod
def get_select_option_default_value():
return ''
return '0'
def __repr__(self):
fields = ', '.join(

View File

@@ -76,6 +76,8 @@ class Model_View_Base(BaseModel, ABC):
ATTR_ID_IMAGE: ClassVar[str] = Image.ATTR_ID_IMAGE
ATTR_ID_LIGHTING_LEVEL: ClassVar[str] = Lighting_Level.ATTR_ID_LIGHTING_LEVEL
ATTR_ID_LOCATION: ClassVar[str] = Location.ATTR_ID_LOCATION
ATTR_ID_OBEDIENCE_LEVEL: ClassVar[str] = Obedience_Level.ATTR_ID_OBEDIENCE_LEVEL
ATTR_ID_RESPONSE_QUALITY_METRIC: ClassVar[str] = Response_Quality_Metric.ATTR_ID_RESPONSE_QUALITY_METRIC
ATTR_ID_WEATHER: ClassVar[str] = Weather.ATTR_ID_WEATHER
ATTR_TEXT_COLLAPSED: ClassVar[str] = 'textCollapsed'
ATTR_TEXT_EXPANDED: ClassVar[str] = 'textExpanded'
@@ -243,7 +245,7 @@ class Model_View_Base(BaseModel, ABC):
HASH_PAGE_DOG_COMMANDS: ClassVar[str] = '/dog/commands'
HASH_PAGE_DOG_DOG_COMMAND_LINKS: ClassVar[str] = '/dog/dog-command-links'
HASH_PAGE_DOG_DOGS: ClassVar[str] = '/dog/dogs'
HASH_PAGE_DOG_HOME: ClassVar[str] = '/dog/home'
HASH_PAGE_DOG_HOME: ClassVar[str] = '/dog/'
HASH_PAGE_DOG_LOCATIONS: ClassVar[str] = '/dog/locations'
HASH_PAGE_ERROR_NO_PERMISSION: ClassVar[str] = '/error'
HASH_PAGE_HOME: ClassVar[str] = '/'
@@ -252,7 +254,8 @@ class Model_View_Base(BaseModel, ABC):
HASH_PAGE_USER_ACCOUNT: ClassVar[str] = '/user'
HASH_PAGE_USER_LOGIN: ClassVar[str] = '/login'
HASH_PAGE_USER_LOGOUT: ClassVar[str] = '/logout'
HASH_SAVE_DOG_ASSESSMENT: ClassVar[str] = '/dog/save-assessment'
# HASH_SAVE_DOG_ASSESSMENT: ClassVar[str] = '/dog/save-assessment'
HASH_SAVE_DOG_ASSESSMENT_DISTRACTION_AND_RESPONSE: ClassVar[str] = '/dog/save-assessment-distraction-and-response'
HASH_SAVE_DOG_BUTTON_ICON: ClassVar[str] = '/dog/save-button-icon'
HASH_SAVE_DOG_COLOUR: ClassVar[str] = '/dog/save-colour'
HASH_SAVE_DOG_COMMAND: ClassVar[str] = '/dog/save-command'

View File

@@ -41,7 +41,7 @@ from typing import ClassVar, Optional
from operator import attrgetter
class Model_View_Dog_Assessment(Model_View_Dog_Base):
FLAG_DISTANCE_FROM_HANDLER: ClassVar[str] = Assessment_Command_Modality_Link.FLAG_DISTANCE_FROM_HANDLER
FLAG_DISTANCE_FROM_HANDLER_METRES: ClassVar[str] = Assessment_Command_Modality_Link.FLAG_DISTANCE_FROM_HANDLER_METRES
FLAG_DISTRACTION_INTENSITY_LEVEL_EMOTIONAL: ClassVar[str] = Distraction.FLAG_DISTRACTION_INTENSITY_LEVEL_EMOTIONAL
FLAG_DISTRACTION_INTENSITY_LEVEL_SCENT: ClassVar[str] = Distraction.FLAG_DISTRACTION_INTENSITY_LEVEL_SCENT
FLAG_DISTRACTION_INTENSITY_LEVEL_SIGHT: ClassVar[str] = Distraction.FLAG_DISTRACTION_INTENSITY_LEVEL_SIGHT

View File

@@ -1,3 +0,0 @@
User-agent: *
Disallow: /qa
Disallow: /dev

View File

@@ -1,26 +1,24 @@
USE demo;
DROP PROCEDURE IF EXISTS demo.p_ph_save_contact_form;
DROP PROCEDURE IF EXISTS demo.p_dog_save_assessment_distraction_and_response;
DELIMITER //
CREATE PROCEDURE demo.p_ph_save_contact_form (
CREATE PROCEDURE demo.p_dog_save_assessment_distraction_and_response (
IN a_comment VARCHAR(500),
IN a_guid BINARY(36),
IN a_id_user INT,
IN a_debug BIT
)
BEGIN
DECLARE v_code_type_error_bad_data VARCHAR(100);
DECLARE v_id_access_level_view INT;
DECLARE v_id_access_level_edit INT;
DECLARE v_id_change_set INT;
DECLARE v_id_permission_contact_form_admin INT;
DECLARE v_id_permission_contact_form_new INT;
DECLARE v_id_type_error_bad_data INT;
DECLARE v_time_start TIMESTAMP(6);
DECLARE v_can_admin BIT;
DECLARE v_can_create BIT;
DECLARE v_code_type_error_bad_data VARCHAR(100);
DECLARE v_id_access_level_edit INT;
DECLARE v_id_change_set INT;
DECLARE v_id_permission_dog_new INT;
DECLARE v_id_type_error_bad_data INT;
DECLARE v_time_start TIMESTAMP(6);
DECLARE exit handler for SQLEXCEPTION
BEGIN
@@ -32,16 +30,16 @@ BEGIN
ROLLBACK;
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error (
display_order INT NOT NULL PRIMARY KEY AUTO_INCREMENT
, id_type INT NULL
, code VARCHAR(50) NOT NULL
, msg VARCHAR(4000) NOT NULL
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error_Combined (
id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT
, id_type INT
, code VARCHAR(250)
, msg TEXT NOT NULL
);
INSERT INTO tmp_Msg_Error (
INSERT INTO tmp_Msg_Error_Combined (
id_type
, code
, code
, msg
)
SELECT
@@ -51,156 +49,191 @@ BEGIN
FROM demo.CORE_Msg_Error_Type MET
WHERE MET.code = 'MYSQL_ERROR'
;
SELECT *
FROM tmp_Msg_Error;
DROP TABLE IF EXISTS tmp_Msg_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_Combined 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_Combined;
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 id_type FROM demo.CORE_Msg_Error_Type WHERE code = v_code_type_error_bad_data LIMIT 1);
SET v_id_permission_contact_form_admin := (SELECT id_permission FROM demo.DOG_Permission P WHERE P.code = 'CONTACT_FORM_ADMIN' LIMIT 1);
SET v_id_permission_contact_form_new := (SELECT id_permission FROM demo.DOG_Permission P WHERE P.code = 'CONTACT_FORM_CREATE' LIMIT 1);
SET 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_permission_dog_new := (SELECT PERMISSION.id_permission FROM demo.DOG_Permission PERMISSION WHERE PERMISSION.code = 'DOG_CREATE' 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);
CALL demo.p_core_validate_guid ( a_guid );
DROP TABLE IF EXISTS tmp_Contact_Form;
DROP TABLE IF EXISTS tmp_Assessment_Response_Save_ADR;
DROP TABLE IF EXISTS tmp_Assessment_Command_Modality_Link_Save_ADR;
DROP TABLE IF EXISTS tmp_Distraction_Save_ADR;
DROP TABLE IF EXISTS tmp_Assessment_Save_ADR;
CREATE TEMPORARY TABLE tmp_Contact_Form (
id_contact_form INT NOT NULL
, email VARCHAR(255) NOT NULL
, name_contact VARCHAR(255) NOT NULL
, name_company VARCHAR(255) NOT NULL
, message TEXT NOT NULL
, receive_marketing_communications BIT NOT NULL
, active BIT NOT NULL
, name_error VARCHAR(255)
, is_new BIT NOT NULL
CREATE TEMPORARY TABLE tmp_Assessment_Save_ADR (
id_temp INT
, id_assessment INT
, id_assessment_old INT
, active BIT
, is_new BIT
);
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error (
display_order INT NOT NULL PRIMARY KEY AUTO_INCREMENT
, id_type INT NULL
, code VARCHAR(50) NOT NULL
, msg VARCHAR(4000) NOT NULL
CREATE TEMPORARY TABLE tmp_Distraction_Save_ADR (
id_temp INT
, id_distraction INT
, id_distraction_old INT
, id_assessment INT
, active BIT
, is_new BIT
);
CREATE TEMPORARY TABLE tmp_Assessment_Command_Modality_Link_Save_ADR (
id_temp INT
, id_link INT
, id_link_old INT
, id_assessment INT
, active BIT
, is_new BIT
);
CREATE TEMPORARY TABLE tmp_Assessment_Response_Save_ADR (
id_temp INT
, id_response INT
, id_response_old INT
, id_assessment_command_modality_link INT
, active BIT
, is_new BIT
);
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error_Combined (
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_Contact_Form (
id_contact_form
, email
, name_contact
, name_company
, message
, receive_marketing_communications
INSERT INTO tmp_Assessment_Save_ADR (
id_temp
, id_assessment
, id_assessment_old
, active
, is_new
)
SELECT
CF_T.id_contact_form AS id_contact_form
, IFNULL(CF_T.email, CF.email) AS code
, IFNULL(CF_T.name_contact, CF.name_contact) AS name_contact
, IFNULL(CF_T.name_company, CF.name_company) AS name_company
, IFNULL(CF_T.message, CF.message) AS message
, COALESCE(CF_T.receive_marketing_communications, CF.receive_marketing_communications, 0) AS receive_marketing_communications
, COALESCE(CF_T.active, CF.active, 1) AS active
, CASE WHEN IFNULL(CF_T.id_contact_form, 0) < 1 THEN 1 ELSE 0 END AS is_new
FROM demo.PH_Contact_Form_Temp CF_T
LEFT JOIN demo.PH_Contact_Form CF ON CF_T.id_contact_form = CF.id_contact_form
WHERE CF_T.guid = a_guid
ASSESSMENT_T.id_temp
, ASSESSMENT_T.id_assessment
, ASSESSMENT_T.id_assessment
, COALESCE(
ASSESSMENT_T.active
, ASSESSMENT.active
, 1
) AS active
, CASE WHEN COALESCE(ASSESSMENT_T.id_assessment, 0) < 1 THEN 1 ELSE 0 END AS is_new
FROM demo.DOG_Assessment_Temp ASSESSMENT_T
LEFT JOIN demo.DOG_Assessment ASSESSMENT ON ASSESSMENT_T.id_assessment = ASSESSMENT.id_assessment
WHERE ASSESSMENT_T.guid = a_guid
;
UPDATE tmp_Contact_Form t_CF
SET name_error = COALESCE(t_CF.email, t_CF.name_company, t_CF.name_contact, t_CF.message, '(No Contact Form)')
INSERT INTO tmp_Distraction_Save_ADR (
id_temp
, id_distraction
, id_distraction_old
, id_assessment
, active
, is_new
)
SELECT
DISTRACTION_T.id_temp
, DISTRACTION_T.id_distraction
, DISTRACTION_T.id_distraction
, DISTRACTION_T.id_assessment
, COALESCE(
DISTRACTION_T.active
, DISTRACTION.active
, 1
) AS active
, CASE WHEN COALESCE(DISTRACTION_T.id_distraction, 0) < 1 THEN 1 ELSE 0 END AS is_new
FROM demo.DOG_Distraction_Temp DISTRACTION_T
LEFT JOIN demo.DOG_Distraction DISTRACTION ON DISTRACTION_T.id_distraction = DISTRACTION.id_distraction
WHERE DISTRACTION_T.guid = a_guid
;
-- Validation
-- Missing mandatory fields
-- email
IF EXISTS (SELECT * FROM tmp_Contact_Form t_CF WHERE ISNULL(t_CF.email) LIMIT 1) THEN
INSERT INTO tmp_Msg_Error (
id_type
, code
, msg
)
SELECT
v_id_type_error_bad_data
, v_code_type_error_bad_data
, CONCAT('The following Contact Form(s) do not have an Email: ', GROUP_CONCAT(t_CF.name_error SEPARATOR ', ')) AS msg
FROM tmp_Contact_Form t_CF
WHERE ISNULL(t_CF.email)
;
END IF;
-- name_contact
IF EXISTS (SELECT * FROM tmp_Contact_Form t_CF WHERE ISNULL(t_CF.name_contact) LIMIT 1) THEN
INSERT INTO tmp_Msg_Error (
id_type
, code
, msg
)
SELECT
v_id_type_error_bad_data
, v_code_type_error_bad_data
, CONCAT('The following Contact Form(s) do not have a Contact Name: ', GROUP_CONCAT(t_CF.name_error SEPARATOR ', ')) AS msg
FROM tmp_Contact_Form t_CF
WHERE ISNULL(t_CF.name_contact)
;
END IF;
-- name_company
IF EXISTS (SELECT * FROM tmp_Contact_Form t_CF WHERE ISNULL(t_CF.name_company) LIMIT 1) THEN
INSERT INTO tmp_Msg_Error (
id_type
, code
, msg
)
SELECT
v_id_type_error_bad_data
, v_code_type_error_bad_data
, CONCAT('The following Contact Form(s) do not have a Company Name: ', GROUP_CONCAT(t_CF.name_error SEPARATOR ', ')) AS msg
FROM tmp_Contact_Form t_CF
WHERE ISNULL(t_CF.name)
;
END IF;
-- message
IF EXISTS (SELECT * FROM tmp_Contact_Form t_CF WHERE ISNULL(t_CF.message) LIMIT 1) THEN
INSERT INTO tmp_Msg_Error (
id_type
, code
, msg
)
SELECT
v_id_type_error_bad_data
, v_code_type_error_bad_data
, CONCAT('The following Contact Form(s) do not have a Message: ', GROUP_CONCAT(t_CF.name_error SEPARATOR ', ')) AS msg
FROM tmp_Contact_Form t_CF
WHERE ISNULL(t_CF.message)
;
INSERT INTO tmp_Assessment_Command_Modality_Link_Save_ADR (
id_temp
, id_link
, id_link_old
, id_assessment
, active
, is_new
)
SELECT
ASSESSMENT_COMMAND_MODALITY_LINK_T.id_temp
, ASSESSMENT_COMMAND_MODALITY_LINK_T.id_link
, ASSESSMENT_COMMAND_MODALITY_LINK_T.id_link
, ASSESSMENT_COMMAND_MODALITY_LINK_T.id_assessment
, COALESCE(
ASSESSMENT_COMMAND_MODALITY_LINK_T.active
, ASSESSMENT_COMMAND_MODALITY_LINK.active
, 1
) AS active
, CASE WHEN COALESCE(ASSESSMENT_COMMAND_MODALITY_LINK_T.id_link, 0) < 1 THEN 1 ELSE 0 END AS is_new
FROM demo.DOG_Assessment_Command_Modality_Link_Temp ASSESSMENT_COMMAND_MODALITY_LINK_T
LEFT JOIN demo.DOG_Assessment_Command_Modality_Link ASSESSMENT_COMMAND_MODALITY_LINK ON ASSESSMENT_COMMAND_MODALITY_LINK_T.id_link = ASSESSMENT_COMMAND_MODALITY_LINK.id_link
WHERE ASSESSMENT_COMMAND_MODALITY_LINK_T.guid = a_guid
;
INSERT INTO tmp_Assessment_Response_Save_ADR (
id_temp
, id_response
, id_response_old
, id_assessment_command_modality_link
, active
, is_new
)
SELECT
ASSESSMENT_RESPONSE_T.id_temp
, ASSESSMENT_RESPONSE_T.id_response
, ASSESSMENT_RESPONSE_T.id_response
, ASSESSMENT_RESPONSE_T.id_assessment_command_modality_link
, COALESCE(
ASSESSMENT_RESPONSE_T.active
, ASSESSMENT_RESPONSE.active
, 1
) AS active
, CASE WHEN COALESCE(ASSESSMENT_RESPONSE_T.id_response, 0) < 1 THEN 1 ELSE 0 END AS is_new
FROM demo.DOG_Assessment_Response_Temp ASSESSMENT_RESPONSE_T
LEFT JOIN demo.DOG_Assessment_Response ASSESSMENT_RESPONSE ON ASSESSMENT_RESPONSE_T.id_response = ASSESSMENT_RESPONSE.id_response
WHERE ASSESSMENT_RESPONSE_T.guid = a_guid
;
IF a_debug = 1 THEN
SELECT 'Temp records';
SELECT * FROM tmp_Assessment_Save_ADR;
SELECT COUNT(*) FROM tmp_Assessment_Save_ADR;
SELECT * FROM tmp_Distraction_Save_ADR;
SELECT COUNT(*) FROM tmp_Distraction_Save_ADR;
SELECT * FROM tmp_Assessment_Command_Modality_Link_Save_ADR;
SELECT COUNT(*) FROM tmp_Assessment_Command_Modality_Link_Save_ADR;
SELECT * FROM tmp_Assessment_Response_Save_ADR;
SELECT COUNT(*) FROM tmp_Assessment_Response_Save_ADR;
END IF;
-- Permissions
IF a_debug = 1 THEN
SELECT
a_guid
, 0 -- get_all_user
, 0 -- get_inactive_user
, a_id_user -- ids_user
, '' -- a_auth0_ids_user
, '' -- a_names_user
, '' -- a_emails_user
, 1 -- a_require_all_id_search_filters_met
, 1 -- a_require_any_id_search_filters_met
, 0 -- a_require_all_non_id_search_filters_met
, 0 -- a_require_any_non_id_search_filters_met
, v_id_permission_contact_form_admin -- ids_permission
, v_id_access_level_view -- ids_access_level
, 0 -- a_show_errors
, 0 -- a_debug
;
END IF;
-- Can Create
CALL demo.p_dog_calc_user(
a_guid
, 0 -- get_all_user
@@ -213,196 +246,300 @@ 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_contact_form_admin -- ids_permission
, v_id_access_level_view -- ids_access_level
, v_id_permission_dog_new -- ids_permission
, v_id_access_level_edit -- ids_access_level
, 0 -- a_show_errors
, 0 -- a_debug
);
SELECT
IFNULL(CALC_USER_T.has_access, 0)
INTO
v_can_admin
FROM demo.DOG_Calc_User_Temp CALC_USER_T
WHERE CALC_USER_T.GUID = a_guid
LIMIT 1
;
IF a_debug = 1 THEN
SELECT v_can_admin;
SELECT COUNT(*) AS Count_Errors FROM tmp_Msg_Error t_ERROR;
SELECT * FROM tmp_Msg_Error t_ERROR;
END IF;
CALL demo.p_dog_clear_calc_user(
a_guid
, 0 -- a_debug
);
IF a_debug = 1 THEN
SELECT
a_guid
, 0 -- get_all_user
, 0 -- get_inactive_user
, a_id_user -- ids_user
, '' -- a_auth0_ids_user
, '' -- a_names_user
, '' -- a_emails_user
, 1 -- a_require_all_id_search_filters_met
, 1 -- a_require_any_id_search_filters_met
, 0 -- a_require_all_non_id_search_filters_met
, 0 -- a_require_any_non_id_search_filters_met
, v_id_permission_contact_form_new -- ids_permission
, v_id_access_level_view -- ids_access_level
, 0 -- a_show_errors
, 0 -- a_debug
;
END IF;
CALL demo.p_dog_calc_user(
a_guid
, 0 -- get_all_user
, 0 -- get_inactive_user
, a_id_user -- ids_user
, '' -- a_auth0_ids_user
, '' -- a_names_user
, '' -- a_emails_user
, 1 -- a_require_all_id_search_filters_met
, 1 -- a_require_any_id_search_filters_met
, 0 -- a_require_all_non_id_search_filters_met
, 0 -- a_require_any_non_id_search_filters_met
, v_id_permission_contact_form_new -- ids_permission
, v_id_access_level_view -- ids_access_level
, 0 -- a_show_errors
, 0 -- a_debug
);
SELECT
IFNULL(CALC_USER_T.has_access, 0)
IFNULL(CU_T.has_access, 0)
INTO
v_can_create
FROM demo.DOG_Calc_User_Temp CALC_USER_T
WHERE CALC_USER_T.GUID = a_guid
FROM demo.DOG_Calc_User_Temp CU_T
WHERE CU_T.GUID = a_guid
LIMIT 1
;
IF a_debug = 1 THEN
SELECT v_can_create;
SELECT COUNT(*) AS Count_Errors FROM tmp_Msg_Error t_ERROR;
SELECT * FROM tmp_Msg_Error t_ERROR;
END IF;
CALL demo.p_dog_clear_calc_user(
a_guid
, 0 -- a_debug
);
IF (v_can_admin = 0 AND EXISTS(SELECT * FROM tmp_Contact_Form WHERE is_new = 0)) THEN
IF v_can_create = 0 THEN
DELETE t_ME
FROM tmp_Msg_Error t_ME
FROM tmp_Msg_Error_Combined t_ME
WHERE t_ME.id_type <> v_id_type_error_no_permission
;
INSERT INTO tmp_Msg_Error (
INSERT INTO tmp_Msg_Error_Combined (
id_type
, code
, code
, msg
)
VALUES (
v_id_type_error_no_permission
, v_code_type_error_no_permission
, 'You do not have permission to admin Contact Forms.'
, v_code_type_error_no_permission
, 'You do not have permission to edit Assessment_Distraction_And_Responses.'
)
;
END IF;
IF EXISTS (SELECT * FROM tmp_Msg_Error LIMIT 1) THEN
IF a_debug = 1 THEN
SELECT * from tmp_Contact_Form;
END IF;
DELETE FROM tmp_Contact_Form;
END IF;
-- DELETE FROM tmp_Msg_Error_Combined_Save;
-- Save Assessments
-- CREATE TEMPORARY TABLE tmp_Assessment_Save_ADR_Save_Error AS
-- INSERT INTO tmp_Msg_Error_Combined_Save
CALL demo.p_dog_save_assessment (
a_comment
, a_guid
, a_id_user
, 0 -- debug
);
IF NOT EXISTS (SELECT * FROM tmp_Msg_Error LIMIT 1) THEN
START TRANSACTION;
INSERT INTO demo.PH_Contact_Form_Change_Set (
comment
, id_user_updated_last_by
, updated_last_on
)
VALUES (
a_comment
, a_id_user
, v_time_start
)
;
SET v_id_change_set := LAST_INSERT_ID();
UPDATE demo.PH_Contact_Form CF
INNER JOIN tmp_Contact_Form t_CF
ON CF.id_contact_form = t_CF.id_contact_form
AND t_CF.is_new = 0
SET
CF.email = t_CF.email
, CF.name_contact = t_CF.name_contact
, CF.name_company = t_CF.name_company
, CF.message = t_CF.message
, CF.receive_marketing_communications = t_CF.receive_marketing_communications
, CF.active = t_CF.active
, CF.id_change_set = v_id_change_set
;
INSERT INTO demo.PH_Contact_Form (
email
, name_contact
, name_company
, message
, receive_marketing_communications
, active
, id_user_created_by
, created_on
)
SELECT
t_CF.email AS email
, t_CF.name_contact AS name_contact
, t_CF.name_company AS name_company
, t_CF.message AS message
, t_CF.receive_marketing_communications AS receive_marketing_communications
, t_CF.active AS active
, a_id_user AS created_by
, v_time_start AS created_on
FROM tmp_Contact_Form t_CF
WHERE
t_CF.is_new = 1
AND t_CF.active = 1
;
COMMIT;
END IF;
START TRANSACTION;
/*
INSERT INTO tmp_Msg_Error_Combined (
id_type
, code
, msg
)
SELECT
t_ASSESSMENT_SAVE_ERROR.id_type
, t_ASSESSMENT_SAVE_ERROR.code
, t_ASSESSMENT_SAVE_ERROR.msg
FROM tmp_Assessment_Save_ADR_Save_Error t_ASSESSMENT_SAVE_ERROR
;
*/
DELETE FROM demo.PH_Contact_Form_Temp
WHERE GUID = a_guid
-- Get New Assessment Ids
IF NOT EXISTS (SELECT * FROM tmp_Msg_Error_Combined 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
-- Update Temporary tables with new Ids
UPDATE tmp_Assessment_Save_ADR t_ASSESSMENT
INNER JOIN demo.DOG_Assessment ASSESSMENT ON t_ASSESSMENT.id_temp = ASSESSMENT.id_temp
INNER JOIN tmp_Distraction_Save_ADR t_DISTRACTION ON t_ASSESSMENT.id_assessment_old = t_DISTRACTION.id_assessment
INNER JOIN tmp_Assessment_Command_Modality_Link_Save_ADR t_ASSESSMENT_COMMAND_MODALITY_LINK ON t_ASSESSMENT.id_assessment_old = t_ASSESSMENT_COMMAND_MODALITY_LINK.id_assessment
SET
t_ASSESSMENT.id_assessment = ASSESSMENT.id_assessment
, t_DISTRACTION.id_assessment = ASSESSMENT.id_assessment
, t_ASSESSMENT_COMMAND_MODALITY_LINK.id_assessment = ASSESSMENT.id_assessment
WHERE
t_ASSESSMENT.active = 1
AND t_ASSESSMENT.is_new = 1
;
COMMIT;
-- Update Staging tables with new Ids
IF EXISTS (SELECT * FROM tmp_Assessment_Save_ADR t_ASSESSMENT WHERE t_ASSESSMENT.id_assessment <> t_ASSESSMENT.id_assessment_old LIMIT 1) THEN
START TRANSACTION;
UPDATE demo.DOG_Distraction_Temp DISTRACTION_T
INNER JOIN tmp_Distraction_Save_ADR t_DISTRACTION ON DISTRACTION_T.id_temp = t_DISTRACTION.id_temp
INNER JOIN tmp_Assessment_Save_ADR t_ASSESSMENT ON t_DISTRACTION.id_assessment = t_ASSESSMENT.id_assessment
SET DISTRACTION_T.id_assessment = t_DISTRACTION.id_assessment
WHERE t_ASSESSMENT.id_assessment <> t_ASSESSMENT.id_assessment_old
;
UPDATE demo.DOG_Assessment_Command_Modality_Link_Temp ASSESSMENT_COMMAND_MODALITY_LINK_T
INNER JOIN tmp_Assessment_Command_Modality_Link_Save_ADR t_ASSESSMENT_COMMAND_MODALITY_LINK ON t_ASSESSMENT_COMMAND_MODALITY_LINK.id_temp = ASSESSMENT_COMMAND_MODALITY_LINK_T.id_temp
INNER JOIN tmp_Assessment_Save_ADR t_ASSESSMENT ON t_ASSESSMENT.id_assessment = t_ASSESSMENT_COMMAND_MODALITY_LINK.id_assessment
SET ASSESSMENT_COMMAND_MODALITY_LINK_T.id_assessment = t_ASSESSMENT_COMMAND_MODALITY_LINK.id_assessment
WHERE t_ASSESSMENT.id_assessment <> t_ASSESSMENT.id_assessment_old
;
COMMIT;
END IF;
END IF;
IF a_debug = 1 THEN
SELECT 'After align assessment Ids';
SELECT * FROM tmp_Assessment_Save_ADR;
SELECT * FROM tmp_Distraction_Save_ADR;
SELECT * FROM tmp_Assessment_Command_Modality_Link_Save_ADR;
SELECT * FROM tmp_Assessment_Response_Save_ADR;
END IF;
-- DELETE FROM tmp_Msg_Error_Combined_Save;
-- Save Distractions
-- CREATE TEMPORARY TABLE tmp_Distraction_Save_ADR_Save_Error AS
-- INSERT INTO tmp_Msg_Error_Combined_Save
CALL demo.p_dog_save_distraction (
a_comment
, a_guid
, a_id_user
, 0 -- debug
);
/*
INSERT INTO tmp_Msg_Error_Combined (
id_type
, code
, msg
)
SELECT
t_DISTRACTION_SAVE_ERROR.id_type
, t_DISTRACTION_SAVE_ERROR.code
, t_DISTRACTION_SAVE_ERROR.msg
FROM tmp_Distraction_Save_ADR_Save_Error t_DISTRACTION_SAVE_ERROR
;
*/
-- DELETE FROM tmp_Msg_Error_Combined_Save;
-- Save Assessment Command Modality Links
-- CREATE TEMPORARY TABLE tmp_Assessment_Command_Modality_Link_Save_ADR_Save_Error AS
-- INSERT INTO tmp_Msg_Error_Combined_Save
CALL demo.p_dog_save_assessment_command_modality_link (
a_comment
, a_guid
, a_id_user
, 0 -- debug
);
/*
INSERT INTO tmp_Msg_Error_Combined (
id_type
, code
, msg
)
SELECT
t_ACML_SAVE_ERROR.id_type
, t_ACML_SAVE_ERROR.code
, t_ACML_SAVE_ERROR.msg
FROM tmp_Assessment_Command_Modality_Link_Save_ADR_Save_Error t_ACML_SAVE_ERROR
;
*/
-- Get New Assessment Command Modality Link Ids
IF EXISTS (SELECT * FROM tmp_Msg_Error_Combined 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
START TRANSACTION;
DELETE ASSESSMENT
FROM demo.DOG_Assessment ASSESSMENT
INNER JOIN tmp_Assessment_Save_ADR t_ASSESSMENT ON ASSESSMENT.id_assessment = t_ASSESSMENT.id_assessment
WHERE t_ASSESSMENT.is_new = 1
;
COMMIT;
ELSE
-- Update Temporary tables with new Ids
UPDATE tmp_Assessment_Command_Modality_Link_Save_ADR t_ASSESSMENT_COMMAND_MODALITY_LINK
INNER JOIN demo.DOG_Assessment_Command_Modality_Link ASSESSMENT_COMMAND_MODALITY_LINK ON t_ASSESSMENT_COMMAND_MODALITY_LINK.id_temp = ASSESSMENT_COMMAND_MODALITY_LINK.id_temp
LEFT JOIN tmp_Assessment_Response_Save_ADR t_ASSESSMENT_RESPONSE ON t_ASSESSMENT_COMMAND_MODALITY_LINK.id_link = t_ASSESSMENT_RESPONSE.id_assessment_command_modality_link
SET
t_ASSESSMENT_COMMAND_MODALITY_LINK.id_link = ASSESSMENT_COMMAND_MODALITY_LINK.id_link
, t_ASSESSMENT_RESPONSE.id_assessment_command_modality_link = ASSESSMENT_COMMAND_MODALITY_LINK.id_link
WHERE
t_ASSESSMENT_COMMAND_MODALITY_LINK.active = 1
AND t_ASSESSMENT_COMMAND_MODALITY_LINK.is_new = 1
;
-- Update Staging tables with new Ids
IF EXISTS (SELECT * FROM tmp_Assessment_Command_Modality_Link_Save_ADR t_ASSESSMENT_COMMAND_MODALITY_LINK WHERE t_ASSESSMENT_COMMAND_MODALITY_LINK.id_link <> t_ASSESSMENT_COMMAND_MODALITY_LINK.id_link_old LIMIT 1) THEN
START TRANSACTION;
UPDATE demo.DOG_Assessment_Response_Temp ASSESSMENT_RESPONSE_T
INNER JOIN tmp_Assessment_Response_Save_ADR t_ASSESSMENT_RESPONSE ON ASSESSMENT_RESPONSE_T.id_temp = t_ASSESSMENT_RESPONSE.id_temp
INNER JOIN tmp_Assessment_Command_Modality_Link_Save_ADR t_ASSESSMENT_COMMAND_MODALITY_LINK ON t_ASSESSMENT_RESPONSE.id_assessment_command_modality_link = t_ASSESSMENT_COMMAND_MODALITY_LINK.id_link
SET ASSESSMENT_RESPONSE_T.id_assessment_command_modality_link = t_ASSESSMENT_RESPONSE.id_assessment_command_modality_link
WHERE t_ASSESSMENT_COMMAND_MODALITY_LINK.id_link <> t_ASSESSMENT_COMMAND_MODALITY_LINK.id_link_old
;
COMMIT;
END IF;
END IF;
IF a_debug = 1 THEN
SELECT 'After align assessment Ids';
SELECT * FROM tmp_Assessment_Save_ADR;
SELECT * FROM tmp_Distraction_Save_ADR;
SELECT * FROM tmp_Assessment_Command_Modality_Link_Save_ADR;
SELECT * FROM tmp_Assessment_Response_Save_ADR;
END IF;
-- DELETE FROM tmp_Msg_Error_Combined_Save;
-- Save Assessment Responses
-- CREATE TEMPORARY TABLE tmp_Assessment_Response_Save_ADR_Save_Error AS
-- INSERT INTO tmp_Msg_Error_Combined_Save
CALL demo.p_dog_save_assessment_response (
a_comment
, a_guid
, a_id_user
, 0 -- debug
);
/*
INSERT INTO tmp_Msg_Error_Combined (
id_type
, code
, msg
)
SELECT
t_ASSESSMENT_RESPONSE_SAVE_ERROR.id_type
, t_ASSESSMENT_RESPONSE_SAVE_ERROR.code
, t_ASSESSMENT_RESPONSE_SAVE_ERROR.msg
FROM tmp_Assessment_Response_Save_ADR_Save_Error t_ASSESSMENT_RESPONSE_SAVE_ERROR
;
*/
-- Get New Assessment Command Modality Link Ids
IF EXISTS (SELECT * FROM tmp_Msg_Error_Combined 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
START TRANSACTION;
DELETE ASSESSMENT_COMMAND_MODALITY_LINK
FROM demo.DOG_Assessment_Command_Modality_Link ASSESSMENT_COMMAND_MODALITY_LINK
INNER JOIN tmp_Assessment_Command_Modality_Link_Save_ADR t_ASSESSMENT_COMMAND_MODALITY_LINK ON ASSESSMENT_COMMAND_MODALITY_LINK.id_link = t_ASSESSMENT_COMMAND_MODALITY_LINK.id_assessment_command_modality_link
INNER JOIN tmp_Assessment_Save_ADR t_ASSESSMENT ON ASSESSMENT_COMMAND_MODALITY_LINK.id_assessment = t_ASSESSMENT.id_assessment
WHERE
t_ASSESSMENT_COMMAND_MODALITY_LINK.is_new = 1
OR t_ASSESSMENT.is_new = 1
;
DELETE ASSESSMENT
FROM demo.DOG_Assessment ASSESSMENT
INNER JOIN tmp_Assessment_Save_ADR t_ASSESSMENT ON ASSESSMENT.id_assessment = t_ASSESSMENT.id_assessment
WHERE t_ASSESSMENT.is_new = 1
;
COMMIT;
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
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_Combined t_ERROR
INNER JOIN demo.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type
;
IF a_debug = 1 THEN
SELECT * from tmp_Contact_Form;
SELECT * FROM tmp_Assessment_Save_ADR;
SELECT * FROM tmp_Distraction_Save_ADR;
SELECT * FROM tmp_Assessment_Command_Modality_Link_Save_ADR;
SELECT * FROM tmp_Assessment_Response_Save_ADR;
END IF;
DROP TEMPORARY TABLE tmp_Contact_Form;
DROP TEMPORARY TABLE tmp_Msg_Error;
CALL demo.p_dog_clear_msg_error (
a_guid
, 0 -- debug
);
DROP TABLE IF EXISTS tmp_Assessment_Response_Save_ADR_Save_Error;
DROP TABLE IF EXISTS tmp_Assessment_Command_Modality_Link_Save_ADR_Save_Error;
DROP TABLE IF EXISTS tmp_Distraction_Save_ADR_Save_Error;
DROP TABLE IF EXISTS tmp_Assessment_Save_ADR_Save_Error;
DROP TABLE IF EXISTS tmp_Assessment_Response_Save_ADR;
DROP TABLE IF EXISTS tmp_Assessment_Command_Modality_Link_Save_ADR;
DROP TABLE IF EXISTS tmp_Distraction_Save_ADR;
DROP TABLE IF EXISTS tmp_Assessment_Save_ADR;
DROP TEMPORARY TABLE tmp_Msg_Error_Combined;
IF a_debug = 1 THEN
CALL demo.p_core_debug_timing_reporting ( v_time_start );
@@ -411,26 +548,15 @@ END //
DELIMITER ;
select
*
-- COUNT(*)
-- delete
from demo.PH_Contact_Form_Temp
;
/*
CALL demo.p_ph_save_contact_form (
CALL demo.p_dog_save_assessment_distraction_and_response (
'nipples'
, (SELECT GUID FROM demo.PH_Contact_Form_Temp ORDER BY id_temp DESC LIMIT 1)
, 'ripplesipplenipplytippledipplykipple'
, 1
, 1
);
select
*
-- COUNT(*)
-- delete
from demo.PH_Contact_Form_Temp
;
*/

View File

@@ -0,0 +1,19 @@
USE parts;
-- DROP TABLE IF EXISTS parts.DOG_Msg_Error_Temp;
SELECT CONCAT('WARNING: Table ', TABLE_SCHEMA, '.', TABLE_NAME, ' already exists.') AS msg_warning
FROM INFORMATION_SCHEMA.TABLES
WHERE
TABLE_SCHEMA = 'parts'
AND TABLE_NAME = 'DOG_Msg_Error_Temp'
;
CREATE TABLE IF NOT EXISTS parts.DOG_Msg_Error_Temp (
id_temp INT NOT NULL AUTO_INCREMENT PRIMARY KEY
, id_type INT NOT NULL
, code VARCHAR(250) NOT NULL
, msg TEXT NOT NULL
, GUID BINARY(36) NOT NULL
);

View File

@@ -10,6 +10,7 @@ WHERE
CREATE TABLE IF NOT EXISTS parts.DOG_Assessment (
id_assessment INT NOT NULL AUTO_INCREMENT PRIMARY KEY
, id_temp INT
, id_weather INT NOT NULL
, CONSTRAINT FK_DOG_Assessment_id_weather
FOREIGN KEY (id_weather)

View File

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

View File

@@ -10,6 +10,7 @@ WHERE
CREATE TABLE IF NOT EXISTS parts.DOG_Assessment_Command_Modality_Link (
id_link INT NOT NULL AUTO_INCREMENT PRIMARY KEY
, id_temp INT
, id_assessment INT NOT NULL
, CONSTRAINT FK_DOG_Assessment_Command_Modality_Link_id_assessment
FOREIGN KEY (id_assessment)
@@ -26,7 +27,7 @@ CREATE TABLE IF NOT EXISTS parts.DOG_Assessment_Command_Modality_Link (
, CONSTRAINT FK_DOG_Assessment_Command_Modality_Link_id_bribe
FOREIGN KEY (id_bribe)
REFERENCES parts.DOG_Bribe(id_bribe)
, distance_from_handler FLOAT
, 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

View File

@@ -17,7 +17,7 @@ CREATE TABLE IF NOT EXISTS parts.DOG_Assessment_Command_Modality_Link_Temp (
, id_command INT
, id_command_modality INT
, id_bribe INT
, distance_from_handler FLOAT
, 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

View File

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

View File

@@ -46,9 +46,9 @@ BEGIN
SELECT NEW.id_link, 'id_bribe', CONVERT(OLD.id_bribe, CHAR), CONVERT(NEW.id_bribe, CHAR), NEW.id_change_set
WHERE NOT (OLD.id_bribe <=> NEW.id_bribe)
UNION
-- Changed distance_from_handler
SELECT NEW.id_link, 'distance_from_handler', CONVERT(OLD.distance_from_handler, CHAR), CONVERT(NEW.distance_from_handler, CHAR), NEW.id_change_set
WHERE NOT (OLD.distance_from_handler <=> NEW.distance_from_handler)
-- Changed distance_from_handler_metres
SELECT NEW.id_link, 'distance_from_handler_metres', CONVERT(OLD.distance_from_handler_metres, CHAR), CONVERT(NEW.distance_from_handler_metres, CHAR), NEW.id_change_set
WHERE NOT (OLD.distance_from_handler_metres <=> NEW.distance_from_handler_metres)
UNION
-- Changed is_in_sight_of_handler
SELECT NEW.id_link, 'is_in_sight_of_handler', CONVERT(CONVERT(OLD.is_in_sight_of_handler, SIGNED), CHAR), CONVERT(CONVERT(NEW.is_in_sight_of_handler, SIGNED), CHAR), NEW.id_change_set

View File

@@ -0,0 +1,44 @@
USE parts;
DROP PROCEDURE IF EXISTS parts.p_dog_clear_msg_error;
DELIMITER //
CREATE PROCEDURE parts.p_dog_clear_msg_error (
IN a_guid BINARY(36)
, IN a_debug BIT
)
BEGIN
DECLARE v_time_start TIMESTAMP(6);
SET v_time_start := CURRENT_TIMESTAMP(6);
CALL parts.p_core_validate_guid ( a_guid );
START TRANSACTION;
DELETE MSG_ERROR_T
FROM parts.DOG_Msg_Error_Temp MSG_ERROR_T
WHERE MSG_ERROR_T.GUID = a_guid
;
COMMIT;
IF a_debug = 1 THEN
CALL parts.p_debug_timing_reporting( v_time_start );
END IF;
END //
DELIMITER ;
/*
CALL parts.p_dog_clear_msg_error (
'crips ' -- a_guid
, 1 -- debug
);
SELECT *
FROM parts.DOG_Msg_Error_Temp
WHERE GUID = 'chips '
;
*/

View File

@@ -44,7 +44,7 @@ BEGIN
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error (
id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT
, id_type INT NULL
, id_type INT
, code VARCHAR(250) NOT NULL
, msg TEXT NOT NULL
);
@@ -113,8 +113,8 @@ BEGIN
DROP TEMPORARY TABLE IF EXISTS tmp_Msg_Error;
CREATE TEMPORARY TABLE tmp_User (
id_user INT NULL
, rank_user INT NULL
id_user INT
, rank_user INT
, can_admin_dog BIT NULL
, can_admin_user BIT NULL
);
@@ -128,7 +128,7 @@ BEGIN
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Split (
substring VARCHAR(4000) NOT NULL
, as_int INT NULL
, as_int INT
);
DELETE FROM tmp_Split;

View File

@@ -52,7 +52,7 @@ BEGIN
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error (
id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT
, id_type INT NULL
, id_type INT
, code VARCHAR(250) NOT NULL
, msg TEXT NOT NULL
);

View File

@@ -32,7 +32,7 @@ BEGIN
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error (
display_order INT NOT NULL PRIMARY KEY AUTO_INCREMENT
, id_type INT NULL
, id_type INT
, code VARCHAR(250) NOT NULL
, msg TEXT NOT NULL
);

View File

@@ -53,7 +53,7 @@ BEGIN
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error_Calc_User (
id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT
, id_type INT NULL
, id_type INT
, code VARCHAR(250) NOT NULL
, msg TEXT NOT NULL
);
@@ -169,32 +169,32 @@ BEGIN
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error_Calc_User (
id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT
, id_type INT NULL
, id_type INT
, code VARCHAR(250) NOT NULL
, msg TEXT NOT NULL
);
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Split_Id_Calc_User (
substring VARCHAR(4000) NOT NULL
, as_int INT NULL
, as_int INT
);
DELETE FROM tmp_Split_Id_Calc_User;
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Split_Auth0_Id_Calc_User (
substring VARCHAR(4000) NOT NULL
, as_int INT NULL
, as_int INT
);
DELETE FROM tmp_Split_Auth0_Id_Calc_User;
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Split_Name_Calc_User (
substring VARCHAR(4000) NOT NULL
, as_int INT NULL
, as_int INT
);
DELETE FROM tmp_Split_Name_Calc_User;
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Split_Email_Calc_User (
substring VARCHAR(4000) NOT NULL
, as_int INT NULL
, as_int INT
);
DELETE FROM tmp_Split_Email_Calc_User;

View File

@@ -43,7 +43,7 @@ BEGIN
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error_Calc_Dog (
id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT
, id_type INT NULL
, id_type INT
, code VARCHAR(250) NOT NULL
, msg TEXT NOT NULL
);
@@ -137,20 +137,20 @@ BEGIN
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error_Calc_Dog (
id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT
, id_type INT NULL
, id_type INT
, code VARCHAR(250) NOT NULL
, msg TEXT NOT NULL
);
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Split_Id_Calc_Dog (
substring VARCHAR(4000) NOT NULL
, as_int INT NULL
, as_int INT
);
DELETE FROM tmp_Split_Id_Calc_Dog;
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Split_Name_Calc_Dog (
substring VARCHAR(4000) NOT NULL
, as_int INT NULL
, as_int INT
);
DELETE FROM tmp_Split_Name_Calc_Dog;

View File

@@ -40,7 +40,7 @@ BEGIN
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error (
id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT
, id_type INT NULL
, id_type INT
, code VARCHAR(250) NOT NULL
, msg TEXT NOT NULL
);
@@ -137,7 +137,7 @@ BEGIN
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error (
id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT
, id_type INT NULL
, id_type INT
, code VARCHAR(250) NOT NULL
, msg TEXT NOT NULL
);

View File

@@ -34,7 +34,7 @@ BEGIN
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error (
id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT
, id_type INT NULL
, id_type INT
, code VARCHAR(250)
, msg TEXT NOT NULL
);
@@ -114,7 +114,7 @@ BEGIN
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error (
id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT
, id_type INT NULL
, id_type INT
, code VARCHAR(250)
, msg TEXT NOT NULL
);

View File

@@ -32,7 +32,7 @@ BEGIN
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error (
id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT
, id_type INT NULL
, id_type INT
, code VARCHAR(250)
, msg TEXT NOT NULL
);
@@ -102,7 +102,7 @@ BEGIN
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error (
id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT
, id_type INT NULL
, id_type INT
, code VARCHAR(250)
, msg TEXT NOT NULL
);

View File

@@ -53,7 +53,7 @@ BEGIN
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error_Calc_Command (
id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT
, id_type INT NULL
, id_type INT
, code VARCHAR(250) NOT NULL
, msg TEXT NOT NULL
);
@@ -171,32 +171,32 @@ BEGIN
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error_Calc_Command (
id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT
, id_type INT NULL
, id_type INT
, code VARCHAR(250) NOT NULL
, msg TEXT NOT NULL
);
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Split_Id_Calc_Command (
substring VARCHAR(4000) NOT NULL
, as_int INT NULL
, as_int INT
);
DELETE FROM tmp_Split_Id_Calc_Command;
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Split_Name_Calc_Command (
substring VARCHAR(4000) NOT NULL
, as_int INT NULL
, as_int INT
);
DELETE FROM tmp_Split_Name_Calc_Command;
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Split_Hand_Signal_Default_Description_Calc_Command (
substring VARCHAR(4000) NOT NULL
, as_int INT NULL
, as_int INT
);
DELETE FROM tmp_Split_Hand_Signal_Default_Description_Calc_Command;
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Split_Notes_Calc_Command (
substring VARCHAR(4000) NOT NULL
, as_int INT NULL
, as_int INT
);
DELETE FROM tmp_Split_Notes_Calc_Command;

View File

@@ -48,7 +48,7 @@ BEGIN
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error (
id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT
, id_type INT NULL
, id_type INT
, code VARCHAR(250) NOT NULL
, msg TEXT NOT NULL
);
@@ -173,7 +173,7 @@ BEGIN
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error (
id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT
, id_type INT NULL
, id_type INT
, code VARCHAR(250) NOT NULL
, msg TEXT NOT NULL
);

View File

@@ -68,7 +68,7 @@ BEGIN
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error (
id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT
, id_type INT NULL
, id_type INT
, code VARCHAR(250) NOT NULL
, msg TEXT NOT NULL
);
@@ -257,26 +257,26 @@ BEGIN
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error (
id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT
, id_type INT NULL
, id_type INT
, code VARCHAR(250) NOT NULL
, msg TEXT NOT NULL
);
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Split_Id_Calc_Dog_Command_Link (
substring VARCHAR(4000) NOT NULL
, as_int INT NULL
, as_int INT
);
DELETE FROM tmp_Split_Id_Calc_Dog_Command_Link;
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Split_Hand_Signal_Description_Calc_Dog_Command_Link (
substring VARCHAR(4000) NOT NULL
, as_int INT NULL
, as_int INT
);
DELETE FROM tmp_Split_Hand_Signal_Description_Calc_Dog_Command_Link;
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Split_Notes_Calc_Dog_Command_Link (
substring VARCHAR(4000) NOT NULL
, as_int INT NULL
, as_int INT
);
DELETE FROM tmp_Split_Notes_Calc_Dog_Command_Link;

View File

@@ -32,7 +32,7 @@ BEGIN
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error (
id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT
, id_type INT NULL
, id_type INT
, code VARCHAR(250)
, msg TEXT NOT NULL
);
@@ -106,7 +106,7 @@ BEGIN
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error (
id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT
, id_type INT NULL
, id_type INT
, code VARCHAR(250)
, msg TEXT NOT NULL
);

View File

@@ -43,7 +43,7 @@ BEGIN
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error_Calc_Command_Modality (
id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT
, id_type INT NULL
, id_type INT
, code VARCHAR(250) NOT NULL
, msg TEXT NOT NULL
);
@@ -138,20 +138,20 @@ BEGIN
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error_Calc_Command_Modality (
id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT
, id_type INT NULL
, id_type INT
, code VARCHAR(250) NOT NULL
, msg TEXT NOT NULL
);
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Split_Id_Calc_Command_Modality (
substring VARCHAR(4000) NOT NULL
, as_int INT NULL
, as_int INT
);
DELETE FROM tmp_Split_Id_Calc_Command_Modality;
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Split_Name_Calc_Command_Modality (
substring VARCHAR(4000) NOT NULL
, as_int INT NULL
, as_int INT
);
DELETE FROM tmp_Split_Name_Calc_Command_Modality;

View File

@@ -40,7 +40,7 @@ BEGIN
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error (
id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT
, id_type INT NULL
, id_type INT
, code VARCHAR(250) NOT NULL
, msg TEXT NOT NULL
);
@@ -135,7 +135,7 @@ BEGIN
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error (
id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT
, id_type INT NULL
, id_type INT
, code VARCHAR(250) NOT NULL
, msg TEXT NOT NULL
);

View File

@@ -43,7 +43,7 @@ BEGIN
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error_Calc_Location (
id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT
, id_type INT NULL
, id_type INT
, code VARCHAR(250) NOT NULL
, msg TEXT NOT NULL
);
@@ -151,20 +151,20 @@ BEGIN
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error_Calc_Location (
id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT
, id_type INT NULL
, id_type INT
, code VARCHAR(250) NOT NULL
, msg TEXT NOT NULL
);
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Split_Id_Calc_Location (
substring VARCHAR(4000) NOT NULL
, as_int INT NULL
, as_int INT
);
DELETE FROM tmp_Split_Id_Calc_Location;
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Split_Name_Calc_Location (
substring VARCHAR(4000) NOT NULL
, as_int INT NULL
, as_int INT
);
DELETE FROM tmp_Split_Name_Calc_Location;

View File

@@ -41,7 +41,7 @@ BEGIN
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error (
id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT
, id_type INT NULL
, id_type INT
, code VARCHAR(250) NOT NULL
, msg TEXT NOT NULL
);
@@ -141,7 +141,7 @@ BEGIN
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error (
id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT
, id_type INT NULL
, id_type INT
, code VARCHAR(250) NOT NULL
, msg TEXT NOT NULL
);

View File

@@ -32,7 +32,7 @@ BEGIN
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error (
id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT
, id_type INT NULL
, id_type INT
, code VARCHAR(250)
, msg TEXT NOT NULL
);
@@ -104,7 +104,7 @@ BEGIN
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error (
id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT
, id_type INT NULL
, id_type INT
, code VARCHAR(250)
, msg TEXT NOT NULL
);

View File

@@ -45,7 +45,7 @@ BEGIN
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error_Calc_Button_Shape (
id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT
, id_type INT NULL
, id_type INT
, code VARCHAR(250) NOT NULL
, msg TEXT NOT NULL
);
@@ -143,26 +143,26 @@ BEGIN
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error_Calc_Button_Shape (
id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT
, id_type INT NULL
, id_type INT
, code VARCHAR(250) NOT NULL
, msg TEXT NOT NULL
);
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Split_Id_Calc_Button_Shape (
substring VARCHAR(4000) NOT NULL
, as_int INT NULL
, as_int INT
);
DELETE FROM tmp_Split_Id_Calc_Button_Shape;
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Split_Name_Calc_Button_Shape (
substring VARCHAR(4000) NOT NULL
, as_int INT NULL
, as_int INT
);
DELETE FROM tmp_Split_Name_Calc_Button_Shape;
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Split_Notes_Calc_Button_Shape (
substring VARCHAR(4000) NOT NULL
, as_int INT NULL
, as_int INT
);
DELETE FROM tmp_Split_Notes_Calc_Button_Shape;

View File

@@ -41,7 +41,7 @@ BEGIN
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error (
id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT
, id_type INT NULL
, id_type INT
, code VARCHAR(250) NOT NULL
, msg TEXT NOT NULL
);
@@ -139,7 +139,7 @@ BEGIN
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error (
id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT
, id_type INT NULL
, id_type INT
, code VARCHAR(250) NOT NULL
, msg TEXT NOT NULL
);

View File

@@ -43,7 +43,7 @@ BEGIN
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error_Calc_Colour (
id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT
, id_type INT NULL
, id_type INT
, code VARCHAR(250) NOT NULL
, msg TEXT NOT NULL
);
@@ -138,20 +138,20 @@ BEGIN
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error_Calc_Colour (
id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT
, id_type INT NULL
, id_type INT
, code VARCHAR(250) NOT NULL
, msg TEXT NOT NULL
);
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Split_Id_Calc_Colour (
substring VARCHAR(4000) NOT NULL
, as_int INT NULL
, as_int INT
);
DELETE FROM tmp_Split_Id_Calc_Colour;
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Split_Name_Calc_Colour (
substring VARCHAR(4000) NOT NULL
, as_int INT NULL
, as_int INT
);
DELETE FROM tmp_Split_Name_Calc_Colour;

View File

@@ -40,7 +40,7 @@ BEGIN
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error (
id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT
, id_type INT NULL
, id_type INT
, code VARCHAR(250) NOT NULL
, msg TEXT NOT NULL
);
@@ -135,7 +135,7 @@ BEGIN
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error (
id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT
, id_type INT NULL
, id_type INT
, code VARCHAR(250) NOT NULL
, msg TEXT NOT NULL
);

View File

@@ -53,7 +53,7 @@ BEGIN
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error_Calc_Image (
id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT
, id_type INT NULL
, id_type INT
, code VARCHAR(250) NOT NULL
, msg TEXT NOT NULL
);
@@ -185,20 +185,20 @@ BEGIN
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error_Calc_Image (
id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT
, id_type INT NULL
, id_type INT
, code VARCHAR(250) NOT NULL
, msg TEXT NOT NULL
);
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Split_Id_Calc_Image (
substring VARCHAR(4000) NOT NULL
, as_int INT NULL
, as_int INT
);
DELETE FROM tmp_Split_Id_Calc_Image;
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Split_Name_Calc_Image (
substring VARCHAR(4000) NOT NULL
, as_int INT NULL
, as_int INT
);
DELETE FROM tmp_Split_Name_Calc_Image;

View File

@@ -49,7 +49,7 @@ BEGIN
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error (
id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT
, id_type INT NULL
, id_type INT
, code VARCHAR(250) NOT NULL
, msg TEXT NOT NULL
);
@@ -164,7 +164,7 @@ BEGIN
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error (
id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT
, id_type INT NULL
, id_type INT
, code VARCHAR(250) NOT NULL
, msg TEXT NOT NULL
);

View File

@@ -55,7 +55,7 @@ BEGIN
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error_Calc_Button_Icon (
id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT
, id_type INT NULL
, id_type INT
, code VARCHAR(250) NOT NULL
, msg TEXT NOT NULL
);
@@ -185,26 +185,26 @@ BEGIN
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error_Calc_Button_Icon (
id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT
, id_type INT NULL
, id_type INT
, code VARCHAR(250) NOT NULL
, msg TEXT NOT NULL
);
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Split_Id_Calc_Button_Icon (
substring VARCHAR(4000) NOT NULL
, as_int INT NULL
, as_int INT
);
DELETE FROM tmp_Split_Id_Calc_Button_Icon;
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Split_Name_Calc_Button_Icon (
substring VARCHAR(4000) NOT NULL
, as_int INT NULL
, as_int INT
);
DELETE FROM tmp_Split_Name_Calc_Button_Icon;
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Split_Notes_Calc_Button_Icon (
substring VARCHAR(4000) NOT NULL
, as_int INT NULL
, as_int INT
);
DELETE FROM tmp_Split_Notes_Calc_Button_Icon;

View File

@@ -49,7 +49,7 @@ BEGIN
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error (
id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT
, id_type INT NULL
, id_type INT
, code VARCHAR(250) NOT NULL
, msg TEXT NOT NULL
);
@@ -164,7 +164,7 @@ BEGIN
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error (
id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT
, id_type INT NULL
, id_type INT
, code VARCHAR(250) NOT NULL
, msg TEXT NOT NULL
);

View File

@@ -32,7 +32,7 @@ BEGIN
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error (
id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT
, id_type INT NULL
, id_type INT
, code VARCHAR(250)
, msg TEXT NOT NULL
);
@@ -104,7 +104,7 @@ BEGIN
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error (
id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT
, id_type INT NULL
, id_type INT
, code VARCHAR(250)
, msg TEXT NOT NULL
);

View File

@@ -100,7 +100,7 @@ BEGIN
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error (
id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT
, id_type INT NULL
, id_type INT
, code VARCHAR(250) NOT NULL
, msg TEXT NOT NULL
);
@@ -356,14 +356,14 @@ BEGIN
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error (
id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT
, id_type INT NULL
, id_type INT
, code VARCHAR(250) NOT NULL
, msg TEXT NOT NULL
);
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Split_Id_Calc_Command_Button_Link (
substring VARCHAR(4000) NOT NULL
, as_int INT NULL
, as_int INT
);
DELETE FROM tmp_Split_Id_Calc_Command_Button_Link;

View File

@@ -32,7 +32,7 @@ BEGIN
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error (
id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT
, id_type INT NULL
, id_type INT
, code VARCHAR(250)
, msg TEXT NOT NULL
);
@@ -108,7 +108,7 @@ BEGIN
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error (
id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT
, id_type INT NULL
, id_type INT
, code VARCHAR(250)
, msg TEXT NOT NULL
);

View File

@@ -43,7 +43,7 @@ BEGIN
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error_Calc_Weather (
id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT
, id_type INT NULL
, id_type INT
, code VARCHAR(250) NOT NULL
, msg TEXT NOT NULL
);
@@ -138,20 +138,20 @@ BEGIN
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error_Calc_Weather (
id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT
, id_type INT NULL
, id_type INT
, code VARCHAR(250) NOT NULL
, msg TEXT NOT NULL
);
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Split_Id_Calc_Weather (
substring VARCHAR(4000) NOT NULL
, as_int INT NULL
, as_int INT
);
DELETE FROM tmp_Split_Id_Calc_Weather;
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Split_Name_Calc_Weather (
substring VARCHAR(4000) NOT NULL
, as_int INT NULL
, as_int INT
);
DELETE FROM tmp_Split_Name_Calc_Weather;

View File

@@ -40,7 +40,7 @@ BEGIN
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error (
id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT
, id_type INT NULL
, id_type INT
, code VARCHAR(250) NOT NULL
, msg TEXT NOT NULL
);
@@ -135,7 +135,7 @@ BEGIN
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error (
id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT
, id_type INT NULL
, id_type INT
, code VARCHAR(250) NOT NULL
, msg TEXT NOT NULL
);

View File

@@ -43,7 +43,7 @@ BEGIN
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error_Calc_Lighting_Level (
id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT
, id_type INT NULL
, id_type INT
, code VARCHAR(250) NOT NULL
, msg TEXT NOT NULL
);
@@ -138,20 +138,20 @@ BEGIN
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error_Calc_Lighting_Level (
id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT
, id_type INT NULL
, id_type INT
, code VARCHAR(250) NOT NULL
, msg TEXT NOT NULL
);
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Split_Id_Calc_Lighting_Level (
substring VARCHAR(4000) NOT NULL
, as_int INT NULL
, as_int INT
);
DELETE FROM tmp_Split_Id_Calc_Lighting_Level;
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Split_Name_Calc_Lighting_Level (
substring VARCHAR(4000) NOT NULL
, as_int INT NULL
, as_int INT
);
DELETE FROM tmp_Split_Name_Calc_Lighting_Level;

View File

@@ -40,7 +40,7 @@ BEGIN
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error (
id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT
, id_type INT NULL
, id_type INT
, code VARCHAR(250) NOT NULL
, msg TEXT NOT NULL
);
@@ -135,7 +135,7 @@ BEGIN
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error (
id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT
, id_type INT NULL
, id_type INT
, code VARCHAR(250) NOT NULL
, msg TEXT NOT NULL
);

View File

@@ -65,7 +65,7 @@ BEGIN
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error_Calc_Assessment (
id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT
, id_type INT NULL
, id_type INT
, code VARCHAR(250) NOT NULL
, msg TEXT NOT NULL
);
@@ -237,20 +237,20 @@ BEGIN
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error_Calc_Assessment (
id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT
, id_type INT NULL
, id_type INT
, code VARCHAR(250) NOT NULL
, msg TEXT NOT NULL
);
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Split_Id_Calc_Assessment (
substring VARCHAR(4000) NOT NULL
, as_int INT NULL
, as_int INT
);
DELETE FROM tmp_Split_Id_Calc_Assessment;
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Split_Notes_Calc_Assessment (
substring VARCHAR(4000) NOT NULL
, as_int INT NULL
, as_int INT
);
DELETE FROM tmp_Split_Notes_Calc_Assessment;

View File

@@ -60,7 +60,7 @@ BEGIN
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error (
id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT
, id_type INT NULL
, id_type INT
, code VARCHAR(250) NOT NULL
, msg TEXT NOT NULL
);
@@ -171,7 +171,7 @@ BEGIN
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error (
id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT
, id_type INT NULL
, id_type INT
, code VARCHAR(250) NOT NULL
, msg TEXT NOT NULL
);

View File

@@ -32,7 +32,7 @@ BEGIN
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error (
id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT
, id_type INT NULL
, id_type INT
, code VARCHAR(250)
, msg TEXT NOT NULL
);
@@ -64,6 +64,22 @@ BEGIN
INNER JOIN parts.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type
;
START TRANSACTION;
INSERT INTO parts.DOG_Msg_Error_Temp (
id_type
, code
, msg
, guid
)
SELECT
t_ERROR.id_type
, t_ERROR.code
, t_ERROR.msg
, a_guid
FROM tmp_Msg_Error t_ERROR
;
COMMIT;
DROP TABLE IF EXISTS tmp_Msg_Error;
END;
@@ -112,7 +128,7 @@ BEGIN
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error (
id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT
, id_type INT NULL
, id_type INT
, code VARCHAR(250)
, msg TEXT NOT NULL
);
@@ -171,7 +187,7 @@ BEGIN
UPDATE tmp_Assessment t_ASSESSMENT
LEFT JOIN parts.DOG_Assessment ASSESSMENT ON t_ASSESSMENT.id_assessment = ASSESSMENT.id_assessment
SET t_ASSESSMENT.name_error = CONCAT(
CONVERT(COALESCE(t_ASSESSMENT.created_on, ASSESSMENT.created_on, v_time_start), CHAR)
CONVERT(COALESCE(ASSESSMENT.created_on, v_time_start), CHAR)
, CASE WHEN t_ASSESSMENT.notes IS NOT NULL THEN CONCAT(' - ', t_ASSESSMENT.notes) ELSE '' END
/*
COALESCE(WEATHER.name, '(No Weather)')
@@ -281,10 +297,10 @@ BEGIN
IF EXISTS (
SELECT *
FROM tmp_Assessment t_ASSESSMENT
LEFT JOIN demo.DOG_User USER_HANDLER ON t_ASSESSMENT.id_user_handler = USER_HANDLER.id_user_handler
LEFT JOIN demo.DOG_User USER_HANDLER ON t_ASSESSMENT.id_user_handler = USER_HANDLER.id_user
WHERE
ISNULL(t_ASSESSMENT.id_user_handler)
OR ISNULL(USER_HANDLER.id_user_handler)
OR ISNULL(USER_HANDLER.id_user)
OR USER_HANDLER.active = 0
) THEN
INSERT INTO tmp_Msg_Error (
@@ -297,10 +313,10 @@ BEGIN
, v_code_type_error_bad_data
, CONCAT('The following Dog User_Handler Assessment(s) do not have a valid User_Handler: ', GROUP_CONCAT(t_ASSESSMENT.name_error SEPARATOR ', ')) AS msg
FROM tmp_Assessment t_ASSESSMENT
LEFT JOIN parts.DOG_User USER_HANDLER ON t_ASSESSMENT.id_user_handler = USER_HANDLER.id_user_handler
LEFT JOIN parts.DOG_User USER_HANDLER ON t_ASSESSMENT.id_user_handler = USER_HANDLER.id_user
WHERE
ISNULL(t_ASSESSMENT.id_user_handler)
OR ISNULL(USER_HANDLER.id_user_handler)
OR ISNULL(USER_HANDLER.id_user)
OR USER_HANDLER.active = 0
;
END IF;
@@ -399,7 +415,8 @@ BEGIN
;
INSERT INTO parts.DOG_Assessment (
id_weather
id_temp
, id_weather
, id_lighting_level
, id_location
, id_user_handler
@@ -411,7 +428,8 @@ BEGIN
, created_on
)
SELECT
t_ASSESSMENT.id_weather AS id_weather
t_ASSESSMENT.id_temp
, t_ASSESSMENT.id_weather AS id_weather
, t_ASSESSMENT.id_lighting_level AS id_lighting_level
, t_ASSESSMENT.id_location AS id_location
, t_ASSESSMENT.id_user_handler AS id_user_handler
@@ -426,6 +444,20 @@ BEGIN
t_ASSESSMENT.is_new = 1
AND t_ASSESSMENT.active = 1
;
INSERT INTO parts.DOG_Msg_Error_Temp (
id_type
, code
, msg
, guid
)
SELECT
t_ERROR.id_type
, t_ERROR.code
, t_ERROR.msg
, a_guid
FROM tmp_Msg_Error t_ERROR
;
COMMIT;
END IF;

View File

@@ -43,7 +43,7 @@ BEGIN
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error_Calc_Distraction_Type (
id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT
, id_type INT NULL
, id_type INT
, code VARCHAR(250) NOT NULL
, msg TEXT NOT NULL
);
@@ -138,20 +138,20 @@ BEGIN
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error_Calc_Distraction_Type (
id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT
, id_type INT NULL
, id_type INT
, code VARCHAR(250) NOT NULL
, msg TEXT NOT NULL
);
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Split_Id_Calc_Distraction_Type (
substring VARCHAR(4000) NOT NULL
, as_int INT NULL
, as_int INT
);
DELETE FROM tmp_Split_Id_Calc_Distraction_Type;
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Split_Name_Calc_Distraction_Type (
substring VARCHAR(4000) NOT NULL
, as_int INT NULL
, as_int INT
);
DELETE FROM tmp_Split_Name_Calc_Distraction_Type;

View File

@@ -40,7 +40,7 @@ BEGIN
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error (
id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT
, id_type INT NULL
, id_type INT
, code VARCHAR(250) NOT NULL
, msg TEXT NOT NULL
);
@@ -135,7 +135,7 @@ BEGIN
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error (
id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT
, id_type INT NULL
, id_type INT
, code VARCHAR(250) NOT NULL
, msg TEXT NOT NULL
);

View File

@@ -43,7 +43,7 @@ BEGIN
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error_Calc_Distraction_Intensity_Level (
id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT
, id_type INT NULL
, id_type INT
, code VARCHAR(250) NOT NULL
, msg TEXT NOT NULL
);
@@ -138,20 +138,20 @@ BEGIN
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error_Calc_Distraction_Intensity_Level (
id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT
, id_type INT NULL
, id_type INT
, code VARCHAR(250) NOT NULL
, msg TEXT NOT NULL
);
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Split_Id_Calc_Distraction_Intensity_Level (
substring VARCHAR(4000) NOT NULL
, as_int INT NULL
, as_int INT
);
DELETE FROM tmp_Split_Id_Calc_Distraction_Intensity_Level;
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Split_Name_Calc_Distraction_Intensity_Level (
substring VARCHAR(4000) NOT NULL
, as_int INT NULL
, as_int INT
);
DELETE FROM tmp_Split_Name_Calc_Distraction_Intensity_Level;

View File

@@ -40,7 +40,7 @@ BEGIN
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error (
id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT
, id_type INT NULL
, id_type INT
, code VARCHAR(250) NOT NULL
, msg TEXT NOT NULL
);
@@ -135,7 +135,7 @@ BEGIN
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error (
id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT
, id_type INT NULL
, id_type INT
, code VARCHAR(250) NOT NULL
, msg TEXT NOT NULL
);

View File

@@ -99,7 +99,7 @@ BEGIN
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error_Calc_Distraction (
id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT
, id_type INT NULL
, id_type INT
, code VARCHAR(250) NOT NULL
, msg TEXT NOT NULL
);
@@ -339,20 +339,20 @@ BEGIN
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error_Calc_Distraction (
id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT
, id_type INT NULL
, id_type INT
, code VARCHAR(250) NOT NULL
, msg TEXT NOT NULL
);
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Split_Id_Calc_Distraction (
substring VARCHAR(4000) NOT NULL
, as_int INT NULL
, as_int INT
);
DELETE FROM tmp_Split_Id_Calc_Distraction;
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Split_Notes_Calc_Distraction (
substring VARCHAR(4000) NOT NULL
, as_int INT NULL
, as_int INT
);
DELETE FROM tmp_Split_Notes_Calc_Distraction;

View File

@@ -93,7 +93,7 @@ BEGIN
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error (
id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT
, id_type INT NULL
, id_type INT
, code VARCHAR(250) NOT NULL
, msg TEXT NOT NULL
);
@@ -243,7 +243,7 @@ BEGIN
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error (
id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT
, id_type INT NULL
, id_type INT
, code VARCHAR(250) NOT NULL
, msg TEXT NOT NULL
);

View File

@@ -32,7 +32,7 @@ BEGIN
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error (
id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT
, id_type INT NULL
, id_type INT
, code VARCHAR(250)
, msg TEXT NOT NULL
);
@@ -64,6 +64,22 @@ BEGIN
INNER JOIN parts.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type
;
START TRANSACTION;
INSERT INTO parts.DOG_Msg_Error_Temp (
id_type
, code
, msg
, guid
)
SELECT
t_ERROR.id_type
, t_ERROR.code
, t_ERROR.msg
, a_guid
FROM tmp_Msg_Error t_ERROR
;
COMMIT;
DROP TABLE IF EXISTS tmp_Msg_Error;
END;
@@ -118,7 +134,7 @@ BEGIN
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error (
id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT
, id_type INT NULL
, id_type INT
, code VARCHAR(250)
, msg TEXT NOT NULL
);
@@ -213,7 +229,7 @@ BEGIN
, ' - '
, COALESCE(DISTRACTION_INTENSITY_LEVEL_SCENT.name, '(No Distraction Intensity Level Touch)')
, ' - x'
, CONVERT(COALESCE(t_ASSESSMENT.quantity, 0), CHAR)
, CONVERT(COALESCE(t_DISTRACTION.quantity, 0), CHAR)
)
;
@@ -257,10 +273,10 @@ BEGIN
IF EXISTS (
SELECT *
FROM tmp_Distraction t_DISTRACTION
LEFT JOIN demo.DOG_Distraction_Type DISTRACTION_TYPE ON t_DISTRACTION.id_distraction_type = DISTRACTION_TYPE.id_distraction_type
LEFT JOIN demo.DOG_Distraction_Type DISTRACTION_TYPE ON t_DISTRACTION.id_distraction_type = DISTRACTION_TYPE.id_type
WHERE
ISNULL(t_DISTRACTION.id_distraction_type)
OR ISNULL(DISTRACTION_TYPE.id_distraction_type)
OR ISNULL(DISTRACTION_TYPE.id_type)
OR DISTRACTION_TYPE.active = 0
) THEN
INSERT INTO tmp_Msg_Error (
@@ -273,10 +289,10 @@ BEGIN
, v_code_type_error_bad_data
, CONCAT('The following Dog Distraction_Type Distraction(s) do not have a valid Distraction_Type: ', GROUP_CONCAT(t_DISTRACTION.name_error SEPARATOR ', ')) AS msg
FROM tmp_Distraction t_DISTRACTION
LEFT JOIN parts.DOG_Distraction_Type DISTRACTION_TYPE ON t_DISTRACTION.id_distraction_type = DISTRACTION_TYPE.id_distraction_type
LEFT JOIN parts.DOG_Distraction_Type DISTRACTION_TYPE ON t_DISTRACTION.id_distraction_type = DISTRACTION_TYPE.id_type
WHERE
ISNULL(t_DISTRACTION.id_distraction_type)
OR ISNULL(DISTRACTION_TYPE.id_distraction_type)
OR ISNULL(DISTRACTION_TYPE.id_type)
OR DISTRACTION_TYPE.active = 0
;
END IF;
@@ -284,10 +300,10 @@ BEGIN
IF EXISTS (
SELECT *
FROM tmp_Distraction t_DISTRACTION
LEFT JOIN demo.DOG_Distraction_Intensity_Level DISTRACTION_INTENSITY_LEVEL_EMOTIONAL ON t_DISTRACTION.id_intensity_level_emotional = DISTRACTION_INTENSITY_LEVEL_EMOTIONAL.id_intensity_level_emotional
LEFT JOIN demo.DOG_Distraction_Intensity_Level DISTRACTION_INTENSITY_LEVEL_EMOTIONAL ON t_DISTRACTION.id_intensity_level_emotional = DISTRACTION_INTENSITY_LEVEL_EMOTIONAL.id_intensity_level
WHERE
ISNULL(t_DISTRACTION.id_intensity_level_emotional)
OR ISNULL(DISTRACTION_INTENSITY_LEVEL_EMOTIONAL.id_intensity_level_emotional)
OR ISNULL(DISTRACTION_INTENSITY_LEVEL_EMOTIONAL.id_intensity_level)
OR DISTRACTION_INTENSITY_LEVEL_EMOTIONAL.active = 0
) THEN
INSERT INTO tmp_Msg_Error (
@@ -300,10 +316,10 @@ BEGIN
, v_code_type_error_bad_data
, CONCAT('The following Distraction(s) do not have a valid Distraction_Intensity_Level_Emotional: ', GROUP_CONCAT(t_DISTRACTION.name_error SEPARATOR ', ')) AS msg
FROM tmp_Distraction t_DISTRACTION
LEFT JOIN parts.DOG_Distraction_Intensity_Level DISTRACTION_INTENSITY_LEVEL_EMOTIONAL ON t_DISTRACTION.id_intensity_level_emotional = DISTRACTION_INTENSITY_LEVEL_EMOTIONAL.id_intensity_level_emotional
LEFT JOIN parts.DOG_Distraction_Intensity_Level DISTRACTION_INTENSITY_LEVEL_EMOTIONAL ON t_DISTRACTION.id_intensity_level_emotional = DISTRACTION_INTENSITY_LEVEL_EMOTIONAL.id_intensity_level
WHERE
ISNULL(t_DISTRACTION.id_intensity_level_emotional)
OR ISNULL(DISTRACTION_INTENSITY_LEVEL_EMOTIONAL.id_intensity_level_emotional)
OR ISNULL(DISTRACTION_INTENSITY_LEVEL_EMOTIONAL.id_intensity_level)
OR DISTRACTION_INTENSITY_LEVEL_EMOTIONAL.active = 0
;
END IF;
@@ -314,7 +330,7 @@ BEGIN
LEFT JOIN demo.DOG_Distraction_Intensity_Level DISTRACTION_INTENSITY_LEVEL_SCENT ON t_DISTRACTION.id_intensity_level_scent = DISTRACTION_INTENSITY_LEVEL_SCENT.id_intensity_level
WHERE
ISNULL(t_DISTRACTION.id_intensity_level_scent)
OR ISNULL(DISTRACTION_INTENSITY_LEVEL_SCENT.id_intensity_level_scent)
OR ISNULL(DISTRACTION_INTENSITY_LEVEL_SCENT.id_intensity_level)
OR DISTRACTION_INTENSITY_LEVEL_SCENT.active = 0
) THEN
INSERT INTO tmp_Msg_Error (
@@ -330,7 +346,7 @@ BEGIN
LEFT JOIN parts.DOG_Distraction_Intensity_Level DISTRACTION_INTENSITY_LEVEL_SCENT ON t_DISTRACTION.id_intensity_level_scent = DISTRACTION_INTENSITY_LEVEL_SCENT.id_intensity_level
WHERE
ISNULL(t_DISTRACTION.id_intensity_level_scent)
OR ISNULL(DISTRACTION_INTENSITY_LEVEL_SCENT.id_intensity_level_scent)
OR ISNULL(DISTRACTION_INTENSITY_LEVEL_SCENT.id_intensity_level)
OR DISTRACTION_INTENSITY_LEVEL_SCENT.active = 0
;
END IF;
@@ -341,7 +357,7 @@ BEGIN
LEFT JOIN demo.DOG_Distraction_Intensity_Level DISTRACTION_INTENSITY_LEVEL_SIGHT ON t_DISTRACTION.id_intensity_level_sight = DISTRACTION_INTENSITY_LEVEL_SIGHT.id_intensity_level
WHERE
ISNULL(t_DISTRACTION.id_intensity_level_sight)
OR ISNULL(DISTRACTION_INTENSITY_LEVEL_SIGHT.id_intensity_level_sight)
OR ISNULL(DISTRACTION_INTENSITY_LEVEL_SIGHT.id_intensity_level)
OR DISTRACTION_INTENSITY_LEVEL_SIGHT.active = 0
) THEN
INSERT INTO tmp_Msg_Error (
@@ -357,7 +373,7 @@ BEGIN
LEFT JOIN parts.DOG_Distraction_Intensity_Level DISTRACTION_INTENSITY_LEVEL_SIGHT ON t_DISTRACTION.id_intensity_level_sight = DISTRACTION_INTENSITY_LEVEL_SIGHT.id_intensity_level
WHERE
ISNULL(t_DISTRACTION.id_intensity_level_sight)
OR ISNULL(DISTRACTION_INTENSITY_LEVEL_SIGHT.id_intensity_level_sight)
OR ISNULL(DISTRACTION_INTENSITY_LEVEL_SIGHT.id_intensity_level)
OR DISTRACTION_INTENSITY_LEVEL_SIGHT.active = 0
;
END IF;
@@ -368,7 +384,7 @@ BEGIN
LEFT JOIN demo.DOG_Distraction_Intensity_Level DISTRACTION_INTENSITY_LEVEL_SOUND ON t_DISTRACTION.id_intensity_level_sound = DISTRACTION_INTENSITY_LEVEL_SOUND.id_intensity_level
WHERE
ISNULL(t_DISTRACTION.id_intensity_level_sound)
OR ISNULL(DISTRACTION_INTENSITY_LEVEL_SOUND.id_intensity_level_sound)
OR ISNULL(DISTRACTION_INTENSITY_LEVEL_SOUND.id_intensity_level)
OR DISTRACTION_INTENSITY_LEVEL_SOUND.active = 0
) THEN
INSERT INTO tmp_Msg_Error (
@@ -384,7 +400,7 @@ BEGIN
LEFT JOIN parts.DOG_Distraction_Intensity_Level DISTRACTION_INTENSITY_LEVEL_SOUND ON t_DISTRACTION.id_intensity_level_sound = DISTRACTION_INTENSITY_LEVEL_SOUND.id_intensity_level
WHERE
ISNULL(t_DISTRACTION.id_intensity_level_sound)
OR ISNULL(DISTRACTION_INTENSITY_LEVEL_SOUND.id_intensity_level_sound)
OR ISNULL(DISTRACTION_INTENSITY_LEVEL_SOUND.id_intensity_level)
OR DISTRACTION_INTENSITY_LEVEL_SOUND.active = 0
;
END IF;
@@ -395,7 +411,7 @@ BEGIN
LEFT JOIN demo.DOG_Distraction_Intensity_Level DISTRACTION_INTENSITY_LEVEL_TOUCH ON t_DISTRACTION.id_intensity_level_touch = DISTRACTION_INTENSITY_LEVEL_TOUCH.id_intensity_level
WHERE
ISNULL(t_DISTRACTION.id_intensity_level_touch)
OR ISNULL(DISTRACTION_INTENSITY_LEVEL_TOUCH.id_intensity_level_touch)
OR ISNULL(DISTRACTION_INTENSITY_LEVEL_TOUCH.id_intensity_level)
OR DISTRACTION_INTENSITY_LEVEL_TOUCH.active = 0
) THEN
INSERT INTO tmp_Msg_Error (
@@ -411,7 +427,7 @@ BEGIN
LEFT JOIN parts.DOG_Distraction_Intensity_Level DISTRACTION_INTENSITY_LEVEL_TOUCH ON t_DISTRACTION.id_intensity_level_touch = DISTRACTION_INTENSITY_LEVEL_TOUCH.id_intensity_level
WHERE
ISNULL(t_DISTRACTION.id_intensity_level_touch)
OR ISNULL(DISTRACTION_INTENSITY_LEVEL_TOUCH.id_intensity_level_touch)
OR ISNULL(DISTRACTION_INTENSITY_LEVEL_TOUCH.id_intensity_level)
OR DISTRACTION_INTENSITY_LEVEL_TOUCH.active = 0
;
END IF;
@@ -513,7 +529,8 @@ BEGIN
;
INSERT INTO parts.DOG_Distraction (
id_assessment
id_temp
, id_assessment
, id_distraction_type
, id_intensity_level_emotional
, id_intensity_level_scent
@@ -528,7 +545,8 @@ BEGIN
, created_on
)
SELECT
t_DISTRACTION.id_assessment AS id_assessment
t_DISTRACTION.id_temp
, t_DISTRACTION.id_assessment AS id_assessment
, t_DISTRACTION.id_distraction_type AS id_distraction_type
, t_DISTRACTION.id_intensity_level_emotional AS id_intensity_level_emotional
, t_DISTRACTION.id_intensity_level_scent AS id_intensity_level_scent
@@ -546,6 +564,20 @@ BEGIN
t_DISTRACTION.is_new = 1
AND t_DISTRACTION.active = 1
;
INSERT INTO parts.DOG_Msg_Error_Temp (
id_type
, code
, msg
, guid
)
SELECT
t_ERROR.id_type
, t_ERROR.code
, t_ERROR.msg
, a_guid
FROM tmp_Msg_Error t_ERROR
;
COMMIT;
END IF;

View File

@@ -43,7 +43,7 @@ BEGIN
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error_Calc_Bribe (
id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT
, id_type INT NULL
, id_type INT
, code VARCHAR(250) NOT NULL
, msg TEXT NOT NULL
);
@@ -138,20 +138,20 @@ BEGIN
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error_Calc_Bribe (
id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT
, id_type INT NULL
, id_type INT
, code VARCHAR(250) NOT NULL
, msg TEXT NOT NULL
);
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Split_Id_Calc_Bribe (
substring VARCHAR(4000) NOT NULL
, as_int INT NULL
, as_int INT
);
DELETE FROM tmp_Split_Id_Calc_Bribe;
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Split_Name_Calc_Bribe (
substring VARCHAR(4000) NOT NULL
, as_int INT NULL
, as_int INT
);
DELETE FROM tmp_Split_Name_Calc_Bribe;

View File

@@ -40,7 +40,7 @@ BEGIN
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error (
id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT
, id_type INT NULL
, id_type INT
, code VARCHAR(250) NOT NULL
, msg TEXT NOT NULL
);
@@ -135,7 +135,7 @@ BEGIN
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error (
id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT
, id_type INT NULL
, id_type INT
, code VARCHAR(250) NOT NULL
, msg TEXT NOT NULL
);

View File

@@ -10,8 +10,8 @@ CREATE PROCEDURE parts.p_dog_calc_assessment_command_modality_link (
, IN a_get_all_link BIT
, IN a_get_inactive_link BIT
, IN a_ids_link TEXT
, IN a_min_distance_from_handler_link FLOAT
, IN a_max_distance_from_handler_link FLOAT
, IN a_min_distance_from_handler_metres_link FLOAT
, IN a_max_distance_from_handler_metres_link FLOAT
, IN a_value_is_in_sight_of_handler_link BIT
, IN a_value_is_in_scent_range_of_handler_link BIT
, IN a_value_is_in_hearing_range_of_handler_link BIT
@@ -81,8 +81,8 @@ BEGIN
DECLARE v_has_filter_assessment_command_modality_link_is_in_scent_range_of_handler BIT;
DECLARE v_has_filter_assessment_command_modality_link_is_in_hearing_range_of_handler BIT;
DECLARE v_has_filter_assessment_command_modality_link_is_on_lead BIT;
DECLARE v_has_filter_assessment_command_modality_link_distance_from_handler_min BIT;
DECLARE v_has_filter_assessment_command_modality_link_distance_from_handler_max BIT;
DECLARE v_has_filter_assessment_command_modality_link_distance_from_handler_metres_min BIT;
DECLARE v_has_filter_assessment_command_modality_link_distance_from_handler_metres_max BIT;
DECLARE v_has_filter_assessment_command_modality_link_trial_count_min BIT;
DECLARE v_has_filter_assessment_command_modality_link_trial_count_max BIT;
DECLARE v_id_access_level_view INT;
@@ -104,7 +104,7 @@ BEGIN
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error_Calc_ACM_Link (
id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT
, id_type INT NULL
, id_type INT
, code VARCHAR(250) NOT NULL
, msg TEXT NOT NULL
);
@@ -155,8 +155,8 @@ BEGIN
SET a_get_inactive_link := IFNULL(a_get_inactive_link, 0);
SET a_ids_link := TRIM(IFNULL(a_ids_link, ''));
/*
, IN a_min_distance_from_handler_link FLOAT
, IN a_max_distance_from_handler_link FLOAT
, IN a_min_distance_from_handler_metres_link FLOAT
, IN a_max_distance_from_handler_metres_link FLOAT
, IN a_value_is_in_sight_of_handler_link INT
, IN a_value_is_in_scent_range_of_handler_link INT
, IN a_value_is_in_hearing_range_of_handler_link INT
@@ -178,8 +178,8 @@ BEGIN
, a_get_all_link
, a_get_inactive_link
, a_ids_link
, a_min_distance_from_handler_link
, a_max_distance_from_handler_link
, a_min_distance_from_handler_metres_link
, a_max_distance_from_handler_metres_link
, a_value_is_in_sight_of_handler_link
, a_value_is_in_scent_range_of_handler_link
, a_value_is_in_hearing_range_of_handler_link
@@ -319,7 +319,7 @@ BEGIN
, id_command INT
, id_command_modality INT
, id_bribe INT
, distance_from_handler FLOAT
, 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
@@ -332,14 +332,14 @@ BEGIN
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error_Calc_ACM_Link (
id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT
, id_type INT NULL
, id_type INT
, code VARCHAR(250) NOT NULL
, msg TEXT NOT NULL
);
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Split_Id_Calc_ACM_Link (
substring VARCHAR(4000) NOT NULL
, as_int INT NULL
, as_int INT
);
DELETE FROM tmp_Split_Id_Calc_ACM_Link;
@@ -348,8 +348,8 @@ BEGIN
SET v_has_filter_assessment_command_modality_link_is_in_scent_range_of_handler := NOT ISNULL(a_value_is_in_scent_range_of_handler_link);
SET v_has_filter_assessment_command_modality_link_is_in_hearing_range_of_handler := NOT ISNULL(a_value_is_in_hearing_range_of_handler_link);
SET v_has_filter_assessment_command_modality_link_is_on_lead := NOT ISNULL(a_value_is_on_lead_link);
SET v_has_filter_assessment_command_modality_link_distance_from_handler_min := NOT ISNULL(a_min_distance_from_handler_link);
SET v_has_filter_assessment_command_modality_link_distance_from_handler_max := NOT ISNULL(a_max_distance_from_handler_link);
SET v_has_filter_assessment_command_modality_link_distance_from_handler_metres_min := NOT ISNULL(a_min_distance_from_handler_metres_link);
SET v_has_filter_assessment_command_modality_link_distance_from_handler_metres_max := NOT ISNULL(a_max_distance_from_handler_metres_link);
SET v_has_filter_assessment_command_modality_link_trial_count_min := NOT ISNULL(a_min_trial_count_link);
SET v_has_filter_assessment_command_modality_link_trial_count_max := NOT ISNULL(a_max_trial_count_link);
@@ -769,7 +769,7 @@ BEGIN
, ASSESSMENT_COMMAND_MODALITY_LINK.id_command
, ASSESSMENT_COMMAND_MODALITY_LINK.id_command_modality
, ASSESSMENT_COMMAND_MODALITY_LINK.id_bribe
, ASSESSMENT_COMMAND_MODALITY_LINK.distance_from_handler
, ASSESSMENT_COMMAND_MODALITY_LINK.distance_from_handler_metres
, ASSESSMENT_COMMAND_MODALITY_LINK.is_in_sight_of_handler
, ASSESSMENT_COMMAND_MODALITY_LINK.is_in_scent_range_of_handler
, ASSESSMENT_COMMAND_MODALITY_LINK.is_in_hearing_range_of_handler
@@ -786,18 +786,18 @@ BEGIN
AND v_has_filter_assessment_command_modality_link_is_in_scent_range_of_handler = 0
AND v_has_filter_assessment_command_modality_link_is_in_hearing_range_of_handler = 0
AND v_has_filter_assessment_command_modality_link_is_on_lead = 0
AND v_has_filter_assessment_command_modality_link_distance_from_handler_min = 0
AND v_has_filter_assessment_command_modality_link_distance_from_handler_max = 0
AND v_has_filter_assessment_command_modality_link_distance_from_handler_metres_min = 0
AND v_has_filter_assessment_command_modality_link_distance_from_handler_metres_max = 0
AND v_has_filter_assessment_command_modality_link_trial_count_min = 0
AND v_has_filter_assessment_command_modality_link_trial_count_max = 0
)
OR (
v_has_filter_assessment_command_modality_link_distance_from_handler_min = 0
OR ASSESSMENT_COMMAND_MODALITY_LINK.distance_from_handler >= a_min_distance_from_handler_link
v_has_filter_assessment_command_modality_link_distance_from_handler_metres_min = 0
OR ASSESSMENT_COMMAND_MODALITY_LINK.distance_from_handler_metres >= a_min_distance_from_handler_metres_link
)
OR (
v_has_filter_assessment_command_modality_link_distance_from_handler_max = 0
OR ASSESSMENT_COMMAND_MODALITY_LINK.distance_from_handler <= a_max_distance_from_handler_link
v_has_filter_assessment_command_modality_link_distance_from_handler_metres_max = 0
OR ASSESSMENT_COMMAND_MODALITY_LINK.distance_from_handler_metres <= a_max_distance_from_handler_metres_link
)
OR (
v_has_filter_assessment_command_modality_link_is_in_sight_of_handler = 0
@@ -834,12 +834,12 @@ BEGIN
AND ASSESSMENT_COMMAND_MODALITY_LINK_FILTERS.does_meet_id_filter = 1
)
OR (
v_has_filter_assessment_command_modality_link_distance_from_handler_min = 0
AND ASSESSMENT_COMMAND_MODALITY_LINK.distance_from_handler >= a_min_distance_from_handler_link
v_has_filter_assessment_command_modality_link_distance_from_handler_metres_min = 0
AND ASSESSMENT_COMMAND_MODALITY_LINK.distance_from_handler_metres >= a_min_distance_from_handler_metres_link
)
OR (
v_has_filter_assessment_command_modality_link_distance_from_handler_max = 0
AND ASSESSMENT_COMMAND_MODALITY_LINK.distance_from_handler <= a_max_distance_from_handler_link
v_has_filter_assessment_command_modality_link_distance_from_handler_metres_max = 0
AND ASSESSMENT_COMMAND_MODALITY_LINK.distance_from_handler_metres <= a_max_distance_from_handler_metres_link
)
OR (
v_has_filter_assessment_command_modality_link_is_in_sight_of_handler = 0
@@ -878,7 +878,7 @@ BEGIN
, id_command
, id_command_modality
, id_bribe
, distance_from_handler
, distance_from_handler_metres
, is_in_sight_of_handler
, is_in_scent_range_of_handler
, is_in_hearing_range_of_handler
@@ -912,7 +912,7 @@ BEGIN
, ASSESSMENT_COMMAND_MODALITY_LINK.id_command
, ASSESSMENT_COMMAND_MODALITY_LINK.id_command_modality
, ASSESSMENT_COMMAND_MODALITY_LINK.id_bribe
, ASSESSMENT_COMMAND_MODALITY_LINK.distance_from_handler
, ASSESSMENT_COMMAND_MODALITY_LINK.distance_from_handler_metres
, ASSESSMENT_COMMAND_MODALITY_LINK.is_in_sight_of_handler
, ASSESSMENT_COMMAND_MODALITY_LINK.is_in_scent_range_of_handler
, ASSESSMENT_COMMAND_MODALITY_LINK.is_in_hearing_range_of_handler
@@ -929,18 +929,18 @@ BEGIN
AND v_has_filter_assessment_command_modality_link_is_in_scent_range_of_handler = 0
AND v_has_filter_assessment_command_modality_link_is_in_hearing_range_of_handler = 0
AND v_has_filter_assessment_command_modality_link_is_on_lead = 0
AND v_has_filter_assessment_command_modality_link_distance_from_handler_min = 0
AND v_has_filter_assessment_command_modality_link_distance_from_handler_max = 0
AND v_has_filter_assessment_command_modality_link_distance_from_handler_metres_min = 0
AND v_has_filter_assessment_command_modality_link_distance_from_handler_metres_max = 0
AND v_has_filter_assessment_command_modality_link_trial_count_min = 0
AND v_has_filter_assessment_command_modality_link_trial_count_max = 0
)
OR (
v_has_filter_assessment_command_modality_link_distance_from_handler_min = 0
OR ASSESSMENT_COMMAND_MODALITY_LINK.distance_from_handler >= a_min_distance_from_handler_link
v_has_filter_assessment_command_modality_link_distance_from_handler_metres_min = 0
OR ASSESSMENT_COMMAND_MODALITY_LINK.distance_from_handler_metres >= a_min_distance_from_handler_metres_link
)
OR (
v_has_filter_assessment_command_modality_link_distance_from_handler_max = 0
OR ASSESSMENT_COMMAND_MODALITY_LINK.distance_from_handler <= a_max_distance_from_handler_link
v_has_filter_assessment_command_modality_link_distance_from_handler_metres_max = 0
OR ASSESSMENT_COMMAND_MODALITY_LINK.distance_from_handler_metres <= a_max_distance_from_handler_metres_link
)
OR (
v_has_filter_assessment_command_modality_link_is_in_sight_of_handler = 0
@@ -977,12 +977,12 @@ BEGIN
AND ASSESSMENT_COMMAND_MODALITY_LINK_FILTERS.does_meet_id_filter = 1
)
OR (
v_has_filter_assessment_command_modality_link_distance_from_handler_min = 0
AND ASSESSMENT_COMMAND_MODALITY_LINK.distance_from_handler >= a_min_distance_from_handler_link
v_has_filter_assessment_command_modality_link_distance_from_handler_metres_min = 0
AND ASSESSMENT_COMMAND_MODALITY_LINK.distance_from_handler_metres >= a_min_distance_from_handler_metres_link
)
OR (
v_has_filter_assessment_command_modality_link_distance_from_handler_max = 0
AND ASSESSMENT_COMMAND_MODALITY_LINK.distance_from_handler <= a_max_distance_from_handler_link
v_has_filter_assessment_command_modality_link_distance_from_handler_metres_max = 0
AND ASSESSMENT_COMMAND_MODALITY_LINK.distance_from_handler_metres <= a_max_distance_from_handler_metres_link
)
OR (
v_has_filter_assessment_command_modality_link_is_in_sight_of_handler = 0
@@ -1211,7 +1211,7 @@ BEGIN
, id_command
, id_command_modality
, id_bribe
, distance_from_handler
, distance_from_handler_metres
, is_in_sight_of_handler
, is_in_scent_range_of_handler
, is_in_hearing_range_of_handler
@@ -1229,7 +1229,7 @@ BEGIN
, t_ASSESSMENT_COMMAND_MODALITY_LINK.id_command
, t_ASSESSMENT_COMMAND_MODALITY_LINK.id_command_modality
, t_ASSESSMENT_COMMAND_MODALITY_LINK.id_bribe
, t_ASSESSMENT_COMMAND_MODALITY_LINK.distance_from_handler
, t_ASSESSMENT_COMMAND_MODALITY_LINK.distance_from_handler_metres
, t_ASSESSMENT_COMMAND_MODALITY_LINK.is_in_sight_of_handler
, t_ASSESSMENT_COMMAND_MODALITY_LINK.is_in_scent_range_of_handler
, t_ASSESSMENT_COMMAND_MODALITY_LINK.is_in_hearing_range_of_handler
@@ -1315,8 +1315,8 @@ CALL parts.p_dog_calc_assessment_command_modality_link (
, 1 -- a_get_all_link
, 0 -- a_get_inactive_link
, '' -- a_ids_link
, NULL -- a_min_distance_from_handler_link
, NULL -- a_max_distance_from_handler_link
, NULL -- a_min_distance_from_handler_metres_link
, NULL -- a_max_distance_from_handler_metres_link
, NULL -- a_value_is_in_sight_of_handler_link
, NULL -- a_value_is_in_scent_range_of_handler_link
, NULL -- a_value_is_in_hearing_range_of_handler_link

View File

@@ -9,8 +9,8 @@ CREATE PROCEDURE parts.p_dog_get_many_assessment_command_modality_link (
, IN a_get_all_link BIT
, IN a_get_inactive_link BIT
, IN a_ids_link TEXT
, IN a_min_distance_from_handler_link FLOAT
, IN a_max_distance_from_handler_link FLOAT
, IN a_min_distance_from_handler_metres_link FLOAT
, IN a_max_distance_from_handler_metres_link FLOAT
, IN a_value_is_in_sight_of_handler_link BIT
, IN a_value_is_in_scent_range_of_handler_link BIT
, IN a_value_is_in_hearing_range_of_handler_link BIT
@@ -94,7 +94,7 @@ BEGIN
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error (
id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT
, id_type INT NULL
, id_type INT
, code VARCHAR(250) NOT NULL
, msg TEXT NOT NULL
);
@@ -150,8 +150,8 @@ BEGIN
, a_get_all_link
, a_get_inactive_link
, a_ids_link
, a_min_distance_from_handler_link
, a_max_distance_from_handler_link
, a_min_distance_from_handler_metres_link
, a_max_distance_from_handler_metres_link
, a_value_is_in_sight_of_handler_link
, a_value_is_in_scent_range_of_handler_link
, a_value_is_in_hearing_range_of_handler_link
@@ -230,7 +230,7 @@ BEGIN
, id_command INT
, id_command_modality INT
, id_bribe INT
, distance_from_handler FLOAT
, 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
@@ -243,7 +243,7 @@ BEGIN
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error (
id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT
, id_type INT NULL
, id_type INT
, code VARCHAR(250) NOT NULL
, msg TEXT NOT NULL
);
@@ -335,8 +335,8 @@ BEGIN
, a_get_all_link
, a_get_inactive_link
, a_ids_link
, a_min_distance_from_handler_link
, a_max_distance_from_handler_link
, a_min_distance_from_handler_metres_link
, a_max_distance_from_handler_metres_link
, a_value_is_in_sight_of_handler_link
, a_value_is_in_scent_range_of_handler_link
, a_value_is_in_hearing_range_of_handler_link
@@ -405,8 +405,8 @@ BEGIN
, a_get_all_link
, a_get_inactive_link
, a_ids_link
, a_min_distance_from_handler_link
, a_max_distance_from_handler_link
, a_min_distance_from_handler_metres_link
, a_max_distance_from_handler_metres_link
, a_value_is_in_sight_of_handler_link
, a_value_is_in_scent_range_of_handler_link
, a_value_is_in_hearing_range_of_handler_link
@@ -479,7 +479,7 @@ BEGIN
, id_command
, id_command_modality
, id_bribe
, distance_from_handler
, distance_from_handler_metres
, is_in_sight_of_handler
, is_in_scent_range_of_handler
, is_in_hearing_range_of_handler
@@ -495,7 +495,7 @@ BEGIN
, 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
, 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
@@ -538,7 +538,7 @@ BEGIN
, COMMAND_MODALITY.name AS name_command_modality
, t_ASSESSMENT_COMMAND_MODALITY_LINK.id_bribe
, BRIBE.name AS name_bribe
, t_ASSESSMENT_COMMAND_MODALITY_LINK.distance_from_handler
, t_ASSESSMENT_COMMAND_MODALITY_LINK.distance_from_handler_metres
, t_ASSESSMENT_COMMAND_MODALITY_LINK.is_in_sight_of_handler
, t_ASSESSMENT_COMMAND_MODALITY_LINK.is_in_scent_range_of_handler
, t_ASSESSMENT_COMMAND_MODALITY_LINK.is_in_hearing_range_of_handler
@@ -598,8 +598,8 @@ CALL parts.p_dog_get_many_assessment_command_modality_link (
, 1 -- a_get_all_link
, 0 -- a_get_inactive_link
, '' -- a_ids_link
, NULL -- a_min_distance_from_handler_link
, NULL -- a_max_distance_from_handler_link
, NULL -- a_min_distance_from_handler_metres_link
, NULL -- a_max_distance_from_handler_metres_link
, NULL -- a_value_is_in_sight_of_handler_link
, NULL -- a_value_is_in_scent_range_of_handler_link
, NULL -- a_value_is_in_hearing_range_of_handler_link

View File

@@ -32,7 +32,7 @@ BEGIN
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error (
id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT
, id_type INT NULL
, id_type INT
, code VARCHAR(250)
, msg TEXT NOT NULL
);
@@ -64,6 +64,22 @@ BEGIN
INNER JOIN parts.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type
;
START TRANSACTION;
INSERT INTO parts.DOG_Msg_Error_Temp (
id_type
, code
, msg
, guid
)
SELECT
t_ERROR.id_type
, t_ERROR.code
, t_ERROR.msg
, a_guid
FROM tmp_Msg_Error t_ERROR
;
COMMIT;
DROP TABLE IF EXISTS tmp_Msg_Error;
END;
@@ -87,7 +103,7 @@ BEGIN
, id_command INT
, id_command_modality INT
, id_bribe INT
, distance_from_handler FLOAT
, 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
@@ -105,9 +121,9 @@ BEGIN
, id_command INT
, id_command_modality INT
, id_bribe INT
, id_distance_from_handler INT
, id_is_in_sight_of_handler INT
, id_is_in_scent_range_of_handler INT
, distance_from_handler_metres INT
, is_in_sight_of_handler INT
, is_in_scent_range_of_handler INT
, is_in_hearing_range_of_handler INT
, is_on_lead FLOAT
, trial_count TEXT
@@ -118,7 +134,7 @@ BEGIN
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error (
id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT
, id_type INT NULL
, id_type INT
, code VARCHAR(250)
, msg TEXT NOT NULL
);
@@ -132,12 +148,12 @@ BEGIN
, id_command
, id_command_modality
, id_bribe
, id_distance_from_handler
, id_is_in_sight_of_handler
, id_is_in_scent_range_of_handler
, 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
-- , trial_count
, active
, is_new
)
@@ -161,21 +177,41 @@ BEGIN
, ASSESSMENT_COMMAND_MODALITY_LINK.id_bribe
) AS id_bribe
, COALESCE(
ASSESSMENT_COMMAND_MODALITY_LINK_T.id_distance_from_handler
, ASSESSMENT_COMMAND_MODALITY_LINK.id_distance_from_handler
) AS id_distance_from_handler
ASSESSMENT_COMMAND_MODALITY_LINK_T.distance_from_handler_metres
, ASSESSMENT_COMMAND_MODALITY_LINK.distance_from_handler_metres
, 1
) AS distance_from_handler_metres
, COALESCE(
ASSESSMENT_COMMAND_MODALITY_LINK_T.id_is_in_sight_of_handler
, ASSESSMENT_COMMAND_MODALITY_LINK.id_is_in_sight_of_handler
) AS id_is_in_sight_of_handler
ASSESSMENT_COMMAND_MODALITY_LINK_T.is_in_sight_of_handler
, ASSESSMENT_COMMAND_MODALITY_LINK.is_in_sight_of_handler
, 1
) AS is_in_sight_of_handler
, COALESCE(
ASSESSMENT_COMMAND_MODALITY_LINK_T.id_is_in_scent_range_of_handler
, ASSESSMENT_COMMAND_MODALITY_LINK.id_is_in_scent_range_of_handler
) AS id_is_in_scent_range_of_handler
, ASSESSMENT_COMMAND_MODALITY_LINK_T.is_in_hearing_range_of_handler
, ASSESSMENT_COMMAND_MODALITY_LINK_T.is_on_lead
, ASSESSMENT_COMMAND_MODALITY_LINK_T.trial_count
, COALESCE(ASSESSMENT_COMMAND_MODALITY_LINK_T.active, 1) AS active
ASSESSMENT_COMMAND_MODALITY_LINK_T.is_in_scent_range_of_handler
, ASSESSMENT_COMMAND_MODALITY_LINK.is_in_scent_range_of_handler
, 1
) AS is_in_scent_range_of_handler
, COALESCE(
ASSESSMENT_COMMAND_MODALITY_LINK_T.is_in_hearing_range_of_handler
, ASSESSMENT_COMMAND_MODALITY_LINK.is_in_hearing_range_of_handler
, 1
) AS is_in_hearing_range_of_handler
, COALESCE(
ASSESSMENT_COMMAND_MODALITY_LINK_T.is_on_lead
, ASSESSMENT_COMMAND_MODALITY_LINK.is_on_lead
, 0
) AS is_on_lead
/*
, COALESCE(
ASSESSMENT_COMMAND_MODALITY_LINK_T.trial_count
, ASSESSMENT_COMMAND_MODALITY_LINK.trial_count
) AS trial_count
*/
, COALESCE(
ASSESSMENT_COMMAND_MODALITY_LINK_T.active
, ASSESSMENT_COMMAND_MODALITY_LINK.active
, 1
) AS active
, CASE WHEN COALESCE(ASSESSMENT_COMMAND_MODALITY_LINK_T.id_link, 0) < 1 THEN 1 ELSE 0 END AS is_new
FROM parts.DOG_Assessment_Command_Modality_Link_Temp ASSESSMENT_COMMAND_MODALITY_LINK_T
LEFT JOIN parts.DOG_Assessment_Command_Modality_Link ASSESSMENT_COMMAND_MODALITY_LINK ON ASSESSMENT_COMMAND_MODALITY_LINK_T.id_link = ASSESSMENT_COMMAND_MODALITY_LINK.id_link
@@ -190,30 +226,18 @@ BEGIN
-- Error names
UPDATE tmp_Assessment_Command_Modality_Link t_ASSESSMENT_COMMAND_MODALITY_LINK
LEFT JOIN parts.DOG_Assessment_Command_Modality_Command ASSESSMENT_COMMAND_MODALITY_COMMAND ON t_ASSESSMENT_COMMAND_MODALITY_LINK.id_command = ASSESSMENT_COMMAND_MODALITY_COMMAND.id_type
LEFT JOIN parts.DOG_Assessment_Command_Modality_Link_Intensity_Level ASSESSMENT_COMMAND_MODALITY_LINK_COMMAND_MODALITY ON t_ASSESSMENT_COMMAND_MODALITY_LINK.id_command_modality = ASSESSMENT_COMMAND_MODALITY_LINK_COMMAND_MODALITY.id_intensity_level
LEFT JOIN parts.DOG_Assessment_Command_Modality_Link_Intensity_Level ASSESSMENT_COMMAND_MODALITY_LINK_BRIBE ON t_ASSESSMENT_COMMAND_MODALITY_LINK.id_bribe = ASSESSMENT_COMMAND_MODALITY_LINK_BRIBE.id_intensity_level
LEFT JOIN parts.DOG_Assessment_Command_Modality_Link_Intensity_Level ASSESSMENT_COMMAND_MODALITY_LINK_DISTANCE_FROM_HANDLER ON t_ASSESSMENT_COMMAND_MODALITY_LINK.id_distance_from_handler = ASSESSMENT_COMMAND_MODALITY_LINK_DISTANCE_FROM_HANDLER.id_intensity_level
LEFT JOIN parts.DOG_Assessment_Command_Modality_Link_Intensity_Level ASSESSMENT_COMMAND_MODALITY_LINK_IS_IN_SIGHT_OF_HANDLER ON t_ASSESSMENT_COMMAND_MODALITY_LINK.id_is_in_sight_of_handler = ASSESSMENT_COMMAND_MODALITY_LINK_IS_IN_SIGHT_OF_HANDLER.id_intensity_level
LEFT JOIN parts.DOG_Assessment_Command_Modality_Link_Intensity_Level ASSESSMENT_COMMAND_MODALITY_LINK_IS_IN_SCENT_RANGE_OF_HANDLER ON t_ASSESSMENT_COMMAND_MODALITY_LINK.id_is_in_scent_range_of_handler = ASSESSMENT_COMMAND_MODALITY_LINK_IS_IN_SCENT_RANGE_OF_HANDLER.id_intensity_level
LEFT JOIN parts.DOG_Assessment ASSESSMENT ON t_ASSESSMENT_COMMAND_MODALITY_LINK.id_assessment = ASSESSMENT.id_assessment
LEFT JOIN parts.DOG_Command COMMAND ON t_ASSESSMENT_COMMAND_MODALITY_LINK.id_command = COMMAND.id_command
LEFT JOIN parts.DOG_Command_Modality COMMAND_MODALITY ON t_ASSESSMENT_COMMAND_MODALITY_LINK.id_command_modality = COMMAND_MODALITY.id_command_modality
LEFT JOIN parts.DOG_Bribe BRIBE ON t_ASSESSMENT_COMMAND_MODALITY_LINK.id_bribe = BRIBE.id_bribe
SET t_ASSESSMENT_COMMAND_MODALITY_LINK.name_error = CONCAT(
/*
CONVERT(COALESCE(t_ASSESSMENT_COMMAND_MODALITY_LINK.created_on, ASSESSMENT_COMMAND_MODALITY_LINK.created_on, v_time_start), CHAR)
, CASE WHEN t_ASSESSMENT_COMMAND_MODALITY_LINK.trial_count IS NOT NULL THEN CONCAT(' - ', t_ASSESSMENT_COMMAND_MODALITY_LINK.trial_count) ELSE '' END
*/
COALESCE(ASSESSMENT_COMMAND_MODALITY_COMMAND.name, '(No Assessment_Command_Modality_Link Type)')
COALESCE(CONVERT(ASSESSMENT.created_on, CHAR), '(No Assessment)')
, ' - '
, COALESCE(ASSESSMENT_COMMAND_MODALITY_LINK_COMMAND_MODALITY.name, '(No Assessment_Command_Modality_Link Intensity Level Emotional)')
, COALESCE(COMMAND.name, '(No Command)')
, ' - '
, COALESCE(ASSESSMENT_COMMAND_MODALITY_LINK_BRIBE.name, '(No Assessment_Command_Modality_Link Intensity Level Scent)')
, COALESCE(COMMAND_MODALITY.name, '(No Command Modality)')
, ' - '
, COALESCE(ASSESSMENT_COMMAND_MODALITY_LINK_BRIBE.name, '(No Assessment_Command_Modality_Link Intensity Level Sight)')
, ' - '
, COALESCE(ASSESSMENT_COMMAND_MODALITY_LINK_BRIBE.name, '(No Assessment_Command_Modality_Link Intensity Level Sound)')
, ' - '
, COALESCE(ASSESSMENT_COMMAND_MODALITY_LINK_BRIBE.name, '(No Assessment_Command_Modality_Link Intensity Level Touch)')
, ' - x'
, CONVERT(COALESCE(t_ASSESSMENT.is_in_hearing_range_of_handler, 0), CHAR)
, COALESCE(BRIBE.name, '(No Bribe)')
)
;
@@ -244,7 +268,7 @@ BEGIN
SELECT
v_id_type_error_bad_data
, v_code_type_error_bad_data
, CONCAT('The following Dog Assessment Assessment_Command_Modality_Link(s) do not have a valid Assessment: ', GROUP_CONCAT(t_ASSESSMENT_COMMAND_MODALITY_LINK.name_error SEPARATOR ', ')) AS msg
, CONCAT('The following Dog Assessment Command Modality Link(s) do not have a valid Assessment: ', GROUP_CONCAT(t_ASSESSMENT_COMMAND_MODALITY_LINK.name_error SEPARATOR ', ')) AS msg
FROM tmp_Assessment_Command_Modality_Link t_ASSESSMENT_COMMAND_MODALITY_LINK
LEFT JOIN parts.DOG_Assessment ASSESSMENT ON t_ASSESSMENT_COMMAND_MODALITY_LINK.id_assessment = ASSESSMENT.id_assessment
WHERE
@@ -257,11 +281,11 @@ BEGIN
IF EXISTS (
SELECT *
FROM tmp_Assessment_Command_Modality_Link t_ASSESSMENT_COMMAND_MODALITY_LINK
LEFT JOIN demo.DOG_Assessment_Command_Modality_Command ASSESSMENT_COMMAND_MODALITY_COMMAND ON t_ASSESSMENT_COMMAND_MODALITY_LINK.id_command = ASSESSMENT_COMMAND_MODALITY_COMMAND.id_command
LEFT JOIN demo.DOG_Command COMMAND ON t_ASSESSMENT_COMMAND_MODALITY_LINK.id_command = COMMAND.id_command
WHERE
ISNULL(t_ASSESSMENT_COMMAND_MODALITY_LINK.id_command)
OR ISNULL(ASSESSMENT_COMMAND_MODALITY_COMMAND.id_command)
OR ASSESSMENT_COMMAND_MODALITY_COMMAND.active = 0
OR ISNULL(COMMAND.id_command)
OR COMMAND.active = 0
) THEN
INSERT INTO tmp_Msg_Error (
id_type
@@ -271,24 +295,24 @@ BEGIN
SELECT
v_id_type_error_bad_data
, v_code_type_error_bad_data
, CONCAT('The following Dog Assessment_Command_Modality_Command Assessment_Command_Modality_Link(s) do not have a valid Assessment_Command_Modality_Command: ', GROUP_CONCAT(t_ASSESSMENT_COMMAND_MODALITY_LINK.name_error SEPARATOR ', ')) AS msg
, CONCAT('The following Dog Assessment Command Modality Link(s) do not have a valid Command: ', GROUP_CONCAT(t_ASSESSMENT_COMMAND_MODALITY_LINK.name_error SEPARATOR ', ')) AS msg
FROM tmp_Assessment_Command_Modality_Link t_ASSESSMENT_COMMAND_MODALITY_LINK
LEFT JOIN parts.DOG_Assessment_Command_Modality_Command ASSESSMENT_COMMAND_MODALITY_COMMAND ON t_ASSESSMENT_COMMAND_MODALITY_LINK.id_command = ASSESSMENT_COMMAND_MODALITY_COMMAND.id_command
LEFT JOIN demo.DOG_Command COMMAND ON t_ASSESSMENT_COMMAND_MODALITY_LINK.id_command = COMMAND.id_command
WHERE
ISNULL(t_ASSESSMENT_COMMAND_MODALITY_LINK.id_command)
OR ISNULL(ASSESSMENT_COMMAND_MODALITY_COMMAND.id_command)
OR ASSESSMENT_COMMAND_MODALITY_COMMAND.active = 0
OR ISNULL(COMMAND.id_command)
OR COMMAND.active = 0
;
END IF;
-- id_command_modality
IF EXISTS (
SELECT *
FROM tmp_Assessment_Command_Modality_Link t_ASSESSMENT_COMMAND_MODALITY_LINK
LEFT JOIN demo.DOG_Assessment_Command_Modality_Link_Intensity_Level ASSESSMENT_COMMAND_MODALITY_LINK_COMMAND_MODALITY ON t_ASSESSMENT_COMMAND_MODALITY_LINK.id_command_modality = ASSESSMENT_COMMAND_MODALITY_LINK_COMMAND_MODALITY.id_command_modality
LEFT JOIN demo.DOG_Command_Modality COMMAND_MODALITY ON t_ASSESSMENT_COMMAND_MODALITY_LINK.id_command_modality = COMMAND_MODALITY.id_command_modality
WHERE
ISNULL(t_ASSESSMENT_COMMAND_MODALITY_LINK.id_command_modality)
OR ISNULL(ASSESSMENT_COMMAND_MODALITY_LINK_COMMAND_MODALITY.id_command_modality)
OR ASSESSMENT_COMMAND_MODALITY_LINK_COMMAND_MODALITY.active = 0
OR ISNULL(COMMAND_MODALITY.id_command_modality)
OR COMMAND_MODALITY.active = 0
) THEN
INSERT INTO tmp_Msg_Error (
id_type
@@ -298,24 +322,24 @@ BEGIN
SELECT
v_id_type_error_bad_data
, v_code_type_error_bad_data
, CONCAT('The following Assessment_Command_Modality_Link(s) do not have a valid Assessment_Command_Modality_Link_Command_Modality: ', GROUP_CONCAT(t_ASSESSMENT_COMMAND_MODALITY_LINK.name_error SEPARATOR ', ')) AS msg
, CONCAT('The following Dog Assessment Command Modality Link(s) do not have a valid Command Modality: ', GROUP_CONCAT(t_ASSESSMENT_COMMAND_MODALITY_LINK.name_error SEPARATOR ', ')) AS msg
FROM tmp_Assessment_Command_Modality_Link t_ASSESSMENT_COMMAND_MODALITY_LINK
LEFT JOIN parts.DOG_Assessment_Command_Modality_Link_Intensity_Level ASSESSMENT_COMMAND_MODALITY_LINK_COMMAND_MODALITY ON t_ASSESSMENT_COMMAND_MODALITY_LINK.id_command_modality = ASSESSMENT_COMMAND_MODALITY_LINK_COMMAND_MODALITY.id_command_modality
LEFT JOIN parts.DOG_Command_Modality COMMAND_MODALITY ON t_ASSESSMENT_COMMAND_MODALITY_LINK.id_command_modality = COMMAND_MODALITY.id_command_modality
WHERE
ISNULL(t_ASSESSMENT_COMMAND_MODALITY_LINK.id_command_modality)
OR ISNULL(ASSESSMENT_COMMAND_MODALITY_LINK_COMMAND_MODALITY.id_command_modality)
OR ASSESSMENT_COMMAND_MODALITY_LINK_COMMAND_MODALITY.active = 0
OR ISNULL(COMMAND_MODALITY.id_command_modality)
OR COMMAND_MODALITY.active = 0
;
END IF;
-- id_bribe
IF EXISTS (
SELECT *
FROM tmp_Assessment_Command_Modality_Link t_ASSESSMENT_COMMAND_MODALITY_LINK
LEFT JOIN demo.DOG_Assessment_Command_Modality_Link_Intensity_Level ASSESSMENT_COMMAND_MODALITY_LINK_BRIBE ON t_ASSESSMENT_COMMAND_MODALITY_LINK.id_bribe = ASSESSMENT_COMMAND_MODALITY_LINK_BRIBE.id_intensity_level
LEFT JOIN demo.DOG_Bribe BRIBE ON t_ASSESSMENT_COMMAND_MODALITY_LINK.id_bribe = BRIBE.id_bribe
WHERE
ISNULL(t_ASSESSMENT_COMMAND_MODALITY_LINK.id_bribe)
OR ISNULL(ASSESSMENT_COMMAND_MODALITY_LINK_BRIBE.id_bribe)
OR ASSESSMENT_COMMAND_MODALITY_LINK_BRIBE.active = 0
OR ISNULL(BRIBE.id_bribe)
OR BRIBE.active = 0
) THEN
INSERT INTO tmp_Msg_Error (
id_type
@@ -325,24 +349,20 @@ BEGIN
SELECT
v_id_type_error_bad_data
, v_code_type_error_bad_data
, CONCAT('The following Assessment_Command_Modality_Link(s) do not have a valid Intensity Level Scent: ', GROUP_CONCAT(t_ASSESSMENT_COMMAND_MODALITY_LINK.name_error SEPARATOR ', ')) AS msg
, CONCAT('The following Dog Assessment Command Modality Link(s) do not have a valid Bribe: ', GROUP_CONCAT(t_ASSESSMENT_COMMAND_MODALITY_LINK.name_error SEPARATOR ', ')) AS msg
FROM tmp_Assessment_Command_Modality_Link t_ASSESSMENT_COMMAND_MODALITY_LINK
LEFT JOIN parts.DOG_Assessment_Command_Modality_Link_Intensity_Level ASSESSMENT_COMMAND_MODALITY_LINK_BRIBE ON t_ASSESSMENT_COMMAND_MODALITY_LINK.id_bribe = ASSESSMENT_COMMAND_MODALITY_LINK_BRIBE.id_intensity_level
LEFT JOIN demo.DOG_Bribe BRIBE ON t_ASSESSMENT_COMMAND_MODALITY_LINK.id_bribe = BRIBE.id_bribe
WHERE
ISNULL(t_ASSESSMENT_COMMAND_MODALITY_LINK.id_bribe)
OR ISNULL(ASSESSMENT_COMMAND_MODALITY_LINK_BRIBE.id_bribe)
OR ASSESSMENT_COMMAND_MODALITY_LINK_BRIBE.active = 0
OR ISNULL(BRIBE.id_bribe)
OR BRIBE.active = 0
;
END IF;
-- id_distance_from_handler
-- distance_from_handler_metres
IF EXISTS (
SELECT *
FROM tmp_Assessment_Command_Modality_Link t_ASSESSMENT_COMMAND_MODALITY_LINK
LEFT JOIN demo.DOG_Assessment_Command_Modality_Link_Intensity_Level ASSESSMENT_COMMAND_MODALITY_LINK_DISTANCE_FROM_HANDLER ON t_ASSESSMENT_COMMAND_MODALITY_LINK.id_distance_from_handler = ASSESSMENT_COMMAND_MODALITY_LINK_DISTANCE_FROM_HANDLER.id_intensity_level
WHERE
ISNULL(t_ASSESSMENT_COMMAND_MODALITY_LINK.id_distance_from_handler)
OR ISNULL(ASSESSMENT_COMMAND_MODALITY_LINK_DISTANCE_FROM_HANDLER.id_distance_from_handler)
OR ASSESSMENT_COMMAND_MODALITY_LINK_DISTANCE_FROM_HANDLER.active = 0
WHERE IFNULL(t_ASSESSMENT_COMMAND_MODALITY_LINK.distance_from_handler_metres, -1) < 0
) THEN
INSERT INTO tmp_Msg_Error (
id_type
@@ -352,67 +372,9 @@ BEGIN
SELECT
v_id_type_error_bad_data
, v_code_type_error_bad_data
, CONCAT('The following Assessment_Command_Modality_Link(s) do not have a valid Intensity Level Sight: ', GROUP_CONCAT(t_ASSESSMENT_COMMAND_MODALITY_LINK.name_error SEPARATOR ', ')) AS msg
, CONCAT('The following Assessment_Command_Modality_Link(s) do not have a valid Distance From Handler: ', GROUP_CONCAT(t_ASSESSMENT_COMMAND_MODALITY_LINK.name_error SEPARATOR ', ')) AS msg
FROM tmp_Assessment_Command_Modality_Link t_ASSESSMENT_COMMAND_MODALITY_LINK
LEFT JOIN parts.DOG_Assessment_Command_Modality_Link_Intensity_Level ASSESSMENT_COMMAND_MODALITY_LINK_DISTANCE_FROM_HANDLER ON t_ASSESSMENT_COMMAND_MODALITY_LINK.id_distance_from_handler = ASSESSMENT_COMMAND_MODALITY_LINK_DISTANCE_FROM_HANDLER.id_intensity_level
WHERE
ISNULL(t_ASSESSMENT_COMMAND_MODALITY_LINK.id_distance_from_handler)
OR ISNULL(ASSESSMENT_COMMAND_MODALITY_LINK_DISTANCE_FROM_HANDLER.id_distance_from_handler)
OR ASSESSMENT_COMMAND_MODALITY_LINK_DISTANCE_FROM_HANDLER.active = 0
;
END IF;
-- id_is_in_sight_of_handler
IF EXISTS (
SELECT *
FROM tmp_Assessment_Command_Modality_Link t_ASSESSMENT_COMMAND_MODALITY_LINK
LEFT JOIN demo.DOG_Assessment_Command_Modality_Link_Intensity_Level ASSESSMENT_COMMAND_MODALITY_LINK_IS_IN_SIGHT_OF_HANDLER ON t_ASSESSMENT_COMMAND_MODALITY_LINK.id_is_in_sight_of_handler = ASSESSMENT_COMMAND_MODALITY_LINK_IS_IN_SIGHT_OF_HANDLER.id_intensity_level
WHERE
ISNULL(t_ASSESSMENT_COMMAND_MODALITY_LINK.id_is_in_sight_of_handler)
OR ISNULL(ASSESSMENT_COMMAND_MODALITY_LINK_IS_IN_SIGHT_OF_HANDLER.id_is_in_sight_of_handler)
OR ASSESSMENT_COMMAND_MODALITY_LINK_IS_IN_SIGHT_OF_HANDLER.active = 0
) THEN
INSERT INTO tmp_Msg_Error (
id_type
, code
, msg
)
SELECT
v_id_type_error_bad_data
, v_code_type_error_bad_data
, CONCAT('The following Assessment_Command_Modality_Link(s) do not have a valid Intensity Level Sound: ', GROUP_CONCAT(t_ASSESSMENT_COMMAND_MODALITY_LINK.name_error SEPARATOR ', ')) AS msg
FROM tmp_Assessment_Command_Modality_Link t_ASSESSMENT_COMMAND_MODALITY_LINK
LEFT JOIN parts.DOG_Assessment_Command_Modality_Link_Intensity_Level ASSESSMENT_COMMAND_MODALITY_LINK_IS_IN_SIGHT_OF_HANDLER ON t_ASSESSMENT_COMMAND_MODALITY_LINK.id_is_in_sight_of_handler = ASSESSMENT_COMMAND_MODALITY_LINK_IS_IN_SIGHT_OF_HANDLER.id_intensity_level
WHERE
ISNULL(t_ASSESSMENT_COMMAND_MODALITY_LINK.id_is_in_sight_of_handler)
OR ISNULL(ASSESSMENT_COMMAND_MODALITY_LINK_IS_IN_SIGHT_OF_HANDLER.id_is_in_sight_of_handler)
OR ASSESSMENT_COMMAND_MODALITY_LINK_IS_IN_SIGHT_OF_HANDLER.active = 0
;
END IF;
-- id_is_in_scent_range_of_handler
IF EXISTS (
SELECT *
FROM tmp_Assessment_Command_Modality_Link t_ASSESSMENT_COMMAND_MODALITY_LINK
LEFT JOIN demo.DOG_Assessment_Command_Modality_Link_Intensity_Level ASSESSMENT_COMMAND_MODALITY_LINK_IS_IN_SCENT_RANGE_OF_HANDLER ON t_ASSESSMENT_COMMAND_MODALITY_LINK.id_is_in_scent_range_of_handler = ASSESSMENT_COMMAND_MODALITY_LINK_IS_IN_SCENT_RANGE_OF_HANDLER.id_intensity_level
WHERE
ISNULL(t_ASSESSMENT_COMMAND_MODALITY_LINK.id_is_in_scent_range_of_handler)
OR ISNULL(ASSESSMENT_COMMAND_MODALITY_LINK_IS_IN_SCENT_RANGE_OF_HANDLER.id_is_in_scent_range_of_handler)
OR ASSESSMENT_COMMAND_MODALITY_LINK_IS_IN_SCENT_RANGE_OF_HANDLER.active = 0
) THEN
INSERT INTO tmp_Msg_Error (
id_type
, code
, msg
)
SELECT
v_id_type_error_bad_data
, v_code_type_error_bad_data
, CONCAT('The following Assessment_Command_Modality_Link(s) do not have a valid Intensity Level Touch: ', GROUP_CONCAT(t_ASSESSMENT_COMMAND_MODALITY_LINK.name_error SEPARATOR ', ')) AS msg
FROM tmp_Assessment_Command_Modality_Link t_ASSESSMENT_COMMAND_MODALITY_LINK
LEFT JOIN parts.DOG_Assessment_Command_Modality_Link_Intensity_Level ASSESSMENT_COMMAND_MODALITY_LINK_IS_IN_SCENT_RANGE_OF_HANDLER ON t_ASSESSMENT_COMMAND_MODALITY_LINK.id_is_in_scent_range_of_handler = ASSESSMENT_COMMAND_MODALITY_LINK_IS_IN_SCENT_RANGE_OF_HANDLER.id_intensity_level
WHERE
ISNULL(t_ASSESSMENT_COMMAND_MODALITY_LINK.id_is_in_scent_range_of_handler)
OR ISNULL(ASSESSMENT_COMMAND_MODALITY_LINK_IS_IN_SCENT_RANGE_OF_HANDLER.id_is_in_scent_range_of_handler)
OR ASSESSMENT_COMMAND_MODALITY_LINK_IS_IN_SCENT_RANGE_OF_HANDLER.active = 0
WHERE IFNULL(t_ASSESSMENT_COMMAND_MODALITY_LINK.distance_from_handler_metres, -1) < 0
;
END IF;
@@ -502,42 +464,44 @@ BEGIN
, ASSESSMENT_COMMAND_MODALITY_LINK.id_command = t_ASSESSMENT_COMMAND_MODALITY_LINK.id_command
, ASSESSMENT_COMMAND_MODALITY_LINK.id_command_modality = t_ASSESSMENT_COMMAND_MODALITY_LINK.id_command_modality
, ASSESSMENT_COMMAND_MODALITY_LINK.id_bribe = t_ASSESSMENT_COMMAND_MODALITY_LINK.id_bribe
, ASSESSMENT_COMMAND_MODALITY_LINK.id_distance_from_handler = t_ASSESSMENT_COMMAND_MODALITY_LINK.id_distance_from_handler
, ASSESSMENT_COMMAND_MODALITY_LINK.id_is_in_sight_of_handler = t_ASSESSMENT_COMMAND_MODALITY_LINK.id_is_in_sight_of_handler
, ASSESSMENT_COMMAND_MODALITY_LINK.id_is_in_scent_range_of_handler = t_ASSESSMENT_COMMAND_MODALITY_LINK.id_is_in_scent_range_of_handler
, ASSESSMENT_COMMAND_MODALITY_LINK.distance_from_handler_metres = t_ASSESSMENT_COMMAND_MODALITY_LINK.distance_from_handler_metres
, ASSESSMENT_COMMAND_MODALITY_LINK.is_in_sight_of_handler = t_ASSESSMENT_COMMAND_MODALITY_LINK.is_in_sight_of_handler
, ASSESSMENT_COMMAND_MODALITY_LINK.is_in_scent_range_of_handler = t_ASSESSMENT_COMMAND_MODALITY_LINK.is_in_scent_range_of_handler
, ASSESSMENT_COMMAND_MODALITY_LINK.is_in_hearing_range_of_handler = t_ASSESSMENT_COMMAND_MODALITY_LINK.is_in_hearing_range_of_handler
, ASSESSMENT_COMMAND_MODALITY_LINK.is_on_lead = t_ASSESSMENT_COMMAND_MODALITY_LINK.is_on_lead
, ASSESSMENT_COMMAND_MODALITY_LINK.trial_count = t_ASSESSMENT_COMMAND_MODALITY_LINK.trial_count
-- , ASSESSMENT_COMMAND_MODALITY_LINK.trial_count = t_ASSESSMENT_COMMAND_MODALITY_LINK.trial_count
, ASSESSMENT_COMMAND_MODALITY_LINK.active = t_ASSESSMENT_COMMAND_MODALITY_LINK.active
, ASSESSMENT_COMMAND_MODALITY_LINK.id_change_set = v_id_change_set
;
INSERT INTO parts.DOG_Assessment_Command_Modality_Link (
id_assessment
id_temp
, id_assessment
, id_command
, id_command_modality
, id_bribe
, id_distance_from_handler
, id_is_in_sight_of_handler
, id_is_in_scent_range_of_handler
, 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
-- , trial_count
, active
, id_user_created_by
, created_on
)
SELECT
t_ASSESSMENT_COMMAND_MODALITY_LINK.id_assessment AS id_assessment
t_ASSESSMENT_COMMAND_MODALITY_LINK.id_temp
, t_ASSESSMENT_COMMAND_MODALITY_LINK.id_assessment AS id_assessment
, t_ASSESSMENT_COMMAND_MODALITY_LINK.id_command AS id_command
, t_ASSESSMENT_COMMAND_MODALITY_LINK.id_command_modality AS id_command_modality
, t_ASSESSMENT_COMMAND_MODALITY_LINK.id_bribe AS id_bribe
, t_ASSESSMENT_COMMAND_MODALITY_LINK.id_distance_from_handler AS id_distance_from_handler
, t_ASSESSMENT_COMMAND_MODALITY_LINK.id_is_in_sight_of_handler AS id_is_in_sight_of_handler
, t_ASSESSMENT_COMMAND_MODALITY_LINK.id_is_in_scent_range_of_handler AS id_is_in_scent_range_of_handler
, t_ASSESSMENT_COMMAND_MODALITY_LINK.distance_from_handler_metres AS distance_from_handler_metres
, t_ASSESSMENT_COMMAND_MODALITY_LINK.is_in_sight_of_handler AS is_in_sight_of_handler
, t_ASSESSMENT_COMMAND_MODALITY_LINK.is_in_scent_range_of_handler AS is_in_scent_range_of_handler
, t_ASSESSMENT_COMMAND_MODALITY_LINK.is_in_hearing_range_of_handler AS is_in_hearing_range_of_handler
, t_ASSESSMENT_COMMAND_MODALITY_LINK.is_on_lead AS is_on_lead
, t_ASSESSMENT_COMMAND_MODALITY_LINK.trial_count AS trial_count
-- , t_ASSESSMENT_COMMAND_MODALITY_LINK.trial_count AS trial_count
, t_ASSESSMENT_COMMAND_MODALITY_LINK.active AS active
, a_id_user AS created_by
, v_time_start AS created_on
@@ -546,6 +510,20 @@ BEGIN
t_ASSESSMENT_COMMAND_MODALITY_LINK.is_new = 1
AND t_ASSESSMENT_COMMAND_MODALITY_LINK.active = 1
;
INSERT INTO parts.DOG_Msg_Error_Temp (
id_type
, code
, msg
, guid
)
SELECT
t_ERROR.id_type
, t_ERROR.code
, t_ERROR.msg
, a_guid
FROM tmp_Msg_Error t_ERROR
;
COMMIT;
END IF;
@@ -590,7 +568,7 @@ DELIMITER ;
/*
'ripplesipplenippletippledipplekipple'
'ripplesipplenippletippledipplykipple'
DELETE FROM parts.DOG_Assessment_Command_Modality_Link WHERE id_link > 740;
* /
delete
@@ -625,26 +603,37 @@ from parts.DOG_Assessment_Command_Modality_Link
INSERT INTO parts.DOG_Assessment_Command_Modality_Link_Temp (
id_link
, id_dog
, id_assessment
, id_command
, hand_signal_description
, trial_count
, 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
, active
, guid
)
VALUES (
-1 -- id_link
, 1 -- id_dog
, 1 -- id_assessment
, 1 -- id_command
, 'Test deez noots' -- hand_signal_description
, NULL -- trial_count
, 1 -- id_command_modality
, 1 -- id_bribe
, 15 -- distance_from_handler_metres
, 1 -- is_in_sight_of_handler
, 0 -- is_in_scent_range_of_handler
, 0 -- is_in_hearing_range_of_handler
, 0 -- is_on_lead
-- , NULL -- trial_count
, 1 -- active
, 'ripplesipplenippletippledipplekipple'
, 'ripplesipplenippletippledipplykipple'
);
CALL parts.p_dog_save_assessment_command_modality_link (
'nipples'
, 'ripplesipplenippletippledipplekipple'
, 'ripplesipplenippletippledipplykipple'
, 1
, 1
);

View File

@@ -45,7 +45,7 @@ BEGIN
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error_Calc_RQM (
id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT
, id_type INT NULL
, id_type INT
, code VARCHAR(250) NOT NULL
, msg TEXT NOT NULL
);
@@ -146,20 +146,20 @@ BEGIN
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error_Calc_RQM (
id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT
, id_type INT NULL
, id_type INT
, code VARCHAR(250) NOT NULL
, msg TEXT NOT NULL
);
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Split_Id_Calc_RQM (
substring VARCHAR(4000) NOT NULL
, as_int INT NULL
, as_int INT
);
DELETE FROM tmp_Split_Id_Calc_RQM;
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Split_Name_Calc_RQM (
substring VARCHAR(4000) NOT NULL
, as_int INT NULL
, as_int INT
);
DELETE FROM tmp_Split_Name_Calc_RQM;

View File

@@ -40,7 +40,7 @@ BEGIN
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error (
id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT
, id_type INT NULL
, id_type INT
, code VARCHAR(250) NOT NULL
, msg TEXT NOT NULL
);
@@ -137,7 +137,7 @@ BEGIN
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error (
id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT
, id_type INT NULL
, id_type INT
, code VARCHAR(250) NOT NULL
, msg TEXT NOT NULL
);

View File

@@ -43,7 +43,7 @@ BEGIN
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error_Calc_Obedience_Level (
id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT
, id_type INT NULL
, id_type INT
, code VARCHAR(250) NOT NULL
, msg TEXT NOT NULL
);
@@ -138,20 +138,20 @@ BEGIN
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error_Calc_Obedience_Level (
id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT
, id_type INT NULL
, id_type INT
, code VARCHAR(250) NOT NULL
, msg TEXT NOT NULL
);
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Split_Id_Calc_Obedience_Level (
substring VARCHAR(4000) NOT NULL
, as_int INT NULL
, as_int INT
);
DELETE FROM tmp_Split_Id_Calc_Obedience_Level;
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Split_Name_Calc_Obedience_Level (
substring VARCHAR(4000) NOT NULL
, as_int INT NULL
, as_int INT
);
DELETE FROM tmp_Split_Name_Calc_Obedience_Level;

View File

@@ -40,7 +40,7 @@ BEGIN
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error (
id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT
, id_type INT NULL
, id_type INT
, code VARCHAR(250) NOT NULL
, msg TEXT NOT NULL
);
@@ -135,7 +135,7 @@ BEGIN
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error (
id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT
, id_type INT NULL
, id_type INT
, code VARCHAR(250) NOT NULL
, msg TEXT NOT NULL
);

View File

@@ -17,8 +17,8 @@ CREATE PROCEDURE parts.p_dog_calc_assessment_response (
, IN a_get_all_ACM_link BIT
, IN a_get_inactive_ACM_link BIT
, IN a_ids_ACM_link TEXT
, IN a_min_distance_from_handler_ACM_link FLOAT
, IN a_max_distance_from_handler_ACM_link FLOAT
, IN a_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
@@ -112,7 +112,7 @@ BEGIN
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error_Calc_Assessment_Response (
id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT
, id_type INT NULL
, id_type INT
, code VARCHAR(250) NOT NULL
, msg TEXT NOT NULL
);
@@ -189,8 +189,8 @@ BEGIN
, a_get_all_ACM_link
, a_get_inactive_ACM_link
, a_ids_ACM_link
, a_min_distance_from_handler_ACM_link
, a_max_distance_from_handler_ACM_link
, a_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
@@ -280,7 +280,7 @@ BEGIN
, id_command INT
, id_command_modality INT
, id_bribe INT
, distance_from_handler FLOAT
, 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
@@ -326,20 +326,20 @@ BEGIN
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error_Calc_Assessment_Response (
id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT
, id_type INT NULL
, id_type INT
, 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 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 NULL
, as_int INT
);
DELETE FROM tmp_Split_Notes_Calc_Assessment_Response;
@@ -357,8 +357,8 @@ BEGIN
, a_get_all_ACM_link
, a_get_inactive_ACM_link
, a_ids_ACM_link
, a_min_distance_from_handler_ACM_link
, a_max_distance_from_handler_ACM_link
, a_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
@@ -427,8 +427,8 @@ BEGIN
, a_get_all_ACM_link
, a_get_inactive_ACM_link
, a_ids_ACM_link
, a_min_distance_from_handler_ACM_link
, a_max_distance_from_handler_ACM_link
, a_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
@@ -496,7 +496,7 @@ BEGIN
, id_command
, id_command_modality
, id_bribe
, distance_from_handler
, distance_from_handler_metres
, is_in_sight_of_handler
, is_in_scent_range_of_handler
, is_in_hearing_range_of_handler
@@ -512,7 +512,7 @@ BEGIN
, 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
, 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
@@ -1201,8 +1201,8 @@ CALL parts.p_dog_calc_assessment_response (
, 1 -- a_get_all_ACM_link
, 0 -- a_get_inactive_ACM_link
, '' -- a_ids_ACM_link
, NULL -- a_min_distance_from_handler_ACM_link
, NULL -- a_max_distance_from_handler_ACM_link
, NULL -- a_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

View File

@@ -16,8 +16,8 @@ CREATE PROCEDURE parts.p_dog_get_many_assessment_response (
, IN a_get_all_ACM_link BIT
, IN a_get_inactive_ACM_link BIT
, IN a_ids_ACM_link TEXT
, IN a_min_distance_from_handler_ACM_link FLOAT
, IN a_max_distance_from_handler_ACM_link FLOAT
, IN a_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
@@ -107,7 +107,7 @@ BEGIN
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error (
id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT
, id_type INT NULL
, id_type INT
, code VARCHAR(250) NOT NULL
, msg TEXT NOT NULL
);
@@ -171,8 +171,8 @@ BEGIN
, a_get_all_ACM_link
, a_get_inactive_ACM_link
, a_ids_ACM_link
, a_min_distance_from_handler_ACM_link
, a_max_distance_from_handler_ACM_link
, a_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
@@ -266,7 +266,7 @@ BEGIN
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error (
id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT
, id_type INT NULL
, id_type INT
, code VARCHAR(250) NOT NULL
, msg TEXT NOT NULL
);
@@ -366,8 +366,8 @@ BEGIN
, a_get_all_ACM_link
, a_get_inactive_ACM_link
, a_ids_ACM_link
, a_min_distance_from_handler_ACM_link
, a_max_distance_from_handler_ACM_link
, a_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
@@ -450,8 +450,8 @@ BEGIN
, a_get_all_ACM_link
, a_get_inactive_ACM_link
, a_ids_ACM_link
, a_min_distance_from_handler_ACM_link
, a_max_distance_from_handler_ACM_link
, a_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
@@ -638,8 +638,8 @@ CALL parts.p_dog_get_many_assessment_response (
, 1 -- a_get_all_ACM_link
, 0 -- a_get_inactive_ACM_link
, '' -- a_ids_ACM_link
, NULL -- a_min_distance_from_handler_ACM_link
, NULL -- a_max_distance_from_handler_ACM_link
, NULL -- a_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

View File

@@ -0,0 +1,540 @@
USE parts;
DROP PROCEDURE IF EXISTS parts.p_dog_save_assessment_response;
DELIMITER //
CREATE PROCEDURE parts.p_dog_save_assessment_response (
IN a_comment VARCHAR(500),
IN a_guid BINARY(36),
IN a_id_user INT,
IN a_debug BIT
)
BEGIN
DECLARE v_can_admin BIT;
DECLARE v_can_create BIT;
DECLARE v_code_type_error_bad_data VARCHAR(100);
DECLARE v_id_access_level_edit INT;
DECLARE v_id_change_set INT;
DECLARE v_id_permission_dog_new INT;
DECLARE v_id_type_error_bad_data INT;
DECLARE v_time_start TIMESTAMP(6);
DECLARE exit handler for SQLEXCEPTION
BEGIN
GET DIAGNOSTICS CONDITION 1
@sqlstate = RETURNED_SQLSTATE
, @errno = MYSQL_ERRNO
, @text = MESSAGE_TEXT
;
ROLLBACK;
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error (
id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT
, id_type INT
, code VARCHAR(250)
, msg TEXT NOT NULL
);
INSERT INTO tmp_Msg_Error (
id_type
, code
, msg
)
SELECT
MET.id_type
, @errno
, @text
FROM parts.CORE_Msg_Error_Type MET
WHERE MET.code = 'MYSQL_ERROR'
;
SELECT
t_ERROR.id_error
, t_ERROR.id_type
, t_ERROR.code
, ERROR_TYPE.name
, ERROR_TYPE.description
, ERROR_TYPE.is_breaking_error
, ERROR_TYPE.background_colour
, ERROR_TYPE.text_colour
, t_ERROR.msg
FROM tmp_Msg_Error t_ERROR
INNER JOIN parts.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type
;
START TRANSACTION;
INSERT INTO parts.DOG_Msg_Error_Temp (
id_type
, code
, msg
, guid
)
SELECT
t_ERROR.id_type
, t_ERROR.code
, t_ERROR.msg
, a_guid
FROM tmp_Msg_Error t_ERROR
;
COMMIT;
DROP TABLE IF EXISTS tmp_Msg_Error;
END;
SET SESSION group_concat_max_len=15000;
SET v_time_start := CURRENT_TIMESTAMP(6);
SET v_code_type_error_bad_data := 'BAD_DATA';
SET v_id_type_error_bad_data := (SELECT ERROR_TYPE.id_type FROM parts.CORE_Msg_Error_Type ERROR_TYPE WHERE ERROR_TYPE.code = v_code_type_error_bad_data LIMIT 1);
SET v_id_permission_dog_new := (SELECT PERMISSION.id_permission FROM parts.DOG_Permission PERMISSION WHERE PERMISSION.code = 'DOG_CREATE' LIMIT 1);
SET v_id_access_level_edit := (SELECT ACCESS_LEVEL.id_access_level FROM parts.DOG_Access_Level ACCESS_LEVEL WHERE ACCESS_LEVEL.code = 'EDIT' LIMIT 1);
CALL parts.p_core_validate_guid ( a_guid );
DROP TABLE IF EXISTS tmp_Assessment_Response_Copy;
DROP TABLE IF EXISTS tmp_Assessment_Response;
CREATE TEMPORARY TABLE tmp_Assessment_Response (
id_temp INT
, id_response INT
, id_assessment_command_modality_link INT
, id_response_quality_metric INT
, id_obedience_level INT
, value_measured DOUBLE
, notes TEXT
, active BIT
, is_new BIT
, name_error VARCHAR(250)
);
CREATE TEMPORARY TABLE tmp_Assessment_Response_Copy (
id_temp INT
, id_response INT
, id_assessment_command_modality_link INT
, id_response_quality_metric INT
, id_obedience_level INT
, value_measured DOUBLE
, 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_Assessment_Response (
id_temp
, id_response
, id_assessment_command_modality_link
, id_response_quality_metric
, id_obedience_level
, value_measured
, notes
, active
, is_new
)
SELECT
ASSESSMENT_RESPONSE_T.id_temp
, ASSESSMENT_RESPONSE_T.id_response
, COALESCE(
ASSESSMENT_RESPONSE_T.id_assessment_command_modality_link
, ASSESSMENT_RESPONSE.id_assessment_command_modality_link
) AS id_assessment_command_modality_link
, COALESCE(
ASSESSMENT_RESPONSE_T.id_response_quality_metric
, ASSESSMENT_RESPONSE.id_response_quality_metric
) AS id_response_quality_metric
, COALESCE(
ASSESSMENT_RESPONSE_T.id_obedience_level
, ASSESSMENT_RESPONSE.id_obedience_level
) AS id_obedience_level
, ASSESSMENT_RESPONSE_T.value_measured
, ASSESSMENT_RESPONSE_T.notes
, COALESCE(
ASSESSMENT_RESPONSE_T.active
, ASSESSMENT_RESPONSE.active
, 1
) AS active
, CASE WHEN COALESCE(ASSESSMENT_RESPONSE_T.id_response, 0) < 1 THEN 1 ELSE 0 END AS is_new
FROM parts.DOG_Assessment_Response_Temp ASSESSMENT_RESPONSE_T
LEFT JOIN parts.DOG_Assessment_Response ASSESSMENT_RESPONSE ON ASSESSMENT_RESPONSE_T.id_response = ASSESSMENT_RESPONSE.id_response
WHERE ASSESSMENT_RESPONSE_T.guid = a_guid
;
IF a_debug = 1 THEN
SELECT 'Assessment_Response_Temp records';
SELECT * FROM tmp_Assessment_Response;
SELECT COUNT(*) FROM tmp_Assessment_Response;
END IF;
-- Error names
UPDATE tmp_Assessment_Response t_ASSESSMENT_RESPONSE
LEFT JOIN parts.DOG_Assessment_Command_Modality_Link ASSESSMENT_COMMAND_MODALITY_LINK ON t_ASSESSMENT_RESPONSE.id_assessment_command_modality_link = ASSESSMENT_COMMAND_MODALITY_LINK.id_link
LEFT JOIN parts.DOG_Response_Quality_Metric RESPONSE_QUALITY_METRIC ON t_ASSESSMENT_RESPONSE.id_response_quality_metric = RESPONSE_QUALITY_METRIC.id_metric
LEFT JOIN parts.DOG_Obedience_Level OBEDIENCE_LEVEL ON t_ASSESSMENT_RESPONSE.id_obedience_level = OBEDIENCE_LEVEL.id_obedience_level
SET t_ASSESSMENT_RESPONSE.name_error = CONCAT(
COALESCE(CONVERT(ASSESSMENT_COMMAND_MODALITY_LINK.created_on, CHAR), '(No Assessment Command Modality Link)')
, ' - '
, COALESCE(RESPONSE_QUALITY_METRIC.name, '(No Response Quality Metric)')
, ' - '
, COALESCE(OBEDIENCE_LEVEL.name, '(No Obedience Level)')
)
;
IF a_debug = 1 THEN
SELECT 'After set name_error';
SELECT * FROM tmp_Assessment_Response;
SELECT COUNT(*) FROM tmp_Assessment_Response;
END IF;
-- Validation
-- Missing mandatory fields
-- id_assessment_command_modality_link
IF EXISTS (
SELECT *
FROM tmp_Assessment_Response t_ASSESSMENT_RESPONSE
LEFT JOIN demo.DOG_Assessment_Command_Modality_Link ASSESSMENT_COMMAND_MODALITY_LINK ON t_ASSESSMENT_RESPONSE.id_assessment_command_modality_link = ASSESSMENT_COMMAND_MODALITY_LINK.id_link
WHERE
ISNULL(t_ASSESSMENT_RESPONSE.id_assessment_command_modality_link)
OR ISNULL(ASSESSMENT_COMMAND_MODALITY_LINK.id_link)
OR ASSESSMENT_COMMAND_MODALITY_LINK.active = 0
) THEN
INSERT INTO tmp_Msg_Error (
id_type
, code
, msg
)
SELECT
v_id_type_error_bad_data
, v_code_type_error_bad_data
, CONCAT('The following Dog Assessment Response(s) do not have a valid Assessment_Command_Modality_Link: ', GROUP_CONCAT(t_ASSESSMENT_RESPONSE.name_error SEPARATOR ', ')) AS msg
FROM tmp_Assessment_Response t_ASSESSMENT_RESPONSE
LEFT JOIN parts.DOG_Assessment_Command_Modality_Link ASSESSMENT_COMMAND_MODALITY_LINK ON t_ASSESSMENT_RESPONSE.id_assessment_command_modality_link = ASSESSMENT_COMMAND_MODALITY_LINK.id_link
WHERE
ISNULL(t_ASSESSMENT_RESPONSE.id_assessment_command_modality_link)
OR ISNULL(ASSESSMENT_COMMAND_MODALITY_LINK.id_link)
OR ASSESSMENT_COMMAND_MODALITY_LINK.active = 0
;
END IF;
-- id_response_quality_metric
IF EXISTS (
SELECT *
FROM tmp_Assessment_Response t_ASSESSMENT_RESPONSE
LEFT JOIN demo.DOG_Response_Quality_Metric RESPONSE_QUALITY_METRIC ON t_ASSESSMENT_RESPONSE.id_response_quality_metric = RESPONSE_QUALITY_METRIC.id_metric
WHERE
ISNULL(t_ASSESSMENT_RESPONSE.id_response_quality_metric)
OR ISNULL(RESPONSE_QUALITY_METRIC.id_metric)
OR RESPONSE_QUALITY_METRIC.active = 0
) THEN
INSERT INTO tmp_Msg_Error (
id_type
, code
, msg
)
SELECT
v_id_type_error_bad_data
, v_code_type_error_bad_data
, CONCAT('The following Dog Assessment Response(s) do not have a valid Response_Quality_Metric: ', GROUP_CONCAT(t_ASSESSMENT_RESPONSE.name_error SEPARATOR ', ')) AS msg
FROM tmp_Assessment_Response t_ASSESSMENT_RESPONSE
LEFT JOIN demo.DOG_Response_Quality_Metric RESPONSE_QUALITY_METRIC ON t_ASSESSMENT_RESPONSE.id_response_quality_metric = RESPONSE_QUALITY_METRIC.id_metric
WHERE
ISNULL(t_ASSESSMENT_RESPONSE.id_response_quality_metric)
OR ISNULL(RESPONSE_QUALITY_METRIC.id_metric)
OR RESPONSE_QUALITY_METRIC.active = 0
;
END IF;
-- id_obedience_level
IF EXISTS (
SELECT *
FROM tmp_Assessment_Response t_ASSESSMENT_RESPONSE
LEFT JOIN demo.DOG_Obedience_Level OBEDIENCE_LEVEL ON t_ASSESSMENT_RESPONSE.id_obedience_level = OBEDIENCE_LEVEL.id_obedience_level
WHERE
ISNULL(t_ASSESSMENT_RESPONSE.id_obedience_level)
OR ISNULL(OBEDIENCE_LEVEL.id_obedience_level)
OR OBEDIENCE_LEVEL.active = 0
) THEN
INSERT INTO tmp_Msg_Error (
id_type
, code
, msg
)
SELECT
v_id_type_error_bad_data
, v_code_type_error_bad_data
, CONCAT('The following Dog Assessment Response(s) do not have a valid Obedience Level: ', GROUP_CONCAT(t_ASSESSMENT_RESPONSE.name_error SEPARATOR ', ')) AS msg
FROM tmp_Assessment_Response t_ASSESSMENT_RESPONSE
LEFT JOIN parts.DOG_Obedience_Level OBEDIENCE_LEVEL ON t_ASSESSMENT_RESPONSE.id_obedience_level = OBEDIENCE_LEVEL.id_obedience_level
WHERE
ISNULL(t_ASSESSMENT_RESPONSE.id_obedience_level)
OR ISNULL(OBEDIENCE_LEVEL.id_obedience_level)
OR OBEDIENCE_LEVEL.active = 0
;
END IF;
-- Permissions
-- Can Create
CALL parts.p_dog_calc_user(
a_guid
, 0 -- get_all_user
, 0 -- get_inactive_user
, a_id_user -- ids_user
, '' -- a_auth0_ids_user
, '' -- a_names_user
, '' -- a_emails_user
, 1 -- a_require_all_id_search_filters_met
, 1 -- a_require_any_id_search_filters_met
, 0 -- a_require_all_non_id_search_filters_met
, 0 -- a_require_any_non_id_search_filters_met
, v_id_permission_dog_new -- ids_permission
, v_id_access_level_edit -- ids_access_level
, 0 -- a_show_errors
, 0 -- a_debug
);
SELECT
IFNULL(CU_T.has_access, 0)
INTO
v_can_create
FROM parts.DOG_Calc_User_Temp CU_T
WHERE CU_T.GUID = a_guid
LIMIT 1
;
CALL parts.p_dog_clear_calc_user(
a_guid
, 0 -- a_debug
);
IF v_can_create = 0 THEN
DELETE t_ME
FROM tmp_Msg_Error t_ME
WHERE t_ME.id_type <> v_id_type_error_no_permission
;
INSERT INTO tmp_Msg_Error (
id_type
, code
, msg
)
VALUES (
v_id_type_error_no_permission
, v_code_type_error_no_permission
, 'You do not have permission to edit Assessment_Responses.'
)
;
END IF;
IF EXISTS (SELECT * FROM tmp_Msg_Error t_ERROR INNER JOIN parts.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type WHERE ERROR_TYPE.is_breaking_error = 1 LIMIT 1) THEN
IF a_debug = 1 THEN
SELECT * from tmp_Assessment_Response;
END IF;
DELETE FROM tmp_Assessment_Response;
END IF;
IF NOT EXISTS (SELECT * FROM tmp_Msg_Error t_ERROR INNER JOIN parts.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type WHERE ERROR_TYPE.is_breaking_error = 1 LIMIT 1) THEN
START TRANSACTION;
INSERT INTO parts.DOG_Dog_Change_Set (
comment
, id_user_updated_last_by
, updated_last_on
)
VALUES (
a_comment
, a_id_user
, v_time_start
)
;
SET v_id_change_set := LAST_INSERT_ID();
UPDATE parts.DOG_Assessment_Response ASSESSMENT_RESPONSE
INNER JOIN tmp_Assessment_Response t_ASSESSMENT_RESPONSE
ON ASSESSMENT_RESPONSE.id_response = t_ASSESSMENT_RESPONSE.id_response
AND t_ASSESSMENT_RESPONSE.is_new = 0
SET
ASSESSMENT_RESPONSE.id_assessment_command_modality_link = t_ASSESSMENT_RESPONSE.id_assessment_command_modality_link
, ASSESSMENT_RESPONSE.id_response_quality_metric = t_ASSESSMENT_RESPONSE.id_response_quality_metric
, ASSESSMENT_RESPONSE.id_obedience_level = t_ASSESSMENT_RESPONSE.id_obedience_level
, ASSESSMENT_RESPONSE.value_measured = t_ASSESSMENT_RESPONSE.value_measured
, ASSESSMENT_RESPONSE.notes = t_ASSESSMENT_RESPONSE.notes
, ASSESSMENT_RESPONSE.active = t_ASSESSMENT_RESPONSE.active
, ASSESSMENT_RESPONSE.id_change_set = v_id_change_set
;
INSERT INTO parts.DOG_Assessment_Response (
id_temp
, id_assessment_command_modality_link
, id_response_quality_metric
, id_obedience_level
, value_measured
, notes
, active
, id_user_created_by
, created_on
)
SELECT
t_ASSESSMENT_RESPONSE.id_temp
, t_ASSESSMENT_RESPONSE.id_assessment_command_modality_link AS id_assessment_command_modality_link
, t_ASSESSMENT_RESPONSE.id_response_quality_metric AS id_response_quality_metric
, t_ASSESSMENT_RESPONSE.id_obedience_level AS id_obedience_level
, t_ASSESSMENT_RESPONSE.value_measured AS value_measured
, t_ASSESSMENT_RESPONSE.notes AS notes
, t_ASSESSMENT_RESPONSE.active AS active
, a_id_user AS created_by
, v_time_start AS created_on
FROM tmp_Assessment_Response t_ASSESSMENT_RESPONSE
WHERE
t_ASSESSMENT_RESPONSE.is_new = 1
AND t_ASSESSMENT_RESPONSE.active = 1
;
INSERT INTO parts.DOG_Msg_Error_Temp (
id_type
, code
, msg
, guid
)
SELECT
t_ERROR.id_type
, t_ERROR.code
, t_ERROR.msg
, a_guid
FROM tmp_Msg_Error t_ERROR
;
COMMIT;
END IF;
START TRANSACTION;
DELETE FROM parts.DOG_Assessment_Response_Temp
WHERE GUID = a_guid
;
COMMIT;
-- Errors
SELECT
t_ERROR.id_error
, t_ERROR.id_type
, t_ERROR.code
, ERROR_TYPE.name
, ERROR_TYPE.description
, ERROR_TYPE.is_breaking_error
, ERROR_TYPE.background_colour
, ERROR_TYPE.text_colour
, t_ERROR.msg
FROM tmp_Msg_Error t_ERROR
INNER JOIN parts.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type
;
IF a_debug = 1 THEN
SELECT * FROM tmp_Assessment_Response;
END IF;
DROP TEMPORARY TABLE tmp_Assessment_Response;
DROP TEMPORARY TABLE tmp_Msg_Error;
IF a_debug = 1 THEN
CALL parts.p_core_debug_timing_reporting ( v_time_start );
END IF;
END //
DELIMITER ;
/*
'ripplesipplenipplytippledipplykipple'
DELETE FROM parts.DOG_Assessment_Response WHERE id_response > 740;
* /
delete
from parts.DOG_Assessment_Response_Audit
where id_response > 768
;
delete
from parts.DOG_Assessment_Response
where id_response > 768
;
delete
from parts.DOG_Assessment_Response_Temp
;
select
*
-- COUNT(*)
-- delete
from parts.DOG_Assessment_Response_Temp
;
select COUNT(*)
from parts.DOG_Assessment_Response_Temp
;
select
*
-- COUNT(*)
-- delete
from parts.DOG_Assessment_Response
;
select COUNT(*)
from parts.DOG_Assessment_Response
;
INSERT INTO parts.DOG_Assessment_Response_Temp (
id_response
, id_assessment_command_modality_link
, id_response_quality_metric
, id_obedience_level
, value_measured
, notes
, active
, guid
)
VALUES (
-1 -- id_response
, 1 -- id_assessment_command_modality_link
, 1 -- id_response_quality_metric
, 1 -- id_obedience_level
, 10000 -- value_measured
, 'suck balls' -- notes
, 1 -- active
, 'ripplesipplenipplytippledipplykipple'
);
CALL parts.p_dog_save_assessment_response (
'nipples'
, 'ripplesipplenipplytippledipplykipple'
, 1
, 1
);
select
*
-- COUNT(*)
-- delete
from parts.DOG_Assessment_Response_Temp
;
select COUNT(*)
from parts.DOG_Assessment_Response_Temp
;
select
*
-- COUNT(*)
-- delete
from parts.DOG_Assessment_Response
;
select COUNT(*)
from parts.DOG_Assessment_Response
;
*/

View File

@@ -0,0 +1,562 @@
USE parts;
DROP PROCEDURE IF EXISTS parts.p_dog_save_assessment_distraction_and_response;
DELIMITER //
CREATE PROCEDURE parts.p_dog_save_assessment_distraction_and_response (
IN a_comment VARCHAR(500),
IN a_guid BINARY(36),
IN a_id_user INT,
IN a_debug BIT
)
BEGIN
DECLARE v_can_admin BIT;
DECLARE v_can_create BIT;
DECLARE v_code_type_error_bad_data VARCHAR(100);
DECLARE v_id_access_level_edit INT;
DECLARE v_id_change_set INT;
DECLARE v_id_permission_dog_new INT;
DECLARE v_id_type_error_bad_data INT;
DECLARE v_time_start TIMESTAMP(6);
DECLARE exit handler for SQLEXCEPTION
BEGIN
GET DIAGNOSTICS CONDITION 1
@sqlstate = RETURNED_SQLSTATE
, @errno = MYSQL_ERRNO
, @text = MESSAGE_TEXT
;
ROLLBACK;
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error_Combined (
id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT
, id_type INT
, code VARCHAR(250)
, msg TEXT NOT NULL
);
INSERT INTO tmp_Msg_Error_Combined (
id_type
, code
, msg
)
SELECT
MET.id_type
, @errno
, @text
FROM parts.CORE_Msg_Error_Type MET
WHERE MET.code = 'MYSQL_ERROR'
;
SELECT
t_ERROR.id_error
, t_ERROR.id_type
, t_ERROR.code
, ERROR_TYPE.name
, ERROR_TYPE.description
, ERROR_TYPE.is_breaking_error
, ERROR_TYPE.background_colour
, ERROR_TYPE.text_colour
, t_ERROR.msg
FROM tmp_Msg_Error_Combined t_ERROR
INNER JOIN parts.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type
;
DROP TABLE IF EXISTS tmp_Msg_Error_Combined;
END;
SET SESSION group_concat_max_len=15000;
SET v_time_start := CURRENT_TIMESTAMP(6);
SET v_code_type_error_bad_data := 'BAD_DATA';
SET v_id_type_error_bad_data := (SELECT ERROR_TYPE.id_type FROM parts.CORE_Msg_Error_Type ERROR_TYPE WHERE ERROR_TYPE.code = v_code_type_error_bad_data LIMIT 1);
SET v_id_permission_dog_new := (SELECT PERMISSION.id_permission FROM parts.DOG_Permission PERMISSION WHERE PERMISSION.code = 'DOG_CREATE' LIMIT 1);
SET v_id_access_level_edit := (SELECT ACCESS_LEVEL.id_access_level FROM parts.DOG_Access_Level ACCESS_LEVEL WHERE ACCESS_LEVEL.code = 'EDIT' LIMIT 1);
CALL parts.p_core_validate_guid ( a_guid );
DROP TABLE IF EXISTS tmp_Assessment_Response_Save_ADR;
DROP TABLE IF EXISTS tmp_Assessment_Command_Modality_Link_Save_ADR;
DROP TABLE IF EXISTS tmp_Distraction_Save_ADR;
DROP TABLE IF EXISTS tmp_Assessment_Save_ADR;
CREATE TEMPORARY TABLE tmp_Assessment_Save_ADR (
id_temp INT
, id_assessment INT
, id_assessment_old INT
, active BIT
, is_new BIT
);
CREATE TEMPORARY TABLE tmp_Distraction_Save_ADR (
id_temp INT
, id_distraction INT
, id_distraction_old INT
, id_assessment INT
, active BIT
, is_new BIT
);
CREATE TEMPORARY TABLE tmp_Assessment_Command_Modality_Link_Save_ADR (
id_temp INT
, id_link INT
, id_link_old INT
, id_assessment INT
, active BIT
, is_new BIT
);
CREATE TEMPORARY TABLE tmp_Assessment_Response_Save_ADR (
id_temp INT
, id_response INT
, id_response_old INT
, id_assessment_command_modality_link INT
, active BIT
, is_new BIT
);
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error_Combined (
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_Assessment_Save_ADR (
id_temp
, id_assessment
, id_assessment_old
, active
, is_new
)
SELECT
ASSESSMENT_T.id_temp
, ASSESSMENT_T.id_assessment
, ASSESSMENT_T.id_assessment
, COALESCE(
ASSESSMENT_T.active
, ASSESSMENT.active
, 1
) AS active
, CASE WHEN COALESCE(ASSESSMENT_T.id_assessment, 0) < 1 THEN 1 ELSE 0 END AS is_new
FROM parts.DOG_Assessment_Temp ASSESSMENT_T
LEFT JOIN parts.DOG_Assessment ASSESSMENT ON ASSESSMENT_T.id_assessment = ASSESSMENT.id_assessment
WHERE ASSESSMENT_T.guid = a_guid
;
INSERT INTO tmp_Distraction_Save_ADR (
id_temp
, id_distraction
, id_distraction_old
, id_assessment
, active
, is_new
)
SELECT
DISTRACTION_T.id_temp
, DISTRACTION_T.id_distraction
, DISTRACTION_T.id_distraction
, DISTRACTION_T.id_assessment
, COALESCE(
DISTRACTION_T.active
, DISTRACTION.active
, 1
) AS active
, CASE WHEN COALESCE(DISTRACTION_T.id_distraction, 0) < 1 THEN 1 ELSE 0 END AS is_new
FROM parts.DOG_Distraction_Temp DISTRACTION_T
LEFT JOIN parts.DOG_Distraction DISTRACTION ON DISTRACTION_T.id_distraction = DISTRACTION.id_distraction
WHERE DISTRACTION_T.guid = a_guid
;
INSERT INTO tmp_Assessment_Command_Modality_Link_Save_ADR (
id_temp
, id_link
, id_link_old
, id_assessment
, active
, is_new
)
SELECT
ASSESSMENT_COMMAND_MODALITY_LINK_T.id_temp
, ASSESSMENT_COMMAND_MODALITY_LINK_T.id_link
, ASSESSMENT_COMMAND_MODALITY_LINK_T.id_link
, ASSESSMENT_COMMAND_MODALITY_LINK_T.id_assessment
, COALESCE(
ASSESSMENT_COMMAND_MODALITY_LINK_T.active
, ASSESSMENT_COMMAND_MODALITY_LINK.active
, 1
) AS active
, CASE WHEN COALESCE(ASSESSMENT_COMMAND_MODALITY_LINK_T.id_link, 0) < 1 THEN 1 ELSE 0 END AS is_new
FROM parts.DOG_Assessment_Command_Modality_Link_Temp ASSESSMENT_COMMAND_MODALITY_LINK_T
LEFT JOIN parts.DOG_Assessment_Command_Modality_Link ASSESSMENT_COMMAND_MODALITY_LINK ON ASSESSMENT_COMMAND_MODALITY_LINK_T.id_link = ASSESSMENT_COMMAND_MODALITY_LINK.id_link
WHERE ASSESSMENT_COMMAND_MODALITY_LINK_T.guid = a_guid
;
INSERT INTO tmp_Assessment_Response_Save_ADR (
id_temp
, id_response
, id_response_old
, id_assessment_command_modality_link
, active
, is_new
)
SELECT
ASSESSMENT_RESPONSE_T.id_temp
, ASSESSMENT_RESPONSE_T.id_response
, ASSESSMENT_RESPONSE_T.id_response
, ASSESSMENT_RESPONSE_T.id_assessment_command_modality_link
, COALESCE(
ASSESSMENT_RESPONSE_T.active
, ASSESSMENT_RESPONSE.active
, 1
) AS active
, CASE WHEN COALESCE(ASSESSMENT_RESPONSE_T.id_response, 0) < 1 THEN 1 ELSE 0 END AS is_new
FROM parts.DOG_Assessment_Response_Temp ASSESSMENT_RESPONSE_T
LEFT JOIN parts.DOG_Assessment_Response ASSESSMENT_RESPONSE ON ASSESSMENT_RESPONSE_T.id_response = ASSESSMENT_RESPONSE.id_response
WHERE ASSESSMENT_RESPONSE_T.guid = a_guid
;
IF a_debug = 1 THEN
SELECT 'Temp records';
SELECT * FROM tmp_Assessment_Save_ADR;
SELECT COUNT(*) FROM tmp_Assessment_Save_ADR;
SELECT * FROM tmp_Distraction_Save_ADR;
SELECT COUNT(*) FROM tmp_Distraction_Save_ADR;
SELECT * FROM tmp_Assessment_Command_Modality_Link_Save_ADR;
SELECT COUNT(*) FROM tmp_Assessment_Command_Modality_Link_Save_ADR;
SELECT * FROM tmp_Assessment_Response_Save_ADR;
SELECT COUNT(*) FROM tmp_Assessment_Response_Save_ADR;
END IF;
-- Permissions
-- Can Create
CALL parts.p_dog_calc_user(
a_guid
, 0 -- get_all_user
, 0 -- get_inactive_user
, a_id_user -- ids_user
, '' -- a_auth0_ids_user
, '' -- a_names_user
, '' -- a_emails_user
, 1 -- a_require_all_id_search_filters_met
, 1 -- a_require_any_id_search_filters_met
, 0 -- a_require_all_non_id_search_filters_met
, 0 -- a_require_any_non_id_search_filters_met
, v_id_permission_dog_new -- ids_permission
, v_id_access_level_edit -- ids_access_level
, 0 -- a_show_errors
, 0 -- a_debug
);
SELECT
IFNULL(CU_T.has_access, 0)
INTO
v_can_create
FROM parts.DOG_Calc_User_Temp CU_T
WHERE CU_T.GUID = a_guid
LIMIT 1
;
CALL parts.p_dog_clear_calc_user(
a_guid
, 0 -- a_debug
);
IF v_can_create = 0 THEN
DELETE t_ME
FROM tmp_Msg_Error_Combined t_ME
WHERE t_ME.id_type <> v_id_type_error_no_permission
;
INSERT INTO tmp_Msg_Error_Combined (
id_type
, code
, msg
)
VALUES (
v_id_type_error_no_permission
, v_code_type_error_no_permission
, 'You do not have permission to edit Assessment_Distraction_And_Responses.'
)
;
END IF;
-- DELETE FROM tmp_Msg_Error_Combined_Save;
-- Save Assessments
-- CREATE TEMPORARY TABLE tmp_Assessment_Save_ADR_Save_Error AS
-- INSERT INTO tmp_Msg_Error_Combined_Save
CALL parts.p_dog_save_assessment (
a_comment
, a_guid
, a_id_user
, 0 -- debug
);
/*
INSERT INTO tmp_Msg_Error_Combined (
id_type
, code
, msg
)
SELECT
t_ASSESSMENT_SAVE_ERROR.id_type
, t_ASSESSMENT_SAVE_ERROR.code
, t_ASSESSMENT_SAVE_ERROR.msg
FROM tmp_Assessment_Save_ADR_Save_Error t_ASSESSMENT_SAVE_ERROR
;
*/
-- Get New Assessment Ids
IF NOT EXISTS (SELECT * FROM tmp_Msg_Error_Combined t_ERROR INNER JOIN parts.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type WHERE ERROR_TYPE.is_breaking_error = 1 LIMIT 1) THEN
-- Update Temporary tables with new Ids
UPDATE tmp_Assessment_Save_ADR t_ASSESSMENT
INNER JOIN parts.DOG_Assessment ASSESSMENT ON t_ASSESSMENT.id_temp = ASSESSMENT.id_temp
INNER JOIN tmp_Distraction_Save_ADR t_DISTRACTION ON t_ASSESSMENT.id_assessment_old = t_DISTRACTION.id_assessment
INNER JOIN tmp_Assessment_Command_Modality_Link_Save_ADR t_ASSESSMENT_COMMAND_MODALITY_LINK ON t_ASSESSMENT.id_assessment_old = t_ASSESSMENT_COMMAND_MODALITY_LINK.id_assessment
SET
t_ASSESSMENT.id_assessment = ASSESSMENT.id_assessment
, t_DISTRACTION.id_assessment = ASSESSMENT.id_assessment
, t_ASSESSMENT_COMMAND_MODALITY_LINK.id_assessment = ASSESSMENT.id_assessment
WHERE
t_ASSESSMENT.active = 1
AND t_ASSESSMENT.is_new = 1
;
-- Update Staging tables with new Ids
IF EXISTS (SELECT * FROM tmp_Assessment_Save_ADR t_ASSESSMENT WHERE t_ASSESSMENT.id_assessment <> t_ASSESSMENT.id_assessment_old LIMIT 1) THEN
START TRANSACTION;
UPDATE parts.DOG_Distraction_Temp DISTRACTION_T
INNER JOIN tmp_Distraction_Save_ADR t_DISTRACTION ON DISTRACTION_T.id_temp = t_DISTRACTION.id_temp
INNER JOIN tmp_Assessment_Save_ADR t_ASSESSMENT ON t_DISTRACTION.id_assessment = t_ASSESSMENT.id_assessment
SET DISTRACTION_T.id_assessment = t_DISTRACTION.id_assessment
WHERE t_ASSESSMENT.id_assessment <> t_ASSESSMENT.id_assessment_old
;
UPDATE parts.DOG_Assessment_Command_Modality_Link_Temp ASSESSMENT_COMMAND_MODALITY_LINK_T
INNER JOIN tmp_Assessment_Command_Modality_Link_Save_ADR t_ASSESSMENT_COMMAND_MODALITY_LINK ON t_ASSESSMENT_COMMAND_MODALITY_LINK.id_temp = ASSESSMENT_COMMAND_MODALITY_LINK_T.id_temp
INNER JOIN tmp_Assessment_Save_ADR t_ASSESSMENT ON t_ASSESSMENT.id_assessment = t_ASSESSMENT_COMMAND_MODALITY_LINK.id_assessment
SET ASSESSMENT_COMMAND_MODALITY_LINK_T.id_assessment = t_ASSESSMENT_COMMAND_MODALITY_LINK.id_assessment
WHERE t_ASSESSMENT.id_assessment <> t_ASSESSMENT.id_assessment_old
;
COMMIT;
END IF;
END IF;
IF a_debug = 1 THEN
SELECT 'After align assessment Ids';
SELECT * FROM tmp_Assessment_Save_ADR;
SELECT * FROM tmp_Distraction_Save_ADR;
SELECT * FROM tmp_Assessment_Command_Modality_Link_Save_ADR;
SELECT * FROM tmp_Assessment_Response_Save_ADR;
END IF;
-- DELETE FROM tmp_Msg_Error_Combined_Save;
-- Save Distractions
-- CREATE TEMPORARY TABLE tmp_Distraction_Save_ADR_Save_Error AS
-- INSERT INTO tmp_Msg_Error_Combined_Save
CALL parts.p_dog_save_distraction (
a_comment
, a_guid
, a_id_user
, 0 -- debug
);
/*
INSERT INTO tmp_Msg_Error_Combined (
id_type
, code
, msg
)
SELECT
t_DISTRACTION_SAVE_ERROR.id_type
, t_DISTRACTION_SAVE_ERROR.code
, t_DISTRACTION_SAVE_ERROR.msg
FROM tmp_Distraction_Save_ADR_Save_Error t_DISTRACTION_SAVE_ERROR
;
*/
-- DELETE FROM tmp_Msg_Error_Combined_Save;
-- Save Assessment Command Modality Links
-- CREATE TEMPORARY TABLE tmp_Assessment_Command_Modality_Link_Save_ADR_Save_Error AS
-- INSERT INTO tmp_Msg_Error_Combined_Save
CALL parts.p_dog_save_assessment_command_modality_link (
a_comment
, a_guid
, a_id_user
, 0 -- debug
);
/*
INSERT INTO tmp_Msg_Error_Combined (
id_type
, code
, msg
)
SELECT
t_ACML_SAVE_ERROR.id_type
, t_ACML_SAVE_ERROR.code
, t_ACML_SAVE_ERROR.msg
FROM tmp_Assessment_Command_Modality_Link_Save_ADR_Save_Error t_ACML_SAVE_ERROR
;
*/
-- Get New Assessment Command Modality Link Ids
IF EXISTS (SELECT * FROM tmp_Msg_Error_Combined t_ERROR INNER JOIN parts.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type WHERE ERROR_TYPE.is_breaking_error = 1 LIMIT 1) THEN
START TRANSACTION;
DELETE ASSESSMENT
FROM parts.DOG_Assessment ASSESSMENT
INNER JOIN tmp_Assessment_Save_ADR t_ASSESSMENT ON ASSESSMENT.id_assessment = t_ASSESSMENT.id_assessment
WHERE t_ASSESSMENT.is_new = 1
;
COMMIT;
ELSE
-- Update Temporary tables with new Ids
UPDATE tmp_Assessment_Command_Modality_Link_Save_ADR t_ASSESSMENT_COMMAND_MODALITY_LINK
INNER JOIN parts.DOG_Assessment_Command_Modality_Link ASSESSMENT_COMMAND_MODALITY_LINK ON t_ASSESSMENT_COMMAND_MODALITY_LINK.id_temp = ASSESSMENT_COMMAND_MODALITY_LINK.id_temp
LEFT JOIN tmp_Assessment_Response_Save_ADR t_ASSESSMENT_RESPONSE ON t_ASSESSMENT_COMMAND_MODALITY_LINK.id_link = t_ASSESSMENT_RESPONSE.id_assessment_command_modality_link
SET
t_ASSESSMENT_COMMAND_MODALITY_LINK.id_link = ASSESSMENT_COMMAND_MODALITY_LINK.id_link
, t_ASSESSMENT_RESPONSE.id_assessment_command_modality_link = ASSESSMENT_COMMAND_MODALITY_LINK.id_link
WHERE
t_ASSESSMENT_COMMAND_MODALITY_LINK.active = 1
AND t_ASSESSMENT_COMMAND_MODALITY_LINK.is_new = 1
;
-- Update Staging tables with new Ids
IF EXISTS (SELECT * FROM tmp_Assessment_Command_Modality_Link_Save_ADR t_ASSESSMENT_COMMAND_MODALITY_LINK WHERE t_ASSESSMENT_COMMAND_MODALITY_LINK.id_link <> t_ASSESSMENT_COMMAND_MODALITY_LINK.id_link_old LIMIT 1) THEN
START TRANSACTION;
UPDATE parts.DOG_Assessment_Response_Temp ASSESSMENT_RESPONSE_T
INNER JOIN tmp_Assessment_Response_Save_ADR t_ASSESSMENT_RESPONSE ON ASSESSMENT_RESPONSE_T.id_temp = t_ASSESSMENT_RESPONSE.id_temp
INNER JOIN tmp_Assessment_Command_Modality_Link_Save_ADR t_ASSESSMENT_COMMAND_MODALITY_LINK ON t_ASSESSMENT_RESPONSE.id_assessment_command_modality_link = t_ASSESSMENT_COMMAND_MODALITY_LINK.id_link
SET ASSESSMENT_RESPONSE_T.id_assessment_command_modality_link = t_ASSESSMENT_RESPONSE.id_assessment_command_modality_link
WHERE t_ASSESSMENT_COMMAND_MODALITY_LINK.id_link <> t_ASSESSMENT_COMMAND_MODALITY_LINK.id_link_old
;
COMMIT;
END IF;
END IF;
IF a_debug = 1 THEN
SELECT 'After align assessment Ids';
SELECT * FROM tmp_Assessment_Save_ADR;
SELECT * FROM tmp_Distraction_Save_ADR;
SELECT * FROM tmp_Assessment_Command_Modality_Link_Save_ADR;
SELECT * FROM tmp_Assessment_Response_Save_ADR;
END IF;
-- DELETE FROM tmp_Msg_Error_Combined_Save;
-- Save Assessment Responses
-- CREATE TEMPORARY TABLE tmp_Assessment_Response_Save_ADR_Save_Error AS
-- INSERT INTO tmp_Msg_Error_Combined_Save
CALL parts.p_dog_save_assessment_response (
a_comment
, a_guid
, a_id_user
, 0 -- debug
);
/*
INSERT INTO tmp_Msg_Error_Combined (
id_type
, code
, msg
)
SELECT
t_ASSESSMENT_RESPONSE_SAVE_ERROR.id_type
, t_ASSESSMENT_RESPONSE_SAVE_ERROR.code
, t_ASSESSMENT_RESPONSE_SAVE_ERROR.msg
FROM tmp_Assessment_Response_Save_ADR_Save_Error t_ASSESSMENT_RESPONSE_SAVE_ERROR
;
*/
-- Get New Assessment Command Modality Link Ids
IF EXISTS (SELECT * FROM tmp_Msg_Error_Combined t_ERROR INNER JOIN parts.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type WHERE ERROR_TYPE.is_breaking_error = 1 LIMIT 1) THEN
START TRANSACTION;
DELETE ASSESSMENT_COMMAND_MODALITY_LINK
FROM parts.DOG_Assessment_Command_Modality_Link ASSESSMENT_COMMAND_MODALITY_LINK
INNER JOIN tmp_Assessment_Command_Modality_Link_Save_ADR t_ASSESSMENT_COMMAND_MODALITY_LINK ON ASSESSMENT_COMMAND_MODALITY_LINK.id_link = t_ASSESSMENT_COMMAND_MODALITY_LINK.id_assessment_command_modality_link
INNER JOIN tmp_Assessment_Save_ADR t_ASSESSMENT ON ASSESSMENT_COMMAND_MODALITY_LINK.id_assessment = t_ASSESSMENT.id_assessment
WHERE
t_ASSESSMENT_COMMAND_MODALITY_LINK.is_new = 1
OR t_ASSESSMENT.is_new = 1
;
DELETE ASSESSMENT
FROM parts.DOG_Assessment ASSESSMENT
INNER JOIN tmp_Assessment_Save_ADR t_ASSESSMENT ON ASSESSMENT.id_assessment = t_ASSESSMENT.id_assessment
WHERE t_ASSESSMENT.is_new = 1
;
COMMIT;
END IF;
-- 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_Combined t_ERROR
INNER JOIN parts.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type
;
IF a_debug = 1 THEN
SELECT * FROM tmp_Assessment_Save_ADR;
SELECT * FROM tmp_Distraction_Save_ADR;
SELECT * FROM tmp_Assessment_Command_Modality_Link_Save_ADR;
SELECT * FROM tmp_Assessment_Response_Save_ADR;
END IF;
CALL parts.p_dog_clear_msg_error (
a_guid
, 0 -- debug
);
DROP TABLE IF EXISTS tmp_Assessment_Response_Save_ADR_Save_Error;
DROP TABLE IF EXISTS tmp_Assessment_Command_Modality_Link_Save_ADR_Save_Error;
DROP TABLE IF EXISTS tmp_Distraction_Save_ADR_Save_Error;
DROP TABLE IF EXISTS tmp_Assessment_Save_ADR_Save_Error;
DROP TABLE IF EXISTS tmp_Assessment_Response_Save_ADR;
DROP TABLE IF EXISTS tmp_Assessment_Command_Modality_Link_Save_ADR;
DROP TABLE IF EXISTS tmp_Distraction_Save_ADR;
DROP TABLE IF EXISTS tmp_Assessment_Save_ADR;
DROP TEMPORARY TABLE tmp_Msg_Error_Combined;
IF a_debug = 1 THEN
CALL parts.p_core_debug_timing_reporting ( v_time_start );
END IF;
END //
DELIMITER ;
/*
CALL parts.p_dog_save_assessment_distraction_and_response (
'nipples'
, 'ripplesipplenipplytippledipplykipple'
, 1
, 1
);
*/

View File

@@ -34,7 +34,7 @@ BEGIN
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error (
display_order INT NOT NULL PRIMARY KEY AUTO_INCREMENT
, id_type INT NULL
, id_type INT
, code VARCHAR(50) NOT NULL
, msg VARCHAR(4000) NOT NULL
);
@@ -82,7 +82,7 @@ BEGIN
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error (
display_order INT NOT NULL PRIMARY KEY AUTO_INCREMENT
, id_type INT NULL
, id_type INT
, code VARCHAR(50) NOT NULL
, msg VARCHAR(4000) NOT NULL
);

View File

@@ -50,14 +50,14 @@ BEGIN
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error (
display_order INT NOT NULL PRIMARY KEY AUTO_INCREMENT
, id_type INT NULL
, id_type INT
, code VARCHAR(50) NOT NULL
, msg VARCHAR(4000) NOT NULL
);
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Split (
substring VARCHAR(4000) NOT NULL
, as_int INT NULL
, as_int INT
);
DELETE FROM tmp_Split;

View File

@@ -989,6 +989,10 @@ INSERT INTO parts.DOG_Bribe (
)
VALUES
(
'NONE'
, 'None'
)
, (
'TREAT'
, 'Treat'
)
@@ -1016,7 +1020,7 @@ INSERT INTO parts.DOG_Assessment_Command_Modality_Link (
, id_command
, id_command_modality
, id_bribe
, distance_from_handler
, distance_from_handler_metres
, is_in_sight_of_handler
, is_in_scent_range_of_handler
, is_in_hearing_range_of_handler

Some files were not shown because too many files have changed in this diff Show More