Your IP : 3.12.76.168
SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
SET time_zone = "+00:00";
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
--
-- Database: `jorani100`
--
--
-- Table structure for table `actions`
--
CREATE TABLE `actions` (
`name` varchar(45) COLLATE utf8mb4_unicode_ci NOT NULL,
`mask` bit(16) NOT NULL,
`Description` text COLLATE utf8mb4_unicode_ci NOT NULL,
PRIMARY KEY (`name`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='List of possible actions';
--
-- Dumping data for table `actions`
--
INSERT INTO `actions` VALUES
('accept_requests', b'0011000100110010', 'Accept the request of my team members'),
('admin_menu', b'0011000100110010', 'View admin menu'),
('change_password', b'0011000100110010', 'Change password'),
('create_leaves', b'0011000100110010', 'Create a new user leave request'),
('create_user', b'0011000100110010', 'Create a new user'),
('delete_user', b'0011000100110010', 'Delete an existing user'),
('edit_leaves', b'0011000100110010', 'Edit a leave request'),
('edit_settings', b'0011000100110010', 'Edit application settings'),
('edit_user', b'0011000100110010', 'Edit a user'),
('export_leaves', b'0011000100110010', 'Export the list of leave requests into an Excel file'),
('export_user', b'0011000100110010', 'Export the list of users into an Excel file'),
('hr_menu', b'0011000100110010', 'View HR menu'),
('individual_calendar', b'0011000100110010', 'View my leaves in a calendar'),
('list_leaves', b'0011000100110010', 'List my leave requests'),
('list_requests', b'0011000100110010', 'List the request of my team members'),
('list_users', b'0011000100110010', 'List users'),
('reject_requests', b'0011000100110010', 'Reject the request of my team members'),
('reset_password', b'0011000100110010', 'Modifiy the password of another user'),
('team_calendar', b'0011000100110010', 'View the leaves of my team in a calendar'),
('update_user', b'0011000100110010', 'Update a user'),
('view_leaves', b'0011000100110010', 'View the details of a leave request'),
('view_user', b'0011000100110010', 'View user''s details');
-- --------------------------------------------------------
--
-- Table structure for table `ci_sessions`
--
CREATE TABLE `ci_sessions` (
`id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL,
`ip_address` varchar(45) COLLATE utf8mb4_unicode_ci NOT NULL,
`timestamp` int(10) unsigned NOT NULL DEFAULT '0',
`data` blob NOT NULL,
KEY `ci_sessions_timestamp` (`timestamp`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='CodeIgniter sessions (you can empty this table without consequence)';
-- --------------------------------------------------------
--
-- Table structure for table `contracts`
--
CREATE TABLE `contracts` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'Unique identifier of a contract',
`name` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'Name of the contract',
`startentdate` varchar(5) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'Day and month numbers of the left boundary',
`endentdate` varchar(5) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'Day and month numbers of the right boundary',
`weekly_duration` int(11) DEFAULT NULL COMMENT 'Approximate duration of work per week (in minutes)',
`daily_duration` int(11) DEFAULT NULL COMMENT 'Approximate duration of work per day and (in minutes)',
`default_leave_type` int(11) DEFAULT NULL COMMENT 'default leave type for the contract (overwrite default type set in config file).',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='A contract groups employees having the same days off and entitlement rules' AUTO_INCREMENT=2 ;
--
-- Dumping data for table `contracts`
--
INSERT INTO `contracts` VALUES
(1, 'Global', '01/01', '12/31', 2400, 480, 1);
-- --------------------------------------------------------
--
-- Table structure for table `dayoffs`
--
CREATE TABLE `dayoffs` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`contract` int(11) NOT NULL COMMENT 'Contract id',
`date` date NOT NULL COMMENT 'Date of the day off',
`type` int(11) NOT NULL COMMENT 'Half or full day',
`title` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'Description of day off',
PRIMARY KEY (`id`),
KEY `type` (`type`),
KEY `contract` (`contract`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='List of non working days' AUTO_INCREMENT=1 ;
-- --------------------------------------------------------
--
-- Table structure for table `delegations`
--
CREATE TABLE `delegations` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'Id of delegation',
`manager_id` int(11) NOT NULL COMMENT 'Manager wanting to delegate',
`delegate_id` int(11) NOT NULL COMMENT 'Employee having the delegation',
PRIMARY KEY (`id`),
KEY `manager_id` (`manager_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='Delegation of approval' AUTO_INCREMENT=1 ;
-- --------------------------------------------------------
--
-- Table structure for table `entitleddays`
--
CREATE TABLE `entitleddays` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'Unique identifier of an entitlement',
`contract` int(11) DEFAULT NULL COMMENT 'If entitlement is credited to a contract, Id of contract',
`employee` int(11) DEFAULT NULL COMMENT 'If entitlement is credited to an employee, Id of employee',
`overtime` int(11) DEFAULT NULL COMMENT 'Optional Link to an overtime request, if the credit is due to an OT',
`startdate` date DEFAULT NULL COMMENT 'Left boundary of the credit validity',
`enddate` date DEFAULT NULL COMMENT 'Right boundary of the credit validity. Duration cannot exceed one year',
`type` int(11) NOT NULL COMMENT 'Leave type',
`days` decimal(10,2) NOT NULL COMMENT 'Number of days (can be negative so as to deduct/adjust entitlement)',
`description` text COLLATE utf8mb4_unicode_ci COMMENT 'Description of a credit / debit (entitlement / adjustment)',
PRIMARY KEY (`id`),
KEY `contract` (`contract`),
KEY `employee` (`employee`),
KEY `type` (`type`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='Add or substract entitlement on employees or contracts (can be the result of an OT)' AUTO_INCREMENT=1 ;
-- --------------------------------------------------------
--
-- Table structure for table `excluded_types`
--
CREATE TABLE `excluded_types` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'Id of exclusion',
`contract_id` int(11) NOT NULL COMMENT 'Id of contract',
`type_id` int(11) NOT NULL COMMENT 'Id of leave ype to be excluded to the contract',
PRIMARY KEY (`id`),
KEY `contract_id` (`contract_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='Exclude a leave type from a contract' AUTO_INCREMENT=1 ;
-- --------------------------------------------------------
--
-- Table structure for table `leaves`
--
CREATE TABLE `leaves` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'Unique identifier of the leave request',
`startdate` date DEFAULT NULL COMMENT 'Start date of the leave request',
`enddate` date DEFAULT NULL COMMENT 'End date of the leave request',
`status` int(11) DEFAULT NULL COMMENT 'Identifier of the status of the leave request (Requested, Accepted, etc.). See status table.',
`employee` int(11) DEFAULT NULL COMMENT 'Employee requesting the leave request',
`cause` text COLLATE utf8mb4_unicode_ci COMMENT 'Reason of the leave request',
`startdatetype` varchar(12) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT 'Morning/Afternoon',
`enddatetype` varchar(12) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT 'Morning/Afternoon',
`duration` decimal(10,3) DEFAULT NULL COMMENT 'Length of the leave request',
`type` int(11) DEFAULT NULL COMMENT 'Identifier of the type of the leave request (Paid, Sick, etc.). See type table.',
`comments` text COLLATE utf8mb4_unicode_ci COMMENT 'Comments on leave request (JSon)',
`document` blob COMMENT 'Optional supporting document',
PRIMARY KEY (`id`),
KEY `status` (`status`),
KEY `employee` (`employee`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='Leave requests' AUTO_INCREMENT=1 ;
-- --------------------------------------------------------
--
-- Table structure for table `leaves_history`
--
CREATE TABLE `leaves_history` (
`id` int(11) NOT NULL,
`startdate` date DEFAULT NULL,
`enddate` date DEFAULT NULL,
`status` int(11) DEFAULT NULL,
`employee` int(11) DEFAULT NULL,
`cause` text COLLATE utf8mb4_unicode_ci,
`startdatetype` varchar(12) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
`enddatetype` varchar(12) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
`duration` decimal(10,2) DEFAULT NULL,
`type` int(11) DEFAULT NULL,
`comments` text COLLATE utf8mb4_unicode_ci COMMENT 'Comments on leave request',
`document` blob COMMENT 'Optional supporting document',
`change_id` int(11) NOT NULL AUTO_INCREMENT,
`change_type` int(11) NOT NULL,
`changed_by` int(11) NOT NULL,
`change_date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`change_id`),
KEY `changed_by` (`changed_by`),
KEY `change_date` (`change_date`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='List of changes in leave requests table' AUTO_INCREMENT=1 ;
-- --------------------------------------------------------
--
-- Table structure for table `oauth_access_tokens`
--
CREATE TABLE `oauth_access_tokens` (
`access_token` varchar(40) NOT NULL,
`client_id` varchar(80) NOT NULL,
`user_id` varchar(255) DEFAULT NULL,
`expires` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
`scope` varchar(2000) DEFAULT NULL,
PRIMARY KEY (`access_token`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- --------------------------------------------------------
--
-- Table structure for table `oauth_applications`
--
CREATE TABLE `oauth_applications` (
`user` int(11) NOT NULL COMMENT 'Identifier of Jorani user',
`client_id` varchar(80) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'Identifier of an application using OAuth2',
KEY `user` (`user`),
KEY `client_id` (`client_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='List of allowed OAuth2 applications';
-- --------------------------------------------------------
--
-- Table structure for table `oauth_authorization_codes`
--
CREATE TABLE `oauth_authorization_codes` (
`authorization_code` varchar(40) NOT NULL,
`client_id` varchar(80) NOT NULL,
`user_id` varchar(255) DEFAULT NULL,
`redirect_uri` varchar(2000) DEFAULT NULL,
`expires` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
`scope` varchar(2000) DEFAULT NULL,
PRIMARY KEY (`authorization_code`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- --------------------------------------------------------
--
-- Table structure for table `oauth_clients`
--
CREATE TABLE `oauth_clients` (
`client_id` varchar(80) NOT NULL,
`client_secret` varchar(80) DEFAULT NULL,
`redirect_uri` varchar(2000) NOT NULL,
`grant_types` varchar(80) DEFAULT NULL,
`scope` varchar(100) DEFAULT NULL,
`user_id` varchar(80) DEFAULT NULL,
PRIMARY KEY (`client_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- --------------------------------------------------------
--
-- Table structure for table `oauth_jwt`
--
CREATE TABLE `oauth_jwt` (
`client_id` varchar(80) NOT NULL,
`subject` varchar(80) DEFAULT NULL,
`public_key` varchar(2000) DEFAULT NULL,
PRIMARY KEY (`client_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- --------------------------------------------------------
--
-- Table structure for table `oauth_refresh_tokens`
--
CREATE TABLE `oauth_refresh_tokens` (
`refresh_token` varchar(40) NOT NULL,
`client_id` varchar(80) NOT NULL,
`user_id` varchar(255) DEFAULT NULL,
`expires` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
`scope` varchar(2000) DEFAULT NULL,
PRIMARY KEY (`refresh_token`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- --------------------------------------------------------
--
-- Table structure for table `oauth_scopes`
--
CREATE TABLE `oauth_scopes` (
`scope` text,
`is_default` tinyint(1) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- --------------------------------------------------------
--
-- Table structure for table `oauth_users`
--
CREATE TABLE `oauth_users` (
`username` varchar(255) NOT NULL,
`password` varchar(2000) DEFAULT NULL,
`first_name` varchar(255) DEFAULT NULL,
`last_name` varchar(255) DEFAULT NULL,
PRIMARY KEY (`username`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- --------------------------------------------------------
--
-- Table structure for table `organization`
--
CREATE TABLE `organization` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'Unique identifier of the department',
`name` varchar(512) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT 'Name of the department',
`parent_id` int(11) DEFAULT NULL COMMENT 'Parent department (or -1 if root)',
`supervisor` int(11) DEFAULT NULL COMMENT 'This user will receive a copy of accepted and rejected leave requests',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='Tree of the organization' AUTO_INCREMENT=1 ;
--
-- Dumping data for table `organization`
--
INSERT INTO `organization` VALUES
(0, 'LMS root', -1, NULL);
-- --------------------------------------------------------
--
-- Table structure for table `org_lists`
--
CREATE TABLE `org_lists` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'Unique identifier of a list',
`user` int(11) NOT NULL COMMENT ' Identifier of Jorani user owning the list',
`name` varchar(512) COLLATE utf8mb4_unicode_ci NOT NULL,
PRIMARY KEY (`id`),
KEY `org_lists_user` (`user`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='Custom lists of employees are an alternative to organization' AUTO_INCREMENT=1 ;
-- --------------------------------------------------------
--
-- Table structure for table `org_lists_employees`
--
CREATE TABLE `org_lists_employees` (
`list` int(11) NOT NULL COMMENT 'Id of the list',
`user` int(11) NOT NULL COMMENT 'id of an employee',
`orderlist` int(11) NOT NULL COMMENT 'order in the list',
KEY `org_list_id` (`list`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='Children table of org_lists (custom list of employees)';
-- --------------------------------------------------------
--
-- Table structure for table `overtime`
--
CREATE TABLE `overtime` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'Unique identifier of the overtime request',
`employee` int(11) NOT NULL COMMENT 'Employee requesting the OT',
`date` date NOT NULL COMMENT 'Date when the OT was done',
`duration` decimal(10,3) NOT NULL COMMENT 'Duration of the OT',
`cause` text COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'Reason why the OT was done',
`status` int(11) NOT NULL COMMENT 'Status of OT (Planned, Requested, Accepted, Rejected)',
PRIMARY KEY (`id`),
KEY `status` (`status`),
KEY `employee` (`employee`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='Overtime worked (extra time)' AUTO_INCREMENT=1 ;
-- --------------------------------------------------------
--
-- Table structure for table `parameters`
--
CREATE TABLE `parameters` (
`name` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL,
`scope` int(11) NOT NULL COMMENT 'Either global(0) or user(1) scope',
`value` text COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'PHP/serialize value',
`entity_id` text COLLATE utf8mb4_unicode_ci COMMENT 'Entity ID (eg. user id) to which the parameter is applied',
KEY `param_name` (`name`,`scope`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='Application parameters';
-- --------------------------------------------------------
--
-- Table structure for table `positions`
--
CREATE TABLE `positions` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'Unique identifier of the position',
`name` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'Name of the position',
`description` text COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'Description of the position',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='Position (job position) in the organization' AUTO_INCREMENT=2 ;
--
-- Dumping data for table `positions`
--
INSERT INTO `positions` VALUES
(1, 'Employee', 'Employee.');
-- --------------------------------------------------------
--
-- Table structure for table `roles`
--
CREATE TABLE `roles` (
`id` int(11) NOT NULL,
`name` varchar(45) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='Roles in the application (system table)';
--
-- Dumping data for table `roles`
--
INSERT INTO `roles` VALUES
(1, 'admin'),
(2, 'user'),
(8, 'HR admin');
-- --------------------------------------------------------
--
-- Table structure for table `status`
--
CREATE TABLE `status` (
`id` int(11) NOT NULL,
`name` varchar(45) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='Status of the Leave Request (system table)';
--
-- Dumping data for table `status`
--
INSERT INTO `status` VALUES
(1, 'Planned'),
(2, 'Requested'),
(3, 'Accepted'),
(4, 'Rejected'),
(5, 'Cancellation'),
(6, 'Canceled');
-- --------------------------------------------------------
--
-- Table structure for table `types`
--
CREATE TABLE `types` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'Unique identifier of the type',
`name` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'Name of the leave type',
`acronym` varchar(10) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT 'Acronym of the leave type',
`deduct_days_off` tinyint(1) NOT NULL DEFAULT '0' COMMENT 'Deduct days off when computing the balance of the leave type',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='List of leave types (LoV table)' AUTO_INCREMENT=6 ;
--
-- Dumping data for table `types`
--
INSERT INTO `types` VALUES
(0, 'compensate', NULL, 0),
(1, 'paid leave', NULL, 0),
(2, 'maternity leave', NULL, 0),
(3, 'paternity leave', NULL, 0),
(4, 'special leave', NULL, 0),
(5, 'Sick leave', NULL, 0);
-- --------------------------------------------------------
--
-- Table structure for table `users`
--
CREATE TABLE `users` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'Unique identifier of the user',
`firstname` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT 'First name',
`lastname` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT 'Last name',
`login` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT 'Identfier used to login (can be an email address)',
`email` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT 'Email address',
`password` varchar(512) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT 'Password encrypted with BCRYPT or a similar method',
`role` int(11) DEFAULT NULL COMMENT 'Role of the employee (binary mask). See table roles.',
`manager` int(11) DEFAULT NULL COMMENT 'Employee validating the requests of the employee',
`country` int(11) DEFAULT NULL COMMENT 'Country code (for later use)',
`organization` int(11) DEFAULT '0' COMMENT 'Entity where the employee has a position',
`contract` int(11) DEFAULT NULL COMMENT 'Contract of the employee',
`position` int(11) DEFAULT NULL COMMENT 'Position of the employee',
`datehired` date DEFAULT NULL COMMENT 'Date hired / Started',
`identifier` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'Internal/company identifier',
`language` varchar(5) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'en' COMMENT 'Language ISO code',
`ldap_path` varchar(1024) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT 'LDAP Path for complex authentication schemes',
`active` tinyint(1) DEFAULT '1' COMMENT 'Is user active',
`timezone` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT 'Timezone of user',
`calendar` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT 'External Calendar address',
`random_hash` varchar(24) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT 'Obfuscate public URLs',
`user_properties` text COLLATE utf8mb4_unicode_ci COMMENT 'Entity ID (eg. user id) to which the parameter is applied',
`picture` blob COMMENT 'Profile picture of user for tabular calendar',
PRIMARY KEY (`id`),
KEY `manager` (`manager`),
KEY `organization` (`organization`),
KEY `contract` (`contract`),
KEY `position` (`position`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='List of employees / users having access to Jorani' AUTO_INCREMENT=2 ;
--
-- Dumping data for table `users`
--
INSERT INTO `users` VALUES
(1, '[[admin_fname]]', '[[admin_lname]]', '[[admin_username]]', '[[admin_email]]', '[[admin_pass]]', 8, 1, NULL, 0, 1, 1, '2013-10-28', 'PNC0025', 'en', NULL, 1, NULL, NULL, '[[random_hash]]', NULL, NULL);
DELIMITER $$
--
-- Functions
--
CREATE FUNCTION `GetAncestry`(GivenID INT) RETURNS varchar(1024) CHARSET utf8
READS SQL DATA
SQL SECURITY INVOKER
BEGIN
DECLARE rv VARCHAR(1024);
DECLARE cm CHAR(1);
DECLARE ch INT;
SET rv = '';
SET cm = '';
SET ch = GivenID;
WHILE ch > 0 DO
SELECT IFNULL(parent_id,-1) INTO ch FROM
(SELECT parent_id FROM organization WHERE id = ch) A;
IF ch > 0 THEN
SET rv = CONCAT(rv,cm,ch);
SET cm = ',';
END IF;
END WHILE;
RETURN rv;
END$$
CREATE FUNCTION `GetFamilyTree`(`GivenID` INT) RETURNS varchar(1024) CHARSET utf8
READS SQL DATA
SQL SECURITY INVOKER
BEGIN
DECLARE rv,q,queue,queue_children VARCHAR(1024);
DECLARE queue_length,front_id,pos INT;
SET rv = '';
SET queue = GivenID;
SET queue_length = 1;
WHILE queue_length > 0 DO
SET front_id = FORMAT(queue,0);
IF queue_length = 1 THEN
SET queue = '';
ELSE
SET pos = LOCATE(',',queue) + 1;
SET q = SUBSTR(queue,pos);
SET queue = q;
END IF;
SET queue_length = queue_length - 1;
SELECT IFNULL(qc,'') INTO queue_children
FROM (SELECT GROUP_CONCAT(id) qc
FROM organization WHERE parent_id = front_id) A;
IF LENGTH(queue_children) = 0 THEN
IF LENGTH(queue) = 0 THEN
SET queue_length = 0;
END IF;
ELSE
IF LENGTH(rv) = 0 THEN
SET rv = queue_children;
ELSE
SET rv = CONCAT(rv,',',queue_children);
END IF;
IF LENGTH(queue) = 0 THEN
SET queue = queue_children;
ELSE
SET queue = CONCAT(queue,',',queue_children);
END IF;
SET queue_length = LENGTH(queue) - LENGTH(REPLACE(queue,',','')) + 1;
END IF;
END WHILE;
RETURN rv;
END$$
DELIMITER ;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;