Feat(SQL, UI): 1. Perfected architecture for modular Search functionality across heirarchical Get Many and Calc Stored Procedures that allows text search filtering on different fields as well as by record Id with control over how the filters are applied. \n 2. Updated User Calc and Get Many Stored Procedures with new Search functionality. \n 3. Improved styles on Dog Command Link page.
This commit is contained in:
@@ -63,7 +63,7 @@ class Base():
|
|||||||
FLAG_PRIORITY: ClassVar[str] = 'priority'
|
FLAG_PRIORITY: ClassVar[str] = 'priority'
|
||||||
FLAG_REGION: ClassVar[str] = 'region'
|
FLAG_REGION: ClassVar[str] = 'region'
|
||||||
FLAG_ROWS: ClassVar[str] = 'rows'
|
FLAG_ROWS: ClassVar[str] = 'rows'
|
||||||
FLAG_SEARCH_TEXT: ClassVar[str] = 'search_text'
|
FLAG_SEARCH: ClassVar[str] = 'search'
|
||||||
FLAG_SYMBOL: ClassVar[str] = 'symbol'
|
FLAG_SYMBOL: ClassVar[str] = 'symbol'
|
||||||
FLAG_URL: ClassVar[str] = 'url'
|
FLAG_URL: ClassVar[str] = 'url'
|
||||||
FLAG_USER: ClassVar[str] = 'authorisedUser' # 'user' already used
|
FLAG_USER: ClassVar[str] = 'authorisedUser' # 'user' already used
|
||||||
|
|||||||
@@ -41,13 +41,15 @@ class Command(SQLAlchemy_ABC, Base):
|
|||||||
|
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
self.id_command = 0
|
self.id_command = 0
|
||||||
|
self.command_category = None
|
||||||
self.is_new = False
|
self.is_new = False
|
||||||
self.has_button = False
|
self.has_button = False
|
||||||
super().__init__()
|
super().__init__()
|
||||||
|
|
||||||
def from_db_command(query_row):
|
@classmethod
|
||||||
_m = 'Command.from_db_command'
|
def from_db_command(cls, query_row):
|
||||||
command = Command()
|
_m = f'{cls.__qualname__}.from_db_command'
|
||||||
|
command = cls()
|
||||||
command.id_command = query_row[0]
|
command.id_command = query_row[0]
|
||||||
command.id_command_category = query_row[1]
|
command.id_command_category = query_row[1]
|
||||||
command.name = query_row[2]
|
command.name = query_row[2]
|
||||||
@@ -59,25 +61,27 @@ class Command(SQLAlchemy_ABC, Base):
|
|||||||
# command.created_on = query_row[7]
|
# command.created_on = query_row[7]
|
||||||
return command
|
return command
|
||||||
|
|
||||||
def from_db_dog_command_link(query_row):
|
@classmethod
|
||||||
_m = 'Command.from_db_dog_command_link'
|
def from_db_dog_command_link(cls, query_row):
|
||||||
command = Command()
|
_m = f'{cls.__qualname__}.from_db_dog_command_link'
|
||||||
|
command = cls()
|
||||||
command.id_command = query_row[5]
|
command.id_command = query_row[5]
|
||||||
command.id_command_category = query_row[3]
|
command.id_command_category = query_row[3]
|
||||||
command.name = query_row[6]
|
command.name = query_row[6]
|
||||||
# command.hand_signal_default_description = query_row[2]
|
# command.hand_signal_default_description = query_row[2]
|
||||||
# command.can_have_button = av.input_bool(query_row[5], 'can_have_button', _m)
|
command.can_have_button = av.input_bool(query_row[8], 'can_have_button', _m)
|
||||||
command.has_button = av.input_bool(query_row[7], 'has_button', _m)
|
# command.has_button = av.input_bool(query_row[7], 'has_button', _m)
|
||||||
# command.notes = query_row[4]
|
# command.notes = query_row[4]
|
||||||
command.active = av.input_bool(True, 'active', _m)
|
command.active = True # av.input_bool(True, 'active', _m)
|
||||||
# command.created_on = query_row[7]
|
# command.created_on = query_row[7]
|
||||||
|
command.command_category = Command_Category.from_db_dog_command_link(query_row)
|
||||||
return command
|
return command
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def from_json(cls, json):
|
def from_json(cls, json):
|
||||||
_m = 'Command.from_json'
|
_m = f'{cls.__qualname__}.from_json'
|
||||||
command = cls()
|
command = cls()
|
||||||
if json is None: return Command
|
if json is None: return command
|
||||||
# Helper_App.console_log(f'{_m}\njson: {json}')
|
# Helper_App.console_log(f'{_m}\njson: {json}')
|
||||||
command.id_command = -1
|
command.id_command = -1
|
||||||
command.id_command_category = json[Command_Category.FLAG_COMMAND_CATEGORY]
|
command.id_command_category = json[Command_Category.FLAG_COMMAND_CATEGORY]
|
||||||
@@ -94,7 +98,7 @@ class Command(SQLAlchemy_ABC, Base):
|
|||||||
as_json = {
|
as_json = {
|
||||||
**self.get_shared_json_attributes(self)
|
**self.get_shared_json_attributes(self)
|
||||||
, self.ATTR_ID_COMMAND: self.id_command
|
, self.ATTR_ID_COMMAND: self.id_command
|
||||||
, Command_Category.FLAG_COMMAND_CATEGORY: self.id_command_category
|
, Command_Category.ATTR_ID_COMMAND_CATEGORY: self.id_command_category
|
||||||
, self.FLAG_NAME: self.name
|
, self.FLAG_NAME: self.name
|
||||||
, self.FLAG_HAND_SIGNAL_DEFAULT_DESCRIPTION: self.hand_signal_default_description
|
, self.FLAG_HAND_SIGNAL_DEFAULT_DESCRIPTION: self.hand_signal_default_description
|
||||||
, self.FLAG_CAN_HAVE_BUTTON: self.can_have_button
|
, self.FLAG_CAN_HAVE_BUTTON: self.can_have_button
|
||||||
@@ -152,48 +156,102 @@ class Command_Temp(db.Model, Base):
|
|||||||
|
|
||||||
|
|
||||||
class Parameters_Command(Get_Many_Parameters_Base):
|
class Parameters_Command(Get_Many_Parameters_Base):
|
||||||
|
get_all_command_category: bool
|
||||||
|
get_inactive_command_category: bool
|
||||||
|
ids_command_category: str
|
||||||
|
names_command_category: str
|
||||||
get_all_command: bool
|
get_all_command: bool
|
||||||
get_inactive_command: bool
|
get_inactive_command: bool
|
||||||
ids_command: str
|
ids_command: str
|
||||||
names_command: str
|
names_command: str
|
||||||
|
hand_signal_default_descriptions_command: str
|
||||||
|
notes_command: str
|
||||||
|
require_all_id_search_filters_met: bool
|
||||||
|
require_any_id_search_filters_met: bool
|
||||||
|
require_all_non_id_search_filters_met: bool
|
||||||
|
require_any_non_id_search_filters_met: bool
|
||||||
|
output_command_categories: bool
|
||||||
|
output_commands: bool
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def get_default(cls):
|
def get_default(cls):
|
||||||
return cls(
|
return cls(
|
||||||
get_all_command = True
|
get_all_command_category = True
|
||||||
|
, get_inactive_command_category = False
|
||||||
|
, ids_command_category = ''
|
||||||
|
, names_command_category = ''
|
||||||
|
, get_all_command = True
|
||||||
, get_inactive_command = False
|
, get_inactive_command = False
|
||||||
, ids_command = ''
|
, ids_command = ''
|
||||||
, names_command = ''
|
, names_command = ''
|
||||||
|
, hand_signal_default_descriptions_command = ''
|
||||||
|
, notes_command = ''
|
||||||
|
, require_all_id_search_filters_met = True
|
||||||
|
, require_any_id_search_filters_met = True
|
||||||
|
, require_all_non_id_search_filters_met = False
|
||||||
|
, require_any_non_id_search_filters_met = True
|
||||||
|
, output_command_categories = True
|
||||||
|
, output_commands = True
|
||||||
)
|
)
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def from_json(cls, json):
|
def from_json(cls, json):
|
||||||
return cls(
|
return cls(
|
||||||
get_all_command = json.get('a_get_all_command', False)
|
get_all_command_category = json.get('a_get_all_command_category', False)
|
||||||
|
, get_inactive_command_category = json.get('a_get_inactive_command_category', False)
|
||||||
|
, ids_command_category = json.get('a_ids_command_category', '')
|
||||||
|
, names_command_category = json.get('a_names_command_category', '')
|
||||||
|
, get_all_command = json.get('a_get_all_command', False)
|
||||||
, get_inactive_command = json.get('a_get_inactive_command', False)
|
, get_inactive_command = json.get('a_get_inactive_command', False)
|
||||||
, ids_command = json.get('a_ids_command', '')
|
, ids_command = json.get('a_ids_command', '')
|
||||||
, names_command = json.get('a_names_command', '')
|
, names_command = json.get('a_names_command', '')
|
||||||
|
, hand_signal_default_descriptions_command = json.get('a_hand_signal_default_descriptions_command', '')
|
||||||
|
, notes_command = json.get('a_notes_command', '')
|
||||||
|
, require_all_id_search_filters_met = json.get('a_require_all_id_search_filters_met', True)
|
||||||
|
, require_any_id_search_filters_met = json.get('a_require_any_id_search_filters_met', True)
|
||||||
|
, require_all_non_id_search_filters_met = json.get('a_require_all_non_id_search_filters_met', False)
|
||||||
|
, require_any_non_id_search_filters_met = json.get('a_require_any_non_id_search_filters_met', True)
|
||||||
|
, output_command_categories = json.get('a_output_command_categories', False)
|
||||||
|
, output_commands = json.get('a_output_commands', False)
|
||||||
)
|
)
|
||||||
|
|
||||||
"""
|
"""
|
||||||
@classmethod
|
@classmethod
|
||||||
def from_form_filters_command(cls, form):
|
def from_form_filters_dog_command_link(cls, form):
|
||||||
av.val_instance(form, 'form', 'Parameters_Command.from_form_filters_command', Filters_Command)
|
av.val_instance(form, 'form', 'Parameters_Command.from_form_filters_dog_command_link', Filters_Dog_Command_Link)
|
||||||
has_filter_command = not (form.id_command.data == '0' or form.id_command.data == '' or form.id_command.data is None)
|
has_filter_search_text = not (form.search.data == '' or form.search.data is None)
|
||||||
active_only = av.input_bool(form.active.data, "active", "Parameters_Command.from_form_filters_command")
|
has_filter_command_category = not (has_filter_search_text or form.id_command_category.data == '0' or form.id_command_category.data == '' or form.id_command_category.data is None)
|
||||||
|
has_filter_command = not (has_filter_search_text or 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", "Parameters_Command.from_form_filters_dog_command_link")
|
||||||
return cls(
|
return cls(
|
||||||
get_all_command = not has_filter_command
|
get_all_command_category = not has_filter_command_category
|
||||||
|
, get_inactive_command_category = not active_only
|
||||||
|
, ids_command_category = form.id_command_category.data if has_filter_command_category else ''
|
||||||
|
, names_command_category = form.search_text.data if has_filter_search_text else ''
|
||||||
|
, get_all_command = not has_filter_command
|
||||||
, get_inactive_command = not active_only
|
, get_inactive_command = not active_only
|
||||||
, ids_command = form.id_command.data if has_filter_id else ''
|
, ids_command = form.id_command.data if has_filter_command else ''
|
||||||
, names_command = form.name_command.data if has_filter_name else ''
|
, names_command = form.search_text.data if has_filter_search_text else ''
|
||||||
)
|
)
|
||||||
"""
|
"""
|
||||||
|
|
||||||
def to_json(self):
|
def to_json(self):
|
||||||
return {
|
return {
|
||||||
'a_get_all_command': self.get_all_command
|
'a_get_all_command_category': self.get_all_command_category
|
||||||
|
, 'a_get_inactive_command_category': self.get_inactive_command_category
|
||||||
|
, 'a_ids_command_category': self.ids_command_category
|
||||||
|
, 'a_names_command_category': self.names_command_category
|
||||||
|
, 'a_get_all_command': self.get_all_command
|
||||||
, 'a_get_inactive_command': self.get_inactive_command
|
, 'a_get_inactive_command': self.get_inactive_command
|
||||||
, 'a_ids_command': self.ids_command
|
, 'a_ids_command': self.ids_command
|
||||||
, 'a_names_command': self.names_command
|
, 'a_names_command': self.names_command
|
||||||
|
, 'a_hand_signal_default_descriptions_command': self.hand_signal_default_descriptions_command
|
||||||
|
, 'a_notes_command': self.notes_command
|
||||||
|
, 'a_require_all_id_search_filters_met': self.require_all_id_search_filters_met
|
||||||
|
, 'a_require_any_id_search_filters_met': self.require_any_id_search_filters_met
|
||||||
|
, 'a_require_all_non_id_search_filters_met': self.require_all_non_id_search_filters_met
|
||||||
|
, 'a_require_any_non_id_search_filters_met': self.require_any_non_id_search_filters_met
|
||||||
|
, 'a_output_command_categories': self.output_command_categories
|
||||||
|
, 'a_output_commands': self.output_commands
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -37,9 +37,21 @@ class Command_Category(SQLAlchemy_ABC, Base):
|
|||||||
self.is_new = False
|
self.is_new = False
|
||||||
super().__init__()
|
super().__init__()
|
||||||
|
|
||||||
def from_db_dog_command_link(query_row):
|
@classmethod
|
||||||
_m = 'Command_Category.from_db_dog_command_link'
|
def from_db_command(cls, query_row):
|
||||||
level = Command_Category()
|
_m = f'{cls.__qualname__}.from_db_command'
|
||||||
|
category = cls()
|
||||||
|
category.id_command_category = query_row[0]
|
||||||
|
category.code = query_row[1]
|
||||||
|
category.name = query_row[2]
|
||||||
|
category.active = av.input_bool(query_row[3], 'active', _m)
|
||||||
|
# command.created_on = query_row[7]
|
||||||
|
return category
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def from_db_dog_command_link(cls, query_row):
|
||||||
|
_m = f'{cls.__qualname__}.from_db_dog_command_link'
|
||||||
|
level = cls()
|
||||||
level.id_command_category = query_row[3]
|
level.id_command_category = query_row[3]
|
||||||
# level.code = query_row[6]
|
# level.code = query_row[6]
|
||||||
level.name = query_row[4]
|
level.name = query_row[4]
|
||||||
|
|||||||
@@ -42,9 +42,10 @@ class Dog(SQLAlchemy_ABC, Base):
|
|||||||
self.is_new = False
|
self.is_new = False
|
||||||
super().__init__()
|
super().__init__()
|
||||||
|
|
||||||
def from_db_dog(query_row):
|
@classmethod
|
||||||
|
def from_db_dog(cls, query_row):
|
||||||
_m = 'Dog.from_db_dog'
|
_m = 'Dog.from_db_dog'
|
||||||
dog = Dog()
|
dog = cls()
|
||||||
dog.id_dog = query_row[0]
|
dog.id_dog = query_row[0]
|
||||||
dog.name = query_row[1]
|
dog.name = query_row[1]
|
||||||
dog.appearance = query_row[2]
|
dog.appearance = query_row[2]
|
||||||
@@ -53,9 +54,10 @@ class Dog(SQLAlchemy_ABC, Base):
|
|||||||
dog.active = av.input_bool(query_row[5], 'active', _m)
|
dog.active = av.input_bool(query_row[5], 'active', _m)
|
||||||
return dog
|
return dog
|
||||||
|
|
||||||
def from_db_dog_command_link(query_row):
|
@classmethod
|
||||||
|
def from_db_dog_command_link(cls, query_row):
|
||||||
_m = 'Dog.from_db_dog_command_link'
|
_m = 'Dog.from_db_dog_command_link'
|
||||||
dog = Dog()
|
dog = cls()
|
||||||
dog.id_dog = query_row[1]
|
dog.id_dog = query_row[1]
|
||||||
dog.name = query_row[2]
|
dog.name = query_row[2]
|
||||||
"""
|
"""
|
||||||
@@ -142,6 +144,10 @@ class Parameters_Dog(Get_Many_Parameters_Base):
|
|||||||
get_inactive_dog: bool
|
get_inactive_dog: bool
|
||||||
ids_dog: str
|
ids_dog: str
|
||||||
names_dog: str
|
names_dog: str
|
||||||
|
require_all_id_search_filters_met: bool
|
||||||
|
require_any_id_search_filters_met: bool
|
||||||
|
require_all_non_id_search_filters_met: bool
|
||||||
|
require_any_non_id_search_filters_met: bool
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def get_default(cls):
|
def get_default(cls):
|
||||||
@@ -150,6 +156,10 @@ class Parameters_Dog(Get_Many_Parameters_Base):
|
|||||||
, get_inactive_dog = False
|
, get_inactive_dog = False
|
||||||
, ids_dog = ''
|
, ids_dog = ''
|
||||||
, names_dog = ''
|
, names_dog = ''
|
||||||
|
, require_all_id_search_filters_met = True
|
||||||
|
, require_any_id_search_filters_met = True
|
||||||
|
, require_all_non_id_search_filters_met = False
|
||||||
|
, require_any_non_id_search_filters_met = True
|
||||||
)
|
)
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
@@ -159,6 +169,10 @@ class Parameters_Dog(Get_Many_Parameters_Base):
|
|||||||
, get_inactive_dog = json.get('a_get_inactive_dog', False)
|
, get_inactive_dog = json.get('a_get_inactive_dog', False)
|
||||||
, ids_dog = json.get('a_ids_dog', '')
|
, ids_dog = json.get('a_ids_dog', '')
|
||||||
, names_dog = json.get('names_dog', '')
|
, names_dog = json.get('names_dog', '')
|
||||||
|
, require_all_id_search_filters_met = json.get('a_require_all_id_search_filters_met', True)
|
||||||
|
, require_any_id_search_filters_met = json.get('a_require_any_id_search_filters_met', True)
|
||||||
|
, require_all_non_id_search_filters_met = json.get('a_require_all_non_id_search_filters_met', False)
|
||||||
|
, require_any_non_id_search_filters_met = json.get('a_require_any_non_id_search_filters_met', True)
|
||||||
)
|
)
|
||||||
|
|
||||||
"""
|
"""
|
||||||
@@ -183,5 +197,9 @@ class Parameters_Dog(Get_Many_Parameters_Base):
|
|||||||
, 'a_get_inactive_dog': self.get_inactive_dog
|
, 'a_get_inactive_dog': self.get_inactive_dog
|
||||||
, 'a_ids_dog': self.ids_dog
|
, 'a_ids_dog': self.ids_dog
|
||||||
, 'a_names_dog': self.names_dog
|
, 'a_names_dog': self.names_dog
|
||||||
|
, 'a_require_all_id_search_filters_met': self.require_all_id_search_filters_met
|
||||||
|
, 'a_require_any_id_search_filters_met': self.require_any_id_search_filters_met
|
||||||
|
, 'a_require_all_non_id_search_filters_met': self.require_all_non_id_search_filters_met
|
||||||
|
, 'a_require_any_non_id_search_filters_met': self.require_any_non_id_search_filters_met
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -48,14 +48,15 @@ class Dog_Command_Link(SQLAlchemy_ABC, Base):
|
|||||||
self.command = None
|
self.command = None
|
||||||
super().__init__()
|
super().__init__()
|
||||||
|
|
||||||
def from_db_dog_command_link(query_row):
|
@classmethod
|
||||||
|
def from_db_dog_command_link(cls, query_row):
|
||||||
_m = 'Dog_Command_Link.from_db_dog_command_link'
|
_m = 'Dog_Command_Link.from_db_dog_command_link'
|
||||||
dog_command_link = Dog_Command_Link()
|
dog_command_link = cls()
|
||||||
dog_command_link.id_link = query_row[0]
|
dog_command_link.id_link = query_row[0]
|
||||||
dog_command_link.id_dog = query_row[1]
|
dog_command_link.id_dog = query_row[1]
|
||||||
#dog_command_link.id_command_category = query_row[3]
|
#dog_command_link.id_command_category = query_row[3]
|
||||||
dog_command_link.id_command = query_row[5]
|
dog_command_link.id_command = query_row[5]
|
||||||
dog_command_link.hand_signal_description = query_row[8]
|
dog_command_link.hand_signal_description = query_row[7]
|
||||||
dog_command_link.notes = query_row[9]
|
dog_command_link.notes = query_row[9]
|
||||||
dog_command_link.active = av.input_bool(query_row[10], 'active', _m)
|
dog_command_link.active = av.input_bool(query_row[10], 'active', _m)
|
||||||
# dog_command_link.created_on = query_row[7]
|
# dog_command_link.created_on = query_row[7]
|
||||||
@@ -140,58 +141,146 @@ class Dog_Command_Link_Temp(db.Model, Base):
|
|||||||
|
|
||||||
|
|
||||||
class Parameters_Dog_Command_Link(Get_Many_Parameters_Base):
|
class Parameters_Dog_Command_Link(Get_Many_Parameters_Base):
|
||||||
|
get_all_link: bool
|
||||||
|
get_inactive_link: bool
|
||||||
|
ids_link: str
|
||||||
get_all_dog: bool
|
get_all_dog: bool
|
||||||
get_inactive_dog: bool
|
get_inactive_dog: bool
|
||||||
ids_dog: str
|
ids_dog: str
|
||||||
|
names_dog: str
|
||||||
|
get_all_command_category: bool
|
||||||
|
get_inactive_command_category: bool
|
||||||
|
ids_command_category: str
|
||||||
|
names_command_category: str
|
||||||
get_all_command: bool
|
get_all_command: bool
|
||||||
get_inactive_command: bool
|
get_inactive_command: bool
|
||||||
ids_command: str
|
ids_command: str
|
||||||
|
names_command: str
|
||||||
|
hand_signal_descriptions_link: str
|
||||||
|
notes_command: str
|
||||||
|
notes_link: str
|
||||||
|
require_all_id_search_filters_met: bool
|
||||||
|
require_any_id_search_filters_met: bool
|
||||||
|
require_all_non_id_search_filters_met: bool
|
||||||
|
require_any_non_id_search_filters_met: bool
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def get_default(cls):
|
def get_default(cls):
|
||||||
return cls(
|
return cls(
|
||||||
get_all_dog = True
|
get_all_link = True
|
||||||
|
, get_inactive_link = False
|
||||||
|
, ids_link = ''
|
||||||
|
, get_all_dog = True
|
||||||
, get_inactive_dog = False
|
, get_inactive_dog = False
|
||||||
, ids_dog = ''
|
, ids_dog = ''
|
||||||
|
, names_dog = ''
|
||||||
|
, get_all_command_category = True
|
||||||
|
, get_inactive_command_category = False
|
||||||
|
, ids_command_category = ''
|
||||||
|
, names_command_category = ''
|
||||||
, get_all_command = True
|
, get_all_command = True
|
||||||
, get_inactive_command = False
|
, get_inactive_command = False
|
||||||
, ids_command = ''
|
, ids_command = ''
|
||||||
|
, names_command = ''
|
||||||
|
, hand_signal_descriptions_link = ''
|
||||||
|
, notes_command = ''
|
||||||
|
, notes_link = ''
|
||||||
|
, require_all_id_search_filters_met = True
|
||||||
|
, require_any_id_search_filters_met = True
|
||||||
|
, require_all_non_id_search_filters_met = False
|
||||||
|
, require_any_non_id_search_filters_met = True
|
||||||
)
|
)
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def from_json(cls, json):
|
def from_json(cls, json):
|
||||||
return cls(
|
return cls(
|
||||||
get_all_dog = json.get('a_get_all_dog', False)
|
get_all_link = json.get('a_get_all_link', False)
|
||||||
|
, get_inactive_link = json.get('a_get_inactive_link', False)
|
||||||
|
, ids_link = json.get('a_ids_link', '')
|
||||||
|
, get_all_dog = json.get('a_get_all_dog', False)
|
||||||
, get_inactive_dog = json.get('a_get_inactive_dog', False)
|
, get_inactive_dog = json.get('a_get_inactive_dog', False)
|
||||||
, ids_dog = json.get('a_ids_dog', '')
|
, ids_dog = json.get('a_ids_dog', '')
|
||||||
|
, names_dog = json.get('a_names_dog', '')
|
||||||
|
, get_all_command_category = json.get('a_get_all_command_category', False)
|
||||||
|
, get_inactive_command_category = json.get('a_get_inactive_command_category', False)
|
||||||
|
, ids_command_category = json.get('a_ids_command_category', '')
|
||||||
|
, names_command_category = json.get('a_names_command_category', '')
|
||||||
, get_all_command = json.get('a_get_all_command', False)
|
, get_all_command = json.get('a_get_all_command', False)
|
||||||
, get_inactive_command = json.get('a_get_inactive_command', False)
|
, get_inactive_command = json.get('a_get_inactive_command', False)
|
||||||
, ids_command = json.get('a_ids_command', '')
|
, ids_command = json.get('a_ids_command', '')
|
||||||
|
, names_command = json.get('a_names_command', '')
|
||||||
|
, hand_signal_descriptions_link = json.get('a_hand_signal_descriptions_link', '')
|
||||||
|
, notes_command = json.get('a_notes_command', '')
|
||||||
|
, notes_link = json.get('a_notes_link', '')
|
||||||
|
, require_all_id_search_filters_met = json.get('a_require_all_id_search_filters_met', True)
|
||||||
|
, require_any_id_search_filters_met = json.get('a_require_any_id_search_filters_met', True)
|
||||||
|
, require_all_non_id_search_filters_met = json.get('a_require_all_non_id_search_filters_met', False)
|
||||||
|
, require_any_non_id_search_filters_met = json.get('a_require_any_non_id_search_filters_met', True)
|
||||||
)
|
)
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def from_form_filters_dog_command_link(cls, form):
|
def from_form_filters_dog_command_link(cls, form):
|
||||||
av.val_instance(form, 'form', 'Parameters_Dog_Command_Link.from_form_filters_dog_command_link', Filters_Dog_Command_Link)
|
_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_search_text = not (form.search.data == '' or form.search.data is None)
|
||||||
has_filter_dog = not (has_filter_search_text or form.id_dog.data == '0' or form.id_dog.data == '' or form.id_dog.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 = not (has_filter_search_text or form.id_command.data == '0' or form.id_command.data == '' or form.id_command.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)
|
||||||
active_only = av.input_bool(form.active_only.data, "active", "Parameters_Dog_Command_Link.from_form_filters_dog_command_link")
|
has_filter_command = not (form.id_command.data == '0' or form.id_command.data == '' or form.id_command.data is None)
|
||||||
return cls(
|
active_only = av.input_bool(form.active_only.data, "active", _m)
|
||||||
get_all_dog = not has_filter_dog
|
Helper_App.console_log(f'''
|
||||||
, get_inactive_dog = not active_only
|
has_filter_search_text: {has_filter_search_text}
|
||||||
, ids_dog = form.id_dog.data if has_filter_dog else form.search.data if has_filter_search_text else ''
|
has_filter_dog: {has_filter_dog}
|
||||||
, get_all_command = not has_filter_command
|
has_filter_command_category: {has_filter_command_category}
|
||||||
, get_inactive_command = not active_only
|
has_filter_command: {has_filter_command}
|
||||||
, ids_command = form.id_command.data if has_filter_command else form.search.data if has_filter_search_text else ''
|
active_only: {active_only}
|
||||||
)
|
''')
|
||||||
|
filters = cls.get_default()
|
||||||
|
filters.get_all_link = True
|
||||||
|
filters.get_inactive_link = not active_only
|
||||||
|
filters.ids_link = ''
|
||||||
|
filters.get_all_dog = not has_filter_dog
|
||||||
|
filters.get_inactive_dog = not active_only
|
||||||
|
filters.ids_dog = form.id_dog.data if has_filter_dog else ''
|
||||||
|
filters.names_dog = form.search.data if has_filter_search_text else ''
|
||||||
|
filters.get_all_command_category = not has_filter_command_category
|
||||||
|
filters.get_inactive_command_category = not active_only
|
||||||
|
filters.ids_command_category = form.id_command_category.data if has_filter_command_category else ''
|
||||||
|
filters.names_command_category = form.search.data if has_filter_search_text else ''
|
||||||
|
filters.get_all_command = not has_filter_command
|
||||||
|
filters.get_inactive_command = not active_only
|
||||||
|
filters.ids_command = form.id_command.data if has_filter_command else ''
|
||||||
|
filters.names_command = form.search.data if has_filter_search_text else ''
|
||||||
|
filters.hand_signal_descriptions_link = form.search.data if has_filter_search_text else ''
|
||||||
|
# filters.notes_command = form.search.data if has_filter_search_text else ''
|
||||||
|
filters.notes_link = form.search.data if has_filter_search_text else ''
|
||||||
|
return filters
|
||||||
|
|
||||||
def to_json(self):
|
def to_json(self):
|
||||||
return {
|
return {
|
||||||
'a_get_all_dog': self.get_all_dog
|
'a_get_all_link': self.get_all_link
|
||||||
|
, 'a_get_inactive_link': self.get_inactive_link
|
||||||
|
, 'a_ids_link': self.ids_link
|
||||||
|
, 'a_get_all_dog': self.get_all_dog
|
||||||
, 'a_get_inactive_dog': self.get_inactive_dog
|
, 'a_get_inactive_dog': self.get_inactive_dog
|
||||||
, 'a_ids_dog': self.ids_dog
|
, 'a_ids_dog': self.ids_dog
|
||||||
|
, 'a_names_dog': self.names_dog
|
||||||
|
, 'a_get_all_command_category': self.get_all_command_category
|
||||||
|
, 'a_get_inactive_command_category': self.get_inactive_command_category
|
||||||
|
, 'a_ids_command_category': self.ids_command_category
|
||||||
|
, 'a_names_command_category': self.names_command_category
|
||||||
, 'a_get_all_command': self.get_all_command
|
, 'a_get_all_command': self.get_all_command
|
||||||
, 'a_get_inactive_command': self.get_inactive_command
|
, 'a_get_inactive_command': self.get_inactive_command
|
||||||
, 'a_ids_command': self.ids_command
|
, 'a_ids_command': self.ids_command
|
||||||
|
, 'a_names_command': self.names_command
|
||||||
|
, 'a_hand_signal_descriptions_link': self.hand_signal_descriptions_link
|
||||||
|
, 'a_notes_command': self.notes_command
|
||||||
|
, 'a_notes_link': self.notes_link
|
||||||
|
, 'a_require_all_id_search_filters_met': self.require_all_id_search_filters_met
|
||||||
|
, 'a_require_any_id_search_filters_met': self.require_any_id_search_filters_met
|
||||||
|
, 'a_require_all_non_id_search_filters_met': self.require_all_non_id_search_filters_met
|
||||||
|
, 'a_require_any_non_id_search_filters_met': self.require_any_non_id_search_filters_met
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -37,9 +37,10 @@ class Obedience_Level(SQLAlchemy_ABC, Base):
|
|||||||
self.is_new = False
|
self.is_new = False
|
||||||
super().__init__()
|
super().__init__()
|
||||||
"""
|
"""
|
||||||
def from_db_dog_command_link(query_row):
|
@classmethod
|
||||||
_m = 'Obedience_Level.from_db_dog_command_link'
|
def from_db_dog_command_link(cls, query_row):
|
||||||
level = Obedience_Level()
|
_m = f'{cls.__qualname__}.from_db_dog_command_link'
|
||||||
|
level = cls()
|
||||||
level.id_obedience_level = query_row[5]
|
level.id_obedience_level = query_row[5]
|
||||||
level.code = query_row[6]
|
level.code = query_row[6]
|
||||||
level.name = query_row[7]
|
level.name = query_row[7]
|
||||||
@@ -48,7 +49,7 @@ class Obedience_Level(SQLAlchemy_ABC, Base):
|
|||||||
"""
|
"""
|
||||||
@classmethod
|
@classmethod
|
||||||
def from_json(cls, json):
|
def from_json(cls, json):
|
||||||
_m = 'Obedience_Level.from_json'
|
_m = f'{cls.__qualname__}.from_json'
|
||||||
obedience_level = cls()
|
obedience_level = cls()
|
||||||
if json is None: return Obedience_Level
|
if json is None: return Obedience_Level
|
||||||
Helper_App.console_log(f'{_m}\njson: {json}')
|
Helper_App.console_log(f'{_m}\njson: {json}')
|
||||||
|
|||||||
@@ -39,6 +39,7 @@ class User(SQLAlchemy_ABC, Base):
|
|||||||
self.id_user = 0
|
self.id_user = 0
|
||||||
self.is_new = False
|
self.is_new = False
|
||||||
self.can_admin_dog = False
|
self.can_admin_dog = False
|
||||||
|
self.can_admin_user = False
|
||||||
super().__init__()
|
super().__init__()
|
||||||
|
|
||||||
def from_DB_user(query_row):
|
def from_DB_user(query_row):
|
||||||
@@ -50,10 +51,10 @@ class User(SQLAlchemy_ABC, Base):
|
|||||||
user.surname = query_row[3]
|
user.surname = query_row[3]
|
||||||
user.email = query_row[4]
|
user.email = query_row[4]
|
||||||
user.is_email_verified = av.input_bool(query_row[5], 'is_email_verified', _m)
|
user.is_email_verified = av.input_bool(query_row[5], 'is_email_verified', _m)
|
||||||
user.is_super_user = av.input_bool(query_row[9], 'is_super_user', _m)
|
user.is_super_user = av.input_bool(query_row[6], 'is_super_user', _m)
|
||||||
user.is_new = av.input_bool(query_row[12], 'is_new', _m)
|
user.can_admin_dog = av.input_bool(query_row[7], 'can_admin_dog', _m)
|
||||||
|
user.can_admin_user = av.input_bool(query_row[8], 'can_admin_user', _m)
|
||||||
user.can_admin_dog = user.is_super_user
|
user.is_new = av.input_bool(query_row[9], 'is_new', _m)
|
||||||
return user
|
return user
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
@@ -133,9 +134,6 @@ class User_Temp(db.Model, Base):
|
|||||||
email = db.Column(db.String(250))
|
email = db.Column(db.String(250))
|
||||||
is_email_verified = db.Column(db.Boolean)
|
is_email_verified = db.Column(db.Boolean)
|
||||||
is_super_user = db.Column(db.Boolean)
|
is_super_user = db.Column(db.Boolean)
|
||||||
id_currency_default = db.Column(db.Integer)
|
|
||||||
id_region_default = db.Column(db.Integer)
|
|
||||||
is_included_VAT_default = db.Column(db.Boolean)
|
|
||||||
# is_logged_in: bool
|
# is_logged_in: bool
|
||||||
|
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
@@ -150,36 +148,51 @@ class Parameters_User(Get_Many_Parameters_Base):
|
|||||||
get_inactive_user: bool
|
get_inactive_user: bool
|
||||||
ids_user: str
|
ids_user: str
|
||||||
ids_user_auth0: str
|
ids_user_auth0: str
|
||||||
|
names_user: str
|
||||||
|
require_all_id_search_filters_met: bool
|
||||||
|
require_any_id_search_filters_met: bool
|
||||||
|
require_all_non_id_search_filters_met: bool
|
||||||
|
require_any_non_id_search_filters_met: bool
|
||||||
|
|
||||||
@staticmethod
|
|
||||||
def from_form(form):
|
@classmethod
|
||||||
|
def from_form(cls, form):
|
||||||
av.val_instance(form, 'form', 'Parameters_User.from_form', Form_Filters_User)
|
av.val_instance(form, 'form', 'Parameters_User.from_form', Form_Filters_User)
|
||||||
get_inactive = av.input_bool(form.active.data, "active", "Parameters_User.from_form")
|
get_inactive = av.input_bool(form.active.data, "active", "Parameters_User.from_form")
|
||||||
id_user = '' if form.id_user.data is None else form.id_user.data
|
id_user = '' if form.id_user.data is None else form.id_user.data
|
||||||
return Parameters_User(
|
filters = cls.get_default()
|
||||||
get_all_user = (id_user == ''),
|
filters.get_all_user = (id_user == '')
|
||||||
get_inactive_user = get_inactive,
|
filters.get_inactive_user = get_inactive
|
||||||
ids_user = id_user,
|
filters.ids_user = id_user
|
||||||
ids_user_auth0 = '',
|
filters.ids_user_auth0 = ''
|
||||||
)
|
filters.require_all_id_search_filters_met = True
|
||||||
|
filters.require_any_id_search_filters_met = True
|
||||||
|
filters.require_all_non_id_search_filters_met = False
|
||||||
|
filters.require_any_non_id_search_filters_met = True
|
||||||
|
return filters
|
||||||
|
|
||||||
@staticmethod
|
@classmethod
|
||||||
def from_user(user):
|
def from_user(cls, user):
|
||||||
av.val_instance(user, 'user', 'Parameters_User.from_user', User)
|
av.val_instance(user, 'user', 'Parameters_User.from_user', User)
|
||||||
return Parameters_User(
|
filters = cls.get_default()
|
||||||
get_all_user = ((user.id_user is None or user.id_user == 0) and user.id_user_auth0 is None),
|
filters.get_all_user = ((user.id_user is None or user.id_user == 0) and user.id_user_auth0 is None)
|
||||||
get_inactive_user = False,
|
filters.get_inactive_user = False
|
||||||
ids_user = '' if user.id_user is None else str(user.id_user),
|
filters.ids_user = '' if user.id_user is None else str(user.id_user)
|
||||||
ids_user_auth0 = user.id_user_auth0,
|
filters.ids_user_auth0 = user.id_user_auth0
|
||||||
)
|
return filters
|
||||||
|
|
||||||
@staticmethod
|
@classmethod
|
||||||
def get_default():
|
def get_default(cls):
|
||||||
return Parameters_User(
|
return cls(
|
||||||
get_all_user = False,
|
get_all_user = False
|
||||||
get_inactive_user = False,
|
, get_inactive_user = False
|
||||||
ids_user = '',
|
, ids_user = ''
|
||||||
ids_user_auth0 = ''
|
, ids_user_auth0 = ''
|
||||||
|
, names_user = ''
|
||||||
|
, require_all_id_search_filters_met = True
|
||||||
|
, require_any_id_search_filters_met = True
|
||||||
|
, require_all_non_id_search_filters_met = False
|
||||||
|
, require_any_non_id_search_filters_met = True
|
||||||
)
|
)
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
@@ -191,6 +204,11 @@ class Parameters_User(Get_Many_Parameters_Base):
|
|||||||
, 'a_get_inactive_user': self.get_inactive_user
|
, 'a_get_inactive_user': self.get_inactive_user
|
||||||
, 'a_ids_user': self.ids_user
|
, 'a_ids_user': self.ids_user
|
||||||
, 'a_ids_user_auth0': self.ids_user_auth0
|
, 'a_ids_user_auth0': self.ids_user_auth0
|
||||||
|
, 'a_names_user': self.names_user
|
||||||
|
, 'a_require_all_id_search_filters_met': self.require_all_id_search_filters_met
|
||||||
|
, 'a_require_any_id_search_filters_met': self.require_any_id_search_filters_met
|
||||||
|
, 'a_require_all_non_id_search_filters_met': self.require_all_non_id_search_filters_met
|
||||||
|
, 'a_require_any_non_id_search_filters_met': self.require_any_non_id_search_filters_met
|
||||||
}
|
}
|
||||||
|
|
||||||
class User_Permission_Evaluation(db.Model):
|
class User_Permission_Evaluation(db.Model):
|
||||||
|
|||||||
@@ -14,6 +14,7 @@ Datastore for Users
|
|||||||
# from routes import bp_home
|
# from routes import bp_home
|
||||||
import dog_training.lib.argument_validation as av
|
import dog_training.lib.argument_validation as av
|
||||||
from dog_training.business_objects.dog.command import Command, Command_Temp
|
from dog_training.business_objects.dog.command import Command, Command_Temp
|
||||||
|
from dog_training.business_objects.dog.command_category import Command_Category
|
||||||
from dog_training.business_objects.dog.dog import Dog
|
from dog_training.business_objects.dog.dog import Dog
|
||||||
from dog_training.business_objects.dog.dog_command_link import Dog_Command_Link
|
from dog_training.business_objects.dog.dog_command_link import Dog_Command_Link
|
||||||
from dog_training.business_objects.sql_error import SQL_Error
|
from dog_training.business_objects.sql_error import SQL_Error
|
||||||
@@ -40,10 +41,7 @@ class DataStore_Dog(DataStore_Base):
|
|||||||
user = cls.get_user_session()
|
user = cls.get_user_session()
|
||||||
argument_dict = {
|
argument_dict = {
|
||||||
'a_id_user': user.id_user
|
'a_id_user': user.id_user
|
||||||
, 'a_get_all_dog': filters_dog.get_all_dog
|
, **filters_dog.to_json()
|
||||||
, 'a_get_inactive_dog': filters_dog.get_inactive_dog
|
|
||||||
, 'a_ids_dog': filters_dog.ids_dog
|
|
||||||
, 'a_names_dog': filters_dog.names_dog
|
|
||||||
, 'a_debug': 0
|
, 'a_debug': 0
|
||||||
}
|
}
|
||||||
Helper_App.console_log(f'argument_dict: {argument_dict}')
|
Helper_App.console_log(f'argument_dict: {argument_dict}')
|
||||||
@@ -80,17 +78,25 @@ class DataStore_Dog(DataStore_Base):
|
|||||||
user = cls.get_user_session()
|
user = cls.get_user_session()
|
||||||
argument_dict = {
|
argument_dict = {
|
||||||
'a_id_user': user.id_user
|
'a_id_user': user.id_user
|
||||||
, 'a_get_all_command': filters_command.get_all_command
|
, **filters_command.to_json()
|
||||||
, 'a_get_inactive_command': filters_command.get_inactive_command
|
|
||||||
, 'a_ids_command': filters_command.ids_command
|
|
||||||
, 'a_names_command': filters_command.names_command
|
|
||||||
, 'a_debug': 0
|
, 'a_debug': 0
|
||||||
}
|
}
|
||||||
Helper_App.console_log(f'argument_dict: {argument_dict}')
|
Helper_App.console_log(f'argument_dict: {argument_dict}')
|
||||||
result = cls.db_procedure_execute('p_dog_get_many_command', argument_dict)
|
result = cls.db_procedure_execute('p_dog_get_many_command', argument_dict)
|
||||||
cursor = result.cursor
|
cursor = result.cursor
|
||||||
|
|
||||||
|
# Command Categories
|
||||||
|
result_set_1 = cursor.fetchall()
|
||||||
|
Helper_App.console_log(f'raw command categories: {result_set_1}')
|
||||||
|
command_categories = []
|
||||||
|
command_category_indexes = {}
|
||||||
|
for row in result_set_1:
|
||||||
|
new_command_category = Command_Category.from_db_command(row)
|
||||||
|
command_category_indexes[new_command_category.id_command_category] = len(command_categories)
|
||||||
|
command_categories.append(new_command_category)
|
||||||
|
|
||||||
# Commands
|
# Commands
|
||||||
|
cursor.nextset()
|
||||||
result_set_1 = cursor.fetchall()
|
result_set_1 = cursor.fetchall()
|
||||||
Helper_App.console_log(f'raw commands: {result_set_1}')
|
Helper_App.console_log(f'raw commands: {result_set_1}')
|
||||||
commands = []
|
commands = []
|
||||||
@@ -112,7 +118,7 @@ class DataStore_Dog(DataStore_Base):
|
|||||||
|
|
||||||
cls.db_cursor_clear(cursor)
|
cls.db_cursor_clear(cursor)
|
||||||
|
|
||||||
return commands, errors
|
return command_categories, commands, errors
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def get_many_dog_command_link(cls, filters_dog_command_link):
|
def get_many_dog_command_link(cls, filters_dog_command_link):
|
||||||
@@ -120,12 +126,7 @@ class DataStore_Dog(DataStore_Base):
|
|||||||
user = cls.get_user_session()
|
user = cls.get_user_session()
|
||||||
argument_dict = {
|
argument_dict = {
|
||||||
'a_id_user': user.id_user
|
'a_id_user': user.id_user
|
||||||
, 'a_get_all_dog': filters_dog_command_link.get_all_dog
|
, **filters_dog_command_link.to_json()
|
||||||
, 'a_get_inactive_dog': filters_dog_command_link.get_inactive_dog
|
|
||||||
, 'a_ids_dog': filters_dog_command_link.ids_dog
|
|
||||||
, 'a_get_all_command': filters_dog_command_link.get_all_command
|
|
||||||
, 'a_get_inactive_command': filters_dog_command_link.get_inactive_command
|
|
||||||
, 'a_ids_command': filters_dog_command_link.ids_command
|
|
||||||
, 'a_debug': 0
|
, 'a_debug': 0
|
||||||
}
|
}
|
||||||
Helper_App.console_log(f'argument_dict: {argument_dict}')
|
Helper_App.console_log(f'argument_dict: {argument_dict}')
|
||||||
@@ -138,6 +139,7 @@ class DataStore_Dog(DataStore_Base):
|
|||||||
dog_command_links = []
|
dog_command_links = []
|
||||||
dog_command_link_indexes = {}
|
dog_command_link_indexes = {}
|
||||||
for row in result_set_1:
|
for row in result_set_1:
|
||||||
|
# Helper_App.console_log(f'Raw dog command link: {row}')
|
||||||
new_dog_command_link = Dog_Command_Link.from_db_dog_command_link(row)
|
new_dog_command_link = Dog_Command_Link.from_db_dog_command_link(row)
|
||||||
dog_command_link_indexes[new_dog_command_link.id_link] = len(dog_command_links)
|
dog_command_link_indexes[new_dog_command_link.id_link] = len(dog_command_links)
|
||||||
dog_command_links.append(new_dog_command_link)
|
dog_command_links.append(new_dog_command_link)
|
||||||
|
|||||||
@@ -13,6 +13,7 @@ Defines Flask-WTF form for handling user input on Contact Us page.
|
|||||||
# IMPORTS
|
# IMPORTS
|
||||||
# internal
|
# internal
|
||||||
from dog_training.business_objects.base import Base
|
from dog_training.business_objects.base import Base
|
||||||
|
from dog_training.business_objects.dog.command_category import Command_Category
|
||||||
from dog_training.business_objects.dog.command import Command
|
from dog_training.business_objects.dog.command import Command
|
||||||
from dog_training.business_objects.dog.dog import Dog
|
from dog_training.business_objects.dog.dog import Dog
|
||||||
from dog_training.business_objects.dog.obedience_level import Obedience_Level
|
from dog_training.business_objects.dog.obedience_level import Obedience_Level
|
||||||
@@ -40,6 +41,11 @@ class Filters_Dog_Command_Link(Form_Base):
|
|||||||
, choices = [Form_Base.get_select_option_all()]
|
, choices = [Form_Base.get_select_option_all()]
|
||||||
, default = Form_Base.get_select_option_default_value()
|
, default = Form_Base.get_select_option_default_value()
|
||||||
)
|
)
|
||||||
|
id_command_category = SelectField(
|
||||||
|
'Command Category'
|
||||||
|
, choices = [Form_Base.get_select_option_all()]
|
||||||
|
, default = Form_Base.get_select_option_default_value()
|
||||||
|
)
|
||||||
id_command = SelectField(
|
id_command = SelectField(
|
||||||
'Command'
|
'Command'
|
||||||
, choices = [Form_Base.get_select_option_all()]
|
, choices = [Form_Base.get_select_option_all()]
|
||||||
@@ -55,19 +61,21 @@ class Filters_Dog_Command_Link(Form_Base):
|
|||||||
_m = f'{cls.__qualname__}.from_json'
|
_m = f'{cls.__qualname__}.from_json'
|
||||||
Helper_App.console_log(f'{_m}\njson: {json}')
|
Helper_App.console_log(f'{_m}\njson: {json}')
|
||||||
filters = cls()
|
filters = cls()
|
||||||
filters.search.data = json[Base.FLAG_SEARCH_TEXT]
|
filters.search.data = json[Base.FLAG_SEARCH]
|
||||||
# filters.id_dog.choices = [(json[Dog.ATTR_ID_DOG], json[Dog.ATTR_ID_DOG])]
|
# filters.id_dog.choices = [(json[Dog.ATTR_ID_DOG], json[Dog.ATTR_ID_DOG])]
|
||||||
filters.id_dog.data = json[Dog.ATTR_ID_DOG]
|
filters.id_dog.data = json[Dog.ATTR_ID_DOG]
|
||||||
|
# filters.id_command_category.choices = [(json[Command.ATTR_ID_COMMAND], json[Command.ATTR_ID_COMMAND])]
|
||||||
|
filters.id_command_category.data = json[Command_Category.ATTR_ID_COMMAND_CATEGORY]
|
||||||
# filters.id_command.choices = [(json[Command.ATTR_ID_COMMAND], json[Command.ATTR_ID_COMMAND])]
|
# filters.id_command.choices = [(json[Command.ATTR_ID_COMMAND], json[Command.ATTR_ID_COMMAND])]
|
||||||
filters.id_command.data = json[Command.ATTR_ID_COMMAND]
|
filters.id_command.data = json[Command.ATTR_ID_COMMAND]
|
||||||
filters.active_only.data = av.input_bool(json[Base.FLAG_ACTIVE_ONLY], Base.FLAG_ACTIVE_ONLY, f'{cls.__name__}.from_json')
|
filters.active_only.data = av.input_bool(json[Base.FLAG_ACTIVE_ONLY], Base.FLAG_ACTIVE_ONLY, f'{cls.__name__}.from_json')
|
||||||
# Helper_App.console_log(f'Command: {command}')
|
|
||||||
return filters
|
return filters
|
||||||
|
|
||||||
def to_json(self):
|
def to_json(self):
|
||||||
return {
|
return {
|
||||||
Base.FLAG_SEARCH_TEXT: self.search.data
|
Base.FLAG_SEARCH: self.search.data
|
||||||
, Dog.FLAG_DOG: self.id_dog.data
|
, Dog.ATTR_ID_DOG: self.id_dog.data
|
||||||
, Command.FLAG_COMMAND: self.id_command.data
|
, Command_Category.ATTR_ID_COMMAND_CATEGORY: self.id_command_category.data
|
||||||
|
, Command.ATTR_ID_COMMAND: self.id_command.data
|
||||||
, Base.FLAG_ACTIVE_ONLY: self.active_only.data
|
, Base.FLAG_ACTIVE_ONLY: self.active_only.data
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -20,6 +20,7 @@ Base data model for views
|
|||||||
from dog_training.business_objects.base import Base
|
from dog_training.business_objects.base import Base
|
||||||
from dog_training.business_objects.dog.user import User
|
from dog_training.business_objects.dog.user import User
|
||||||
from dog_training.business_objects.dog.command import Command
|
from dog_training.business_objects.dog.command import Command
|
||||||
|
from dog_training.business_objects.dog.command_category import Command_Category
|
||||||
from dog_training.business_objects.dog.dog import Dog
|
from dog_training.business_objects.dog.dog import Dog
|
||||||
from dog_training.business_objects.dog.dog_command_link import Dog_Command_Link
|
from dog_training.business_objects.dog.dog_command_link import Dog_Command_Link
|
||||||
from dog_training.datastores.datastore_base import DataStore_Base
|
from dog_training.datastores.datastore_base import DataStore_Base
|
||||||
@@ -37,6 +38,7 @@ from typing import ClassVar
|
|||||||
|
|
||||||
class Model_View_Base(BaseModel, ABC):
|
class Model_View_Base(BaseModel, ABC):
|
||||||
ATTR_ID_COMMAND: ClassVar[str] = Command.ATTR_ID_COMMAND
|
ATTR_ID_COMMAND: ClassVar[str] = Command.ATTR_ID_COMMAND
|
||||||
|
ATTR_ID_COMMAND_CATEGORY: ClassVar[str] = Command_Category.ATTR_ID_COMMAND_CATEGORY
|
||||||
ATTR_ID_DOG: ClassVar[str] = Dog.ATTR_ID_DOG
|
ATTR_ID_DOG: ClassVar[str] = Dog.ATTR_ID_DOG
|
||||||
ATTR_ID_DOG_COMMAND_LINK: ClassVar[str] = Dog_Command_Link.ATTR_ID_DOG_COMMAND_LINK
|
ATTR_ID_DOG_COMMAND_LINK: ClassVar[str] = Dog_Command_Link.ATTR_ID_DOG_COMMAND_LINK
|
||||||
ATTR_TEXT_COLLAPSED: ClassVar[str] = 'textCollapsed'
|
ATTR_TEXT_COLLAPSED: ClassVar[str] = 'textCollapsed'
|
||||||
@@ -68,6 +70,7 @@ class Model_View_Base(BaseModel, ABC):
|
|||||||
ENDPOINT_PAGE_PRIVACY_POLICY: ClassVar[str] = 'routes_legal.privacy_policy'
|
ENDPOINT_PAGE_PRIVACY_POLICY: ClassVar[str] = 'routes_legal.privacy_policy'
|
||||||
ENDPOINT_POST_COMMAND: ClassVar[str] = 'routes_core_contact.contact_post'
|
ENDPOINT_POST_COMMAND: ClassVar[str] = 'routes_core_contact.contact_post'
|
||||||
FLAG_ACTIVE: ClassVar[str] = Base.FLAG_ACTIVE
|
FLAG_ACTIVE: ClassVar[str] = Base.FLAG_ACTIVE
|
||||||
|
FLAG_ACTIVE_ONLY: ClassVar[str] = Base.FLAG_ACTIVE_ONLY
|
||||||
FLAG_ADD: ClassVar[str] = 'add'
|
FLAG_ADD: ClassVar[str] = 'add'
|
||||||
# FLAG_ADD_DELETE: ClassVar[str] = 'add-delete'
|
# FLAG_ADD_DELETE: ClassVar[str] = 'add-delete'
|
||||||
FLAG_BOOL_FALSE: ClassVar[str] = 'false'
|
FLAG_BOOL_FALSE: ClassVar[str] = 'false'
|
||||||
@@ -79,15 +82,16 @@ class Model_View_Base(BaseModel, ABC):
|
|||||||
FLAG_CALLBACK: ClassVar[str] = 'callback'
|
FLAG_CALLBACK: ClassVar[str] = 'callback'
|
||||||
FLAG_CAPTCHA: ClassVar[str] = 'captcha'
|
FLAG_CAPTCHA: ClassVar[str] = 'captcha'
|
||||||
FLAG_CARD: ClassVar[str] = 'card'
|
FLAG_CARD: ClassVar[str] = 'card'
|
||||||
|
FLAG_CHECKBOX: ClassVar[str] = 'checkbox'
|
||||||
FLAG_CLOSE_TEMPORARY_ELEMENT: ClassVar[str] = 'button-temporary-element-close'
|
FLAG_CLOSE_TEMPORARY_ELEMENT: ClassVar[str] = 'button-temporary-element-close'
|
||||||
FLAG_CODE: ClassVar[str] = Base.FLAG_CODE
|
FLAG_CODE: ClassVar[str] = Base.FLAG_CODE
|
||||||
FLAG_COLLAPSED: ClassVar[str] = 'collapsed'
|
FLAG_COLLAPSED: ClassVar[str] = 'collapsed'
|
||||||
FLAG_COLLAPSIBLE: ClassVar[str] = 'collapsible'
|
FLAG_COLLAPSIBLE: ClassVar[str] = 'collapsible'
|
||||||
FLAG_COMMAND: ClassVar[str] = Command.FLAG_COMMAND
|
FLAG_COMMAND: ClassVar[str] = Command.FLAG_COMMAND
|
||||||
|
FLAG_COMMAND_CATEGORY: ClassVar[str] = Command_Category.FLAG_COMMAND_CATEGORY
|
||||||
FLAG_COLUMN: ClassVar[str] = 'column'
|
FLAG_COLUMN: ClassVar[str] = 'column'
|
||||||
FLAG_COMMENT: ClassVar[str] = 'comment'
|
FLAG_COMMENT: ClassVar[str] = 'comment'
|
||||||
FLAG_CONTAINER: ClassVar[str] = 'container'
|
FLAG_CONTAINER: ClassVar[str] = 'container'
|
||||||
FLAG_CONTAINER_CHECKBOX: ClassVar[str] = 'container-checkbox'
|
|
||||||
FLAG_CONTAINER_ICON_AND_LABEL: ClassVar[str] = 'container-icon-label'
|
FLAG_CONTAINER_ICON_AND_LABEL: ClassVar[str] = 'container-icon-label'
|
||||||
FLAG_CONTAINER_INPUT: ClassVar[str] = 'container-input'
|
FLAG_CONTAINER_INPUT: ClassVar[str] = 'container-input'
|
||||||
FLAG_CSRF_TOKEN: ClassVar[str] = 'X-CSRFToken'
|
FLAG_CSRF_TOKEN: ClassVar[str] = 'X-CSRFToken'
|
||||||
@@ -114,6 +118,7 @@ class Model_View_Base(BaseModel, ABC):
|
|||||||
FLAG_ICON: ClassVar[str] = "icon"
|
FLAG_ICON: ClassVar[str] = "icon"
|
||||||
FLAG_IMAGE_LOGO: ClassVar[str] = 'image-logo'
|
FLAG_IMAGE_LOGO: ClassVar[str] = 'image-logo'
|
||||||
FLAG_INITIALISED: ClassVar[str] = 'initialised'
|
FLAG_INITIALISED: ClassVar[str] = 'initialised'
|
||||||
|
FLAG_IS_CHECKED: ClassVar[str] = 'is_checked'
|
||||||
FLAG_LEFT_HAND_STUB: ClassVar[str] = 'lhs'
|
FLAG_LEFT_HAND_STUB: ClassVar[str] = 'lhs'
|
||||||
FLAG_LOGO: ClassVar[str] = 'logo'
|
FLAG_LOGO: ClassVar[str] = 'logo'
|
||||||
FLAG_MESSAGE: ClassVar[str] = Command.FLAG_MESSAGE
|
FLAG_MESSAGE: ClassVar[str] = Command.FLAG_MESSAGE
|
||||||
@@ -123,7 +128,6 @@ class Model_View_Base(BaseModel, ABC):
|
|||||||
FLAG_NAME_ATTR_OPTION_VALUE: ClassVar[str] = Base.FLAG_NAME_ATTR_OPTION_VALUE
|
FLAG_NAME_ATTR_OPTION_VALUE: ClassVar[str] = Base.FLAG_NAME_ATTR_OPTION_VALUE
|
||||||
FLAG_NAME_PLURAL: ClassVar[str] = Base.FLAG_NAME_PLURAL
|
FLAG_NAME_PLURAL: ClassVar[str] = Base.FLAG_NAME_PLURAL
|
||||||
# FLAG_NAME_SINGULAR: ClassVar[str] = Base.FLAG_NAME_SINGULAR
|
# FLAG_NAME_SINGULAR: ClassVar[str] = Base.FLAG_NAME_SINGULAR
|
||||||
FLAG_SEARCH_TEXT: ClassVar[str] = Base.FLAG_SEARCH_TEXT
|
|
||||||
FLAG_NAV_ADMIN_HOME: ClassVar[str] = 'navAdminHome'
|
FLAG_NAV_ADMIN_HOME: ClassVar[str] = 'navAdminHome'
|
||||||
FLAG_NAV_CONTACT: ClassVar[str] = 'navContact'
|
FLAG_NAV_CONTACT: ClassVar[str] = 'navContact'
|
||||||
FLAG_NAV_DOG_COMMANDS: ClassVar[str] = 'navDogCommands'
|
FLAG_NAV_DOG_COMMANDS: ClassVar[str] = 'navDogCommands'
|
||||||
@@ -144,6 +148,7 @@ class Model_View_Base(BaseModel, ABC):
|
|||||||
FLAG_ROWS: ClassVar[str] = Base.FLAG_ROWS
|
FLAG_ROWS: ClassVar[str] = Base.FLAG_ROWS
|
||||||
FLAG_SAVE: ClassVar[str] = 'save'
|
FLAG_SAVE: ClassVar[str] = 'save'
|
||||||
FLAG_SCROLLABLE: ClassVar[str] = 'scrollable'
|
FLAG_SCROLLABLE: ClassVar[str] = 'scrollable'
|
||||||
|
FLAG_SEARCH: ClassVar[str] = Base.FLAG_SEARCH
|
||||||
FLAG_SLIDER: ClassVar[str] = 'slider'
|
FLAG_SLIDER: ClassVar[str] = 'slider'
|
||||||
FLAG_STATUS: ClassVar[str] = 'status'
|
FLAG_STATUS: ClassVar[str] = 'status'
|
||||||
FLAG_SUBMIT: ClassVar[str] = 'submit'
|
FLAG_SUBMIT: ClassVar[str] = 'submit'
|
||||||
|
|||||||
@@ -29,6 +29,7 @@ from typing import ClassVar
|
|||||||
class Model_View_Dog_Dog_Command_Link(Model_View_Dog_Base):
|
class Model_View_Dog_Dog_Command_Link(Model_View_Dog_Base):
|
||||||
FLAG_HAND_SIGNAL_DESCRIPTION: ClassVar[str] = Dog_Command_Link.FLAG_HAND_SIGNAL_DESCRIPTION
|
FLAG_HAND_SIGNAL_DESCRIPTION: ClassVar[str] = Dog_Command_Link.FLAG_HAND_SIGNAL_DESCRIPTION
|
||||||
filter_dogs: list = None
|
filter_dogs: list = None
|
||||||
|
filter_command_categories: list = None
|
||||||
filter_commands: list = None
|
filter_commands: list = None
|
||||||
dog_command_links: list = None
|
dog_command_links: list = None
|
||||||
form_filters: Filters_Dog_Command_Link = None
|
form_filters: Filters_Dog_Command_Link = None
|
||||||
@@ -48,9 +49,11 @@ class Model_View_Dog_Dog_Command_Link(Model_View_Dog_Base):
|
|||||||
self.filter_dogs, errors = datastore.get_many_dog(parameters_filter_dog)
|
self.filter_dogs, errors = datastore.get_many_dog(parameters_filter_dog)
|
||||||
|
|
||||||
parameters_filter_command = Parameters_Command.get_default()
|
parameters_filter_command = Parameters_Command.get_default()
|
||||||
self.filter_commands, errors = datastore.get_many_command(parameters_filter_command)
|
self.filter_command_categories, self.filter_commands, errors = datastore.get_many_command(parameters_filter_command)
|
||||||
|
|
||||||
|
Helper_App.console_log(f'Form filters: {self.form_filters}')
|
||||||
parameters_filter_dog_command_link = Parameters_Dog_Command_Link.from_form_filters_dog_command_link(self.form_filters)
|
parameters_filter_dog_command_link = Parameters_Dog_Command_Link.from_form_filters_dog_command_link(self.form_filters)
|
||||||
|
Helper_App.console_log(f'Query args: {parameters_filter_dog_command_link}')
|
||||||
self.dog_command_links, errors = datastore.get_many_dog_command_link(parameters_filter_dog_command_link)
|
self.dog_command_links, errors = datastore.get_many_dog_command_link(parameters_filter_dog_command_link)
|
||||||
|
|
||||||
# Helper_App.console_log(f'dogs: {self.filter_dogs}')
|
# Helper_App.console_log(f'dogs: {self.filter_dogs}')
|
||||||
@@ -58,6 +61,7 @@ class Model_View_Dog_Dog_Command_Link(Model_View_Dog_Base):
|
|||||||
# Helper_App.console_log(f'links: {self.dog_command_links}')
|
# Helper_App.console_log(f'links: {self.dog_command_links}')
|
||||||
|
|
||||||
self.form_filters.id_dog.choices += [(str(dog.id_dog), dog.name) for dog in self.filter_dogs]
|
self.form_filters.id_dog.choices += [(str(dog.id_dog), dog.name) for dog in self.filter_dogs]
|
||||||
|
self.form_filters.id_command_category.choices += [(str(command_category.id_command_category), command_category.name) for command_category in self.filter_command_categories]
|
||||||
self.form_filters.id_command.choices += [(str(command.id_command), command.name) for command in self.filter_commands]
|
self.form_filters.id_command.choices += [(str(command.id_command), command.name) for command in self.filter_commands]
|
||||||
|
|
||||||
"""
|
"""
|
||||||
|
|||||||
15
static/MySQL/000000_tmp_command.sql
Normal file
15
static/MySQL/000000_tmp_command.sql
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
|
||||||
|
CALL demo.p_dog_get_many_command (
|
||||||
|
1 -- 'auth0|6582b95c895d09a70ba10fef', -- a_id_user
|
||||||
|
, 1 -- a_get_all_command_category
|
||||||
|
, 0 -- a_get_inactive_command_category
|
||||||
|
, '' -- a_ids_command_category
|
||||||
|
, '' -- a_names_command_category
|
||||||
|
, 1 -- a_get_all_command
|
||||||
|
, 0 -- a_get_inactive_command
|
||||||
|
, '' -- a_ids_command
|
||||||
|
, '' -- a_names_command
|
||||||
|
, 1 -- a_output_command_categories
|
||||||
|
, 1 -- a_output_commands
|
||||||
|
, 0 -- a_debug
|
||||||
|
);
|
||||||
@@ -1,39 +1,42 @@
|
|||||||
|
|
||||||
USE demo;
|
USE demo;
|
||||||
|
|
||||||
DROP PROCEDURE IF EXISTS demo.p_dog_get_many_dog_command;
|
-- Clear previous proc
|
||||||
DROP PROCEDURE IF EXISTS demo.p_dog_get_many_dog_command_link;
|
DROP PROCEDURE IF EXISTS p_dog_get_many_user;
|
||||||
|
|
||||||
|
|
||||||
DELIMITER //
|
DELIMITER //
|
||||||
CREATE PROCEDURE demo.p_dog_get_many_dog_command_link (
|
CREATE PROCEDURE p_dog_get_many_user (
|
||||||
IN a_id_user INT
|
IN a_id_user INT
|
||||||
, IN a_get_all_dog BIT
|
, IN a_id_user_auth0 VARCHAR(200)
|
||||||
, IN a_get_inactive_dog BIT
|
, IN a_get_all_user BIT
|
||||||
, IN a_ids_dog TEXT
|
, IN a_get_inactive_user BIT
|
||||||
, IN a_names_dog TEXT
|
, IN a_ids_user TEXT
|
||||||
, IN a_get_all_command_category BIT
|
, IN a_ids_user_auth0 TEXT
|
||||||
, IN a_get_inactive_command_category BIT
|
, IN a_names_user TEXT
|
||||||
, IN a_ids_command_category TEXT
|
, IN a_require_all_id_search_filters_met BIT
|
||||||
, IN a_names_command_category TEXT
|
, IN a_require_any_id_search_filters_met BIT
|
||||||
, IN a_get_all_command BIT
|
, IN a_require_all_non_id_search_filters_met BIT
|
||||||
, IN a_get_inactive_command BIT
|
, IN a_require_any_non_id_search_filters_met BIT
|
||||||
, IN a_ids_command TEXT
|
|
||||||
, IN a_names_command TEXT
|
|
||||||
, IN a_debug BIT
|
, IN a_debug BIT
|
||||||
)
|
)
|
||||||
BEGIN
|
BEGIN
|
||||||
DECLARE v_code_type_error_bad_data VARCHAR(100);
|
DECLARE v_code_type_error_bad_data VARCHAR(50);
|
||||||
DECLARE v_code_type_error_no_permission VARCHAR(100);
|
|
||||||
DECLARE v_code_type_error_warning VARCHAR(100);
|
|
||||||
DECLARE v_id_type_error_bad_data INT;
|
|
||||||
DECLARE v_id_type_error_no_permission INT;
|
|
||||||
DECLARE v_id_type_error_warning INT;
|
|
||||||
DECLARE v_has_filter_dog BIT;
|
|
||||||
DECLARE v_guid BINARY(36);
|
DECLARE v_guid BINARY(36);
|
||||||
DECLARE v_id_permission_dog_view INT;
|
DECLARE v_has_filter_user_auth0_id BIT;
|
||||||
|
DECLARE v_has_filter_user_id BIT;
|
||||||
|
DECLARE v_has_filter_user_name BIT;
|
||||||
|
DECLARE v_id_access_level_admin INT;
|
||||||
|
DECLARE v_id_access_level_view INT;
|
||||||
DECLARE v_id_minimum INT;
|
DECLARE v_id_minimum INT;
|
||||||
|
DECLARE v_id_permission_dog_admin INT;
|
||||||
|
DECLARE v_id_permission_user INT;
|
||||||
|
DECLARE v_id_permission_user_admin INT;
|
||||||
|
DECLARE v_id_type_error_bad_data INT;
|
||||||
|
DECLARE v_ids_permission_required VARCHAR(4000);
|
||||||
|
DECLARE v_is_new BIT;
|
||||||
|
DECLARE v_rank_max INT;
|
||||||
DECLARE v_time_start TIMESTAMP(6);
|
DECLARE v_time_start TIMESTAMP(6);
|
||||||
DECLARE v_can_view BIT;
|
|
||||||
|
|
||||||
DECLARE exit handler for SQLEXCEPTION
|
DECLARE exit handler for SQLEXCEPTION
|
||||||
BEGIN
|
BEGIN
|
||||||
@@ -49,7 +52,7 @@ BEGIN
|
|||||||
id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT
|
id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT
|
||||||
, id_type INT NULL
|
, id_type INT NULL
|
||||||
, code VARCHAR(100) NOT NULL
|
, code VARCHAR(100) NOT NULL
|
||||||
, msg VARCHAR(4000) NOT NULL
|
, msg TEXT NOT NULL
|
||||||
);
|
);
|
||||||
|
|
||||||
INSERT INTO tmp_Msg_Error (
|
INSERT INTO tmp_Msg_Error (
|
||||||
@@ -84,375 +87,606 @@ BEGIN
|
|||||||
|
|
||||||
SET v_time_start := CURRENT_TIMESTAMP(6);
|
SET v_time_start := CURRENT_TIMESTAMP(6);
|
||||||
SET v_guid := UUID();
|
SET v_guid := UUID();
|
||||||
|
SET v_id_access_level_admin := (SELECT id_access_level FROM demo.DOG_Access_Level WHERE code = 'ADMIN' LIMIT 1);
|
||||||
|
SET v_id_access_level_view := (SELECT id_access_level FROM demo.DOG_Access_Level WHERE code = 'VIEW' LIMIT 1);
|
||||||
|
SET v_id_permission_dog_admin := (SELECT id_permission FROM demo.DOG_Permission WHERE code = 'DOG_ADMIN' LIMIT 1);
|
||||||
|
SET v_id_permission_user := (SELECT id_permission FROM demo.DOG_Permission WHERE code = 'USER_VIEW' LIMIT 1);
|
||||||
|
SET v_id_permission_user_admin := (SELECT id_permission FROM demo.DOG_Permission WHERE code = 'USER_ADMIN' LIMIT 1);
|
||||||
SET v_code_type_error_bad_data := 'BAD_DATA';
|
SET v_code_type_error_bad_data := 'BAD_DATA';
|
||||||
SET v_code_type_error_no_permission := 'NO_PERMISSION';
|
SET v_id_type_error_bad_data := (SELECT id_type FROM demo.CORE_Msg_Error_Type WHERE code = v_code_type_error_bad_data LIMIT 1);
|
||||||
SET v_code_type_error_warning := 'WARNING';
|
SET v_ids_permission_required := CONCAT(v_id_permission_user, ',', v_id_permission_user_admin, ',', v_id_permission_dog_admin);
|
||||||
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_is_new := FALSE;
|
||||||
SET v_id_type_error_no_permission := (SELECT ERROR_TYPE.id_type FROM demo.CORE_Msg_Error_Type ERROR_TYPE WHERE ERROR_TYPE.code = v_code_type_error_no_permission LIMIT 1);
|
|
||||||
SET v_id_type_error_warning := (SELECT ERROR_TYPE.id_type FROM demo.CORE_Msg_Error_Type ERROR_TYPE WHERE ERROR_TYPE.code = v_code_type_error_warning LIMIT 1);
|
|
||||||
SET v_id_permission_dog_view := (SELECT PERMISSION.id_permission FROM demo.DOG_Permission PERMISSION WHERE PERMISSION.code = 'DOG_VIEW' LIMIT 1);
|
|
||||||
|
|
||||||
SET a_id_user := IFNULL(a_id_user, 0);
|
SET a_get_all_user := IFNULL(a_get_all_user, 1);
|
||||||
-- SET a_get_all_dog := IFNULL(a_get_all_dog, 0);
|
SET a_get_inactive_user := IFNULL(a_get_inactive_user, 0);
|
||||||
-- SET a_get_inactive_dog := IFNULL(a_get_inactive_dog, 0);
|
SET a_ids_user := TRIM(IFNULL(a_ids_user, ''));
|
||||||
-- SET a_ids_dog := TRIM(IFNULL(a_ids_dog, ''));
|
SET a_ids_user_auth0 := TRIM(IFNULL(a_ids_user_auth0, ''));
|
||||||
-- SET a_get_all_command_category := IFNULL(a_get_all_command_category, 0);
|
SET a_names_user := TRIM(IFNULL(a_names_user, ''));
|
||||||
-- SET a_get_inactive_command_category := IFNULL(a_get_inactive_command_category, 0);
|
SET a_require_all_id_search_filters_met := IFNULL(a_require_all_id_search_filters_met, 1);
|
||||||
-- SET a_ids_command_category := TRIM(IFNULL(a_ids_command_category, ''));
|
SET a_require_any_id_search_filters_met := IFNULL(a_require_any_id_search_filters_met, 1);
|
||||||
-- SET a_get_all_command := IFNULL(a_get_all_command, 0);
|
SET a_require_all_non_id_search_filters_met := IFNULL(a_require_all_non_id_search_filters_met, 0);
|
||||||
-- SET a_get_inactive_command := IFNULL(a_get_inactive_command, 0);
|
SET a_require_any_non_id_search_filters_met := IFNULL(a_require_any_non_id_search_filters_met, 1);
|
||||||
-- SET a_ids_command := TRIM(IFNULL(a_ids_command, ''));
|
|
||||||
SET a_debug := IFNULL(a_debug, 0);
|
SET a_debug := IFNULL(a_debug, 0);
|
||||||
|
|
||||||
IF a_debug = 1 THEN
|
IF a_debug = 1 THEN
|
||||||
SELECT
|
SELECT
|
||||||
a_id_user
|
a_id_user
|
||||||
, a_get_all_dog
|
, a_id_user_auth0
|
||||||
, a_get_inactive_dog
|
, a_get_all_user
|
||||||
, a_ids_dog
|
, a_get_inactive_user
|
||||||
, a_names_dog
|
, a_ids_user
|
||||||
, a_get_all_command_category
|
, a_ids_user_auth0
|
||||||
, a_get_inactive_command_category
|
, a_names_user
|
||||||
, a_ids_command_category
|
, a_require_all_id_search_filters_met
|
||||||
, a_names_command_category
|
, a_require_any_id_search_filters_met
|
||||||
, a_get_all_command
|
, a_require_all_non_id_search_filters_met
|
||||||
, a_get_inactive_command
|
, a_require_any_non_id_search_filters_met
|
||||||
, a_ids_command
|
, a_debug
|
||||||
, a_names_command
|
;
|
||||||
, a_debug
|
END IF;
|
||||||
|
|
||||||
|
DROP TEMPORARY TABLE IF EXISTS tmp_Split_Name;
|
||||||
|
DROP TEMPORARY TABLE IF EXISTS tmp_Split_Auth0_Id;
|
||||||
|
DROP TEMPORARY TABLE IF EXISTS tmp_Split_Id;
|
||||||
|
DROP TEMPORARY TABLE IF EXISTS tmp_Msg_Error;
|
||||||
|
DROP TEMPORARY TABLE IF EXISTS tmp_User;
|
||||||
|
|
||||||
|
CREATE TEMPORARY TABLE tmp_User (
|
||||||
|
id_user INT NULL
|
||||||
|
, can_admin_dog BIT NULL
|
||||||
|
, can_admin_user BIT NULL
|
||||||
|
, does_meet_id_filters BIT
|
||||||
|
, does_meet_non_id_filters BIT
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE TEMPORARY TABLE tmp_Msg_Error (
|
||||||
|
id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT
|
||||||
|
, id_type INT NOT NULL
|
||||||
|
, code VARCHAR(100) NOT NULL
|
||||||
|
, msg TEXT NOT NULL
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Split_Id (
|
||||||
|
substring VARCHAR(4000) NOT NULL
|
||||||
|
, as_int INT NULL
|
||||||
|
);
|
||||||
|
DELETE FROM tmp_Split_Id;
|
||||||
|
|
||||||
|
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Split_Auth0_Id (
|
||||||
|
substring VARCHAR(4000) NOT NULL
|
||||||
|
, as_int INT NULL
|
||||||
|
);
|
||||||
|
DELETE FROM tmp_Split_Auth0_Id;
|
||||||
|
|
||||||
|
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Split_Name (
|
||||||
|
substring VARCHAR(4000) NOT NULL
|
||||||
|
, as_int INT NULL
|
||||||
|
);
|
||||||
|
DELETE FROM tmp_Split_Name;
|
||||||
|
|
||||||
|
IF ISNULL(a_id_user) AND NOT ISNULL(a_id_user_auth0) THEN
|
||||||
|
SET a_id_user := (SELECT U.id_user FROM demo.DOG_User U WHERE U.id_user_auth0 = a_id_user_auth0 LIMIT 1);
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
IF
|
||||||
|
ISNULL(a_id_user)
|
||||||
|
AND ISNULL(a_id_user_auth0)
|
||||||
|
THEN
|
||||||
|
INSERT INTO tmp_Msg_Error (
|
||||||
|
id_type
|
||||||
|
, code
|
||||||
|
, msg
|
||||||
|
)
|
||||||
|
VALUES (
|
||||||
|
v_id_type_error_bad_data
|
||||||
|
, v_code_type_error_bad_data
|
||||||
|
, CONCAT('User ID required for authorisation.')
|
||||||
|
)
|
||||||
|
;
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
SET v_has_filter_user_id := CASE WHEN a_ids_user = '' THEN 0 ELSE 1 END;
|
||||||
|
SET v_has_filter_user_auth0_id := CASE WHEN a_ids_user_auth0 = '' THEN 0 ELSE 1 END;
|
||||||
|
SET v_has_filter_user_name := CASE WHEN a_names_user = '' THEN 0 ELSE 1 END;
|
||||||
|
|
||||||
|
IF a_debug = 1 THEN
|
||||||
|
SELECT
|
||||||
|
v_has_filter_user_id
|
||||||
|
, v_has_filter_user_auth0_id
|
||||||
|
, v_has_filter_user_name
|
||||||
|
;
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
-- User IDs
|
||||||
|
IF v_has_filter_user_id = 1 THEN
|
||||||
|
CALL demo.p_core_split(v_guid, a_ids_user, ',', FALSE);
|
||||||
|
|
||||||
|
SET sql_mode = '';
|
||||||
|
|
||||||
|
INSERT INTO tmp_Split_Id (
|
||||||
|
substring
|
||||||
|
, as_int
|
||||||
|
)
|
||||||
|
SELECT
|
||||||
|
substring
|
||||||
|
, CAST(substring AS DECIMAL(10,0)) AS as_int
|
||||||
|
FROM demo.CORE_Split_Temp
|
||||||
|
WHERE
|
||||||
|
GUID = v_guid
|
||||||
|
AND IFNULL(substring, '') != ''
|
||||||
;
|
;
|
||||||
|
|
||||||
|
CALL demo.p_core_clear_split( v_guid );
|
||||||
|
|
||||||
|
IF EXISTS (
|
||||||
|
SELECT *
|
||||||
|
FROM tmp_Split_Id t_SPLIT_ID
|
||||||
|
LEFT JOIN demo.DOG_User USER ON t_SPLIT_ID.as_int = USER.id_user
|
||||||
|
WHERE
|
||||||
|
ISNULL(t_SPLIT_ID.as_int)
|
||||||
|
OR ISNULL(USER.id_user)
|
||||||
|
OR USER.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('Invalid or inactive User IDs: ', IFNULL(GROUP_CONCAT(t_SPLIT_ID.substring SEPARATOR ', '), 'NULL'))
|
||||||
|
FROM tmp_Split_Id t_SPLIT_ID
|
||||||
|
LEFT JOIN demo.DOG_User U ON t_SPLIT_ID.as_int = USER.id_user
|
||||||
|
WHERE
|
||||||
|
ISNULL(t_SPLIT_ID.as_int)
|
||||||
|
OR ISNULL(USER.id_user)
|
||||||
|
OR USER.active = 0
|
||||||
|
;
|
||||||
|
END IF;
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
-- Auth0 User IDs
|
||||||
|
IF v_has_filter_user_auth0_id = 1 THEN
|
||||||
|
CALL demo.p_core_split(v_guid, a_ids_user_auth0, ',', FALSE);
|
||||||
|
|
||||||
|
INSERT INTO tmp_Split_Auth0_Id (
|
||||||
|
substring
|
||||||
|
)
|
||||||
|
SELECT
|
||||||
|
substring
|
||||||
|
FROM demo.CORE_Split_Temp
|
||||||
|
WHERE
|
||||||
|
GUID = v_guid
|
||||||
|
AND IFNULL(substring, '') != ''
|
||||||
|
;
|
||||||
|
|
||||||
|
CALL demo.p_core_clear_split( v_guid );
|
||||||
|
|
||||||
|
IF EXISTS (
|
||||||
|
SELECT *
|
||||||
|
FROM tmp_Split_Auth0_Id t_SPLIT_AUTH0
|
||||||
|
LEFT JOIN demo.DOG_User USER ON t_SPLIT_AUTH0.substring = USER.id_user_auth0
|
||||||
|
WHERE
|
||||||
|
ISNULL(t_SPLIT_AUTH0.substring)
|
||||||
|
OR ISNULL(USER.id_user_auth0)
|
||||||
|
OR USER.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('Invalid or inactive Auth0 User IDs: ', IFNULL(GROUP_CONCAT(t_SPLIT_AUTH0.substring SEPARATOR ', '), 'NULL'))
|
||||||
|
FROM tmp_Split_Auth0_Id t_SPLIT_AUTH0
|
||||||
|
LEFT JOIN demo.DOG_User USER ON t_SPLIT_AUTH0.substring = USER.id_user_auth0
|
||||||
|
WHERE
|
||||||
|
ISNULL(t_SPLIT_AUTH0.substring)
|
||||||
|
OR ISNULL(USER.id_user_auth0)
|
||||||
|
OR USER.active = 0
|
||||||
|
;
|
||||||
|
END IF;
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
-- User Names
|
||||||
|
IF v_has_filter_user_name = 1 THEN
|
||||||
|
CALL demo.p_core_split(v_guid, a_names_user, ',', FALSE);
|
||||||
|
|
||||||
|
SET sql_mode = '';
|
||||||
|
|
||||||
|
INSERT INTO tmp_Split_Name (
|
||||||
|
substring
|
||||||
|
)
|
||||||
|
SELECT
|
||||||
|
substring
|
||||||
|
FROM demo.CORE_Split_Temp
|
||||||
|
WHERE
|
||||||
|
GUID = v_guid
|
||||||
|
AND IFNULL(substring, '') != ''
|
||||||
|
;
|
||||||
|
|
||||||
|
CALL demo.p_core_clear_split( v_guid );
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
IF
|
||||||
|
v_has_filter_user_id = 1
|
||||||
|
OR v_has_filter_user_auth0_id = 1
|
||||||
|
THEN
|
||||||
|
INSERT INTO tmp_User (
|
||||||
|
id_user
|
||||||
|
, does_meet_id_filters
|
||||||
|
, does_meet_non_id_filters
|
||||||
|
)
|
||||||
|
WITH
|
||||||
|
User_Id_Filter AS (
|
||||||
|
SELECT USER.id_user
|
||||||
|
FROM tmp_Split_Id t_SPLIT_ID
|
||||||
|
INNER JOIN demo.DOG_User USER ON t_SPLIT_ID.as_int = USER.id_user
|
||||||
|
)
|
||||||
|
, User_Auth0_Id_Filter AS (
|
||||||
|
SELECT USER.id_user
|
||||||
|
FROM tmp_Split_Auth0_Id t_SPLIT_AUTH0
|
||||||
|
INNER JOIN demo.DOG_User USER ON t_SPLIT_AUTH0.substring = USER.id_user_auth0
|
||||||
|
)
|
||||||
|
, User_Name_Filter AS (
|
||||||
|
SELECT USER.id_user
|
||||||
|
FROM tmp_Split_Name t_SPLIT_NAME
|
||||||
|
INNER JOIN demo.DOG_User USER ON CONCAT(USER.firstname, ' ', USER.surname) LIKE CONCAT('%', t_SPLIT_NAME.substring, '%')
|
||||||
|
WHERE IFNULL(t_SPLIT_NAME.substring, '') <> ''
|
||||||
|
)
|
||||||
|
, User_Filters AS (
|
||||||
|
SELECT
|
||||||
|
USER_COMBINED.id_user
|
||||||
|
, MAX(USER_COMBINED.does_meet_id_filter) AS does_meet_id_filter
|
||||||
|
, MAX(USER_COMBINED.does_meet_auth0_id_filter) AS does_meet_auth0_id_filter
|
||||||
|
, MAX(USER_COMBINED.does_meet_name_filter) AS does_meet_name_filter
|
||||||
|
FROM (
|
||||||
|
SELECT
|
||||||
|
ID_FILTER.id_user
|
||||||
|
, 1 AS does_meet_id_filter
|
||||||
|
, 0 AS does_meet_auth0_id_filter
|
||||||
|
, 0 AS does_meet_name_filter
|
||||||
|
FROM User_Id_Filter ID_FILTER
|
||||||
|
UNION
|
||||||
|
SELECT
|
||||||
|
AUTH0_ID_FILTER.id_user
|
||||||
|
, 0 AS does_meet_id_filter
|
||||||
|
, 1 AS does_meet_auth0_id_filter
|
||||||
|
, 0 AS does_meet_name_filter
|
||||||
|
FROM User_Auth0_Id_Filter AUTH0_ID_FILTER
|
||||||
|
UNION
|
||||||
|
SELECT
|
||||||
|
NAME_FILTER.id_user
|
||||||
|
, 0 AS does_meet_id_filter
|
||||||
|
, 0 AS does_meet_auth0_id_filter
|
||||||
|
, 1 AS does_meet_name_filter
|
||||||
|
FROM User_Name_Filter NAME_FILTER
|
||||||
|
) USER_COMBINED
|
||||||
|
GROUP BY USER_COMBINED.id_user
|
||||||
|
)
|
||||||
SELECT
|
SELECT
|
||||||
v_id_type_error_bad_data
|
USER.id_user
|
||||||
, v_id_type_error_no_permission
|
, CASE WHEN
|
||||||
, v_id_type_error_warning
|
(
|
||||||
, v_guid
|
v_has_filter_user_id = 0
|
||||||
, v_id_permission_dog_view
|
AND v_has_filter_user_auth0_id = 0
|
||||||
, v_time_start
|
)
|
||||||
|
OR IFNULL(USER_FILTERS.does_meet_id_filter, 0) = 1
|
||||||
|
OR IFNULL(USER_FILTERS.does_meet_auth0_id_filter, 0) = 1
|
||||||
|
THEN 1 ELSE 0 END AS does_meet_id_filters
|
||||||
|
, CASE WHEN
|
||||||
|
(
|
||||||
|
v_has_filter_user_name = 0
|
||||||
|
)
|
||||||
|
OR IFNULL(USER_FILTERS.does_meet_name_filter, 0) = 1
|
||||||
|
THEN 1 ELSE 0 END AS does_meet_non_id_filters
|
||||||
|
FROM demo.DOG_User USER
|
||||||
|
LEFT JOIN User_Filters USER_FILTERS ON USER.id_user = USER_FILTERS.id_user
|
||||||
|
WHERE
|
||||||
|
(
|
||||||
|
a_get_all_user = 1
|
||||||
|
OR (
|
||||||
|
v_has_filter_user_id = 1
|
||||||
|
AND USER_FILTERS.does_meet_id_filter = 1
|
||||||
|
)
|
||||||
|
OR (
|
||||||
|
v_has_filter_user_auth0_id = 1
|
||||||
|
AND USER_FILTERS.does_meet_auth0_id_filter = 1
|
||||||
|
)
|
||||||
|
OR (
|
||||||
|
v_has_filter_user_id = 1
|
||||||
|
AND USER_FILTERS.does_meet_id_filter = 1
|
||||||
|
)
|
||||||
|
)
|
||||||
|
AND (
|
||||||
|
a_get_inactive_user = 1
|
||||||
|
OR USER.active = 1
|
||||||
|
)
|
||||||
;
|
;
|
||||||
END IF;
|
END IF;
|
||||||
|
|
||||||
DROP TEMPORARY TABLE IF EXISTS tmp_Split;
|
DELETE FROM tmp_Split_Id;
|
||||||
DROP TEMPORARY TABLE IF EXISTS tmp_Msg_Error;
|
DELETE FROM tmp_Split_Auth0_Id;
|
||||||
DROP TEMPORARY TABLE IF EXISTS tmp_Command;
|
DELETE FROM tmp_Split_Name;
|
||||||
DROP TEMPORARY TABLE IF EXISTS tmp_Command_Category;
|
|
||||||
DROP TEMPORARY TABLE IF EXISTS tmp_Dog;
|
|
||||||
|
|
||||||
CREATE TEMPORARY TABLE tmp_Dog (
|
IF a_debug = 1 THEN
|
||||||
id_dog INT NOT NULL
|
SELECT 'After get all Users';
|
||||||
, name VARCHAR(250)
|
SELECT * FROM tmp_User;
|
||||||
, appearance VARCHAR(1000)
|
END IF;
|
||||||
, mass_kg DECIMAL(7, 3)
|
|
||||||
, notes TEXT
|
|
||||||
, active BIT
|
|
||||||
);
|
|
||||||
|
|
||||||
CREATE TEMPORARY TABLE tmp_Command_Category (
|
-- Filter records
|
||||||
id_command_category INT NOT NULL
|
IF NOT EXISTS (SELECT * FROM tmp_Msg_Error t_ERROR INNER JOIN demo.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type WHERE ERROR_TYPE.is_breaking_error = 1 LIMIT 1) THEN
|
||||||
, code VARCHAR(100)
|
DELETE t_USER
|
||||||
, name VARCHAR(250)
|
FROM tmp_User t_USER
|
||||||
, active BIT
|
WHERE
|
||||||
);
|
(
|
||||||
|
a_require_all_id_search_filters_met = 1
|
||||||
|
AND t_USER.does_meet_id_filters = 0
|
||||||
|
)
|
||||||
|
OR (
|
||||||
|
a_require_all_non_id_search_filters_met = 1
|
||||||
|
AND t_USER.does_meet_non_id_filters = 0
|
||||||
|
)
|
||||||
|
OR (
|
||||||
|
a_require_any_id_search_filters_met = 1
|
||||||
|
AND t_USER.does_meet_id_filters = 0
|
||||||
|
)
|
||||||
|
OR (
|
||||||
|
a_require_any_non_id_search_filters_met = 1
|
||||||
|
AND t_USER.does_meet_non_id_filters = 0
|
||||||
|
)
|
||||||
|
;
|
||||||
|
END IF;
|
||||||
|
|
||||||
CREATE TEMPORARY TABLE tmp_Command (
|
IF a_debug = 1 THEN
|
||||||
id_command INT NOT NULL
|
SELECT 'After filter Users';
|
||||||
, id_command_category INT NOT NULL
|
SELECT * FROM tmp_User;
|
||||||
, name VARCHAR(250)
|
END IF;
|
||||||
, hand_signal_default_description TEXT
|
|
||||||
, can_have_button BIT
|
|
||||||
, notes TEXT
|
|
||||||
, active BIT
|
|
||||||
);
|
|
||||||
|
|
||||||
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error (
|
-- Calculated fields
|
||||||
id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT
|
-- Can admin dog
|
||||||
, id_type INT NULL
|
IF NOT EXISTS (SELECT * FROM tmp_Msg_Error t_ERROR INNER JOIN demo.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type WHERE ERROR_TYPE.is_breaking_error = 1 LIMIT 1) THEN
|
||||||
, code VARCHAR(100) NOT NULL
|
IF a_debug = 1 THEN
|
||||||
, msg VARCHAR(4000) NOT NULL
|
SELECT
|
||||||
);
|
v_guid -- guid
|
||||||
|
, a_id_user -- ids_user
|
||||||
|
, FALSE -- get_inactive_user
|
||||||
|
, v_id_permission_dog_admin -- ids_permission
|
||||||
|
, v_id_access_level_admin -- ids_access_level
|
||||||
|
, 0 -- a_show_errors
|
||||||
|
, 0 -- a_debug
|
||||||
|
;
|
||||||
|
SELECT * FROM demo.DOG_Calc_User_Temp;
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
CALL demo.p_dog_calc_user(
|
||||||
|
v_guid -- guid
|
||||||
|
, a_id_user -- ids_user
|
||||||
|
, FALSE -- get_inactive_user
|
||||||
|
, v_id_permission_dog_admin -- ids_permission
|
||||||
|
, v_id_access_level_admin -- ids_access_level
|
||||||
|
, 0 -- a_show_errors
|
||||||
|
, 0 -- a_debug
|
||||||
|
);
|
||||||
|
|
||||||
|
IF a_debug = 1 THEN
|
||||||
|
SELECT * FROM demo.DOG_Calc_User_Temp WHERE GUID = v_guid;
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
UPDATE tmp_User t_U
|
||||||
|
INNER JOIN demo.DOG_Calc_User_Temp CUT
|
||||||
|
ON CUT.GUID = v_guid
|
||||||
|
AND t_U.id_user = CUT.id_user
|
||||||
|
SET t_U.can_admin_dog = CUT.can_admin
|
||||||
|
;
|
||||||
|
|
||||||
|
CALL demo.p_dog_clear_calc_user( v_guid, FALSE );
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
-- Can admin user
|
||||||
|
IF NOT EXISTS (SELECT * FROM tmp_Msg_Error t_ERROR INNER JOIN demo.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type WHERE ERROR_TYPE.is_breaking_error = 1 LIMIT 1) THEN
|
||||||
|
IF a_debug = 1 THEN
|
||||||
|
SELECT
|
||||||
|
v_guid -- guid
|
||||||
|
, a_id_user -- ids_user
|
||||||
|
, FALSE -- get_inactive_user
|
||||||
|
, v_id_permission_user_admin -- ids_permission
|
||||||
|
, v_id_access_level_admin -- ids_access_level
|
||||||
|
, 0 -- a_show_errors
|
||||||
|
, 0 -- a_debug
|
||||||
|
;
|
||||||
|
SELECT * FROM demo.DOG_Calc_User_Temp;
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
CALL demo.p_dog_calc_user(
|
||||||
|
v_guid -- guid
|
||||||
|
, a_id_user -- ids_user
|
||||||
|
, FALSE -- get_inactive_user
|
||||||
|
, v_id_permission_user_admin -- ids_permission
|
||||||
|
, v_id_access_level_admin -- ids_access_level
|
||||||
|
, 0 -- a_show_errors
|
||||||
|
, 0 -- a_debug
|
||||||
|
);
|
||||||
|
|
||||||
|
IF a_debug = 1 THEN
|
||||||
|
SELECT * FROM demo.DOG_Calc_User_Temp WHERE GUID = v_guid;
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
UPDATE tmp_User t_U
|
||||||
|
INNER JOIN demo.DOG_Calc_User_Temp CUT
|
||||||
|
ON CUT.GUID = v_guid
|
||||||
|
AND t_U.id_user = CUT.id_user
|
||||||
|
SET t_U.can_admin_user = CUT.can_admin
|
||||||
|
;
|
||||||
|
|
||||||
|
CALL demo.p_dog_clear_calc_user( v_guid, FALSE );
|
||||||
|
END IF;
|
||||||
|
|
||||||
-- Permissions
|
-- Permissions
|
||||||
IF a_debug = 1 THEN
|
IF NOT EXISTS (SELECT * FROM tmp_Msg_Error t_ERROR INNER JOIN demo.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type WHERE ERROR_TYPE.is_breaking_error = 1 LIMIT 1) THEN
|
||||||
SELECT
|
|
||||||
v_guid
|
|
||||||
, a_id_user
|
|
||||||
, FALSE -- a_get_inactive_user
|
|
||||||
, v_id_permission_dog_view
|
|
||||||
, 0 -- a_debug
|
|
||||||
;
|
|
||||||
END IF;
|
|
||||||
|
|
||||||
CALL demo.p_dog_calc_user(
|
|
||||||
v_guid -- a_guid
|
|
||||||
, a_id_user -- a_ids_user
|
|
||||||
, FALSE -- a_get_inactive_user
|
|
||||||
, v_id_permission_dog_view -- a_ids_permission
|
|
||||||
, 0 -- a_debug
|
|
||||||
);
|
|
||||||
|
|
||||||
SELECT
|
|
||||||
IFNULL(CALC_USER_T.has_access, 0)
|
|
||||||
INTO
|
|
||||||
v_can_view
|
|
||||||
FROM demo.DOG_Calc_User_Temp CALC_USER_T
|
|
||||||
WHERE CALC_USER_T.GUID = v_guid
|
|
||||||
LIMIT 1
|
|
||||||
;
|
|
||||||
|
|
||||||
IF a_debug = 1 THEN
|
|
||||||
SELECT v_can_view;
|
|
||||||
END IF;
|
|
||||||
|
|
||||||
IF (v_can_view = 0) THEN
|
|
||||||
DELETE t_ME
|
|
||||||
FROM tmp_Msg_Error t_ME
|
|
||||||
WHERE t_ME.id_type <> v_id_type_error_no_permission
|
|
||||||
;
|
|
||||||
INSERT INTO tmp_Msg_Error (
|
|
||||||
id_type
|
|
||||||
, code
|
|
||||||
, msg
|
|
||||||
)
|
|
||||||
VALUES (
|
|
||||||
v_id_type_error_no_permission
|
|
||||||
, v_code_type_error_no_permission
|
|
||||||
, 'You do not have permission to view Dogs and Commands.'
|
|
||||||
)
|
|
||||||
;
|
|
||||||
END IF;
|
|
||||||
|
|
||||||
CALL demo.p_dog_clear_calc_user(
|
|
||||||
v_guid
|
|
||||||
, 0 -- a_debug
|
|
||||||
);
|
|
||||||
|
|
||||||
-- Call Dog Calc
|
|
||||||
IF NOT EXISTS(SELECT * FROM tmp_Msg_Error t_ERROR INNER JOIN demo.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type WHERE ERROR_TYPE.is_breaking_error = 1 LIMIT 1) THEN
|
|
||||||
IF a_debug = 1 THEN
|
IF a_debug = 1 THEN
|
||||||
SELECT
|
SELECT
|
||||||
v_guid -- a_guid
|
v_guid -- guid
|
||||||
, a_id_user -- a_id_user
|
, a_id_user -- ids_user
|
||||||
, a_get_all_dog -- a_get_all_dog
|
, FALSE -- get_inactive_user
|
||||||
, a_get_inactive_dog -- a_get_inactive_dog
|
, v_ids_permission_required -- ids_permission
|
||||||
, a_ids_dog -- a_ids_dog
|
, v_id_access_level_view -- ids_access_level
|
||||||
, a_names_dog -- a_names_dog
|
, 0 -- a_show_errors
|
||||||
, 0 -- a_show_errors
|
, 0 -- a_debug
|
||||||
, 0 -- a_debug
|
;
|
||||||
;
|
SELECT * FROM demo.DOG_Calc_User_Temp;
|
||||||
END IF;
|
END IF;
|
||||||
|
|
||||||
CALL demo.p_dog_calc_dog(
|
CALL demo.p_dog_calc_user(
|
||||||
v_guid -- a_guid
|
v_guid -- guid
|
||||||
, a_id_user -- a_id_user
|
, a_id_user -- ids_user
|
||||||
, a_get_all_dog -- a_get_all_dog
|
, FALSE -- get_inactive_user
|
||||||
, a_get_inactive_dog -- a_get_inactive_dog
|
, v_ids_permission_required -- ids_permission
|
||||||
, a_ids_dog -- a_ids_dog
|
, v_id_access_level_view -- ids_access_level
|
||||||
, a_names_dog -- a_names_dog
|
, 0 -- a_show_errors
|
||||||
, 0 -- a_show_errors
|
|
||||||
, 0 -- a_debug
|
, 0 -- a_debug
|
||||||
);
|
);
|
||||||
|
|
||||||
INSERT INTO tmp_Dog (
|
|
||||||
id_dog
|
|
||||||
, name
|
|
||||||
, appearance
|
|
||||||
, mass_kg
|
|
||||||
, notes
|
|
||||||
, active
|
|
||||||
)
|
|
||||||
SELECT
|
|
||||||
DOG_T.id_dog
|
|
||||||
, DOG_T.name
|
|
||||||
, DOG_T.appearance
|
|
||||||
, DOG_T.mass_kg
|
|
||||||
, DOG_T.notes
|
|
||||||
, DOG_T.active
|
|
||||||
FROM demo.DOG_Dog_Temp DOG_T
|
|
||||||
WHERE DOG_T.GUID = v_guid
|
|
||||||
;
|
|
||||||
|
|
||||||
IF a_debug = 1 THEN
|
IF a_debug = 1 THEN
|
||||||
SELECT * FROM tmp_Dog;
|
SELECT * FROM demo.DOG_Calc_User_Temp WHERE GUID = v_guid;
|
||||||
END IF;
|
|
||||||
END IF;
|
|
||||||
|
|
||||||
-- Call Command Calc
|
|
||||||
IF NOT EXISTS(SELECT * FROM tmp_Msg_Error t_ERROR INNER JOIN demo.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type WHERE ERROR_TYPE.is_breaking_error = 1 LIMIT 1) THEN
|
|
||||||
IF a_debug = 1 THEN
|
|
||||||
SELECT
|
|
||||||
v_guid -- a_guid
|
|
||||||
, a_id_user -- a_id_user
|
|
||||||
, a_get_all_command_category
|
|
||||||
, a_get_inactive_command_category
|
|
||||||
, a_ids_command_category
|
|
||||||
, a_names_command_category
|
|
||||||
, a_get_all_command -- a_get_all_command
|
|
||||||
, a_get_inactive_command -- a_get_inactive_command
|
|
||||||
, a_ids_command -- a_ids_command
|
|
||||||
, a_names_command -- a_names_command
|
|
||||||
, 0 -- a_show_errors
|
|
||||||
, 0 -- a_debug
|
|
||||||
;
|
|
||||||
END IF;
|
END IF;
|
||||||
|
|
||||||
CALL demo.p_dog_calc_command (
|
IF NOT EXISTS (
|
||||||
v_guid -- a_guid
|
SELECT can_view
|
||||||
, a_id_user -- a_id_user
|
FROM demo.DOG_Calc_User_Temp CUT
|
||||||
, a_get_all_command_category
|
WHERE
|
||||||
, a_get_inactive_command_category
|
CUT.GUID = v_guid
|
||||||
, a_ids_command_category
|
AND can_view = 1
|
||||||
, a_names_command_category
|
) THEN
|
||||||
, a_get_all_command -- a_get_all_command
|
INSERT INTO tmp_Msg_Error (
|
||||||
, a_get_inactive_command -- a_get_inactive_command
|
id_type
|
||||||
, a_ids_command -- a_ids_command
|
, code
|
||||||
, a_names_command -- a_names_command
|
, msg
|
||||||
, 0 -- a_show_errors
|
)
|
||||||
, 0 -- a_debug
|
VALUES (
|
||||||
);
|
v_id_type_error_bad_data
|
||||||
|
, v_code_type_error_bad_data
|
||||||
INSERT INTO tmp_Command_Category (
|
, CONCAT('You do not have view permissions for ', (SELECT name FROM demo.DOG_Permission P INNER JOIN demo.DOG_Calc_User_Temp CUT ON P.id_permission = CUT.id_permission_required WHERE GUID = v_guid AND IFNULL(can_view, 0) = 0 LIMIT 1))
|
||||||
id_command_category
|
)
|
||||||
, code
|
;
|
||||||
, name
|
ELSE
|
||||||
, active
|
SET a_debug := a_debug;
|
||||||
)
|
|
||||||
SELECT
|
|
||||||
COMMAND_CATEGORY_T.id_command_category
|
|
||||||
, COMMAND_CATEGORY_T.code
|
|
||||||
, COMMAND_CATEGORY_T.name
|
|
||||||
, COMMAND_CATEGORY_T.active
|
|
||||||
FROM demo.DOG_Command_Category_Temp COMMAND_CATEGORY_T
|
|
||||||
WHERE COMMAND_CATEGORY_T.GUID = v_guid
|
|
||||||
;
|
|
||||||
|
|
||||||
INSERT INTO tmp_Command (
|
|
||||||
id_command
|
|
||||||
, id_command_category
|
|
||||||
, name
|
|
||||||
, hand_signal_default_description
|
|
||||||
, can_have_button
|
|
||||||
, notes
|
|
||||||
, active
|
|
||||||
)
|
|
||||||
SELECT
|
|
||||||
COMMAND_T.id_command
|
|
||||||
, COMMAND_T.id_command_category
|
|
||||||
, COMMAND_T.name
|
|
||||||
, COMMAND_T.hand_signal_default_description
|
|
||||||
, COMMAND_T.can_have_button
|
|
||||||
, COMMAND_T.notes
|
|
||||||
, COMMAND_T.active
|
|
||||||
FROM demo.DOG_Command_Temp COMMAND_T
|
|
||||||
WHERE COMMAND_T.GUID = v_guid
|
|
||||||
;
|
|
||||||
|
|
||||||
IF a_debug = 1 THEN
|
|
||||||
SELECT * FROM tmp_Command_Category;
|
|
||||||
SELECT * FROM tmp_Command;
|
|
||||||
END IF;
|
END IF;
|
||||||
END IF;
|
|
||||||
|
CALL demo.p_dog_clear_calc_user( v_guid, FALSE );
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
|
||||||
-- Filter outputs
|
|
||||||
IF EXISTS(SELECT * FROM tmp_Msg_Error t_ERROR INNER JOIN demo.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type WHERE ERROR_TYPE.is_breaking_error = 1 LIMIT 1) THEN
|
IF EXISTS(SELECT * FROM tmp_Msg_Error t_ERROR INNER JOIN demo.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type WHERE ERROR_TYPE.is_breaking_error = 1 LIMIT 1) THEN
|
||||||
IF a_debug = 1 THEN
|
IF a_debug = 1 THEN
|
||||||
SELECT * FROM tmp_Dog;
|
SELECT * FROM tmp_Dog_Calc_Dog;
|
||||||
SELECT * FROM tmp_Command;
|
|
||||||
SELECT * FROM tmp_Command_Category;
|
|
||||||
END IF;
|
END IF;
|
||||||
|
|
||||||
DELETE FROM tmp_Dog;
|
DELETE FROM tmp_Dog_Calc_Dog;
|
||||||
DELETE FROM tmp_Command;
|
|
||||||
DELETE FROM tmp_Command_Category;
|
|
||||||
END IF;
|
END IF;
|
||||||
|
|
||||||
-- Outputs
|
-- Returns
|
||||||
-- Commands
|
/* NULL record required for flask sql_alchemy to detect result set */
|
||||||
SELECT
|
IF EXISTS (SELECT * FROM tmp_Msg_Error) THEN
|
||||||
DOG_COMMAND_LINK.id_link AS id_dog_command_link
|
DELETE FROM tmp_User;
|
||||||
, t_DOG.id_dog
|
INSERT INTO tmp_User ( id_user )
|
||||||
, t_DOG.name AS name_dog
|
VALUES ( NULL );
|
||||||
, t_COMMAND.id_command_category
|
END IF;
|
||||||
, t_COMMAND_CATEGORY.name AS name_command_category
|
|
||||||
, t_COMMAND.id_command
|
|
||||||
, t_COMMAND.name AS name_command
|
SELECT
|
||||||
-- , t_COMMAND.has_button AS command_has_button
|
U.id_user
|
||||||
, COALESCE(DOG_COMMAND_LINK.hand_signal_description, t_COMMAND.hand_signal_default_description) AS hand_signal_description_command
|
, U.id_user_auth0
|
||||||
, t_COMMAND.can_have_button AS can_have_button_command
|
, U.firstname
|
||||||
, DOG_COMMAND_LINK.notes
|
, U.surname
|
||||||
, DOG_COMMAND_LINK.active
|
, U.email
|
||||||
FROM demo.DOG_Dog_Command_Link DOG_COMMAND_LINK
|
, U.is_email_verified
|
||||||
INNER JOIN tmp_Dog t_DOG ON DOG_COMMAND_LINK.id_dog = t_DOG.id_dog
|
, U.is_super_user
|
||||||
INNER JOIN tmp_Command t_COMMAND ON DOG_COMMAND_LINK.id_command = t_COMMAND.id_command
|
, t_U.can_admin_dog
|
||||||
INNER JOIN tmp_Command_Category t_COMMAND_CATEGORY ON t_COMMAND.id_command_category = t_COMMAND_CATEGORY.id_command_category
|
, t_U.can_admin_user
|
||||||
|
, v_is_new AS is_new
|
||||||
|
FROM tmp_User t_U
|
||||||
|
INNER JOIN demo.DOG_User U ON t_U.id_user = U.id_user
|
||||||
;
|
;
|
||||||
|
|
||||||
-- Errors
|
# Errors
|
||||||
SELECT
|
SELECT
|
||||||
t_ERROR.id_error
|
t_ERROR.id_error
|
||||||
, t_ERROR.id_type
|
, t_ERROR.id_type
|
||||||
, t_ERROR.code
|
, t_ERROR.code
|
||||||
, ERROR_TYPE.name
|
, ERROR_TYPE.name
|
||||||
, ERROR_TYPE.description
|
, ERROR_TYPE.description
|
||||||
, ERROR_TYPE.is_breaking_error
|
, ERROR_TYPE.is_breaking_error
|
||||||
, ERROR_TYPE.background_colour
|
, ERROR_TYPE.background_colour
|
||||||
, ERROR_TYPE.text_colour
|
, ERROR_TYPE.text_colour
|
||||||
, t_ERROR.msg
|
, t_ERROR.msg
|
||||||
FROM tmp_Msg_Error t_ERROR
|
FROM tmp_Msg_Error t_ERROR
|
||||||
INNER JOIN demo.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type
|
INNER JOIN demo.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type
|
||||||
;
|
;
|
||||||
|
|
||||||
IF a_debug = 1 AND v_can_view = 1 THEN
|
|
||||||
SELECT * FROM tmp_Dog;
|
|
||||||
SELECT * FROM tmp_Command;
|
|
||||||
SELECT * FROM tmp_Command_Category;
|
|
||||||
END IF;
|
|
||||||
|
|
||||||
DROP TEMPORARY TABLE IF EXISTS tmp_Split;
|
|
||||||
DROP TEMPORARY TABLE IF EXISTS tmp_Msg_Error;
|
|
||||||
DROP TEMPORARY TABLE IF EXISTS tmp_Command;
|
|
||||||
DROP TEMPORARY TABLE IF EXISTS tmp_Command_Category;
|
|
||||||
DROP TEMPORARY TABLE IF EXISTS tmp_Dog;
|
|
||||||
|
|
||||||
IF a_debug = 1 THEN
|
IF a_debug = 1 THEN
|
||||||
CALL demo.p_core_debug_timing_reporting ( v_time_start );
|
SELECT * FROM tmp_User;
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
-- Clean up
|
||||||
|
DROP TEMPORARY TABLE IF EXISTS tmp_Split_Name;
|
||||||
|
DROP TEMPORARY TABLE IF EXISTS tmp_Split_Auth0_Id;
|
||||||
|
DROP TEMPORARY TABLE IF EXISTS tmp_Split_Id;
|
||||||
|
DROP TEMPORARY TABLE IF EXISTS tmp_Msg_Error;
|
||||||
|
DROP TEMPORARY TABLE IF EXISTS tmp_User;
|
||||||
|
|
||||||
|
IF a_debug = 1 THEN
|
||||||
|
CALL demo.p_debug_timing_reporting ( v_time_start );
|
||||||
END IF;
|
END IF;
|
||||||
END //
|
END //
|
||||||
DELIMITER ;
|
DELIMITER ;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
CALL p_dog_get_many_user (
|
||||||
CALL demo.p_dog_get_many_dog_command_link (
|
NULL
|
||||||
1 -- 'auth0|6582b95c895d09a70ba10fef', -- a_id_user
|
, 'google-oauth2|109567376920138999933'
|
||||||
, 1 -- a_get_all_dog
|
, False
|
||||||
, 0 -- a_get_inactive_dog
|
, False
|
||||||
, '' -- a_ids_dog
|
-- , False
|
||||||
, 1 -- a_get_all_command_category
|
, NULL
|
||||||
, 0 -- a_get_inactive_command_category
|
, 'google-oauth2|109567376920138999933'
|
||||||
, '' -- a_ids_command_category
|
, 0
|
||||||
, 1 -- a_get_all_command
|
|
||||||
, 0 -- a_get_inactive_command
|
|
||||||
, '' -- a_ids_command
|
|
||||||
, 1 -- a_debug
|
|
||||||
);
|
);
|
||||||
|
NULL # a_id_user
|
||||||
|
, 'auth0|6582b95c895d09a70ba10fef' # a_id_user_auth0
|
||||||
|
, 0 # a_get_all_user
|
||||||
|
, 0 # a_get_inactive_user
|
||||||
|
-- , 0 # a_get_first_user_only
|
||||||
|
, NULL # a_ids_user
|
||||||
|
, 'auth0|6582b95c895d09a70ba10fef' # a_ids_user_auth0
|
||||||
|
, 0 -- a_debug
|
||||||
|
);*/
|
||||||
|
/*
|
||||||
|
select * FROM demo.DOG_Calc_User_Temp;
|
||||||
|
delete FROM demo.DOG_Calc_User_Temp;
|
||||||
|
|
||||||
CALL demo.p_dog_get_many_dog_command_link (
|
SELECT *
|
||||||
1 -- 'auth0|6582b95c895d09a70ba10fef', -- a_id_user
|
FROM demo.DOG_USER;
|
||||||
, 1 -- a_get_all_dog
|
|
||||||
, 0 -- a_get_inactive_dog
|
CALL p_dog_get_many_user(
|
||||||
, '' -- a_ids_dog
|
NULL -- :a_id_user,
|
||||||
, '' -- a_names_dog
|
, 'auth0|6582b95c895d09a70ba10fef' -- :a_id_user_auth0,
|
||||||
, 1 -- a_get_all_command_category
|
, 1 -- :a_get_all_user,
|
||||||
, 0 -- a_get_inactive_command_category
|
, 0 -- :a_get_inactive_user,
|
||||||
, '' -- a_ids_command_category
|
-- , 0 -- :a_get_first_user_only,
|
||||||
, '' -- a_names_command_category
|
, NULL -- :a_ids_user,
|
||||||
, 0 -- a_get_all_command
|
, 'auth0|6582b95c895d09a70ba10fef' -- :a_ids_user_auth0
|
||||||
, 0 -- a_get_inactive_command
|
, '' -- a_names_user
|
||||||
, '2' -- a_ids_command
|
, 1 -- :a_require_all_id_search_filters_met,
|
||||||
, '2' -- a_names_command
|
, 1 -- :a_require_any_id_search_filters_met,
|
||||||
, 1 -- a_debug
|
, 0 -- :a_require_all_non_id_search_filters_met,
|
||||||
|
, 1 -- :a_require_any_non_id_search_filters_met,
|
||||||
|
, 0 -- a_debug
|
||||||
);
|
);
|
||||||
|
|
||||||
*/
|
*/
|
||||||
@@ -192,7 +192,7 @@ DROP PROCEDURE IF EXISTS parts.p_command_clear_calc_command;
|
|||||||
|
|
||||||
DROP PROCEDURE IF EXISTS parts.p_dog_clear_calc_user;
|
DROP PROCEDURE IF EXISTS parts.p_dog_clear_calc_user;
|
||||||
DROP PROCEDURE IF EXISTS parts.p_dog_calc_user;
|
DROP PROCEDURE IF EXISTS parts.p_dog_calc_user;
|
||||||
DROP PROCEDURE IF EXISTS parts.p_clear_split_temp;
|
DROP PROCEDURE IF EXISTS parts.p_core_clear_split;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
DROP PROCEDURE IF EXISTS parts.p_core_clear_split_key_value_pair_csv;
|
DROP PROCEDURE IF EXISTS parts.p_core_clear_split_key_value_pair_csv;
|
||||||
|
|||||||
@@ -1,6 +1,8 @@
|
|||||||
|
|
||||||
USE parts;
|
USE parts;
|
||||||
|
|
||||||
|
-- DROP TABLE IF EXISTS demo.DOG_Calc_User_Temp;
|
||||||
|
|
||||||
SELECT CONCAT('WARNING: Table ', TABLE_SCHEMA, '.', TABLE_NAME, ' already exists.') AS msg_warning
|
SELECT CONCAT('WARNING: Table ', TABLE_SCHEMA, '.', TABLE_NAME, ' already exists.') AS msg_warning
|
||||||
FROM INFORMATION_SCHEMA.TABLES
|
FROM INFORMATION_SCHEMA.TABLES
|
||||||
WHERE
|
WHERE
|
||||||
@@ -11,12 +13,12 @@ WHERE
|
|||||||
CREATE TABLE IF NOT EXISTS parts.DOG_Calc_User_Temp (
|
CREATE TABLE IF NOT EXISTS parts.DOG_Calc_User_Temp (
|
||||||
guid BINARY(36) NOT NULL
|
guid BINARY(36) NOT NULL
|
||||||
, id_user INT
|
, id_user INT
|
||||||
, id_permission_required INT NOT NULL
|
, id_permission_required INT
|
||||||
, CONSTRAINT FK_DOG_Calc_User_Temp_id_permission_required
|
, priority_access_level_required INT
|
||||||
FOREIGN KEY (id_permission_required)
|
|
||||||
REFERENCES parts.DOG_Permission (id_permission)
|
|
||||||
, priority_access_level_required INT NOT NULL
|
|
||||||
, is_super_user BIT
|
, is_super_user BIT
|
||||||
, priority_access_level_user INT
|
, priority_access_level_user INT
|
||||||
, has_access BIT
|
, has_access BIT
|
||||||
|
, can_view BIT
|
||||||
|
, can_edit BIT
|
||||||
|
, can_admin BIT
|
||||||
);
|
);
|
||||||
@@ -17,4 +17,6 @@ CREATE TABLE IF NOT EXISTS parts.DOG_Dog_Temp (
|
|||||||
, notes TEXT
|
, notes TEXT
|
||||||
, active BIT
|
, active BIT
|
||||||
, guid BINARY(36)
|
, guid BINARY(36)
|
||||||
|
, does_meet_id_filters BIT
|
||||||
|
, does_meet_non_id_filters BIT
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -15,4 +15,6 @@ CREATE TABLE IF NOT EXISTS parts.DOG_Command_Category_Temp (
|
|||||||
, name VARCHAR(250)
|
, name VARCHAR(250)
|
||||||
, active BIT
|
, active BIT
|
||||||
, guid BINARY(36)
|
, guid BINARY(36)
|
||||||
|
, does_meet_id_filters BIT
|
||||||
|
, does_meet_non_id_filters BIT
|
||||||
);
|
);
|
||||||
@@ -18,6 +18,8 @@ CREATE TABLE IF NOT EXISTS parts.DOG_Command_Temp (
|
|||||||
, notes TEXT
|
, notes TEXT
|
||||||
, active BIT
|
, active BIT
|
||||||
, guid BINARY(36)
|
, guid BINARY(36)
|
||||||
|
, does_meet_id_filters BIT
|
||||||
|
, does_meet_non_id_filters BIT
|
||||||
|
|
||||||
, name_command_category VARCHAR(250)
|
, name_command_category VARCHAR(250)
|
||||||
);
|
);
|
||||||
|
|||||||
563
static/MySQL/70516_p_dog_create_new_user_auth0.sql
Normal file
563
static/MySQL/70516_p_dog_create_new_user_auth0.sql
Normal file
@@ -0,0 +1,563 @@
|
|||||||
|
|
||||||
|
USE parts;
|
||||||
|
|
||||||
|
-- Clear previous proc
|
||||||
|
DROP PROCEDURE IF EXISTS p_dog_get_many_user;
|
||||||
|
|
||||||
|
|
||||||
|
DELIMITER //
|
||||||
|
CREATE PROCEDURE p_dog_get_many_user (
|
||||||
|
IN a_id_user INT
|
||||||
|
, IN a_id_user_auth0 VARCHAR(200)
|
||||||
|
, IN a_get_all_user BIT
|
||||||
|
, IN a_get_inactive_user BIT
|
||||||
|
, IN a_ids_user LONGTEXT
|
||||||
|
, IN a_ids_user_auth0 LONGTEXT
|
||||||
|
, IN a_debug BIT
|
||||||
|
)
|
||||||
|
BEGIN
|
||||||
|
DECLARE v_code_type_error_bad_data VARCHAR(50);
|
||||||
|
DECLARE v_guid BINARY(36);
|
||||||
|
DECLARE v_has_filter_user BIT;
|
||||||
|
DECLARE v_has_filter_user_auth0 BIT;
|
||||||
|
DECLARE v_id_access_level_admin INT;
|
||||||
|
DECLARE v_id_access_level_view INT;
|
||||||
|
DECLARE v_id_minimum INT;
|
||||||
|
DECLARE v_id_permission_dog_admin INT;
|
||||||
|
DECLARE v_id_permission_user INT;
|
||||||
|
DECLARE v_id_permission_user_admin INT;
|
||||||
|
DECLARE v_id_type_error_bad_data INT;
|
||||||
|
DECLARE v_ids_permission_required VARCHAR(4000);
|
||||||
|
DECLARE v_is_new BIT;
|
||||||
|
DECLARE v_rank_max INT;
|
||||||
|
DECLARE v_time_start TIMESTAMP(6);
|
||||||
|
|
||||||
|
DECLARE exit handler for SQLEXCEPTION
|
||||||
|
BEGIN
|
||||||
|
GET DIAGNOSTICS CONDITION 1
|
||||||
|
@sqlstate = RETURNED_SQLSTATE
|
||||||
|
, @errno = MYSQL_ERRNO
|
||||||
|
, @text = MESSAGE_TEXT
|
||||||
|
;
|
||||||
|
|
||||||
|
ROLLBACK;
|
||||||
|
|
||||||
|
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error (
|
||||||
|
id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT
|
||||||
|
, id_type INT NULL
|
||||||
|
, code VARCHAR(100) NOT NULL
|
||||||
|
, msg TEXT NOT NULL
|
||||||
|
);
|
||||||
|
|
||||||
|
INSERT INTO tmp_Msg_Error (
|
||||||
|
id_type
|
||||||
|
, code
|
||||||
|
, msg
|
||||||
|
)
|
||||||
|
SELECT
|
||||||
|
MET.id_type
|
||||||
|
, @errno
|
||||||
|
, @text
|
||||||
|
FROM parts.CORE_Msg_Error_Type MET
|
||||||
|
WHERE MET.code = 'MYSQL_ERROR'
|
||||||
|
;
|
||||||
|
|
||||||
|
SELECT
|
||||||
|
t_ERROR.id_error
|
||||||
|
, t_ERROR.id_type
|
||||||
|
, t_ERROR.code
|
||||||
|
, ERROR_TYPE.name
|
||||||
|
, ERROR_TYPE.description
|
||||||
|
, ERROR_TYPE.is_breaking_error
|
||||||
|
, ERROR_TYPE.background_colour
|
||||||
|
, ERROR_TYPE.text_colour
|
||||||
|
, t_ERROR.msg
|
||||||
|
FROM tmp_Msg_Error t_ERROR
|
||||||
|
INNER JOIN parts.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type
|
||||||
|
;
|
||||||
|
|
||||||
|
DROP TABLE IF EXISTS tmp_Msg_Error;
|
||||||
|
END;
|
||||||
|
|
||||||
|
SET v_time_start := CURRENT_TIMESTAMP(6);
|
||||||
|
SET v_guid := UUID();
|
||||||
|
SET v_id_access_level_admin := (SELECT id_access_level FROM parts.DOG_Access_Level WHERE code = 'ADMIN' LIMIT 1);
|
||||||
|
SET v_id_access_level_view := (SELECT id_access_level FROM parts.DOG_Access_Level WHERE code = 'VIEW' LIMIT 1);
|
||||||
|
SET v_id_permission_dog_admin := (SELECT id_permission FROM parts.DOG_Permission WHERE code = 'DOG_ADMIN' LIMIT 1);
|
||||||
|
SET v_id_permission_user := (SELECT id_permission FROM parts.DOG_Permission WHERE code = 'USER_VIEW' LIMIT 1);
|
||||||
|
SET v_id_permission_user_admin := (SELECT id_permission FROM parts.DOG_Permission WHERE code = 'USER_ADMIN' LIMIT 1);
|
||||||
|
SET v_code_type_error_bad_data := 'BAD_DATA';
|
||||||
|
SET v_id_type_error_bad_data := (SELECT id_type FROM parts.CORE_Msg_Error_Type WHERE code = v_code_type_error_bad_data LIMIT 1);
|
||||||
|
SET v_ids_permission_required := CONCAT(v_id_permission_user, ',', v_id_permission_user_admin, ',', v_id_permission_dog_admin);
|
||||||
|
SET v_is_new := FALSE;
|
||||||
|
|
||||||
|
SET a_get_all_user := IFNULL(a_get_all_user, 1);
|
||||||
|
SET a_get_inactive_user := IFNULL(a_get_inactive_user, 0);
|
||||||
|
SET a_ids_user := TRIM(IFNULL(a_ids_user, ''));
|
||||||
|
SET a_ids_user_auth0 := TRIM(IFNULL(a_ids_user_auth0, ''));
|
||||||
|
SET a_debug := IFNULL(a_debug, 0);
|
||||||
|
|
||||||
|
IF a_debug = 1 THEN
|
||||||
|
SELECT
|
||||||
|
a_id_user
|
||||||
|
, a_id_user_auth0
|
||||||
|
, a_get_all_user
|
||||||
|
, a_get_inactive_user
|
||||||
|
, a_ids_user
|
||||||
|
, a_ids_user_auth0
|
||||||
|
, a_debug
|
||||||
|
;
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
DROP TEMPORARY TABLE IF EXISTS tmp_User;
|
||||||
|
DROP TEMPORARY TABLE IF EXISTS tmp_Msg_Error;
|
||||||
|
|
||||||
|
CREATE TEMPORARY TABLE tmp_User (
|
||||||
|
id_user INT NULL
|
||||||
|
, rank_user INT NULL
|
||||||
|
, can_admin_dog BIT NULL
|
||||||
|
, can_admin_user BIT NULL
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE TEMPORARY TABLE tmp_Msg_Error (
|
||||||
|
id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT
|
||||||
|
, id_type INT NOT NULL
|
||||||
|
, code VARCHAR(100) NOT NULL
|
||||||
|
, msg TEXT NOT NULL
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Split (
|
||||||
|
substring VARCHAR(4000) NOT NULL
|
||||||
|
, as_int INT NULL
|
||||||
|
);
|
||||||
|
DELETE FROM tmp_Split;
|
||||||
|
|
||||||
|
IF ISNULL(a_id_user) AND NOT ISNULL(a_id_user_auth0) THEN
|
||||||
|
SET a_id_user := (SELECT U.id_user FROM parts.DOG_User U WHERE U.id_user_auth0 = a_id_user_auth0 LIMIT 1);
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
IF ISNULL(a_id_user) THEN
|
||||||
|
IF NOT ISNULL(a_id_user_auth0) THEN
|
||||||
|
INSERT INTO parts.DOG_User (
|
||||||
|
id_user_auth0
|
||||||
|
, is_super_user
|
||||||
|
, active
|
||||||
|
)
|
||||||
|
VALUES (
|
||||||
|
a_id_user_auth0
|
||||||
|
, 0 -- is_super_user
|
||||||
|
, 1 -- active
|
||||||
|
)
|
||||||
|
;
|
||||||
|
SET a_id_user := (SELECT U.id_user FROM parts.DOG_User U WHERE U.id_user_auth0 = a_id_user_auth0 LIMIT 1);
|
||||||
|
SET v_is_new := TRUE;
|
||||||
|
ELSE
|
||||||
|
INSERT INTO tmp_Msg_Error (
|
||||||
|
id_type,
|
||||||
|
code,
|
||||||
|
msg
|
||||||
|
)
|
||||||
|
VALUES (
|
||||||
|
v_id_type_error_bad_data,
|
||||||
|
v_code_type_error_bad_data,
|
||||||
|
CONCAT('User ID required for authorisation.')
|
||||||
|
)
|
||||||
|
;
|
||||||
|
END IF;
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
SET v_has_filter_user := CASE WHEN a_ids_user = '' THEN 0 ELSE 1 END;
|
||||||
|
SET v_has_filter_user_auth0 := CASE WHEN a_ids_user_auth0 = '' THEN 0 ELSE 1 END;
|
||||||
|
|
||||||
|
IF a_debug = 1 THEN
|
||||||
|
SELECT
|
||||||
|
v_has_filter_user
|
||||||
|
, v_has_filter_user_auth0
|
||||||
|
;
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
-- User IDs
|
||||||
|
IF (NOT EXISTS (SELECT * FROM tmp_Msg_Error LIMIT 1) AND v_has_filter_user = 1) THEN
|
||||||
|
CALL parts.p_core_split(v_guid, a_ids_user, ',', FALSE);
|
||||||
|
|
||||||
|
SET sql_mode = '';
|
||||||
|
|
||||||
|
DELETE FROM tmp_Split;
|
||||||
|
|
||||||
|
INSERT INTO tmp_Split (
|
||||||
|
substring
|
||||||
|
, as_int
|
||||||
|
)
|
||||||
|
SELECT
|
||||||
|
substring
|
||||||
|
, CAST(substring AS DECIMAL(10,0)) AS as_int
|
||||||
|
FROM parts.Split_Temp
|
||||||
|
WHERE 1=1
|
||||||
|
AND GUID = v_guid
|
||||||
|
AND NOT ISNULL(substring)
|
||||||
|
AND substring != ''
|
||||||
|
;
|
||||||
|
|
||||||
|
CALL parts.p_core_clear_split( v_guid );
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
IF (NOT EXISTS (SELECT * FROM tmp_Msg_Error LIMIT 1) AND v_has_filter_user = 1) THEN
|
||||||
|
IF EXISTS (
|
||||||
|
SELECT *
|
||||||
|
FROM tmp_Split t_S
|
||||||
|
LEFT JOIN parts.DOG_User U ON t_S.as_int = U.id_user
|
||||||
|
WHERE
|
||||||
|
ISNULL(t_S.as_int)
|
||||||
|
OR ISNULL(U.id_user)
|
||||||
|
) THEN
|
||||||
|
INSERT INTO tmp_Msg_Error (
|
||||||
|
id_type
|
||||||
|
, code
|
||||||
|
, msg
|
||||||
|
)
|
||||||
|
SELECT
|
||||||
|
v_id_type_error_bad_data
|
||||||
|
, v_code_type_error_bad_data
|
||||||
|
, CONCAT('Invalid or inactive User IDs: ', IFNULL(GROUP_CONCAT(t_S.substring SEPARATOR ', '), 'NULL'))
|
||||||
|
FROM tmp_Split t_S
|
||||||
|
LEFT JOIN parts.DOG_User U ON t_S.as_int = U.id_user
|
||||||
|
WHERE
|
||||||
|
ISNULL(t_S.as_int)
|
||||||
|
OR ISNULL(U.id_user)
|
||||||
|
;
|
||||||
|
ELSE
|
||||||
|
INSERT INTO tmp_User (
|
||||||
|
id_user
|
||||||
|
, rank_user
|
||||||
|
)
|
||||||
|
SELECT
|
||||||
|
U.id_user
|
||||||
|
, RANK() OVER (ORDER BY U.id_user DESC) AS rank_user
|
||||||
|
FROM tmp_Split t_S
|
||||||
|
RIGHT JOIN parts.DOG_User U ON t_S.as_int = U.id_user
|
||||||
|
WHERE
|
||||||
|
(
|
||||||
|
a_get_all_user = 1
|
||||||
|
OR (
|
||||||
|
v_has_filter_user = 1
|
||||||
|
AND NOT ISNULL(t_S.as_int)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
AND (
|
||||||
|
a_get_inactive_user = 1
|
||||||
|
OR U.active = 1
|
||||||
|
)
|
||||||
|
;
|
||||||
|
END IF;
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
-- Auth0 User IDs
|
||||||
|
IF (NOT EXISTS (SELECT * FROM tmp_Msg_Error LIMIT 1) AND v_has_filter_user_auth0 = 1) THEN
|
||||||
|
CALL parts.p_core_split(v_guid, a_ids_user_auth0, ',', FALSE);
|
||||||
|
|
||||||
|
DELETE FROM tmp_Split;
|
||||||
|
|
||||||
|
INSERT INTO tmp_Split (
|
||||||
|
substring
|
||||||
|
)
|
||||||
|
SELECT
|
||||||
|
substring
|
||||||
|
FROM parts.Split_Temp
|
||||||
|
WHERE
|
||||||
|
GUID = v_guid
|
||||||
|
AND NOT ISNULL(substring)
|
||||||
|
AND substring != ''
|
||||||
|
;
|
||||||
|
|
||||||
|
CALL parts.p_core_clear_split( v_guid );
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
IF (NOT EXISTS (SELECT * FROM tmp_Msg_Error LIMIT 1) AND v_has_filter_user_auth0 = 1) THEN
|
||||||
|
IF EXISTS (
|
||||||
|
SELECT *
|
||||||
|
FROM tmp_Split t_S
|
||||||
|
LEFT JOIN parts.DOG_User U ON t_S.substring = U.id_user_auth0
|
||||||
|
WHERE
|
||||||
|
ISNULL(t_S.substring)
|
||||||
|
OR ISNULL(U.id_user_auth0)
|
||||||
|
) THEN
|
||||||
|
INSERT INTO tmp_Msg_Error (
|
||||||
|
id_type
|
||||||
|
, code
|
||||||
|
, msg
|
||||||
|
)
|
||||||
|
SELECT
|
||||||
|
v_id_type_error_bad_data
|
||||||
|
, v_code_type_error_bad_data
|
||||||
|
, CONCAT('Invalid or inactive Auth0 User IDs: ', IFNULL(GROUP_CONCAT(t_S.substring SEPARATOR ', '), 'NULL'))
|
||||||
|
FROM tmp_Split t_S
|
||||||
|
LEFT JOIN parts.DOG_User U ON t_S.substring = U.id_user_auth0
|
||||||
|
WHERE
|
||||||
|
ISNULL(t_S.substring)
|
||||||
|
OR ISNULL(U.id_user_auth0)
|
||||||
|
;
|
||||||
|
ELSE
|
||||||
|
SET v_rank_max := IFNULL((SELECT rank_user FROM tmp_User ORDER BY rank_user DESC LIMIT 1), 0);
|
||||||
|
|
||||||
|
INSERT INTO tmp_User (
|
||||||
|
id_user
|
||||||
|
, rank_user
|
||||||
|
)
|
||||||
|
SELECT
|
||||||
|
U.id_user
|
||||||
|
, v_rank_max + (RANK() OVER (ORDER BY U.id_user DESC)) AS rank_user
|
||||||
|
FROM tmp_Split t_S
|
||||||
|
RIGHT JOIN parts.DOG_User U ON t_S.substring = U.id_user_auth0
|
||||||
|
WHERE
|
||||||
|
(
|
||||||
|
a_get_all_user = 1
|
||||||
|
OR (
|
||||||
|
v_has_filter_user_auth0 = 1
|
||||||
|
AND NOT ISNULL(t_S.substring)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
AND (
|
||||||
|
a_get_inactive_user = 1
|
||||||
|
OR U.active = 1
|
||||||
|
)
|
||||||
|
;
|
||||||
|
END IF;
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
IF a_debug = 1 THEN
|
||||||
|
SELECT * FROM tmp_User;
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
-- Can admin dog
|
||||||
|
IF NOT EXISTS (SELECT * FROM tmp_Msg_Error LIMIT 1) THEN
|
||||||
|
IF a_debug = 1 THEN
|
||||||
|
SELECT
|
||||||
|
v_guid -- guid
|
||||||
|
, a_id_user -- ids_user
|
||||||
|
, FALSE -- get_inactive_user
|
||||||
|
, v_id_permission_dog_admin -- ids_permission
|
||||||
|
, v_id_access_level_admin -- ids_access_level
|
||||||
|
, 0 -- a_show_errors
|
||||||
|
, 0 -- a_debug
|
||||||
|
;
|
||||||
|
SELECT * FROM parts.DOG_Calc_User_Temp;
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
CALL parts.p_dog_calc_user(
|
||||||
|
v_guid -- guid
|
||||||
|
, a_id_user -- ids_user
|
||||||
|
, FALSE -- get_inactive_user
|
||||||
|
, v_id_permission_dog_admin -- ids_permission
|
||||||
|
, v_id_access_level_admin -- ids_access_level
|
||||||
|
, 0 -- a_show_errors
|
||||||
|
, 0 -- a_debug
|
||||||
|
);
|
||||||
|
|
||||||
|
IF a_debug = 1 THEN
|
||||||
|
SELECT * FROM parts.DOG_Calc_User_Temp WHERE GUID = v_guid;
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
UPDATE tmp_User t_U
|
||||||
|
INNER JOIN parts.DOG_Calc_User_Temp CUT
|
||||||
|
ON CUT.GUID = v_guid
|
||||||
|
AND t_U.id_user = CUT.id_user
|
||||||
|
SET t_U.can_admin_dog = CUT.can_admin
|
||||||
|
;
|
||||||
|
|
||||||
|
CALL parts.p_dog_clear_calc_user( v_guid, FALSE );
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
-- Can admin user
|
||||||
|
IF NOT EXISTS (SELECT * FROM tmp_Msg_Error LIMIT 1) THEN
|
||||||
|
IF a_debug = 1 THEN
|
||||||
|
SELECT
|
||||||
|
v_guid -- guid
|
||||||
|
, a_id_user -- ids_user
|
||||||
|
, FALSE -- get_inactive_user
|
||||||
|
, v_id_permission_user_admin -- ids_permission
|
||||||
|
, v_id_access_level_admin -- ids_access_level
|
||||||
|
, 0 -- a_show_errors
|
||||||
|
, 0 -- a_debug
|
||||||
|
;
|
||||||
|
SELECT * FROM parts.DOG_Calc_User_Temp;
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
CALL parts.p_dog_calc_user(
|
||||||
|
v_guid -- guid
|
||||||
|
, a_id_user -- ids_user
|
||||||
|
, FALSE -- get_inactive_user
|
||||||
|
, v_id_permission_user_admin -- ids_permission
|
||||||
|
, v_id_access_level_admin -- ids_access_level
|
||||||
|
, 0 -- a_show_errors
|
||||||
|
, 0 -- a_debug
|
||||||
|
);
|
||||||
|
|
||||||
|
IF a_debug = 1 THEN
|
||||||
|
SELECT * FROM parts.DOG_Calc_User_Temp WHERE GUID = v_guid;
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
UPDATE tmp_User t_U
|
||||||
|
INNER JOIN parts.DOG_Calc_User_Temp CUT
|
||||||
|
ON CUT.GUID = v_guid
|
||||||
|
AND t_U.id_user = CUT.id_user
|
||||||
|
SET t_U.can_admin_user = CUT.can_admin
|
||||||
|
;
|
||||||
|
|
||||||
|
CALL parts.p_dog_clear_calc_user( v_guid, FALSE );
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
-- Permissions
|
||||||
|
IF NOT EXISTS (SELECT * FROM tmp_Msg_Error LIMIT 1) THEN
|
||||||
|
IF a_debug = 1 THEN
|
||||||
|
SELECT
|
||||||
|
v_guid -- guid
|
||||||
|
, a_id_user -- ids_user
|
||||||
|
, FALSE -- get_inactive_user
|
||||||
|
, v_ids_permission_required -- ids_permission
|
||||||
|
, v_id_access_level_view -- ids_access_level
|
||||||
|
, 0 -- a_show_errors
|
||||||
|
, 0 -- a_debug
|
||||||
|
;
|
||||||
|
SELECT * FROM parts.DOG_Calc_User_Temp;
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
CALL parts.p_dog_calc_user(
|
||||||
|
v_guid -- guid
|
||||||
|
, a_id_user -- ids_user
|
||||||
|
, FALSE -- get_inactive_user
|
||||||
|
, v_ids_permission_required -- ids_permission
|
||||||
|
, v_id_access_level_view -- ids_access_level
|
||||||
|
, 0 -- a_show_errors
|
||||||
|
, 0 -- a_debug
|
||||||
|
);
|
||||||
|
|
||||||
|
IF a_debug = 1 THEN
|
||||||
|
SELECT * FROM parts.DOG_Calc_User_Temp WHERE GUID = v_guid;
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
IF NOT EXISTS (
|
||||||
|
SELECT can_view
|
||||||
|
FROM parts.DOG_Calc_User_Temp CUT
|
||||||
|
WHERE
|
||||||
|
CUT.GUID = v_guid
|
||||||
|
AND can_view = 1
|
||||||
|
) THEN
|
||||||
|
INSERT INTO tmp_Msg_Error (
|
||||||
|
id_type
|
||||||
|
, code
|
||||||
|
, msg
|
||||||
|
)
|
||||||
|
VALUES (
|
||||||
|
v_id_type_error_bad_data
|
||||||
|
, v_code_type_error_bad_data
|
||||||
|
, CONCAT('You do not have view permissions for ', (SELECT name FROM parts.DOG_Permission P INNER JOIN parts.DOG_Calc_User_Temp CUT ON P.id_permission = CUT.id_permission_required WHERE GUID = v_guid AND IFNULL(can_view, 0) = 0 LIMIT 1))
|
||||||
|
)
|
||||||
|
;
|
||||||
|
ELSE
|
||||||
|
SET a_debug := a_debug;
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
CALL parts.p_dog_clear_calc_user( v_guid, FALSE );
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
|
||||||
|
-- Returns
|
||||||
|
/* NULL record required for flask sql_alchemy to detect result set */
|
||||||
|
IF EXISTS (SELECT * FROM tmp_Msg_Error) THEN
|
||||||
|
DELETE FROM tmp_User;
|
||||||
|
INSERT INTO tmp_User ( id_user )
|
||||||
|
VALUES ( NULL );
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
|
||||||
|
SELECT
|
||||||
|
U.id_user
|
||||||
|
, U.id_user_auth0
|
||||||
|
, U.firstname
|
||||||
|
, U.surname
|
||||||
|
, U.email
|
||||||
|
, U.is_email_verified
|
||||||
|
, U.is_super_user
|
||||||
|
, t_U.can_admin_dog
|
||||||
|
, t_U.can_admin_user
|
||||||
|
, v_is_new AS is_new
|
||||||
|
FROM tmp_User t_U
|
||||||
|
INNER JOIN parts.DOG_User U ON t_U.id_user = U.id_user
|
||||||
|
;
|
||||||
|
|
||||||
|
# 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_User;
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
-- Clean up
|
||||||
|
DROP TEMPORARY TABLE IF EXISTS tmp_User;
|
||||||
|
DROP TEMPORARY TABLE IF EXISTS tmp_Msg_Error;
|
||||||
|
|
||||||
|
/*
|
||||||
|
DELETE FROM parts.DOG_Calc_User_Temp
|
||||||
|
WHERE GUID = v_guid;
|
||||||
|
*/
|
||||||
|
|
||||||
|
IF a_debug = 1 THEN
|
||||||
|
CALL parts.p_debug_timing_reporting ( v_time_start );
|
||||||
|
END IF;
|
||||||
|
END //
|
||||||
|
DELIMITER ;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
CALL p_dog_get_many_user (
|
||||||
|
NULL
|
||||||
|
, 'google-oauth2|109567376920138999933'
|
||||||
|
, False
|
||||||
|
, False
|
||||||
|
-- , False
|
||||||
|
, NULL
|
||||||
|
, 'google-oauth2|109567376920138999933'
|
||||||
|
, 0
|
||||||
|
);
|
||||||
|
NULL # a_id_user
|
||||||
|
, 'auth0|6582b95c895d09a70ba10fef' # a_id_user_auth0
|
||||||
|
, 0 # a_get_all_user
|
||||||
|
, 0 # a_get_inactive_user
|
||||||
|
-- , 0 # a_get_first_user_only
|
||||||
|
, NULL # a_ids_user
|
||||||
|
, 'auth0|6582b95c895d09a70ba10fef' # a_ids_user_auth0
|
||||||
|
, 0 -- a_debug
|
||||||
|
);*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
select * FROM parts.DOG_Calc_User_Temp;
|
||||||
|
delete FROM parts.DOG_Calc_User_Temp;
|
||||||
|
|
||||||
|
SELECT *
|
||||||
|
FROM parts.DOG_USER;
|
||||||
|
|
||||||
|
CALL p_dog_get_many_user(
|
||||||
|
NULL -- :a_id_user,
|
||||||
|
, 'auth0|6582b95c895d09a70ba10fef' -- :a_id_user_auth0,
|
||||||
|
, 1 -- :a_get_all_user,
|
||||||
|
, 0 -- :a_get_inactive_user,
|
||||||
|
-- , 0 -- :a_get_first_user_only,
|
||||||
|
, NULL -- :a_ids_user,
|
||||||
|
, 'auth0|6582b95c895d09a70ba10fef' -- :a_ids_user_auth0
|
||||||
|
, 0 -- a_debug
|
||||||
|
);
|
||||||
|
|
||||||
|
*/
|
||||||
@@ -11,44 +11,101 @@ CREATE PROCEDURE p_dog_get_many_user (
|
|||||||
, IN a_id_user_auth0 VARCHAR(200)
|
, IN a_id_user_auth0 VARCHAR(200)
|
||||||
, IN a_get_all_user BIT
|
, IN a_get_all_user BIT
|
||||||
, IN a_get_inactive_user BIT
|
, IN a_get_inactive_user BIT
|
||||||
, IN a_ids_user LONGTEXT
|
, IN a_ids_user TEXT
|
||||||
, IN a_ids_user_auth0 LONGTEXT
|
, IN a_ids_user_auth0 TEXT
|
||||||
|
, IN a_names_user TEXT
|
||||||
|
, IN a_require_all_id_search_filters_met BIT
|
||||||
|
, IN a_require_any_id_search_filters_met BIT
|
||||||
|
, IN a_require_all_non_id_search_filters_met BIT
|
||||||
|
, IN a_require_any_non_id_search_filters_met BIT
|
||||||
, IN a_debug BIT
|
, IN a_debug BIT
|
||||||
)
|
)
|
||||||
BEGIN
|
BEGIN
|
||||||
|
DECLARE v_code_type_error_bad_data VARCHAR(50);
|
||||||
|
DECLARE v_guid BINARY(36);
|
||||||
|
DECLARE v_has_filter_user_auth0_id BIT;
|
||||||
|
DECLARE v_has_filter_user_id BIT;
|
||||||
|
DECLARE v_has_filter_user_name BIT;
|
||||||
DECLARE v_id_access_level_admin INT;
|
DECLARE v_id_access_level_admin INT;
|
||||||
DECLARE v_id_access_level_view INT;
|
DECLARE v_id_access_level_view INT;
|
||||||
|
DECLARE v_id_minimum INT;
|
||||||
DECLARE v_id_permission_dog_admin INT;
|
DECLARE v_id_permission_dog_admin INT;
|
||||||
DECLARE v_id_permission_user INT;
|
DECLARE v_id_permission_user INT;
|
||||||
DECLARE v_id_permission_user_admin INT;
|
DECLARE v_id_permission_user_admin INT;
|
||||||
DECLARE v_ids_permission_required VARCHAR(4000);
|
|
||||||
DECLARE v_id_minimum INT;
|
|
||||||
DECLARE v_code_error_bad_data VARCHAR(50);
|
|
||||||
DECLARE v_id_type_error_bad_data INT;
|
DECLARE v_id_type_error_bad_data INT;
|
||||||
DECLARE v_has_filter_user BIT;
|
DECLARE v_ids_permission_required VARCHAR(4000);
|
||||||
DECLARE v_has_filter_user_auth0 BIT;
|
DECLARE v_is_new BIT;
|
||||||
DECLARE v_guid BINARY(36);
|
|
||||||
DECLARE v_rank_max INT;
|
DECLARE v_rank_max INT;
|
||||||
DECLARE v_time_start TIMESTAMP(6);
|
DECLARE v_time_start TIMESTAMP(6);
|
||||||
DECLARE v_is_new BIT;
|
|
||||||
|
DECLARE exit handler for SQLEXCEPTION
|
||||||
|
BEGIN
|
||||||
|
GET DIAGNOSTICS CONDITION 1
|
||||||
|
@sqlstate = RETURNED_SQLSTATE
|
||||||
|
, @errno = MYSQL_ERRNO
|
||||||
|
, @text = MESSAGE_TEXT
|
||||||
|
;
|
||||||
|
|
||||||
|
ROLLBACK;
|
||||||
|
|
||||||
|
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error (
|
||||||
|
id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT
|
||||||
|
, id_type INT NULL
|
||||||
|
, code VARCHAR(100) NOT NULL
|
||||||
|
, msg TEXT NOT NULL
|
||||||
|
);
|
||||||
|
|
||||||
|
INSERT INTO tmp_Msg_Error (
|
||||||
|
id_type
|
||||||
|
, code
|
||||||
|
, msg
|
||||||
|
)
|
||||||
|
SELECT
|
||||||
|
MET.id_type
|
||||||
|
, @errno
|
||||||
|
, @text
|
||||||
|
FROM parts.CORE_Msg_Error_Type MET
|
||||||
|
WHERE MET.code = 'MYSQL_ERROR'
|
||||||
|
;
|
||||||
|
|
||||||
|
SELECT
|
||||||
|
t_ERROR.id_error
|
||||||
|
, t_ERROR.id_type
|
||||||
|
, t_ERROR.code
|
||||||
|
, ERROR_TYPE.name
|
||||||
|
, ERROR_TYPE.description
|
||||||
|
, ERROR_TYPE.is_breaking_error
|
||||||
|
, ERROR_TYPE.background_colour
|
||||||
|
, ERROR_TYPE.text_colour
|
||||||
|
, t_ERROR.msg
|
||||||
|
FROM tmp_Msg_Error t_ERROR
|
||||||
|
INNER JOIN parts.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type
|
||||||
|
;
|
||||||
|
|
||||||
|
DROP TABLE IF EXISTS tmp_Msg_Error;
|
||||||
|
END;
|
||||||
|
|
||||||
SET v_time_start := CURRENT_TIMESTAMP(6);
|
SET v_time_start := CURRENT_TIMESTAMP(6);
|
||||||
SET v_guid := UUID();
|
SET v_guid := UUID();
|
||||||
SET v_id_access_level_admin := (SELECT id_access_level FROM parts.Shop_Access_Level WHERE code = 'ADMIN' LIMIT 1);
|
SET v_id_access_level_admin := (SELECT id_access_level FROM parts.DOG_Access_Level WHERE code = 'ADMIN' LIMIT 1);
|
||||||
SET v_id_access_level_view := (SELECT id_access_level FROM parts.Shop_Access_Level WHERE code = 'VIEW' LIMIT 1);
|
SET v_id_access_level_view := (SELECT id_access_level FROM parts.DOG_Access_Level WHERE code = 'VIEW' LIMIT 1);
|
||||||
SET v_id_permission_dog_admin := (SELECT id_permission FROM parts.Shop_Permission WHERE code = 'DOG_ADMIN' LIMIT 1);
|
SET v_id_permission_dog_admin := (SELECT id_permission FROM parts.DOG_Permission WHERE code = 'DOG_ADMIN' LIMIT 1);
|
||||||
SET v_id_permission_user := (SELECT id_permission FROM parts.Shop_Permission WHERE code = 'USER_VIEW' LIMIT 1);
|
SET v_id_permission_user := (SELECT id_permission FROM parts.DOG_Permission WHERE code = 'USER_VIEW' LIMIT 1);
|
||||||
SET v_id_permission_user_admin := (SELECT id_permission FROM parts.Shop_Permission WHERE code = 'USER_ADMIN' LIMIT 1);
|
SET v_id_permission_user_admin := (SELECT id_permission FROM parts.DOG_Permission WHERE code = 'USER_ADMIN' LIMIT 1);
|
||||||
SET v_code_error_bad_data := (SELECT code FROM parts.Shop_Msg_Error_Type WHERE code = 'BAD_DATA' LIMIT 1);
|
SET v_code_type_error_bad_data := 'BAD_DATA';
|
||||||
SET v_id_type_error_bad_data := (SELECT id_type FROM parts.Shop_Msg_Error_Type WHERE code = v_code_error_bad_data LIMIT 1);
|
SET v_id_type_error_bad_data := (SELECT id_type FROM parts.CORE_Msg_Error_Type WHERE code = v_code_type_error_bad_data LIMIT 1);
|
||||||
SET v_ids_permission_required := CONCAT(v_id_permission_user, ',', v_id_permission_user_admin, ',', v_id_permission_dog_admin);
|
SET v_ids_permission_required := CONCAT(v_id_permission_user, ',', v_id_permission_user_admin, ',', v_id_permission_dog_admin);
|
||||||
SET v_is_new := FALSE;
|
SET v_is_new := FALSE;
|
||||||
|
|
||||||
SET a_get_all_user := IFNULL(a_get_all_user, 1);
|
SET a_get_all_user := IFNULL(a_get_all_user, 1);
|
||||||
SET a_get_inactive_user := IFNULL(a_get_inactive_user, 0);
|
SET a_get_inactive_user := IFNULL(a_get_inactive_user, 0);
|
||||||
-- SET a_get_first_user_only := IFNULL(a_get_first_user_only, 0);
|
|
||||||
SET a_ids_user := TRIM(IFNULL(a_ids_user, ''));
|
SET a_ids_user := TRIM(IFNULL(a_ids_user, ''));
|
||||||
SET a_ids_user_auth0 := TRIM(IFNULL(a_ids_user_auth0, ''));
|
SET a_ids_user_auth0 := TRIM(IFNULL(a_ids_user_auth0, ''));
|
||||||
|
SET a_names_user := TRIM(IFNULL(a_names_user, ''));
|
||||||
|
SET a_require_all_id_search_filters_met := IFNULL(a_require_all_id_search_filters_met, 1);
|
||||||
|
SET a_require_any_id_search_filters_met := IFNULL(a_require_any_id_search_filters_met, 1);
|
||||||
|
SET a_require_all_non_id_search_filters_met := IFNULL(a_require_all_non_id_search_filters_met, 0);
|
||||||
|
SET a_require_any_non_id_search_filters_met := IFNULL(a_require_any_non_id_search_filters_met, 1);
|
||||||
SET a_debug := IFNULL(a_debug, 0);
|
SET a_debug := IFNULL(a_debug, 0);
|
||||||
|
|
||||||
IF a_debug = 1 THEN
|
IF a_debug = 1 THEN
|
||||||
@@ -57,251 +114,341 @@ BEGIN
|
|||||||
, a_id_user_auth0
|
, a_id_user_auth0
|
||||||
, a_get_all_user
|
, a_get_all_user
|
||||||
, a_get_inactive_user
|
, a_get_inactive_user
|
||||||
-- , a_get_first_user_only
|
|
||||||
, a_ids_user
|
, a_ids_user
|
||||||
, a_ids_user_auth0
|
, a_ids_user_auth0
|
||||||
|
, a_names_user
|
||||||
|
, a_require_all_id_search_filters_met
|
||||||
|
, a_require_any_id_search_filters_met
|
||||||
|
, a_require_all_non_id_search_filters_met
|
||||||
|
, a_require_any_non_id_search_filters_met
|
||||||
, a_debug
|
, a_debug
|
||||||
;
|
;
|
||||||
END IF;
|
END IF;
|
||||||
|
|
||||||
DROP TEMPORARY TABLE IF EXISTS tmp_User;
|
DROP TEMPORARY TABLE IF EXISTS tmp_Split_Name;
|
||||||
|
DROP TEMPORARY TABLE IF EXISTS tmp_Split_Auth0_Id;
|
||||||
|
DROP TEMPORARY TABLE IF EXISTS tmp_Split_Id;
|
||||||
DROP TEMPORARY TABLE IF EXISTS tmp_Msg_Error;
|
DROP TEMPORARY TABLE IF EXISTS tmp_Msg_Error;
|
||||||
|
DROP TEMPORARY TABLE IF EXISTS tmp_User;
|
||||||
|
|
||||||
CREATE TEMPORARY TABLE tmp_User (
|
CREATE TEMPORARY TABLE tmp_User (
|
||||||
id_user INT NULL
|
id_user INT NULL
|
||||||
, rank_user INT NULL
|
|
||||||
, can_admin_dog BIT NULL
|
, can_admin_dog BIT NULL
|
||||||
, can_admin_user BIT NULL
|
, can_admin_user BIT NULL
|
||||||
|
, does_meet_id_filters BIT
|
||||||
|
, does_meet_non_id_filters BIT
|
||||||
);
|
);
|
||||||
|
|
||||||
CREATE TEMPORARY TABLE tmp_Msg_Error (
|
CREATE TEMPORARY TABLE tmp_Msg_Error (
|
||||||
display_order INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
|
id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT
|
||||||
-- guid BINARY(36) NOT NULL,
|
, id_type INT NOT NULL
|
||||||
id_type INT NOT NULL,
|
, code VARCHAR(100) NOT NULL
|
||||||
code VARCHAR(50) NOT NULL,
|
, msg TEXT NOT NULL
|
||||||
msg VARCHAR(4000) NOT NULL
|
|
||||||
);
|
);
|
||||||
|
|
||||||
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Split (
|
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Split_Id (
|
||||||
substring VARCHAR(4000) NOT NULL
|
substring VARCHAR(4000) NOT NULL
|
||||||
, as_int INT NULL
|
, as_int INT NULL
|
||||||
);
|
);
|
||||||
|
DELETE FROM tmp_Split_Id;
|
||||||
|
|
||||||
|
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Split_Auth0_Id (
|
||||||
|
substring VARCHAR(4000) NOT NULL
|
||||||
|
, as_int INT NULL
|
||||||
|
);
|
||||||
|
DELETE FROM tmp_Split_Auth0_Id;
|
||||||
|
|
||||||
|
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Split_Name (
|
||||||
|
substring VARCHAR(4000) NOT NULL
|
||||||
|
, as_int INT NULL
|
||||||
|
);
|
||||||
|
DELETE FROM tmp_Split_Name;
|
||||||
|
|
||||||
IF ISNULL(a_id_user) AND NOT ISNULL(a_id_user_auth0) THEN
|
IF ISNULL(a_id_user) AND NOT ISNULL(a_id_user_auth0) THEN
|
||||||
SET a_id_user := (SELECT U.id_user FROM parts.Shop_User U WHERE U.id_user_auth0 = a_id_user_auth0 LIMIT 1); -- LIKE CONCAT('%', a_id_user_auth0, '%') LIMIT 1);
|
SET a_id_user := (SELECT U.id_user FROM parts.DOG_User U WHERE U.id_user_auth0 = a_id_user_auth0 LIMIT 1);
|
||||||
END IF;
|
END IF;
|
||||||
|
|
||||||
IF ISNULL(a_id_user) THEN
|
IF
|
||||||
IF NOT ISNULL(a_id_user_auth0) THEN
|
ISNULL(a_id_user)
|
||||||
INSERT INTO parts.Shop_User (
|
AND ISNULL(a_id_user_auth0)
|
||||||
id_user_auth0
|
THEN
|
||||||
, is_super_user
|
INSERT INTO tmp_Msg_Error (
|
||||||
, active
|
id_type
|
||||||
)
|
, code
|
||||||
VALUES (
|
, msg
|
||||||
a_id_user_auth0
|
)
|
||||||
, 0 -- is_super_user
|
VALUES (
|
||||||
, 1 -- active
|
v_id_type_error_bad_data
|
||||||
)
|
, v_code_type_error_bad_data
|
||||||
;
|
, CONCAT('User ID required for authorisation.')
|
||||||
SET a_id_user := (SELECT U.id_user FROM parts.Shop_User U WHERE U.id_user_auth0 = a_id_user_auth0 LIMIT 1);
|
)
|
||||||
SET v_is_new := TRUE;
|
;
|
||||||
ELSE
|
|
||||||
INSERT INTO tmp_Msg_Error (
|
|
||||||
id_type,
|
|
||||||
code,
|
|
||||||
msg
|
|
||||||
)
|
|
||||||
VALUES (
|
|
||||||
v_id_type_error_bad_data,
|
|
||||||
v_code_error_bad_data,
|
|
||||||
CONCAT('User ID required for authorisation.')
|
|
||||||
)
|
|
||||||
;
|
|
||||||
END IF;
|
|
||||||
END IF;
|
END IF;
|
||||||
|
|
||||||
SET v_has_filter_user := CASE WHEN a_ids_user = '' THEN 0 ELSE 1 END;
|
SET v_has_filter_user_id := CASE WHEN a_ids_user = '' THEN 0 ELSE 1 END;
|
||||||
SET v_has_filter_user_auth0 := CASE WHEN a_ids_user_auth0 = '' THEN 0 ELSE 1 END;
|
SET v_has_filter_user_auth0_id := CASE WHEN a_ids_user_auth0 = '' THEN 0 ELSE 1 END;
|
||||||
|
SET v_has_filter_user_name := CASE WHEN a_names_user = '' THEN 0 ELSE 1 END;
|
||||||
|
|
||||||
IF a_debug = 1 THEN
|
IF a_debug = 1 THEN
|
||||||
SELECT
|
SELECT
|
||||||
v_has_filter_user
|
v_has_filter_user_id
|
||||||
, v_has_filter_user_auth0
|
, v_has_filter_user_auth0_id
|
||||||
|
, v_has_filter_user_name
|
||||||
;
|
;
|
||||||
END IF;
|
END IF;
|
||||||
|
|
||||||
-- User IDs
|
-- User IDs
|
||||||
IF (NOT EXISTS (SELECT * FROM tmp_Msg_Error LIMIT 1) AND v_has_filter_user = 1) THEN
|
IF v_has_filter_user_id = 1 THEN
|
||||||
CALL parts.p_core_split(v_guid, a_ids_user, ',', FALSE);
|
CALL parts.p_core_split(v_guid, a_ids_user, ',', FALSE);
|
||||||
|
|
||||||
DELETE FROM tmp_Split;
|
SET sql_mode = '';
|
||||||
|
|
||||||
INSERT INTO tmp_Split (
|
INSERT INTO tmp_Split_Id (
|
||||||
substring
|
substring
|
||||||
, as_int
|
, as_int
|
||||||
)
|
)
|
||||||
SELECT
|
SELECT
|
||||||
substring
|
substring
|
||||||
, CONVERT(substring, DECIMAL(10,0)) AS as_int
|
, CAST(substring AS DECIMAL(10,0)) AS as_int
|
||||||
FROM parts.Split_Temp
|
FROM parts.CORE_Split_Temp
|
||||||
WHERE 1=1
|
WHERE
|
||||||
AND GUID = v_guid
|
GUID = v_guid
|
||||||
AND NOT ISNULL(substring)
|
AND IFNULL(substring, '') != ''
|
||||||
AND substring != ''
|
|
||||||
;
|
;
|
||||||
|
|
||||||
CALL parts.p_core_clear_split( v_guid );
|
CALL parts.p_core_clear_split( v_guid );
|
||||||
END IF;
|
|
||||||
|
|
||||||
IF (NOT EXISTS (SELECT * FROM tmp_Msg_Error LIMIT 1) AND v_has_filter_user = 1) THEN
|
|
||||||
IF EXISTS (
|
IF EXISTS (
|
||||||
SELECT *
|
SELECT *
|
||||||
FROM tmp_Split t_S
|
FROM tmp_Split_Id t_SPLIT_ID
|
||||||
LEFT JOIN parts.Shop_User U ON t_S.as_int = U.id_user
|
LEFT JOIN parts.DOG_User USER ON t_SPLIT_ID.as_int = USER.id_user
|
||||||
WHERE
|
WHERE
|
||||||
ISNULL(t_S.as_int)
|
ISNULL(t_SPLIT_ID.as_int)
|
||||||
OR ISNULL(U.id_user)
|
OR ISNULL(USER.id_user)
|
||||||
|
OR USER.active = 0
|
||||||
) THEN
|
) THEN
|
||||||
INSERT INTO tmp_Msg_Error (
|
INSERT INTO tmp_Msg_Error (
|
||||||
-- guid,
|
id_type
|
||||||
id_type,
|
, code
|
||||||
code,
|
, msg
|
||||||
msg
|
|
||||||
)
|
)
|
||||||
SELECT
|
SELECT
|
||||||
-- v_guid,
|
v_id_type_error_bad_data
|
||||||
v_id_type_error_bad_data,
|
, v_code_type_error_bad_data
|
||||||
v_code_error_bad_data,
|
, CONCAT('Invalid or inactive User IDs: ', IFNULL(GROUP_CONCAT(t_SPLIT_ID.substring SEPARATOR ', '), 'NULL'))
|
||||||
CONCAT('Invalid or inactive User IDs: ', IFNULL(GROUP_CONCAT(t_S.substring SEPARATOR ', '), 'NULL'))
|
FROM tmp_Split_Id t_SPLIT_ID
|
||||||
FROM tmp_Split t_S
|
LEFT JOIN parts.DOG_User U ON t_SPLIT_ID.as_int = USER.id_user
|
||||||
LEFT JOIN parts.Shop_User U ON t_S.as_int = U.id_user
|
|
||||||
WHERE
|
WHERE
|
||||||
ISNULL(t_S.as_int)
|
ISNULL(t_SPLIT_ID.as_int)
|
||||||
OR ISNULL(U.id_user)
|
OR ISNULL(USER.id_user)
|
||||||
;
|
OR USER.active = 0
|
||||||
ELSE
|
|
||||||
INSERT INTO tmp_User (
|
|
||||||
id_user
|
|
||||||
, rank_user
|
|
||||||
)
|
|
||||||
SELECT
|
|
||||||
U.id_user
|
|
||||||
, RANK() OVER (ORDER BY U.id_user DESC) AS rank_user
|
|
||||||
FROM tmp_Split t_S
|
|
||||||
RIGHT JOIN parts.Shop_User U ON t_S.as_int = U.id_user
|
|
||||||
WHERE
|
|
||||||
(
|
|
||||||
a_get_all_user = 1
|
|
||||||
OR (
|
|
||||||
v_has_filter_user = 1
|
|
||||||
AND NOT ISNULL(t_S.as_int)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
AND (
|
|
||||||
a_get_inactive_user = 1
|
|
||||||
OR U.active = 1
|
|
||||||
)
|
|
||||||
;
|
;
|
||||||
END IF;
|
END IF;
|
||||||
END IF;
|
END IF;
|
||||||
|
|
||||||
-- Auth0 User IDs
|
-- Auth0 User IDs
|
||||||
IF (NOT EXISTS (SELECT * FROM tmp_Msg_Error LIMIT 1) AND v_has_filter_user_auth0 = 1) THEN
|
IF v_has_filter_user_auth0_id = 1 THEN
|
||||||
CALL parts.p_core_split(v_guid, a_ids_user_auth0, ',', FALSE);
|
CALL parts.p_core_split(v_guid, a_ids_user_auth0, ',', FALSE);
|
||||||
|
|
||||||
DELETE FROM tmp_Split;
|
INSERT INTO tmp_Split_Auth0_Id (
|
||||||
|
|
||||||
INSERT INTO tmp_Split (
|
|
||||||
substring
|
substring
|
||||||
)
|
)
|
||||||
SELECT
|
SELECT
|
||||||
substring
|
substring
|
||||||
FROM parts.Split_Temp
|
FROM parts.CORE_Split_Temp
|
||||||
WHERE 1=1
|
WHERE
|
||||||
AND GUID = v_guid
|
GUID = v_guid
|
||||||
AND NOT ISNULL(substring)
|
AND IFNULL(substring, '') != ''
|
||||||
AND substring != ''
|
;
|
||||||
|
|
||||||
|
CALL parts.p_core_clear_split( v_guid );
|
||||||
|
|
||||||
|
IF EXISTS (
|
||||||
|
SELECT *
|
||||||
|
FROM tmp_Split_Auth0_Id t_SPLIT_AUTH0
|
||||||
|
LEFT JOIN parts.DOG_User USER ON t_SPLIT_AUTH0.substring = USER.id_user_auth0
|
||||||
|
WHERE
|
||||||
|
ISNULL(t_SPLIT_AUTH0.substring)
|
||||||
|
OR ISNULL(USER.id_user_auth0)
|
||||||
|
OR USER.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('Invalid or inactive Auth0 User IDs: ', IFNULL(GROUP_CONCAT(t_SPLIT_AUTH0.substring SEPARATOR ', '), 'NULL'))
|
||||||
|
FROM tmp_Split_Auth0_Id t_SPLIT_AUTH0
|
||||||
|
LEFT JOIN parts.DOG_User USER ON t_SPLIT_AUTH0.substring = USER.id_user_auth0
|
||||||
|
WHERE
|
||||||
|
ISNULL(t_SPLIT_AUTH0.substring)
|
||||||
|
OR ISNULL(USER.id_user_auth0)
|
||||||
|
OR USER.active = 0
|
||||||
|
;
|
||||||
|
END IF;
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
-- User Names
|
||||||
|
IF v_has_filter_user_name = 1 THEN
|
||||||
|
CALL parts.p_core_split(v_guid, a_names_user, ',', FALSE);
|
||||||
|
|
||||||
|
SET sql_mode = '';
|
||||||
|
|
||||||
|
INSERT INTO tmp_Split_Name (
|
||||||
|
substring
|
||||||
|
)
|
||||||
|
SELECT
|
||||||
|
substring
|
||||||
|
FROM parts.CORE_Split_Temp
|
||||||
|
WHERE
|
||||||
|
GUID = v_guid
|
||||||
|
AND IFNULL(substring, '') != ''
|
||||||
;
|
;
|
||||||
|
|
||||||
CALL parts.p_core_clear_split( v_guid );
|
CALL parts.p_core_clear_split( v_guid );
|
||||||
END IF;
|
END IF;
|
||||||
|
|
||||||
IF (NOT EXISTS (SELECT * FROM tmp_Msg_Error LIMIT 1) AND v_has_filter_user_auth0 = 1) THEN
|
IF
|
||||||
IF EXISTS (
|
v_has_filter_user_id = 1
|
||||||
SELECT *
|
OR v_has_filter_user_auth0_id = 1
|
||||||
FROM tmp_Split t_S
|
THEN
|
||||||
LEFT JOIN parts.Shop_User U ON t_S.substring = U.id_user_auth0
|
INSERT INTO tmp_User (
|
||||||
WHERE
|
id_user
|
||||||
ISNULL(t_S.substring)
|
, does_meet_id_filters
|
||||||
OR ISNULL(U.id_user_auth0)
|
, does_meet_non_id_filters
|
||||||
) THEN
|
)
|
||||||
INSERT INTO tmp_Msg_Error (
|
WITH
|
||||||
-- guid,
|
User_Id_Filter AS (
|
||||||
id_type,
|
SELECT USER.id_user
|
||||||
code,
|
FROM tmp_Split_Id t_SPLIT_ID
|
||||||
msg
|
INNER JOIN parts.DOG_User USER ON t_SPLIT_ID.as_int = USER.id_user
|
||||||
)
|
)
|
||||||
SELECT
|
, User_Auth0_Id_Filter AS (
|
||||||
-- v_guid,
|
SELECT USER.id_user
|
||||||
v_id_type_error_bad_data,
|
FROM tmp_Split_Auth0_Id t_SPLIT_AUTH0
|
||||||
v_code_error_bad_data,
|
INNER JOIN parts.DOG_User USER ON t_SPLIT_AUTH0.substring = USER.id_user_auth0
|
||||||
CONCAT('Invalid or inactive Auth0 User IDs: ', IFNULL(GROUP_CONCAT(t_S.substring SEPARATOR ', '), 'NULL'))
|
)
|
||||||
FROM tmp_Split t_S
|
, User_Name_Filter AS (
|
||||||
LEFT JOIN parts.Shop_User U ON t_S.substring = U.id_user_auth0
|
SELECT USER.id_user
|
||||||
WHERE
|
FROM tmp_Split_Name t_SPLIT_NAME
|
||||||
ISNULL(t_S.substring)
|
INNER JOIN parts.DOG_User USER ON CONCAT(USER.firstname, ' ', USER.surname) LIKE CONCAT('%', t_SPLIT_NAME.substring, '%')
|
||||||
OR ISNULL(U.id_user_auth0)
|
WHERE IFNULL(t_SPLIT_NAME.substring, '') <> ''
|
||||||
;
|
)
|
||||||
ELSE
|
, User_Filters AS (
|
||||||
SET v_rank_max := IFNULL((SELECT rank_user FROM tmp_User ORDER BY rank_user DESC LIMIT 1), 0);
|
SELECT
|
||||||
|
USER_COMBINED.id_user
|
||||||
|
, MAX(USER_COMBINED.does_meet_id_filter) AS does_meet_id_filter
|
||||||
|
, MAX(USER_COMBINED.does_meet_auth0_id_filter) AS does_meet_auth0_id_filter
|
||||||
|
, MAX(USER_COMBINED.does_meet_name_filter) AS does_meet_name_filter
|
||||||
|
FROM (
|
||||||
|
SELECT
|
||||||
|
ID_FILTER.id_user
|
||||||
|
, 1 AS does_meet_id_filter
|
||||||
|
, 0 AS does_meet_auth0_id_filter
|
||||||
|
, 0 AS does_meet_name_filter
|
||||||
|
FROM User_Id_Filter ID_FILTER
|
||||||
|
UNION
|
||||||
|
SELECT
|
||||||
|
AUTH0_ID_FILTER.id_user
|
||||||
|
, 0 AS does_meet_id_filter
|
||||||
|
, 1 AS does_meet_auth0_id_filter
|
||||||
|
, 0 AS does_meet_name_filter
|
||||||
|
FROM User_Auth0_Id_Filter AUTH0_ID_FILTER
|
||||||
|
UNION
|
||||||
|
SELECT
|
||||||
|
NAME_FILTER.id_user
|
||||||
|
, 0 AS does_meet_id_filter
|
||||||
|
, 0 AS does_meet_auth0_id_filter
|
||||||
|
, 1 AS does_meet_name_filter
|
||||||
|
FROM User_Name_Filter NAME_FILTER
|
||||||
|
) USER_COMBINED
|
||||||
|
GROUP BY USER_COMBINED.id_user
|
||||||
|
)
|
||||||
|
SELECT
|
||||||
|
USER.id_user
|
||||||
|
, CASE WHEN
|
||||||
|
(
|
||||||
|
v_has_filter_user_id = 0
|
||||||
|
AND v_has_filter_user_auth0_id = 0
|
||||||
|
)
|
||||||
|
OR IFNULL(USER_FILTERS.does_meet_id_filter, 0) = 1
|
||||||
|
OR IFNULL(USER_FILTERS.does_meet_auth0_id_filter, 0) = 1
|
||||||
|
THEN 1 ELSE 0 END AS does_meet_id_filters
|
||||||
|
, CASE WHEN
|
||||||
|
(
|
||||||
|
v_has_filter_user_name = 0
|
||||||
|
)
|
||||||
|
OR IFNULL(USER_FILTERS.does_meet_name_filter, 0) = 1
|
||||||
|
THEN 1 ELSE 0 END AS does_meet_non_id_filters
|
||||||
|
FROM parts.DOG_User USER
|
||||||
|
LEFT JOIN User_Filters USER_FILTERS ON USER.id_user = USER_FILTERS.id_user
|
||||||
|
WHERE
|
||||||
|
(
|
||||||
|
a_get_all_user = 1
|
||||||
|
OR (
|
||||||
|
v_has_filter_user_id = 1
|
||||||
|
AND USER_FILTERS.does_meet_id_filter = 1
|
||||||
|
)
|
||||||
|
OR (
|
||||||
|
v_has_filter_user_auth0_id = 1
|
||||||
|
AND USER_FILTERS.does_meet_auth0_id_filter = 1
|
||||||
|
)
|
||||||
|
OR (
|
||||||
|
v_has_filter_user_id = 1
|
||||||
|
AND USER_FILTERS.does_meet_id_filter = 1
|
||||||
|
)
|
||||||
|
)
|
||||||
|
AND (
|
||||||
|
a_get_inactive_user = 1
|
||||||
|
OR USER.active = 1
|
||||||
|
)
|
||||||
|
;
|
||||||
|
END IF;
|
||||||
|
|
||||||
INSERT INTO tmp_User (
|
DELETE FROM tmp_Split_Id;
|
||||||
id_user
|
DELETE FROM tmp_Split_Auth0_Id;
|
||||||
, rank_user
|
DELETE FROM tmp_Split_Name;
|
||||||
)
|
|
||||||
SELECT
|
|
||||||
U.id_user
|
|
||||||
, v_rank_max + (RANK() OVER (ORDER BY U.id_user DESC)) AS rank_user
|
|
||||||
FROM tmp_Split t_S
|
|
||||||
RIGHT JOIN parts.Shop_User U ON t_S.substring = U.id_user_auth0
|
|
||||||
WHERE
|
|
||||||
(
|
|
||||||
a_get_all_user = 1
|
|
||||||
OR (
|
|
||||||
v_has_filter_user_auth0 = 1
|
|
||||||
AND NOT ISNULL(t_S.substring)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
AND (
|
|
||||||
a_get_inactive_user = 1
|
|
||||||
OR U.active = 1
|
|
||||||
)
|
|
||||||
;
|
|
||||||
END IF;
|
|
||||||
END IF;
|
|
||||||
|
|
||||||
IF a_debug = 1 THEN
|
IF a_debug = 1 THEN
|
||||||
|
SELECT 'After get all Users';
|
||||||
SELECT * FROM tmp_User;
|
SELECT * FROM tmp_User;
|
||||||
END IF;
|
END IF;
|
||||||
|
|
||||||
/*
|
-- Filter records
|
||||||
IF NOT EXISTS (SELECT * FROM tmp_Msg_Error LIMIT 1) THEN
|
IF NOT EXISTS (SELECT * FROM tmp_Msg_Error t_ERROR INNER JOIN parts.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type WHERE ERROR_TYPE.is_breaking_error = 1 LIMIT 1) THEN
|
||||||
IF a_get_first_user_only THEN
|
DELETE t_USER
|
||||||
DELETE t_U
|
FROM tmp_User t_USER
|
||||||
FROM tmp_User t_U
|
WHERE
|
||||||
WHERE t_U.rank_user > 1
|
(
|
||||||
;
|
a_require_all_id_search_filters_met = 1
|
||||||
END IF;
|
AND t_USER.does_meet_id_filters = 0
|
||||||
END IF;
|
)
|
||||||
*/
|
OR (
|
||||||
|
a_require_all_non_id_search_filters_met = 1
|
||||||
|
AND t_USER.does_meet_non_id_filters = 0
|
||||||
|
)
|
||||||
|
OR (
|
||||||
|
a_require_any_id_search_filters_met = 1
|
||||||
|
AND t_USER.does_meet_id_filters = 0
|
||||||
|
)
|
||||||
|
OR (
|
||||||
|
a_require_any_non_id_search_filters_met = 1
|
||||||
|
AND t_USER.does_meet_non_id_filters = 0
|
||||||
|
)
|
||||||
|
;
|
||||||
|
END IF;
|
||||||
|
|
||||||
IF a_debug = 1 THEN
|
IF a_debug = 1 THEN
|
||||||
|
SELECT 'After filter Users';
|
||||||
SELECT * FROM tmp_User;
|
SELECT * FROM tmp_User;
|
||||||
END IF;
|
END IF;
|
||||||
|
|
||||||
|
-- Calculated fields
|
||||||
-- Can admin dog
|
-- Can admin dog
|
||||||
IF NOT EXISTS (SELECT * FROM tmp_Msg_Error LIMIT 1) THEN
|
IF NOT EXISTS (SELECT * FROM tmp_Msg_Error t_ERROR INNER JOIN parts.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type WHERE ERROR_TYPE.is_breaking_error = 1 LIMIT 1) THEN
|
||||||
IF a_debug = 1 THEN
|
IF a_debug = 1 THEN
|
||||||
SELECT
|
SELECT
|
||||||
v_guid -- guid
|
v_guid -- guid
|
||||||
@@ -309,10 +456,10 @@ BEGIN
|
|||||||
, FALSE -- get_inactive_user
|
, FALSE -- get_inactive_user
|
||||||
, v_id_permission_dog_admin -- ids_permission
|
, v_id_permission_dog_admin -- ids_permission
|
||||||
, v_id_access_level_admin -- ids_access_level
|
, v_id_access_level_admin -- ids_access_level
|
||||||
, '' -- ids_product
|
, 0 -- a_show_errors
|
||||||
, 0 -- a_debug
|
, 0 -- a_debug
|
||||||
;
|
;
|
||||||
SELECT * FROM parts.Shop_Calc_User_Temp;
|
SELECT * FROM parts.DOG_Calc_User_Temp;
|
||||||
END IF;
|
END IF;
|
||||||
|
|
||||||
CALL parts.p_dog_calc_user(
|
CALL parts.p_dog_calc_user(
|
||||||
@@ -321,16 +468,16 @@ BEGIN
|
|||||||
, FALSE -- get_inactive_user
|
, FALSE -- get_inactive_user
|
||||||
, v_id_permission_dog_admin -- ids_permission
|
, v_id_permission_dog_admin -- ids_permission
|
||||||
, v_id_access_level_admin -- ids_access_level
|
, v_id_access_level_admin -- ids_access_level
|
||||||
, '' -- ids_product
|
, 0 -- a_show_errors
|
||||||
, 0 -- a_debug
|
, 0 -- a_debug
|
||||||
);
|
);
|
||||||
|
|
||||||
IF a_debug = 1 THEN
|
IF a_debug = 1 THEN
|
||||||
SELECT * FROM parts.Shop_Calc_User_Temp WHERE GUID = v_guid;
|
SELECT * FROM parts.DOG_Calc_User_Temp WHERE GUID = v_guid;
|
||||||
END IF;
|
END IF;
|
||||||
|
|
||||||
UPDATE tmp_User t_U
|
UPDATE tmp_User t_U
|
||||||
INNER JOIN parts.Shop_Calc_User_Temp CUT
|
INNER JOIN parts.DOG_Calc_User_Temp CUT
|
||||||
ON CUT.GUID = v_guid
|
ON CUT.GUID = v_guid
|
||||||
AND t_U.id_user = CUT.id_user
|
AND t_U.id_user = CUT.id_user
|
||||||
SET t_U.can_admin_dog = CUT.can_admin
|
SET t_U.can_admin_dog = CUT.can_admin
|
||||||
@@ -340,7 +487,7 @@ BEGIN
|
|||||||
END IF;
|
END IF;
|
||||||
|
|
||||||
-- Can admin user
|
-- Can admin user
|
||||||
IF NOT EXISTS (SELECT * FROM tmp_Msg_Error LIMIT 1) THEN
|
IF NOT EXISTS (SELECT * FROM tmp_Msg_Error t_ERROR INNER JOIN parts.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type WHERE ERROR_TYPE.is_breaking_error = 1 LIMIT 1) THEN
|
||||||
IF a_debug = 1 THEN
|
IF a_debug = 1 THEN
|
||||||
SELECT
|
SELECT
|
||||||
v_guid -- guid
|
v_guid -- guid
|
||||||
@@ -348,10 +495,10 @@ BEGIN
|
|||||||
, FALSE -- get_inactive_user
|
, FALSE -- get_inactive_user
|
||||||
, v_id_permission_user_admin -- ids_permission
|
, v_id_permission_user_admin -- ids_permission
|
||||||
, v_id_access_level_admin -- ids_access_level
|
, v_id_access_level_admin -- ids_access_level
|
||||||
, '' -- ids_product
|
, 0 -- a_show_errors
|
||||||
, 0 -- a_debug
|
, 0 -- a_debug
|
||||||
;
|
;
|
||||||
SELECT * FROM parts.Shop_Calc_User_Temp;
|
SELECT * FROM parts.DOG_Calc_User_Temp;
|
||||||
END IF;
|
END IF;
|
||||||
|
|
||||||
CALL parts.p_dog_calc_user(
|
CALL parts.p_dog_calc_user(
|
||||||
@@ -360,16 +507,16 @@ BEGIN
|
|||||||
, FALSE -- get_inactive_user
|
, FALSE -- get_inactive_user
|
||||||
, v_id_permission_user_admin -- ids_permission
|
, v_id_permission_user_admin -- ids_permission
|
||||||
, v_id_access_level_admin -- ids_access_level
|
, v_id_access_level_admin -- ids_access_level
|
||||||
, '' -- ids_product
|
, 0 -- a_show_errors
|
||||||
, 0 -- a_debug
|
, 0 -- a_debug
|
||||||
);
|
);
|
||||||
|
|
||||||
IF a_debug = 1 THEN
|
IF a_debug = 1 THEN
|
||||||
SELECT * FROM parts.Shop_Calc_User_Temp WHERE GUID = v_guid;
|
SELECT * FROM parts.DOG_Calc_User_Temp WHERE GUID = v_guid;
|
||||||
END IF;
|
END IF;
|
||||||
|
|
||||||
UPDATE tmp_User t_U
|
UPDATE tmp_User t_U
|
||||||
INNER JOIN parts.Shop_Calc_User_Temp CUT
|
INNER JOIN parts.DOG_Calc_User_Temp CUT
|
||||||
ON CUT.GUID = v_guid
|
ON CUT.GUID = v_guid
|
||||||
AND t_U.id_user = CUT.id_user
|
AND t_U.id_user = CUT.id_user
|
||||||
SET t_U.can_admin_user = CUT.can_admin
|
SET t_U.can_admin_user = CUT.can_admin
|
||||||
@@ -379,7 +526,7 @@ BEGIN
|
|||||||
END IF;
|
END IF;
|
||||||
|
|
||||||
-- Permissions
|
-- Permissions
|
||||||
IF NOT EXISTS (SELECT * FROM tmp_Msg_Error LIMIT 1) THEN
|
IF NOT EXISTS (SELECT * FROM tmp_Msg_Error t_ERROR INNER JOIN parts.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type WHERE ERROR_TYPE.is_breaking_error = 1 LIMIT 1) THEN
|
||||||
IF a_debug = 1 THEN
|
IF a_debug = 1 THEN
|
||||||
SELECT
|
SELECT
|
||||||
v_guid -- guid
|
v_guid -- guid
|
||||||
@@ -387,10 +534,10 @@ BEGIN
|
|||||||
, FALSE -- get_inactive_user
|
, FALSE -- get_inactive_user
|
||||||
, v_ids_permission_required -- ids_permission
|
, v_ids_permission_required -- ids_permission
|
||||||
, v_id_access_level_view -- ids_access_level
|
, v_id_access_level_view -- ids_access_level
|
||||||
, '' -- ids_product
|
, 0 -- a_show_errors
|
||||||
, 0 -- a_debug
|
, 0 -- a_debug
|
||||||
;
|
;
|
||||||
SELECT * FROM parts.Shop_Calc_User_Temp;
|
SELECT * FROM parts.DOG_Calc_User_Temp;
|
||||||
END IF;
|
END IF;
|
||||||
|
|
||||||
CALL parts.p_dog_calc_user(
|
CALL parts.p_dog_calc_user(
|
||||||
@@ -399,37 +546,33 @@ BEGIN
|
|||||||
, FALSE -- get_inactive_user
|
, FALSE -- get_inactive_user
|
||||||
, v_ids_permission_required -- ids_permission
|
, v_ids_permission_required -- ids_permission
|
||||||
, v_id_access_level_view -- ids_access_level
|
, v_id_access_level_view -- ids_access_level
|
||||||
, '' -- ids_product
|
, 0 -- a_show_errors
|
||||||
, 0 -- a_debug
|
, 0 -- a_debug
|
||||||
);
|
);
|
||||||
|
|
||||||
IF a_debug = 1 THEN
|
IF a_debug = 1 THEN
|
||||||
SELECT * FROM parts.Shop_Calc_User_Temp WHERE GUID = v_guid;
|
SELECT * FROM parts.DOG_Calc_User_Temp WHERE GUID = v_guid;
|
||||||
END IF;
|
END IF;
|
||||||
|
|
||||||
IF NOT EXISTS (
|
IF NOT EXISTS (
|
||||||
SELECT can_view
|
SELECT can_view
|
||||||
FROM parts.Shop_Calc_User_Temp CUT
|
FROM parts.DOG_Calc_User_Temp CUT
|
||||||
WHERE 1=1
|
WHERE
|
||||||
AND CUT.GUID = v_guid
|
CUT.GUID = v_guid
|
||||||
AND can_view = 1
|
AND can_view = 1
|
||||||
-- AND FIND_IN_SET(v_ids_permission_required, CUT.id_permission_required) > 0
|
|
||||||
) THEN
|
) THEN
|
||||||
INSERT INTO tmp_Msg_Error (
|
INSERT INTO tmp_Msg_Error (
|
||||||
id_type,
|
id_type
|
||||||
code,
|
, code
|
||||||
msg
|
, msg
|
||||||
)
|
)
|
||||||
VALUES (
|
VALUES (
|
||||||
v_id_type_error_bad_data,
|
v_id_type_error_bad_data
|
||||||
v_code_error_bad_data,
|
, v_code_type_error_bad_data
|
||||||
-- CONCAT('You do not have view permissions for ', (SELECT name FROM parts.Shop_Permission WHERE id_permission = v_id_permission_user LIMIT 1))
|
, CONCAT('You do not have view permissions for ', (SELECT name FROM parts.DOG_Permission P INNER JOIN parts.DOG_Calc_User_Temp CUT ON P.id_permission = CUT.id_permission_required WHERE GUID = v_guid AND IFNULL(can_view, 0) = 0 LIMIT 1))
|
||||||
-- CONCAT('You do not have view permissions for ', (SELECT GROUP_CONCAT(name SEPARATOR ', ') FROM parts.Shop_Permission WHERE FIND_IN_SET(v_id_permission_user, id_permission) > 0))
|
|
||||||
CONCAT('You do not have view permissions for ', (SELECT name FROM parts.Shop_Permission P INNER JOIN parts.Shop_Calc_User_Temp CUT ON P.id_permission = CUT.id_permission_required WHERE GUID = v_guid AND IFNULL(can_view, 0) = 0 LIMIT 1)) -- WHERE IFNULL(CUT.can_view, 0) = 0
|
|
||||||
)
|
)
|
||||||
;
|
;
|
||||||
ELSE
|
ELSE
|
||||||
-- INSERT INTO
|
|
||||||
SET a_debug := a_debug;
|
SET a_debug := a_debug;
|
||||||
END IF;
|
END IF;
|
||||||
|
|
||||||
@@ -437,6 +580,14 @@ BEGIN
|
|||||||
END IF;
|
END IF;
|
||||||
|
|
||||||
|
|
||||||
|
IF EXISTS(SELECT * FROM tmp_Msg_Error t_ERROR INNER JOIN parts.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type WHERE ERROR_TYPE.is_breaking_error = 1 LIMIT 1) THEN
|
||||||
|
IF a_debug = 1 THEN
|
||||||
|
SELECT * FROM tmp_Dog_Calc_Dog;
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
DELETE FROM tmp_Dog_Calc_Dog;
|
||||||
|
END IF;
|
||||||
|
|
||||||
-- Returns
|
-- Returns
|
||||||
/* NULL record required for flask sql_alchemy to detect result set */
|
/* NULL record required for flask sql_alchemy to detect result set */
|
||||||
IF EXISTS (SELECT * FROM tmp_Msg_Error) THEN
|
IF EXISTS (SELECT * FROM tmp_Msg_Error) THEN
|
||||||
@@ -447,48 +598,45 @@ BEGIN
|
|||||||
|
|
||||||
|
|
||||||
SELECT
|
SELECT
|
||||||
U.id_user
|
U.id_user
|
||||||
, U.id_user_auth0
|
, U.id_user_auth0
|
||||||
, U.firstname
|
, U.firstname
|
||||||
, U.surname
|
, U.surname
|
||||||
, U.email
|
, U.email
|
||||||
, U.is_email_verified
|
, U.is_email_verified
|
||||||
, U.id_currency_default
|
|
||||||
, U.id_region_default
|
|
||||||
, U.is_included_VAT_default
|
|
||||||
, U.is_super_user
|
, U.is_super_user
|
||||||
, t_U.can_admin_dog
|
, t_U.can_admin_dog
|
||||||
, t_U.can_admin_user
|
, t_U.can_admin_user
|
||||||
, v_is_new AS is_new
|
, v_is_new AS is_new
|
||||||
FROM tmp_User t_U
|
FROM tmp_User t_U
|
||||||
INNER JOIN parts.Shop_User U ON t_U.id_user = U.id_user
|
INNER JOIN parts.DOG_User U ON t_U.id_user = U.id_user
|
||||||
;
|
;
|
||||||
|
|
||||||
# Errors
|
# Errors
|
||||||
SELECT
|
SELECT
|
||||||
t_ME.display_order,
|
t_ERROR.id_error
|
||||||
MET.code,
|
, t_ERROR.id_type
|
||||||
t_ME.msg,
|
, t_ERROR.code
|
||||||
MET.name,
|
, ERROR_TYPE.name
|
||||||
MET.description
|
, ERROR_TYPE.description
|
||||||
FROM tmp_Msg_Error t_ME
|
, ERROR_TYPE.is_breaking_error
|
||||||
INNER JOIN parts.Shop_Msg_Error_Type MET
|
, ERROR_TYPE.background_colour
|
||||||
ON t_ME.id_type = MET.id_type
|
, 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
|
IF a_debug = 1 THEN
|
||||||
SELECT * FROM tmp_User;
|
SELECT * FROM tmp_User;
|
||||||
END IF;
|
END IF;
|
||||||
|
|
||||||
-- Clean up
|
-- Clean up
|
||||||
DROP TEMPORARY TABLE IF EXISTS tmp_User;
|
DROP TEMPORARY TABLE IF EXISTS tmp_Split_Name;
|
||||||
|
DROP TEMPORARY TABLE IF EXISTS tmp_Split_Auth0_Id;
|
||||||
|
DROP TEMPORARY TABLE IF EXISTS tmp_Split_Id;
|
||||||
DROP TEMPORARY TABLE IF EXISTS tmp_Msg_Error;
|
DROP TEMPORARY TABLE IF EXISTS tmp_Msg_Error;
|
||||||
|
DROP TEMPORARY TABLE IF EXISTS tmp_User;
|
||||||
/*
|
|
||||||
DELETE FROM parts.Shop_Calc_User_Temp
|
|
||||||
WHERE GUID = v_guid;
|
|
||||||
*/
|
|
||||||
|
|
||||||
IF a_debug = 1 THEN
|
IF a_debug = 1 THEN
|
||||||
CALL parts.p_debug_timing_reporting ( v_time_start );
|
CALL parts.p_debug_timing_reporting ( v_time_start );
|
||||||
@@ -518,13 +666,12 @@ CALL p_dog_get_many_user (
|
|||||||
, 'auth0|6582b95c895d09a70ba10fef' # a_ids_user_auth0
|
, 'auth0|6582b95c895d09a70ba10fef' # a_ids_user_auth0
|
||||||
, 0 -- a_debug
|
, 0 -- a_debug
|
||||||
);*/
|
);*/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
select * FROM parts.Shop_Calc_User_Temp;
|
select * FROM parts.DOG_Calc_User_Temp;
|
||||||
delete FROM parts.Shop_Calc_User_Temp;
|
delete FROM parts.DOG_Calc_User_Temp;
|
||||||
|
|
||||||
SELECT *
|
SELECT *
|
||||||
FROM parts.Shop_USER;
|
FROM parts.DOG_USER;
|
||||||
|
|
||||||
CALL p_dog_get_many_user(
|
CALL p_dog_get_many_user(
|
||||||
NULL -- :a_id_user,
|
NULL -- :a_id_user,
|
||||||
@@ -534,6 +681,12 @@ CALL p_dog_get_many_user(
|
|||||||
-- , 0 -- :a_get_first_user_only,
|
-- , 0 -- :a_get_first_user_only,
|
||||||
, NULL -- :a_ids_user,
|
, NULL -- :a_ids_user,
|
||||||
, 'auth0|6582b95c895d09a70ba10fef' -- :a_ids_user_auth0
|
, 'auth0|6582b95c895d09a70ba10fef' -- :a_ids_user_auth0
|
||||||
|
, '' -- a_names_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,
|
||||||
|
, 1 -- :a_require_any_non_id_search_filters_met,
|
||||||
|
, 0 -- a_debug
|
||||||
);
|
);
|
||||||
|
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -33,8 +33,8 @@ BEGIN
|
|||||||
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error (
|
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error (
|
||||||
display_order INT NOT NULL PRIMARY KEY AUTO_INCREMENT
|
display_order INT NOT NULL PRIMARY KEY AUTO_INCREMENT
|
||||||
, id_type INT NULL
|
, id_type INT NULL
|
||||||
, code VARCHAR(50) NOT NULL
|
, code VARCHAR(100) NOT NULL
|
||||||
, msg VARCHAR(4000) NOT NULL
|
, msg TEXT NOT NULL
|
||||||
);
|
);
|
||||||
INSERT INTO tmp_Msg_Error (
|
INSERT INTO tmp_Msg_Error (
|
||||||
id_type
|
id_type
|
||||||
@@ -81,8 +81,8 @@ BEGIN
|
|||||||
CREATE TABLE tmp_Msg_Error (
|
CREATE TABLE tmp_Msg_Error (
|
||||||
display_order INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
|
display_order INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
|
||||||
id_type INT NOT NULL,
|
id_type INT NOT NULL,
|
||||||
code VARCHAR(50) NOT NULL,
|
code VARCHAR(100) NOT NULL,
|
||||||
msg VARCHAR(4000) NOT NULL
|
msg TEXT NOT NULL
|
||||||
);
|
);
|
||||||
|
|
||||||
-- Get data from Temp table
|
-- Get data from Temp table
|
||||||
@@ -191,6 +191,29 @@ BEGIN
|
|||||||
, v_id_access_level_edit -- ID Access Level
|
, v_id_access_level_edit -- ID Access Level
|
||||||
, NULL -- IDs Product
|
, NULL -- IDs Product
|
||||||
);
|
);
|
||||||
|
-- replace with below
|
||||||
|
IF a_debug = 1 THEN
|
||||||
|
SELECT
|
||||||
|
v_guid -- guid
|
||||||
|
, a_id_user -- ids_user
|
||||||
|
, FALSE -- get_inactive_user
|
||||||
|
, v_id_permission_dog_admin -- ids_permission
|
||||||
|
, v_id_access_level_admin -- ids_access_level
|
||||||
|
, 0 -- a_show_errors
|
||||||
|
, 0 -- a_debug
|
||||||
|
;
|
||||||
|
SELECT * FROM parts.DOG_Calc_User_Temp;
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
CALL parts.p_dog_calc_user(
|
||||||
|
v_guid -- guid
|
||||||
|
, a_id_user -- ids_user
|
||||||
|
, FALSE -- get_inactive_user
|
||||||
|
, v_id_permission_dog_admin -- ids_permission
|
||||||
|
, v_id_access_level_admin -- ids_access_level
|
||||||
|
, 0 -- a_show_errors
|
||||||
|
, 0 -- a_debug
|
||||||
|
);
|
||||||
|
|
||||||
SET v_can_admin_user := (
|
SET v_can_admin_user := (
|
||||||
SELECT IFNULL(UE_T.can_edit, 0) = 1
|
SELECT IFNULL(UE_T.can_edit, 0) = 1
|
||||||
|
|||||||
@@ -1,142 +1,210 @@
|
|||||||
|
|
||||||
USE parts;
|
-- Clear previous proc
|
||||||
|
DROP PROCEDURE IF EXISTS p_dog_user_eval;
|
||||||
DROP PROCEDURE IF EXISTS parts.p_dog_user_eval;
|
DROP PROCEDURE IF EXISTS p_dog_calc_user;
|
||||||
DROP PROCEDURE IF EXISTS parts.p_dog_calc_user;
|
|
||||||
|
|
||||||
DELIMITER //
|
DELIMITER //
|
||||||
CREATE PROCEDURE parts.p_dog_calc_user (
|
CREATE PROCEDURE p_dog_calc_user (
|
||||||
IN a_guid BINARY(36)
|
IN a_guid BINARY(36)
|
||||||
, IN a_ids_user TEXT
|
, IN a_ids_user TEXT
|
||||||
, IN a_get_inactive_user BIT
|
, IN a_get_inactive_user BIT
|
||||||
, IN a_ids_permission VARCHAR(4000)
|
, IN a_ids_permission TEXT
|
||||||
|
, IN a_ids_access_level TEXT
|
||||||
|
, IN a_show_errors BIT
|
||||||
, IN a_debug BIT
|
, IN a_debug BIT
|
||||||
)
|
)
|
||||||
BEGIN
|
BEGIN
|
||||||
|
DECLARE v_code_type_error_bad_data VARCHAR(200);
|
||||||
|
DECLARE v_code_type_error_no_permission VARCHAR(200);
|
||||||
DECLARE v_has_filter_permission BIT;
|
DECLARE v_has_filter_permission BIT;
|
||||||
DECLARE v_has_filter_user BIT;
|
DECLARE v_has_filter_user BIT;
|
||||||
|
DECLARE v_has_filter_access_level BIT;
|
||||||
|
DECLARE v_id_access_level INT;
|
||||||
|
DECLARE v_id_access_level_view INT;
|
||||||
DECLARE v_id_permission INT;
|
DECLARE v_id_permission INT;
|
||||||
DECLARE v_time_start TIMESTAMP(6);
|
|
||||||
DECLARE v_ids_row_delete VARCHAR(500);
|
|
||||||
DECLARE v_code_type_error_bad_data VARCHAR(250);
|
|
||||||
DECLARE v_id_type_error_bad_data INT;
|
|
||||||
DECLARE v_code_type_error_no_permission VARCHAR(250);
|
|
||||||
DECLARE v_id_permission_required INT;
|
DECLARE v_id_permission_required INT;
|
||||||
DECLARE v_priority_access_level_required INT;
|
DECLARE v_id_type_error_bad_data INT;
|
||||||
|
DECLARE v_ids_row_delete VARCHAR(500);
|
||||||
DECLARE v_priority_access_level_view INT;
|
DECLARE v_priority_access_level_view INT;
|
||||||
|
DECLARE v_priority_access_level_edit INT;
|
||||||
|
DECLARE v_priority_access_level_admin INT;
|
||||||
|
DECLARE v_priority_access_level INT;
|
||||||
|
DECLARE v_time_start TIMESTAMP(6);
|
||||||
|
|
||||||
|
DECLARE exit handler for SQLEXCEPTION
|
||||||
|
BEGIN
|
||||||
|
GET DIAGNOSTICS CONDITION 1
|
||||||
|
@sqlstate = RETURNED_SQLSTATE
|
||||||
|
, @errno = MYSQL_ERRNO
|
||||||
|
, @text = MESSAGE_TEXT
|
||||||
|
;
|
||||||
|
|
||||||
|
ROLLBACK;
|
||||||
|
|
||||||
|
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error_Calc_User (
|
||||||
|
id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT
|
||||||
|
, id_type INT NULL
|
||||||
|
, code VARCHAR(100) NOT NULL
|
||||||
|
, msg TEXT NOT NULL
|
||||||
|
);
|
||||||
|
|
||||||
|
INSERT INTO tmp_Msg_Error_Calc_User (
|
||||||
|
id_type
|
||||||
|
, code
|
||||||
|
, msg
|
||||||
|
)
|
||||||
|
SELECT
|
||||||
|
MET.id_type
|
||||||
|
, @errno
|
||||||
|
, @text
|
||||||
|
FROM parts.CORE_Msg_Error_Type MET
|
||||||
|
WHERE MET.code = 'MYSQL_ERROR'
|
||||||
|
;
|
||||||
|
|
||||||
|
SELECT
|
||||||
|
t_ERROR.id_error
|
||||||
|
, t_ERROR.id_type
|
||||||
|
, t_ERROR.code
|
||||||
|
, ERROR_TYPE.name
|
||||||
|
, ERROR_TYPE.description
|
||||||
|
, ERROR_TYPE.is_breaking_error
|
||||||
|
, ERROR_TYPE.background_colour
|
||||||
|
, ERROR_TYPE.text_colour
|
||||||
|
, t_ERROR.msg
|
||||||
|
FROM tmp_Msg_Error_Calc_User t_ERROR
|
||||||
|
INNER JOIN parts.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type
|
||||||
|
;
|
||||||
|
|
||||||
|
DROP TABLE IF EXISTS tmp_Msg_Error_Calc_User;
|
||||||
|
END;
|
||||||
|
|
||||||
SET v_time_start := CURRENT_TIMESTAMP(6);
|
SET v_time_start := CURRENT_TIMESTAMP(6);
|
||||||
SET v_code_type_error_bad_data := (SELECT code FROM parts.CORE_Msg_Error_Type WHERE code = 'BAD_DATA' LIMIT 1);
|
SET v_code_type_error_bad_data := 'BAD_DATA';
|
||||||
SET v_id_type_error_bad_data := (SELECT id_type FROM parts.CORE_Msg_Error_Type WHERE code = v_code_type_error_bad_data LIMIT 1);
|
SET v_id_type_error_bad_data := (SELECT id_type FROM parts.CORE_Msg_Error_Type WHERE code = v_code_type_error_bad_data LIMIT 1);
|
||||||
SET v_code_type_error_no_permission := (SELECT code FROM parts.CORE_Msg_Error_Type WHERE code = 'NO_PERMISSION' LIMIT 1);
|
|
||||||
SET v_priority_access_level_view := (SELECT priority FROM parts.DOG_Access_Level WHERE code = 'VIEW' LIMIT 1);
|
|
||||||
|
|
||||||
CALL parts.p_core_validate_guid ( a_guid );
|
SET v_code_type_error_no_permission := (SELECT code FROM parts.CORE_Msg_Error_Type WHERE id_type = 2);
|
||||||
|
|
||||||
|
CALL parts.p_validate_guid ( a_guid );
|
||||||
SET a_ids_user := TRIM(IFNULL(a_ids_user, ''));
|
SET a_ids_user := TRIM(IFNULL(a_ids_user, ''));
|
||||||
SET a_get_inactive_user := IFNULL(a_get_inactive_user, 0);
|
SET a_get_inactive_user := IFNULL(a_get_inactive_user, 0);
|
||||||
SET a_ids_permission := TRIM(IFNULL(a_ids_permission, ''));
|
SET a_ids_permission := TRIM(IFNULL(a_ids_permission, ''));
|
||||||
|
SET a_ids_access_level := TRIM(IFNULL(a_ids_access_level, ''));
|
||||||
|
SET a_show_errors := IFNULL(a_show_errors, 0);
|
||||||
SET a_debug := IFNULL(a_debug, 0);
|
SET a_debug := IFNULL(a_debug, 0);
|
||||||
|
|
||||||
IF a_debug = 1 THEN
|
IF a_debug = 1 THEN
|
||||||
SELECT 'Arguments';
|
|
||||||
SELECT
|
SELECT
|
||||||
a_guid
|
a_guid
|
||||||
, a_ids_user
|
, a_ids_user
|
||||||
, a_get_inactive_user
|
, a_get_inactive_user
|
||||||
, a_ids_permission
|
, a_ids_permission
|
||||||
|
, a_ids_access_level
|
||||||
|
, a_show_errors
|
||||||
, a_debug
|
, a_debug
|
||||||
;
|
;
|
||||||
SELECT 'Derived variables';
|
|
||||||
SELECT
|
|
||||||
v_code_type_error_bad_data
|
|
||||||
, v_code_type_error_no_permission
|
|
||||||
, v_id_type_error_bad_data
|
|
||||||
, v_priority_access_level_view
|
|
||||||
, v_time_start
|
|
||||||
;
|
|
||||||
END IF;
|
END IF;
|
||||||
|
|
||||||
DROP TABLE IF EXISTS tmp_Calc_User;
|
-- Clear previous proc results
|
||||||
DROP TABLE IF EXISTS tmp_User_Calc_User;
|
|
||||||
DROP TABLE IF EXISTS tmp_Split_Calc_User;
|
DROP TABLE IF EXISTS tmp_Split_Calc_User;
|
||||||
|
DROP TABLE IF EXISTS tmp_Msg_Error_Calc_User;
|
||||||
|
DROP TABLE IF EXISTS tmp_User_Calc_User;
|
||||||
|
DROP TABLE IF EXISTS tmp_Calc_User;
|
||||||
|
|
||||||
|
-- Permanent Table
|
||||||
CREATE TEMPORARY TABLE tmp_Calc_User (
|
CREATE TEMPORARY TABLE tmp_Calc_User (
|
||||||
id_row INT PRIMARY KEY AUTO_INCREMENT NOT NULL
|
id_row INT PRIMARY KEY AUTO_INCREMENT NOT NULL
|
||||||
, id_user INT NULL
|
, id_user INT
|
||||||
, id_permission_required INT NOT NULL
|
, id_permission_required INT NOT NULL
|
||||||
, priority_access_level_required INT NOT NULL
|
, priority_access_level_required INT NOT NULL
|
||||||
, is_super_user BIT NULL
|
, is_super_user BIT
|
||||||
, priority_access_level_user INT NULL
|
, priority_access_level_user INT
|
||||||
, has_access BIT
|
, can_view BIT
|
||||||
|
, can_edit BIT
|
||||||
|
, can_admin BIT
|
||||||
);
|
);
|
||||||
|
|
||||||
CREATE TEMPORARY TABLE tmp_User_Calc_User (
|
CREATE TEMPORARY TABLE tmp_User_Calc_User (
|
||||||
id_user INT NOT NULL
|
id_user INT NOT NULL
|
||||||
, is_super_user BIT NOT NULL
|
, is_super_user BIT NOT NULL
|
||||||
-- , id_access_level INT
|
|
||||||
, priority_access_level INT NOT NULL
|
, priority_access_level INT NOT NULL
|
||||||
);
|
);
|
||||||
|
|
||||||
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error_Calc_User (
|
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error_Calc_User (
|
||||||
display_order INT NOT NULL PRIMARY KEY AUTO_INCREMENT
|
id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT
|
||||||
, id_type INT NULL
|
, id_type INT NULL
|
||||||
, code VARCHAR(100) NOT NULL
|
, code VARCHAR(100) NOT NULL
|
||||||
, msg VARCHAR(4000) NOT NULL
|
, msg TEXT NOT NULL
|
||||||
);
|
);
|
||||||
|
|
||||||
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Split_Calc_User (
|
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Split_Calc_User (
|
||||||
substring VARCHAR(4000) NOT NULL
|
substring VARCHAR(4000) NOT NULL
|
||||||
, as_int INT NULL
|
, as_int INT NULL
|
||||||
);
|
);
|
||||||
DELETE FROM tmp_Split_Calc_User;
|
DELETE FROM tmp_Split_Calc_User;
|
||||||
|
|
||||||
SET v_has_filter_user = CASE WHEN a_ids_user = '' THEN 0 ELSE 1 END;
|
SET v_has_filter_user = CASE WHEN a_ids_user = '' THEN 0 ELSE 1 END;
|
||||||
SET a_ids_permission = REPLACE(a_ids_permission, '|', ',');
|
|
||||||
SET v_has_filter_permission = CASE WHEN a_ids_permission = '' THEN 0 ELSE 1 END;
|
SET v_has_filter_permission = CASE WHEN a_ids_permission = '' THEN 0 ELSE 1 END;
|
||||||
-- SET v_id_access_level_view = (SELECT id_access_level FROM parts.DOG_Access_Level WHERE code = 'VIEW' LIMIT 1);
|
SET v_has_filter_access_level = CASE WHEN a_ids_access_level = '' THEN 0 ELSE 1 END;
|
||||||
|
SET v_id_access_level_view = (SELECT id_access_level FROM parts.DOG_Access_Level WHERE code = 'VIEW' LIMIT 1);
|
||||||
|
SET v_priority_access_level_view = (SELECT priority FROM parts.DOG_Access_Level WHERE id_access_level = v_id_access_level_view);
|
||||||
|
SET v_priority_access_level_edit = (SELECT priority FROM parts.DOG_Access_Level WHERE code = 'EDIT' LIMIT 1);
|
||||||
|
SET v_priority_access_level_admin = (SELECT priority FROM parts.DOG_Access_Level WHERE code = 'ADMIN' LIMIT 1);
|
||||||
|
|
||||||
|
IF a_debug = 1 THEN
|
||||||
|
SELECT
|
||||||
|
v_priority_access_level_view
|
||||||
|
, v_priority_access_level_edit
|
||||||
|
, v_priority_access_level_admin
|
||||||
|
;
|
||||||
|
END IF;
|
||||||
|
|
||||||
-- Permission IDs
|
# Access levels
|
||||||
IF NOT v_has_filter_permission THEN
|
IF v_has_filter_access_level = 1 THEN
|
||||||
INSERT INTO tmp_Msg_Error_Calc_User (
|
IF a_debug = 1 THEN
|
||||||
id_type
|
SELECT
|
||||||
, code
|
'p_core_split'
|
||||||
, msg
|
, a_guid
|
||||||
)
|
, a_ids_access_level
|
||||||
SELECT
|
, ','
|
||||||
v_id_type_error_bad_data
|
, a_debug
|
||||||
, v_code_type_error_bad_data
|
;
|
||||||
, 'Permission ID required.'
|
END IF;
|
||||||
;
|
|
||||||
ELSE
|
|
||||||
CALL parts.p_core_split(a_guid, a_ids_permission, ',', a_debug);
|
|
||||||
|
|
||||||
|
CALL parts.p_core_clear_split( a_guid );
|
||||||
|
CALL parts.p_core_split(a_guid, a_ids_access_level, ',', a_debug);
|
||||||
|
|
||||||
|
DELETE FROM tmp_Split_Calc_User;
|
||||||
INSERT INTO tmp_Split_Calc_User (
|
INSERT INTO tmp_Split_Calc_User (
|
||||||
substring
|
substring
|
||||||
, as_int
|
, as_int
|
||||||
)
|
)
|
||||||
SELECT
|
SELECT
|
||||||
substring
|
SPLIT_T.substring
|
||||||
, CONVERT(substring, DECIMAL(10,0)) AS as_int
|
, CONVERT(SPLIT_T.substring, DECIMAL(10,0)) -- AS as_int
|
||||||
FROM parts.CORE_Split_Temp
|
FROM parts.CORE_Split_Temp SPLIT_T
|
||||||
WHERE
|
WHERE
|
||||||
GUID = a_guid
|
GUID = a_guid
|
||||||
AND NOT ISNULL(substring)
|
AND IFNULL(SPLIT_T.substring, '') != ''
|
||||||
AND substring != ''
|
|
||||||
;
|
;
|
||||||
|
|
||||||
|
IF a_debug = 1 THEN
|
||||||
|
SELECT 'Access Levels split', a_ids_access_level;
|
||||||
|
SELECT *
|
||||||
|
FROM tmp_Split_Calc_User;
|
||||||
|
END IF;
|
||||||
|
|
||||||
CALL parts.p_core_clear_split( a_guid );
|
CALL parts.p_core_clear_split( a_guid );
|
||||||
|
|
||||||
-- Invalid or inactive
|
# Invalid IDs
|
||||||
IF EXISTS (
|
IF EXISTS (
|
||||||
SELECT PERM.id_permission
|
SELECT t_SPLIT.substring
|
||||||
FROM tmp_Split_Calc_User t_S
|
FROM tmp_Split_Calc_User t_SPLIT
|
||||||
LEFT JOIN parts.DOG_Permission PERM ON t_S.as_int = PERM.id_permission
|
LEFT JOIN parts.DOG_Access_Level ACCESS_LEVEL ON t_SPLIT.as_int = ACCESS_LEVEL.id_access_level
|
||||||
WHERE
|
WHERE
|
||||||
ISNULL(t_S.as_int)
|
ISNULL(t_SPLIT.as_int)
|
||||||
OR ISNULL(PERM.id_permission)
|
OR ISNULL(ACCESS_LEVEL.id_access_level)
|
||||||
OR PERM.active = 0
|
OR ACCESS_LEVEL.active = 0
|
||||||
) THEN
|
) THEN
|
||||||
INSERT INTO tmp_Msg_Error_Calc_User (
|
INSERT INTO tmp_Msg_Error_Calc_User (
|
||||||
id_type
|
id_type
|
||||||
, code
|
, code
|
||||||
@@ -145,69 +213,141 @@ BEGIN
|
|||||||
SELECT
|
SELECT
|
||||||
v_id_type_error_bad_data
|
v_id_type_error_bad_data
|
||||||
, v_code_type_error_bad_data
|
, v_code_type_error_bad_data
|
||||||
, CONCAT('Invalid or inactive permission IDs: ', IFNULL(GROUP_CONCAT(t_S.substring SEPARATOR ', '), 'NULL'))
|
, CONCAT('Invalid or inactive access level IDs: ', GROUP_CONCAT(t_SPLIT.substring SEPARATOR ','))
|
||||||
FROM tmp_Split_Calc_User t_S
|
FROM tmp_Split_Calc_User t_SPLIT
|
||||||
LEFT JOIN parts.DOG_Permission PERM ON t_S.as_int = PERM.id_permission
|
LEFT JOIN parts.DOG_Access_Level ACCESS_LEVEL ON t_SPLIT.as_int = ACCESS_LEVEL.id_access_level
|
||||||
WHERE
|
WHERE
|
||||||
ISNULL(t_S.as_int)
|
ISNULL(t_SPLIT.as_int)
|
||||||
OR ISNULL(PERM.id_permission)
|
OR ISNULL(ACCESS_LEVEL.id_access_level)
|
||||||
OR PERM.active = 0
|
OR ACCESS_LEVEL.active = 0
|
||||||
|
;
|
||||||
|
|
||||||
|
SET v_has_filter_access_level = 0;
|
||||||
|
ELSE
|
||||||
|
SET v_id_access_level := (
|
||||||
|
SELECT ACCESS_LEVEL.id_access_level
|
||||||
|
FROM tmp_Split_Calc_User t_SPLIT
|
||||||
|
INNER JOIN parts.DOG_Access_Level ACCESS_LEVEL
|
||||||
|
ON t_SPLIT.as_int = ACCESS_LEVEL.id_access_level
|
||||||
|
AND ACCESS_LEVEL.active = 1
|
||||||
|
ORDER BY ACCESS_LEVEL.priority ASC
|
||||||
|
LIMIT 1
|
||||||
|
);
|
||||||
|
END IF;
|
||||||
|
END IF;
|
||||||
|
DELETE FROM tmp_Split_Calc_User;
|
||||||
|
|
||||||
|
IF ISNULL(v_id_access_level) THEN
|
||||||
|
SET v_id_access_level = v_id_access_level_view;
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
SET v_priority_access_level := (SELECT priority FROM parts.DOG_Access_Level WHERE id_access_level = v_id_access_level LIMIT 1);
|
||||||
|
|
||||||
|
-- Permission IDs
|
||||||
|
IF v_has_filter_permission = 1 THEN
|
||||||
|
CALL parts.p_core_clear_split( a_guid );
|
||||||
|
CALL parts.p_core_split(a_guid, a_ids_permission, ',', a_debug);
|
||||||
|
|
||||||
|
DELETE FROM tmp_Split_Calc_User;
|
||||||
|
INSERT INTO tmp_Split_Calc_User (
|
||||||
|
substring
|
||||||
|
, as_int
|
||||||
|
)
|
||||||
|
SELECT
|
||||||
|
SPLIT_T.substring
|
||||||
|
, CONVERT(SPLIT_T.substring, DECIMAL(10,0)) AS as_int
|
||||||
|
FROM parts.CORE_Split_Temp SPLIT_T
|
||||||
|
WHERE
|
||||||
|
GUID = a_guid
|
||||||
|
AND IFNULL(SPLIT_T.substring, '') != ''
|
||||||
|
;
|
||||||
|
|
||||||
|
IF a_debug = 1 THEN
|
||||||
|
SELECT 'Permissions split', a_ids_permission;
|
||||||
|
SELECT *
|
||||||
|
FROM tmp_Split_Calc_User;
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
CALL parts.p_core_clear_split( a_guid );
|
||||||
|
|
||||||
|
# Invalid or inactive
|
||||||
|
IF EXISTS (SELECT PERMISSION.id_permission FROM tmp_Split_Calc_User t_SPLIT LEFT JOIN parts.DOG_Permission PERMISSION ON t_SPLIT.as_int = PERMISSION.id_permission WHERE ISNULL(t_SPLIT.as_int) OR ISNULL(PERMISSION.id_permission) OR PERMISSION.active = 0) THEN
|
||||||
|
INSERT INTO tmp_Msg_Error_Calc_User (
|
||||||
|
id_type
|
||||||
|
, code
|
||||||
|
, msg
|
||||||
|
)
|
||||||
|
SELECT
|
||||||
|
v_id_type_error_bad_data
|
||||||
|
, v_code_type_error_bad_data
|
||||||
|
, CONCAT('Invalid or inactive permission IDs: ', IFNULL(GROUP_CONCAT(t_SPLIT.substring SEPARATOR ','), 'NULL'))
|
||||||
|
FROM tmp_Split_Calc_User t_SPLIT
|
||||||
|
LEFT JOIN parts.DOG_Permission PERMISSION ON t_SPLIT.as_int = PERMISSION.id_permission
|
||||||
|
WHERE
|
||||||
|
ISNULL(t_SPLIT.as_int)
|
||||||
|
OR ISNULL(PERMISSION.id_permission)
|
||||||
|
OR PERMISSION.active = 0
|
||||||
;
|
;
|
||||||
ELSE
|
ELSE
|
||||||
SELECT
|
SET v_id_permission_required := (
|
||||||
PERM.id_permission
|
SELECT PERMISSION.id_permission
|
||||||
, PERM.id_access_level_required
|
FROM tmp_Split_Calc_User t_SPLIT
|
||||||
INTO
|
INNER JOIN parts.DOG_Permission PERMISSION ON t_SPLIT.as_int = PERMISSION.id_permission
|
||||||
v_id_permission_required
|
INNER JOIN parts.DOG_Access_Level ACCESS_LEVEL ON PERMISSION.id_access_level_required = ACCESS_LEVEL.id_access_level
|
||||||
, v_priority_access_level_required
|
ORDER BY ACCESS_LEVEL.priority ASC
|
||||||
FROM tmp_Split_Calc_User t_S
|
LIMIT 1
|
||||||
LEFT JOIN parts.DOG_Permission PERM ON t_S.as_int = PERM.id_permission
|
);
|
||||||
INNER JOIN parts.DOG_Access_Level AL ON PERM.id_access_level_required = AL.id_access_level
|
|
||||||
ORDER BY AL.priority ASC
|
|
||||||
LIMIT 1
|
|
||||||
;
|
|
||||||
|
|
||||||
IF ISNULL(v_id_permission_required) THEN
|
|
||||||
INSERT INTO tmp_Msg_Error_Calc_User (
|
|
||||||
id_type
|
|
||||||
, code
|
|
||||||
, msg
|
|
||||||
)
|
|
||||||
SELECT
|
|
||||||
v_id_type_error_bad_data
|
|
||||||
, v_code_type_error_bad_data
|
|
||||||
, 'Valid Permission ID required.'
|
|
||||||
;
|
|
||||||
END IF;
|
|
||||||
END IF;
|
END IF;
|
||||||
END IF;
|
END IF;
|
||||||
DELETE FROM tmp_Split_Calc_User;
|
DELETE FROM tmp_Split_Calc_User;
|
||||||
|
|
||||||
IF a_debug = 1 THEN
|
# Users
|
||||||
SELECT v_id_permission_required;
|
CALL parts.p_core_clear_split( a_guid );
|
||||||
END IF;
|
|
||||||
|
|
||||||
-- Users
|
|
||||||
CALL parts.p_core_split(a_guid, a_ids_user, ',', a_debug);
|
CALL parts.p_core_split(a_guid, a_ids_user, ',', a_debug);
|
||||||
|
|
||||||
|
DELETE FROM tmp_Split_Calc_User;
|
||||||
INSERT INTO tmp_Split_Calc_User (
|
INSERT INTO tmp_Split_Calc_User (
|
||||||
substring
|
substring
|
||||||
, as_int
|
, as_int
|
||||||
)
|
)
|
||||||
SELECT
|
SELECT
|
||||||
substring
|
substring
|
||||||
, CONVERT(substring, DECIMAL(10,0)) AS as_int
|
, CONVERT(substring, DECIMAL(10,0)) AS as_int
|
||||||
FROM parts.CORE_Split_Temp
|
FROM parts.CORE_Split_Temp
|
||||||
WHERE
|
WHERE
|
||||||
GUID = a_guid
|
GUID = a_guid
|
||||||
AND NOT ISNULL(substring)
|
AND NOT ISNULL(substring)
|
||||||
AND substring != ''
|
AND substring != ''
|
||||||
;
|
;
|
||||||
|
|
||||||
|
IF a_debug = 1 THEN
|
||||||
|
SELECT 'Users split', a_ids_user;
|
||||||
|
SELECT *
|
||||||
|
FROM tmp_Split_Calc_User;
|
||||||
|
END IF;
|
||||||
|
|
||||||
CALL parts.p_core_clear_split( a_guid );
|
CALL parts.p_core_clear_split( a_guid );
|
||||||
|
|
||||||
-- Invalid or inactive
|
IF a_debug = 1 THEN
|
||||||
IF EXISTS (SELECT U.id_user FROM tmp_Split_Calc_User t_S LEFT JOIN parts.DOG_User U ON t_S.as_int = U.id_user WHERE ISNULL(t_S.as_int) OR ISNULL(U.id_user) OR (a_get_inactive_user = 0 AND U.active = 0)) THEN
|
SELECT v_id_permission_required, v_id_access_level, v_priority_access_level;
|
||||||
|
SELECT * FROM tmp_User_Calc_User;
|
||||||
|
SELECT * FROM tmp_Msg_Error_Calc_User;
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
# Invalid or inactive
|
||||||
|
IF EXISTS (
|
||||||
|
SELECT USER.id_user
|
||||||
|
FROM tmp_Split_Calc_User t_SPLIT
|
||||||
|
LEFT JOIN parts.DOG_User USER ON t_SPLIT.as_int = USER.id_user
|
||||||
|
WHERE
|
||||||
|
ISNULL(t_SPLIT.as_int)
|
||||||
|
OR ISNULL(USER.id_user)
|
||||||
|
OR (
|
||||||
|
a_get_inactive_user = 0
|
||||||
|
AND USER.active = 0
|
||||||
|
)
|
||||||
|
)
|
||||||
|
THEN
|
||||||
INSERT INTO tmp_Msg_Error_Calc_User (
|
INSERT INTO tmp_Msg_Error_Calc_User (
|
||||||
id_type
|
id_type
|
||||||
, code
|
, code
|
||||||
@@ -216,88 +356,72 @@ BEGIN
|
|||||||
SELECT
|
SELECT
|
||||||
v_id_type_error_bad_data
|
v_id_type_error_bad_data
|
||||||
, v_code_type_error_bad_data
|
, v_code_type_error_bad_data
|
||||||
, CONCAT('Invalid or inactive user IDs: ', IFNULL(GROUP_CONCAT(t_S.substring SEPARATOR ', '), 'NULL'))
|
, CONCAT('Invalid or inactive user IDs: ', IFNULL(GROUP_CONCAT(t_SPLIT.substring SEPARATOR ','), 'NULL'))
|
||||||
FROM tmp_Split_Calc_User t_S
|
FROM tmp_Split_Calc_User t_SPLIT
|
||||||
LEFT JOIN parts.DOG_User U ON t_S.as_int = U.id_user
|
LEFT JOIN parts.DOG_User USER ON t_SPLIT.as_int = USER.id_user
|
||||||
WHERE
|
WHERE
|
||||||
ISNULL(t_S.as_int)
|
ISNULL(t_SPLIT.as_int)
|
||||||
OR ISNULL(U.id_user)
|
OR ISNULL(USER.id_user)
|
||||||
OR (
|
OR (
|
||||||
a_get_inactive_user = 0
|
a_get_inactive_user = 0
|
||||||
AND U.active = 0
|
AND USER.active = 0
|
||||||
)
|
)
|
||||||
;
|
;
|
||||||
ELSE
|
ELSE
|
||||||
IF NOT EXISTS (SELECT * FROM tmp_Split_Calc_User) THEN
|
IF NOT EXISTS (SELECT * FROM tmp_Split_Calc_User) THEN
|
||||||
INSERT INTO tmp_Split_Calc_User (substring, as_int)
|
INSERT INTO tmp_Split_Calc_User ( substring, as_int )
|
||||||
VALUES ( '', NULL );
|
VALUES ( '', NULL );
|
||||||
END IF;
|
END IF;
|
||||||
|
|
||||||
IF a_debug = 1 THEN
|
|
||||||
SELECT *
|
|
||||||
FROM tmp_Split_Calc_User;
|
|
||||||
END IF;
|
|
||||||
|
|
||||||
INSERT INTO tmp_User_Calc_User (
|
INSERT INTO tmp_User_Calc_User (
|
||||||
id_user
|
id_user
|
||||||
, is_super_user
|
, is_super_user
|
||||||
, priority_access_level
|
, priority_access_level
|
||||||
)
|
)
|
||||||
SELECT
|
SELECT
|
||||||
U.id_user
|
USER.id_user
|
||||||
, IFNULL(U.is_super_user, 0) AS is_super_user
|
, IFNULL(USER.is_super_user, 0) AS is_super_user
|
||||||
, IFNULL(MIN(AL_U.priority), v_priority_access_level_view) AS priority_access_level
|
, IFNULL(MIN(ACCESS_LEVEL.priority), v_priority_access_level_view) AS priority_access_level
|
||||||
FROM tmp_Split_Calc_User t_S
|
FROM tmp_Split_Calc_User t_SPLIT
|
||||||
INNER JOIN parts.DOG_User U ON t_S.as_int = U.id_user
|
INNER JOIN parts.DOG_User USER ON t_SPLIT.as_int = USER.id_user
|
||||||
LEFT JOIN parts.DOG_User_Role_Link URL
|
LEFT JOIN parts.DOG_User_Role_Link USER_ROLE_LINK
|
||||||
ON U.id_user = URL.id_user
|
ON USER.id_user = USER_ROLE_LINK.id_user
|
||||||
AND URL.active
|
AND USER_ROLE_LINK.active
|
||||||
LEFT JOIN parts.DOG_Role_Permission_Link RPL
|
LEFT JOIN parts.DOG_Role_Permission_Link ROLE_PERMISSION_LINK
|
||||||
ON URL.id_role = RPL.id_role
|
ON USER_ROLE_LINK.id_role = ROLE_PERMISSION_LINK.id_role
|
||||||
AND RPL.active
|
AND ROLE_PERMISSION_LINK.active
|
||||||
LEFT JOIN parts.DOG_Access_Level AL_U
|
LEFT JOIN parts.DOG_Access_Level ACCESS_LEVEL
|
||||||
ON RPL.id_access_level = AL_U.id_access_level
|
ON ROLE_PERMISSION_LINK.id_access_level = ACCESS_LEVEL.id_access_level
|
||||||
AND AL_U.active
|
AND ACCESS_LEVEL.active
|
||||||
GROUP BY U.id_user
|
GROUP BY USER.id_user
|
||||||
;
|
;
|
||||||
|
|
||||||
IF a_debug = 1 THEN
|
|
||||||
SELECT
|
|
||||||
t_UCU.id_user
|
|
||||||
, v_id_permission_required
|
|
||||||
, v_priority_access_level_required
|
|
||||||
, t_UCU.priority_access_level AS priority_access_level_user
|
|
||||||
, t_UCU.is_super_user AS is_super_user
|
|
||||||
FROM tmp_User_Calc_User t_UCU
|
|
||||||
;
|
|
||||||
END IF;
|
|
||||||
|
|
||||||
INSERT INTO tmp_Calc_User (
|
INSERT INTO tmp_Calc_User (
|
||||||
id_user
|
id_user
|
||||||
, id_permission_required
|
, id_permission_required
|
||||||
, priority_access_level_required
|
, priority_access_level_required
|
||||||
, priority_access_level_user
|
, priority_access_level_user
|
||||||
, is_super_user
|
, is_super_user
|
||||||
)
|
)
|
||||||
SELECT
|
SELECT
|
||||||
t_UCU.id_user
|
t_USER.id_user
|
||||||
, v_id_permission_required
|
, v_id_permission_required
|
||||||
, v_priority_access_level_required
|
, v_priority_access_level AS priority_access_level_required
|
||||||
, t_UCU.priority_access_level AS priority_access_level_user
|
, t_USER.is_super_user AS is_super_user
|
||||||
, t_UCU.is_super_user AS is_super_user
|
, t_USER.priority_access_level AS priority_access_level_user
|
||||||
FROM tmp_User_Calc_User t_UCU
|
FROM tmp_User_Calc_User t_USER
|
||||||
;
|
;
|
||||||
|
|
||||||
|
# SET v_has_filter_user = EXISTS ( SELECT * FROM tmp_User_Calc_User LIMIT 1 );
|
||||||
END IF;
|
END IF;
|
||||||
DELETE FROM tmp_Split_Calc_User;
|
DELETE FROM tmp_Split_Calc_User;
|
||||||
|
|
||||||
|
|
||||||
-- Calculated fields
|
-- Calculated fields
|
||||||
UPDATE tmp_Calc_User t_CU
|
UPDATE tmp_Calc_User t_CALC_USER
|
||||||
SET
|
SET
|
||||||
t_CU.has_access = (
|
t_CALC_USER.can_view = t_CALC_USER.is_super_user = 1 OR (t_CALC_USER.priority_access_level_user <= v_priority_access_level_view AND t_CALC_USER.priority_access_level_user <= t_CALC_USER.priority_access_level_required)
|
||||||
(t_CU.is_super_user = 1)
|
, t_CALC_USER.can_edit = t_CALC_USER.is_super_user = 1 OR (t_CALC_USER.priority_access_level_user <= v_priority_access_level_edit AND t_CALC_USER.priority_access_level_user <= t_CALC_USER.priority_access_level_required)
|
||||||
OR (t_CU.priority_access_level_user <= t_CU.priority_access_level_required)
|
, t_CALC_USER.can_admin = t_CALC_USER.is_super_user = 1 OR (t_CALC_USER.priority_access_level_user <= v_priority_access_level_admin AND t_CALC_USER.priority_access_level_user <= t_CALC_USER.priority_access_level_required)
|
||||||
)
|
|
||||||
;
|
;
|
||||||
|
|
||||||
-- Export data to staging table
|
-- Export data to staging table
|
||||||
@@ -308,23 +432,46 @@ BEGIN
|
|||||||
, id_user
|
, id_user
|
||||||
, id_permission_required
|
, id_permission_required
|
||||||
, priority_access_level_required
|
, priority_access_level_required
|
||||||
, priority_access_level_user
|
|
||||||
, is_super_user
|
, is_super_user
|
||||||
, has_access
|
, priority_access_level_user
|
||||||
|
, has_access
|
||||||
|
, can_view
|
||||||
|
, can_edit
|
||||||
|
, can_admin
|
||||||
)
|
)
|
||||||
SELECT
|
SELECT
|
||||||
a_guid
|
a_guid
|
||||||
, t_CU.id_user
|
, t_CALC_USER.id_user
|
||||||
, t_CU.id_permission_required
|
, t_CALC_USER.id_permission_required
|
||||||
, t_CU.priority_access_level_required
|
, t_CALC_USER.priority_access_level_required
|
||||||
, t_CU.priority_access_level_user
|
, t_CALC_USER.is_super_user
|
||||||
, t_CU.is_super_user
|
, t_CALC_USER.priority_access_level_user
|
||||||
, t_CU.has_access
|
, CASE WHEN t_CALC_USER.priority_access_level_user <= t_CALC_USER.priority_access_level_required THEN 1 ELSE 0 END AS has_access
|
||||||
FROM tmp_Calc_User t_CU
|
, t_CALC_USER.can_view
|
||||||
|
, t_CALC_USER.can_edit
|
||||||
|
, t_CALC_USER.can_admin
|
||||||
|
FROM tmp_Calc_User t_CALC_USER
|
||||||
;
|
;
|
||||||
COMMIT;
|
COMMIT;
|
||||||
END IF;
|
END IF;
|
||||||
|
|
||||||
|
-- Errors
|
||||||
|
IF a_show_errors = 1 THEN
|
||||||
|
SELECT
|
||||||
|
t_ERROR.id_error
|
||||||
|
, t_ERROR.id_type
|
||||||
|
, t_ERROR.code
|
||||||
|
, ERROR_TYPE.name
|
||||||
|
, ERROR_TYPE.description
|
||||||
|
, ERROR_TYPE.is_breaking_error
|
||||||
|
, ERROR_TYPE.background_colour
|
||||||
|
, ERROR_TYPE.text_colour
|
||||||
|
, t_ERROR.msg
|
||||||
|
FROM tmp_Msg_Error_Calc_User t_ERROR
|
||||||
|
INNER JOIN parts.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type
|
||||||
|
;
|
||||||
|
END IF;
|
||||||
|
|
||||||
IF a_debug = 1 THEN
|
IF a_debug = 1 THEN
|
||||||
SELECT * FROM tmp_Msg_Error_Calc_User;
|
SELECT * FROM tmp_Msg_Error_Calc_User;
|
||||||
SELECT * FROM tmp_Calc_User;
|
SELECT * FROM tmp_Calc_User;
|
||||||
@@ -334,9 +481,10 @@ BEGIN
|
|||||||
END IF;
|
END IF;
|
||||||
|
|
||||||
-- Clean up
|
-- Clean up
|
||||||
DROP TABLE IF EXISTS tmp_Calc_User;
|
DROP TABLE IF EXISTS tmp_Split_Calc_User;
|
||||||
|
DROP TABLE IF EXISTS tmp_Msg_Error_Calc_User;
|
||||||
DROP TABLE IF EXISTS tmp_User_Calc_User;
|
DROP TABLE IF EXISTS tmp_User_Calc_User;
|
||||||
DELETE FROM tmp_Split_Calc_User;
|
DROP TABLE IF EXISTS tmp_Calc_User;
|
||||||
|
|
||||||
IF a_debug = 1 THEN
|
IF a_debug = 1 THEN
|
||||||
CALL parts.p_debug_timing_reporting( v_time_start );
|
CALL parts.p_debug_timing_reporting( v_time_start );
|
||||||
@@ -348,29 +496,45 @@ DELIMITER ;
|
|||||||
|
|
||||||
CALL parts.p_dog_calc_user (
|
CALL parts.p_dog_calc_user (
|
||||||
'chips ' -- a_guid
|
'chips ' -- a_guid
|
||||||
, 1 -- a_ids_user
|
, 1 -- a_ids_user
|
||||||
, 0 -- a_get_inactive_user
|
, 0 -- a_get_inactive_user
|
||||||
, '2' -- a_ids_permission
|
, '2' -- a_ids_permission
|
||||||
, '1' -- a_ids_access_level
|
, '1' -- a_ids_access_level
|
||||||
, 0 -- a_debug
|
, 0 -- a_show_errors
|
||||||
|
, 0 -- a_debug
|
||||||
);
|
);
|
||||||
CALL parts.p_dog_calc_user (
|
CALL parts.p_dog_calc_user (
|
||||||
'chips ' -- a_guid
|
'chips ' -- a_guid
|
||||||
, 1 -- a_ids_user
|
, 1 -- a_ids_user
|
||||||
, 0 -- a_get_inactive_user
|
, 0 -- a_get_inactive_user
|
||||||
, '2' -- a_ids_permission
|
, '2' -- a_ids_permission
|
||||||
, '1' -- a_ids_access_level
|
, '1' -- a_ids_access_level
|
||||||
, 0 -- a_debug
|
, 0 -- a_show_errors
|
||||||
|
, 0 -- a_debug
|
||||||
);
|
);
|
||||||
|
SELECT * FROM parts.DOG_Calc_User_Temp WHERE GUID = 'chips ';
|
||||||
|
DELETE FROM parts.DOG_Calc_User_Temp WHERE GUID = 'chips ';
|
||||||
|
|
||||||
|
|
||||||
DELETE FROM demo.DOG_Calc_User_Temp;
|
|
||||||
CALL demo.p_dog_calc_user (
|
|
||||||
'chips ' -- a_guid
|
|
||||||
, 1 -- a_ids_user
|
|
||||||
, 0 -- a_get_inactive_user
|
|
||||||
, '7' -- a_ids_permission
|
|
||||||
, 0 -- a_debug
|
|
||||||
);
|
|
||||||
SELECT * FROM demo.DOG_Calc_User_Temp;
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
-- SELECT * FROM parts.DOG_Calc_User_Temp;
|
||||||
|
SELECT * FROM parts.DOG_Calc_User_Temp WHERE GUID = 'chips ';
|
||||||
|
CALL parts.p_dog_clear_calc_user ( 'chips ', 0 );
|
||||||
|
-- SELECT * FROM parts.DOG_Calc_User_Temp;
|
||||||
|
DROP TABLE IF EXISTS tmp_Msg_Error_Calc_User;
|
||||||
|
|
||||||
|
CALL parts.p_dog_calc_user(
|
||||||
|
'chips '-- a_guid
|
||||||
|
, '1' -- a_ids_user
|
||||||
|
, 0 -- a_get_inactive_user
|
||||||
|
, '8' -- a_ids_permission
|
||||||
|
, '1' -- a_ids_access_level
|
||||||
|
, 1 -- a_show_errors
|
||||||
|
, 0 -- a_debug
|
||||||
|
);
|
||||||
|
SELECT * FROM parts.DOG_Calc_User_Temp WHERE GUID = 'chips ';
|
||||||
|
CALL parts.p_dog_clear_calc_user ( 'chips ', 0 );
|
||||||
|
DROP TABLE IF EXISTS tmp_Msg_Error_Calc_User;
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -39,5 +39,5 @@ CALL p_dog_get_many_unit_measurement (
|
|||||||
);
|
);
|
||||||
|
|
||||||
select *
|
select *
|
||||||
from dog_unit_measurement
|
from parts.dog_unit_measurement
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -11,6 +11,10 @@ CREATE PROCEDURE parts.p_dog_calc_dog (
|
|||||||
, IN a_get_inactive_dog BIT
|
, IN a_get_inactive_dog BIT
|
||||||
, IN a_ids_dog TEXT
|
, IN a_ids_dog TEXT
|
||||||
, IN a_names_dog TEXT
|
, IN a_names_dog TEXT
|
||||||
|
, IN a_require_all_id_search_filters_met BIT
|
||||||
|
, IN a_require_any_id_search_filters_met BIT
|
||||||
|
, IN a_require_all_non_id_search_filters_met BIT
|
||||||
|
, IN a_require_any_non_id_search_filters_met BIT
|
||||||
, IN a_show_errors BIT
|
, IN a_show_errors BIT
|
||||||
, IN a_debug BIT
|
, IN a_debug BIT
|
||||||
)
|
)
|
||||||
@@ -20,6 +24,7 @@ BEGIN
|
|||||||
DECLARE v_code_type_error_no_permission VARCHAR(100);
|
DECLARE v_code_type_error_no_permission VARCHAR(100);
|
||||||
DECLARE v_has_filter_dog_id BIT;
|
DECLARE v_has_filter_dog_id BIT;
|
||||||
DECLARE v_has_filter_dog_name BIT;
|
DECLARE v_has_filter_dog_name BIT;
|
||||||
|
DECLARE v_id_access_level_view INT;
|
||||||
DECLARE v_id_minimum INT;
|
DECLARE v_id_minimum INT;
|
||||||
DECLARE v_id_permission_dog_view INT;
|
DECLARE v_id_permission_dog_view INT;
|
||||||
DECLARE v_id_type_error_bad_data INT;
|
DECLARE v_id_type_error_bad_data INT;
|
||||||
@@ -40,7 +45,7 @@ BEGIN
|
|||||||
id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT
|
id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT
|
||||||
, id_type INT NULL
|
, id_type INT NULL
|
||||||
, code VARCHAR(100) NOT NULL
|
, code VARCHAR(100) NOT NULL
|
||||||
, msg VARCHAR(4000) NOT NULL
|
, msg TEXT NOT NULL
|
||||||
);
|
);
|
||||||
|
|
||||||
INSERT INTO tmp_Msg_Error_Calc_Dog (
|
INSERT INTO tmp_Msg_Error_Calc_Dog (
|
||||||
@@ -79,7 +84,7 @@ BEGIN
|
|||||||
SET v_id_type_error_bad_data := (SELECT ERROR_TYPE.id_type FROM parts.CORE_Msg_Error_Type ERROR_TYPE WHERE ERROR_TYPE.code = v_code_type_error_bad_data LIMIT 1);
|
SET v_id_type_error_bad_data := (SELECT ERROR_TYPE.id_type FROM parts.CORE_Msg_Error_Type ERROR_TYPE WHERE ERROR_TYPE.code = v_code_type_error_bad_data LIMIT 1);
|
||||||
SET v_id_type_error_no_permission := (SELECT ERROR_TYPE.id_type FROM parts.CORE_Msg_Error_Type ERROR_TYPE WHERE ERROR_TYPE.code = v_code_type_error_no_permission LIMIT 1);
|
SET v_id_type_error_no_permission := (SELECT ERROR_TYPE.id_type FROM parts.CORE_Msg_Error_Type ERROR_TYPE WHERE ERROR_TYPE.code = v_code_type_error_no_permission LIMIT 1);
|
||||||
SET v_id_permission_dog_view := (SELECT PERMISSION.id_permission FROM parts.DOG_Permission PERMISSION WHERE PERMISSION.code = 'DOG_VIEW' LIMIT 1);
|
SET v_id_permission_dog_view := (SELECT PERMISSION.id_permission FROM parts.DOG_Permission PERMISSION WHERE PERMISSION.code = 'DOG_VIEW' LIMIT 1);
|
||||||
|
SET v_id_access_level_view := (SELECT ACCESS_LEVEL.id_access_level FROM parts.DOG_Access_Level ACCESS_LEVEL WHERE ACCESS_LEVEL.code = 'VIEW' LIMIT 1);
|
||||||
|
|
||||||
CALL parts.p_core_validate_guid ( a_guid );
|
CALL parts.p_core_validate_guid ( a_guid );
|
||||||
|
|
||||||
@@ -88,6 +93,10 @@ BEGIN
|
|||||||
SET a_get_inactive_dog := IFNULL(a_get_inactive_dog, 0);
|
SET a_get_inactive_dog := IFNULL(a_get_inactive_dog, 0);
|
||||||
SET a_ids_dog := TRIM(IFNULL(a_ids_dog, ''));
|
SET a_ids_dog := TRIM(IFNULL(a_ids_dog, ''));
|
||||||
SET a_names_dog := TRIM(IFNULL(a_names_dog, ''));
|
SET a_names_dog := TRIM(IFNULL(a_names_dog, ''));
|
||||||
|
SET a_require_all_id_search_filters_met := IFNULL(a_require_all_id_search_filters_met, 1);
|
||||||
|
SET a_require_any_id_search_filters_met := IFNULL(a_require_any_id_search_filters_met, 1);
|
||||||
|
SET a_require_all_non_id_search_filters_met := IFNULL(a_require_all_non_id_search_filters_met, 0);
|
||||||
|
SET a_require_any_non_id_search_filters_met := IFNULL(a_require_any_non_id_search_filters_met, 1);
|
||||||
SET a_show_errors := IFNULL(a_show_errors, 0);
|
SET a_show_errors := IFNULL(a_show_errors, 0);
|
||||||
SET a_debug := IFNULL(a_debug, 0);
|
SET a_debug := IFNULL(a_debug, 0);
|
||||||
|
|
||||||
@@ -99,6 +108,10 @@ BEGIN
|
|||||||
, a_get_inactive_dog
|
, a_get_inactive_dog
|
||||||
, a_ids_dog
|
, a_ids_dog
|
||||||
, a_names_dog
|
, a_names_dog
|
||||||
|
, a_require_all_id_search_filters_met
|
||||||
|
, a_require_any_id_search_filters_met
|
||||||
|
, a_require_all_non_id_search_filters_met
|
||||||
|
, a_require_any_non_id_search_filters_met
|
||||||
, a_show_errors
|
, a_show_errors
|
||||||
, a_debug
|
, a_debug
|
||||||
;
|
;
|
||||||
@@ -118,13 +131,15 @@ BEGIN
|
|||||||
|
|
||||||
CREATE TEMPORARY TABLE tmp_Dog_Calc_Dog (
|
CREATE TEMPORARY TABLE tmp_Dog_Calc_Dog (
|
||||||
id_dog INT NOT NULL
|
id_dog INT NOT NULL
|
||||||
|
, does_meet_id_filters BIT NOT NULL
|
||||||
|
, does_meet_non_id_filters BIT NOT NULL
|
||||||
);
|
);
|
||||||
|
|
||||||
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error_Calc_Dog (
|
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error_Calc_Dog (
|
||||||
id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT
|
id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT
|
||||||
, id_type INT NULL
|
, id_type INT NULL
|
||||||
, code VARCHAR(100) NOT NULL
|
, code VARCHAR(100) NOT NULL
|
||||||
, msg VARCHAR(4000) NOT NULL
|
, msg TEXT NOT NULL
|
||||||
);
|
);
|
||||||
|
|
||||||
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Split_Id_Calc_Dog (
|
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Split_Id_Calc_Dog (
|
||||||
@@ -146,13 +161,30 @@ BEGIN
|
|||||||
IF v_has_filter_dog_id = 1 THEN
|
IF v_has_filter_dog_id = 1 THEN
|
||||||
CALL parts.p_core_split(a_guid, a_ids_dog, ',', a_debug);
|
CALL parts.p_core_split(a_guid, a_ids_dog, ',', a_debug);
|
||||||
|
|
||||||
|
SET sql_mode = '';
|
||||||
|
|
||||||
|
IF a_debug = 1 THEN
|
||||||
|
SELECT *
|
||||||
|
FROM parts.CORE_Split_Temp SPLIT_T
|
||||||
|
WHERE
|
||||||
|
SPLIT_T.GUID = a_guid
|
||||||
|
AND IFNULL(SPLIT_T.substring, '') <> ''
|
||||||
|
;
|
||||||
|
SELECT COUNT(*) AS count_split_ids
|
||||||
|
FROM parts.CORE_Split_Temp SPLIT_T
|
||||||
|
WHERE
|
||||||
|
SPLIT_T.GUID = a_guid
|
||||||
|
AND IFNULL(SPLIT_T.substring, '') <> ''
|
||||||
|
;
|
||||||
|
END IF;
|
||||||
|
|
||||||
INSERT INTO tmp_Split_Id_Calc_Dog (
|
INSERT INTO tmp_Split_Id_Calc_Dog (
|
||||||
substring
|
substring
|
||||||
, as_int
|
, as_int
|
||||||
)
|
)
|
||||||
SELECT
|
SELECT
|
||||||
SPLIT_T.substring
|
SPLIT_T.substring
|
||||||
, CONVERT(SPLIT_T.substring, DECIMAL(10,0)) AS as_int
|
, CAST(SPLIT_T.substring AS DECIMAL(10,0)) AS as_int
|
||||||
FROM parts.CORE_Split_Temp SPLIT_T
|
FROM parts.CORE_Split_Temp SPLIT_T
|
||||||
WHERE
|
WHERE
|
||||||
SPLIT_T.GUID = a_guid
|
SPLIT_T.GUID = a_guid
|
||||||
@@ -165,13 +197,30 @@ BEGIN
|
|||||||
IF v_has_filter_dog_name = 1 THEN
|
IF v_has_filter_dog_name = 1 THEN
|
||||||
CALL parts.p_core_split(a_guid, a_names_dog, ',', a_debug);
|
CALL parts.p_core_split(a_guid, a_names_dog, ',', a_debug);
|
||||||
|
|
||||||
|
SET sql_mode = '';
|
||||||
|
|
||||||
|
IF a_debug = 1 THEN
|
||||||
|
SELECT *
|
||||||
|
FROM parts.CORE_Split_Temp SPLIT_T
|
||||||
|
WHERE
|
||||||
|
SPLIT_T.GUID = a_guid
|
||||||
|
AND IFNULL(SPLIT_T.substring, '') <> ''
|
||||||
|
;
|
||||||
|
SELECT COUNT(*) AS count_split_names
|
||||||
|
FROM parts.CORE_Split_Temp SPLIT_T
|
||||||
|
WHERE
|
||||||
|
SPLIT_T.GUID = a_guid
|
||||||
|
AND IFNULL(SPLIT_T.substring, '') <> ''
|
||||||
|
;
|
||||||
|
END IF;
|
||||||
|
|
||||||
INSERT INTO tmp_Split_Name_Calc_Dog (
|
INSERT INTO tmp_Split_Name_Calc_Dog (
|
||||||
substring
|
substring
|
||||||
, as_int
|
, as_int
|
||||||
)
|
)
|
||||||
SELECT
|
SELECT
|
||||||
SPLIT_T.substring
|
SPLIT_T.substring
|
||||||
, CONVERT(SPLIT_T.substring, DECIMAL(10,0)) AS as_int
|
, CAST(SPLIT_T.substring AS DECIMAL(10,0)) AS as_int
|
||||||
FROM parts.CORE_Split_Temp SPLIT_T
|
FROM parts.CORE_Split_Temp SPLIT_T
|
||||||
WHERE
|
WHERE
|
||||||
SPLIT_T.GUID = a_guid
|
SPLIT_T.GUID = a_guid
|
||||||
@@ -181,6 +230,15 @@ BEGIN
|
|||||||
CALL parts.p_core_clear_split( a_guid );
|
CALL parts.p_core_clear_split( a_guid );
|
||||||
END IF;
|
END IF;
|
||||||
|
|
||||||
|
IF a_debug = 1 THEN
|
||||||
|
SELECT *
|
||||||
|
FROM tmp_Split_Id_Calc_Dog
|
||||||
|
;
|
||||||
|
SELECT *
|
||||||
|
FROM tmp_Split_Name_Calc_Dog
|
||||||
|
;
|
||||||
|
END IF;
|
||||||
|
|
||||||
IF NOT EXISTS (SELECT * FROM tmp_Msg_Error_Calc_Dog t_ERROR INNER JOIN parts.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type WHERE ERROR_TYPE.is_breaking_error = 1 LIMIT 1) THEN
|
IF NOT EXISTS (SELECT * FROM tmp_Msg_Error_Calc_Dog t_ERROR INNER JOIN parts.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type WHERE ERROR_TYPE.is_breaking_error = 1 LIMIT 1) THEN
|
||||||
IF EXISTS (
|
IF EXISTS (
|
||||||
SELECT *
|
SELECT *
|
||||||
@@ -214,78 +272,70 @@ BEGIN
|
|||||||
)
|
)
|
||||||
;
|
;
|
||||||
/* Don't error on names not found
|
/* Don't error on names not found
|
||||||
ELSEIF EXISTS (
|
ELSEIF EXISTS ()
|
||||||
SELECT *
|
|
||||||
FROM tmp_Split t_SPLIT
|
|
||||||
LEFT JOIN parts.DOG_Dog DOG ON t_SPLIT.as_int = DOG.id_dog
|
|
||||||
WHERE
|
|
||||||
ISNULL(t_SPLIT.as_int)
|
|
||||||
OR ISNULL(DOG.id_dog)
|
|
||||||
OR (
|
|
||||||
DOG.active = 0
|
|
||||||
AND a_get_inactive_dog = 0
|
|
||||||
)
|
|
||||||
) THEN
|
|
||||||
INSERT INTO tmp_Msg_Error_Calc_Dog (
|
|
||||||
id_type
|
|
||||||
, code
|
|
||||||
, msg
|
|
||||||
)
|
|
||||||
SELECT
|
|
||||||
v_id_type_error_bad_data
|
|
||||||
, v_code_type_error_bad_data
|
|
||||||
, CONCAT('Invalid or inactive Dog IDs: ', IFNULL(GROUP_CONCAT(t_SPLIT.substring SEPARATOR ', '), 'NULL'))
|
|
||||||
FROM tmp_Split t_SPLIT
|
|
||||||
LEFT JOIN parts.DOG_Dog DOG ON t_SPLIT.as_int = DOG.id_dog
|
|
||||||
WHERE
|
|
||||||
ISNULL(t_SPLIT.as_int)
|
|
||||||
OR ISNULL(DOG.id_dog)
|
|
||||||
OR (
|
|
||||||
DOG.active = 0
|
|
||||||
AND a_get_inactive_dog = 0
|
|
||||||
)
|
|
||||||
;
|
|
||||||
*/
|
*/
|
||||||
ELSE
|
ELSE
|
||||||
INSERT INTO tmp_Dog_Calc_Dog (
|
INSERT INTO tmp_Dog_Calc_Dog (
|
||||||
id_dog
|
id_dog
|
||||||
|
, does_meet_id_filters
|
||||||
|
, does_meet_non_id_filters
|
||||||
)
|
)
|
||||||
WITH
|
WITH
|
||||||
Dog_Id_Filter AS (
|
Dog_Id_Filter AS (
|
||||||
SELECT DOG.id_dog
|
SELECT DOG.id_dog
|
||||||
FROM tmp_Split_Id_Calc_Dog t_SPLIT_ID
|
FROM tmp_Split_Id_Calc_Dog t_SPLIT_ID
|
||||||
RIGHT JOIN parts.DOG_Dog DOG ON t_SPLIT_ID.as_int = DOG.id_dog
|
INNER JOIN parts.DOG_Dog DOG ON t_SPLIT_ID.as_int = DOG.id_dog
|
||||||
WHERE t_SPLIT_ID.as_int IS NOT NULL
|
|
||||||
)
|
)
|
||||||
, Dog_Name_Filter AS (
|
, Dog_Name_Filter AS (
|
||||||
SELECT DOG.id_dog
|
SELECT DOG.id_dog
|
||||||
FROM tmp_Split_Name_Calc_Dog t_SPLIT_NAME
|
FROM tmp_Split_Name_Calc_Dog t_SPLIT_NAME
|
||||||
RIGHT JOIN parts.DOG_Dog DOG ON DOG.name LIKE CONCAT('%', t_SPLIT_NAME.substring, '%')
|
INNER JOIN parts.DOG_Dog DOG ON DOG.name LIKE CONCAT('%', t_SPLIT_NAME.substring, '%')
|
||||||
WHERE
|
WHERE IFNULL(t_SPLIT_NAME.substring, '') <> ''
|
||||||
t_SPLIT_NAME.substring IS NOT NULL
|
|
||||||
AND t_SPLIT_NAME.substring <> ''
|
|
||||||
)
|
)
|
||||||
, Dog_Filters AS (
|
, Dog_Filters AS (
|
||||||
SELECT DISTINCT DOG_COMBINED.id_dog
|
SELECT
|
||||||
|
DOG_COMBINED.id_dog
|
||||||
|
, MAX(DOG_COMBINED.does_meet_id_filter) AS does_meet_id_filter
|
||||||
|
, MAX(DOG_COMBINED.does_meet_name_filter) AS does_meet_name_filter
|
||||||
FROM (
|
FROM (
|
||||||
SELECT DOG_ID_FILTER.id_dog FROM Dog_Id_Filter DOG_ID_FILTER
|
SELECT
|
||||||
|
DOG_ID_FILTER.id_dog
|
||||||
|
, 1 AS does_meet_id_filter
|
||||||
|
, 0 AS does_meet_name_filter
|
||||||
|
FROM Dog_Id_Filter DOG_ID_FILTER
|
||||||
UNION
|
UNION
|
||||||
SELECT DOG_NAME_FILTER.id_dog FROM Dog_Name_Filter DOG_NAME_FILTER
|
SELECT
|
||||||
|
DOG_NAME_FILTER.id_dog
|
||||||
|
, 0 AS does_meet_id_filter
|
||||||
|
, 1 AS does_meet_name_filter
|
||||||
|
FROM Dog_Name_Filter DOG_NAME_FILTER
|
||||||
) DOG_COMBINED
|
) DOG_COMBINED
|
||||||
|
GROUP BY DOG_COMBINED.id_dog
|
||||||
)
|
)
|
||||||
SELECT
|
SELECT
|
||||||
DOG.id_dog
|
DOG.id_dog
|
||||||
|
, CASE WHEN
|
||||||
|
v_has_filter_dog_id = 0
|
||||||
|
OR IFNULL(DOG_FILTERS.does_meet_id_filter, 0) = 1
|
||||||
|
THEN 1 ELSE 0 END AS does_meet_id_filters
|
||||||
|
, CASE WHEN
|
||||||
|
(
|
||||||
|
v_has_filter_dog_name = 0
|
||||||
|
)
|
||||||
|
OR IFNULL(DOG_FILTERS.does_meet_name_filter, 0) = 1
|
||||||
|
THEN 1 ELSE 0 END AS does_meet_non_id_filters
|
||||||
FROM parts.DOG_Dog DOG
|
FROM parts.DOG_Dog DOG
|
||||||
LEFT JOIN Dog_Filters DOG_FILTERS ON DOG.id_dog = DOG_FILTERS.id_dog
|
LEFT JOIN Dog_Filters DOG_FILTERS ON DOG.id_dog = DOG_FILTERS.id_dog
|
||||||
WHERE
|
WHERE
|
||||||
(
|
(
|
||||||
a_get_all_dog = 1
|
a_get_all_dog = 1
|
||||||
|
OR (
|
||||||
|
v_has_filter_dog_id = 1
|
||||||
|
AND DOG_FILTERS.does_meet_id_filter = 1
|
||||||
|
)
|
||||||
OR (
|
OR (
|
||||||
(
|
v_has_filter_dog_name = 1
|
||||||
v_has_filter_dog_id = 1
|
AND DOG_FILTERS.does_meet_name_filter = 1
|
||||||
OR v_has_filter_dog_name = 1
|
|
||||||
)
|
|
||||||
AND DOG_FILTERS.id_dog IS NOT NULL
|
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
AND (
|
AND (
|
||||||
@@ -299,23 +349,50 @@ BEGIN
|
|||||||
DELETE FROM tmp_Split_Id_Calc_Dog;
|
DELETE FROM tmp_Split_Id_Calc_Dog;
|
||||||
DELETE FROM tmp_Split_Name_Calc_Dog;
|
DELETE FROM tmp_Split_Name_Calc_Dog;
|
||||||
|
|
||||||
|
-- Filter records
|
||||||
|
IF NOT EXISTS (SELECT * FROM tmp_Msg_Error_Calc_Dog t_ERROR INNER JOIN parts.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type WHERE ERROR_TYPE.is_breaking_error = 1 LIMIT 1) THEN
|
||||||
|
DELETE t_DOG
|
||||||
|
FROM tmp_Dog_Calc_Dog t_DOG
|
||||||
|
WHERE
|
||||||
|
(
|
||||||
|
a_require_all_id_search_filters_met = 1
|
||||||
|
AND t_DOG.does_meet_id_filters = 0
|
||||||
|
)
|
||||||
|
OR (
|
||||||
|
a_require_all_non_id_search_filters_met = 1
|
||||||
|
AND t_DOG.does_meet_non_id_filters = 0
|
||||||
|
)
|
||||||
|
OR (
|
||||||
|
a_require_any_id_search_filters_met = 1
|
||||||
|
AND t_DOG.does_meet_id_filters = 0
|
||||||
|
)
|
||||||
|
OR (
|
||||||
|
a_require_any_non_id_search_filters_met = 1
|
||||||
|
AND t_DOG.does_meet_non_id_filters = 0
|
||||||
|
)
|
||||||
|
;
|
||||||
|
END IF;
|
||||||
|
|
||||||
-- Permissions
|
-- Permissions
|
||||||
IF a_debug = 1 THEN
|
IF a_debug = 1 THEN
|
||||||
SELECT
|
SELECT
|
||||||
a_guid
|
a_guid -- a_guid
|
||||||
, a_id_user
|
, a_id_user -- a_id_user
|
||||||
, FALSE -- a_get_inactive_user
|
, FALSE -- a_get_inactive_user
|
||||||
, v_id_permission_dog_view
|
, v_id_permission_dog_view -- ids_permission
|
||||||
|
, v_id_access_level_view -- ids_access_level
|
||||||
|
, 0 -- a_show_errors
|
||||||
, 0 -- a_debug
|
, 0 -- a_debug
|
||||||
;
|
;
|
||||||
END IF;
|
END IF;
|
||||||
|
|
||||||
CALL parts.p_dog_calc_user(
|
CALL parts.p_dog_calc_user(
|
||||||
a_guid
|
a_guid -- a_guid
|
||||||
, a_id_user
|
, a_id_user -- a_id_user
|
||||||
, FALSE -- a_get_inactive_user
|
, FALSE -- a_get_inactive_user
|
||||||
, v_id_permission_dog_view
|
, v_id_permission_dog_view -- ids_permission
|
||||||
|
, v_id_access_level_view -- ids_access_level
|
||||||
|
, 0 -- a_show_errors
|
||||||
, 0 -- a_debug
|
, 0 -- a_debug
|
||||||
);
|
);
|
||||||
|
|
||||||
@@ -345,7 +422,7 @@ BEGIN
|
|||||||
VALUES (
|
VALUES (
|
||||||
v_id_type_error_no_permission
|
v_id_type_error_no_permission
|
||||||
, v_code_type_error_no_permission
|
, v_code_type_error_no_permission
|
||||||
, 'You do not have permission to view Commands.'
|
, 'You do not have permission to view Dog.'
|
||||||
)
|
)
|
||||||
;
|
;
|
||||||
END IF;
|
END IF;
|
||||||
@@ -364,7 +441,7 @@ BEGIN
|
|||||||
END IF;
|
END IF;
|
||||||
|
|
||||||
-- Outputs
|
-- Outputs
|
||||||
-- Commands
|
-- Dogs
|
||||||
INSERT INTO parts.DOG_Dog_Temp (
|
INSERT INTO parts.DOG_Dog_Temp (
|
||||||
guid
|
guid
|
||||||
, id_dog
|
, id_dog
|
||||||
@@ -373,6 +450,9 @@ BEGIN
|
|||||||
, mass_kg
|
, mass_kg
|
||||||
, notes
|
, notes
|
||||||
, active
|
, active
|
||||||
|
|
||||||
|
, does_meet_id_filters
|
||||||
|
, does_meet_non_id_filters
|
||||||
)
|
)
|
||||||
SELECT
|
SELECT
|
||||||
a_guid
|
a_guid
|
||||||
@@ -382,24 +462,29 @@ BEGIN
|
|||||||
, DOG.mass_kg
|
, DOG.mass_kg
|
||||||
, DOG.notes
|
, DOG.notes
|
||||||
, DOG.active
|
, DOG.active
|
||||||
|
|
||||||
|
, t_DOG.does_meet_id_filters
|
||||||
|
, t_DOG.does_meet_non_id_filters
|
||||||
FROM parts.DOG_Dog DOG
|
FROM parts.DOG_Dog DOG
|
||||||
INNER JOIN tmp_Dog_Calc_Dog t_DOG ON DOG.id_dog = t_DOG.id_dog
|
INNER JOIN tmp_Dog_Calc_Dog t_DOG ON DOG.id_dog = t_DOG.id_dog
|
||||||
;
|
;
|
||||||
|
|
||||||
-- Errors
|
-- Errors
|
||||||
SELECT
|
IF a_show_errors = 1 THEN
|
||||||
t_ERROR.id_error
|
SELECT
|
||||||
, t_ERROR.id_type
|
t_ERROR.id_error
|
||||||
, t_ERROR.code
|
, t_ERROR.id_type
|
||||||
, ERROR_TYPE.name
|
, t_ERROR.code
|
||||||
, ERROR_TYPE.description
|
, ERROR_TYPE.name
|
||||||
, ERROR_TYPE.is_breaking_error
|
, ERROR_TYPE.description
|
||||||
, ERROR_TYPE.background_colour
|
, ERROR_TYPE.is_breaking_error
|
||||||
, ERROR_TYPE.text_colour
|
, ERROR_TYPE.background_colour
|
||||||
, t_ERROR.msg
|
, ERROR_TYPE.text_colour
|
||||||
FROM tmp_Msg_Error_Calc_Dog t_ERROR
|
, t_ERROR.msg
|
||||||
INNER JOIN parts.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type
|
FROM tmp_Msg_Error_Calc_Dog t_ERROR
|
||||||
;
|
INNER JOIN parts.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type
|
||||||
|
;
|
||||||
|
END IF;
|
||||||
|
|
||||||
IF a_debug = 1 AND v_can_view = 1 THEN
|
IF a_debug = 1 AND v_can_view = 1 THEN
|
||||||
SELECT * FROM tmp_Dog_Calc_Dog;
|
SELECT * FROM tmp_Dog_Calc_Dog;
|
||||||
@@ -427,10 +512,30 @@ CALL parts.p_dog_calc_dog (
|
|||||||
, 0 -- a_get_inactive_dog
|
, 0 -- a_get_inactive_dog
|
||||||
, '' -- a_ids_dog
|
, '' -- a_ids_dog
|
||||||
, '' -- a_names_dog
|
, '' -- a_names_dog
|
||||||
|
, 1 -- a_require_all_id_search_filters_met
|
||||||
|
, 1 -- a_require_any_id_search_filters_met
|
||||||
|
, 0 -- a_require_all_non_id_search_filters_met
|
||||||
|
, 1 -- a_require_any_non_id_search_filters_met
|
||||||
, 1 -- a_show_errors
|
, 1 -- a_show_errors
|
||||||
, 1 -- a_debug
|
, 1 -- a_debug
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
|
CALL parts.p_dog_calc_dog (
|
||||||
|
'slips ' -- a_guid
|
||||||
|
, 1 -- 'auth0|6582b95c895d09a70ba10fef', -- a_id_user
|
||||||
|
, 1 -- a_get_all_dog
|
||||||
|
, 0 -- a_get_inactive_dog
|
||||||
|
, '' -- a_ids_dog
|
||||||
|
, 'pat' -- a_names_dog
|
||||||
|
, 1 -- a_require_all_id_search_filters_met
|
||||||
|
, 1 -- a_require_any_id_search_filters_met
|
||||||
|
, 0 -- a_require_all_non_id_search_filters_met
|
||||||
|
, 1 -- a_require_any_non_id_search_filters_met
|
||||||
|
, 0 -- a_show_errors
|
||||||
|
, 0 -- a_debug
|
||||||
|
);
|
||||||
|
|
||||||
SELECT *
|
SELECT *
|
||||||
FROM parts.DOG_Dog_Temp
|
FROM parts.DOG_Dog_Temp
|
||||||
;
|
;
|
||||||
|
|||||||
@@ -10,6 +10,10 @@ CREATE PROCEDURE parts.p_dog_get_many_dog (
|
|||||||
, IN a_get_inactive_dog BIT
|
, IN a_get_inactive_dog BIT
|
||||||
, IN a_ids_dog TEXT
|
, IN a_ids_dog TEXT
|
||||||
, IN a_names_dog TEXT
|
, IN a_names_dog TEXT
|
||||||
|
, IN a_require_all_id_search_filters_met BIT
|
||||||
|
, IN a_require_any_id_search_filters_met BIT
|
||||||
|
, IN a_require_all_non_id_search_filters_met BIT
|
||||||
|
, IN a_require_any_non_id_search_filters_met BIT
|
||||||
, IN a_debug BIT
|
, IN a_debug BIT
|
||||||
)
|
)
|
||||||
BEGIN
|
BEGIN
|
||||||
@@ -17,8 +21,7 @@ BEGIN
|
|||||||
DECLARE v_code_type_error_bad_data VARCHAR(100);
|
DECLARE v_code_type_error_bad_data VARCHAR(100);
|
||||||
DECLARE v_code_type_error_no_permission VARCHAR(100);
|
DECLARE v_code_type_error_no_permission VARCHAR(100);
|
||||||
DECLARE v_guid BINARY(36);
|
DECLARE v_guid BINARY(36);
|
||||||
DECLARE v_has_filter_dog_id BIT;
|
DECLARE v_id_access_level_view INT;
|
||||||
DECLARE v_has_filter_dog_name BIT;
|
|
||||||
DECLARE v_id_minimum INT;
|
DECLARE v_id_minimum INT;
|
||||||
DECLARE v_id_permission_dog_view INT;
|
DECLARE v_id_permission_dog_view INT;
|
||||||
DECLARE v_id_type_error_bad_data INT;
|
DECLARE v_id_type_error_bad_data INT;
|
||||||
@@ -39,7 +42,7 @@ BEGIN
|
|||||||
id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT
|
id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT
|
||||||
, id_type INT NULL
|
, id_type INT NULL
|
||||||
, code VARCHAR(100) NOT NULL
|
, code VARCHAR(100) NOT NULL
|
||||||
, msg VARCHAR(4000) NOT NULL
|
, msg TEXT NOT NULL
|
||||||
);
|
);
|
||||||
|
|
||||||
INSERT INTO tmp_Msg_Error (
|
INSERT INTO tmp_Msg_Error (
|
||||||
@@ -79,12 +82,19 @@ BEGIN
|
|||||||
SET v_id_type_error_bad_data := (SELECT ERROR_TYPE.id_type FROM parts.CORE_Msg_Error_Type ERROR_TYPE WHERE ERROR_TYPE.code = v_code_type_error_bad_data LIMIT 1);
|
SET v_id_type_error_bad_data := (SELECT ERROR_TYPE.id_type FROM parts.CORE_Msg_Error_Type ERROR_TYPE WHERE ERROR_TYPE.code = v_code_type_error_bad_data LIMIT 1);
|
||||||
SET v_id_type_error_no_permission := (SELECT ERROR_TYPE.id_type FROM parts.CORE_Msg_Error_Type ERROR_TYPE WHERE ERROR_TYPE.code = v_code_type_error_no_permission LIMIT 1);
|
SET v_id_type_error_no_permission := (SELECT ERROR_TYPE.id_type FROM parts.CORE_Msg_Error_Type ERROR_TYPE WHERE ERROR_TYPE.code = v_code_type_error_no_permission LIMIT 1);
|
||||||
SET v_id_permission_dog_view := (SELECT PERMISSION.id_permission FROM parts.DOG_Permission PERMISSION WHERE PERMISSION.code = 'DOG_VIEW' LIMIT 1);
|
SET v_id_permission_dog_view := (SELECT PERMISSION.id_permission FROM parts.DOG_Permission PERMISSION WHERE PERMISSION.code = 'DOG_VIEW' LIMIT 1);
|
||||||
|
SET v_id_access_level_view := (SELECT ACCESS_LEVEL.id_access_level FROM parts.DOG_Access_Level ACCESS_LEVEL WHERE ACCESS_LEVEL.code = 'VIEW' LIMIT 1);
|
||||||
|
|
||||||
SET a_id_user := IFNULL(a_id_user, 0);
|
SET a_id_user := IFNULL(a_id_user, 0);
|
||||||
|
/*
|
||||||
SET a_get_all_dog := IFNULL(a_get_all_dog, 0);
|
SET a_get_all_dog := IFNULL(a_get_all_dog, 0);
|
||||||
SET a_get_inactive_dog := IFNULL(a_get_inactive_dog, 0);
|
SET a_get_inactive_dog := IFNULL(a_get_inactive_dog, 0);
|
||||||
SET a_ids_dog := TRIM(IFNULL(a_ids_dog, ''));
|
SET a_ids_dog := TRIM(IFNULL(a_ids_dog, ''));
|
||||||
SET a_names_dog := TRIM(IFNULL(a_names_dog, ''));
|
SET a_names_dog := TRIM(IFNULL(a_names_dog, ''));
|
||||||
|
SET a_require_all_id_search_filters_met := IFNULL(a_require_all_id_search_filters_met, 1);
|
||||||
|
SET a_require_any_id_search_filters_met := IFNULL(a_require_any_id_search_filters_met, 1);
|
||||||
|
SET a_require_all_non_id_search_filters_met := IFNULL(a_require_all_non_id_search_filters_met, 0);
|
||||||
|
SET a_require_any_non_id_search_filters_met := IFNULL(a_require_any_non_id_search_filters_met, 1);
|
||||||
|
*/
|
||||||
SET a_debug := IFNULL(a_debug, 0);
|
SET a_debug := IFNULL(a_debug, 0);
|
||||||
|
|
||||||
IF a_debug = 1 THEN
|
IF a_debug = 1 THEN
|
||||||
@@ -94,6 +104,10 @@ BEGIN
|
|||||||
, a_get_inactive_dog
|
, a_get_inactive_dog
|
||||||
, a_ids_dog
|
, a_ids_dog
|
||||||
, a_names_dog
|
, a_names_dog
|
||||||
|
, a_require_all_id_search_filters_met
|
||||||
|
, a_require_any_id_search_filters_met
|
||||||
|
, a_require_all_non_id_search_filters_met
|
||||||
|
, a_require_any_non_id_search_filters_met
|
||||||
, a_debug
|
, a_debug
|
||||||
;
|
;
|
||||||
|
|
||||||
@@ -116,32 +130,39 @@ BEGIN
|
|||||||
, mass_kg DECIMAL(7, 3)
|
, mass_kg DECIMAL(7, 3)
|
||||||
, notes TEXT
|
, notes TEXT
|
||||||
, active BIT
|
, active BIT
|
||||||
|
|
||||||
|
, does_meet_id_filters BIT
|
||||||
|
, does_meet_non_id_filters BIT
|
||||||
);
|
);
|
||||||
|
|
||||||
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error (
|
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error (
|
||||||
id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT
|
id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT
|
||||||
, id_type INT NULL
|
, id_type INT NULL
|
||||||
, code VARCHAR(100) NOT NULL
|
, code VARCHAR(100) NOT NULL
|
||||||
, msg VARCHAR(4000) NOT NULL
|
, msg TEXT NOT NULL
|
||||||
);
|
);
|
||||||
|
|
||||||
-- Permissions
|
-- Permissions
|
||||||
IF a_debug = 1 THEN
|
IF a_debug = 1 THEN
|
||||||
SELECT
|
SELECT
|
||||||
v_guid
|
v_guid -- guid
|
||||||
, a_id_user
|
, a_id_user -- ids_user
|
||||||
, FALSE -- a_get_inactive_user
|
, FALSE -- a_get_inactive_user
|
||||||
, v_id_permission_dog_view
|
, v_id_permission_dog_view -- ids_permission
|
||||||
, 0 -- a_debug
|
, v_id_access_level_view -- ids_access_level
|
||||||
|
, 0 -- a_show_errors
|
||||||
|
, a_debug -- a_debug
|
||||||
;
|
;
|
||||||
END IF;
|
END IF;
|
||||||
|
|
||||||
CALL parts.p_dog_calc_user(
|
CALL parts.p_dog_calc_user(
|
||||||
v_guid
|
v_guid-- guid
|
||||||
, a_id_user
|
, a_id_user -- ids_user
|
||||||
, FALSE -- a_get_inactive_user
|
, FALSE -- a_get_inactive_user
|
||||||
, v_id_permission_dog_view
|
, v_id_permission_dog_view -- ids_permission
|
||||||
, 0 -- a_debug
|
, v_id_access_level_view -- ids_access_level
|
||||||
|
, 0 -- a_show_errors
|
||||||
|
, a_debug -- a_debug
|
||||||
);
|
);
|
||||||
|
|
||||||
SELECT
|
SELECT
|
||||||
@@ -193,6 +214,10 @@ BEGIN
|
|||||||
, a_get_inactive_dog -- a_get_inactive_dog
|
, a_get_inactive_dog -- a_get_inactive_dog
|
||||||
, a_ids_dog -- a_ids_dog
|
, a_ids_dog -- a_ids_dog
|
||||||
, a_names_dog -- a_names_dog
|
, a_names_dog -- a_names_dog
|
||||||
|
, a_require_all_id_search_filters_met -- a_require_all_id_search_filters_met
|
||||||
|
, a_require_any_id_search_filters_met -- a_require_any_id_search_filters_met
|
||||||
|
, a_require_all_non_id_search_filters_met -- a_require_all_non_id_search_filters_met
|
||||||
|
, a_require_any_non_id_search_filters_met -- a_require_any_non_id_search_filters_met
|
||||||
, 0 -- a_show_errors
|
, 0 -- a_show_errors
|
||||||
, 0 -- a_debug
|
, 0 -- a_debug
|
||||||
;
|
;
|
||||||
@@ -205,6 +230,10 @@ BEGIN
|
|||||||
, a_get_inactive_dog -- a_get_inactive_dog
|
, a_get_inactive_dog -- a_get_inactive_dog
|
||||||
, a_ids_dog -- a_ids_dog
|
, a_ids_dog -- a_ids_dog
|
||||||
, a_names_dog -- a_names_dog
|
, a_names_dog -- a_names_dog
|
||||||
|
, a_require_all_id_search_filters_met -- a_require_all_id_search_filters_met
|
||||||
|
, a_require_any_id_search_filters_met -- a_require_any_id_search_filters_met
|
||||||
|
, a_require_all_non_id_search_filters_met -- a_require_all_non_id_search_filters_met
|
||||||
|
, a_require_any_non_id_search_filters_met -- a_require_any_non_id_search_filters_met
|
||||||
, 0 -- a_show_errors
|
, 0 -- a_show_errors
|
||||||
, 0 -- a_debug
|
, 0 -- a_debug
|
||||||
);
|
);
|
||||||
@@ -216,6 +245,9 @@ BEGIN
|
|||||||
, mass_kg
|
, mass_kg
|
||||||
, notes
|
, notes
|
||||||
, active
|
, active
|
||||||
|
|
||||||
|
, does_meet_id_filters
|
||||||
|
, does_meet_non_id_filters
|
||||||
)
|
)
|
||||||
SELECT
|
SELECT
|
||||||
DOG_T.id_dog
|
DOG_T.id_dog
|
||||||
@@ -224,6 +256,9 @@ BEGIN
|
|||||||
, DOG_T.mass_kg
|
, DOG_T.mass_kg
|
||||||
, DOG_T.notes
|
, DOG_T.notes
|
||||||
, DOG_T.active
|
, DOG_T.active
|
||||||
|
|
||||||
|
, DOG_T.does_meet_id_filters
|
||||||
|
, DOG_T.does_meet_non_id_filters
|
||||||
FROM parts.DOG_Dog_Temp DOG_T
|
FROM parts.DOG_Dog_Temp DOG_T
|
||||||
WHERE DOG_T.GUID = v_guid
|
WHERE DOG_T.GUID = v_guid
|
||||||
;
|
;
|
||||||
@@ -251,6 +286,9 @@ BEGIN
|
|||||||
, DOG_T.mass_kg
|
, DOG_T.mass_kg
|
||||||
, DOG_T.notes
|
, DOG_T.notes
|
||||||
, DOG_T.active
|
, DOG_T.active
|
||||||
|
|
||||||
|
, DOG_T.does_meet_id_filters
|
||||||
|
, DOG_T.does_meet_non_id_filters
|
||||||
FROM parts.DOG_Dog_Temp DOG_T
|
FROM parts.DOG_Dog_Temp DOG_T
|
||||||
;
|
;
|
||||||
|
|
||||||
@@ -296,6 +334,23 @@ CALL parts.p_dog_get_many_dog (
|
|||||||
, 0 -- a_get_inactive_dog
|
, 0 -- a_get_inactive_dog
|
||||||
, '' -- a_ids_dog
|
, '' -- a_ids_dog
|
||||||
, '' -- a_names_dog
|
, '' -- a_names_dog
|
||||||
|
, 1 -- a_require_all_id_search_filters_met
|
||||||
|
, 1 -- a_require_any_id_search_filters_met
|
||||||
|
, 0 -- a_require_all_non_id_search_filters_met
|
||||||
|
, 1 -- a_require_any_non_id_search_filters_met
|
||||||
|
, 1 -- a_debug
|
||||||
|
);
|
||||||
|
|
||||||
|
CALL demo.p_dog_get_many_dog (
|
||||||
|
1 -- 'auth0|6582b95c895d09a70ba10fef', -- a_id_user
|
||||||
|
, 1 -- a_get_all_dog
|
||||||
|
, 0 -- a_get_inactive_dog
|
||||||
|
, '' -- a_ids_dog
|
||||||
|
, 'pat' -- a_names_dog
|
||||||
|
, 1 -- a_require_all_id_search_filters_met
|
||||||
|
, 1 -- a_require_any_id_search_filters_met
|
||||||
|
, 0 -- a_require_all_non_id_search_filters_met
|
||||||
|
, 1 -- a_require_any_non_id_search_filters_met
|
||||||
, 1 -- a_debug
|
, 1 -- a_debug
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|||||||
@@ -11,14 +11,16 @@ CREATE PROCEDURE parts.p_dog_save_command (
|
|||||||
IN a_debug BIT
|
IN a_debug BIT
|
||||||
)
|
)
|
||||||
BEGIN
|
BEGIN
|
||||||
DECLARE v_code_type_error_bad_data VARCHAR(100);
|
|
||||||
DECLARE v_id_type_error_bad_data INT;
|
|
||||||
DECLARE v_id_permission_dog_admin INT;
|
|
||||||
DECLARE v_id_permission_dog_new INT;
|
|
||||||
DECLARE v_id_change_set INT;
|
|
||||||
DECLARE v_time_start TIMESTAMP(6);
|
|
||||||
DECLARE v_can_admin BIT;
|
DECLARE v_can_admin BIT;
|
||||||
DECLARE v_can_create BIT;
|
DECLARE v_can_create BIT;
|
||||||
|
DECLARE v_code_type_error_bad_data VARCHAR(100);
|
||||||
|
DECLARE v_id_access_level_admin INT;
|
||||||
|
DECLARE v_id_access_level_create INT;
|
||||||
|
DECLARE v_id_change_set INT;
|
||||||
|
DECLARE v_id_permission_dog_admin 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
|
DECLARE exit handler for SQLEXCEPTION
|
||||||
BEGIN
|
BEGIN
|
||||||
@@ -34,7 +36,7 @@ BEGIN
|
|||||||
id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT
|
id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT
|
||||||
, id_type INT NULL
|
, id_type INT NULL
|
||||||
, code VARCHAR(100)
|
, code VARCHAR(100)
|
||||||
, msg VARCHAR(4000) NOT NULL
|
, msg TEXT NOT NULL
|
||||||
);
|
);
|
||||||
|
|
||||||
INSERT INTO tmp_Msg_Error (
|
INSERT INTO tmp_Msg_Error (
|
||||||
@@ -72,6 +74,7 @@ BEGIN
|
|||||||
SET v_id_type_error_bad_data := (SELECT ERROR_TYPE.id_type FROM parts.CORE_Msg_Error_Type ERROR_TYPE WHERE ERROR_TYPE.code = v_code_type_error_bad_data LIMIT 1);
|
SET v_id_type_error_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_admin := (SELECT PERMISSION.id_permission FROM parts.DOG_Permission PERMISSION WHERE PERMISSION.code = 'DOG_ADMIN' LIMIT 1);
|
SET v_id_permission_dog_admin := (SELECT PERMISSION.id_permission FROM parts.DOG_Permission PERMISSION WHERE PERMISSION.code = 'DOG_ADMIN' 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_permission_dog_new := (SELECT PERMISSION.id_permission FROM parts.DOG_Permission PERMISSION WHERE PERMISSION.code = 'DOG_CREATE' LIMIT 1);
|
||||||
|
SET v_id_access_level_admin := (SELECT PERMISSION.id_permission FROM parts.DOG_Permission PERMISSION WHERE PERMISSION.code = 'DOG_CREATE' LIMIT 1);
|
||||||
|
|
||||||
CALL parts.p_core_validate_guid ( a_guid );
|
CALL parts.p_core_validate_guid ( a_guid );
|
||||||
|
|
||||||
@@ -95,7 +98,7 @@ BEGIN
|
|||||||
id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT
|
id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT
|
||||||
, id_type INT NULL
|
, id_type INT NULL
|
||||||
, code VARCHAR(100)
|
, code VARCHAR(100)
|
||||||
, msg VARCHAR(4000) NOT NULL
|
, msg TEXT NOT NULL
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
@@ -219,11 +222,14 @@ BEGIN
|
|||||||
;
|
;
|
||||||
END IF;
|
END IF;
|
||||||
|
|
||||||
|
-- Can Admin
|
||||||
CALL parts.p_dog_calc_user(
|
CALL parts.p_dog_calc_user(
|
||||||
a_guid
|
a_guid
|
||||||
, a_id_user
|
, a_id_user
|
||||||
, FALSE -- a_get_inactive_user
|
, FALSE -- a_get_inactive_user
|
||||||
, v_id_permission_dog_admin
|
, v_id_permission_dog_admin-- ids_permission
|
||||||
|
, v_id_access_level_admin -- ids_access_level
|
||||||
|
, 0 -- a_show_errors
|
||||||
, 0 -- a_debug
|
, 0 -- a_debug
|
||||||
);
|
);
|
||||||
|
|
||||||
@@ -241,11 +247,14 @@ BEGIN
|
|||||||
, 0 -- a_debug
|
, 0 -- a_debug
|
||||||
);
|
);
|
||||||
|
|
||||||
|
-- Can Create
|
||||||
CALL parts.p_dog_calc_user(
|
CALL parts.p_dog_calc_user(
|
||||||
a_guid
|
a_guid
|
||||||
, a_id_user
|
, a_id_user
|
||||||
, FALSE -- a_get_inactive_user
|
, FALSE -- a_get_inactive_user
|
||||||
, v_id_permission_dog_new
|
, v_id_permission_dog_new-- ids_permission
|
||||||
|
, v_id_access_level_create -- ids_access_level
|
||||||
|
, 0 -- a_show_errors
|
||||||
, 0 -- a_debug
|
, 0 -- a_debug
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -17,6 +17,11 @@ BEGIN
|
|||||||
|
|
||||||
START TRANSACTION;
|
START TRANSACTION;
|
||||||
|
|
||||||
|
DELETE COMMAND_CATEGORY_T
|
||||||
|
FROM parts.DOG_Command_Category_Temp COMMAND_CATEGORY_T
|
||||||
|
WHERE COMMAND_CATEGORY_T.GUID = a_guid
|
||||||
|
;
|
||||||
|
|
||||||
DELETE COMMAND_T
|
DELETE COMMAND_T
|
||||||
FROM parts.DOG_Command_Temp COMMAND_T
|
FROM parts.DOG_Command_Temp COMMAND_T
|
||||||
WHERE COMMAND_T.GUID = a_guid
|
WHERE COMMAND_T.GUID = a_guid
|
||||||
|
|||||||
@@ -14,6 +14,12 @@ CREATE PROCEDURE parts.p_dog_get_many_command (
|
|||||||
, IN a_get_inactive_command BIT
|
, IN a_get_inactive_command BIT
|
||||||
, IN a_ids_command TEXT
|
, IN a_ids_command TEXT
|
||||||
, IN a_names_command TEXT
|
, IN a_names_command TEXT
|
||||||
|
, IN a_hand_signal_default_descriptions_command TEXT
|
||||||
|
, IN a_notes_command TEXT
|
||||||
|
, IN a_require_all_id_search_filters_met BIT
|
||||||
|
, IN a_require_any_id_search_filters_met BIT
|
||||||
|
, IN a_require_all_non_id_search_filters_met BIT
|
||||||
|
, IN a_require_any_non_id_search_filters_met BIT
|
||||||
, IN a_output_command_categories BIT
|
, IN a_output_command_categories BIT
|
||||||
, IN a_output_commands BIT
|
, IN a_output_commands BIT
|
||||||
, IN a_debug BIT
|
, IN a_debug BIT
|
||||||
@@ -23,10 +29,7 @@ BEGIN
|
|||||||
DECLARE v_code_type_error_bad_data VARCHAR(100);
|
DECLARE v_code_type_error_bad_data VARCHAR(100);
|
||||||
DECLARE v_code_type_error_no_permission VARCHAR(100);
|
DECLARE v_code_type_error_no_permission VARCHAR(100);
|
||||||
DECLARE v_guid BINARY(36);
|
DECLARE v_guid BINARY(36);
|
||||||
DECLARE v_has_filter_command_id BIT;
|
DECLARE v_id_access_level_view INT;
|
||||||
DECLARE v_has_filter_command_name BIT;
|
|
||||||
DECLARE v_has_filter_command_category_id BIT;
|
|
||||||
DECLARE v_has_filter_command_category_name BIT;
|
|
||||||
DECLARE v_id_minimum INT;
|
DECLARE v_id_minimum INT;
|
||||||
DECLARE v_id_permission_dog_view INT;
|
DECLARE v_id_permission_dog_view INT;
|
||||||
DECLARE v_id_type_error_bad_data INT;
|
DECLARE v_id_type_error_bad_data INT;
|
||||||
@@ -47,7 +50,7 @@ BEGIN
|
|||||||
id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT
|
id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT
|
||||||
, id_type INT NULL
|
, id_type INT NULL
|
||||||
, code VARCHAR(100) NOT NULL
|
, code VARCHAR(100) NOT NULL
|
||||||
, msg VARCHAR(4000) NOT NULL
|
, msg TEXT NOT NULL
|
||||||
);
|
);
|
||||||
|
|
||||||
INSERT INTO tmp_Msg_Error (
|
INSERT INTO tmp_Msg_Error (
|
||||||
@@ -87,6 +90,7 @@ BEGIN
|
|||||||
SET v_id_type_error_bad_data := (SELECT ERROR_TYPE.id_type FROM parts.CORE_Msg_Error_Type ERROR_TYPE WHERE ERROR_TYPE.code = v_code_type_error_bad_data LIMIT 1);
|
SET v_id_type_error_bad_data := (SELECT ERROR_TYPE.id_type FROM parts.CORE_Msg_Error_Type ERROR_TYPE WHERE ERROR_TYPE.code = v_code_type_error_bad_data LIMIT 1);
|
||||||
SET v_id_type_error_no_permission := (SELECT ERROR_TYPE.id_type FROM parts.CORE_Msg_Error_Type ERROR_TYPE WHERE ERROR_TYPE.code = v_code_type_error_no_permission LIMIT 1);
|
SET v_id_type_error_no_permission := (SELECT ERROR_TYPE.id_type FROM parts.CORE_Msg_Error_Type ERROR_TYPE WHERE ERROR_TYPE.code = v_code_type_error_no_permission LIMIT 1);
|
||||||
SET v_id_permission_dog_view := (SELECT PERMISSION.id_permission FROM parts.DOG_Permission PERMISSION WHERE PERMISSION.code = 'DOG_VIEW' LIMIT 1);
|
SET v_id_permission_dog_view := (SELECT PERMISSION.id_permission FROM parts.DOG_Permission PERMISSION WHERE PERMISSION.code = 'DOG_VIEW' LIMIT 1);
|
||||||
|
SET v_id_access_level_view := (SELECT ACCESS_LEVEL.id_access_level FROM parts.DOG_Access_Level ACCESS_LEVEL WHERE ACCESS_LEVEL.code = 'VIEW' LIMIT 1);
|
||||||
|
|
||||||
SET a_id_user := IFNULL(a_id_user, 0);
|
SET a_id_user := IFNULL(a_id_user, 0);
|
||||||
/*
|
/*
|
||||||
@@ -98,6 +102,12 @@ BEGIN
|
|||||||
SET a_get_inactive_command := IFNULL(a_get_inactive_command, 0);
|
SET a_get_inactive_command := IFNULL(a_get_inactive_command, 0);
|
||||||
SET a_ids_command := TRIM(IFNULL(a_ids_command, ''));
|
SET a_ids_command := TRIM(IFNULL(a_ids_command, ''));
|
||||||
SET a_names_command := TRIM(IFNULL(a_names_command, ''));
|
SET a_names_command := TRIM(IFNULL(a_names_command, ''));
|
||||||
|
SET a_hand_signal_default_descriptions_command := TRIM(IFNULL(a_hand_signal_default_descriptions_command, ''));
|
||||||
|
SET a_notes_command := TRIM(IFNULL(a_notes_command, ''));
|
||||||
|
SET a_require_all_id_search_filters_met := IFNULL(a_require_all_id_search_filters_met, 1);
|
||||||
|
SET a_require_any_id_search_filters_met := IFNULL(a_require_any_id_search_filters_met, 1);
|
||||||
|
SET a_require_all_non_id_search_filters_met := IFNULL(a_require_all_non_id_search_filters_met, 0);
|
||||||
|
SET a_require_any_non_id_search_filters_met := IFNULL(a_require_any_non_id_search_filters_met, 1);
|
||||||
*/
|
*/
|
||||||
SET a_output_command_categories := IFNULL(a_output_command_categories, 0);
|
SET a_output_command_categories := IFNULL(a_output_command_categories, 0);
|
||||||
SET a_output_commands := IFNULL(a_output_commands, 0);
|
SET a_output_commands := IFNULL(a_output_commands, 0);
|
||||||
@@ -114,6 +124,12 @@ BEGIN
|
|||||||
, a_get_inactive_command
|
, a_get_inactive_command
|
||||||
, a_ids_command
|
, a_ids_command
|
||||||
, a_names_command
|
, a_names_command
|
||||||
|
, a_hand_signal_default_descriptions_command
|
||||||
|
, a_notes_command
|
||||||
|
, a_require_all_id_search_filters_met
|
||||||
|
, a_require_any_id_search_filters_met
|
||||||
|
, a_require_all_non_id_search_filters_met
|
||||||
|
, a_require_any_non_id_search_filters_met
|
||||||
, a_output_command_categories
|
, a_output_command_categories
|
||||||
, a_output_commands
|
, a_output_commands
|
||||||
, a_debug
|
, a_debug
|
||||||
@@ -137,6 +153,9 @@ BEGIN
|
|||||||
, code VARCHAR(100)
|
, code VARCHAR(100)
|
||||||
, name VARCHAR(250)
|
, name VARCHAR(250)
|
||||||
, active BIT
|
, active BIT
|
||||||
|
|
||||||
|
, does_meet_id_filters BIT
|
||||||
|
, does_meet_non_id_filters BIT
|
||||||
);
|
);
|
||||||
|
|
||||||
CREATE TEMPORARY TABLE tmp_Command (
|
CREATE TEMPORARY TABLE tmp_Command (
|
||||||
@@ -147,13 +166,16 @@ BEGIN
|
|||||||
, can_have_button BIT
|
, can_have_button BIT
|
||||||
, notes TEXT
|
, notes TEXT
|
||||||
, active BIT
|
, active BIT
|
||||||
|
|
||||||
|
, does_meet_id_filters BIT
|
||||||
|
, does_meet_non_id_filters BIT
|
||||||
);
|
);
|
||||||
|
|
||||||
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error (
|
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error (
|
||||||
id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT
|
id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT
|
||||||
, id_type INT NULL
|
, id_type INT NULL
|
||||||
, code VARCHAR(100) NOT NULL
|
, code VARCHAR(100) NOT NULL
|
||||||
, msg VARCHAR(4000) NOT NULL
|
, msg TEXT NOT NULL
|
||||||
);
|
);
|
||||||
|
|
||||||
-- Permissions
|
-- Permissions
|
||||||
@@ -162,7 +184,9 @@ BEGIN
|
|||||||
v_guid
|
v_guid
|
||||||
, a_id_user
|
, a_id_user
|
||||||
, FALSE -- a_get_inactive_user
|
, FALSE -- a_get_inactive_user
|
||||||
, v_id_permission_dog_view
|
, v_id_permission_dog_view -- ids_permission
|
||||||
|
, v_id_access_level_view -- ids_access_level
|
||||||
|
, 0 -- a_show_errors
|
||||||
, 0 -- a_debug
|
, 0 -- a_debug
|
||||||
;
|
;
|
||||||
END IF;
|
END IF;
|
||||||
@@ -171,7 +195,9 @@ BEGIN
|
|||||||
v_guid
|
v_guid
|
||||||
, a_id_user
|
, a_id_user
|
||||||
, FALSE -- a_get_inactive_user
|
, FALSE -- a_get_inactive_user
|
||||||
, v_id_permission_dog_view
|
, v_id_permission_dog_view -- ids_permission
|
||||||
|
, v_id_access_level_view -- ids_access_level
|
||||||
|
, 0 -- a_show_errors
|
||||||
, 0 -- a_debug
|
, 0 -- a_debug
|
||||||
);
|
);
|
||||||
|
|
||||||
@@ -209,7 +235,7 @@ BEGIN
|
|||||||
END IF;
|
END IF;
|
||||||
|
|
||||||
CALL parts.p_dog_clear_calc_user(
|
CALL parts.p_dog_clear_calc_user(
|
||||||
v_guid
|
v_guid
|
||||||
, 0 -- a_debug
|
, 0 -- a_debug
|
||||||
);
|
);
|
||||||
|
|
||||||
@@ -218,7 +244,7 @@ BEGIN
|
|||||||
IF NOT EXISTS(SELECT * FROM tmp_Msg_Error t_ERROR INNER JOIN parts.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type WHERE ERROR_TYPE.is_breaking_error = 1 LIMIT 1) THEN
|
IF NOT EXISTS(SELECT * FROM tmp_Msg_Error t_ERROR INNER JOIN parts.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type WHERE ERROR_TYPE.is_breaking_error = 1 LIMIT 1) THEN
|
||||||
IF a_debug = 1 THEN
|
IF a_debug = 1 THEN
|
||||||
SELECT
|
SELECT
|
||||||
v_guid -- a_guid
|
v_guid -- a_guid
|
||||||
, a_id_user -- a_id_user
|
, a_id_user -- a_id_user
|
||||||
, a_get_all_command_category
|
, a_get_all_command_category
|
||||||
, a_get_inactive_command_category
|
, a_get_inactive_command_category
|
||||||
@@ -228,13 +254,19 @@ BEGIN
|
|||||||
, a_get_inactive_command -- a_get_inactive_command
|
, a_get_inactive_command -- a_get_inactive_command
|
||||||
, a_ids_command -- a_ids_command
|
, a_ids_command -- a_ids_command
|
||||||
, a_names_command -- a_names_command
|
, a_names_command -- a_names_command
|
||||||
|
, a_hand_signal_default_descriptions_command -- a_hand_signal_default_descriptions_command
|
||||||
|
, a_notes_command -- a_notes_command
|
||||||
|
, a_require_all_id_search_filters_met -- a_require_all_id_search_filters_met
|
||||||
|
, a_require_any_id_search_filters_met -- a_require_any_id_search_filters_met
|
||||||
|
, a_require_all_non_id_search_filters_met -- a_require_all_non_id_search_filters_met
|
||||||
|
, a_require_any_non_id_search_filters_met -- a_require_any_non_id_search_filters_met
|
||||||
, 0 -- a_show_errors
|
, 0 -- a_show_errors
|
||||||
, 0 -- a_debug
|
, 0 -- a_debug
|
||||||
;
|
;
|
||||||
END IF;
|
END IF;
|
||||||
|
|
||||||
CALL parts.p_dog_calc_command (
|
CALL parts.p_dog_calc_command (
|
||||||
v_guid -- a_guid
|
v_guid -- a_guid
|
||||||
, a_id_user -- a_id_user
|
, a_id_user -- a_id_user
|
||||||
, a_get_all_command_category
|
, a_get_all_command_category
|
||||||
, a_get_inactive_command_category
|
, a_get_inactive_command_category
|
||||||
@@ -244,21 +276,40 @@ BEGIN
|
|||||||
, a_get_inactive_command -- a_get_inactive_command
|
, a_get_inactive_command -- a_get_inactive_command
|
||||||
, a_ids_command -- a_ids_command
|
, a_ids_command -- a_ids_command
|
||||||
, a_names_command -- a_names_command
|
, a_names_command -- a_names_command
|
||||||
|
, a_hand_signal_default_descriptions_command -- a_hand_signal_default_descriptions_command
|
||||||
|
, a_notes_command -- a_notes_command
|
||||||
|
, a_require_all_id_search_filters_met -- a_require_all_id_search_filters_met
|
||||||
|
, a_require_any_id_search_filters_met -- a_require_any_id_search_filters_met
|
||||||
|
, a_require_all_non_id_search_filters_met -- a_require_all_non_id_search_filters_met
|
||||||
|
, a_require_any_non_id_search_filters_met -- a_require_any_non_id_search_filters_met
|
||||||
, 0 -- a_show_errors
|
, 0 -- a_show_errors
|
||||||
, 0 -- a_debug
|
, 0 -- a_debug
|
||||||
);
|
);
|
||||||
|
|
||||||
|
IF a_debug = 1 THEN
|
||||||
|
SELECT COUNT(*) FROM parts.DOG_Command_Category_Temp;
|
||||||
|
SELECT * FROM parts.DOG_Command_Category_Temp;
|
||||||
|
SELECT COUNT(*) FROM parts.DOG_Command_Temp;
|
||||||
|
SELECT * FROM parts.DOG_Command_Temp;
|
||||||
|
END IF;
|
||||||
|
|
||||||
INSERT INTO tmp_Command_Category (
|
INSERT INTO tmp_Command_Category (
|
||||||
id_command_category
|
id_command_category
|
||||||
, code
|
, code
|
||||||
, name
|
, name
|
||||||
, active
|
, active
|
||||||
|
|
||||||
|
, does_meet_id_filters
|
||||||
|
, does_meet_non_id_filters
|
||||||
)
|
)
|
||||||
SELECT
|
SELECT
|
||||||
COMMAND_CATEGORY_T.id_command_category
|
COMMAND_CATEGORY_T.id_command_category
|
||||||
, COMMAND_CATEGORY_T.code
|
, COMMAND_CATEGORY_T.code
|
||||||
, COMMAND_CATEGORY_T.name
|
, COMMAND_CATEGORY_T.name
|
||||||
, COMMAND_CATEGORY_T.active
|
, COMMAND_CATEGORY_T.active
|
||||||
|
|
||||||
|
, COMMAND_CATEGORY_T.does_meet_id_filters
|
||||||
|
, COMMAND_CATEGORY_T.does_meet_non_id_filters
|
||||||
FROM parts.DOG_Command_Category_Temp COMMAND_CATEGORY_T
|
FROM parts.DOG_Command_Category_Temp COMMAND_CATEGORY_T
|
||||||
WHERE COMMAND_CATEGORY_T.GUID = v_guid
|
WHERE COMMAND_CATEGORY_T.GUID = v_guid
|
||||||
;
|
;
|
||||||
@@ -271,6 +322,9 @@ BEGIN
|
|||||||
, can_have_button
|
, can_have_button
|
||||||
, notes
|
, notes
|
||||||
, active
|
, active
|
||||||
|
|
||||||
|
, does_meet_id_filters
|
||||||
|
, does_meet_non_id_filters
|
||||||
)
|
)
|
||||||
SELECT
|
SELECT
|
||||||
COMMAND_T.id_command
|
COMMAND_T.id_command
|
||||||
@@ -280,12 +334,17 @@ BEGIN
|
|||||||
, COMMAND_T.can_have_button
|
, COMMAND_T.can_have_button
|
||||||
, COMMAND_T.notes
|
, COMMAND_T.notes
|
||||||
, COMMAND_T.active
|
, COMMAND_T.active
|
||||||
|
|
||||||
|
, COMMAND_T.does_meet_id_filters
|
||||||
|
, COMMAND_T.does_meet_non_id_filters
|
||||||
FROM parts.DOG_Command_Temp COMMAND_T
|
FROM parts.DOG_Command_Temp COMMAND_T
|
||||||
WHERE COMMAND_T.GUID = v_guid
|
WHERE COMMAND_T.GUID = v_guid
|
||||||
;
|
;
|
||||||
|
|
||||||
IF a_debug = 1 THEN
|
IF a_debug = 1 THEN
|
||||||
|
SELECT COUNT(*) FROM tmp_Command_Category;
|
||||||
SELECT * FROM tmp_Command_Category;
|
SELECT * FROM tmp_Command_Category;
|
||||||
|
SELECT COUNT(*) FROM tmp_Command;
|
||||||
SELECT * FROM tmp_Command;
|
SELECT * FROM tmp_Command;
|
||||||
END IF;
|
END IF;
|
||||||
END IF;
|
END IF;
|
||||||
@@ -310,6 +369,9 @@ BEGIN
|
|||||||
, t_COMMAND_CATEGORY.code
|
, t_COMMAND_CATEGORY.code
|
||||||
, t_COMMAND_CATEGORY.name
|
, t_COMMAND_CATEGORY.name
|
||||||
, t_COMMAND_CATEGORY.active
|
, t_COMMAND_CATEGORY.active
|
||||||
|
|
||||||
|
, t_COMMAND_CATEGORY.does_meet_id_filters
|
||||||
|
, t_COMMAND_CATEGORY.does_meet_non_id_filters
|
||||||
FROM tmp_Command_Category t_COMMAND_CATEGORY
|
FROM tmp_Command_Category t_COMMAND_CATEGORY
|
||||||
;
|
;
|
||||||
END IF;
|
END IF;
|
||||||
@@ -324,6 +386,9 @@ BEGIN
|
|||||||
, t_COMMAND.can_have_button
|
, t_COMMAND.can_have_button
|
||||||
, t_COMMAND.notes
|
, t_COMMAND.notes
|
||||||
, t_COMMAND.active
|
, t_COMMAND.active
|
||||||
|
|
||||||
|
, t_COMMAND.does_meet_id_filters
|
||||||
|
, t_COMMAND.does_meet_non_id_filters
|
||||||
FROM tmp_Command t_COMMAND
|
FROM tmp_Command t_COMMAND
|
||||||
;
|
;
|
||||||
END IF;
|
END IF;
|
||||||
@@ -347,7 +412,7 @@ BEGIN
|
|||||||
SELECT * FROM tmp_Command;
|
SELECT * FROM tmp_Command;
|
||||||
END IF;
|
END IF;
|
||||||
|
|
||||||
CALL parts.p_dog_clear_calc_dog(
|
CALL parts.p_dog_clear_calc_command(
|
||||||
v_guid -- a_guid
|
v_guid -- a_guid
|
||||||
, 0 -- a_debug
|
, 0 -- a_debug
|
||||||
);
|
);
|
||||||
@@ -375,6 +440,34 @@ CALL parts.p_dog_get_many_command (
|
|||||||
, 0 -- a_get_inactive_command
|
, 0 -- a_get_inactive_command
|
||||||
, '' -- a_ids_command
|
, '' -- a_ids_command
|
||||||
, '' -- a_names_command
|
, '' -- a_names_command
|
||||||
|
, '' -- a_hand_signal_default_descriptions_command
|
||||||
|
, '' -- a_notes_command
|
||||||
|
, 1 -- a_require_all_id_search_filters_met
|
||||||
|
, 1 -- a_require_any_id_search_filters_met
|
||||||
|
, 0 -- a_require_all_non_id_search_filters_met
|
||||||
|
, 1 -- a_require_any_non_id_search_filters_met
|
||||||
|
, 1 -- a_output_command_categories
|
||||||
|
, 1 -- a_output_commands
|
||||||
|
, 1 -- a_debug
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
CALL demo.p_dog_get_many_command (
|
||||||
|
1 -- 'auth0|6582b95c895d09a70ba10fef', -- a_id_user
|
||||||
|
, 1 -- a_get_all_command_category
|
||||||
|
, 0 -- a_get_inactive_command_category
|
||||||
|
, '' -- a_ids_command_category
|
||||||
|
, 'pat,point' -- a_names_command_category
|
||||||
|
, 1 -- a_get_all_command
|
||||||
|
, 0 -- a_get_inactive_command
|
||||||
|
, '' -- a_ids_command
|
||||||
|
, 'pat,point' -- a_names_command
|
||||||
|
, 'pat,point' -- a_hand_signal_default_descriptions_command
|
||||||
|
, 'pat,point' -- a_notes_command
|
||||||
|
, 1 -- a_require_all_id_search_filters_met
|
||||||
|
, 1 -- a_require_any_id_search_filters_met
|
||||||
|
, 0 -- a_require_all_non_id_search_filters_met
|
||||||
|
, 1 -- a_require_any_non_id_search_filters_met
|
||||||
, 1 -- a_output_command_categories
|
, 1 -- a_output_command_categories
|
||||||
, 1 -- a_output_commands
|
, 1 -- a_output_commands
|
||||||
, 1 -- a_debug
|
, 1 -- a_debug
|
||||||
|
|||||||
@@ -7,6 +7,9 @@ DROP PROCEDURE IF EXISTS parts.p_dog_get_many_dog_command_link;
|
|||||||
DELIMITER //
|
DELIMITER //
|
||||||
CREATE PROCEDURE parts.p_dog_get_many_dog_command_link (
|
CREATE PROCEDURE parts.p_dog_get_many_dog_command_link (
|
||||||
IN a_id_user INT
|
IN a_id_user INT
|
||||||
|
, IN a_get_all_link BIT
|
||||||
|
, IN a_get_inactive_link BIT
|
||||||
|
, IN a_ids_link TEXT
|
||||||
, IN a_get_all_dog BIT
|
, IN a_get_all_dog BIT
|
||||||
, IN a_get_inactive_dog BIT
|
, IN a_get_inactive_dog BIT
|
||||||
, IN a_ids_dog TEXT
|
, IN a_ids_dog TEXT
|
||||||
@@ -19,12 +22,30 @@ CREATE PROCEDURE parts.p_dog_get_many_dog_command_link (
|
|||||||
, IN a_get_inactive_command BIT
|
, IN a_get_inactive_command BIT
|
||||||
, IN a_ids_command TEXT
|
, IN a_ids_command TEXT
|
||||||
, IN a_names_command TEXT
|
, IN a_names_command TEXT
|
||||||
|
, IN a_hand_signal_descriptions_link TEXT
|
||||||
|
, IN a_notes_command TEXT
|
||||||
|
, IN a_notes_link TEXT
|
||||||
|
, IN a_require_all_id_search_filters_met BIT
|
||||||
|
, IN a_require_any_id_search_filters_met BIT
|
||||||
|
, IN a_require_all_non_id_search_filters_met BIT
|
||||||
|
, IN a_require_any_non_id_search_filters_met BIT
|
||||||
, IN a_debug BIT
|
, IN a_debug BIT
|
||||||
)
|
)
|
||||||
BEGIN
|
BEGIN
|
||||||
DECLARE v_code_type_error_bad_data VARCHAR(100);
|
DECLARE v_code_type_error_bad_data VARCHAR(100);
|
||||||
DECLARE v_code_type_error_no_permission VARCHAR(100);
|
DECLARE v_code_type_error_no_permission VARCHAR(100);
|
||||||
DECLARE v_code_type_error_warning VARCHAR(100);
|
DECLARE v_code_type_error_warning VARCHAR(100);
|
||||||
|
DECLARE v_has_filter_command_category_id BIT;
|
||||||
|
DECLARE v_has_filter_command_category_name BIT;
|
||||||
|
DECLARE v_has_filter_command_id BIT;
|
||||||
|
DECLARE v_has_filter_command_name BIT;
|
||||||
|
DECLARE v_has_filter_command_notes BIT;
|
||||||
|
DECLARE v_has_filter_dog_id BIT;
|
||||||
|
DECLARE v_has_filter_dog_name BIT;
|
||||||
|
DECLARE v_has_filter_link_hand_signal_description BIT;
|
||||||
|
DECLARE v_has_filter_link_id BIT;
|
||||||
|
DECLARE v_has_filter_link_notes BIT;
|
||||||
|
DECLARE v_id_access_level_view INT;
|
||||||
DECLARE v_id_type_error_bad_data INT;
|
DECLARE v_id_type_error_bad_data INT;
|
||||||
DECLARE v_id_type_error_no_permission INT;
|
DECLARE v_id_type_error_no_permission INT;
|
||||||
DECLARE v_id_type_error_warning INT;
|
DECLARE v_id_type_error_warning INT;
|
||||||
@@ -49,7 +70,7 @@ BEGIN
|
|||||||
id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT
|
id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT
|
||||||
, id_type INT NULL
|
, id_type INT NULL
|
||||||
, code VARCHAR(100) NOT NULL
|
, code VARCHAR(100) NOT NULL
|
||||||
, msg VARCHAR(4000) NOT NULL
|
, msg TEXT NOT NULL
|
||||||
);
|
);
|
||||||
|
|
||||||
INSERT INTO tmp_Msg_Error (
|
INSERT INTO tmp_Msg_Error (
|
||||||
@@ -91,8 +112,12 @@ BEGIN
|
|||||||
SET v_id_type_error_no_permission := (SELECT ERROR_TYPE.id_type FROM parts.CORE_Msg_Error_Type ERROR_TYPE WHERE ERROR_TYPE.code = v_code_type_error_no_permission LIMIT 1);
|
SET v_id_type_error_no_permission := (SELECT ERROR_TYPE.id_type FROM parts.CORE_Msg_Error_Type ERROR_TYPE WHERE ERROR_TYPE.code = v_code_type_error_no_permission LIMIT 1);
|
||||||
SET v_id_type_error_warning := (SELECT ERROR_TYPE.id_type FROM parts.CORE_Msg_Error_Type ERROR_TYPE WHERE ERROR_TYPE.code = v_code_type_error_warning LIMIT 1);
|
SET v_id_type_error_warning := (SELECT ERROR_TYPE.id_type FROM parts.CORE_Msg_Error_Type ERROR_TYPE WHERE ERROR_TYPE.code = v_code_type_error_warning LIMIT 1);
|
||||||
SET v_id_permission_dog_view := (SELECT PERMISSION.id_permission FROM parts.DOG_Permission PERMISSION WHERE PERMISSION.code = 'DOG_VIEW' LIMIT 1);
|
SET v_id_permission_dog_view := (SELECT PERMISSION.id_permission FROM parts.DOG_Permission PERMISSION WHERE PERMISSION.code = 'DOG_VIEW' LIMIT 1);
|
||||||
|
SET v_id_access_level_view := (SELECT ACCESS_LEVEL.id_access_level FROM parts.DOG_Access_Level ACCESS_LEVEL WHERE ACCESS_LEVEL.code = 'VIEW' LIMIT 1);
|
||||||
|
|
||||||
SET a_id_user := IFNULL(a_id_user, 0);
|
SET a_id_user := IFNULL(a_id_user, 0);
|
||||||
|
SET a_get_all_link := IFNULL(a_get_all_link, 0);
|
||||||
|
SET a_get_inactive_link := IFNULL(a_get_inactive_link, 0);
|
||||||
|
SET a_ids_link := TRIM(IFNULL(a_ids_link, ''));
|
||||||
-- SET a_get_all_dog := IFNULL(a_get_all_dog, 0);
|
-- SET a_get_all_dog := IFNULL(a_get_all_dog, 0);
|
||||||
-- SET a_get_inactive_dog := IFNULL(a_get_inactive_dog, 0);
|
-- SET a_get_inactive_dog := IFNULL(a_get_inactive_dog, 0);
|
||||||
-- SET a_ids_dog := TRIM(IFNULL(a_ids_dog, ''));
|
-- SET a_ids_dog := TRIM(IFNULL(a_ids_dog, ''));
|
||||||
@@ -102,11 +127,33 @@ BEGIN
|
|||||||
-- SET a_get_all_command := IFNULL(a_get_all_command, 0);
|
-- SET a_get_all_command := IFNULL(a_get_all_command, 0);
|
||||||
-- SET a_get_inactive_command := IFNULL(a_get_inactive_command, 0);
|
-- SET a_get_inactive_command := IFNULL(a_get_inactive_command, 0);
|
||||||
-- SET a_ids_command := TRIM(IFNULL(a_ids_command, ''));
|
-- SET a_ids_command := TRIM(IFNULL(a_ids_command, ''));
|
||||||
|
-- SET a_names_command := TRIM(IFNULL(a_names_command, ''));
|
||||||
|
-- SET a_notes_command := TRIM(IFNULL(a_notes_command, ''));
|
||||||
|
SET a_hand_signal_descriptions_link := TRIM(IFNULL(a_hand_signal_descriptions_link, ''));
|
||||||
|
SET a_notes_link := TRIM(IFNULL(a_notes_link, ''));
|
||||||
|
SET a_require_all_id_search_filters_met := IFNULL(a_require_all_id_search_filters_met, 1);
|
||||||
|
SET a_require_any_id_search_filters_met := IFNULL(a_require_any_id_search_filters_met, 1);
|
||||||
|
SET a_require_all_non_id_search_filters_met := IFNULL(a_require_all_non_id_search_filters_met, 0);
|
||||||
|
SET a_require_any_non_id_search_filters_met := IFNULL(a_require_any_non_id_search_filters_met, 1);
|
||||||
SET a_debug := IFNULL(a_debug, 0);
|
SET a_debug := IFNULL(a_debug, 0);
|
||||||
|
|
||||||
|
SET v_has_filter_dog_id = CASE WHEN a_ids_dog = '' THEN 0 ELSE 1 END;
|
||||||
|
SET v_has_filter_dog_name = CASE WHEN a_names_dog = '' THEN 0 ELSE 1 END;
|
||||||
|
SET v_has_filter_command_category_id = CASE WHEN a_ids_command_category = '' THEN 0 ELSE 1 END;
|
||||||
|
SET v_has_filter_command_category_name = CASE WHEN a_names_command_category = '' THEN 0 ELSE 1 END;
|
||||||
|
SET v_has_filter_command_id = CASE WHEN a_ids_command = '' THEN 0 ELSE 1 END;
|
||||||
|
SET v_has_filter_command_name = CASE WHEN a_names_command = '' THEN 0 ELSE 1 END;
|
||||||
|
SET v_has_filter_link_hand_signal_description = CASE WHEN a_hand_signal_descriptions_link = '' THEN 0 ELSE 1 END;
|
||||||
|
SET v_has_filter_command_notes = CASE WHEN a_notes_command = '' THEN 0 ELSE 1 END;
|
||||||
|
SET v_has_filter_link_id = CASE WHEN a_ids_link = '' THEN 0 ELSE 1 END;
|
||||||
|
SET v_has_filter_link_notes = CASE WHEN a_notes_link = '' THEN 0 ELSE 1 END;
|
||||||
|
|
||||||
IF a_debug = 1 THEN
|
IF a_debug = 1 THEN
|
||||||
SELECT
|
SELECT
|
||||||
a_id_user
|
a_id_user
|
||||||
|
, a_get_all_link
|
||||||
|
, a_get_inactive_link
|
||||||
|
, a_ids_link
|
||||||
, a_get_all_dog
|
, a_get_all_dog
|
||||||
, a_get_inactive_dog
|
, a_get_inactive_dog
|
||||||
, a_ids_dog
|
, a_ids_dog
|
||||||
@@ -119,6 +166,12 @@ BEGIN
|
|||||||
, a_get_inactive_command
|
, a_get_inactive_command
|
||||||
, a_ids_command
|
, a_ids_command
|
||||||
, a_names_command
|
, a_names_command
|
||||||
|
, a_hand_signal_descriptions_link
|
||||||
|
, a_notes_link
|
||||||
|
, a_require_all_id_search_filters_met
|
||||||
|
, a_require_any_id_search_filters_met
|
||||||
|
, a_require_all_non_id_search_filters_met
|
||||||
|
, a_require_any_non_id_search_filters_met
|
||||||
, a_debug
|
, a_debug
|
||||||
;
|
;
|
||||||
|
|
||||||
@@ -130,13 +183,42 @@ BEGIN
|
|||||||
, v_id_permission_dog_view
|
, v_id_permission_dog_view
|
||||||
, v_time_start
|
, v_time_start
|
||||||
;
|
;
|
||||||
|
|
||||||
|
SELECT
|
||||||
|
v_has_filter_dog_id
|
||||||
|
, v_has_filter_dog_name
|
||||||
|
, v_has_filter_command_category_id
|
||||||
|
, v_has_filter_command_category_name
|
||||||
|
, v_has_filter_command_id
|
||||||
|
, v_has_filter_command_name
|
||||||
|
, v_has_filter_link_hand_signal_description
|
||||||
|
, v_has_filter_command_notes
|
||||||
|
, v_has_filter_link_id
|
||||||
|
, v_has_filter_link_notes
|
||||||
|
;
|
||||||
END IF;
|
END IF;
|
||||||
|
|
||||||
DROP TEMPORARY TABLE IF EXISTS tmp_Split;
|
DROP TEMPORARY TABLE IF EXISTS tmp_Split_Notes_Calc_Dog_Command_Link;
|
||||||
|
DROP TEMPORARY TABLE IF EXISTS tmp_Split_Hand_Signal_Description_Calc_Dog_Command_Link;
|
||||||
|
DROP TEMPORARY TABLE IF EXISTS tmp_Split_Id_Calc_Dog_Command_Link;
|
||||||
DROP TEMPORARY TABLE IF EXISTS tmp_Msg_Error;
|
DROP TEMPORARY TABLE IF EXISTS tmp_Msg_Error;
|
||||||
DROP TEMPORARY TABLE IF EXISTS tmp_Command;
|
DROP TEMPORARY TABLE IF EXISTS tmp_Command;
|
||||||
DROP TEMPORARY TABLE IF EXISTS tmp_Command_Category;
|
DROP TEMPORARY TABLE IF EXISTS tmp_Command_Category;
|
||||||
DROP TEMPORARY TABLE IF EXISTS tmp_Dog;
|
DROP TEMPORARY TABLE IF EXISTS tmp_Dog;
|
||||||
|
DROP TEMPORARY TABLE IF EXISTS tmp_Dog_Command_Link;
|
||||||
|
|
||||||
|
CREATE TEMPORARY TABLE tmp_Dog_Command_Link (
|
||||||
|
id_link INT NOT NULL
|
||||||
|
, id_dog INT NOT NULL
|
||||||
|
, id_command INT NOT NULL
|
||||||
|
, hand_signal_description TEXT
|
||||||
|
, notes TEXT
|
||||||
|
, active BIT
|
||||||
|
|
||||||
|
, does_meet_id_filters BIT NOT NULL
|
||||||
|
, does_meet_non_id_filters BIT NOT NULL
|
||||||
|
-- , has_button
|
||||||
|
);
|
||||||
|
|
||||||
CREATE TEMPORARY TABLE tmp_Dog (
|
CREATE TEMPORARY TABLE tmp_Dog (
|
||||||
id_dog INT NOT NULL
|
id_dog INT NOT NULL
|
||||||
@@ -145,6 +227,9 @@ BEGIN
|
|||||||
, mass_kg DECIMAL(7, 3)
|
, mass_kg DECIMAL(7, 3)
|
||||||
, notes TEXT
|
, notes TEXT
|
||||||
, active BIT
|
, active BIT
|
||||||
|
|
||||||
|
, does_meet_id_filters BIT NOT NULL
|
||||||
|
, does_meet_non_id_filters BIT NOT NULL
|
||||||
);
|
);
|
||||||
|
|
||||||
CREATE TEMPORARY TABLE tmp_Command_Category (
|
CREATE TEMPORARY TABLE tmp_Command_Category (
|
||||||
@@ -152,6 +237,9 @@ BEGIN
|
|||||||
, code VARCHAR(100)
|
, code VARCHAR(100)
|
||||||
, name VARCHAR(250)
|
, name VARCHAR(250)
|
||||||
, active BIT
|
, active BIT
|
||||||
|
|
||||||
|
, does_meet_id_filters BIT NOT NULL
|
||||||
|
, does_meet_non_id_filters BIT NOT NULL
|
||||||
);
|
);
|
||||||
|
|
||||||
CREATE TEMPORARY TABLE tmp_Command (
|
CREATE TEMPORARY TABLE tmp_Command (
|
||||||
@@ -162,15 +250,36 @@ BEGIN
|
|||||||
, can_have_button BIT
|
, can_have_button BIT
|
||||||
, notes TEXT
|
, notes TEXT
|
||||||
, active BIT
|
, active BIT
|
||||||
|
|
||||||
|
, does_meet_id_filters BIT NOT NULL
|
||||||
|
, does_meet_non_id_filters BIT NOT NULL
|
||||||
);
|
);
|
||||||
|
|
||||||
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error (
|
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error (
|
||||||
id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT
|
id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT
|
||||||
, id_type INT NULL
|
, id_type INT NULL
|
||||||
, code VARCHAR(100) NOT NULL
|
, code VARCHAR(100) NOT NULL
|
||||||
, msg VARCHAR(4000) 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
|
||||||
|
);
|
||||||
|
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
|
||||||
|
);
|
||||||
|
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
|
||||||
|
);
|
||||||
|
DELETE FROM tmp_Split_Notes_Calc_Dog_Command_Link;
|
||||||
|
|
||||||
|
|
||||||
-- Permissions
|
-- Permissions
|
||||||
IF a_debug = 1 THEN
|
IF a_debug = 1 THEN
|
||||||
@@ -178,7 +287,9 @@ BEGIN
|
|||||||
v_guid
|
v_guid
|
||||||
, a_id_user
|
, a_id_user
|
||||||
, FALSE -- a_get_inactive_user
|
, FALSE -- a_get_inactive_user
|
||||||
, v_id_permission_dog_view
|
, v_id_permission_dog_view -- A_ids_permission
|
||||||
|
, v_id_access_level_view -- ids_access_level
|
||||||
|
, 0 -- a_show_errors
|
||||||
, 0 -- a_debug
|
, 0 -- a_debug
|
||||||
;
|
;
|
||||||
END IF;
|
END IF;
|
||||||
@@ -188,6 +299,8 @@ BEGIN
|
|||||||
, a_id_user -- a_ids_user
|
, a_id_user -- a_ids_user
|
||||||
, FALSE -- a_get_inactive_user
|
, FALSE -- a_get_inactive_user
|
||||||
, v_id_permission_dog_view -- a_ids_permission
|
, v_id_permission_dog_view -- a_ids_permission
|
||||||
|
, v_id_access_level_view -- ids_access_level
|
||||||
|
, 0 -- a_show_errors
|
||||||
, 0 -- a_debug
|
, 0 -- a_debug
|
||||||
);
|
);
|
||||||
|
|
||||||
@@ -223,32 +336,41 @@ BEGIN
|
|||||||
END IF;
|
END IF;
|
||||||
|
|
||||||
CALL parts.p_dog_clear_calc_user(
|
CALL parts.p_dog_clear_calc_user(
|
||||||
v_guid
|
v_guid
|
||||||
, 0 -- a_debug
|
, 0 -- a_debug
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
-- Call Dog Calc
|
-- Call Dog Calc
|
||||||
IF NOT EXISTS(SELECT * FROM tmp_Msg_Error t_ERROR INNER JOIN parts.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type WHERE ERROR_TYPE.is_breaking_error = 1 LIMIT 1) THEN
|
IF NOT EXISTS(SELECT * FROM tmp_Msg_Error t_ERROR INNER JOIN parts.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type WHERE ERROR_TYPE.is_breaking_error = 1 LIMIT 1) THEN
|
||||||
IF a_debug = 1 THEN
|
IF a_debug = 1 THEN
|
||||||
SELECT
|
SELECT
|
||||||
v_guid -- a_guid
|
v_guid -- a_guid
|
||||||
, a_id_user -- a_id_user
|
, a_id_user -- a_id_user
|
||||||
, a_get_all_dog -- a_get_all_dog
|
, a_get_all_dog -- a_get_all_dog
|
||||||
, a_get_inactive_dog -- a_get_inactive_dog
|
, a_get_inactive_dog -- a_get_inactive_dog
|
||||||
, a_ids_dog -- a_ids_dog
|
, a_ids_dog -- a_ids_dog
|
||||||
, a_names_dog -- a_names_dog
|
, a_names_dog -- a_names_dog
|
||||||
|
, a_require_all_id_search_filters_met -- a_require_all_id_search_filters_met
|
||||||
|
, a_require_any_id_search_filters_met -- a_require_any_id_search_filters_met
|
||||||
|
, a_require_all_non_id_search_filters_met -- a_require_all_non_id_search_filters_met
|
||||||
|
, a_require_any_non_id_search_filters_met -- a_require_any_non_id_search_filters_met
|
||||||
, 0 -- a_show_errors
|
, 0 -- a_show_errors
|
||||||
, 0 -- a_debug
|
, 0 -- a_debug
|
||||||
;
|
;
|
||||||
END IF;
|
END IF;
|
||||||
|
|
||||||
CALL parts.p_dog_calc_dog(
|
CALL parts.p_dog_calc_dog(
|
||||||
v_guid -- a_guid
|
v_guid -- a_guid
|
||||||
, a_id_user -- a_id_user
|
, a_id_user -- a_id_user
|
||||||
, a_get_all_dog -- a_get_all_dog
|
, a_get_all_dog -- a_get_all_dog
|
||||||
, a_get_inactive_dog -- a_get_inactive_dog
|
, a_get_inactive_dog -- a_get_inactive_dog
|
||||||
, a_ids_dog -- a_ids_dog
|
, a_ids_dog -- a_ids_dog
|
||||||
, a_names_dog -- a_names_dog
|
, a_names_dog -- a_names_dog
|
||||||
|
, a_require_all_id_search_filters_met -- a_require_all_id_search_filters_met
|
||||||
|
, 0 -- a_require_any_id_search_filters_met -- a_require_any_id_search_filters_met
|
||||||
|
, a_require_all_non_id_search_filters_met -- a_require_all_non_id_search_filters_met
|
||||||
|
, 0 -- a_require_any_non_id_search_filters_met -- a_require_any_non_id_search_filters_met
|
||||||
, 0 -- a_show_errors
|
, 0 -- a_show_errors
|
||||||
, 0 -- a_debug
|
, 0 -- a_debug
|
||||||
);
|
);
|
||||||
@@ -260,6 +382,9 @@ BEGIN
|
|||||||
, mass_kg
|
, mass_kg
|
||||||
, notes
|
, notes
|
||||||
, active
|
, active
|
||||||
|
|
||||||
|
, does_meet_id_filters
|
||||||
|
, does_meet_non_id_filters
|
||||||
)
|
)
|
||||||
SELECT
|
SELECT
|
||||||
DOG_T.id_dog
|
DOG_T.id_dog
|
||||||
@@ -268,6 +393,9 @@ BEGIN
|
|||||||
, DOG_T.mass_kg
|
, DOG_T.mass_kg
|
||||||
, DOG_T.notes
|
, DOG_T.notes
|
||||||
, DOG_T.active
|
, DOG_T.active
|
||||||
|
|
||||||
|
, DOG_T.does_meet_id_filters
|
||||||
|
, DOG_T.does_meet_non_id_filters
|
||||||
FROM parts.DOG_Dog_Temp DOG_T
|
FROM parts.DOG_Dog_Temp DOG_T
|
||||||
WHERE DOG_T.GUID = v_guid
|
WHERE DOG_T.GUID = v_guid
|
||||||
;
|
;
|
||||||
@@ -291,6 +419,12 @@ BEGIN
|
|||||||
, a_get_inactive_command -- a_get_inactive_command
|
, a_get_inactive_command -- a_get_inactive_command
|
||||||
, a_ids_command -- a_ids_command
|
, a_ids_command -- a_ids_command
|
||||||
, a_names_command -- a_names_command
|
, a_names_command -- a_names_command
|
||||||
|
, '' -- a_hand_signal_descriptions_link
|
||||||
|
, a_notes_command -- a_notes_command
|
||||||
|
, a_require_all_id_search_filters_met -- a_require_all_id_search_filters_met
|
||||||
|
, 0 -- a_require_any_id_search_filters_met -- a_require_any_id_search_filters_met
|
||||||
|
, a_require_all_non_id_search_filters_met -- a_require_all_non_id_search_filters_met
|
||||||
|
, 0 -- a_require_any_non_id_search_filters_met -- a_require_any_non_id_search_filters_met
|
||||||
, 0 -- a_show_errors
|
, 0 -- a_show_errors
|
||||||
, 0 -- a_debug
|
, 0 -- a_debug
|
||||||
;
|
;
|
||||||
@@ -307,6 +441,12 @@ BEGIN
|
|||||||
, a_get_inactive_command -- a_get_inactive_command
|
, a_get_inactive_command -- a_get_inactive_command
|
||||||
, a_ids_command -- a_ids_command
|
, a_ids_command -- a_ids_command
|
||||||
, a_names_command -- a_names_command
|
, a_names_command -- a_names_command
|
||||||
|
, '' -- a_hand_signal_descriptions_link
|
||||||
|
, a_notes_command -- a_notes_command
|
||||||
|
, a_require_all_id_search_filters_met -- a_require_all_id_search_filters_met
|
||||||
|
, 0 -- a_require_any_id_search_filters_met -- a_require_any_id_search_filters_met
|
||||||
|
, a_require_all_non_id_search_filters_met -- a_require_all_non_id_search_filters_met
|
||||||
|
, 0 -- a_require_any_non_id_search_filters_met -- a_require_any_non_id_search_filters_met
|
||||||
, 0 -- a_show_errors
|
, 0 -- a_show_errors
|
||||||
, 0 -- a_debug
|
, 0 -- a_debug
|
||||||
);
|
);
|
||||||
@@ -316,12 +456,18 @@ BEGIN
|
|||||||
, code
|
, code
|
||||||
, name
|
, name
|
||||||
, active
|
, active
|
||||||
|
|
||||||
|
, does_meet_id_filters
|
||||||
|
, does_meet_non_id_filters
|
||||||
)
|
)
|
||||||
SELECT
|
SELECT
|
||||||
COMMAND_CATEGORY_T.id_command_category
|
COMMAND_CATEGORY_T.id_command_category
|
||||||
, COMMAND_CATEGORY_T.code
|
, COMMAND_CATEGORY_T.code
|
||||||
, COMMAND_CATEGORY_T.name
|
, COMMAND_CATEGORY_T.name
|
||||||
, COMMAND_CATEGORY_T.active
|
, COMMAND_CATEGORY_T.active
|
||||||
|
|
||||||
|
, COMMAND_CATEGORY_T.does_meet_id_filters
|
||||||
|
, COMMAND_CATEGORY_T.does_meet_non_id_filters
|
||||||
FROM parts.DOG_Command_Category_Temp COMMAND_CATEGORY_T
|
FROM parts.DOG_Command_Category_Temp COMMAND_CATEGORY_T
|
||||||
WHERE COMMAND_CATEGORY_T.GUID = v_guid
|
WHERE COMMAND_CATEGORY_T.GUID = v_guid
|
||||||
;
|
;
|
||||||
@@ -334,6 +480,9 @@ BEGIN
|
|||||||
, can_have_button
|
, can_have_button
|
||||||
, notes
|
, notes
|
||||||
, active
|
, active
|
||||||
|
|
||||||
|
, does_meet_id_filters
|
||||||
|
, does_meet_non_id_filters
|
||||||
)
|
)
|
||||||
SELECT
|
SELECT
|
||||||
COMMAND_T.id_command
|
COMMAND_T.id_command
|
||||||
@@ -343,6 +492,9 @@ BEGIN
|
|||||||
, COMMAND_T.can_have_button
|
, COMMAND_T.can_have_button
|
||||||
, COMMAND_T.notes
|
, COMMAND_T.notes
|
||||||
, COMMAND_T.active
|
, COMMAND_T.active
|
||||||
|
|
||||||
|
, COMMAND_T.does_meet_id_filters
|
||||||
|
, COMMAND_T.does_meet_non_id_filters
|
||||||
FROM parts.DOG_Command_Temp COMMAND_T
|
FROM parts.DOG_Command_Temp COMMAND_T
|
||||||
WHERE COMMAND_T.GUID = v_guid
|
WHERE COMMAND_T.GUID = v_guid
|
||||||
;
|
;
|
||||||
@@ -353,6 +505,256 @@ BEGIN
|
|||||||
END IF;
|
END IF;
|
||||||
END IF;
|
END IF;
|
||||||
|
|
||||||
|
-- Dog Command Links
|
||||||
|
IF NOT EXISTS(SELECT * FROM tmp_Msg_Error t_ERROR INNER JOIN parts.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type WHERE ERROR_TYPE.is_breaking_error = 1 LIMIT 1) THEN
|
||||||
|
IF v_has_filter_link_id = 1 THEN
|
||||||
|
CALL parts.p_core_split(v_guid, a_ids_link, ',', a_debug);
|
||||||
|
|
||||||
|
SET sql_mode = '';
|
||||||
|
|
||||||
|
INSERT INTO tmp_Split_Id_Calc_Dog_Command_Link (
|
||||||
|
substring
|
||||||
|
, as_int
|
||||||
|
)
|
||||||
|
SELECT
|
||||||
|
SPLIT_T.substring
|
||||||
|
, CAST(SPLIT_T.substring AS DECIMAL(10,0)) AS as_int
|
||||||
|
FROM parts.CORE_Split_Temp SPLIT_T
|
||||||
|
WHERE
|
||||||
|
SPLIT_T.GUID = v_guid
|
||||||
|
AND IFNULL(SPLIT_T.substring, '') <> ''
|
||||||
|
;
|
||||||
|
|
||||||
|
CALL parts.p_core_clear_split( v_guid );
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
IF v_has_filter_link_hand_signal_description = 1 THEN
|
||||||
|
CALL parts.p_core_split(v_guid, a_hand_signal_descriptions_link, ',', a_debug);
|
||||||
|
|
||||||
|
SET sql_mode = '';
|
||||||
|
|
||||||
|
INSERT INTO tmp_Split_Hand_Signal_Description_Calc_Dog_Command_Link (
|
||||||
|
substring
|
||||||
|
, as_int
|
||||||
|
)
|
||||||
|
SELECT
|
||||||
|
SPLIT_T.substring
|
||||||
|
, CAST(SPLIT_T.substring AS DECIMAL(10,0)) AS as_int
|
||||||
|
FROM parts.CORE_Split_Temp SPLIT_T
|
||||||
|
WHERE
|
||||||
|
SPLIT_T.GUID = v_guid
|
||||||
|
AND IFNULL(SPLIT_T.substring, '') <> ''
|
||||||
|
;
|
||||||
|
|
||||||
|
CALL parts.p_core_clear_split( v_guid );
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
IF v_has_filter_link_notes = 1 THEN
|
||||||
|
CALL parts.p_core_split(v_guid, a_notes_link, ',', a_debug);
|
||||||
|
|
||||||
|
SET sql_mode = '';
|
||||||
|
|
||||||
|
INSERT INTO tmp_Split_Notes_Calc_Dog_Command_Link (
|
||||||
|
substring
|
||||||
|
, as_int
|
||||||
|
)
|
||||||
|
SELECT
|
||||||
|
SPLIT_T.substring
|
||||||
|
, CAST(SPLIT_T.substring AS DECIMAL(10,0)) AS as_int
|
||||||
|
FROM parts.CORE_Split_Temp SPLIT_T
|
||||||
|
WHERE
|
||||||
|
SPLIT_T.GUID = v_guid
|
||||||
|
AND IFNULL(SPLIT_T.substring, '') <> ''
|
||||||
|
;
|
||||||
|
|
||||||
|
CALL parts.p_core_clear_split( v_guid );
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
INSERT INTO tmp_Dog_Command_Link (
|
||||||
|
id_link
|
||||||
|
, id_dog
|
||||||
|
, id_command
|
||||||
|
, hand_signal_description
|
||||||
|
, notes
|
||||||
|
, active
|
||||||
|
|
||||||
|
, does_meet_id_filters
|
||||||
|
, does_meet_non_id_filters
|
||||||
|
)
|
||||||
|
WITH
|
||||||
|
Link_Id_Filter AS (
|
||||||
|
SELECT DOG_COMMAND_LINK.id_link
|
||||||
|
FROM tmp_Split_Id_Calc_Dog_Command_Link t_SPLIT_ID
|
||||||
|
INNER JOIN parts.DOG_Dog_Command_Link DOG_COMMAND_LINK ON t_SPLIT_ID.as_int = DOG_COMMAND_LINK.id_link
|
||||||
|
)
|
||||||
|
, Links_With_Hand_Signal_Descriptions AS (
|
||||||
|
SELECT
|
||||||
|
DOG_COMMAND_LINK.id_link
|
||||||
|
, COALESCE(DOG_COMMAND_LINK.hand_signal_description, COMMAND.hand_signal_default_description) AS hand_signal_description
|
||||||
|
FROM parts.DOG_Dog_Command_Link DOG_COMMAND_LINK
|
||||||
|
INNER JOIN parts.DOG_Command COMMAND ON DOG_COMMAND_LINK.id_command = COMMAND.id_command
|
||||||
|
)
|
||||||
|
, Link_Hand_Signal_Description_Filter AS (
|
||||||
|
SELECT
|
||||||
|
LINK_HAND_SIGNAL_DESCRIPTIONS.id_link
|
||||||
|
, 1 AS does_meet_hand_signal_description_filter
|
||||||
|
FROM tmp_Split_Hand_Signal_Description_Calc_Dog_Command_Link t_SPLIT_HSD
|
||||||
|
INNER JOIN Links_With_Hand_Signal_Descriptions LINK_HAND_SIGNAL_DESCRIPTIONS
|
||||||
|
ON LINK_HAND_SIGNAL_DESCRIPTIONS.hand_signal_description LIKE CONCAT('%', t_SPLIT_HSD.substring, '%')
|
||||||
|
WHERE
|
||||||
|
t_SPLIT_HSD.substring IS NOT NULL
|
||||||
|
AND t_SPLIT_HSD.substring <> ''
|
||||||
|
)
|
||||||
|
, Link_Notes_Filter AS (
|
||||||
|
SELECT
|
||||||
|
DOG_COMMAND_LINK.id_link
|
||||||
|
, 1 AS does_meet_notes_filter
|
||||||
|
FROM tmp_Split_Notes_Calc_Dog_Command_Link t_SPLIT_NOTES
|
||||||
|
INNER JOIN parts.DOG_Dog_Command_Link DOG_COMMAND_LINK ON DOG_COMMAND_LINK.notes LIKE CONCAT('%', t_SPLIT_NOTES.substring, '%')
|
||||||
|
WHERE
|
||||||
|
t_SPLIT_NOTES.substring IS NOT NULL
|
||||||
|
AND t_SPLIT_NOTES.substring <> ''
|
||||||
|
)
|
||||||
|
, Link_Filters AS (
|
||||||
|
SELECT
|
||||||
|
LINK_COMBINED.id_link
|
||||||
|
, MAX(LINK_COMBINED.does_meet_id_filter) AS does_meet_id_filter
|
||||||
|
, MAX(LINK_COMBINED.does_meet_hand_signal_description_filter) AS does_meet_hand_signal_description_filter
|
||||||
|
, MAX(LINK_COMBINED.does_meet_notes_filter) AS does_meet_notes_filter
|
||||||
|
FROM (
|
||||||
|
SELECT
|
||||||
|
LINK_ID_FILTER.id_link
|
||||||
|
, 1 AS does_meet_id_filter
|
||||||
|
, 0 AS does_meet_hand_signal_description_filter
|
||||||
|
, 0 AS does_meet_notes_filter
|
||||||
|
FROM Link_Id_Filter LINK_ID_FILTER
|
||||||
|
UNION
|
||||||
|
SELECT
|
||||||
|
LINK_HSD_FILTER.id_link
|
||||||
|
, 0 AS does_meet_id_filter
|
||||||
|
, 1 AS does_meet_hand_signal_description_filter
|
||||||
|
, 0 AS does_meet_notes_filter
|
||||||
|
FROM Link_Hand_Signal_Description_Filter LINK_HSD_FILTER
|
||||||
|
UNION
|
||||||
|
SELECT
|
||||||
|
LINK_NOTES_FILTER.id_link
|
||||||
|
, 0 AS does_meet_id_filter
|
||||||
|
, 0 AS does_meet_hand_signal_description_filter
|
||||||
|
, 1 AS does_meet_notes_filter
|
||||||
|
FROM Link_Notes_Filter LINK_NOTES_FILTER
|
||||||
|
) LINK_COMBINED
|
||||||
|
GROUP BY LINK_COMBINED.id_link
|
||||||
|
)
|
||||||
|
SELECT
|
||||||
|
DOG_COMMAND_LINK.id_link AS id_dog_command_link
|
||||||
|
, t_DOG.id_dog
|
||||||
|
, t_COMMAND.id_command
|
||||||
|
, LINK_HAND_SIGNAL_DESCRIPTIONS.hand_signal_description AS hand_signal_description_command
|
||||||
|
, DOG_COMMAND_LINK.notes
|
||||||
|
, DOG_COMMAND_LINK.active
|
||||||
|
, CASE WHEN
|
||||||
|
v_has_filter_link_id = 0
|
||||||
|
OR IFNULL(LINK_FILTERS.does_meet_id_filter, 0) = 1
|
||||||
|
THEN 1 ELSE 0 END AS does_meet_id_filters
|
||||||
|
, CASE WHEN
|
||||||
|
(
|
||||||
|
v_has_filter_link_hand_signal_description = 0
|
||||||
|
AND v_has_filter_link_notes = 0
|
||||||
|
)
|
||||||
|
OR IFNULL(LINK_FILTERS.does_meet_hand_signal_description_filter, 0) = 1
|
||||||
|
OR IFNULL(LINK_FILTERS.does_meet_notes_filter, 0) = 1
|
||||||
|
THEN 1 ELSE 0 END AS does_meet_non_id_filters
|
||||||
|
FROM parts.DOG_Dog_Command_Link DOG_COMMAND_LINK
|
||||||
|
INNER JOIN tmp_Dog t_DOG ON DOG_COMMAND_LINK.id_dog = t_DOG.id_dog
|
||||||
|
INNER JOIN tmp_Command t_COMMAND ON DOG_COMMAND_LINK.id_command = t_COMMAND.id_command
|
||||||
|
INNER JOIN tmp_Command_Category t_COMMAND_CATEGORY ON t_COMMAND.id_command_category = t_COMMAND_CATEGORY.id_command_category
|
||||||
|
LEFT JOIN Link_Filters LINK_FILTERS ON DOG_COMMAND_LINK.id_link = LINK_FILTERS.id_link
|
||||||
|
INNER JOIN Links_With_Hand_Signal_Descriptions LINK_HAND_SIGNAL_DESCRIPTIONS ON DOG_COMMAND_LINK.id_link = LINK_HAND_SIGNAL_DESCRIPTIONS.id_link
|
||||||
|
WHERE
|
||||||
|
(
|
||||||
|
a_get_all_link = 1
|
||||||
|
OR (
|
||||||
|
v_has_filter_link_id = 1
|
||||||
|
AND LINK_FILTERS.does_meet_id_filter = 1
|
||||||
|
)
|
||||||
|
OR (
|
||||||
|
v_has_filter_link_hand_signal_description = 1
|
||||||
|
AND LINK_FILTERS.does_meet_hand_signal_description_filter = 1
|
||||||
|
)
|
||||||
|
OR (
|
||||||
|
v_has_filter_link_notes = 1
|
||||||
|
AND LINK_FILTERS.does_meet_notes_filter = 1
|
||||||
|
)
|
||||||
|
)
|
||||||
|
AND (
|
||||||
|
a_get_inactive_link = 1
|
||||||
|
OR DOG_COMMAND_LINK.active = 1
|
||||||
|
)
|
||||||
|
;
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
DELETE FROM tmp_Split_Id_Calc_Dog_Command_Link;
|
||||||
|
DELETE FROM tmp_Split_Hand_Signal_Description_Calc_Dog_Command_Link;
|
||||||
|
DELETE FROM tmp_Split_Notes_Calc_Dog_Command_Link;
|
||||||
|
|
||||||
|
IF a_debug = 1 THEN
|
||||||
|
SELECT 'After get Links';
|
||||||
|
SELECT * FROM tmp_Dog;
|
||||||
|
SELECT * FROM tmp_Command_Category;
|
||||||
|
SELECT * FROM tmp_Command;
|
||||||
|
SELECT * FROM tmp_Dog_Command_Link;
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
-- Filter records
|
||||||
|
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
|
||||||
|
DELETE t_DOG_COMMAND_LINK
|
||||||
|
FROM tmp_Dog_Command_Link t_DOG_COMMAND_LINK
|
||||||
|
LEFT JOIN tmp_Dog t_DOG ON t_DOG_COMMAND_LINK.id_dog = t_DOG.id_dog
|
||||||
|
LEFT JOIN tmp_Command t_COMMAND ON t_DOG_COMMAND_LINK.id_command = t_COMMAND.id_command
|
||||||
|
LEFT JOIN tmp_Command_Category t_COMMAND_CATEGORY ON t_COMMAND.id_command_category = t_COMMAND_CATEGORY.id_command_category
|
||||||
|
WHERE
|
||||||
|
(
|
||||||
|
a_require_all_id_search_filters_met = 1
|
||||||
|
AND (
|
||||||
|
IFNULL(t_DOG_COMMAND_LINK.does_meet_id_filters, 0) = 0
|
||||||
|
OR IFNULL(t_DOG.does_meet_id_filters, 0) = 0
|
||||||
|
OR IFNULL(t_COMMAND.does_meet_id_filters, 0) = 0
|
||||||
|
OR IFNULL(t_COMMAND_CATEGORY.does_meet_id_filters, 0) = 0
|
||||||
|
)
|
||||||
|
)
|
||||||
|
OR (
|
||||||
|
a_require_all_non_id_search_filters_met = 1
|
||||||
|
AND (
|
||||||
|
IFNULL(t_DOG_COMMAND_LINK.does_meet_non_id_filters, 0) = 0
|
||||||
|
OR IFNULL(t_DOG.does_meet_non_id_filters, 0) = 0
|
||||||
|
OR IFNULL(t_COMMAND.does_meet_non_id_filters, 0) = 0
|
||||||
|
OR IFNULL(t_COMMAND_CATEGORY.does_meet_non_id_filters, 0) = 0
|
||||||
|
)
|
||||||
|
)
|
||||||
|
OR (
|
||||||
|
a_require_any_id_search_filters_met = 1
|
||||||
|
AND IFNULL(t_DOG_COMMAND_LINK.does_meet_id_filters, 0) = 0
|
||||||
|
AND IFNULL(t_DOG.does_meet_id_filters, 0) = 0
|
||||||
|
AND IFNULL(t_COMMAND.does_meet_id_filters, 0) = 0
|
||||||
|
AND IFNULL(t_COMMAND_CATEGORY.does_meet_id_filters, 0) = 0
|
||||||
|
)
|
||||||
|
OR (
|
||||||
|
a_require_any_non_id_search_filters_met = 1
|
||||||
|
AND IFNULL(t_DOG_COMMAND_LINK.does_meet_non_id_filters, 0) = 0
|
||||||
|
AND IFNULL(t_DOG.does_meet_non_id_filters, 0) = 0
|
||||||
|
AND IFNULL(t_COMMAND.does_meet_non_id_filters, 0) = 0
|
||||||
|
AND IFNULL(t_COMMAND_CATEGORY.does_meet_non_id_filters, 0) = 0
|
||||||
|
)
|
||||||
|
;
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
IF a_debug = 1 THEN
|
||||||
|
SELECT 'After filter Links';
|
||||||
|
SELECT * FROM tmp_Dog;
|
||||||
|
SELECT * FROM tmp_Command_Category;
|
||||||
|
SELECT * FROM tmp_Command;
|
||||||
|
SELECT * FROM tmp_Dog_Command_Link;
|
||||||
|
END IF;
|
||||||
|
|
||||||
-- Filter outputs
|
-- Filter outputs
|
||||||
IF EXISTS(SELECT * FROM tmp_Msg_Error t_ERROR INNER JOIN parts.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type WHERE ERROR_TYPE.is_breaking_error = 1 LIMIT 1) THEN
|
IF 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
|
||||||
@@ -360,32 +762,42 @@ BEGIN
|
|||||||
SELECT * FROM tmp_Dog;
|
SELECT * FROM tmp_Dog;
|
||||||
SELECT * FROM tmp_Command;
|
SELECT * FROM tmp_Command;
|
||||||
SELECT * FROM tmp_Command_Category;
|
SELECT * FROM tmp_Command_Category;
|
||||||
|
SELECT * FROM tmp_Dog_Command_Link;
|
||||||
END IF;
|
END IF;
|
||||||
|
|
||||||
DELETE FROM tmp_Dog;
|
DELETE FROM tmp_Dog;
|
||||||
DELETE FROM tmp_Command;
|
DELETE FROM tmp_Command;
|
||||||
DELETE FROM tmp_Command_Category;
|
DELETE FROM tmp_Command_Category;
|
||||||
|
DELETE FROM tmp_Dog_Command_Link;
|
||||||
END IF;
|
END IF;
|
||||||
|
|
||||||
-- Outputs
|
-- Outputs
|
||||||
-- Commands
|
-- Dog Command Links
|
||||||
SELECT
|
SELECT
|
||||||
DOG_COMMAND_LINK.id_link AS id_dog_command_link
|
t_DOG_COMMAND_LINK.id_link AS id_dog_command_link
|
||||||
, t_DOG.id_dog
|
, t_DOG_COMMAND_LINK.id_dog
|
||||||
, t_DOG.name AS name_dog
|
, t_DOG.name AS name_dog
|
||||||
, t_COMMAND.id_command_category
|
, t_COMMAND_CATEGORY.id_command_category
|
||||||
, t_COMMAND_CATEGORY.name AS name_command_category
|
, t_COMMAND_CATEGORY.name AS name_command_category
|
||||||
, t_COMMAND.id_command
|
, t_DOG_COMMAND_LINK.id_command
|
||||||
, t_COMMAND.name AS name_command
|
, t_COMMAND.name AS name_command
|
||||||
-- , t_COMMAND.has_button AS command_has_button
|
, t_DOG_COMMAND_LINK.hand_signal_description AS hand_signal_description
|
||||||
, COALESCE(DOG_COMMAND_LINK.hand_signal_description, t_COMMAND.hand_signal_default_description) AS hand_signal_description_command
|
|
||||||
, t_COMMAND.can_have_button AS can_have_button_command
|
, t_COMMAND.can_have_button AS can_have_button_command
|
||||||
, DOG_COMMAND_LINK.notes
|
, t_DOG_COMMAND_LINK.notes
|
||||||
, DOG_COMMAND_LINK.active
|
, t_DOG_COMMAND_LINK.active
|
||||||
|
, t_DOG_COMMAND_LINK.does_meet_id_filters
|
||||||
|
, t_DOG_COMMAND_LINK.does_meet_non_id_filters
|
||||||
|
, t_DOG.does_meet_id_filters AS does_meet_dog_id_search_filters
|
||||||
|
, t_DOG.does_meet_non_id_filters AS does_meet_dog_non_id_search_filters
|
||||||
|
, t_COMMAND_CATEGORY.does_meet_id_filters AS does_meet_command_category_id_search_filters
|
||||||
|
, t_COMMAND_CATEGORY.does_meet_non_id_filters AS does_meet_command_category_non_id_search_filters
|
||||||
|
, t_COMMAND.does_meet_id_filters AS does_meet_command_id_search_filters
|
||||||
|
, t_COMMAND.does_meet_non_id_filters AS does_meet_command_non_id_search_filters
|
||||||
FROM parts.DOG_Dog_Command_Link DOG_COMMAND_LINK
|
FROM parts.DOG_Dog_Command_Link DOG_COMMAND_LINK
|
||||||
INNER JOIN tmp_Dog t_DOG ON DOG_COMMAND_LINK.id_dog = t_DOG.id_dog
|
INNER JOIN tmp_Dog_Command_Link t_DOG_COMMAND_LINK ON DOG_COMMAND_LINK.id_link = t_DOG_COMMAND_LINK.id_link
|
||||||
INNER JOIN tmp_Command t_COMMAND ON DOG_COMMAND_LINK.id_command = t_COMMAND.id_command
|
LEFT JOIN tmp_Dog t_DOG ON DOG_COMMAND_LINK.id_dog = t_DOG.id_dog
|
||||||
INNER JOIN tmp_Command_Category t_COMMAND_CATEGORY ON t_COMMAND.id_command_category = t_COMMAND_CATEGORY.id_command_category
|
LEFT JOIN tmp_Command t_COMMAND ON DOG_COMMAND_LINK.id_command = t_COMMAND.id_command
|
||||||
|
LEFT JOIN tmp_Command_Category t_COMMAND_CATEGORY ON t_COMMAND.id_command_category = t_COMMAND_CATEGORY.id_command_category
|
||||||
;
|
;
|
||||||
|
|
||||||
-- Errors
|
-- Errors
|
||||||
@@ -409,11 +821,14 @@ BEGIN
|
|||||||
SELECT * FROM tmp_Command_Category;
|
SELECT * FROM tmp_Command_Category;
|
||||||
END IF;
|
END IF;
|
||||||
|
|
||||||
DROP TEMPORARY TABLE IF EXISTS tmp_Split;
|
DROP TEMPORARY TABLE IF EXISTS tmp_Split_Notes_Calc_Dog_Command_Link;
|
||||||
|
DROP TEMPORARY TABLE IF EXISTS tmp_Split_Hand_Signal_Description_Calc_Dog_Command_Link;
|
||||||
|
DROP TEMPORARY TABLE IF EXISTS tmp_Split_Id_Calc_Dog_Command_Link;
|
||||||
DROP TEMPORARY TABLE IF EXISTS tmp_Msg_Error;
|
DROP TEMPORARY TABLE IF EXISTS tmp_Msg_Error;
|
||||||
DROP TEMPORARY TABLE IF EXISTS tmp_Command;
|
DROP TEMPORARY TABLE IF EXISTS tmp_Command;
|
||||||
DROP TEMPORARY TABLE IF EXISTS tmp_Command_Category;
|
DROP TEMPORARY TABLE IF EXISTS tmp_Command_Category;
|
||||||
DROP TEMPORARY TABLE IF EXISTS tmp_Dog;
|
DROP TEMPORARY TABLE IF EXISTS tmp_Dog;
|
||||||
|
DROP TEMPORARY TABLE IF EXISTS tmp_Dog_Command_Link;
|
||||||
|
|
||||||
IF a_debug = 1 THEN
|
IF a_debug = 1 THEN
|
||||||
CALL parts.p_core_debug_timing_reporting ( v_time_start );
|
CALL parts.p_core_debug_timing_reporting ( v_time_start );
|
||||||
@@ -426,20 +841,9 @@ DELIMITER ;
|
|||||||
|
|
||||||
CALL parts.p_dog_get_many_dog_command_link (
|
CALL parts.p_dog_get_many_dog_command_link (
|
||||||
1 -- 'auth0|6582b95c895d09a70ba10fef', -- a_id_user
|
1 -- 'auth0|6582b95c895d09a70ba10fef', -- a_id_user
|
||||||
, 1 -- a_get_all_dog
|
, 1 -- a_get_all_link
|
||||||
, 0 -- a_get_inactive_dog
|
, 0 -- a_get_inactive_link
|
||||||
, '' -- a_ids_dog
|
, '' -- a_ids_link
|
||||||
, 1 -- a_get_all_command_category
|
|
||||||
, 0 -- a_get_inactive_command_category
|
|
||||||
, '' -- a_ids_command_category
|
|
||||||
, 1 -- a_get_all_command
|
|
||||||
, 0 -- a_get_inactive_command
|
|
||||||
, '' -- a_ids_command
|
|
||||||
, 1 -- a_debug
|
|
||||||
);
|
|
||||||
|
|
||||||
CALL parts.p_dog_get_many_dog_command_link (
|
|
||||||
1 -- 'auth0|6582b95c895d09a70ba10fef', -- a_id_user
|
|
||||||
, 1 -- a_get_all_dog
|
, 1 -- a_get_all_dog
|
||||||
, 0 -- a_get_inactive_dog
|
, 0 -- a_get_inactive_dog
|
||||||
, '' -- a_ids_dog
|
, '' -- a_ids_dog
|
||||||
@@ -452,7 +856,41 @@ CALL parts.p_dog_get_many_dog_command_link (
|
|||||||
, 0 -- a_get_inactive_command
|
, 0 -- a_get_inactive_command
|
||||||
, '2' -- a_ids_command
|
, '2' -- a_ids_command
|
||||||
, '2' -- a_names_command
|
, '2' -- a_names_command
|
||||||
|
, 'pat' -- a_hand_signal_descriptions_link
|
||||||
|
, 'pat' -- a_notes_command
|
||||||
|
, 'pat' -- a_notes_link
|
||||||
|
, 1 -- a_require_all_id_search_filters_met
|
||||||
|
, 1 -- a_require_any_id_search_filters_met
|
||||||
|
, 0 -- a_require_all_non_id_search_filters_met
|
||||||
|
, 1 -- a_require_any_non_id_search_filters_met
|
||||||
, 1 -- a_debug
|
, 1 -- a_debug
|
||||||
);
|
);
|
||||||
|
|
||||||
|
CALL parts.p_dog_get_many_dog_command_link (
|
||||||
|
1 -- 'auth0|6582b95c895d09a70ba10fef', -- a_id_user
|
||||||
|
, 1 -- a_get_all_link
|
||||||
|
, 0 -- a_get_inactive_link
|
||||||
|
, '' -- a_ids_link
|
||||||
|
, 1 -- a_get_all_dog
|
||||||
|
, 0 -- a_get_inactive_dog
|
||||||
|
, '' -- a_ids_dog
|
||||||
|
, 'pat,point' -- a_names_dog
|
||||||
|
, 1 -- a_get_all_command_category
|
||||||
|
, 0 -- a_get_inactive_command_category
|
||||||
|
, '' -- a_ids_command_category
|
||||||
|
, 'pat,point' -- a_names_command_category
|
||||||
|
, 1 -- a_get_all_command
|
||||||
|
, 0 -- a_get_inactive_command
|
||||||
|
, '' -- a_ids_command
|
||||||
|
, 'pat,point' -- a_names_command
|
||||||
|
, 'pat,point' -- a_hand_signal_descriptions_link
|
||||||
|
, 'pat,point' -- a_notes_command
|
||||||
|
, 'pat,point' -- a_notes_link
|
||||||
|
, 1 -- a_require_all_id_search_filters_met
|
||||||
|
, 1 -- a_require_any_id_search_filters_met
|
||||||
|
, 0 -- a_require_all_non_id_search_filters_met
|
||||||
|
, 1 -- a_require_any_non_id_search_filters_met
|
||||||
|
, 0 -- a_debug
|
||||||
|
);
|
||||||
|
|
||||||
*/
|
*/
|
||||||
@@ -9,18 +9,18 @@ DROP TRIGGER IF EXISTS before_update_DOG_Unit_Measurement;
|
|||||||
|
|
||||||
DELIMITER //
|
DELIMITER //
|
||||||
CREATE TRIGGER before_insert_DOG_Unit_Measurement
|
CREATE TRIGGER before_insert_DOG_Unit_Measurement
|
||||||
BEFORE INSERT ON DOG_Unit_Measurement
|
BEFORE INSERT ON parts.DOG_Unit_Measurement
|
||||||
FOR EACH ROW
|
FOR EACH ROW
|
||||||
BEGIN
|
BEGIN
|
||||||
SET NEW.created_on := IFNULL(NEW.created_on, NOW());
|
SET NEW.created_on := IFNULL(NEW.created_on, NOW());
|
||||||
SET NEW.created_by := IFNULL(NEW.created_by, IFNULL((SELECT id_user FROM DOG_User WHERE firstname = CURRENT_USER()), -1));
|
SET NEW.created_by := IFNULL(NEW.created_by, IFNULL((SELECT U.id_user FROM parts.DOG_User U WHERE U.firstname = CURRENT_USER()), -1));
|
||||||
END //
|
END //
|
||||||
DELIMITER ;
|
DELIMITER ;
|
||||||
|
|
||||||
|
|
||||||
DELIMITER //
|
DELIMITER //
|
||||||
CREATE TRIGGER before_update_DOG_Unit_Measurement
|
CREATE TRIGGER before_update_DOG_Unit_Measurement
|
||||||
BEFORE UPDATE ON DOG_Unit_Measurement
|
BEFORE UPDATE ON parts.DOG_Unit_Measurement
|
||||||
FOR EACH ROW
|
FOR EACH ROW
|
||||||
BEGIN
|
BEGIN
|
||||||
IF OLD.id_change_set <=> NEW.id_change_set THEN
|
IF OLD.id_change_set <=> NEW.id_change_set THEN
|
||||||
@@ -28,12 +28,12 @@ BEGIN
|
|||||||
SET MESSAGE_TEXT = 'New change Set ID must be provided.';
|
SET MESSAGE_TEXT = 'New change Set ID must be provided.';
|
||||||
END IF;
|
END IF;
|
||||||
|
|
||||||
INSERT INTO DOG_Unit_Measurement_Audit (
|
INSERT INTO parts.DOG_Unit_Measurement_Audit (
|
||||||
id_unit_measurement,
|
id_unit_measurement
|
||||||
name_field,
|
, name_field
|
||||||
value_prev,
|
, value_prev
|
||||||
value_new,
|
, value_new
|
||||||
id_change_set
|
, id_change_set
|
||||||
)
|
)
|
||||||
# Changed name_singular
|
# Changed name_singular
|
||||||
SELECT NEW.id_unit_measurement, 'name_singular', OLD.name_singular, NEW.name_singular, NEW.id_change_set
|
SELECT NEW.id_unit_measurement, 'name_singular', OLD.name_singular, NEW.name_singular, NEW.id_change_set
|
||||||
|
|||||||
@@ -9,18 +9,18 @@ DROP TRIGGER IF EXISTS before_update_DOG_Unit_Measurement_Conversion;
|
|||||||
|
|
||||||
DELIMITER //
|
DELIMITER //
|
||||||
CREATE TRIGGER before_insert_DOG_Unit_Measurement_Conversion
|
CREATE TRIGGER before_insert_DOG_Unit_Measurement_Conversion
|
||||||
BEFORE INSERT ON DOG_Unit_Measurement_Conversion
|
BEFORE INSERT ON parts.DOG_Unit_Measurement_Conversion
|
||||||
FOR EACH ROW
|
FOR EACH ROW
|
||||||
BEGIN
|
BEGIN
|
||||||
SET NEW.created_on := IFNULL(NEW.created_on, NOW());
|
SET NEW.created_on := IFNULL(NEW.created_on, NOW());
|
||||||
SET NEW.created_by := IFNULL(NEW.created_by, IFNULL((SELECT id_user FROM DOG_User WHERE firstname = CURRENT_USER()), -1));
|
SET NEW.created_by := IFNULL(NEW.created_by, IFNULL((SELECT U.id_user FROM parts.DOG_User U WHERE U.firstname = CURRENT_USER()), -1));
|
||||||
END //
|
END //
|
||||||
DELIMITER ;
|
DELIMITER ;
|
||||||
|
|
||||||
|
|
||||||
DELIMITER //
|
DELIMITER //
|
||||||
CREATE TRIGGER before_update_DOG_Unit_Measurement_Conversion
|
CREATE TRIGGER before_update_DOG_Unit_Measurement_Conversion
|
||||||
BEFORE UPDATE ON DOG_Unit_Measurement_Conversion
|
BEFORE UPDATE ON parts.DOG_Unit_Measurement_Conversion
|
||||||
FOR EACH ROW
|
FOR EACH ROW
|
||||||
BEGIN
|
BEGIN
|
||||||
IF OLD.id_change_set <=> NEW.id_change_set THEN
|
IF OLD.id_change_set <=> NEW.id_change_set THEN
|
||||||
@@ -28,12 +28,12 @@ BEGIN
|
|||||||
SET MESSAGE_TEXT = 'New change Set ID must be provided.';
|
SET MESSAGE_TEXT = 'New change Set ID must be provided.';
|
||||||
END IF;
|
END IF;
|
||||||
|
|
||||||
INSERT INTO DOG_Unit_Measurement_Conversion_Audit (
|
INSERT INTO parts.DOG_Unit_Measurement_Conversion_Audit (
|
||||||
id_conversion,
|
id_conversion
|
||||||
name_field,
|
, name_field
|
||||||
value_prev,
|
, value_prev
|
||||||
value_new,
|
, value_new
|
||||||
id_change_set
|
, id_change_set
|
||||||
)
|
)
|
||||||
# Changed id_unit_derived
|
# Changed id_unit_derived
|
||||||
SELECT NEW.id_conversion, 'id_unit_derived', OLD.id_unit_derived, NEW.id_unit_derived, NEW.id_change_set
|
SELECT NEW.id_conversion, 'id_unit_derived', OLD.id_unit_derived, NEW.id_unit_derived, NEW.id_change_set
|
||||||
|
|||||||
@@ -13,17 +13,18 @@ CREATE PROCEDURE parts.p_dog_get_many_command (
|
|||||||
, IN a_debug BIT
|
, IN a_debug BIT
|
||||||
)
|
)
|
||||||
BEGIN
|
BEGIN
|
||||||
|
DECLARE v_can_view BIT;
|
||||||
DECLARE v_code_type_error_bad_data VARCHAR(100);
|
DECLARE v_code_type_error_bad_data VARCHAR(100);
|
||||||
DECLARE v_code_type_error_no_permission VARCHAR(100);
|
DECLARE v_code_type_error_no_permission VARCHAR(100);
|
||||||
DECLARE v_id_type_error_bad_data INT;
|
DECLARE v_guid BINARY(36);
|
||||||
DECLARE v_id_type_error_no_permission INT;
|
|
||||||
DECLARE v_has_filter_command_id BIT;
|
DECLARE v_has_filter_command_id BIT;
|
||||||
DECLARE v_has_filter_command_name BIT;
|
DECLARE v_has_filter_command_name BIT;
|
||||||
DECLARE v_guid BINARY(36);
|
DECLARE v_id_access_level_view INT;
|
||||||
DECLARE v_id_permission_command_view INT;
|
|
||||||
DECLARE v_id_minimum INT;
|
DECLARE v_id_minimum INT;
|
||||||
|
DECLARE v_id_permission_command_view INT;
|
||||||
|
DECLARE v_id_type_error_bad_data INT;
|
||||||
|
DECLARE v_id_type_error_no_permission INT;
|
||||||
DECLARE v_time_start TIMESTAMP(6);
|
DECLARE v_time_start TIMESTAMP(6);
|
||||||
DECLARE v_can_view BIT;
|
|
||||||
|
|
||||||
DECLARE exit handler for SQLEXCEPTION
|
DECLARE exit handler for SQLEXCEPTION
|
||||||
BEGIN
|
BEGIN
|
||||||
@@ -39,7 +40,7 @@ BEGIN
|
|||||||
id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT
|
id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT
|
||||||
, id_type INT NULL
|
, id_type INT NULL
|
||||||
, code VARCHAR(100) NOT NULL
|
, code VARCHAR(100) NOT NULL
|
||||||
, msg VARCHAR(4000) NOT NULL
|
, msg TEXT NOT NULL
|
||||||
);
|
);
|
||||||
|
|
||||||
INSERT INTO tmp_Msg_Error (
|
INSERT INTO tmp_Msg_Error (
|
||||||
@@ -79,6 +80,7 @@ BEGIN
|
|||||||
SET v_id_type_error_bad_data := (SELECT ERROR_TYPE.id_type FROM parts.CORE_Msg_Error_Type ERROR_TYPE WHERE ERROR_TYPE.code = v_code_type_error_bad_data LIMIT 1);
|
SET v_id_type_error_bad_data := (SELECT ERROR_TYPE.id_type FROM parts.CORE_Msg_Error_Type ERROR_TYPE WHERE ERROR_TYPE.code = v_code_type_error_bad_data LIMIT 1);
|
||||||
SET v_id_type_error_no_permission := (SELECT ERROR_TYPE.id_type FROM parts.CORE_Msg_Error_Type ERROR_TYPE WHERE ERROR_TYPE.code = v_code_type_error_no_permission LIMIT 1);
|
SET v_id_type_error_no_permission := (SELECT ERROR_TYPE.id_type FROM parts.CORE_Msg_Error_Type ERROR_TYPE WHERE ERROR_TYPE.code = v_code_type_error_no_permission LIMIT 1);
|
||||||
SET v_id_permission_command_view := (SELECT PERMISSION.id_permission FROM parts.DOG_Permission PERMISSION WHERE PERMISSION.code = 'DOG_VIEW' LIMIT 1);
|
SET v_id_permission_command_view := (SELECT PERMISSION.id_permission FROM parts.DOG_Permission PERMISSION WHERE PERMISSION.code = 'DOG_VIEW' LIMIT 1);
|
||||||
|
SET v_id_access_level_view := (SELECT ACCESS_LEVEL.id_access_level FROM parts.DOG_Access_Level ACCESS_LEVEL WHERE ACCESS_LEVEL.code = 'VIEW' LIMIT 1);
|
||||||
|
|
||||||
SET a_id_user := IFNULL(a_id_user, 0);
|
SET a_id_user := IFNULL(a_id_user, 0);
|
||||||
SET a_get_all_command := IFNULL(a_get_all_command, 0);
|
SET a_get_all_command := IFNULL(a_get_all_command, 0);
|
||||||
@@ -120,7 +122,7 @@ BEGIN
|
|||||||
id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT
|
id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT
|
||||||
, id_type INT NULL
|
, id_type INT NULL
|
||||||
, code VARCHAR(100) NOT NULL
|
, code VARCHAR(100) NOT NULL
|
||||||
, msg VARCHAR(4000) NOT NULL
|
, msg TEXT NOT NULL
|
||||||
);
|
);
|
||||||
|
|
||||||
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Split_Id (
|
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Split_Id (
|
||||||
@@ -150,7 +152,7 @@ BEGIN
|
|||||||
)
|
)
|
||||||
SELECT
|
SELECT
|
||||||
SPLIT_T.substring
|
SPLIT_T.substring
|
||||||
, CONVERT(SPLIT_T.substring, DECIMAL(10,0)) AS as_int
|
, CAST(SPLIT_T.substring AS DECIMAL(10,0)) AS as_int
|
||||||
FROM parts.CORE_Split_Temp SPLIT_T
|
FROM parts.CORE_Split_Temp SPLIT_T
|
||||||
WHERE
|
WHERE
|
||||||
SPLIT_T.GUID = v_guid
|
SPLIT_T.GUID = v_guid
|
||||||
@@ -169,7 +171,7 @@ BEGIN
|
|||||||
)
|
)
|
||||||
SELECT
|
SELECT
|
||||||
SPLIT_T.substring
|
SPLIT_T.substring
|
||||||
, CONVERT(SPLIT_T.substring, DECIMAL(10,0)) AS as_int
|
, CAST(SPLIT_T.substring AS DECIMAL(10,0)) AS as_int
|
||||||
FROM parts.CORE_Split_Temp SPLIT_T
|
FROM parts.CORE_Split_Temp SPLIT_T
|
||||||
WHERE
|
WHERE
|
||||||
SPLIT_T.GUID = v_guid
|
SPLIT_T.GUID = v_guid
|
||||||
@@ -252,7 +254,9 @@ BEGIN
|
|||||||
v_guid
|
v_guid
|
||||||
, a_id_user
|
, a_id_user
|
||||||
, FALSE -- a_get_inactive_user
|
, FALSE -- a_get_inactive_user
|
||||||
, v_id_permission_command_view
|
, v_id_permission_command_view -- ids_permission
|
||||||
|
, v_id_access_level_view -- ids_access_level
|
||||||
|
, 0 -- a_show_errors
|
||||||
, 0 -- a_debug
|
, 0 -- a_debug
|
||||||
;
|
;
|
||||||
END IF;
|
END IF;
|
||||||
@@ -261,7 +265,9 @@ BEGIN
|
|||||||
v_guid
|
v_guid
|
||||||
, a_id_user
|
, a_id_user
|
||||||
, FALSE -- a_get_inactive_user
|
, FALSE -- a_get_inactive_user
|
||||||
, v_id_permission_command_view
|
, v_id_permission_command_view -- ids_permission
|
||||||
|
, v_id_access_level_view -- ids_access_level
|
||||||
|
, 0 -- a_show_errors
|
||||||
, 0 -- a_debug
|
, 0 -- a_debug
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|||||||
@@ -16,6 +16,7 @@ CREATE PROCEDURE parts.p_dog_get_many_understanding_level (
|
|||||||
BEGIN
|
BEGIN
|
||||||
DECLARE v_code_type_error_bad_data VARCHAR(100);
|
DECLARE v_code_type_error_bad_data VARCHAR(100);
|
||||||
DECLARE v_code_type_error_no_permission VARCHAR(100);
|
DECLARE v_code_type_error_no_permission VARCHAR(100);
|
||||||
|
DECLARE v_id_access_level_view INT;
|
||||||
DECLARE v_id_type_error_bad_data INT;
|
DECLARE v_id_type_error_bad_data INT;
|
||||||
DECLARE v_id_type_error_no_permission INT;
|
DECLARE v_id_type_error_no_permission INT;
|
||||||
DECLARE v_has_filter_understanding_level_id BIT;
|
DECLARE v_has_filter_understanding_level_id BIT;
|
||||||
@@ -41,7 +42,7 @@ BEGIN
|
|||||||
id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT
|
id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT
|
||||||
, id_type INT NULL
|
, id_type INT NULL
|
||||||
, code VARCHAR(100) NOT NULL
|
, code VARCHAR(100) NOT NULL
|
||||||
, msg VARCHAR(4000) NOT NULL
|
, msg TEXT NOT NULL
|
||||||
);
|
);
|
||||||
|
|
||||||
INSERT INTO tmp_Msg_Error (
|
INSERT INTO tmp_Msg_Error (
|
||||||
@@ -81,6 +82,7 @@ BEGIN
|
|||||||
SET v_id_type_error_bad_data := (SELECT ERROR_TYPE.id_type FROM parts.CORE_Msg_Error_Type ERROR_TYPE WHERE ERROR_TYPE.code = v_code_type_error_bad_data LIMIT 1);
|
SET v_id_type_error_bad_data := (SELECT ERROR_TYPE.id_type FROM parts.CORE_Msg_Error_Type ERROR_TYPE WHERE ERROR_TYPE.code = v_code_type_error_bad_data LIMIT 1);
|
||||||
SET v_id_type_error_no_permission := (SELECT ERROR_TYPE.id_type FROM parts.CORE_Msg_Error_Type ERROR_TYPE WHERE ERROR_TYPE.code = v_code_type_error_no_permission LIMIT 1);
|
SET v_id_type_error_no_permission := (SELECT ERROR_TYPE.id_type FROM parts.CORE_Msg_Error_Type ERROR_TYPE WHERE ERROR_TYPE.code = v_code_type_error_no_permission LIMIT 1);
|
||||||
SET v_id_permission_understanding_level_view := (SELECT PERMISSION.id_permission FROM parts.DOG_Permission PERMISSION WHERE PERMISSION.code = 'DOG_VIEW' LIMIT 1);
|
SET v_id_permission_understanding_level_view := (SELECT PERMISSION.id_permission FROM parts.DOG_Permission PERMISSION WHERE PERMISSION.code = 'DOG_VIEW' LIMIT 1);
|
||||||
|
SET v_id_access_level_view := (SELECT ACCESS_LEVEL.id_access_level FROM parts.DOG_Access_Level ACCESS_LEVEL WHERE ACCESS_LEVEL.code = 'VIEW' LIMIT 1);
|
||||||
|
|
||||||
SET a_id_user := IFNULL(a_id_user, 0);
|
SET a_id_user := IFNULL(a_id_user, 0);
|
||||||
SET a_get_all_understanding_level := IFNULL(a_get_all_understanding_level, 0);
|
SET a_get_all_understanding_level := IFNULL(a_get_all_understanding_level, 0);
|
||||||
@@ -126,7 +128,7 @@ BEGIN
|
|||||||
id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT
|
id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT
|
||||||
, id_type INT NULL
|
, id_type INT NULL
|
||||||
, code VARCHAR(100) NOT NULL
|
, code VARCHAR(100) NOT NULL
|
||||||
, msg VARCHAR(4000) NOT NULL
|
, msg TEXT NOT NULL
|
||||||
);
|
);
|
||||||
|
|
||||||
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Split_Id (
|
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Split_Id (
|
||||||
@@ -163,7 +165,7 @@ BEGIN
|
|||||||
)
|
)
|
||||||
SELECT
|
SELECT
|
||||||
SPLIT_T.substring
|
SPLIT_T.substring
|
||||||
, CONVERT(SPLIT_T.substring, DECIMAL(10,0)) AS as_int
|
, CAST(SPLIT_T.substring AS DECIMAL(10,0)) AS as_int
|
||||||
FROM parts.CORE_Split_Temp SPLIT_T
|
FROM parts.CORE_Split_Temp SPLIT_T
|
||||||
WHERE
|
WHERE
|
||||||
SPLIT_T.GUID = v_guid
|
SPLIT_T.GUID = v_guid
|
||||||
@@ -182,7 +184,7 @@ BEGIN
|
|||||||
)
|
)
|
||||||
SELECT
|
SELECT
|
||||||
SPLIT_T.substring
|
SPLIT_T.substring
|
||||||
, CONVERT(SPLIT_T.substring, DECIMAL(10,0)) AS as_int
|
, CAST(SPLIT_T.substring AS DECIMAL(10,0)) AS as_int
|
||||||
FROM parts.CORE_Split_Temp SPLIT_T
|
FROM parts.CORE_Split_Temp SPLIT_T
|
||||||
WHERE
|
WHERE
|
||||||
SPLIT_T.GUID = v_guid
|
SPLIT_T.GUID = v_guid
|
||||||
@@ -201,7 +203,7 @@ BEGIN
|
|||||||
)
|
)
|
||||||
SELECT
|
SELECT
|
||||||
SPLIT_T.substring
|
SPLIT_T.substring
|
||||||
, CONVERT(SPLIT_T.substring, DECIMAL(10,0)) AS as_int
|
, CAST(SPLIT_T.substring AS DECIMAL(10,0)) AS as_int
|
||||||
FROM parts.CORE_Split_Temp SPLIT_T
|
FROM parts.CORE_Split_Temp SPLIT_T
|
||||||
WHERE
|
WHERE
|
||||||
SPLIT_T.GUID = v_guid
|
SPLIT_T.GUID = v_guid
|
||||||
@@ -289,7 +291,9 @@ BEGIN
|
|||||||
v_guid
|
v_guid
|
||||||
, a_id_user
|
, a_id_user
|
||||||
, FALSE -- a_get_inactive_user
|
, FALSE -- a_get_inactive_user
|
||||||
, v_id_permission_understanding_level_view
|
, v_id_permission_understanding_level_view -- ids_permission
|
||||||
|
, v_id_access_level_view -- ids_access_level
|
||||||
|
, 0 -- a_show_errors
|
||||||
, 0 -- a_debug
|
, 0 -- a_debug
|
||||||
;
|
;
|
||||||
END IF;
|
END IF;
|
||||||
@@ -298,7 +302,9 @@ BEGIN
|
|||||||
v_guid
|
v_guid
|
||||||
, a_id_user
|
, a_id_user
|
||||||
, FALSE -- a_get_inactive_user
|
, FALSE -- a_get_inactive_user
|
||||||
, v_id_permission_understanding_level_view
|
, v_id_permission_understanding_level_view -- ids_permission
|
||||||
|
, v_id_access_level_view -- ids_access_level
|
||||||
|
, 0 -- a_show_errors
|
||||||
, 0 -- a_debug
|
, 0 -- a_debug
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|||||||
@@ -117,17 +117,51 @@ header {
|
|||||||
}
|
}
|
||||||
|
|
||||||
#formFilters .container-input input {
|
#formFilters .container-input input {
|
||||||
max-width: 5vh;
|
width: 10vh;
|
||||||
|
max-width: 10vh;
|
||||||
|
}
|
||||||
|
#formFilters .container-input input {
|
||||||
|
height: 1.7vh;
|
||||||
|
}
|
||||||
|
#formFilters .container-input select {
|
||||||
|
height: 2vh;
|
||||||
}
|
}
|
||||||
|
|
||||||
#formFilters .container-input.filter.active {
|
#formFilters .container-input.filter.active_only {
|
||||||
width: 8vh;
|
width: 8vh;
|
||||||
}
|
}
|
||||||
|
#formFilters .container-input.filter.active_only input {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
#formFilters .container-input.filter.active_only svg.active_only {
|
||||||
|
height: 2vh;
|
||||||
|
fill: var(--colour-text-background);
|
||||||
|
background-color: var(--colour-accent);
|
||||||
|
border: 1px solid var(--colour-accent);
|
||||||
|
width: 2vh;
|
||||||
|
border-radius: 0.5vh;
|
||||||
|
}
|
||||||
|
#formFilters .container-input.filter.active_only svg.active_only.is_checked {
|
||||||
|
fill: var(--colour-primary);
|
||||||
|
/*
|
||||||
|
background-color: var(--colour-accent);
|
||||||
|
border: 1px solid var(--colour-accent);
|
||||||
|
*/
|
||||||
|
}
|
||||||
#formFilters .container-input.filter.is_not_empty {
|
#formFilters .container-input.filter.is_not_empty {
|
||||||
width: 12vh;
|
width: 12vh;
|
||||||
}
|
}
|
||||||
|
|
||||||
button.collapsed {
|
#formFilters button {
|
||||||
|
padding: 0.5vh 0.75vh;
|
||||||
|
background-color: var(--colour-accent);
|
||||||
|
color: var(--colour-primary);
|
||||||
|
font-weight: bold;
|
||||||
|
border-radius: 0.75vh;
|
||||||
|
border: 2px solid var(--colour-primary);
|
||||||
|
}
|
||||||
|
|
||||||
|
#formFilters button.collapsed {
|
||||||
display: block;
|
display: block;
|
||||||
opacity: 0;
|
opacity: 0;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -203,10 +203,6 @@ img.header-logo {
|
|||||||
margin-top: 0;
|
margin-top: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.container-input:not(:nth-child(3)) > label {
|
|
||||||
margin-top: 1vh;
|
|
||||||
}
|
|
||||||
|
|
||||||
.container-input > input, .container-input > textarea {
|
.container-input > input, .container-input > textarea {
|
||||||
border: 2px solid var(--colour-primary);
|
border: 2px solid var(--colour-primary);
|
||||||
padding: 1vh;
|
padding: 1vh;
|
||||||
|
|||||||
@@ -39,12 +39,22 @@
|
|||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
|
|
||||||
td > input, td > select, td > textarea, .container-input > input, .container-input > select, .container-input > textarea {
|
td > input
|
||||||
|
, td > select
|
||||||
|
, td > textarea
|
||||||
|
, .container-input > input
|
||||||
|
, .container-input > select
|
||||||
|
, .container-input > textarea
|
||||||
|
{
|
||||||
border: 2px solid var(--colour-primary);
|
border: 2px solid var(--colour-primary);
|
||||||
border-radius: 0.5vh;
|
border-radius: 0.5vh;
|
||||||
}
|
}
|
||||||
|
|
||||||
#tableMain tbody tr td table thead tr th.id_variation_type, #tableMain tbody tr td table tbody tr td.id_variation_type, #tableMain tbody tr td table thead tr th.id_variation, #tableMain tbody tr td table tbody tr td.id_variation {
|
#tableMain tbody tr td table thead tr th.id_variation_type
|
||||||
|
, #tableMain tbody tr td table tbody tr td.id_variation_type
|
||||||
|
, #tableMain tbody tr td table thead tr th.id_variation
|
||||||
|
, #tableMain tbody tr td table tbody tr td.id_variation
|
||||||
|
{
|
||||||
width: 47.5%;
|
width: 47.5%;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -19,10 +19,11 @@ export default class DOM {
|
|||||||
}
|
}
|
||||||
static setElementValueCurrent(element, data) {
|
static setElementValueCurrent(element, data) {
|
||||||
DOM.setElementAttributeValueCurrent(element, data);
|
DOM.setElementAttributeValueCurrent(element, data);
|
||||||
|
let tagName = element.tagName.toUpperCase();
|
||||||
if (element.type === "checkbox") {
|
if (element.type === "checkbox") {
|
||||||
element.checked = data;
|
element.checked = data;
|
||||||
}
|
}
|
||||||
else if (element.tagName === 'INPUT' || element.tagName === 'TEXTAREA' || element.tagName === 'SELECT') {
|
else if (tagName === 'INPUT' || tagName === 'TEXTAREA' || tagName === 'SELECT') {
|
||||||
element.value = data;
|
element.value = data;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
@@ -109,6 +110,7 @@ export default class DOM {
|
|||||||
|
|
||||||
if (!Validation.isEmpty(element)) {
|
if (!Validation.isEmpty(element)) {
|
||||||
|
|
||||||
|
let tagName = element.tagName.toUpperCase();
|
||||||
if (element.type === "checkbox") {
|
if (element.type === "checkbox") {
|
||||||
returnVal = element.checked;
|
returnVal = element.checked;
|
||||||
}
|
}
|
||||||
@@ -117,15 +119,18 @@ export default class DOM {
|
|||||||
returnVal = getDatePickerDate(element, adjust4DayLightSavings);
|
returnVal = getDatePickerDate(element, adjust4DayLightSavings);
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
else if (element.tagName === 'INPUT' || element.tagName === 'TEXTAREA' || element.tagName === 'SELECT') {
|
else if (tagName === 'INPUT' || tagName === 'TEXTAREA' || tagName === 'SELECT') {
|
||||||
returnVal = element.value;
|
returnVal = element.value;
|
||||||
}
|
}
|
||||||
else if (element.tagName === 'BUTTON' && element.classList.contains(flagActive)) {
|
else if (tagName === 'BUTTON' && element.classList.contains(flagActive)) {
|
||||||
returnVal = element.classList.contains(flagDelete);
|
returnVal = element.classList.contains(flagDelete);
|
||||||
}
|
}
|
||||||
else if (element.tagName === 'TD') {
|
else if (tagName === 'TD') {
|
||||||
returnVal = DOM.getElementAttributeValueCurrent(element);
|
returnVal = DOM.getElementAttributeValueCurrent(element);
|
||||||
}
|
}
|
||||||
|
else if (tagName == 'SVG' && element.classList.contains(flagCheckbox)) {
|
||||||
|
returnVal = (element.classList.contains(flagIsChecked))
|
||||||
|
}
|
||||||
else {
|
else {
|
||||||
returnVal = element.textContent;
|
returnVal = element.textContent;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -61,9 +61,35 @@ export default class TableBasePage extends BasePage {
|
|||||||
}
|
}
|
||||||
sharedHookupFilters() {
|
sharedHookupFilters() {
|
||||||
this.hookupButtonApplyFilters();
|
this.hookupButtonApplyFilters();
|
||||||
|
this.hookupSearchTextFilter();
|
||||||
}
|
}
|
||||||
hookupFilterActive() {
|
hookupFilterActive() {
|
||||||
this.hookupFilter(flagActive);
|
let filterSelector = idFormFilters + ' #' + flagActiveOnly;
|
||||||
|
let filterActiveOld = document.querySelector(filterSelector);
|
||||||
|
filterActiveOld.removeAttribute('id');
|
||||||
|
let parentDiv = filterActiveOld.parentElement;
|
||||||
|
let isChecked = (DOM.getElementAttributeValuePrevious(parentDiv) == "True");
|
||||||
|
let filterActiveNew = document.querySelector(idFormFilters + ' div.' + flagActiveOnly + '.' + flagContainerInput + ' svg.' + flagActiveOnly);
|
||||||
|
filterActiveNew.setAttribute('id', flagActiveOnly);
|
||||||
|
if (isChecked) filterActiveNew.classList.add(flagIsChecked);
|
||||||
|
|
||||||
|
this.hookupEventHandler("click", filterSelector, (event, filterActive) => {
|
||||||
|
console.log({ filterActive });
|
||||||
|
console.log({ [filterActive.tagName]: filterActive.tagName });
|
||||||
|
let svgElement = (filterActive.tagName.toUpperCase() == 'SVG') ? filterActive : filterActive.parentElement;
|
||||||
|
let wasChecked = svgElement.classList.contains(flagIsChecked);
|
||||||
|
if (wasChecked) {
|
||||||
|
svgElement.classList.remove(flagIsChecked);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
svgElement.classList.add(flagIsChecked);
|
||||||
|
}
|
||||||
|
return TableBasePage.isDirtyFilter(svgElement);
|
||||||
|
});
|
||||||
|
let filter = document.querySelector(filterSelector);
|
||||||
|
let filterValuePrevious = DOM.getElementValueCurrent(filter);
|
||||||
|
filter.setAttribute(attrValueCurrent, filterValuePrevious);
|
||||||
|
filter.setAttribute(attrValuePrevious, filterValuePrevious);
|
||||||
}
|
}
|
||||||
hookupFilter(filterFlag, handler = (event, filter) => { return TableBasePage.isDirtyFilter(filter); }) {
|
hookupFilter(filterFlag, handler = (event, filter) => { return TableBasePage.isDirtyFilter(filter); }) {
|
||||||
let filterSelector = idFormFilters + ' #' + filterFlag;
|
let filterSelector = idFormFilters + ' #' + filterFlag;
|
||||||
@@ -91,6 +117,9 @@ export default class TableBasePage extends BasePage {
|
|||||||
this.callFilterTableContent();
|
this.callFilterTableContent();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
hookupSearchTextFilter() {
|
||||||
|
this.hookupFilter(flagSearch);
|
||||||
|
}
|
||||||
/*
|
/*
|
||||||
getAndLoadFilteredTableContent = () => {
|
getAndLoadFilteredTableContent = () => {
|
||||||
this.callFilterTableContent()
|
this.callFilterTableContent()
|
||||||
@@ -225,12 +254,13 @@ export default class TableBasePage extends BasePage {
|
|||||||
this.initialiseRowNew(tbody, row);
|
this.initialiseRowNew(tbody, row);
|
||||||
tbody.appendChild(row);
|
tbody.appendChild(row);
|
||||||
this.hookupTableMain();
|
this.hookupTableMain();
|
||||||
|
this.postInitialiseRowNewCallback(tbody);
|
||||||
}
|
}
|
||||||
initialiseRowNew(tbody, row) {
|
initialiseRowNew(tbody, row) {
|
||||||
if (this.constructor === TableBasePage) {
|
if (this.constructor === TableBasePage) {
|
||||||
throw new Error("Subclass of TableBasePage must implement method initialiseRowNew().");
|
throw new Error("Subclass of TableBasePage must implement method initialiseRowNew().");
|
||||||
}
|
}
|
||||||
row.classList.remove(flagRowNew);
|
// row.classList.remove(flagRowNew);
|
||||||
}
|
}
|
||||||
hookupTableMain() {
|
hookupTableMain() {
|
||||||
if (this.constructor === TableBasePage) {
|
if (this.constructor === TableBasePage) {
|
||||||
@@ -253,6 +283,11 @@ export default class TableBasePage extends BasePage {
|
|||||||
});
|
});
|
||||||
_rowBlank.setAttribute(this.constructor.attrIdRowObject, -1 - countRows);
|
_rowBlank.setAttribute(this.constructor.attrIdRowObject, -1 - countRows);
|
||||||
}
|
}
|
||||||
|
postInitialiseRowNewCallback(tbody) {
|
||||||
|
if (this.constructor === TableBasePage) {
|
||||||
|
throw new Error("Subclass of TableBasePage must implement method postInitialiseRowNewCallback(tbody).");
|
||||||
|
}
|
||||||
|
}
|
||||||
initialiseSliderDisplayOrderRowNew(tbody, row) {
|
initialiseSliderDisplayOrderRowNew(tbody, row) {
|
||||||
// let tdSelector = ':scope > tr > td.' + flagDisplayOrder;
|
// let tdSelector = ':scope > tr > td.' + flagDisplayOrder;
|
||||||
// let tbody = document.querySelector('table' + (Validation.isEmpty(flagTable) ? '' : '.' + flagTable) + ' > tbody');
|
// let tbody = document.querySelector('table' + (Validation.isEmpty(flagTable) ? '' : '.' + flagTable) + ' > tbody');
|
||||||
@@ -518,8 +553,100 @@ export default class TableBasePage extends BasePage {
|
|||||||
this.toggleColumnHasClassnameFlag(flagColumn, isCollapsed, flagCollapsed);
|
this.toggleColumnHasClassnameFlag(flagColumn, isCollapsed, flagCollapsed);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
hookupFieldsCommandCategory() {
|
||||||
|
this.hookupTableCellDdlPreviews(
|
||||||
|
idTableMain + ' td.' + flagCommandCategory
|
||||||
|
, Utils.getListFromDict(filterCommandCategories)
|
||||||
|
, (cellSelector) => { this.hookupCommandCategoryDdls(cellSelector); }
|
||||||
|
);
|
||||||
|
}
|
||||||
|
hookupCommandCategoryDdls(ddlSelector) {
|
||||||
|
this.hookupChangeHandlerTableCells(ddlSelector, (event, element) => { this.handleChangeCommandCategoryDdl(event, element); });
|
||||||
|
}
|
||||||
|
handleChangeCommandCategoryDdl(event, ddlCategory) {
|
||||||
|
let idCommandCategoryOld = DOM.getElementAttributeValueCurrent(ddlCategory);
|
||||||
|
this.handleChangeNestedElementCellTable(event, ddlCategory);
|
||||||
|
let idCommandCategoryNew = DOM.getElementAttributeValueCurrent(ddlCategory);
|
||||||
|
if (idCommandCategoryOld == idCommandCategoryNew) return;
|
||||||
|
let row = DOM.getRowFromElement(ddlCategory);
|
||||||
|
let tdCommand = row.querySelector('td.' + flagCommand);
|
||||||
|
tdCommand.dispatchEvent(new Event('click'));
|
||||||
|
let ddlCommand = row.querySelector('td.' + flagCommand + ' select');
|
||||||
|
ddlCommand.innerHTML = '';
|
||||||
|
ddlCommand.appendChild(DOM.createOption(null));
|
||||||
|
let optionJson, option;
|
||||||
|
Utils.getListFromDict(filterCommands).forEach((command) => {
|
||||||
|
if (idCommandCategoryNew != '0' && command[attrIdCommandCategory] != idCommandCategoryNew) return;
|
||||||
|
optionJson = BusinessObjects.getOptionJsonFromObjectJson(command);
|
||||||
|
option = DOM.createOption(optionJson);
|
||||||
|
ddlCommand.appendChild(option);
|
||||||
|
});
|
||||||
|
this.handleChangeNestedElementCellTable(event, ddlCommand);
|
||||||
|
}
|
||||||
hookupFieldsCommand() {
|
hookupFieldsCommand() {
|
||||||
this.hookupTableCellDdlPreviews(idTableMain + ' td.' + flagCommand, Utils.getListFromDict(filterCommands));
|
let cellSelector = idTableMain + ' td.' + flagCommand;
|
||||||
|
this.hookupEventHandler("click", cellSelector, (event, td) => {
|
||||||
|
let parentTr = td.parentElement;
|
||||||
|
let tdCommandCategory = parentTr.querySelector('td.' + flagCommandCategory);
|
||||||
|
let idCommandCategoryRow = DOM.getElementAttributeValueCurrent(tdCommandCategory);
|
||||||
|
let idCommandCategoryFilter = this.getIdCommandCategoryFilter();
|
||||||
|
let filterCommandList = Utils.getListFromDict(filterCommands);
|
||||||
|
let commandsInCategory = filterCommandList.filter(command =>
|
||||||
|
(
|
||||||
|
command[attrIdCommandCategory] == idCommandCategoryRow
|
||||||
|
)
|
||||||
|
&& (
|
||||||
|
command[attrIdCommandCategory] == idCommandCategoryFilter
|
||||||
|
|| idCommandCategoryFilter == 0
|
||||||
|
)
|
||||||
|
);
|
||||||
|
console.log({ tdCommandCategory, idCommandCategoryRow, filterCommandList, commandsInCategory });
|
||||||
|
console.log(filterCommandList);
|
||||||
|
this.handleClickTableCellDdlPreview(
|
||||||
|
event
|
||||||
|
, td
|
||||||
|
, commandsInCategory
|
||||||
|
, cellSelector
|
||||||
|
, (cellSelector) => { this.hookupTableCellDdls(
|
||||||
|
cellSelector
|
||||||
|
, (event, element) => { this.handleChangeNestedElementCellTable(event, element); }
|
||||||
|
); }
|
||||||
|
);
|
||||||
|
});
|
||||||
|
this.hookupTableCellDdls(cellSelector + ' select');
|
||||||
|
}
|
||||||
|
getIdCommandCategoryFilter() {
|
||||||
|
let formFilters = this.getFormFilters();
|
||||||
|
let commandCategoryFilter = formFilters.querySelector('#' + attrIdCommandCategory);
|
||||||
|
let commandFilter = formFilters.querySelector('#' + attrIdCommand);
|
||||||
|
let idCommandCategory = 0;
|
||||||
|
let valueCurrentCommandCategoryFilter = DOM.getElementAttributeValueCurrent(commandCategoryFilter);
|
||||||
|
console.log({ valueCurrentCommandCategoryFilter });
|
||||||
|
if (valueCurrentCommandCategoryFilter == "") {
|
||||||
|
let valueCurrentCommandFilter = DOM.getElementAttributeValueCurrent(commandFilter);
|
||||||
|
if (valueCurrentCommandFilter != "") {
|
||||||
|
let command = filterCommands[valueCurrentCommandFilter];
|
||||||
|
idCommandCategory = command[attrIdCommandCategory];
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
idCommandCategory = Number(valueCurrentCommandCategoryFilter);
|
||||||
|
}
|
||||||
|
return idCommandCategory;
|
||||||
|
}
|
||||||
|
getHasCommandCategoryFilter() {
|
||||||
|
let idCommandCategoryFilter = this.getIdCommandCategoryFilter();
|
||||||
|
return !(Validation.isEmpty(idCommandCategoryFilter) || idCommandCategoryFilter == 0);
|
||||||
|
}
|
||||||
|
getIdCommandFilter() {
|
||||||
|
let formFilters = this.getFormFilters();
|
||||||
|
let commandFilter = formFilters.querySelector('#' + attrIdCommand);
|
||||||
|
let valueCurrentCommandFilter = DOM.getElementAttributeValueCurrent(commandFilter);
|
||||||
|
let idCommand = Number(valueCurrentCommandFilter);
|
||||||
|
return idCommand;
|
||||||
|
}
|
||||||
|
getHasCommandFilter() {
|
||||||
|
let idCommandFilter = this.getIdCommandFilter();
|
||||||
|
return !(Validation.isEmpty(idCommandFilter) || idCommandFilter == 0);
|
||||||
}
|
}
|
||||||
hookupFieldsDog() {
|
hookupFieldsDog() {
|
||||||
this.hookupTableCellDdlPreviews(idTableMain + ' td.' + flagDog, Utils.getListFromDict(filterDogs));
|
this.hookupTableCellDdlPreviews(idTableMain + ' td.' + flagDog, Utils.getListFromDict(filterDogs));
|
||||||
|
|||||||
@@ -25,17 +25,21 @@ export default class PageDogDogCommandLinks extends TableBasePage {
|
|||||||
hookupFilters() {
|
hookupFilters() {
|
||||||
this.sharedHookupFilters();
|
this.sharedHookupFilters();
|
||||||
this.hookupFilterDog();
|
this.hookupFilterDog();
|
||||||
|
this.hookupFilterCommandCategory();
|
||||||
this.hookupFilterCommand();
|
this.hookupFilterCommand();
|
||||||
|
this.hookupFilterActive();
|
||||||
}
|
}
|
||||||
hookupFilterDog() {
|
hookupFilterDog() {
|
||||||
this.hookupFilter(attrIdDog);
|
this.hookupFilter(attrIdDog);
|
||||||
/*, (event, filterDog) => {
|
}
|
||||||
|
hookupFilterCommandCategory() {
|
||||||
|
this.hookupFilter(attrIdCommandCategory, (event, filterCommandCategory) => {
|
||||||
// loadDogCommandLinks();
|
// loadDogCommandLinks();
|
||||||
// let wasDirtyFilter = filterDog.classList.contains(flagDirty);
|
// let wasDirtyFilter = filterCommandCategory.classList.contains(flagDirty);
|
||||||
PageDogDogCommandLinks.isDirtyFilter(filterDog);
|
PageDogDogCommandLinks.isDirtyFilter(filterCommandCategory);
|
||||||
let isDirtyFilter = filterDog.classList.contains(flagDirty);
|
let isDirtyFilter = filterCommandCategory.classList.contains(flagDirty);
|
||||||
let idDog = DOM.getElementValueCurrent(filterDog);
|
let idCommandCategory = DOM.getElementValueCurrent(filterCommandCategory);
|
||||||
let commands = dogs[idDog];
|
let commands = filterCommands.filter(command => command[attrIdCommandCategory] == idCommandCategory);
|
||||||
let filterCommand = document.querySelector(idFormFilters + ' .' + flagCommand);
|
let filterCommand = document.querySelector(idFormFilters + ' .' + flagCommand);
|
||||||
let idCommandPrevious = filterCommand.getAttribute(attrValuePrevious);
|
let idCommandPrevious = filterCommand.getAttribute(attrValuePrevious);
|
||||||
filterCommand.innerHTML = '';
|
filterCommand.innerHTML = '';
|
||||||
@@ -48,8 +52,8 @@ export default class PageDogDogCommandLinks extends TableBasePage {
|
|||||||
filterCommand.appendChild(option);
|
filterCommand.appendChild(option);
|
||||||
});
|
});
|
||||||
filterCommand.dispatchEvent(new Event('change'));
|
filterCommand.dispatchEvent(new Event('change'));
|
||||||
|
return isDirtyFilter;
|
||||||
});
|
});
|
||||||
*/
|
|
||||||
}
|
}
|
||||||
hookupFilterCommand() {
|
hookupFilterCommand() {
|
||||||
this.hookupFilter(attrIdCommand);
|
this.hookupFilter(attrIdCommand);
|
||||||
@@ -119,7 +123,7 @@ export default class PageDogDogCommandLinks extends TableBasePage {
|
|||||||
let tdCommand = row.querySelector('td.' + flagCommand);
|
let tdCommand = row.querySelector('td.' + flagCommand);
|
||||||
let inputHandSignalDescription = row.querySelector('td.' + flagHandSignalDescription + ' textarea');
|
let inputHandSignalDescription = row.querySelector('td.' + flagHandSignalDescription + ' textarea');
|
||||||
let inputNotes = row.querySelector('td.' + flagNotes + ' textarea');
|
let inputNotes = row.querySelector('td.' + flagNotes + ' textarea');
|
||||||
let buttonActive = row.querySelector(':scope > td.' + flagActive + ' button');
|
let buttonActive = row.querySelector('td.' + flagActive + ' .' + flagActive);
|
||||||
|
|
||||||
let jsonRow = {};
|
let jsonRow = {};
|
||||||
jsonRow[attrIdDogCommandLink] = row.getAttribute(attrIdDogCommandLink);
|
jsonRow[attrIdDogCommandLink] = row.getAttribute(attrIdDogCommandLink);
|
||||||
@@ -131,40 +135,69 @@ export default class PageDogDogCommandLinks extends TableBasePage {
|
|||||||
return jsonRow;
|
return jsonRow;
|
||||||
}
|
}
|
||||||
initialiseRowNew(tbody, row) {
|
initialiseRowNew(tbody, row) {
|
||||||
this.initialiseRowNewDdlsDogAndCommand(row);
|
|
||||||
/*
|
/*
|
||||||
|
this.initialiseRowNewDdlsDog(row);
|
||||||
|
this.initialiseRowNewDdlsCommandCategory(row);
|
||||||
|
this.initialiseRowNewDdlsCommand(row);
|
||||||
|
this.initialiseRowNewDdlsDogAndCommand(row);
|
||||||
let checkboxIsSubscription = row.querySelector('td.' + flagIsSubscription + ' input');
|
let checkboxIsSubscription = row.querySelector('td.' + flagIsSubscription + ' input');
|
||||||
let checkboxDoesExpireFasterOnceUnsealed = row.querySelector('td.' + flagDoesExpireFasterOnceUnsealed + ' input');
|
let checkboxDoesExpireFasterOnceUnsealed = row.querySelector('td.' + flagDoesExpireFasterOnceUnsealed + ' input');
|
||||||
this.handleChangeCheckboxDoesExpireFasterOnceUnsealed(null, checkboxDoesExpireFasterOnceUnsealed);
|
this.handleChangeCheckboxDoesExpireFasterOnceUnsealed(null, checkboxDoesExpireFasterOnceUnsealed);
|
||||||
this.handleChangeCheckboxIsSubscription(null, checkboxIsSubscription);
|
this.handleChangeCheckboxIsSubscription(null, checkboxIsSubscription);
|
||||||
*/
|
*/
|
||||||
}
|
}
|
||||||
initialiseRowNewDdlsDogAndCommand(row) {
|
initialiseRowNewDdlsDog(row) {
|
||||||
let ddlDogFilter = document.querySelector(idFormFilters + ' #' + attrIdDog);
|
let ddlDogFilter = document.querySelector(idFormFilters + ' #' + attrIdDog);
|
||||||
let idDogFilter = DOM.getElementValueCurrent(ddlDogFilter);
|
let idDogFilter = DOM.getElementValueCurrent(ddlDogFilter);
|
||||||
let hasDogFilter = !(Validation.isEmpty(idDogFilter) || idDogFilter == '0');
|
let hasDogFilter = !(Validation.isEmpty(idDogFilter) || idDogFilter == '0');
|
||||||
let ddlCommandFilter = document.querySelector(idFormFilters + ' #' + attrIdCommand);
|
if (_verbose) {
|
||||||
let idCommandFilter = DOM.getElementValueCurrent(ddlCommandFilter);
|
console.log("initialiseRowNew: ", row);
|
||||||
let hasCommandFilter = !(Validation.isEmpty(idCommandFilter) || idCommandFilter == '0');
|
console.log({ ddlDogFilter, idDogFilter, hasDogFilter });
|
||||||
|
}
|
||||||
|
if (!hasDogFilter) return;
|
||||||
|
let ddlDog = row.querySelector('td.' + flagDog + ' select');
|
||||||
|
DOM.setElementValuesCurrentAndPrevious(ddlDog, idDogFilter);
|
||||||
|
this.handleChangeDogDdl(null, ddlDog);
|
||||||
|
}
|
||||||
|
initialiseRowNewDdlsCommandCategory(row) {
|
||||||
|
let idCommandCategoryFilter = this.getIdCommandCategoryFilter();
|
||||||
|
let hasCommandCategoryFilter = this.getHasCommandCategoryFilter();
|
||||||
|
if (_verbose) {
|
||||||
|
console.log("initialiseRowNew: ", row);
|
||||||
|
console.log({ddlDogFilter, idDogFilter, hasDogFilter, idCommandCategoryFilter, hasCommandCategoryFilter});
|
||||||
|
}
|
||||||
|
if (!hasCommandCategoryFilter) return;
|
||||||
|
let ddlCommandCategory = row.querySelector('td.' + flagCommandCategory + ' select');
|
||||||
|
DOM.setElementValuesCurrentAndPrevious(ddlCommandCategory, idCommandCategoryFilter);
|
||||||
|
}
|
||||||
|
initialiseRowNewDdlsCommand(row) {
|
||||||
|
let idCommandFilter = this.getIdCommandFilter();
|
||||||
|
let hasCommandFilter = this.getHasCommandFilter();
|
||||||
if (_verbose) {
|
if (_verbose) {
|
||||||
console.log("initialiseRowNew: ", row);
|
console.log("initialiseRowNew: ", row);
|
||||||
console.log({ddlDogFilter, idDogFilter, hasDogFilter, ddlCommandFilter, idCommandFilter, hasCommandFilter});
|
console.log({ddlDogFilter, idDogFilter, hasDogFilter, ddlCommandFilter, idCommandFilter, hasCommandFilter});
|
||||||
}
|
}
|
||||||
if (!hasDogFilter && !hasCommandFilter) return;
|
if (!hasCommandFilter) return;
|
||||||
if (hasDogFilter) {
|
let ddlCommand = row.querySelector('td.' + flagCommand + ' select');
|
||||||
let ddlDog = row.querySelector('td.' + flagDog + ' select');
|
DOM.setElementValuesCurrentAndPrevious(ddlCommand, idCommandFilter);
|
||||||
DOM.setElementValuesCurrentAndPrevious(ddlDog, idDogFilter);
|
}
|
||||||
this.handleChangeDogDdl(null, ddlDog);
|
postInitialiseRowNewCallback(tbody) {
|
||||||
}
|
let newRows = tbody.querySelectorAll('tr.' + flagRowNew);
|
||||||
if (hasCommandFilter) {
|
let newestRow = newRows[newRows.length - 1];
|
||||||
let ddlCommand = row.querySelector('td.' + flagCommand + ' select');
|
let clickableElementsSelector = [
|
||||||
DOM.setElementValuesCurrentAndPrevious(ddlCommand, idCommandFilter);
|
'td.' + flagDog + ' div.' + flagDog
|
||||||
}
|
, ',td.' + flagCommandCategory + ' div.' + flagCommandCategory
|
||||||
|
, ',td.' + flagCommand + ' div.' + flagCommand
|
||||||
|
].join('');
|
||||||
|
newestRow.querySelectorAll(clickableElementsSelector).forEach((clickableElement) => {
|
||||||
|
clickableElement.click();
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
hookupTableMain() {
|
hookupTableMain() {
|
||||||
super.hookupTableMain();
|
super.hookupTableMain();
|
||||||
this.hookupFieldsDog();
|
this.hookupFieldsDog();
|
||||||
|
this.hookupFieldsCommandCategory();
|
||||||
this.hookupFieldsCommand();
|
this.hookupFieldsCommand();
|
||||||
this.hookupTextareasHandSignalDescription();
|
this.hookupTextareasHandSignalDescription();
|
||||||
this.hookupTextareasNotes();
|
this.hookupTextareasNotes();
|
||||||
|
|||||||
9
templates/components/common/buttons/_icon_checkbox.html
Normal file
9
templates/components/common/buttons/_icon_checkbox.html
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
|
||||||
|
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"
|
||||||
|
fill="{{ colour }}"
|
||||||
|
class="{{ model.FLAG_ICON }} {{ model.FLAG_CHECKBOX }} {{ class_name }}"
|
||||||
|
>
|
||||||
|
<!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.-->
|
||||||
|
<path d="M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM337 209L209 337c-9.4 9.4-24.6 9.4-33.9 0l-64-64c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l47 47L303 175c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9z"/>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 604 B |
@@ -1,15 +1,2 @@
|
|||||||
|
|
||||||
{% if not is_blank_row %}
|
<div class="{{ model.FLAG_COMMAND }}" >{% if not is_blank_row %}{{ command.name }}{% endif %}</div>
|
||||||
<div
|
|
||||||
class="{{ model.FLAG_COMMAND }}"
|
|
||||||
{{ model.ATTR_VALUE_CURRENT }}="{{ command.id_command }}"
|
|
||||||
{{ model.ATTR_VALUE_PREVIOUS }}="{{ command.id_command }}"
|
|
||||||
>{{ command.name }}</div>
|
|
||||||
{% else %}
|
|
||||||
<select class="{{ model.FLAG_COMMAND }}" {{ model.ATTR_VALUE_CURRENT }}="0" {{ model.ATTR_VALUE_PREVIOUS }}="0">
|
|
||||||
{% include 'components/common/inputs/_option_blank.html' %}
|
|
||||||
{% for command in model.filter_commands %}
|
|
||||||
<option value="{{ command.id_command }}">{{ command.name }}</option>
|
|
||||||
{% endfor %}
|
|
||||||
</select>
|
|
||||||
{% endif %}
|
|
||||||
|
|||||||
@@ -0,0 +1,2 @@
|
|||||||
|
|
||||||
|
<div class="{{ model.FLAG_COMMAND_CATEGORY }}" >{% if not is_blank_row %}{{ command_category.name }}{% endif %}</div>
|
||||||
@@ -1,15 +1,2 @@
|
|||||||
|
|
||||||
{% if not is_blank_row %}
|
<div class="{{ model.FLAG_DOG }}" >{% if not is_blank_row %}{{ dog.name }}{% endif %}</div>
|
||||||
<div
|
|
||||||
class="{{ model.FLAG_DOG }}"
|
|
||||||
{{ model.ATTR_VALUE_CURRENT }}="{{ dog.id_dog }}"
|
|
||||||
{{ model.ATTR_VALUE_PREVIOUS }}="{{ dog.id_dog }}"
|
|
||||||
>{{ dog.name }}</div>
|
|
||||||
{% else %}
|
|
||||||
<select class="{{ model.FLAG_DOG }}" {{ model.ATTR_VALUE_CURRENT }}="0" {{ model.ATTR_VALUE_PREVIOUS }}="0">
|
|
||||||
{% include 'components/common/inputs/_option_blank.html' %}
|
|
||||||
{% for dog in model.filter_dogs %}
|
|
||||||
<option value="{{ dog.id_dog }}">{{ dog.name }}</option>
|
|
||||||
{% endfor %}
|
|
||||||
</select>
|
|
||||||
{% endif %}
|
|
||||||
|
|||||||
@@ -4,6 +4,9 @@
|
|||||||
<td class="{{ model.FLAG_DOG }}" {{ model.ATTR_VALUE_CURRENT }}="0" {{ model.ATTR_VALUE_PREVIOUS }}="0">
|
<td class="{{ model.FLAG_DOG }}" {{ model.ATTR_VALUE_CURRENT }}="0" {{ model.ATTR_VALUE_PREVIOUS }}="0">
|
||||||
{% include 'components/dog/_preview_DDL_dog.html' %}
|
{% include 'components/dog/_preview_DDL_dog.html' %}
|
||||||
</td>
|
</td>
|
||||||
|
<td class="{{ model.FLAG_COMMAND_CATEGORY }}" {{ model.ATTR_VALUE_CURRENT }}="0" {{ model.ATTR_VALUE_PREVIOUS }}="0">
|
||||||
|
{% include 'components/dog/_preview_DDL_command_category.html' %}
|
||||||
|
</td>
|
||||||
<td class="{{ model.FLAG_COMMAND }}" {{ model.ATTR_VALUE_CURRENT }}="0" {{ model.ATTR_VALUE_PREVIOUS }}="0">
|
<td class="{{ model.FLAG_COMMAND }}" {{ model.ATTR_VALUE_CURRENT }}="0" {{ model.ATTR_VALUE_PREVIOUS }}="0">
|
||||||
{% include 'components/dog/_preview_DDL_command.html' %}
|
{% include 'components/dog/_preview_DDL_command.html' %}
|
||||||
</td>
|
</td>
|
||||||
@@ -19,11 +22,15 @@
|
|||||||
{% else %}
|
{% else %}
|
||||||
<tr class="{{ model.FLAG_DOG_COMMAND_LINK }}" {{ model.ATTR_ID_DOG_COMMAND_LINK }}="{{ link.id_link }}">
|
<tr class="{{ model.FLAG_DOG_COMMAND_LINK }}" {{ model.ATTR_ID_DOG_COMMAND_LINK }}="{{ link.id_link }}">
|
||||||
{% set dog = link.dog %}
|
{% set dog = link.dog %}
|
||||||
<td class="{{ model.FLAG_DOG }}" {{ model.ATTR_VALUE_CURRENT }}="{{ link.id_dog }}" {{ model.ATTR_VALUE_PREVIOUS }}="{{ link.id_dog }}">
|
<td class="{{ model.FLAG_DOG }}" {{ model.ATTR_VALUE_CURRENT }}="{{ dog.id_dog }}" {{ model.ATTR_VALUE_PREVIOUS }}="{{ dog.id_dog }}">
|
||||||
{% include 'components/dog/_preview_DDL_dog.html' %}
|
{% include 'components/dog/_preview_DDL_dog.html' %}
|
||||||
</td>
|
</td>
|
||||||
|
{% set command_category = link.command.command_category %}
|
||||||
|
<td class="{{ model.FLAG_COMMAND_CATEGORY }}" {{ model.ATTR_VALUE_CURRENT }}="{{ command_category.id_command_category }}" {{ model.ATTR_VALUE_PREVIOUS }}="{{ command_category.id_command_category }}">
|
||||||
|
{% include 'components/dog/_preview_DDL_command_category.html' %}
|
||||||
|
</td>
|
||||||
{% set command = link.command %}
|
{% set command = link.command %}
|
||||||
<td class="{{ model.FLAG_COMMAND }}" {{ model.ATTR_VALUE_CURRENT }}="{{ link.id_command }}" {{ model.ATTR_VALUE_PREVIOUS }}="{{ link.id_command }}">
|
<td class="{{ model.FLAG_COMMAND }}" {{ model.ATTR_VALUE_CURRENT }}="{{ command.id_command }}" {{ model.ATTR_VALUE_PREVIOUS }}="{{ command.id_command }}">
|
||||||
{% include 'components/dog/_preview_DDL_command.html' %}
|
{% include 'components/dog/_preview_DDL_command.html' %}
|
||||||
</td>
|
</td>
|
||||||
<td class="{{ model.FLAG_HAND_SIGNAL_DESCRIPTION}}" {{ model.ATTR_VALUE_CURRENT }}="{{ link.hand_signal_description }}" {{ model.ATTR_VALUE_PREVIOUS }}="{{ link.hand_signal_description }}">
|
<td class="{{ model.FLAG_HAND_SIGNAL_DESCRIPTION}}" {{ model.ATTR_VALUE_CURRENT }}="{{ link.hand_signal_description }}" {{ model.ATTR_VALUE_PREVIOUS }}="{{ link.hand_signal_description }}">
|
||||||
|
|||||||
@@ -0,0 +1,21 @@
|
|||||||
|
|
||||||
|
<div class="{{ model.FLAG_COMMAND }}" >{% if not is_blank_row %}{{ command.name }}{% endif %}</div>
|
||||||
|
|
||||||
|
{#
|
||||||
|
{ % if not is_blank_row % }
|
||||||
|
<div
|
||||||
|
class="{{ model.FLAG_COMMAND }}"
|
||||||
|
{#
|
||||||
|
{{ model.ATTR_VALUE_CURRENT }}="{ { command.id_command } }"
|
||||||
|
{{ model.ATTR_VALUE_PREVIOUS }}="{ { command.id_command } }"
|
||||||
|
#}
|
||||||
|
>{ { command.name } }</div>
|
||||||
|
{ % else % }
|
||||||
|
<select class="{{ model.FLAG_COMMAND }}"> {# {{ model.ATTR_VALUE_CURRENT }}="0" {{ model.ATTR_VALUE_PREVIOUS }}="0" #}
|
||||||
|
{ % include 'components/common/inputs/_option_blank.html' % }
|
||||||
|
{ % for command in model.filter_commands % }
|
||||||
|
<option value="{ { command.id_command } }">{ { command.name } }</option>
|
||||||
|
{ % endfor % }
|
||||||
|
</select>
|
||||||
|
{ % endif % }
|
||||||
|
#}
|
||||||
@@ -0,0 +1,21 @@
|
|||||||
|
|
||||||
|
<div class="{{ model.FLAG_COMMAND_CATEGORY }}" >{% if not is_blank_row %}{{ command_category.name }}{% endif %}</div>
|
||||||
|
|
||||||
|
{#
|
||||||
|
{ % if not is_blank_row % }
|
||||||
|
<div
|
||||||
|
class="{{ model.FLAG_COMMAND_CATEGORY }}"
|
||||||
|
{#
|
||||||
|
{{ model.ATTR_VALUE_CURRENT }}="{ { command_category.id_command_category } }"
|
||||||
|
{{ model.ATTR_VALUE_PREVIOUS }}="{ { command_category.id_command_category } }"
|
||||||
|
#}
|
||||||
|
>{ { command_category.name } }</div>
|
||||||
|
{ % else % }
|
||||||
|
<select class="{{ model.FLAG_COMMAND_CATEGORY }}"> {# {{ model.ATTR_VALUE_CURRENT }}="0" {{ model.ATTR_VALUE_PREVIOUS }}="0" #}
|
||||||
|
{ % include 'components/common/inputs/_option_blank.html' % }
|
||||||
|
{ % for command_category in model.filter_command_categorys % }
|
||||||
|
<option value="{ { command_category.id_command_category } }">{ { command_category.name } }</option>
|
||||||
|
{ % endfor % }
|
||||||
|
</select>
|
||||||
|
{ % endif % }
|
||||||
|
#}
|
||||||
21
templates/components/dog/deprecated/_preview_DDL_dog.html
Normal file
21
templates/components/dog/deprecated/_preview_DDL_dog.html
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
|
||||||
|
<div class="{{ model.FLAG_DOG }}" >{% if not is_blank_row %}{{ dog.name }}{% endif %}</div>
|
||||||
|
|
||||||
|
{#
|
||||||
|
{ % if not is_blank_row % }
|
||||||
|
<div
|
||||||
|
class="{{ model.FLAG_DOG }}"
|
||||||
|
{#
|
||||||
|
{{ model.ATTR_VALUE_CURRENT }}="{ { dog.id_dog } }"
|
||||||
|
{{ model.ATTR_VALUE_PREVIOUS }}="{ { dog.id_dog } }"
|
||||||
|
#}
|
||||||
|
>{ { dog.name } }</div>
|
||||||
|
{ % else % }
|
||||||
|
<select class="{{ model.FLAG_DOG }}"> {# {{ model.ATTR_VALUE_CURRENT }}="0" {{ model.ATTR_VALUE_PREVIOUS }}="0" #}
|
||||||
|
{ % include 'components/common/inputs/_option_blank.html' % }
|
||||||
|
{ % for dog in model.filter_dogs % }
|
||||||
|
<option value="{ { dog.id_dog } }">{ { dog.name } }</option>
|
||||||
|
{ % endfor % }
|
||||||
|
</select>
|
||||||
|
{ % endif % }
|
||||||
|
#}
|
||||||
@@ -39,6 +39,7 @@
|
|||||||
var attrIdAccessLevel = "{{ model.ATTR_ID_ACCESS_LEVEL }}";
|
var attrIdAccessLevel = "{{ model.ATTR_ID_ACCESS_LEVEL }}";
|
||||||
var attrIdCurrency = "{{ model.ATTR_ID_CURRENCY }}";
|
var attrIdCurrency = "{{ model.ATTR_ID_CURRENCY }}";
|
||||||
var attrIdCommand = "{{ model.ATTR_ID_COMMAND }}";
|
var attrIdCommand = "{{ model.ATTR_ID_COMMAND }}";
|
||||||
|
var attrIdCommandCategory = "{{ model.ATTR_ID_COMMAND_CATEGORY }}";
|
||||||
var attrIdDog = "{{ model.ATTR_ID_DOG }}";
|
var attrIdDog = "{{ model.ATTR_ID_DOG }}";
|
||||||
var attrIdDogCommandLink = "{{ model.ATTR_ID_DOG_COMMAND_LINK }}";
|
var attrIdDogCommandLink = "{{ model.ATTR_ID_DOG_COMMAND_LINK }}";
|
||||||
var attrTextCollapsed = "{{ model.ATTR_TEXT_COLLAPSED }}";
|
var attrTextCollapsed = "{{ model.ATTR_TEXT_COLLAPSED }}";
|
||||||
@@ -65,6 +66,7 @@
|
|||||||
var flagAccessLevel = "{{ model.FLAG_ACCESS_LEVEL }}";
|
var flagAccessLevel = "{{ model.FLAG_ACCESS_LEVEL }}";
|
||||||
var flagAccessLevelRequired = "{{ model.FLAG_ACCESS_LEVEL_REQUIRED }}";
|
var flagAccessLevelRequired = "{{ model.FLAG_ACCESS_LEVEL_REQUIRED }}";
|
||||||
var flagActive = "{{ model.FLAG_ACTIVE }}";
|
var flagActive = "{{ model.FLAG_ACTIVE }}";
|
||||||
|
var flagActiveOnly = "{{ model.FLAG_ACTIVE_ONLY }}";
|
||||||
var flagAdd = "{{ model.FLAG_ADD }}";
|
var flagAdd = "{{ model.FLAG_ADD }}";
|
||||||
var flagAddress = "{{ model.FLAG_ADDRESS }}";
|
var flagAddress = "{{ model.FLAG_ADDRESS }}";
|
||||||
var flagAddressLine1 = "{{ model.FLAG_ADDRESS_LINE_1 }}";
|
var flagAddressLine1 = "{{ model.FLAG_ADDRESS_LINE_1 }}";
|
||||||
@@ -74,16 +76,18 @@
|
|||||||
var flagCallback = "{{ model.FLAG_CALLBACK }}";
|
var flagCallback = "{{ model.FLAG_CALLBACK }}";
|
||||||
var flagCancel = "{{ model.FLAG_CANCEL }}";
|
var flagCancel = "{{ model.FLAG_CANCEL }}";
|
||||||
var flagCard = "{{ model.FLAG_CARD }}";
|
var flagCard = "{{ model.FLAG_CARD }}";
|
||||||
|
var flagCheckbox = "{{ model.FLAG_CHECKBOX }}";
|
||||||
var flagCity = "{{ model.FLAG_CITY }}";
|
var flagCity = "{{ model.FLAG_CITY }}";
|
||||||
var flagCloseTemporaryElement = "{{ model.FLAG_CLOSE_TEMPORARY_ELEMENT }}";
|
var flagCloseTemporaryElement = "{{ model.FLAG_CLOSE_TEMPORARY_ELEMENT }}";
|
||||||
var flagCode = "{{ model.FLAG_CODE }}";
|
var flagCode = "{{ model.FLAG_CODE }}";
|
||||||
var flagCollapsed = "{{ model.FLAG_COLLAPSED }}";
|
var flagCollapsed = "{{ model.FLAG_COLLAPSED }}";
|
||||||
var flagCollapsible = "{{ model.FLAG_COLLAPSIBLE }}";
|
var flagCollapsible = "{{ model.FLAG_COLLAPSIBLE }}";
|
||||||
var flagColumn = "{{ model.FLAG_COLUMN }}";
|
var flagColumn = "{{ model.FLAG_COLUMN }}";
|
||||||
|
var flagCommand = "{{ model.FLAG_COMMAND }}";
|
||||||
|
var flagCommandCategory = "{{ model.FLAG_COMMAND_CATEGORY }}";
|
||||||
var flagComment = "{{ model.FLAG_COMMENT }}";
|
var flagComment = "{{ model.FLAG_COMMENT }}";
|
||||||
// var flagContactUs = "{{ model.FLAG_CONTACT_US }}";
|
// var flagContactUs = "{{ model.FLAG_CONTACT_US }}";
|
||||||
var flagContainer = "{{ model.FLAG_CONTAINER }}";
|
var flagContainer = "{{ model.FLAG_CONTAINER }}";
|
||||||
var flagContainerCheckbox = "{{ model.FLAG_CONTAINER_CHECKBOX }}";
|
|
||||||
var flagContainerInput = "{{ model.FLAG_CONTAINER_INPUT }}";
|
var flagContainerInput = "{{ model.FLAG_CONTAINER_INPUT }}";
|
||||||
var flagCounty = "{{ model.FLAG_COUNTY }}";
|
var flagCounty = "{{ model.FLAG_COUNTY }}";
|
||||||
var flagCsrfToken = "{{ model.FLAG_CSRF_TOKEN }}";
|
var flagCsrfToken = "{{ model.FLAG_CSRF_TOKEN }}";
|
||||||
@@ -94,6 +98,7 @@
|
|||||||
var flagDialog = "{{ model.FLAG_DIALOG }}";
|
var flagDialog = "{{ model.FLAG_DIALOG }}";
|
||||||
var flagDirty = "{{ model.FLAG_DIRTY }}";
|
var flagDirty = "{{ model.FLAG_DIRTY }}";
|
||||||
var flagDisplayOrder = "{{ model.FLAG_DISPLAY_ORDER }}";
|
var flagDisplayOrder = "{{ model.FLAG_DISPLAY_ORDER }}";
|
||||||
|
var flagDog = "{{ model.FLAG_DOG }}";
|
||||||
var flagDragging = "dragging";
|
var flagDragging = "dragging";
|
||||||
var flagDragOver = "drag-over";
|
var flagDragOver = "drag-over";
|
||||||
var flagEdit = "{{ model.FLAG_EDIT }}";
|
var flagEdit = "{{ model.FLAG_EDIT }}";
|
||||||
@@ -107,6 +112,7 @@
|
|||||||
var flagFormFilters = "{{ model.FLAG_FORM_FILTERS }}";
|
var flagFormFilters = "{{ model.FLAG_FORM_FILTERS }}";
|
||||||
var flagImageLogo = "{{ model.FLAG_IMAGE_LOGO }}";
|
var flagImageLogo = "{{ model.FLAG_IMAGE_LOGO }}";
|
||||||
var flagInitialised = "{{ model.FLAG_INITIALISED }}";
|
var flagInitialised = "{{ model.FLAG_INITIALISED }}";
|
||||||
|
var flagIsChecked = "{{ model.FLAG_IS_CHECKED }}";
|
||||||
// var flagItems = "{{ model.FLAG_ITEMS }}";
|
// var flagItems = "{{ model.FLAG_ITEMS }}";
|
||||||
// var flagKeyPrimary = "{{ model.FLAG_KEY_PRIMARY }}";
|
// var flagKeyPrimary = "{{ model.FLAG_KEY_PRIMARY }}";
|
||||||
var flagLeftHandStub = "{{ model.FLAG_LEFT_HAND_STUB }}";
|
var flagLeftHandStub = "{{ model.FLAG_LEFT_HAND_STUB }}";
|
||||||
@@ -143,6 +149,7 @@
|
|||||||
var flagRows = "{{ model.FLAG_ROWS }}";
|
var flagRows = "{{ model.FLAG_ROWS }}";
|
||||||
var flagSave = "{{ model.FLAG_SAVE }}";
|
var flagSave = "{{ model.FLAG_SAVE }}";
|
||||||
var flagScrollable = "{{ model.FLAG_SCROLLABLE }}";
|
var flagScrollable = "{{ model.FLAG_SCROLLABLE }}";
|
||||||
|
var flagSearch = "{{ model.FLAG_SEARCH }}";
|
||||||
var flagSlider = "{{ model.FLAG_SLIDER }}";
|
var flagSlider = "{{ model.FLAG_SLIDER }}";
|
||||||
var flagStatus = "{{ model.FLAG_STATUS }}";
|
var flagStatus = "{{ model.FLAG_STATUS }}";
|
||||||
var flagSubmit = "{{ model.FLAG_SUBMIT }}";
|
var flagSubmit = "{{ model.FLAG_SUBMIT }}";
|
||||||
|
|||||||
@@ -7,6 +7,13 @@
|
|||||||
{{ model.form_filters.hidden_tag() }}
|
{{ model.form_filters.hidden_tag() }}
|
||||||
<div class="{{ model.FLAG_CONTAINER }} {{ model.FLAG_COLUMN }}">
|
<div class="{{ model.FLAG_CONTAINER }} {{ model.FLAG_COLUMN }}">
|
||||||
<div class="{{ model.FLAG_CONTAINER }} {{ model.FLAG_ROW }}">
|
<div class="{{ model.FLAG_CONTAINER }} {{ model.FLAG_ROW }}">
|
||||||
|
<div class="{{ model.FLAG_CONTAINER_INPUT }} {{ model.FLAG_COLUMN }} {{ model.FLAG_FILTER }} {{ model.FLAG_SEARCH }}">
|
||||||
|
{{ model.form_filters.search.label }}
|
||||||
|
{{ model.form_filters.search() }}
|
||||||
|
{% for error in model.form_filters.search.errors %}
|
||||||
|
<p class="error">{{ error }}</p>
|
||||||
|
{% endfor %}
|
||||||
|
</div>
|
||||||
<div class="{{ model.FLAG_CONTAINER_INPUT }} {{ model.FLAG_COLUMN }} {{ model.FLAG_FILTER }} {{ model.ATTR_ID_DOG }}">
|
<div class="{{ model.FLAG_CONTAINER_INPUT }} {{ model.FLAG_COLUMN }} {{ model.FLAG_FILTER }} {{ model.ATTR_ID_DOG }}">
|
||||||
{{ model.form_filters.id_dog.label }}
|
{{ model.form_filters.id_dog.label }}
|
||||||
{{ model.form_filters.id_dog() }}
|
{{ model.form_filters.id_dog() }}
|
||||||
@@ -14,6 +21,13 @@
|
|||||||
<p class="error">{{ error }}</p>
|
<p class="error">{{ error }}</p>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
</div>
|
</div>
|
||||||
|
<div class="{{ model.FLAG_CONTAINER_INPUT }} {{ model.FLAG_COLUMN }} {{ model.FLAG_FILTER }} {{ model.ATTR_ID_COMMAND_CATEGORY }}">
|
||||||
|
{{ model.form_filters.id_command_category.label }}
|
||||||
|
{{ model.form_filters.id_command_category() }}
|
||||||
|
{% for error in model.form_filters.id_command_category.errors %}
|
||||||
|
<p class="error">{{ error }}</p>
|
||||||
|
{% endfor %}
|
||||||
|
</div>
|
||||||
<div class="{{ model.FLAG_CONTAINER_INPUT }} {{ model.FLAG_COLUMN }} {{ model.FLAG_FILTER }} {{ model.ATTR_ID_COMMAND }}">
|
<div class="{{ model.FLAG_CONTAINER_INPUT }} {{ model.FLAG_COLUMN }} {{ model.FLAG_FILTER }} {{ model.ATTR_ID_COMMAND }}">
|
||||||
{{ model.form_filters.id_command.label }}
|
{{ model.form_filters.id_command.label }}
|
||||||
{{ model.form_filters.id_command() }}
|
{{ model.form_filters.id_command() }}
|
||||||
@@ -21,12 +35,14 @@
|
|||||||
<p class="error">{{ error }}</p>
|
<p class="error">{{ error }}</p>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
</div>
|
</div>
|
||||||
<div class="{{ model.FLAG_CONTAINER_INPUT }} {{ model.FLAG_COLUMN }} {{ model.FLAG_FILTER }} {{ model.FLAG_ACTIVE }}">
|
<div class="{{ model.FLAG_CONTAINER_INPUT }} {{ model.FLAG_COLUMN }} {{ model.FLAG_FILTER }} {{ model.FLAG_ACTIVE_ONLY }}" {{ model.ATTR_VALUE_PREVIOUS }}="{{ model.form_filters.active_only.data }}">
|
||||||
{{ model.form_filters.active_only.label }}
|
{{ model.form_filters.active_only.label }}
|
||||||
{{ model.form_filters.active_only() }}
|
{{ model.form_filters.active_only() }}
|
||||||
{% for error in model.form_filters.active_only.errors %}
|
{% for error in model.form_filters.active_only.errors %}
|
||||||
<p class="error">{{ error }}</p>
|
<p class="error">{{ error }}</p>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
|
{% set class_name = model.FLAG_FILTER + ' ' + model.FLAG_ACTIVE_ONLY + ' ' + model.FLAG_CHECKBOX %}
|
||||||
|
{% include 'components/common/buttons/_icon_checkbox.html' %}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -38,6 +54,7 @@
|
|||||||
<thead>
|
<thead>
|
||||||
<tr class="{{ model.FLAG_DOG_COMMAND_LINK }}">
|
<tr class="{{ model.FLAG_DOG_COMMAND_LINK }}">
|
||||||
<th class="{{ model.FLAG_DOG }}">Dog</th>
|
<th class="{{ model.FLAG_DOG }}">Dog</th>
|
||||||
|
<th class="{{ model.FLAG_COMMAND_CATEGORY }}">Command Category</th>
|
||||||
<th class="{{ model.FLAG_COMMAND }}">Command</th>
|
<th class="{{ model.FLAG_COMMAND }}">Command</th>
|
||||||
<th class="{{ model.FLAG_HAND_SIGNAL_DESCRIPTION }}">Hand Signal</th>
|
<th class="{{ model.FLAG_HAND_SIGNAL_DESCRIPTION }}">Hand Signal</th>
|
||||||
<th class="{{ model.FLAG_NOTES }}">Notes</th>
|
<th class="{{ model.FLAG_NOTES }}">Notes</th>
|
||||||
@@ -64,6 +81,7 @@
|
|||||||
<script src="{{ url_for('routes_dog.scripts_section_dog') }}"></script>
|
<script src="{{ url_for('routes_dog.scripts_section_dog') }}"></script>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
|
var filterCommandCategories = {{ model.convert_list_objects_to_dict_json_by_attribute_key_default(model.filter_command_categories) | tojson | safe }};
|
||||||
var filterCommands = {{ model.convert_list_objects_to_dict_json_by_attribute_key_default(model.filter_commands) | tojson | safe }};
|
var filterCommands = {{ model.convert_list_objects_to_dict_json_by_attribute_key_default(model.filter_commands) | tojson | safe }};
|
||||||
var filterDogCommandLinks = {{ model.convert_list_objects_to_dict_json_by_attribute_key_default(model.filter_dog_command_links) | tojson | safe }};
|
var filterDogCommandLinks = {{ model.convert_list_objects_to_dict_json_by_attribute_key_default(model.filter_dog_command_links) | tojson | safe }};
|
||||||
var filterDogs = {{ model.convert_list_objects_to_dict_json_by_attribute_key_default(model.filter_dogs) | tojson | safe }};
|
var filterDogs = {{ model.convert_list_objects_to_dict_json_by_attribute_key_default(model.filter_dogs) | tojson | safe }};
|
||||||
|
|||||||
4
todo.txt
4
todo.txt
@@ -1,5 +1,7 @@
|
|||||||
|
|
||||||
Command list random generator for assessment - and any other variables e.g. location, handler
|
Command list random generator for assessment - and any other variables e.g. location, handler
|
||||||
|
|
||||||
Dog Command Link
|
|
||||||
Last tested
|
Last tested
|
||||||
|
|
||||||
|
Print page option on Dog Command Links Page, Assessment-single Page for test sessions, giving the dog to another handler temporarily - give view only access
|
||||||
Reference in New Issue
Block a user