Initial checkin v13.0

This commit is contained in:
Thilina Hasantha
2015-10-10 20:18:50 +05:30
parent 5fdd19b2c5
commit eb3439b29d
1396 changed files with 318492 additions and 0 deletions

4
.gitignore vendored Normal file
View File

@@ -0,0 +1,4 @@
/.settings
/.buildpath
/.project
/.idea

157
CHANGELOG.txt Normal file
View File

@@ -0,0 +1,157 @@
Release note v9.1
-----------------
### Fixes
*Add missing S3FileSystem class
Release note v9.0
-----------------
### Features
*New user interface
*Decimal leave counts supported
Release note v8.4
-----------------
### Fixes
* Fix leave carry forward rounding issues
* Fix issue: select2 default value not getting set for select2
* Fix issue: email not sent when admin changing leave status
Release note v8.3
-----------------
### Fixes
* Fix user table issue on windows, this will resolve errors such as: (Note that this fix has no effect on unix based installations)
* Admin not able to view user uploaded documents
* Admin not able to upload documants for users
* Admin can not view employee attendance records
* Employee projects can not be added
Release note v8.2
-----------------
### Features
*Instance verification added
Release note v8.1
-----------------
### Fixes
*Fixed bug that caused a fatal error in php v5.4
*aws2.7.11 phar file replaced by a aws2.7.11 extracted files
*old aws sdk removed
Release note v8.0
-----------------
### Features
*Admin dashbord module
*If the employee joined in current leave period, his leave entitlement is calculated proportional to joined date
*Improvements to reporting module
*Adding new employee time tracking report
*Join date for employees made mandatory
*Sending welcome email when a user is added
*Let users directly reply to admin user from any email sent out from icehrm
*All the users who are not admins must have an employee object attached
*Upgrade aws sdk to v2.7.11
*Allow employees to change password
*Use only the email address defined under user for sending mails
*Making work_email and private_email fields optional
### Fixes
*Upload dialog close button issue fixed
Release note v7.2
-----------------
*Fixes
*Some critical vulnerabilities are fixed as recommend by http://zeroscience.mk/en/
Release note v7.1
-----------------
*Features
*Improved company structure graph
*Leave notes implementation Supervisor can add a note when approving or rejecting leaves
*Filtering support
*Select boxes with long lists are now searchable
*Add/Edit/Delete company structure permissions added for managers
*Add ability to disable employee information editing
*Fixes
*Make loans editable only by admin
*Fix: permissions not getting applied to employee documents
*Fix error adding employee documents when no user assigned to the admin
*Code Quality
*Moving all module related code and data into module folders
Release note v6.0
-----------------
* Features
* Notifications for leaves and timesheets
* Leave module accrue and leave carry forward
* Employee leave entitlement sub module
* Ability to put system on debug mode
* Allow admins to see documents of all the employees at one place
* Backup data when deleting an employee
* Employee attendance report added
* Changes to time entry form in timesheet module to make time entry process faster
* Admin can make all projects available to employees or just the set of prjects assigned to them using Setting "Projects: Make All Projects Available to Employees"
* Employee document, date added field can not be changed by the employee anymore
* About dialog added for admins
* Fixes
* Fix default employee delete issue (when the default employee is deleted the admin user attached to it also get deleted)
* Fix user duplicate email issue
* Fix manager can not logout from switched employee
* Remove admin guide from non admin users
Release note v5.3
-----------------
* Fixes
* Fix missing employee name in employee details report
Release note v5.2
-----------------
* Fixes
* Remove unwanted error logs
* Fix attendance module employee permission issue
* Resolve warnings
* Remove add new button from subordinates module
* Adding administrators' guide
Release note v5.1
-----------------
* Fixes
* Fixing for non updating null fields
* https://bitbucket.org/thilina/icehrm-opensource/commits/df57308b53484a2e43ef5c72967ed1cd0dc756cc
Release note v5.0
-----------------
* Features
* New user permission implementation
* Adding new user level - Manager
* Fixes
* Fixing remote table loading issue
Release note v4.2
-----------------
* Fixes
* https://bitbucket.org/thilina/icehrm-opensource/issue/23/subordinate-leaves-pagination-not-working
* https://bitbucket.org/thilina/icehrm-opensource/issue/20/error-occured-while-time-punch
Release note v4.1
-----------------
* Features
* Better email format for notifications
* Convert upload dialog to a bootstrp model
* Fixes
* Fix error sending emails with amazon SES
* Fix errors related to XAMPP and WAMPP servers
* Fix php warnings and notifications
* Fix company structure graph issues
* Allow icehrm client to work without an internet connection
* Fix installer incorrect base url issue
* Fix empty user creation issue

275
build.xml Normal file
View File

@@ -0,0 +1,275 @@
<?xml version="1.0" encoding="UTF-8"?>
<project name="icehrm-opensource" default="build">
<!-- By default, we assume all tools to be on the $PATH -->
<property name="toolsdir" value=""/>
<property name="destination" value="${basedir}/build/app"/>
<property name="origin" value="${basedir}/src"/>
<property environment="env"/>
<property name="env.appname" value="icehrm"/>
<property name="env.Version" value="dev"/>
<property name="installpath" value="/var/www/apps.gamonoid.com/icehrm-open-core"/>
<target name="build"
depends="prepare,lint,phpunit,copyapp,release,install"
description=""/>
<target name="buildlocal"
depends="prepare,copyapp"
description=""/>
<target name="clean"
unless="clean.done"
description="Cleanup build artifacts">
<delete dir="${basedir}/build/api"/>
<delete dir="${basedir}/build/coverage"/>
<delete dir="${basedir}/build/logs"/>
<delete dir="${basedir}/build/pdepend"/>
<delete dir="${basedir}/build/phpdox"/>
<delete dir="${basedir}/build/test"/>
<delete dir="${basedir}/build/app"/>
<delete dir="${basedir}/build/release"/>
<property name="clean.done" value="true"/>
</target>
<target name="prepare"
unless="prepare.done"
depends="clean"
description="Prepare for build">
<mkdir dir="${basedir}/build/api"/>
<mkdir dir="${basedir}/build/coverage"/>
<mkdir dir="${basedir}/build/logs"/>
<mkdir dir="${basedir}/build/pdepend"/>
<mkdir dir="${basedir}/build/phpdox"/>
<mkdir dir="${basedir}/build/test"/>
<mkdir dir="${basedir}/build/app"/>
<mkdir dir="${basedir}/build/release/data"/>
<mkdir dir="${basedir}/build/release/data/${env.appname}_${env.Version}"/>
<mkdir dir="${basedir}/src/lib"/>
<copy todir="${basedir}/src/lib" overwrite="true">
<fileset dir="${basedir}/lib">
<include name="**/*"/>
</fileset>
</copy>
<copy todir="${basedir}/src" overwrite="true">
<fileset dir="${basedir}/core-ext">
<include name="**/*"/>
</fileset>
</copy>
<copy todir="${basedir}/src">
<fileset dir="${basedir}/ext">
<include name="**/*"/>
</fileset>
</copy>
<copy todir="${basedir}/src">
<fileset dir="${basedir}/tp">
<include name="**/*"/>
</fileset>
</copy>
<property name="prepare.done" value="true"/>
</target>
<target name="lint" description="Perform syntax check of sourcecode files">
<apply executable="php" failonerror="true">
<arg value="-l" />
<fileset dir="${basedir}/src">
<include name="**/*.php" />
<modified />
</fileset>
<fileset dir="${basedir}/test">
<include name="**/*.php" />
<modified />
</fileset>
</apply>
</target>
<target name="phploc"
description="Measure project size using PHPLOC and print human readable output. Intended for usage on the command line.">
<exec executable="${toolsdir}phploc">
<arg value="--count-tests" />
<arg path="${basedir}/src" />
<arg path="${basedir}/tests" />
</exec>
</target>
<target name="phploc-ci"
depends="prepare"
description="Measure project size using PHPLOC and log result in CSV and XML format. Intended for usage within a continuous integration environment.">
<exec executable="${toolsdir}phploc">
<arg value="--count-tests" />
<arg value="--log-csv" />
<arg path="${basedir}/build/logs/phploc.csv" />
<arg value="--log-xml" />
<arg path="${basedir}/build/logs/phploc.xml" />
<arg path="${basedir}/src" />
<arg path="${basedir}/tests" />
</exec>
</target>
<target name="pdepend"
depends="prepare"
description="Calculate software metrics using PHP_Depend and log result in XML format. Intended for usage within a continuous integration environment.">
<exec executable="${toolsdir}pdepend">
<arg value="--jdepend-xml=${basedir}/build/logs/jdepend.xml" />
<arg value="--jdepend-chart=${basedir}/build/pdepend/dependencies.svg" />
<arg value="--overview-pyramid=${basedir}/build/pdepend/overview-pyramid.svg" />
<arg path="${basedir}/src" />
</exec>
</target>
<target name="phpmd"
description="Perform project mess detection using PHPMD and print human readable output. Intended for usage on the command line before committing.">
<exec executable="${toolsdir}phpmd">
<arg path="${basedir}/src" />
<arg value="text" />
<arg path="${basedir}/build/phpmd.xml" />
</exec>
</target>
<target name="phpmd-ci"
depends="prepare"
description="Perform project mess detection using PHPMD and log result in XML format. Intended for usage within a continuous integration environment.">
<exec executable="${toolsdir}phpmd">
<arg path="${basedir}/src" />
<arg value="xml" />
<arg path="${basedir}/build/phpmd.xml" />
<arg value="--reportfile" />
<arg path="${basedir}/build/logs/pmd.xml" />
</exec>
</target>
<target name="phpcs"
description="Find coding standard violations using PHP_CodeSniffer and print human readable output. Intended for usage on the command line before committing.">
<exec executable="${toolsdir}phpcs">
<arg value="--standard=PSR2" />
<arg value="--extensions=php" />
<arg value="--ignore=autoload.php" />
<arg path="${basedir}/src" />
<arg path="${basedir}/tests" />
</exec>
</target>
<target name="phpcs-ci"
depends="prepare"
description="Find coding standard violations using PHP_CodeSniffer and log result in XML format. Intended for usage within a continuous integration environment.">
<exec executable="${toolsdir}phpcs" output="/dev/null">
<arg value="--report=checkstyle" />
<arg value="--report-file=${basedir}/build/logs/checkstyle.xml" />
<arg value="--standard=PSR2" />
<arg value="--extensions=php" />
<arg value="--ignore=autoload.php" />
<arg path="${basedir}/src" />
</exec>
</target>
<target name="phpcpd"
description="Find duplicate code using PHPCPD and print human readable output. Intended for usage on the command line before committing.">
<exec executable="${toolsdir}phpcpd">
<arg path="${basedir}/src" />
</exec>
</target>
<target name="phpcpd-ci"
depends="prepare"
description="Find duplicate code using PHPCPD and log result in XML format. Intended for usage within a continuous integration environment.">
<exec executable="${toolsdir}phpcpd">
<arg value="--log-pmd" />
<arg path="${basedir}/build/logs/pmd-cpd.xml" />
<arg path="${basedir}/src" />
</exec>
</target>
<target name="phpunit"
depends="prepare"
description="Run unit tests with PHPUnit">
<exec executable="${toolsdir}phpunit" failonerror="true">
<arg value="--configuration"/>
<arg path="${basedir}/phpunit.xml"/>
</exec>
</target>
<target name="phpdox"
depends=""
description="Generate project documentation using phpDox">
<exec executable="${toolsdir}phpdox"/>
</target>
<target name="copyapp"
depends=""
description="Copy generated files to QA app">
<delete includeemptydirs="true">
<fileset dir="${destination}">
<include name="**/*"/>
</fileset>
</delete>
<copy todir="${destination}">
<fileset dir="${origin}">
<include name="**/*"/>
</fileset>
</copy>
</target>
<target name="install"
depends="copyapp"
description="">
<delete includeemptydirs="true" failonerror="false">
<fileset dir="${installpath}">
<include name="**/*"/>
</fileset>
</delete>
<mkdir dir="${installpath}"/>
<copy todir="${installpath}">
<fileset dir="${origin}">
<include name="**/*"/>
</fileset>
</copy>
<delete includeemptydirs="true" failonerror="false">
<fileset dir="${installpath}/app">
<include name="**/*"/>
</fileset>
</delete>
</target>
<target name="release"
depends="copyapp"
description="Create a release">
<copy todir="${basedir}/build/release/data/${env.appname}_${env.Version}">
<fileset dir="${destination}">
<include name="**/*"/>
<exclude name="test/**"/>
</fileset>
</copy>
<zip destfile="${basedir}/build/release/${env.appname}_${env.Version}.zip"
basedir="${basedir}/build/release/data"
/>
<tar destfile="${basedir}/build/release/${env.appname}_${env.Version}.tar"
basedir="${basedir}/build/release/data"
/>
<gzip destfile="${basedir}/build/release/${env.appname}_${env.Version}.tar.gz" src="${basedir}/build/release/${env.appname}_${env.Version}.tar"/>
</target>
</project>

View File

@@ -0,0 +1,18 @@
<?php
ini_set('error_log', '_LOG_');
define('CLIENT_NAME', '_CLIENT_');
define('APP_BASE_PATH', '_APP_BASE_PATH_');
define('CLIENT_BASE_PATH', '_CLIENT_BASE_PATH_');
define('BASE_URL','_BASE_URL_');
define('CLIENT_BASE_URL','_CLIENTBASE_URL_');
define('APP_DB', '_APP_DB_');
define('APP_USERNAME', '_APP_USERNAME_');
define('APP_PASSWORD', '_APP_PASSWORD_');
define('APP_HOST', '_APP_HOST_');
define('APP_CON_STR', 'mysql://'.APP_USERNAME.':'.APP_PASSWORD.'@'.APP_HOST.'/'.APP_DB);
//file upload
define('FILE_TYPES', 'jpg,png,jpeg');
define('MAX_FILE_SIZE_KB', 10 * 1024);

View File

@@ -0,0 +1 @@
icehrm

View File

@@ -0,0 +1,8 @@
<?php
error_reporting(E_ERROR);
ini_set("error_log", "/tmp/icehrm_install.log");
define('CURRENT_PATH',dirname(__FILE__));
define('CLIENT_APP_PATH',realpath(dirname(__FILE__)."/..")."/");
define('APP_PATH',realpath(dirname(__FILE__)."/../..")."/");
define('APP_NAME',"ICE Hrm");
define('APP_ID',"icehrm");

View File

@@ -0,0 +1,130 @@
<?php
class NotificationManager{
var $baseService;
public function setBaseService($baseService){
$this->baseService = $baseService;
}
public function addNotification($toEmployee, $message, $action, $type, $toUserId = null, $fromSystem = false){
$userEmp = new User();
if(!empty($toEmployee)){
$userEmp->load("employee = ?",array($toEmployee));
if(!empty($userEmp->employee) && $userEmp->employee == $toEmployee){
$toUser = $userEmp->id;
}else{
return;
}
}else if(!empty($toUserId)){
$toUser = $toUserId;
}
$noti = new Notification();
if($fromSystem){
$noti->fromUser = 0;
$noti->fromEmployee = 0;
$noti->image = BASE_URL."images/icehrm.png";
}else{
$user = $this->baseService->getCurrentUser();
$noti->fromUser = $user->id;
$noti->fromEmployee = $user->employee;
}
$noti->toUser = $toUser;
$noti->message = $message;
if(!empty($noti->fromEmployee) && $noti->fromEmployee != 0){
$employee = $this->baseService->getElement('Employee',$noti->fromEmployee,null,true);
if(!empty($employee)){
$employee = FileService::getInstance()->updateProfileImage($employee);
$noti->image = $employee->image;
}
}
if(empty($noti->image)){
if($employee->gender == 'Male'){
$noti->image = BASE_URL."images/user_male.png";
}else{
$noti->image = BASE_URL."images/user_female.png";
}
}
$noti->action = $action;
$noti->type = $type;
$noti->time = date('Y-m-d H:i:s');
$noti->status = 'Unread';
$ok = $noti->Save();
if(!$ok){
error_log("Error adding notification: ".$noti->ErrorMsg());
}
}
public function clearNotifications($userId){
$notification = new Notification();
$listUnread = $notification->Find("toUser = ? and status = ?",array($userId,'Unread'));
foreach($listUnread as $not){
$not->status = "Read";
$not->Save();
}
}
public function getNotificationByTypeAndDate($type, $date){
$noti = new Notification();
$noti->Load("date(time) = ? and type = ?",array($date,$type));
if(!empty($noti->id) && $noti->type = $type){
return $noti;
}
return null;
}
public function getLatestNotificationsAndCounts($userId){
$notification = new Notification();
$listUnread = $notification->Find("toUser = ? and status = ?",array($userId,'Unread'));
$unreadCount = count($listUnread);
$limit = ($unreadCount < 10)?10:$unreadCount;
$list = $notification->Find("toUser = ? order by time desc limit ?",array($userId,$limit));
$newList = array();
$fs = FileService::getInstance();
foreach($list as $noti){
if($noti->fromEmployee > 0){
$employee = $this->baseService->getElement('Employee',$noti->fromEmployee,null,true);
if(!empty($employee)){
$employee = $fs->updateProfileImage($employee);
$noti->image = $employee->image;
if(empty($noti->image)){
if($employee->gender == 'Male'){
$noti->image = BASE_URL."images/user_male.png";
}else{
$noti->image = BASE_URL."images/user_female.png";
}
}
$newList[] = $noti;
}
}else{
$noti->image = BASE_URL."images/icehrm.png";
$newList[] = $noti;
}
}
return array($unreadCount, $list);
}
}

21
core-ext/config.base.php Normal file
View File

@@ -0,0 +1,21 @@
<?php
if(!defined('SIGN_IN_ELEMENT_MAPPING_FIELD_NAME')){define('SIGN_IN_ELEMENT_MAPPING_FIELD_NAME','employee');}
if(!defined('APP_NAME')){define('APP_NAME','ICE Hrm');}
if(!defined('FB_URL')){define('FB_URL', 'https://www.facebook.com/icehrm');};
if(!defined('TWITTER_URL')){define('TWITTER_URL', 'https://twitter.com/icehrmapp');};
define('HOME_LINK_ADMIN', CLIENT_BASE_URL."?g=admin&n=dashboard&m=admin_Admin");
define('HOME_LINK_OTHERS', CLIENT_BASE_URL."?g=modules&n=dashboard&m=module_Personal_Information");
//Version
define('VERSION', '12.7.OS');
define('CACHE_VALUE', '12.7');
define('VERSION_DATE', '13/09/2015');
if(!defined('CONTACT_EMAIL')){define('CONTACT_EMAIL','icehrm@gamonoid.com');}
if(!defined('KEY_PREFIX')){define('KEY_PREFIX','IceHrm');}
if(!defined('APP_SEC')){define('APP_SEC','dbcs234d2saaqw');}
define('UI_SHOW_SWITCH_PROFILE', true);
define('CRON_LOG', '/var/log/nginx/icehrmcron.log');

519
core-ext/css/style.css Normal file
View File

@@ -0,0 +1,519 @@
.redFont{
color: red;
}
.box_ws{
background: white;
border-left: 1px solid #DDD;
border-right: 1px solid #DDD;
border-bottom: 1px solid #DDD;
color: #555;
}
.cal_box_ws{
background: white;
border: 1px solid #DDD;
color: #555;
height: 100px;
}
.cal_box_ws .wd_date_full{
font-weight:bold;
font-size:10px;
float: right;
margin-right: 5px;
}
.cal_box_ws .wd_date{
font-size:10px;
float: right;
margin-right: 5px;
}
.nav-pills li a:hover{
background: #1D64AD;
color:white;
};
.navbar-inverse .brand, .navbar-inverse .nav > li > a {
font-weight: bold;
font-size: 12px;
}
.categoryWrap p{
font-size:16px;
font-weight:bold;
padding: 3px;
}
.categoryWrap p:hover{
font-size:16px;
font-weight:bold;
color:white;
background: gray;
padding: 3px;
cursor:pointer;
border-radius: 4px;
}
.resultLogo{
text-align: center;
}
.pbar{
font-weight:bold;
font-size:11px;
}
.pbar .progress{
height: 10px;
}
.bs-docs-sidenav {
width: 228px;
margin: 30px 0 0;
padding: 0;
background-color: #fff;
-webkit-border-radius: 6px;
-moz-border-radius: 6px;
border-radius: 6px;
-webkit-box-shadow: 0 1px 4px rgba(0,0,0,.065);
-moz-box-shadow: 0 1px 4px rgba(0,0,0,.065);
box-shadow: 0 1px 4px rgba(0,0,0,.065);
}
.bs-docs-sidenav > li > a {
display: block;
*width: 190px;
margin: 0 0 -1px;
padding: 8px 14px;
border: 1px solid #e5e5e5;
}
.bs-docs-sidenav > li:first-child > a {
-webkit-border-radius: 6px 6px 0 0;
-moz-border-radius: 6px 6px 0 0;
border-radius: 6px 6px 0 0;
}
.bs-docs-sidenav > li:last-child > a {
-webkit-border-radius: 0 0 6px 6px;
-moz-border-radius: 0 0 6px 6px;
border-radius: 0 0 6px 6px;
}
.bs-docs-sidenav > .active > a {
position: relative;
z-index: 2;
padding: 9px 15px;
border: 0;
text-shadow: 0 1px 0 rgba(0,0,0,.15);
-webkit-box-shadow: inset 1px 0 0 rgba(0,0,0,.1), inset -1px 0 0 rgba(0,0,0,.1);
-moz-box-shadow: inset 1px 0 0 rgba(0,0,0,.1), inset -1px 0 0 rgba(0,0,0,.1);
box-shadow: inset 1px 0 0 rgba(0,0,0,.1), inset -1px 0 0 rgba(0,0,0,.1);
}
/* Chevrons */
.bs-docs-sidenav .icon-chevron-right {
float: right;
margin-top: 2px;
margin-right: -6px;
opacity: .25;
}
.bs-docs-sidenav > li > a:hover {
background-color: #f5f5f5;
}
.bs-docs-sidenav a:hover .icon-chevron-right {
opacity: .5;
}
.bs-docs-sidenav .active .icon-chevron-right,
.bs-docs-sidenav .active a:hover .icon-chevron-right {
background-image: url(../img/glyphicons-halflings-white.png);
opacity: 1;
}
.bs-docs-sidenav.affix {
top: 40px;
}
.bs-docs-sidenav.affix-bottom {
position: absolute;
top: auto;
bottom: 270px;
}
/* Responsive
-------------------------------------------------- */
/* Desktop large
------------------------- */
@media (min-width: 1200px) {
.bs-docs-container {
max-width: 970px;
}
.bs-docs-sidenav {
width: 258px;
}
}
.reviewPoints{
margin-top:10px;
}
.reviewPoints .star{
margin-left: 10px;
}
.reviewBlock {
position: relative;
margin: 0px 0;
padding: 39px 19px 14px;
background-color: white;
border: 1px solid #DDD;
/*
-webkit-border-radius: 4px;
-moz-border-radius: 4px;
border-radius: 4px;
*/
font-size:12px;
}
/*.reviewBlock::after {
content: attr(data-content);
position: absolute;
top: -1px;
left: -1px;
padding: 3px 7px;
font-size: 12px;
font-weight: bold;
background-color: whiteSmoke;
border: 1px solid #DDD;
color: #9DA0A4;
-webkit-border-radius: 4px 0 4px 0;
-moz-border-radius: 4px 0 4px 0;
border-radius: 4px 0 4px 0;
}*/
.box_ws{
background: white;
border-left: 1px solid #DDD;
border-right: 1px solid #DDD;
border-bottom: 1px solid #DDD;
color: #555;
}
.cal_box_ws{
background: white;
border: 1px solid #DDD;
color: #555;
height: 100px;
}
.cal_box_ws .wd_date_full{
font-weight:bold;
font-size:10px;
float: right;
margin-right: 5px;
}
.cal_box_ws .wd_date{
font-size:10px;
float: right;
margin-right: 5px;
}
.nav-pills li a:hover{
background: #1D64AD;
color:white;
};
.nav-tabs > li > a {
color:white;
}
.nav-tabs > li > a:hover{
color:#555;
}
.topheader {
background: -moz-linear-gradient(#829AA8, #405A6A);
background: -webkit-linear-gradient(#829AA8, #405A6A);
background: linear-gradient(#829AA8, #405A6A);
border: 1px solid #677C89;
border-bottom-color: #6B808D;
box-shadow: 0 1px 0 rgba(255, 255, 255, 0.4),0 0px 10px rgba(0, 0, 0, 0.1);
}
.bgbody{
background: #FAFAFA;
background: -moz-linear-gradient(#FAFAFA, #EAEAEA);
background: -webkit-linear-gradient(#FAFAFA, #EAEAEA);
background: linear-gradient(#FAFAFA, #EAEAEA);
border-bottom: 1px solid #CACACA;
box-shadow: 0 1px 0 rgba(255, 255, 255, 0.4),0 0px 10px rgba(0, 0, 0, 0.1);
}
.leftMenu{
background-color: #E9F1F4;
border-style: solid;
border-width: 1px 1px 2px;
border-color: #E9F1F4 #D8DEE2 #D8DEE2;
border-radius: 0 0 5px 5px;
}
.nav > li > a:hover {
text-decoration: none;
background-color: whitesmoke;
border-radius: 5px;
}
/*
.nav-list > .active > a, .nav-list > .active > a:hover{
color: white;
text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.2);
background-color: #405A6A;
box-shadow: 0 1px 0 rgba(255, 255, 255, 0.4),0 0px 10px rgba(0, 0, 0, 0.1);
border-radius: 5px;
}
*/
a {
color: #405A6A;
text-decoration: none;
}
.nav-header {
display: block;
padding: 3px 15px;
font-size: 15px;
font-weight: bold;
line-height: 20px;
text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5);
text-transform: none;
background: -moz-linear-gradient(#829AA8, #405A6A);
background: -webkit-linear-gradient(#829AA8, #405A6A);
background: linear-gradient(#829AA8, #405A6A);
color: white;
border-radius: 2px;
}
.modal-backdrop,
.modal-backdrop.fade.in {
opacity: 0.4;
filter: alpha(opacity=40);
}
.error{
color:red;
}
.columnMain{
font-weight: bold;
}
.borderBox{
padding-bottom: 10px;
padding-left: 10px;
padding-top: 10px;
-moz-border-radius: 5px;
border-radius: 5px;
-webkit-border-radius: 5px;
margin-bottom: 20px;
-moz-box-shadow: 1px 3px 3px rgba(0, 0, 0, 0.1);
-webkit-box-shadow: 1px 3px 3px rgba(0, 0, 0, 0.1);
box-shadow: 1px 3px 3px rgba(0, 0, 0, 0.1);
border: 1px solid #EEE;
}
.iceicon_edit{
background-image: url("../images/edit.png");
}
.iceicon_delete{
background-image: url("../images/delete.png");
}
.iceicon_user{
background-image: url("../images/user.png");
}
.dropdown-menu{
z-index: 10000;
}
.lightface .lightfaceContent .lightfaceTitle {
font-size: 14px;
color: #fff;
background-color: #405A6A;
border: 1px solid #405A6A;
font-weight: bold;
margin: -1px;
margin-bottom: 0;
padding: 5px 10px;
line-height: 30px;
}
.label-ice, .badge-ice{
background-color: #405A6A;
}
.dataTables_processing{
position: absolute;
margin-left: 40px;
font-weight: bold;
font-size: 13px;
color: gray;
}
/*changes to full caledar*/
.fc-header-title h2 {
margin-top: 0;
white-space: nowrap;
font-size: 20px;
margin-left: 10px;
color:#405A6A;
}
table.dataTable{
font-size: 1.1em;
}
.form-horizontal{
font-size: 1.2em;
}
.form-horizontal .row{
margin-bottom: 10px;
}
.table.dataTable {width:100% !important;}
.iceLabel{
font-size: 12px !important;
font-weight: bold;
color: #3c8dbc;
}
.nav-tabs>li>a{
border-radius:0px;
}
.nav > li > a:hover {
border-radius:0px;
}
.btn {
-webkit-border-radius: 0px;
-moz-border-radius: 0px;
border-radius: 0px;
}
/* select2 style overide */
.select2-choice{
border: none !important;
width: 100% !important;
border-radius: 0px !important;
background-color: #FFF !important;
background-image: none !important;
}
.select2-container{
padding:3px !important;
}
.select2-container-multi{
padding:0px !important;
border:none;
}
.select2-arrow{
background-image: none !important;
background: #FFF !important;
border: none !important;
}
.select2-drop-active {
/*border: 1px solid black !important;*/
border-top: none !important;
background: #f0f0f0 !important;
}
.logTime{
font-weight: bold;
font-size: 13px;
font-style: italic;
}
.popupForm{
border: none !important;
padding: 0px 19px 14px !important;
}
.content {
background: #FFF;
}
.wrapper {
background: #FFF;
}
.user-panel > .info > p {
margin-bottom: 9px;
max-width: 135px;
line-height: 17px;
}
.list-group-item-text{
margin-bottom:5px;
}
.list-group-item{
padding-bottom:30px;
}
/custom for v11.0 */
.table-bordered>thead>tr>th{
border:none !important;
}
.table-bordered>thead>tr>th, .table-bordered>thead>tr>td {
border-bottom-width: 2px;
border: none;
}
.table{
-webkit-transition: margin-left .15s linear;
transition: margin-left .15s linear;
-webkit-user-select: none;
background-color: #fff;
-webkit-box-shadow: 0 1px 2px 0 rgba(0,0,0,.2);
box-shadow: 0 1px 2px 0 rgba(0,0,0,.2);
}
.reviewBlock{
-webkit-box-sizing: border-box;
box-sizing: border-box
}
.treeview-menu li:hover{
font-weight:bold;
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

BIN
core-ext/images/icehrm.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.8 KiB

BIN
core-ext/images/logo.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.0 KiB

BIN
core-ext/images/redo.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 708 B

317
core-ext/login.php Normal file
View File

@@ -0,0 +1,317 @@
<?php
define('CLIENT_PATH',dirname(__FILE__));
include ("config.base.php");
include ("include.common.php");
include("server.includes.inc.php");
if(empty($user)){
if(!empty($_REQUEST['username']) && !empty($_REQUEST['password'])){
$suser = null;
$ssoUserLoaded = false;
if(empty($suser)){
$suser = new User();
$suser->Load("(username = ? or email = ?) and password = ?",array($_REQUEST['username'],$_REQUEST['username'],md5($_REQUEST['password'])));
}
if($suser->password == md5($_REQUEST['password']) || $ssoUserLoaded){
$user = $suser;
SessionUtils::saveSessionObject('user', $user);
$suser->last_login = date("Y-m-d H:i:s");
$suser->Save();
if(!$ssoUserLoaded && !empty(BaseService::getInstance()->auditManager)){
BaseService::getInstance()->auditManager->user = $user;
BaseService::getInstance()->audit(IceConstants::AUDIT_AUTHENTICATION, "User Login");
}
if($user->user_level == "Admin"){
header("Location:".HOME_LINK_ADMIN);
}else{
header("Location:".HOME_LINK_OTHERS);
}
}else{
header("Location:".CLIENT_BASE_URL."login.php?f=1");
}
}
}else{
if($user->user_level == "Admin"){
header("Location:".HOME_LINK_ADMIN);
}else{
header("Location:".HOME_LINK_OTHERS);
}
}
$tuser = SessionUtils::getSessionObject('user');
//check user
$logoFileName = CLIENT_BASE_PATH."data/logo.png";
$logoFileUrl = CLIENT_BASE_URL."data/logo.png";
if(!file_exists($logoFileName)){
$logoFileUrl = BASE_URL."images/logo.png";
}
?><!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title><?=APP_NAME?> Login v<?=VERSION?> &copy; http://icehrm.com</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="A Powerful But Simple Way to Manage Your Company and People. http://icehrm.com">
<meta name="author" content="http://gamonoid.com">
<!-- Le styles -->
<link href="<?=BASE_URL?>bootstrap/css/bootstrap.css" rel="stylesheet">
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.1/jquery.js"></script>
<script src="<?=BASE_URL?>bootstrap/js/bootstrap.js"></script>
<script src="<?=BASE_URL?>js/jquery.placeholder.js"></script>
<script src="<?=BASE_URL?>js/jquery.dataTables.js"></script>
<script src="<?=BASE_URL?>js/bootstrap-datepicker.js"></script>
<link href="<?=BASE_URL?>bootstrap/css/bootstrap-responsive.css" rel="stylesheet">
<link href="<?=BASE_URL?>css/DT_bootstrap.css?v=0.4" rel="stylesheet">
<link href="<?=BASE_URL?>css/datepicker.css" rel="stylesheet">
<link href="<?=BASE_URL?>css/style.css?v=<?=$cssVersion?>" rel="stylesheet">
<!-- Le HTML5 shim, for IE6-8 support of HTML5 elements -->
<!--[if lt IE 9]>
<script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
<style type="text/css">
/* Override some defaults */
html, body {
background-color: #829AA8;
}
body {
padding-top: 40px;
}
.container {
width: 300px;
}
/* The white background content wrapper */
.container > .content {
background-color: #fff;
padding: 20px;
margin: 0 -20px;
-webkit-border-radius: 10px 10px 10px 10px;
-moz-border-radius: 10px 10px 10px 10px;
border-radius: 10px 10px 10px 10px;
-webkit-box-shadow: 0 1px 2px rgba(0,0,0,.15);
-moz-box-shadow: 0 1px 2px rgba(0,0,0,.15);
box-shadow: 0 1px 2px rgba(0,0,0,.15);
}
.login-form {
margin-left: 65px;
}
legend {
margin-right: -50px;
font-weight: bold;
color: #404040;
}
</style>
</head>
<body>
<div itemscope itemtype="http://schema.org/WebApplication" style="display: none;">
<span itemprop="name">IceHrm Pro</span> -
REQUIRES <span itemprop="operatingSystem">Windows, OSX, Linux</span>
<link itemprop="applicationCategory" href="http://icehrm.com"/>
RATING:
<div itemprop="aggregateRating" itemscope itemtype="http://schema.org/AggregateRating">
<span itemprop="ratingValue">4.5</span> (
<span itemprop="ratingCount">12</span> ratings )
</div>
<div itemprop="offers" itemscope itemtype="http://schema.org/Offer">
Price: $<span itemprop="price">199.99</span>
<meta itemprop="priceCurrency" content="USD" />
</div>
</div>
<script>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
ga('create', '<?=BaseService::getInstance()->getGAKey()?>', 'gamonoid.com');
ga('send', 'pageview');
</script>
<script type="text/javascript">
var key = "";
<?php if(isset($_REQUEST['key'])){?>
key = '<?=$_REQUEST['key']?>';
key = key.replace(/ /g,"+");
<?php }?>
$(document).ready(function() {
$(window).keydown(function(event){
if(event.keyCode == 13) {
event.preventDefault();
return false;
}
});
$("#password").keydown(function(event){
if(event.keyCode == 13) {
submitLogin();
return false;
}
});
});
function showForgotPassword(){
$("#loginForm").hide();
$("#requestPasswordChangeForm").show();
}
function requestPasswordChange(){
$("#requestPasswordChangeFormAlert").hide();
var id = $("#usernameChange").val();
$.post("service.php", {'a':'rpc','id':id}, function(data) {
if(data.status == "SUCCESS"){
$("#requestPasswordChangeFormAlert").show();
$("#requestPasswordChangeFormAlert").html(data.message);
}else{
$("#requestPasswordChangeFormAlert").show();
$("#requestPasswordChangeFormAlert").html(data.message);
}
},"json");
}
function changePassword(){
$("#newPasswordFormAlert").hide();
var password = $("#password").val();
var passwordValidation = function (str) {
var val = /^[a-zA-Z0-9]\w{6,}$/;
return str != null && val.test(str);
};
if(!passwordValidation(password)){
$("#newPasswordFormAlert").show();
$("#newPasswordFormAlert").html("Password may contain only letters, numbers and should be longer than 6 characters");
return;
}
$.post("service.php", {'a':'rsp','key':key,'pwd':password,"now":"1"}, function(data) {
if(data.status == "SUCCESS"){
top.location.href = "login.php?c=1";
}else{
$("#newPasswordFormAlert").show();
$("#newPasswordFormAlert").html(data.message);
}
},"json");
}
function submitLogin(){
$("#loginForm").submit();
}
</script>
<div class="container">
<?php if(defined('DEMO_MODE')){?>
<div class="content" style="top: 30px;
position: absolute;
left: 50px;
width: 380px;
height: 100px;">
<ul class="list-group" style="font-size:12px;">
<li style="padding-bottom:3px;" class="list-group-item">Admin: (Username = admin/ Password = admin)</li>
<li style="padding-bottom:3px;" class="list-group-item">Manager: (Username = manager/ Password = demouserpwd)</li>
<li style="padding-bottom:3px;" class="list-group-item">User: (Username = user1/ Password = demouserpwd)</li>
<li style="padding-bottom:3px;" class="list-group-item">User: (Username = user2/ Password = demouserpwd)</li>
</ul>
</div>
<?php }?>
<div class="content" style="margin-top:100px;">
<div class="row">
<div class="login-form">
<h2><img src="<?=$logoFileUrl?>"/></h2>
<?php if(!isset($_REQUEST['cp'])){?>
<form id="loginForm" action="login.php" method="POST">
<fieldset>
<div class="clearfix">
<div class="input-prepend">
<span class="add-on"><i class="icon-user"></i></span>
<input class="span2" type="text" id="username" name="username" placeholder="Username">
</div>
</div>
<div class="clearfix">
<div class="input-prepend">
<span class="add-on"><i class="icon-lock"></i></span>
<input class="span2" type="password" id="password" name="password" placeholder="Password">
</div>
</div>
<?php if(isset($_REQUEST['f'])){?>
<div class="clearfix alert alert-error" style="font-size:11px;width:147px;margin-bottom: 5px;">
Login failed
<?php if(isset($_REQUEST['fm'])){
echo $_REQUEST['fm'];
}?>
</div>
<?php } ?>
<?php if(isset($_REQUEST['c'])){?>
<div class="clearfix alert alert-info" style="font-size:11px;width:147px;margin-bottom: 5px;">
Password changed successfully
</div>
<?php } ?>
<button class="btn" style="margin-top: 5px;" type="button" onclick="submitLogin();return false;">Sign in&nbsp;&nbsp;<span class="icon-arrow-right"></span></button>
</fieldset>
<div class="clearfix">
<a href="" onclick="showForgotPassword();return false;" style="float:left;margin-top: 10px;">Forgot password</a>
<a href="<?=TWITTER_URL?>" target="_blank" style="float:right;"><img src="<?=BASE_URL?>images/32x32-Circle-53-TW.png"/></a>
<a href="<?=FB_URL?>" target="_blank" style="float:right;margin-right: 7px;"><img src="<?=BASE_URL?>images/32x32-Circle-54-FB.png"/></a>
</div>
<div class="clearfix">
<span style="font-size:9px;">&copy; <a href="http://icehrm.com" target="_blank">IceHrm - v<?=VERSION?></a> Developed by <a href="http://gamonoid.com" target="_blank">Gamonoid (Pvt) Ltd.</a></span>
</div>
</form>
<form id="requestPasswordChangeForm" style="display:none;" action="">
<fieldset>
<div class="clearfix">
<div class="input-prepend">
<span class="add-on"><i class="icon-user"></i></span>
<input class="span2" type="text" id="usernameChange" name="usernameChange" placeholder="Username or Email">
</div>
</div>
<div id="requestPasswordChangeFormAlert" class="clearfix alert alert-info" style="font-size:11px;width:147px;margin-bottom: 5px;display:none;">
</div>
<button class="btn" style="margin-top: 5px;" type="button" onclick="requestPasswordChange();return false;">Request Password Change&nbsp;&nbsp;<span class="icon-arrow-right"></span></button>
</fieldset>
</form>
<?php }else{?>
<form id="newPasswordForm" action="">
<fieldset>
<div class="clearfix">
<div class="input-prepend">
<span class="add-on"><i class="icon-lock"></i></span>
<input class="span2" type="password" id="password" name="password" placeholder="New Password">
</div>
</div>
<div id="newPasswordFormAlert" class="clearfix alert alert-error" style="font-size:11px;width:147px;margin-bottom: 5px;display:none;">
</div>
<button class="btn" style="margin-top: 5px;" type="button" onclick="changePassword();return false;">Change Password&nbsp;&nbsp;<span class="icon-arrow-right"></span></button>
</fieldset>
</form>
<?php }?>
</div>
</div>
</div>
</div> <!-- /container -->
</body>
</html>

View File

@@ -0,0 +1,72 @@
<?php
class ICEHRM_Record extends ADOdb_Active_Record{
public function getAdminAccess(){
return array("get","element","save","delete");
}
public function getOtherAccess(){
return array("get","element","save","delete");
}
public function getManagerAccess(){
return array("get","element");
}
public function getUserAccess(){
return array("get","element");
}
public function getEmployeeAccess(){
return $this->getUserAccess();
}
public function getAnonymousAccess(){
return array();
}
public function getUserOnlyMeAccess(){
return array("get","element");
}
public function getUserOnlyMeAccessField(){
return "employee";
}
public function getUserOnlyMeAccessRequestField(){
return "employee";
}
public function validateSave($obj){
return new IceResponse(IceResponse::SUCCESS,"");
}
public function executePreSaveActions($obj){
return new IceResponse(IceResponse::SUCCESS,$obj);
}
public function executePreUpdateActions($obj){
return new IceResponse(IceResponse::SUCCESS,$obj);
}
public function executePostSaveActions($obj){
}
public function executePostUpdateActions($obj){
}
public function postProcessGetData($obj){
return $obj;
}
public function getDefaultAccessLevel(){
return array("get","element","save","delete");
}
public function getVirtualFields(){
return array(
);
}
}

151
core-ext/popups.php Normal file
View File

@@ -0,0 +1,151 @@
<!-- Delete Modal -->
<div class="modal fade" id="deleteModel" tabindex="-1" role="dialog" aria-labelledby="deleteModelLabel" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true"><li class="fa fa-times"/></button>
<h3 id="deleteModelLabel" style="font-size: 17px;"></h3>
</div>
<div class="modal-body">
<p id="deleteModelBody"></p>
</div>
<div class="modal-footer">
<button class="btn" onclick="modJs.cancelDelete();">Cancel</button>
<button class="btn btn-primary" onclick="modJs.confirmDelete();">Delete</button>
</div>
</div>
</div>
</div>
<!-- Delete Modal -->
<!-- Message Modal -->
<div class="modal fade" id="messageModel" tabindex="-1" role="dialog" aria-labelledby="messageModelLabel" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true"><li class="fa fa-times"/></button>
<h3 id="messageModelLabel" style="font-size: 17px;"></h3>
</div>
<div class="modal-body">
<p id="messageModelBody"></p>
</div>
<div class="modal-footer">
<button class="btn" onclick="modJs.closeMessage();">Ok</button>
</div>
</div>
</div>
</div>
<!-- Message Modal -->
<!-- Plain Message Modal -->
<div class="modal fade" id="plainMessageModel" tabindex="-1" role="dialog" aria-labelledby="plainMessageModelLabel" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header" style="border-bottom:none;/*background-color: #3c8dbc;*/">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true" style="margin-top:-10px;"><li class="fa fa-times"/></button>
</div>
<div class="modal-body">
<p id="plainMessageModelBody"></p>
</div>
</div>
</div>
</div>
<!-- Plain Message Modal -->
<!-- Upload Modal -->
<div class="modal fade" id="uploadModel" tabindex="-1" role="dialog" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true"><li class="fa fa-times"/></button>
<h3 id="uploadModelLabel" style="font-size: 17px;"></h3>
</div>
<div class="modal-body">
<p id="uploadModelBody"></p>
</div>
<div class="modal-footer">
<button class="btn" onclick="$('#uploadModel').modal('hide');">Cancel</button>
</div>
</div>
</div>
</div>
<!-- Upload Modal -->
<!-- Message Modal -->
<div class="modal fade" id="verifyModel" tabindex="-1" role="dialog" aria-labelledby="verifyModelLabel" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true"><li class="fa fa-times"/></button>
<h3 id="verifyModelLabel" style="font-size: 17px;"></h3>
</div>
<div class="modal-body">
<p id="verifyModelBody">
<b>Step 1:</b><br/>
Please get your Instance Key from here:<br/>
<a target="_blank" href="http://icehrm.com/generateInstanceKey.php?id=<?=$baseService->getInstanceId()?>">
http://icehrm.com/generateInstanceKey.php?id=<?=$baseService->getInstanceId()?>
</a>
<br/><b>Step 2:</b><br/>
Enter the key you generated in step 1 here and click "Verify"<br/>
<form role="form">
<div class="row">
<label class="col-sm-12 control-label" for="verificationKey">Verification Key</label>
<div class="controls col-sm-12">
<input class="form-control" type="text" id="verificationKey" name="verificationKey" value=""/>
</div>
</div>
<br/><br/>
<div class="control-group row">
<div class="controls col-sm-12">
<button onclick="try{verifyInstance($('#verificationKey').val());}catch(e){};return false;" class="saveBtn btn btn-primary pull-right"><i class="fa fa-save"></i> Verify</button>
<button onclick="$('#verifyModel').modal('hide');return false;" class="cancelBtn btn pull-right" style="margin-right:5px;"><i class="fa fa-times-circle-o"></i> Cancel</button>
</div>
<div class="controls col-sm-3">
</div>
</div>
</div>
</form>
</p>
</div>
</div>
</div>
</div>
<!-- Message Modal -->
<?php if($user->user_level == 'Admin'){?>
<!-- Modal -->
<div class="modal fade" id="profileSwitchModal" tabindex="-1" role="dialog" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true"><li class="fa fa-times"/></button>
<h3 id="myModalLabel">Switch Employee</h3>
</div>
<div class="modal-body">
<p>Select the employee to Edit</p>
<div style="border: solid 1px #EEE;">
<select id="switch_emp" style="width:100%;">
<!--
<option value="-1">No Employee</option>
-->
<?php
$employees = $baseService->get('Employee');
foreach($employees as $empTemp){
?>
<option value="<?=$empTemp->id?>"><?=$empTemp->first_name." ".$empTemp->last_name?></option>
<?php }?>
</select>
</div>
</div>
<div class="modal-footer">
<button class="btn" data-dismiss="modal" aria-hidden="true">Close</button>
<button class="btn btn-primary" onclick="modJs.setAdminProfile($('#switch_emp').val());return false;">Switch</button>
</div>
</div>
</div>
</div>
<!-- Modal -->
<?php }?>

View File

@@ -0,0 +1,892 @@
INSERT INTO `CurrencyTypes`(`id`, `code`, `name`) VALUES
(3, 'AED', 'Utd. Arab Emir. Dirham'),
(4, 'AFN', 'Afghanistan Afghani'),
(5, 'ALL', 'Albanian Lek'),
(6, 'ANG', 'NL Antillian Guilder'),
(7, 'AOR', 'Angolan New Kwanza'),
(177, 'ARP', 'Argentina Pesos'),
(8, 'ARS', 'Argentine Peso'),
(10, 'AUD', 'Australian Dollar'),
(11, 'AWG', 'Aruban Florin'),
(12, 'BBD', 'Barbados Dollar'),
(13, 'BDT', 'Bangladeshi Taka'),
(15, 'BGL', 'Bulgarian Lev'),
(16, 'BHD', 'Bahraini Dinar'),
(17, 'BIF', 'Burundi Franc'),
(18, 'BMD', 'Bermudian Dollar'),
(19, 'BND', 'Brunei Dollar'),
(20, 'BOB', 'Bolivian Boliviano'),
(21, 'BRL', 'Brazilian Real'),
(22, 'BSD', 'Bahamian Dollar'),
(23, 'BTN', 'Bhutan Ngultrum'),
(24, 'BWP', 'Botswana Pula'),
(25, 'BZD', 'Belize Dollar'),
(26, 'CAD', 'Canadian Dollar'),
(27, 'CHF', 'Swiss Franc'),
(28, 'CLP', 'Chilean Peso'),
(29, 'CNY', 'Chinese Yuan Renminbi'),
(30, 'COP', 'Colombian Peso'),
(31, 'CRC', 'Costa Rican Colon'),
(171, 'CZK', 'Czech Koruna'),
(32, 'CUP', 'Cuban Peso'),
(33, 'CVE', 'Cape Verde Escudo'),
(34, 'CYP', 'Cyprus Pound'),
(37, 'DJF', 'Djibouti Franc'),
(38, 'DKK', 'Danish Krona'),
(39, 'DOP', 'Dominican Peso'),
(40, 'DZD', 'Algerian Dinar'),
(41, 'ECS', 'Ecuador Sucre'),
(43, 'EEK', 'Estonian Krona'),
(44, 'EGP', 'Egyptian Pound'),
(46, 'ETB', 'Ethiopian Birr'),
(42, 'EUR', 'Euro'),
(48, 'FJD', 'Fiji Dollar'),
(49, 'FKP', 'Falkland Islands Pound'),
(51, 'GBP', 'Pound Sterling'),
(52, 'GHC', 'Ghanaian Cedi'),
(53, 'GIP', 'Gibraltar Pound'),
(54, 'GMD', 'Gambian Dalasi'),
(55, 'GNF', 'Guinea Franc'),
(57, 'GTQ', 'Guatemalan Quetzal'),
(58, 'GYD', 'Guyanan Dollar'),
(59, 'HKD', 'Hong Kong Dollar'),
(60, 'HNL', 'Honduran Lempira'),
(61, 'HRK', 'Croatian Kuna'),
(62, 'HTG', 'Haitian Gourde'),
(63, 'HUF', 'Hungarian Forint'),
(64, 'IDR', 'Indonesian Rupiah'),
(66, 'ILS', 'Israeli New Shekel'),
(67, 'INR', 'Indian Rupee'),
(68, 'IQD', 'Iraqi Dinar'),
(69, 'IRR', 'Iranian Rial'),
(70, 'ISK', 'Iceland Krona'),
(72, 'JMD', 'Jamaican Dollar'),
(73, 'JOD', 'Jordanian Dinar'),
(74, 'JPY', 'Japanese Yen'),
(75, 'KES', 'Kenyan Shilling'),
(76, 'KHR', 'Kampuchean Riel'),
(77, 'KMF', 'Comoros Franc'),
(78, 'KPW', 'North Korean Won'),
(79, 'KRW', 'Korean Won'),
(80, 'KWD', 'Kuwaiti Dinar'),
(81, 'KYD', 'Cayman Islands Dollar'),
(82, 'KZT', 'Kazakhstan Tenge'),
(83, 'LAK', 'Lao Kip'),
(84, 'LBP', 'Lebanese Pound'),
(85, 'LKR', 'Sri Lanka Rupee'),
(86, 'LRD', 'Liberian Dollar'),
(87, 'LSL', 'Lesotho Loti'),
(88, 'LTL', 'Lithuanian Litas'),
(90, 'LVL', 'Latvian Lats'),
(91, 'LYD', 'Libyan Dinar'),
(92, 'MAD', 'Moroccan Dirham'),
(93, 'MGF', 'Malagasy Franc'),
(94, 'MMK', 'Myanmar Kyat'),
(95, 'MNT', 'Mongolian Tugrik'),
(96, 'MOP', 'Macau Pataca'),
(97, 'MRO', 'Mauritanian Ouguiya'),
(98, 'MTL', 'Maltese Lira'),
(99, 'MUR', 'Mauritius Rupee'),
(100, 'MVR', 'Maldive Rufiyaa'),
(101, 'MWK', 'Malawi Kwacha'),
(102, 'MXN', 'Mexican New Peso'),
(172, 'MXP', 'Mexican Peso'),
(103, 'MYR', 'Malaysian Ringgit'),
(104, 'MZM', 'Mozambique Metical'),
(105, 'NAD', 'Namibia Dollar'),
(106, 'NGN', 'Nigerian Naira'),
(107, 'NIO', 'Nicaraguan Cordoba Oro'),
(109, 'NOK', 'Norwegian Krona'),
(110, 'NPR', 'Nepalese Rupee'),
(111, 'NZD', 'New Zealand Dollar'),
(112, 'OMR', 'Omani Rial'),
(113, 'PAB', 'Panamanian Balboa'),
(114, 'PEN', 'Peruvian Nuevo Sol'),
(115, 'PGK', 'Papua New Guinea Kina'),
(116, 'PHP', 'Philippine Peso'),
(117, 'PKR', 'Pakistan Rupee'),
(118, 'PLN', 'Polish Zloty'),
(120, 'PYG', 'Paraguay Guarani'),
(121, 'QAR', 'Qatari Rial'),
(122, 'ROL', 'Romanian Leu'),
(123, 'RUB', 'Russian Rouble'),
(180, 'RUR', 'Russia Rubles'),
(125, 'SBD', 'Solomon Islands Dollar'),
(126, 'SCR', 'Seychelles Rupee'),
(127, 'SDD', 'Sudanese Dinar'),
(128, 'SDP', 'Sudanese Pound'),
(129, 'SEK', 'Swedish Krona'),
(131, 'SGD', 'Singapore Dollar'),
(132, 'SHP', 'St. Helena Pound'),
(130, 'SKK', 'Slovak Koruna'),
(135, 'SLL', 'Sierra Leone Leone'),
(136, 'SOS', 'Somali Shilling'),
(137, 'SRD', 'Surinamese Dollar'),
(138, 'STD', 'Sao Tome/Principe Dobra'),
(139, 'SVC', 'El Salvador Colon'),
(140, 'SYP', 'Syrian Pound'),
(141, 'SZL', 'Swaziland Lilangeni'),
(142, 'THB', 'Thai Baht'),
(143, 'TND', 'Tunisian Dinar'),
(144, 'TOP', 'Tongan Pa''anga'),
(145, 'TRL', 'Turkish Lira'),
(146, 'TTD', 'Trinidad/Tobago Dollar'),
(147, 'TWD', 'Taiwan Dollar'),
(148, 'TZS', 'Tanzanian Shilling'),
(149, 'UAH', 'Ukraine Hryvnia'),
(150, 'UGX', 'Uganda Shilling'),
(151, 'USD', 'United States Dollar'),
(152, 'UYP', 'Uruguayan Peso'),
(153, 'VEB', 'Venezuelan Bolivar'),
(154, 'VND', 'Vietnamese Dong'),
(155, 'VUV', 'Vanuatu Vatu'),
(156, 'WST', 'Samoan Tala'),
(158, 'XAF', 'CFA Franc BEAC'),
(159, 'XAG', 'Silver (oz.)'),
(160, 'XAU', 'Gold (oz.)'),
(161, 'XCD', 'Eastern Caribbean Dollars'),
(179, 'XDR', 'IMF Special Drawing Right'),
(162, 'XOF', 'CFA Franc BCEAO'),
(163, 'XPD', 'Palladium (oz.)'),
(164, 'XPF', 'CFP Franc'),
(165, 'XPT', 'Platinum (oz.)'),
(166, 'YER', 'Yemeni Riyal'),
(167, 'YUM', 'Yugoslavian Dinar'),
(175, 'YUN', 'Yugoslav Dinar'),
(168, 'ZAR', 'South African Rand'),
(176, 'ZMK', 'Zambian Kwacha'),
(169, 'ZRN', 'New Zaire'),
(170, 'ZWD', 'Zimbabwe Dollar'),
(173, 'SAR', 'Saudi Arabia Riyal');
INSERT INTO `Country`(`code`, `namecap`, `name`, `iso3`, `numcode`) VALUES
('AF', 'AFGHANISTAN', 'Afghanistan', 'AFG', 4),
('AL', 'ALBANIA', 'Albania', 'ALB', 8),
('DZ', 'ALGERIA', 'Algeria', 'DZA', 12),
('AS', 'AMERICAN SAMOA', 'American Samoa', 'ASM', 16),
('AD', 'ANDORRA', 'Andorra', 'AND', 20),
('AO', 'ANGOLA', 'Angola', 'AGO', 24),
('AI', 'ANGUILLA', 'Anguilla', 'AIA', 660),
('AQ', 'ANTARCTICA', 'Antarctica', NULL, NULL),
('AG', 'ANTIGUA AND BARBUDA', 'Antigua and Barbuda', 'ATG', 28),
('AR', 'ARGENTINA', 'Argentina', 'ARG', 32),
('AM', 'ARMENIA', 'Armenia', 'ARM', 51),
('AW', 'ARUBA', 'Aruba', 'ABW', 533),
('AU', 'AUSTRALIA', 'Australia', 'AUS', 36),
('AT', 'AUSTRIA', 'Austria', 'AUT', 40),
('AZ', 'AZERBAIJAN', 'Azerbaijan', 'AZE', 31),
('BS', 'BAHAMAS', 'Bahamas', 'BHS', 44),
('BH', 'BAHRAIN', 'Bahrain', 'BHR', 48),
('BD', 'BANGLADESH', 'Bangladesh', 'BGD', 50),
('BB', 'BARBADOS', 'Barbados', 'BRB', 52),
('BY', 'BELARUS', 'Belarus', 'BLR', 112),
('BE', 'BELGIUM', 'Belgium', 'BEL', 56),
('BZ', 'BELIZE', 'Belize', 'BLZ', 84),
('BJ', 'BENIN', 'Benin', 'BEN', 204),
('BM', 'BERMUDA', 'Bermuda', 'BMU', 60),
('BT', 'BHUTAN', 'Bhutan', 'BTN', 64),
('BO', 'BOLIVIA', 'Bolivia', 'BOL', 68),
('BA', 'BOSNIA AND HERZEGOVINA', 'Bosnia and Herzegovina', 'BIH', 70),
('BW', 'BOTSWANA', 'Botswana', 'BWA', 72),
('BV', 'BOUVET ISLAND', 'Bouvet Island', NULL, NULL),
('BR', 'BRAZIL', 'Brazil', 'BRA', 76),
('IO', 'BRITISH INDIAN OCEAN TERRITORY', 'British Indian Ocean Territory', NULL, NULL),
('BN', 'BRUNEI DARUSSALAM', 'Brunei Darussalam', 'BRN', 96),
('BG', 'BULGARIA', 'Bulgaria', 'BGR', 100),
('BF', 'BURKINA FASO', 'Burkina Faso', 'BFA', 854),
('BI', 'BURUNDI', 'Burundi', 'BDI', 108),
('KH', 'CAMBODIA', 'Cambodia', 'KHM', 116),
('CM', 'CAMEROON', 'Cameroon', 'CMR', 120),
('CA', 'CANADA', 'Canada', 'CAN', 124),
('CV', 'CAPE VERDE', 'Cape Verde', 'CPV', 132),
('KY', 'CAYMAN ISLANDS', 'Cayman Islands', 'CYM', 136),
('CF', 'CENTRAL AFRICAN REPUBLIC', 'Central African Republic', 'CAF', 140),
('TD', 'CHAD', 'Chad', 'TCD', 148),
('CL', 'CHILE', 'Chile', 'CHL', 152),
('CN', 'CHINA', 'China', 'CHN', 156),
('CX', 'CHRISTMAS ISLAND', 'Christmas Island', NULL, NULL),
('CC', 'COCOS (KEELING) ISLANDS', 'Cocos (Keeling) Islands', NULL, NULL),
('CO', 'COLOMBIA', 'Colombia', 'COL', 170),
('KM', 'COMOROS', 'Comoros', 'COM', 174),
('CG', 'CONGO', 'Congo', 'COG', 178),
('CD', 'CONGO, THE DEMOCRATIC REPUBLIC OF THE', 'Congo, the Democratic Republic of the', 'COD', 180),
('CK', 'COOK ISLANDS', 'Cook Islands', 'COK', 184),
('CR', 'COSTA RICA', 'Costa Rica', 'CRI', 188),
('CI', 'COTE D''IVOIRE', 'Cote D''Ivoire', 'CIV', 384),
('HR', 'CROATIA', 'Croatia', 'HRV', 191),
('CU', 'CUBA', 'Cuba', 'CUB', 192),
('CY', 'CYPRUS', 'Cyprus', 'CYP', 196),
('CZ', 'CZECH REPUBLIC', 'Czech Republic', 'CZE', 203),
('DK', 'DENMARK', 'Denmark', 'DNK', 208),
('DJ', 'DJIBOUTI', 'Djibouti', 'DJI', 262),
('DM', 'DOMINICA', 'Dominica', 'DMA', 212),
('DO', 'DOMINICAN REPUBLIC', 'Dominican Republic', 'DOM', 214),
('EC', 'ECUADOR', 'Ecuador', 'ECU', 218),
('EG', 'EGYPT', 'Egypt', 'EGY', 818),
('SV', 'EL SALVADOR', 'El Salvador', 'SLV', 222),
('GQ', 'EQUATORIAL GUINEA', 'Equatorial Guinea', 'GNQ', 226),
('ER', 'ERITREA', 'Eritrea', 'ERI', 232),
('EE', 'ESTONIA', 'Estonia', 'EST', 233),
('ET', 'ETHIOPIA', 'Ethiopia', 'ETH', 231),
('FK', 'FALKLAND ISLANDS (MALVINAS)', 'Falkland Islands (Malvinas)', 'FLK', 238),
('FO', 'FAROE ISLANDS', 'Faroe Islands', 'FRO', 234),
('FJ', 'FIJI', 'Fiji', 'FJI', 242),
('FI', 'FINLAND', 'Finland', 'FIN', 246),
('FR', 'FRANCE', 'France', 'FRA', 250),
('GF', 'FRENCH GUIANA', 'French Guiana', 'GUF', 254),
('PF', 'FRENCH POLYNESIA', 'French Polynesia', 'PYF', 258),
('TF', 'FRENCH SOUTHERN TERRITORIES', 'French Southern Territories', NULL, NULL),
('GA', 'GABON', 'Gabon', 'GAB', 266),
('GM', 'GAMBIA', 'Gambia', 'GMB', 270),
('GE', 'GEORGIA', 'Georgia', 'GEO', 268),
('DE', 'GERMANY', 'Germany', 'DEU', 276),
('GH', 'GHANA', 'Ghana', 'GHA', 288),
('GI', 'GIBRALTAR', 'Gibraltar', 'GIB', 292),
('GR', 'GREECE', 'Greece', 'GRC', 300),
('GL', 'GREENLAND', 'Greenland', 'GRL', 304),
('GD', 'GRENADA', 'Grenada', 'GRD', 308),
('GP', 'GUADELOUPE', 'Guadeloupe', 'GLP', 312),
('GU', 'GUAM', 'Guam', 'GUM', 316),
('GT', 'GUATEMALA', 'Guatemala', 'GTM', 320),
('GN', 'GUINEA', 'Guinea', 'GIN', 324),
('GW', 'GUINEA-BISSAU', 'Guinea-Bissau', 'GNB', 624),
('GY', 'GUYANA', 'Guyana', 'GUY', 328),
('HT', 'HAITI', 'Haiti', 'HTI', 332),
('HM', 'HEARD ISLAND AND MCDONALD ISLANDS', 'Heard Island and Mcdonald Islands', NULL, NULL),
('VA', 'HOLY SEE (VATICAN CITY STATE)', 'Holy See (Vatican City State)', 'VAT', 336),
('HN', 'HONDURAS', 'Honduras', 'HND', 340),
('HK', 'HONG KONG', 'Hong Kong', 'HKG', 344),
('HU', 'HUNGARY', 'Hungary', 'HUN', 348),
('IS', 'ICELAND', 'Iceland', 'ISL', 352),
('IN', 'INDIA', 'India', 'IND', 356),
('ID', 'INDONESIA', 'Indonesia', 'IDN', 360),
('IR', 'IRAN, ISLAMIC REPUBLIC OF', 'Iran, Islamic Republic of', 'IRN', 364),
('IQ', 'IRAQ', 'Iraq', 'IRQ', 368),
('IE', 'IRELAND', 'Ireland', 'IRL', 372),
('IL', 'ISRAEL', 'Israel', 'ISR', 376),
('IT', 'ITALY', 'Italy', 'ITA', 380),
('JM', 'JAMAICA', 'Jamaica', 'JAM', 388),
('JP', 'JAPAN', 'Japan', 'JPN', 392),
('JO', 'JORDAN', 'Jordan', 'JOR', 400),
('KZ', 'KAZAKHSTAN', 'Kazakhstan', 'KAZ', 398),
('KE', 'KENYA', 'Kenya', 'KEN', 404),
('KI', 'KIRIBATI', 'Kiribati', 'KIR', 296),
('KP', 'KOREA, DEMOCRATIC PEOPLE''S REPUBLIC OF', 'Korea, Democratic People''s Republic of', 'PRK', 408),
('KR', 'KOREA, REPUBLIC OF', 'Korea, Republic of', 'KOR', 410),
('KW', 'KUWAIT', 'Kuwait', 'KWT', 414),
('KG', 'KYRGYZSTAN', 'Kyrgyzstan', 'KGZ', 417),
('LA', 'LAO PEOPLE''S DEMOCRATIC REPUBLIC', 'Lao People''s Democratic Republic', 'LAO', 418),
('LV', 'LATVIA', 'Latvia', 'LVA', 428),
('LB', 'LEBANON', 'Lebanon', 'LBN', 422),
('LS', 'LESOTHO', 'Lesotho', 'LSO', 426),
('LR', 'LIBERIA', 'Liberia', 'LBR', 430),
('LY', 'LIBYAN ARAB JAMAHIRIYA', 'Libyan Arab Jamahiriya', 'LBY', 434),
('LI', 'LIECHTENSTEIN', 'Liechtenstein', 'LIE', 438),
('LT', 'LITHUANIA', 'Lithuania', 'LTU', 440),
('LU', 'LUXEMBOURG', 'Luxembourg', 'LUX', 442),
('MO', 'MACAO', 'Macao', 'MAC', 446),
('MK', 'MACEDONIA, THE FORMER YUGOSLAV REPUBLIC OF', 'Macedonia, the Former Yugoslav Republic of', 'MKD', 807),
('MG', 'MADAGASCAR', 'Madagascar', 'MDG', 450),
('MW', 'MALAWI', 'Malawi', 'MWI', 454),
('MY', 'MALAYSIA', 'Malaysia', 'MYS', 458),
('MV', 'MALDIVES', 'Maldives', 'MDV', 462),
('ML', 'MALI', 'Mali', 'MLI', 466),
('MT', 'MALTA', 'Malta', 'MLT', 470),
('MH', 'MARSHALL ISLANDS', 'Marshall Islands', 'MHL', 584),
('MQ', 'MARTINIQUE', 'Martinique', 'MTQ', 474),
('MR', 'MAURITANIA', 'Mauritania', 'MRT', 478),
('MU', 'MAURITIUS', 'Mauritius', 'MUS', 480),
('YT', 'MAYOTTE', 'Mayotte', NULL, NULL),
('MX', 'MEXICO', 'Mexico', 'MEX', 484),
('FM', 'MICRONESIA, FEDERATED STATES OF', 'Micronesia, Federated States of', 'FSM', 583),
('MD', 'MOLDOVA, REPUBLIC OF', 'Moldova, Republic of', 'MDA', 498),
('MC', 'MONACO', 'Monaco', 'MCO', 492),
('MN', 'MONGOLIA', 'Mongolia', 'MNG', 496),
('MS', 'MONTSERRAT', 'Montserrat', 'MSR', 500),
('MA', 'MOROCCO', 'Morocco', 'MAR', 504),
('MZ', 'MOZAMBIQUE', 'Mozambique', 'MOZ', 508),
('MM', 'MYANMAR', 'Myanmar', 'MMR', 104),
('NA', 'NAMIBIA', 'Namibia', 'NAM', 516),
('NR', 'NAURU', 'Nauru', 'NRU', 520),
('NP', 'NEPAL', 'Nepal', 'NPL', 524),
('NL', 'NETHERLANDS', 'Netherlands', 'NLD', 528),
('AN', 'NETHERLANDS ANTILLES', 'Netherlands Antilles', 'ANT', 530),
('NC', 'NEW CALEDONIA', 'New Caledonia', 'NCL', 540),
('NZ', 'NEW ZEALAND', 'New Zealand', 'NZL', 554),
('NI', 'NICARAGUA', 'Nicaragua', 'NIC', 558),
('NE', 'NIGER', 'Niger', 'NER', 562),
('NG', 'NIGERIA', 'Nigeria', 'NGA', 566),
('NU', 'NIUE', 'Niue', 'NIU', 570),
('NF', 'NORFOLK ISLAND', 'Norfolk Island', 'NFK', 574),
('MP', 'NORTHERN MARIANA ISLANDS', 'Northern Mariana Islands', 'MNP', 580),
('NO', 'NORWAY', 'Norway', 'NOR', 578),
('OM', 'OMAN', 'Oman', 'OMN', 512),
('PK', 'PAKISTAN', 'Pakistan', 'PAK', 586),
('PW', 'PALAU', 'Palau', 'PLW', 585),
('PS', 'PALESTINIAN TERRITORY, OCCUPIED', 'Palestinian Territory, Occupied', NULL, NULL),
('PA', 'PANAMA', 'Panama', 'PAN', 591),
('PG', 'PAPUA NEW GUINEA', 'Papua New Guinea', 'PNG', 598),
('PY', 'PARAGUAY', 'Paraguay', 'PRY', 600),
('PE', 'PERU', 'Peru', 'PER', 604),
('PH', 'PHILIPPINES', 'Philippines', 'PHL', 608),
('PN', 'PITCAIRN', 'Pitcairn', 'PCN', 612),
('PL', 'POLAND', 'Poland', 'POL', 616),
('PT', 'PORTUGAL', 'Portugal', 'PRT', 620),
('PR', 'PUERTO RICO', 'Puerto Rico', 'PRI', 630),
('QA', 'QATAR', 'Qatar', 'QAT', 634),
('RE', 'REUNION', 'Reunion', 'REU', 638),
('RO', 'ROMANIA', 'Romania', 'ROM', 642),
('RU', 'RUSSIAN FEDERATION', 'Russian Federation', 'RUS', 643),
('RW', 'RWANDA', 'Rwanda', 'RWA', 646),
('SH', 'SAINT HELENA', 'Saint Helena', 'SHN', 654),
('KN', 'SAINT KITTS AND NEVIS', 'Saint Kitts and Nevis', 'KNA', 659),
('LC', 'SAINT LUCIA', 'Saint Lucia', 'LCA', 662),
('PM', 'SAINT PIERRE AND MIQUELON', 'Saint Pierre and Miquelon', 'SPM', 666),
('VC', 'SAINT VINCENT AND THE GRENADINES', 'Saint Vincent and the Grenadines', 'VCT', 670),
('WS', 'SAMOA', 'Samoa', 'WSM', 882),
('SM', 'SAN MARINO', 'San Marino', 'SMR', 674),
('ST', 'SAO TOME AND PRINCIPE', 'Sao Tome and Principe', 'STP', 678),
('SA', 'SAUDI ARABIA', 'Saudi Arabia', 'SAU', 682),
('SN', 'SENEGAL', 'Senegal', 'SEN', 686),
('CS', 'SERBIA AND MONTENEGRO', 'Serbia and Montenegro', NULL, NULL),
('SC', 'SEYCHELLES', 'Seychelles', 'SYC', 690),
('SL', 'SIERRA LEONE', 'Sierra Leone', 'SLE', 694),
('SG', 'SINGAPORE', 'Singapore', 'SGP', 702),
('SK', 'SLOVAKIA', 'Slovakia', 'SVK', 703),
('SI', 'SLOVENIA', 'Slovenia', 'SVN', 705),
('SB', 'SOLOMON ISLANDS', 'Solomon Islands', 'SLB', 90),
('SO', 'SOMALIA', 'Somalia', 'SOM', 706),
('ZA', 'SOUTH AFRICA', 'South Africa', 'ZAF', 710),
('GS', 'SOUTH GEORGIA AND THE SOUTH SANDWICH ISLANDS', 'South Georgia and the South Sandwich Islands', NULL, NULL),
('ES', 'SPAIN', 'Spain', 'ESP', 724),
('LK', 'SRI LANKA', 'Sri Lanka', 'LKA', 144),
('SD', 'SUDAN', 'Sudan', 'SDN', 736),
('SR', 'SURINAME', 'Suriname', 'SUR', 740),
('SJ', 'SVALBARD AND JAN MAYEN', 'Svalbard and Jan Mayen', 'SJM', 744),
('SZ', 'SWAZILAND', 'Swaziland', 'SWZ', 748),
('SE', 'SWEDEN', 'Sweden', 'SWE', 752),
('CH', 'SWITZERLAND', 'Switzerland', 'CHE', 756),
('SY', 'SYRIAN ARAB REPUBLIC', 'Syrian Arab Republic', 'SYR', 760),
('TW', 'TAIWAN, PROVINCE OF CHINA', 'Taiwan', 'TWN', 158),
('TJ', 'TAJIKISTAN', 'Tajikistan', 'TJK', 762),
('TZ', 'TANZANIA, UNITED REPUBLIC OF', 'Tanzania, United Republic of', 'TZA', 834),
('TH', 'THAILAND', 'Thailand', 'THA', 764),
('TL', 'TIMOR-LESTE', 'Timor-Leste', NULL, NULL),
('TG', 'TOGO', 'Togo', 'TGO', 768),
('TK', 'TOKELAU', 'Tokelau', 'TKL', 772),
('TO', 'TONGA', 'Tonga', 'TON', 776),
('TT', 'TRINIDAD AND TOBAGO', 'Trinidad and Tobago', 'TTO', 780),
('TN', 'TUNISIA', 'Tunisia', 'TUN', 788),
('TR', 'TURKEY', 'Turkey', 'TUR', 792),
('TM', 'TURKMENISTAN', 'Turkmenistan', 'TKM', 795),
('TC', 'TURKS AND CAICOS ISLANDS', 'Turks and Caicos Islands', 'TCA', 796),
('TV', 'TUVALU', 'Tuvalu', 'TUV', 798),
('UG', 'UGANDA', 'Uganda', 'UGA', 800),
('UA', 'UKRAINE', 'Ukraine', 'UKR', 804),
('AE', 'UNITED ARAB EMIRATES', 'United Arab Emirates', 'ARE', 784),
('GB', 'UNITED KINGDOM', 'United Kingdom', 'GBR', 826),
('US', 'UNITED STATES', 'United States', 'USA', 840),
('UM', 'UNITED STATES MINOR OUTLYING ISLANDS', 'United States Minor Outlying Islands', NULL, NULL),
('UY', 'URUGUAY', 'Uruguay', 'URY', 858),
('UZ', 'UZBEKISTAN', 'Uzbekistan', 'UZB', 860),
('VU', 'VANUATU', 'Vanuatu', 'VUT', 548),
('VE', 'VENEZUELA', 'Venezuela', 'VEN', 862),
('VN', 'VIET NAM', 'Viet Nam', 'VNM', 704),
('VG', 'VIRGIN ISLANDS, BRITISH', 'Virgin Islands, British', 'VGB', 92),
('VI', 'VIRGIN ISLANDS, U.S.', 'Virgin Islands, U.s.', 'VIR', 850),
('WF', 'WALLIS AND FUTUNA', 'Wallis and Futuna', 'WLF', 876),
('EH', 'WESTERN SAHARA', 'Western Sahara', 'ESH', 732),
('YE', 'YEMEN', 'Yemen', 'YEM', 887),
('ZM', 'ZAMBIA', 'Zambia', 'ZMB', 894),
('ZW', 'ZIMBABWE', 'Zimbabwe', 'ZWE', 716);
INSERT INTO `Province`(`id`, `name`, `code`, `country`) VALUES
(1, 'Alaska', 'AK', 'US'),
(2, 'Alabama', 'AL', 'US'),
(3, 'American Samoa', 'AS', 'US'),
(4, 'Arizona', 'AZ', 'US'),
(5, 'Arkansas', 'AR', 'US'),
(6, 'California', 'CA', 'US'),
(7, 'Colorado', 'CO', 'US'),
(8, 'Connecticut', 'CT', 'US'),
(9, 'Delaware', 'DE', 'US'),
(10, 'District of Columbia', 'DC', 'US'),
(11, 'Federated States of Micronesia', 'FM', 'US'),
(12, 'Florida', 'FL', 'US'),
(13, 'Georgia', 'GA', 'US'),
(14, 'Guam', 'GU', 'US'),
(15, 'Hawaii', 'HI', 'US'),
(16, 'Idaho', 'ID', 'US'),
(17, 'Illinois', 'IL', 'US'),
(18, 'Indiana', 'IN', 'US'),
(19, 'Iowa', 'IA', 'US'),
(20, 'Kansas', 'KS', 'US'),
(21, 'Kentucky', 'KY', 'US'),
(22, 'Louisiana', 'LA', 'US'),
(23, 'Maine', 'ME', 'US'),
(24, 'Marshall Islands', 'MH', 'US'),
(25, 'Maryland', 'MD', 'US'),
(26, 'Massachusetts', 'MA', 'US'),
(27, 'Michigan', 'MI', 'US'),
(28, 'Minnesota', 'MN', 'US'),
(29, 'Mississippi', 'MS', 'US'),
(30, 'Missouri', 'MO', 'US'),
(31, 'Montana', 'MT', 'US'),
(32, 'Nebraska', 'NE', 'US'),
(33, 'Nevada', 'NV', 'US'),
(34, 'New Hampshire', 'NH', 'US'),
(35, 'New Jersey', 'NJ', 'US'),
(36, 'New Mexico', 'NM', 'US'),
(37, 'New York', 'NY', 'US'),
(38, 'North Carolina', 'NC', 'US'),
(39, 'North Dakota', 'ND', 'US'),
(40, 'Northern Mariana Islands', 'MP', 'US'),
(41, 'Ohio', 'OH', 'US'),
(42, 'Oklahoma', 'OK', 'US'),
(43, 'Oregon', 'OR', 'US'),
(44, 'Palau', 'PW', 'US'),
(45, 'Pennsylvania', 'PA', 'US'),
(46, 'Puerto Rico', 'PR', 'US'),
(47, 'Rhode Island', 'RI', 'US'),
(48, 'South Carolina', 'SC', 'US'),
(49, 'South Dakota', 'SD', 'US'),
(50, 'Tennessee', 'TN', 'US'),
(51, 'Texas', 'TX', 'US'),
(52, 'Utah', 'UT', 'US'),
(53, 'Vermont', 'VT', 'US'),
(54, 'Virgin Islands', 'VI', 'US'),
(55, 'Virginia', 'VA', 'US'),
(56, 'Washington', 'WA', 'US'),
(57, 'West Virginia', 'WV', 'US'),
(58, 'Wisconsin', 'WI', 'US'),
(59, 'Wyoming', 'WY', 'US'),
(60, 'Armed Forces Africa', 'AE', 'US'),
(61, 'Armed Forces Americas (except Canada)', 'AA', 'US'),
(62, 'Armed Forces Canada', 'AE', 'US'),
(63, 'Armed Forces Europe', 'AE', 'US'),
(64, 'Armed Forces Middle East', 'AE', 'US'),
(65, 'Armed Forces Pacific', 'AP', 'US');
INSERT INTO `Nationality` (`id`, `name`) VALUES
(1, 'Afghan'),
(2, 'Albanian'),
(3, 'Algerian'),
(4, 'American'),
(5, 'Andorran'),
(6, 'Angolan'),
(7, 'Antiguans'),
(8, 'Argentinean'),
(9, 'Armenian'),
(10, 'Australian'),
(11, 'Austrian'),
(12, 'Azerbaijani'),
(13, 'Bahamian'),
(14, 'Bahraini'),
(15, 'Bangladeshi'),
(16, 'Barbadian'),
(17, 'Barbudans'),
(18, 'Batswana'),
(19, 'Belarusian'),
(20, 'Belgian'),
(21, 'Belizean'),
(22, 'Beninese'),
(23, 'Bhutanese'),
(24, 'Bolivian'),
(25, 'Bosnian'),
(26, 'Brazilian'),
(27, 'British'),
(28, 'Bruneian'),
(29, 'Bulgarian'),
(30, 'Burkinabe'),
(31, 'Burmese'),
(32, 'Burundian'),
(33, 'Cambodian'),
(34, 'Cameroonian'),
(35, 'Canadian'),
(36, 'Cape Verdean'),
(37, 'Central African'),
(38, 'Chadian'),
(39, 'Chilean'),
(40, 'Chinese'),
(41, 'Colombian'),
(42, 'Comoran'),
(43, 'Congolese'),
(44, 'Costa Rican'),
(45, 'Croatian'),
(46, 'Cuban'),
(47, 'Cypriot'),
(48, 'Czech'),
(49, 'Danish'),
(50, 'Djibouti'),
(51, 'Dominican'),
(52, 'Dutch'),
(53, 'East Timorese'),
(54, 'Ecuadorean'),
(55, 'Egyptian'),
(56, 'Emirian'),
(57, 'Equatorial Guinean'),
(58, 'Eritrean'),
(59, 'Estonian'),
(60, 'Ethiopian'),
(61, 'Fijian'),
(62, 'Filipino'),
(63, 'Finnish'),
(64, 'French'),
(65, 'Gabonese'),
(66, 'Gambian'),
(67, 'Georgian'),
(68, 'German'),
(69, 'Ghanaian'),
(70, 'Greek'),
(71, 'Grenadian'),
(72, 'Guatemalan'),
(73, 'Guinea-Bissauan'),
(74, 'Guinean'),
(75, 'Guyanese'),
(76, 'Haitian'),
(77, 'Herzegovinian'),
(78, 'Honduran'),
(79, 'Hungarian'),
(80, 'I-Kiribati'),
(81, 'Icelander'),
(82, 'Indian'),
(83, 'Indonesian'),
(84, 'Iranian'),
(85, 'Iraqi'),
(86, 'Irish'),
(87, 'Israeli'),
(88, 'Italian'),
(89, 'Ivorian'),
(90, 'Jamaican'),
(91, 'Japanese'),
(92, 'Jordanian'),
(93, 'Kazakhstani'),
(94, 'Kenyan'),
(95, 'Kittian and Nevisian'),
(96, 'Kuwaiti'),
(97, 'Kyrgyz'),
(98, 'Laotian'),
(99, 'Latvian'),
(100, 'Lebanese'),
(101, 'Liberian'),
(102, 'Libyan'),
(103, 'Liechtensteiner'),
(104, 'Lithuanian'),
(105, 'Luxembourger'),
(106, 'Macedonian'),
(107, 'Malagasy'),
(108, 'Malawian'),
(109, 'Malaysian'),
(110, 'Maldivan'),
(111, 'Malian'),
(112, 'Maltese'),
(113, 'Marshallese'),
(114, 'Mauritanian'),
(115, 'Mauritian'),
(116, 'Mexican'),
(117, 'Micronesian'),
(118, 'Moldovan'),
(119, 'Monacan'),
(120, 'Mongolian'),
(121, 'Moroccan'),
(122, 'Mosotho'),
(123, 'Motswana'),
(124, 'Mozambican'),
(125, 'Namibian'),
(126, 'Nauruan'),
(127, 'Nepalese'),
(128, 'New Zealander'),
(129, 'Nicaraguan'),
(130, 'Nigerian'),
(131, 'Nigerien'),
(132, 'North Korean'),
(133, 'Northern Irish'),
(134, 'Norwegian'),
(135, 'Omani'),
(136, 'Pakistani'),
(137, 'Palauan'),
(138, 'Panamanian'),
(139, 'Papua New Guinean'),
(140, 'Paraguayan'),
(141, 'Peruvian'),
(142, 'Polish'),
(143, 'Portuguese'),
(144, 'Qatari'),
(145, 'Romanian'),
(146, 'Russian'),
(147, 'Rwandan'),
(148, 'Saint Lucian'),
(149, 'Salvadoran'),
(150, 'Samoan'),
(151, 'San Marinese'),
(152, 'Sao Tomean'),
(153, 'Saudi'),
(154, 'Scottish'),
(155, 'Senegalese'),
(156, 'Serbian'),
(157, 'Seychellois'),
(158, 'Sierra Leonean'),
(159, 'Singaporean'),
(160, 'Slovakian'),
(161, 'Slovenian'),
(162, 'Solomon Islander'),
(163, 'Somali'),
(164, 'South African'),
(165, 'South Korean'),
(166, 'Spanish'),
(167, 'Sri Lankan'),
(168, 'Sudanese'),
(169, 'Surinamer'),
(170, 'Swazi'),
(171, 'Swedish'),
(172, 'Swiss'),
(173, 'Syrian'),
(174, 'Taiwanese'),
(175, 'Tajik'),
(176, 'Tanzanian'),
(177, 'Thai'),
(178, 'Togolese'),
(179, 'Tongan'),
(180, 'Trinidadian or Tobagonian'),
(181, 'Tunisian'),
(182, 'Turkish'),
(183, 'Tuvaluan'),
(184, 'Ugandan'),
(185, 'Ukrainian'),
(186, 'Uruguayan'),
(187, 'Uzbekistani'),
(188, 'Venezuelan'),
(189, 'Vietnamese'),
(190, 'Welsh'),
(191, 'Yemenite'),
(192, 'Zambian'),
(193, 'Zimbabwean');
INSERT INTO `WorkDays` (`id`, `name`, `status`, `country`) VALUES
(1, 'Monday', 'Full Day',NULL),
(2, 'Tuesday', 'Full Day',NULL),
(3, 'Wednesday', 'Full Day',NULL),
(4, 'Thursday', 'Full Day',NULL),
(5, 'Friday', 'Full Day',NULL),
(6, 'Saturday', 'Non-working Day',NULL),
(7, 'Sunday', 'Non-working Day',NULL);
INSERT INTO `Reports` (`id`, `name`, `details`, `parameters`, `query`, `paramOrder`, `type`) VALUES
(1, 'Employee Details Report', 'This report list all employee details and you can filter employees by department, employment status or job title', '[\r\n[ "department", {"label":"Department","type":"select2","remote-source":["CompanyStructure","id","title"],"allow-null":true}],\r\n[ "employment_status", {"label":"Employment Status","type":"select2","remote-source":["EmploymentStatus","id","name"],"allow-null":true}],\r\n[ "job_title", {"label":"Job Title","type":"select2","remote-source":["JobTitle","id","name"],"allow-null":true}]\r\n]', 'Select id, employee_id as ''Employee ID'',\r\nconcat(`first_name`,'' '',`middle_name`,'' '', `last_name`) as ''Name'',\r\n(SELECT name from Nationality where id = nationality) as ''Nationality'',\r\nbirthday as ''Birthday'',\r\ngender as ''Gender'',\r\nmarital_status as ''Marital Status'',\r\nssn_num as ''SSN Number'',\r\nnic_num as ''NIC Number'',\r\nother_id as ''Other IDs'',\r\ndriving_license as ''Driving License Number'',\r\n(SELECT name from EmploymentStatus where id = employment_status) as ''Employment Status'',\r\n(SELECT name from JobTitles where id = job_title) as ''Job Title'',\r\n(SELECT name from PayGrades where id = pay_grade) as ''Pay Grade'',\r\nwork_station_id as ''Work Station ID'',\r\naddress1 as ''Address 1'',\r\naddress2 as ''Address 2'',\r\ncity as ''City'',\r\n(SELECT name from Country where code = country) as ''Country'',\r\n(SELECT name from Province where id = province) as ''Province'',\r\npostal_code as ''Postal Code'',\r\nhome_phone as ''Home Phone'',\r\nmobile_phone as ''Mobile Phone'',\r\nwork_phone as ''Work Phone'',\r\nwork_email as ''Work Email'',\r\nprivate_email as ''Private Email'',\r\njoined_date as ''Joined Date'',\r\nconfirmation_date as ''Confirmation Date'',\r\n(SELECT title from CompanyStructures where id = department) as ''Department'',\r\n(SELECT concat(`first_name`,'' '',`middle_name`,'' '', `last_name`,'' [Employee ID:'',`employee_id`,'']'') from Employees e1 where e1.id = e.supervisor) as ''Supervisor'' \r\nFROM Employees e _where_', '["department","employment_status","job_title"]', 'Query'),
(3, 'Employee Time Entry Report', 'This report list all employee time entries by employee, date range and project', '[\r\n[ "employee", {"label":"Employee","type":"select2multi","allow-null":true,"null-label":"All Employees","remote-source":["Employee","id","first_name+last_name"]}],\r\n[ "project", {"label":"Project","type":"select","allow-null":true,"remote-source":["Project","id","name"]}],\r\n[ "date_start", {"label":"Start Date","type":"date"}],\r\n[ "date_end", {"label":"End Date","type":"date"}]\r\n]', 'EmployeeTimesheetReport', '["employee","date_start","date_end","status"]', 'Class'),
(4, 'Employee Attendance Report', 'This report list all employee attendance entries by employee and date range', '[\r\n[ "employee", {"label":"Employee","type":"select2multi","allow-null":true,"null-label":"All Employees","remote-source":["Employee","id","first_name+last_name"]}],\r\n[ "date_start", {"label":"Start Date","type":"date"}],\r\n[ "date_end", {"label":"End Date","type":"date"}]\r\n]', 'EmployeeAttendanceReport', '["employee","date_start","date_end"]', 'Class'),
(5, 'Employee Time Tracking Report', 'This report list employee working hours and attendance details for each day for a given period ', '[\r\n[ "employee", {"label":"Employee","type":"select2","allow-null":false,"remote-source":["Employee","id","first_name+last_name"]}],\r\n[ "date_start", {"label":"Start Date","type":"date"}],\r\n[ "date_end", {"label":"End Date","type":"date"}]\r\n]', 'EmployeeTimeTrackReport', '["employee","date_start","date_end"]', 'Class');
INSERT INTO `Settings` (`name`, `value`, `description`, `meta`) VALUES
('Company: Name', 'Sample Company Pvt Ltd', 'Update your company name - For updating company logo copy a file named logo.png to /app/data/ folder', ''),
('Email: Enable', '1', '0 will disable all outgoing emails from modules. Value 1 will enable outgoing emails','["value", {"label":"Value","type":"select","source":[["1","Yes"],["0","No"]]}]'),
('Email: Mode', 'SMTP', 'SMTP, PHP Mailer or Amazon SES. SMTP = send emails using local or a remote smtp server. PHP Mailer = send emails using mail function provided by php. Amazon SES = send emails trough amazon Simple Email Service.','["value", {"label":"Value","type":"select","source":[["SMTP","SMTP"],["PHP Mailer","PHP Mailer"],["SES","Amazon SES"]]}]'),
('Email: SMTP Host', 'localhost', 'SMTP host IP',''),
('Email: SMTP Authentication Required', '0', 'Is authentication required by this SMTP server','["value", {"label":"Value","type":"select","source":[["1","Yes"],["0","No"]]}]'),
('Email: SMTP User', 'none', 'SMTP user',''),
('Email: SMTP Password', 'none', 'SMTP password',''),
('Email: SMTP Port', 'none', '25',''),
('Email: Amazon Access Key ID', '', 'If email mode is Amazon SNS please provide SNS Key',''),
('Email: Amazon Secret Access Key', '', 'If email mode is Amazon SNS please provide SNS Secret',''),
('Email: Email From', 'icehrm@mydomain.com', '',''),
('System: Do not pass JSON in request', '0', 'Select Yes if you are having trouble loading data for some tables','["value", {"label":"Value","type":"select","source":[["1","Yes"],["0","No"]]}]'),
('System: Reset Modules and Permissions', '0', 'Select this to reset module and permission information in Database (If you have done any changes to meta files)','["value", {"label":"Value","type":"select","source":[["1","Yes"],["0","No"]]}]'),
('System: Add New Permissions', '0', 'Select this to add new permission changes done to meta.json file of any module','["value", {"label":"Value","type":"select","source":[["1","Yes"],["0","No"]]}]'),
('System: Debug Mode', '0', '','["value", {"label":"Value","type":"select","source":[["1","Yes"],["0","No"]]}]'),
('Projects: Make All Projects Available to Employees', '1', '','["value", {"label":"Value","type":"select","source":[["1","Yes"],["0","No"]]}]'),
('Attendance: Time-sheet Cross Check', '0', 'Only allow users to add an entry to a timesheet only if they have marked atteandance for the selected period','["value", {"label":"Value","type":"select","source":[["1","Yes"],["0","No"]]}]'),
('Api: REST Api Enabled', '0', '','["value", {"label":"Value","type":"select","source":[["0","No"],["1","Yes"]]}]');
INSERT INTO `Certifications` (`id`, `name`, `description`) VALUES
(1, 'Red Hat Certified Architect (RHCA)', 'Red Hat Certified Architect (RHCA)'),
(2, 'GIAC Secure Software Programmer -Java', 'GIAC Secure Software Programmer -Java'),
(3, 'Risk Management Professional (PMI)', 'Risk Management Professional (PMI)'),
(4, 'IT Infrastructure Library (ITIL) Expert Certification', 'IT Infrastructure Library (ITIL) Expert Certification'),
(5, 'Microsoft Certified Architect', 'Microsoft Certified Architect'),
(6, 'Oracle Exadata 11g Certified Implementation Specialist', 'Oracle Exadata 11g Certified Implementation Specialist'),
(7, 'Cisco Certified Design Professional (CCDP)', 'Cisco Certified Design Professional (CCDP)'),
(8, 'Cisco Certified Internetwork Expert (CCIE)', 'Cisco Certified Internetwork Expert (CCIE)'),
(9, 'Cisco Certified Network Associate', 'Cisco Certified Network Associate'),
(10, 'HP/Master Accredited Solutions Expert (MASE)', 'HP/Master Accredited Solutions Expert (MASE)'),
(11, 'HP/Master Accredited Systems Engineer (Master ASE)', 'HP/Master Accredited Systems Engineer (Master ASE)'),
(12, 'Certified Information Security Manager (CISM)', 'Certified Information Security Manager (CISM)'),
(13, 'Certified Information Systems Auditor (CISA)', 'Certified Information Systems Auditor (CISA)'),
(14, 'CyberSecurity Forensic Analyst (CSFA)', 'CyberSecurity Forensic Analyst (CSFA)'),
(15, 'Open Group Certified Architect (OpenCA)', 'Open Group Certified Architect (OpenCA)'),
(16, 'Oracle DBA Administrator Certified Master OCM', 'Oracle DBA Administrator Certified Master OCM'),
(17, 'Project Management Professional', 'Project Management Professional'),
(18, 'Apple Certified Support Professional', 'Apple Certified Support Professional'),
(19, 'Certified Public Accountant (CPA)', 'Certified Public Accountant (CPA)'),
(20, 'Chartered Financial Analyst', 'Chartered Financial Analyst'),
(21, 'Professional in Human Resources (PHR)', 'Professional in Human Resources (PHR)');
INSERT INTO `Clients` (`id`, `name`, `details`, `first_contact_date`, `created`, `address`, `contact_number`, `contact_email`, `company_url`, `status`) VALUES
(1, 'IceHrm Sample Client 1', NULL, '2012-01-04', '2013-01-03 05:47:33', '001, Sample Road,\nSample City, USA', '678-894-1047', 'icehrm+client1@web-stalk.com', 'http://icehrm.com', 'Active'),
(2, 'IceHrm Sample Client 2', NULL, '2012-01-04', '2013-01-03 05:47:33', '001, Sample Road,\nSample City, USA', '678-894-1047', 'icehrm+client1@web-stalk.com', 'http://icehrm.com', 'Active'),
(3, 'IceHrm Sample Client 3', NULL, '2012-01-04', '2013-01-03 05:47:33', '001, Sample Road,\nSample City, USA', '678-894-1047', 'icehrm+client1@web-stalk.com', 'http://icehrm.com', 'Active');
INSERT INTO `CompanyLoans` (`id`, `name`, `details`) VALUES
(1, 'Personal loan', 'Personal loans'),
(2, 'Educational loan', 'Educational loan');
INSERT INTO `CompanyStructures` (`id`, `title`, `description`, `address`, `type`, `country`, `parent`) VALUES
(1, 'Your Company', 'Please update your company name here. You can update, delete or add units according to your needs', '', 'Company', 'US', NULL),
(2, 'Head Office', 'US Head office', 'PO Box 001002\nSample Road, Sample Town', 'Head Office', 'US', 1),
(3, 'Marketing Department', 'Marketing Department', 'PO Box 001002\nSample Road, Sample Town', 'Department', 'US', 2);
INSERT INTO `Documents` (`id`, `name`, `details`) VALUES
(1, 'ID Copy', 'Your ID copy'),
(2, 'Degree Ceritficate', 'Degree Ceritficate'),
(3, 'Driving License', 'Driving License');
INSERT INTO `Educations` (`id`, `name`, `description`) VALUES
(1, 'Bachelors Degree', 'Bachelors Degree'),
(2, 'Diploma', 'Diploma'),
(3, 'Masters Degree', 'Masters Degree'),
(4, 'Doctorate', 'Doctorate');
INSERT INTO `HoliDays` (`id`, `name`, `dateh`, `status`) VALUES
(1, 'New Year''s Day', '2015-01-01', 'Full Day'),
(2, 'Christmas Day', '2015-12-25', 'Full Day');
INSERT INTO `JobTitles` (`id`, `code`, `name`, `description`, `specification`) VALUES
(1, 'SE', 'Software Engineer', 'The work of a software engineer typically includes designing and programming system-level software: operating systems, database systems, embedded systems and so on. They understand how both software a', 'Software Engineer'),
(2, 'ASE', 'Assistant Software Engineer', 'Assistant Software Engineer', 'Assistant Software Engineer'),
(3, 'PM', 'Project Manager', 'Project Manager', 'Project Manager'),
(4, 'QAE', 'QA Engineer', 'Quality Assurance Engineer ', 'Quality Assurance Engineer '),
(5, 'PRM', 'Product Manager', 'Product Manager', 'Product Manager'),
(6, 'AQAE', 'Assistant QA Engineer ', 'Assistant QA Engineer ', 'Assistant QA Engineer '),
(7, 'TPM', 'Technical Project Manager', 'Technical Project Manager', 'Technical Project Manager'),
(8, 'PRS', 'Pre-Sales Executive', 'Pre-Sales Executive', 'Pre-Sales Executive'),
(9, 'ME', 'Marketing Executive', 'Marketing Executive', 'Marketing Executive'),
(10, 'DH', 'Department Head', 'Department Head', 'Department Head'),
(11, 'CEO', 'Chief Executive Officer', 'Chief Executive Officer', 'Chief Executive Officer'),
(12, 'DBE', 'Database Engineer', 'Database Engineer', 'Database Engineer'),
(13, 'SA', 'Server Admin', 'Server Admin', 'Server Admin');
INSERT INTO `Languages` (`id`, `name`, `description`) VALUES
(1, 'English', 'English'),
(2, 'French', 'French'),
(3, 'German', 'German'),
(4, 'Chinese', 'Chinese');
INSERT INTO `PayGrades` (`id`, `name`, `currency`, `min_salary`, `max_salary`) VALUES
(1, 'Manager', 'SGD', '5000.00', '15000.00'),
(2, 'Executive', 'SGD', '3500.00', '7000.00'),
(3, 'Assistant ', 'SGD', '2000.00', '4000.00'),
(4, 'Administrator', 'SGD', '2000.00', '6000.00');
INSERT INTO `Projects` (`id`, `name`, `client`, `details`, `created`, `status`) VALUES
(1, 'Project 1', 3, NULL, '2013-01-03 05:53:38', 'Active'),
(2, 'Project 2', 3, NULL, '2013-01-03 05:54:22', 'Active'),
(3, 'Project 3', 1, NULL, '2013-01-03 05:55:02', 'Active'),
(4, 'Project 4', 2, NULL, '2013-01-03 05:56:16', 'Active');
INSERT INTO `Skills` (`id`, `name`, `description`) VALUES
(1, 'Programming and Application Development', 'Programming and Application Development'),
(2, 'Project Management', 'Project Management'),
(3, 'Help Desk/Technical Support', 'Help Desk/Technical Support'),
(4, 'Networking', 'Networking'),
(5, 'Databases', 'Databases'),
(6, 'Business Intelligence', 'Business Intelligence'),
(7, 'Cloud Computing', 'Cloud Computing'),
(8, 'Information Security', 'Information Security'),
(9, 'HTML Skills', 'HTML Skills'),
(10, 'Graphic Designing', 'Graphic Designing');
INSERT INTO `EmploymentStatus` (`id`, `name`, `description`) VALUES
(1, 'Full Time Contract', 'Full Time Contract'),
(2, 'Full Time Internship', 'Full Time Internship'),
(3, 'Full Time Permanent', 'Full Time Permanent'),
(4, 'Part Time Contract', 'Part Time Contract'),
(5, 'Part Time Internship', 'Part Time Internship'),
(6, 'Part Time Permanent', 'Part Time Permanent');
INSERT INTO `FieldNameMappings` (`type`, `name`, `textOrig`, `textMapped`, `display`) VALUES
('Employee', 'employee_id', 'Employee Number', 'Employee Number', 'Table and Form'),
('Employee', 'first_name', 'First Name', 'First Name', 'Table and Form'),
('Employee', 'middle_name', 'Middle Name', 'Middle Name', 'Form'),
('Employee', 'last_name', 'Last Name', 'Last Name', 'Table and Form'),
('Employee', 'nationality', 'Nationality', 'Nationality', 'Form'),
('Employee', 'ethnicity', 'Ethnicity', 'Ethnicity', 'Form'),
('Employee', 'immigration_status', 'Immigration Status', 'Immigration Status', 'Form'),
('Employee', 'birthday', 'Date of Birth', 'Date of Birth', 'Form'),
('Employee', 'gender', 'Gender', 'Gender', 'Form'),
('Employee', 'marital_status', 'Marital Status', 'Marital Status', 'Form'),
('Employee', 'ssn_num', 'SSN/NRIC', 'SSN/NRIC', 'Form'),
('Employee', 'nic_num', 'NIC', 'NIC', 'Form'),
('Employee', 'other_id', 'Other ID', 'Other ID', 'Form'),
('Employee', 'driving_license', 'Driving License No', 'Driving License No', 'Form'),
('Employee', 'employment_status', 'Employment Status', 'Employment Status', 'Form'),
('Employee', 'job_title', 'Job Title', 'Job Title', 'Form'),
('Employee', 'pay_grade', 'Pay Grade', 'Pay Grade', 'Form'),
('Employee', 'work_station_id', 'Work Station Id', 'Work Station Id', 'Form'),
('Employee', 'address1', 'Address Line 1', 'Address Line 1', 'Form'),
('Employee', 'address2', 'Address Line 2', 'Address Line 2', 'Form'),
('Employee', 'city', 'City', 'City', 'Form'),
('Employee', 'country', 'Country', 'Country', 'Form'),
('Employee', 'province', 'Province', 'Province', 'Form'),
('Employee', 'postal_code', 'Postal/Zip Code', 'Postal/Zip Code', 'Form'),
('Employee', 'home_phone', 'Home Phone', 'Home Phone', 'Form'),
('Employee', 'mobile_phone', 'Mobile Phone', 'Mobile Phone', 'Table and Form'),
('Employee', 'work_phone', 'Work Phone', 'Work Phone', 'Form'),
('Employee', 'work_email', 'Work Email', 'Work Email', 'Form'),
('Employee', 'private_email', 'Private Email', 'Private Email', 'Form'),
('Employee', 'joined_date', 'Joined Date', 'Joined Date', 'Form'),
('Employee', 'confirmation_date', 'Confirmation Date', 'Confirmation Date', 'Form'),
('Employee', 'termination_date', 'Termination Date', 'Termination Date', 'Form'),
('Employee', 'supervisor', 'Supervisor', 'Supervisor', 'Table and Form'),
('Employee', 'department', 'Department', 'Department', 'Table and Form'),
('Employee', 'notes', 'Notes', 'Notes', 'Form');
INSERT INTO `CustomFields` (`type`, `name`, `data`,`display`) VALUES
('Employee', 'custom1', '', 'Hidden'),
('Employee', 'custom2', '', 'Hidden'),
('Employee', 'custom3', '', 'Hidden'),
('Employee', 'custom4', '', 'Hidden'),
('Employee', 'custom5', '', 'Hidden'),
('Employee', 'custom6', '', 'Hidden'),
('Employee', 'custom7', '', 'Hidden'),
('Employee', 'custom8', '', 'Hidden'),
('Employee', 'custom9', '', 'Hidden'),
('Employee', 'custom10', '', 'Hidden');
INSERT INTO `Employees` (`id`, `employee_id`, `first_name`, `middle_name`, `last_name`, `nationality`, `birthday`, `gender`, `marital_status`, `ssn_num`, `nic_num`, `other_id`, `driving_license`, `driving_license_exp_date`, `employment_status`, `job_title`, `pay_grade`, `work_station_id`, `address1`, `address2`, `city`, `country`, `province`, `postal_code`, `home_phone`, `mobile_phone`, `work_phone`, `work_email`, `private_email`, `joined_date`, `confirmation_date`, `supervisor`, `department`, `custom1`, `custom2`, `custom3`, `custom4`, `custom5`, `custom6`, `custom7`, `custom8`, `custom9`, `custom10`) VALUES
(1, 'EMP001', 'IceHrm', 'Sample', 'Employee', 35, '1984-03-17 18:30:00', 'Male', 'Married', '', '294-38-3535', '294-38-3535', '', NULL, 3, 11, 2, '', '2772 Flynn Street', 'Willoughby', 'Willoughby', 'US', 41, '44094', '440-953-4578', '440-953-4578', '440-953-4578', 'icehrm+admin@web-stalk.com', 'icehrm+admin@web-stalk.com', '2005-08-03 18:00:00', '0000-00-00 00:00:00', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
INSERT INTO `UserRoles` VALUES
(1,'Report Manager'),
(2,'Attendance Manager');
INSERT INTO `Users` VALUES
(1,'admin','icehrm+admin@web-stalk.com','21232f297a57a5a743894a0e4a801fc3',1,NULL,'Admin','',NULL,NULL,NULL);
INSERT INTO `SalaryComponentType` (`id`,`code`, `name`) VALUES
(1,'B001', 'Basic'),
(2,'B002', 'Allowance');
INSERT INTO `SalaryComponent` VALUES
(1,'Basic Salary', 1,''),(2,'Fixed Allowance', 1,''),(3,'Car Allowance', 2,''),(4,'Telephone Allowance', 2,'');

View File

@@ -0,0 +1,93 @@
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
INSERT INTO `CompanyStructures` (`id`, `title`, `description`, `address`, `type`, `country`, `parent`) VALUES
(4, 'Development Center', 'Development Center', 'PO Box 001002\nSample Road, Sample Town', 'Regional Office', 'SG', 1),
(5, 'Engineering Department', 'Engineering Department', 'PO Box 001002\nSample Road, Sample Town, 341234', 'Department', 'SG', 4),
(6, 'Development Team', 'Development Team', '', 'Unit', 'SG', 5),
(7, 'QA Team', 'QA Team', '', 'Unit', 'SG', 5),
(8, 'Server Administration', 'Server Administration', '', 'Unit', 'SG', 5),
(9, 'Administration & HR', 'Administration and Human Resource', '', 'Department', 'SG', 4);
INSERT INTO `Employees` (`id`, `employee_id`, `first_name`, `middle_name`, `last_name`, `nationality`, `birthday`, `gender`, `marital_status`, `ssn_num`, `nic_num`, `other_id`, `driving_license`, `driving_license_exp_date`, `employment_status`, `job_title`, `pay_grade`, `work_station_id`, `address1`, `address2`, `city`, `country`, `province`, `postal_code`, `home_phone`, `mobile_phone`, `work_phone`, `work_email`, `private_email`, `joined_date`, `confirmation_date`, `supervisor`, `department`, `custom1`, `custom2`, `custom3`, `custom4`, `custom5`, `custom6`, `custom7`, `custom8`, `custom9`, `custom10`) VALUES
(2, 'EMP002', 'Lala', 'Nadila ', 'Lamees', 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+manager@web-stalk.com', 'icehrm+manager@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(3, 'EMP003', 'Sofia', '', 'O''Sullivan', 4, '1975-08-28 18:30:00', 'Female', 'Married', '', '768-20-4394', '768-20-4394', '', NULL, 3, 10, 2, '', '2792 Trails End Road', 'Fort Lauderdale', 'Fort Lauderdale', 'US', 12, '33308', '954-388-3340', '954-388-3340', '954-388-3340', 'icehrm+user1@web-stalk.com', 'icehrm+user1@web-stalk.com', '2010-02-08 18:30:00', '0000-00-00 00:00:00', 2, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(4, 'EMP004', 'Taylor', '', 'Holmes', 10, '1979-07-15 18:30:00', 'Male', 'Single', '158-06-2292', '158-06-2292', '', '', NULL, 1, 5, 2, '', '1164', 'Walnut Avenue', 'Rochelle Park', 'US', 35, '7662', '201-474-8048', '201-474-8048', '201-474-8048', 'icehrm+user2@web-stalk.com', 'icehrm+user2@web-stalk.com', '2006-07-12 18:30:00', '0000-00-00 00:00:00', 2, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
INSERT INTO `EmergencyContacts` (`id`, `employee`, `name`, `relationship`, `home_phone`, `work_phone`, `mobile_phone`) VALUES
(1, 1, 'Emma Owns', 'Mother', '+874463422', '+874463422', '+874463422'),
(2, 2, 'Casey Watson', 'Sister', '231-453-876', '231-453-876', '231-453-876');
INSERT INTO `EmployeeCertifications` (`id`, `certification_id`, `employee`, `institute`, `date_start`, `date_end`) VALUES
(1, 21, 1, 'PHR', '2012-06-04', '2016-06-13'),
(2, 19, 1, 'CPA', '2010-02-16', '2019-02-28'),
(3, 17, 2, 'PMP', '2011-06-14', '2019-10-20'),
(4, 3, 2, 'PMI', '2004-06-08', '2017-09-14');
INSERT INTO `EmployeeCompanyLoans` (`id`, `employee`, `loan`, `start_date`, `last_installment_date`, `period_months`, `amount`, `monthly_installment`, `status`, `details`) VALUES
(1, 2, 2, '2013-02-05', '0000-00-00', 12, '12000.00', '1059.45', 'Approved', '');
INSERT INTO `EmployeeDependents` (`id`, `employee`, `name`, `relationship`, `dob`, `id_number`) VALUES
(1, 1, 'Emma Owns', 'Parent', '1940-06-11', '475209UHB'),
(2, 1, 'Mica Singroo', 'Other', '2000-06-13', '');
INSERT INTO `EmployeeDocuments` (`id`, `employee`, `document`, `date_added`, `valid_until`, `status`, `details`) VALUES
(1, 2, 2, '2013-01-08', '0000-00-00', 'Active', 'zxczx');
INSERT INTO `EmployeeEducations` (`id`, `education_id`, `employee`, `institute`, `date_start`, `date_end`) VALUES
(1, 1, 1, 'National University of Turky', '2004-02-03', '2006-06-13'),
(2, 1, 2, 'MIT', '1995-02-21', '1999-10-12');
INSERT INTO `EmployeeLanguages` (`id`, `language_id`, `employee`, `reading`, `speaking`, `writing`, `understanding`) VALUES
(1, 1, 1, 'Full Professional Proficiency', 'Full Professional Proficiency', 'Full Professional Proficiency', 'Native or Bilingual Proficiency'),
(2, 1, 2, 'Native or Bilingual Proficiency', 'Native or Bilingual Proficiency', 'Native or Bilingual Proficiency', 'Native or Bilingual Proficiency'),
(3, 2, 2, 'Limited Working Proficiency', 'Professional Working Proficiency', 'Limited Working Proficiency', 'Professional Working Proficiency');
INSERT INTO `EmployeeProjects` (`id`, `employee`, `project`, `date_start`, `date_end`, `status`, `details`) VALUES
(1, 2, 1, '2010-03-18', '2014-03-06', 'Inactive', ''),
(3, 2, 2, '2013-02-05', '2013-02-11', 'Current', ''),
(5, 2, 3, '2013-02-24', '0000-00-00', 'Current', '');
INSERT INTO `EmployeeSalary` (`id`, `employee`, `component`, `pay_frequency`, `currency`, `amount`, `details`) VALUES
(1, 1, 'Basic', 'Monthly', 131, '2700.00', ''),
(2, 2, 'Basic Salary', 'Monthly', 151, '12000.00', ''),
(3, 2, 'Travelling Allowance', 'Monthly', 131, '5000.00', '');
INSERT INTO `EmployeeSkills` (`id`, `skill_id`, `employee`, `details`) VALUES
(1, 9, 1, 'Creating web sites'),
(2, 6, 2, 'Certified Business Intelligence Professional');
INSERT INTO `Users` (`id`, `username`, `email`, `password`, `employee`, `user_level`, `last_login`, `last_update`, `created`) VALUES
(2, 'manager', 'icehrm+manager@web-stalk.com', '4048bb914a704a0728549a26b92d8550', 2, 'Manager', '2013-01-03 02:47:37', '2013-01-03 02:47:37', '2013-01-03 02:47:37'),
(3, 'user1', 'icehrm+user1@web-stalk.com', '4048bb914a704a0728549a26b92d8550', 3, 'Employee', '2013-01-03 02:48:32', '2013-01-03 02:48:32', '2013-01-03 02:48:32'),
(4, 'user2', 'icehrm+user2@web-stalk.com', '4048bb914a704a0728549a26b92d8550', 4, 'Employee', '2013-01-03 02:58:55', '2013-01-03 02:58:55', '2013-01-03 02:58:55');
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;

View File

@@ -0,0 +1,248 @@
/* Upgrade v10.2 to v11.0 */
ALTER TABLE `LeaveTypes` ADD COLUMN `leave_color` varchar(10) NULL;
create table `RestAccessTokens` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`userId` bigint(20) NOT NULL,
`hash` varchar(32) default null,
`token` varchar(500) default null,
`created` DATETIME default '0000-00-00 00:00:00',
`updated` DATETIME default '0000-00-00 00:00:00',
primary key (`id`),
unique key `userId` (`userId`)
) engine=innodb default charset=utf8;
REPLACE INTO `Settings` (`name`, `value`, `description`, `meta`) VALUES
('Api: REST Api Enabled', '0', '','["value", {"label":"Value","type":"select","source":[["0","No"],["1","Yes"]]}]');
ALTER TABLE Employees ADD COLUMN `status` enum('Active','Terminated') default 'Active';
ALTER TABLE EmployeeLeaves MODIFY COLUMN `status` enum('Approved','Pending','Rejected','Cancellation Requested','Cancelled') default 'Pending';
ALTER TABLE EmployeeLeaveLog MODIFY COLUMN `status_from` enum('Approved','Pending','Rejected','Cancellation Requested','Cancelled') default 'Pending';
ALTER TABLE EmployeeLeaveLog MODIFY COLUMN `status_to` enum('Approved','Pending','Rejected','Cancellation Requested','Cancelled') default 'Pending';
create table `ArchivedEmployees` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`ref_id` bigint(20) NOT NULL,
`employee_id` varchar(50) default null,
`first_name` varchar(100) default '' not null,
`last_name` varchar(100) default '' not null,
`gender` enum('Male','Female') default NULL,
`ssn_num` varchar(100) default '',
`nic_num` varchar(100) default '',
`other_id` varchar(100) default '',
`work_email` varchar(100) default null,
`joined_date` DATETIME default '0000-00-00 00:00:00',
`confirmation_date` DATETIME default '0000-00-00 00:00:00',
`supervisor` bigint(20) default null,
`department` bigint(20) default null,
`termination_date` DATETIME default '0000-00-00 00:00:00',
`notes` text default null,
`data` longtext default null,
primary key (`id`)
) engine=innodb default charset=utf8;
/* Upgrade v11.0 to v11.1 */
create table `FieldNameMappings` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`type` varchar(20) NOT NULL,
`name` varchar(20) NOT NULL,
`textOrig` varchar(200) default null,
`textMapped` varchar(200) default null,
`display` enum('Form','Table and Form','Hidden') default 'Form',
`created` DATETIME default '0000-00-00 00:00:00',
`updated` DATETIME default '0000-00-00 00:00:00',
primary key (`id`)
) engine=innodb default charset=utf8;
INSERT INTO `FieldNameMappings` (`type`, `name`, `textOrig`, `textMapped`, `display`) VALUES
('Employee', 'employee_id', 'Employee Number', 'Employee Number', 'Table and Form'),
('Employee', 'first_name', 'First Name', 'First Name', 'Table and Form'),
('Employee', 'middle_name', 'Middle Name', 'Middle Name', 'Form'),
('Employee', 'last_name', 'Last Name', 'Last Name', 'Table and Form'),
('Employee', 'nationality', 'Nationality', 'Nationality', 'Form'),
('Employee', 'ethnicity', 'Ethnicity', 'Ethnicity', 'Form'),
('Employee', 'immigration_status', 'Immigration Status', 'Immigration Status', 'Form'),
('Employee', 'birthday', 'Date of Birth', 'Date of Birth', 'Form'),
('Employee', 'gender', 'Gender', 'Gender', 'Form'),
('Employee', 'marital_status', 'Marital Status', 'Marital Status', 'Form'),
('Employee', 'ssn_num', 'SSN/NRIC', 'SSN/NRIC', 'Form'),
('Employee', 'nic_num', 'NIC', 'NIC', 'Form'),
('Employee', 'other_id', 'Other ID', 'Other ID', 'Form'),
('Employee', 'driving_license', 'Driving License No', 'Driving License No', 'Form'),
('Employee', 'employment_status', 'Employment Status', 'Employment Status', 'Form'),
('Employee', 'job_title', 'Job Title', 'Job Title', 'Form'),
('Employee', 'pay_grade', 'Pay Grade', 'Pay Grade', 'Form'),
('Employee', 'work_station_id', 'Work Station Id', 'Work Station Id', 'Form'),
('Employee', 'address1', 'Address Line 1', 'Address Line 1', 'Form'),
('Employee', 'address2', 'Address Line 2', 'Address Line 2', 'Form'),
('Employee', 'city', 'City', 'City', 'Form'),
('Employee', 'country', 'Country', 'Country', 'Form'),
('Employee', 'province', 'Province', 'Province', 'Form'),
('Employee', 'postal_code', 'Postal/Zip Code', 'Postal/Zip Code', 'Form'),
('Employee', 'home_phone', 'Home Phone', 'Home Phone', 'Form'),
('Employee', 'mobile_phone', 'Mobile Phone', 'Mobile Phone', 'Table and Form'),
('Employee', 'work_phone', 'Work Phone', 'Work Phone', 'Form'),
('Employee', 'work_email', 'Work Email', 'Work Email', 'Form'),
('Employee', 'private_email', 'Private Email', 'Private Email', 'Form'),
('Employee', 'joined_date', 'Joined Date', 'Joined Date', 'Form'),
('Employee', 'confirmation_date', 'Confirmation Date', 'Confirmation Date', 'Form'),
('Employee', 'termination_date', 'Termination Date', 'Termination Date', 'Form'),
('Employee', 'supervisor', 'Supervisor', 'Supervisor', 'Table and Form'),
('Employee', 'department', 'Department', 'Department', 'Table and Form'),
('Employee', 'notes', 'Notes', 'Notes', 'Form');
create table `CustomFields` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`type` varchar(20) NOT NULL,
`name` varchar(20) NOT NULL,
`data` text default null,
`display` enum('Form','Table and Form','Hidden') default 'Form',
`created` DATETIME default '0000-00-00 00:00:00',
`updated` DATETIME default '0000-00-00 00:00:00',
primary key (`id`)
) engine=innodb default charset=utf8;
INSERT INTO `CustomFields` (`type`, `name`, `data`,`display`) VALUES
('Employee', 'custom1', '', 'Hidden'),
('Employee', 'custom2', '', 'Hidden'),
('Employee', 'custom3', '', 'Hidden'),
('Employee', 'custom4', '', 'Hidden'),
('Employee', 'custom5', '', 'Hidden'),
('Employee', 'custom6', '', 'Hidden'),
('Employee', 'custom7', '', 'Hidden'),
('Employee', 'custom8', '', 'Hidden'),
('Employee', 'custom9', '', 'Hidden'),
('Employee', 'custom10', '', 'Hidden');
Alter table `Employees` MODIFY COLUMN `middle_name` varchar(100) default null;
Alter table `Employees` MODIFY COLUMN `last_name` varchar(100) default null;
Alter table `Employees` MODIFY COLUMN `ssn_num` varchar(100) default NULL;
Alter table `Employees` MODIFY COLUMN `nic_num` varchar(100) default NULL;
Alter table `Employees` MODIFY COLUMN `other_id` varchar(100) default NULL;
Alter table `Employees` MODIFY COLUMN `driving_license` varchar(100) default NULL;
Alter table `Employees` MODIFY COLUMN `work_station_id` varchar(100) default NULL;
Alter table `Employees` MODIFY COLUMN `address1` varchar(100) default NULL;
Alter table `Employees` MODIFY COLUMN `address2` varchar(100) default NULL;
Alter table `Employees` MODIFY COLUMN `city` varchar(150) default NULL;
Alter table `Employees` ADD COLUMN `ethnicity` bigint(20) default null;
Alter table `Employees` ADD COLUMN `immigration_status` bigint(20) default null;
Alter table `EmployeeSalary` MODIFY COLUMN `component` bigint(20) NOT NULL;
Alter table `EmployeeSalary` MODIFY COLUMN `currency` bigint(20) NULL;
INSERT INTO `SalaryComponentType` (`id`,`code`, `name`) VALUES
(1,'B001', 'Basic'),
(2,'B002', 'Allowance');
INSERT INTO `SalaryComponent` VALUES
(1,'Basic Salary', 1,''),(2,'Fixed Allowance', 1,''),(3,'Car Allowance', 2,''),(4,'Telephone Allowance', 2,'');
/* Upgrade v11.1 to v12.0 */
ALTER TABLE Users ADD COLUMN user_roles text null;
ALTER TABLE Users ADD COLUMN `default_module` bigint(20) null after `employee`;
ALTER TABLE Modules ADD COLUMN user_roles text null AFTER `user_levels`;
ALTER TABLE Modules ADD COLUMN label varchar(100) NOT NULL AFTER `name`;
create table `UserRoles` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`name` varchar(100) default null,
primary key (`id`),
unique key `name` (`name`)
) engine=innodb default charset=utf8;
ALTER TABLE `Users` CHANGE `user_level` `user_level` enum('Admin','Employee','Manager','Other') default NULL;
create table `EmployeeEducationsTemp` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`education_id` bigint(20) NULL,
`employee` bigint(20) NOT NULL,
`institute` varchar(400) default null,
`date_start` date default '0000-00-00',
`date_end` date default '0000-00-00',
primary key (`id`)
) engine=innodb default charset=utf8;
insert into EmployeeEducationsTemp select * from EmployeeEducations;
drop table EmployeeEducations;
create table `EmployeeEducations` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`education_id` bigint(20) NULL,
`employee` bigint(20) NOT NULL,
`institute` varchar(400) default null,
`date_start` date default '0000-00-00',
`date_end` date default '0000-00-00',
CONSTRAINT `Fk_EmployeeEducations_Educations` FOREIGN KEY (`education_id`) REFERENCES `Educations` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
CONSTRAINT `Fk_EmployeeEducations_Employee` FOREIGN KEY (`employee`) REFERENCES `Employees` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
primary key (`id`)
) engine=innodb default charset=utf8;
insert into EmployeeEducations select * from EmployeeEducationsTemp;
drop table EmployeeEducationsTemp;
UPDATE `Settings` set value = '1' where name = 'System: Reset Modules and Permissions';
UPDATE `Settings` set value = '1' where name = 'System: Add New Permissions';
create table `SalaryComponentType` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`code` varchar(10) NOT NULL,
`name` varchar(100) NOT NULL,
primary key (`id`)
) engine=innodb default charset=utf8;
create table `SalaryComponent` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`name` varchar(100) NOT NULL,
`componentType` bigint(20) NULL,
`details` text default null,
CONSTRAINT `Fk_SalaryComponent_SalaryComponentType` FOREIGN KEY (`componentType`) REFERENCES `SalaryComponentType` (`id`) ON DELETE SET NULL ON UPDATE CASCADE,
primary key (`id`)
) engine=innodb default charset=utf8;
create table `ImmigrationStatus` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`name` varchar(100) NOT NULL,
primary key (`id`)
) engine=innodb default charset=utf8;
create table `Ethnicity` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`name` varchar(100) NOT NULL,
primary key (`id`)
) engine=innodb default charset=utf8;
create table `EmployeeImmigrationStatus` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`employee` bigint(20) NOT NULL,
`status` bigint(20) NOT NULL,
CONSTRAINT `Fk_EmployeeImmigrationStatus_Employee` FOREIGN KEY (`employee`) REFERENCES `Employees` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
CONSTRAINT `Fk_EmployeeImmigrationStatus_Type` FOREIGN KEY (`status`) REFERENCES `ImmigrationStatus` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
primary key (`id`)
) engine=innodb default charset=utf8;
create table `EmployeeEthnicity` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`employee` bigint(20) NOT NULL,
`ethnicity` bigint(20) NOT NULL,
CONSTRAINT `Fk_EmployeeEthnicity_Employee` FOREIGN KEY (`employee`) REFERENCES `Employees` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
CONSTRAINT `Fk_EmployeeEthnicity_Ethnicity` FOREIGN KEY (`ethnicity`) REFERENCES `Ethnicity` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
primary key (`id`)
) engine=innodb default charset=utf8;

View File

@@ -0,0 +1,775 @@
create table `CompanyStructures` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`title` tinytext not null,
`description` text not null,
`address` text default NULL,
`type` enum('Company','Head Office','Regional Office','Department','Unit','Sub Unit','Other') default NULL,
`country` varchar(2) not null default '0',
`parent` bigint(20) NULL,
CONSTRAINT `Fk_CompanyStructures_Own` FOREIGN KEY (`parent`) REFERENCES `CompanyStructures` (`id`),
primary key (`id`)
) engine=innodb default charset=utf8;
create table `Country` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`code` char(2) not null default '',
`namecap` varchar(80) null default '',
`name` varchar(80) not null default '',
`iso3` char(3) default null,
`numcode` smallint(6) default null,
UNIQUE KEY `code` (`code`),
primary key (`id`)
) engine=innodb default charset=utf8;
create table `Province` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`name` varchar(40) not null default '',
`code` char(2) not null default '',
`country` char(2) not null default 'US',
CONSTRAINT `Fk_Province_Country` FOREIGN KEY (`country`) REFERENCES `Country` (`code`),
primary key (`id`)
) engine=innodb default charset=utf8;
create table `CurrencyTypes` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`code` varchar(3) not null default '',
`name` varchar(70) not null default '',
primary key (`id`),
UNIQUE KEY `CurrencyTypes_code` (`code`)
) engine=innodb default charset=utf8;
create table `PayGrades` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`name` varchar(100) default null,
`currency` varchar(3) not null,
`min_salary` decimal(12,2) DEFAULT 0.00,
`max_salary` decimal(12,2) DEFAULT 0.00,
CONSTRAINT `Fk_PayGrades_CurrencyTypes` FOREIGN KEY (`currency`) REFERENCES `CurrencyTypes` (`code`),
primary key(`id`)
) engine=innodb default charset=utf8;
create table `JobTitles` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`code` varchar(10) not null default '',
`name` varchar(100) default null,
`description` varchar(200) default null,
`specification` varchar(400) default null,
primary key(`id`)
) engine=innodb default charset=utf8;
create table `EmploymentStatus` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`name` varchar(100) default null,
`description` varchar(400) default null,
primary key (`id`)
) engine=innodb default charset=utf8;
create table `Skills` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`name` varchar(100) default null,
`description` varchar(400) default null,
primary key (`id`)
) engine=innodb default charset=utf8;
create table `Educations` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`name` varchar(100) default null,
`description` varchar(400) default null,
primary key (`id`)
) engine=innodb default charset=utf8;
create table `Certifications` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`name` varchar(100) default null,
`description` varchar(400) default null,
primary key (`id`)
) engine=innodb default charset=utf8;
create table `Languages` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`name` varchar(100) default null,
`description` varchar(400) default null,
primary key (`id`)
) engine=innodb default charset=utf8;
create table `Nationality` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`name` varchar(100) default null,
primary key (`id`)
) engine=innodb default charset=utf8;
create table `Employees` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`employee_id` varchar(50) default null,
`first_name` varchar(100) default '' not null,
`middle_name` varchar(100) default null,
`last_name` varchar(100) default null,
`nationality` bigint(20) default null,
`birthday` DATETIME default '0000-00-00 00:00:00',
`gender` enum('Male','Female') default NULL,
`marital_status` enum('Married','Single','Divorced','Widowed','Other') default NULL,
`ssn_num` varchar(100) default NULL,
`nic_num` varchar(100) default NULL,
`other_id` varchar(100) default NULL,
`driving_license` varchar(100) default NULL,
`driving_license_exp_date` date default '0000-00-00',
`employment_status` bigint(20) default null,
`job_title` bigint(20) default null,
`pay_grade` bigint(20) null,
`work_station_id` varchar(100) default NULL,
`address1` varchar(100) default NULL,
`address2` varchar(100) default NULL,
`city` varchar(150) default NULL,
`country` char(2) default null,
`province` bigint(20) default null,
`postal_code` varchar(20) default null,
`home_phone` varchar(50) default null,
`mobile_phone` varchar(50) default null,
`work_phone` varchar(50) default null,
`work_email` varchar(100) default null,
`private_email` varchar(100) default null,
`joined_date` DATETIME default '0000-00-00 00:00:00',
`confirmation_date` DATETIME default '0000-00-00 00:00:00',
`supervisor` bigint(20) default null,
`department` bigint(20) default null,
`custom1` varchar(250) default null,
`custom2` varchar(250) default null,
`custom3` varchar(250) default null,
`custom4` varchar(250) default null,
`custom5` varchar(250) default null,
`custom6` varchar(250) default null,
`custom7` varchar(250) default null,
`custom8` varchar(250) default null,
`custom9` varchar(250) default null,
`custom10` varchar(250) default null,
`termination_date` DATETIME default '0000-00-00 00:00:00',
`notes` text default null,
`status` enum('Active','Terminated') default 'Active',
`ethnicity` bigint(20) default null,
`immigration_status` bigint(20) default null,
CONSTRAINT `Fk_Employee_Nationality` FOREIGN KEY (`nationality`) REFERENCES `Nationality` (`id`) ON DELETE SET NULL ON UPDATE CASCADE,
CONSTRAINT `Fk_Employee_JobTitle` FOREIGN KEY (`job_title`) REFERENCES `JobTitles` (`id`) ON DELETE SET NULL ON UPDATE CASCADE,
CONSTRAINT `Fk_Employee_EmploymentStatus` FOREIGN KEY (`employment_status`) REFERENCES `EmploymentStatus` (`id`) ON DELETE SET NULL ON UPDATE CASCADE,
CONSTRAINT `Fk_Employee_Country` FOREIGN KEY (`country`) REFERENCES `Country` (`code`) ON DELETE SET NULL ON UPDATE CASCADE,
CONSTRAINT `Fk_Employee_Province` FOREIGN KEY (`province`) REFERENCES `Province` (`id`) ON DELETE SET NULL ON UPDATE CASCADE,
CONSTRAINT `Fk_Employee_Supervisor` FOREIGN KEY (`supervisor`) REFERENCES `Employees` (`id`) ON DELETE SET NULL ON UPDATE CASCADE,
CONSTRAINT `Fk_Employee_CompanyStructures` FOREIGN KEY (`department`) REFERENCES `CompanyStructures` (`id`) ON DELETE SET NULL ON UPDATE CASCADE,
CONSTRAINT `Fk_Employee_PayGrades` FOREIGN KEY (`pay_grade`) REFERENCES `PayGrades` (`id`) ON DELETE SET NULL ON UPDATE CASCADE,
primary key (`id`),
unique key `employee_id` (`employee_id`)
) engine=innodb default charset=utf8;
create table `ArchivedEmployees` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`ref_id` bigint(20) NOT NULL,
`employee_id` varchar(50) default null,
`first_name` varchar(100) default '' not null,
`last_name` varchar(100) default '' not null,
`gender` enum('Male','Female') default NULL,
`ssn_num` varchar(100) default '',
`nic_num` varchar(100) default '',
`other_id` varchar(100) default '',
`work_email` varchar(100) default null,
`joined_date` DATETIME default '0000-00-00 00:00:00',
`confirmation_date` DATETIME default '0000-00-00 00:00:00',
`supervisor` bigint(20) default null,
`department` bigint(20) default null,
`termination_date` DATETIME default '0000-00-00 00:00:00',
`notes` text default null,
`data` longtext default null,
primary key (`id`)
) engine=innodb default charset=utf8;
create table `UserRoles` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`name` varchar(100) default null,
primary key (`id`),
unique key `name` (`name`)
) engine=innodb default charset=utf8;
create table `Users` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`username` varchar(100) default null,
`email` varchar(100) default null,
`password` varchar(100) default null,
`employee` bigint(20) null,
`default_module` bigint(20) null,
`user_level` enum('Admin','Employee','Manager','Other') default NULL,
`user_roles` text null,
`last_login` timestamp default '0000-00-00 00:00:00',
`last_update` timestamp default '0000-00-00 00:00:00',
`created` timestamp default '0000-00-00 00:00:00',
CONSTRAINT `Fk_User_Employee` FOREIGN KEY (`employee`) REFERENCES `Employees` (`id`) ON DELETE SET NULL ON UPDATE CASCADE,
primary key (`id`),
unique key `username` (`username`)
) engine=innodb default charset=utf8;
create table `EmployeeSkills` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`skill_id` bigint(20) NULL,
`employee` bigint(20) NOT NULL,
`details` varchar(400) default null,
CONSTRAINT `Fk_EmployeeSkills_Skills` FOREIGN KEY (`skill_id`) REFERENCES `Skills` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
CONSTRAINT `Fk_EmployeeSkills_Employee` FOREIGN KEY (`employee`) REFERENCES `Employees` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
primary key (`id`),
unique key (`employee`,`skill_id`)
) engine=innodb default charset=utf8;
create table `EmployeeEducations` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`education_id` bigint(20) NULL,
`employee` bigint(20) NOT NULL,
`institute` varchar(400) default null,
`date_start` date default '0000-00-00',
`date_end` date default '0000-00-00',
CONSTRAINT `Fk_EmployeeEducations_Educations` FOREIGN KEY (`education_id`) REFERENCES `Educations` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
CONSTRAINT `Fk_EmployeeEducations_Employee` FOREIGN KEY (`employee`) REFERENCES `Employees` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
primary key (`id`)
) engine=innodb default charset=utf8;
create table `EmployeeCertifications` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`certification_id` bigint(20) NULL,
`employee` bigint(20) NOT NULL,
`institute` varchar(400) default null,
`date_start` date default '0000-00-00',
`date_end` date default '0000-00-00',
CONSTRAINT `Fk_EmployeeCertifications_Certifications` FOREIGN KEY (`certification_id`) REFERENCES `Certifications` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
CONSTRAINT `Fk_EmployeeCertifications_Employee` FOREIGN KEY (`employee`) REFERENCES `Employees` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
primary key (`id`),
unique key (`employee`,`certification_id`)
) engine=innodb default charset=utf8;
create table `EmployeeLanguages` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`language_id` bigint(20) NULL,
`employee` bigint(20) NOT NULL,
`reading` enum('Elementary Proficiency','Limited Working Proficiency','Professional Working Proficiency','Full Professional Proficiency','Native or Bilingual Proficiency') default NULL,
`speaking` enum('Elementary Proficiency','Limited Working Proficiency','Professional Working Proficiency','Full Professional Proficiency','Native or Bilingual Proficiency') default NULL,
`writing` enum('Elementary Proficiency','Limited Working Proficiency','Professional Working Proficiency','Full Professional Proficiency','Native or Bilingual Proficiency') default NULL,
`understanding` enum('Elementary Proficiency','Limited Working Proficiency','Professional Working Proficiency','Full Professional Proficiency','Native or Bilingual Proficiency') default NULL,
CONSTRAINT `Fk_EmployeeLanguages_Languages` FOREIGN KEY (`language_id`) REFERENCES `Languages` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
CONSTRAINT `Fk_EmployeeLanguages_Employee` FOREIGN KEY (`employee`) REFERENCES `Employees` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
primary key (`id`),
unique key (`employee`,`language_id`)
) engine=innodb default charset=utf8;
create table `EmergencyContacts` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`employee` bigint(20) NOT NULL,
`name` varchar(100) NOT NULL,
`relationship` varchar(100) default null,
`home_phone` varchar(15) default null,
`work_phone` varchar(15) default null,
`mobile_phone` varchar(15) default null,
CONSTRAINT `Fk_EmergencyContacts_Employee` FOREIGN KEY (`employee`) REFERENCES `Employees` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
primary key (`id`)
) engine=innodb default charset=utf8;
create table `EmployeeDependents` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`employee` bigint(20) NOT NULL,
`name` varchar(100) NOT NULL,
`relationship` enum('Child','Spouse','Parent','Other') default NULL,
`dob` date default '0000-00-00',
`id_number` varchar(25) default null,
CONSTRAINT `Fk_EmployeeDependents_Employee` FOREIGN KEY (`employee`) REFERENCES `Employees` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
primary key (`id`)
) engine=innodb default charset=utf8;
create table `Files` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`name` varchar(100) NOT NULL,
`filename` varchar(100) NOT NULL,
`employee` bigint(20) NULL,
`file_group` varchar(100) NOT NULL,
primary key (`id`),
unique key `filename` (`filename`)
) engine=innodb default charset=utf8;
create table `Clients` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`name` varchar(100) NOT NULL,
`details` text default null,
`first_contact_date` date default '0000-00-00',
`created` timestamp default '0000-00-00 00:00:00',
`address` text default null,
`contact_number` varchar(25) NULL,
`contact_email` varchar(25) NULL,
`company_url` varchar(500) NULL,
`status` enum('Active','Inactive') default 'Active',
primary key (`id`)
) engine=innodb default charset=utf8;
create table `Projects` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`name` varchar(100) NOT NULL,
`client` bigint(20) NULL,
`details` text default null,
`created` timestamp default '0000-00-00 00:00:00',
`status` enum('Active','Inactive') default 'Active',
CONSTRAINT `Fk_Projects_Client` FOREIGN KEY (`client`) REFERENCES `Clients` (`id`) ON DELETE SET NULL ON UPDATE CASCADE,
primary key (`id`)
) engine=innodb default charset=utf8;
create table `EmployeeTimeSheets` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`employee` bigint(20) NOT NULL,
`date_start` date NOT NULL,
`date_end` date NOT NULL,
`status` enum('Approved','Pending','Rejected','Submitted') default 'Pending',
CONSTRAINT `Fk_EmployeeTimeSheets_Employee` FOREIGN KEY (`employee`) REFERENCES `Employees` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
UNIQUE KEY `EmployeeTimeSheetsKey` (`employee`,`date_start`,`date_end`),
KEY `EmployeeTimeSheets_date_end` (`date_end`),
primary key (`id`)
) engine=innodb default charset=utf8;
create table `EmployeeProjects` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`employee` bigint(20) NOT NULL,
`project` bigint(20) NULL,
`date_start` date NULL,
`date_end` date NULL,
`status` enum('Current','Inactive','Completed') default 'Current',
`details` text default null,
CONSTRAINT `Fk_EmployeeProjects_Projects` FOREIGN KEY (`project`) REFERENCES `Projects` (`id`) ON DELETE SET NULL ON UPDATE CASCADE,
CONSTRAINT `Fk_EmployeeProjects_Employee` FOREIGN KEY (`employee`) REFERENCES `Employees` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
UNIQUE KEY `EmployeeProjectsKey` (`employee`,`project`),
primary key (`id`)
) engine=innodb default charset=utf8;
create table `EmployeeTimeEntry` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`project` bigint(20) NULL,
`employee` bigint(20) NOT NULL,
`timesheet` bigint(20) NOT NULL,
`details` text default null,
`created` timestamp default '0000-00-00 00:00:00',
`date_start` timestamp default '0000-00-00 00:00:00',
`time_start` varchar(10) NOT NULL,
`date_end` timestamp default '0000-00-00 00:00:00',
`time_end` varchar(10) NOT NULL,
`status` enum('Active','Inactive') default 'Active',
CONSTRAINT `Fk_EmployeeTimeEntry_Projects` FOREIGN KEY (`project`) REFERENCES `Projects` (`id`) ON DELETE SET NULL ON UPDATE CASCADE,
CONSTRAINT `Fk_EmployeeTimeEntry_Employee` FOREIGN KEY (`employee`) REFERENCES `Employees` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
CONSTRAINT `Fk_EmployeeTimeEntry_EmployeeTimeSheets` FOREIGN KEY (`timesheet`) REFERENCES `EmployeeTimeSheets` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
KEY `employee_project` (`employee`,`project`),
KEY `employee_project_date_start` (`employee`,`project`,`date_start`),
primary key (`id`)
) engine=innodb default charset=utf8;
create table `Documents` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`name` varchar(100) NOT NULL,
`details` text default null,
primary key (`id`)
) engine=innodb default charset=utf8;
create table `EmployeeDocuments` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`employee` bigint(20) NOT NULL,
`document` bigint(20) NULL,
`date_added` date NOT NULL,
`valid_until` date NOT NULL,
`status` enum('Active','Inactive','Draft') default 'Active',
`details` text default null,
`attachment` varchar(100) NULL,
CONSTRAINT `Fk_EmployeeDocuments_Documents` FOREIGN KEY (`document`) REFERENCES `Documents` (`id`) ON DELETE SET NULL ON UPDATE CASCADE,
CONSTRAINT `Fk_EmployeeDocuments_Employee` FOREIGN KEY (`employee`) REFERENCES `Employees` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
primary key (`id`)
) engine=innodb default charset=utf8;
create table `CompanyLoans` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`name` varchar(100) NOT NULL,
`details` text default null,
primary key (`id`)
) engine=innodb default charset=utf8;
create table `EmployeeCompanyLoans` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`employee` bigint(20) NOT NULL,
`loan` bigint(20) NULL,
`start_date` date NOT NULL,
`last_installment_date` date NOT NULL,
`period_months` bigint(20) NULL,
`currency` bigint(20) NULL DEFAULT NULL,
`amount` decimal(10,2) NOT NULL,
`monthly_installment` decimal(10,2) NOT NULL,
`status` enum('Approved','Repayment','Paid','Suspended') default 'Approved',
`details` text default null,
CONSTRAINT `Fk_EmployeeCompanyLoans_CompanyLoans` FOREIGN KEY (`loan`) REFERENCES `CompanyLoans` (`id`) ON DELETE SET NULL ON UPDATE CASCADE,
CONSTRAINT `Fk_EmployeeCompanyLoans_Employee` FOREIGN KEY (`employee`) REFERENCES `Employees` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
primary key (`id`)
) engine=innodb default charset=utf8;
create table `Settings` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`name` varchar(100) NOT NULL,
`value` text default null,
`description` text default null,
`meta` text default null,
primary key (`id`),
UNIQUE KEY(`name`)
) engine=innodb default charset=utf8;
create table `Modules` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`menu` varchar(30) NOT NULL,
`name` varchar(100) NOT NULL,
`label` varchar(100) NOT NULL,
`icon` VARCHAR( 50 ) NULL,
`mod_group` varchar(30) NOT NULL,
`mod_order` INT(11) NULL,
`status` enum('Enabled','Disabled') default 'Enabled',
`version` varchar(10) default '',
`update_path` varchar(500) default '',
`user_levels` varchar(500) NOT NULL,
`user_roles` text null,
primary key (`id`),
UNIQUE KEY `Modules_name_modgroup` (`name`,`mod_group`)
) engine=innodb default charset=utf8;
create table `Reports` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`name` varchar(100) NOT NULL,
`details` text default null,
`parameters` text default null,
`query` text default null,
`paramOrder` varchar(500) NOT NULL,
`type` enum('Query','Class') default 'Query',
primary key (`id`),
UNIQUE KEY `Reports_Name` (`name`)
) engine=innodb default charset=utf8;
create table `Attendance` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`employee` bigint(20) NOT NULL,
`in_time` timestamp default '0000-00-00 00:00:00',
`out_time` timestamp default '0000-00-00 00:00:00',
`note` varchar(500) default null,
CONSTRAINT `Fk_Attendance_Employee` FOREIGN KEY (`employee`) REFERENCES `Employees` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
KEY `in_time` (`in_time`),
KEY `out_time` (`out_time`),
KEY `employee_in_time` (`employee`,`in_time`),
KEY `employee_out_time` (`employee`,`out_time`),
primary key (`id`)
) engine=innodb default charset=utf8;
create table `Permissions` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`user_level` enum('Admin','Employee','Manager') default NULL,
`module_id` bigint(20) NOT NULL,
`permission` varchar(200) default null,
`meta` varchar(500) default null,
`value` varchar(200) default null,
UNIQUE KEY `Module_Permission` (`user_level`,`module_id`,`permission`),
primary key (`id`)
) engine=innodb default charset=utf8;
create table `DataEntryBackups` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`tableType` varchar(200) default null,
`data` longtext default null,
primary key (`id`)
) engine=innodb default charset=utf8;
create table `AuditLog` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`time` datetime default '0000-00-00 00:00:00',
`user` bigint(20) NOT NULL,
`ip` varchar(100) NULL,
`type` varchar(100) NOT NULL,
`employee` varchar(300) NULL,
`details` text default null,
CONSTRAINT `Fk_AuditLog_Users` FOREIGN KEY (`user`) REFERENCES `Users` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
primary key (`id`)
) engine=innodb default charset=utf8;
create table `Notifications` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`time` datetime default '0000-00-00 00:00:00',
`fromUser` bigint(20) NULL,
`fromEmployee` bigint(20) NULL,
`toUser` bigint(20) NOT NULL,
`image` varchar(500) default null,
`message` text default null,
`action` text default null,
`type` varchar(100) NULL,
`status` enum('Unread','Read') default 'Unread',
CONSTRAINT `Fk_Notifications_Users` FOREIGN KEY (`touser`) REFERENCES `Users` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
primary key (`id`),
KEY `toUser_time` (`toUser`,`time`),
KEY `toUser_status_time` (`toUser`,`status`,`time`)
) engine=innodb default charset=utf8;
create table `Courses` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`code` varchar(300) NOT NULL,
`name` varchar(300) NOT NULL,
`description` text default null,
`coordinator` bigint(20) NULL,
`trainer` varchar(300) NULL,
`trainer_info` text default null,
`paymentType` enum('Company Sponsored','Paid by Employee') default 'Company Sponsored',
`currency` varchar(3) not null,
`cost` decimal(12,2) DEFAULT 0.00,
`status` enum('Active','Inactive') default 'Active',
`created` datetime default '0000-00-00 00:00:00',
`updated` datetime default '0000-00-00 00:00:00',
CONSTRAINT `Fk_Courses_Employees` FOREIGN KEY (`coordinator`) REFERENCES `Employees` (`id`) ON DELETE SET NULL ON UPDATE CASCADE,
primary key (`id`)
) engine=innodb default charset=utf8;
create table `TrainingSessions` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`name` varchar(300) NOT NULL,
`course` bigint(20) NOT NULL,
`description` text default null,
`scheduled` datetime default '0000-00-00 00:00:00',
`dueDate` datetime default '0000-00-00 00:00:00',
`deliveryMethod` enum('Classroom','Self Study','Online') default 'Classroom',
`deliveryLocation` varchar(500) NULL,
`status` enum('Pending','Approved','Completed','Cancelled') default 'Pending',
`attendanceType` enum('Sign Up','Assign') default 'Sign Up',
`attachment` varchar(300) NULL,
`created` datetime default '0000-00-00 00:00:00',
`updated` datetime default '0000-00-00 00:00:00',
CONSTRAINT `Fk_TrainingSessions_Courses` FOREIGN KEY (`course`) REFERENCES `Courses` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
primary key (`id`)
) engine=innodb default charset=utf8;
create table `EmployeeTrainingSessions` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`employee` bigint(20) NOT NULL,
`trainingSession` bigint(20) NULL,
`feedBack` varchar(1500) NULL,
`status` enum('Scheduled','Attended','Not-Attended') default 'Scheduled',
CONSTRAINT `Fk_EmployeeTrainingSessions_TrainingSessions` FOREIGN KEY (`trainingSession`) REFERENCES `TrainingSessions` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
CONSTRAINT `Fk_EmployeeTrainingSessions_Employee` FOREIGN KEY (`employee`) REFERENCES `Employees` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
primary key (`id`)
) engine=innodb default charset=utf8;
create table `ImmigrationDocuments` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`name` varchar(100) NOT NULL,
`details` text default null,
`required` enum('Yes','No') default 'Yes',
`alert_on_missing` enum('Yes','No') default 'Yes',
`alert_before_expiry` enum('Yes','No') default 'Yes',
`alert_before_day_number` int(11) NOT NULL,
`created` timestamp NULL default '0000-00-00 00:00:00',
`updated` timestamp NULL default '0000-00-00 00:00:00',
primary key (`id`)
) engine=innodb default charset=utf8;
create table `EmployeeImmigrations` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`employee` bigint(20) NOT NULL,
`document` bigint(20) NULL,
`documentname` varchar(150) NOT NULL,
`valid_until` date NOT NULL,
`status` enum('Active','Inactive','Draft') default 'Active',
`details` text default null,
`attachment1` varchar(100) NULL,
`attachment2` varchar(100) NULL,
`attachment3` varchar(100) NULL,
`created` timestamp NULL default '0000-00-00 00:00:00',
`updated` timestamp NULL default '0000-00-00 00:00:00',
CONSTRAINT `Fk_EmployeeImmigrations_Employee` FOREIGN KEY (`employee`) REFERENCES `Employees` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
CONSTRAINT `Fk_EmployeeImmigrations_ImmigrationDocuments` FOREIGN KEY (`document`) REFERENCES `ImmigrationDocuments` (`id`) ON DELETE SET NULL ON UPDATE CASCADE,
primary key (`id`)
) engine=innodb default charset=utf8;
create table `EmployeeTravelRecords` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`employee` bigint(20) NOT NULL,
`type` enum('Local','International') default 'Local',
`purpose` varchar(200) NOT NULL,
`travel_from` varchar(200) NOT NULL,
`travel_to` varchar(200) NOT NULL,
`travel_date` datetime NULL default '0000-00-00 00:00:00',
`return_date` datetime NULL default '0000-00-00 00:00:00',
`details` varchar(500) default null,
`attachment1` varchar(100) NULL,
`attachment2` varchar(100) NULL,
`attachment3` varchar(100) NULL,
`created` timestamp NULL default '0000-00-00 00:00:00',
`updated` timestamp NULL default '0000-00-00 00:00:00',
CONSTRAINT `Fk_EmployeeTravelRecords_Employee` FOREIGN KEY (`employee`) REFERENCES `Employees` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
primary key (`id`)
) engine=innodb default charset=utf8;
create table `RestAccessTokens` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`userId` bigint(20) NOT NULL,
`hash` varchar(32) default null,
`token` varchar(500) default null,
`created` DATETIME default '0000-00-00 00:00:00',
`updated` DATETIME default '0000-00-00 00:00:00',
primary key (`id`),
unique key `userId` (`userId`)
) engine=innodb default charset=utf8;
create table `FieldNameMappings` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`type` varchar(20) NOT NULL,
`name` varchar(20) NOT NULL,
`textOrig` varchar(200) default null,
`textMapped` varchar(200) default null,
`display` enum('Form','Table and Form','Hidden') default 'Form',
`created` DATETIME default '0000-00-00 00:00:00',
`updated` DATETIME default '0000-00-00 00:00:00',
primary key (`id`),
unique key `name` (`name`)
) engine=innodb default charset=utf8;
create table `CustomFields` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`type` varchar(20) NOT NULL,
`name` varchar(20) NOT NULL,
`data` text default null,
`display` enum('Form','Table and Form','Hidden') default 'Form',
`created` DATETIME default '0000-00-00 00:00:00',
`updated` DATETIME default '0000-00-00 00:00:00',
primary key (`id`)
) engine=innodb default charset=utf8;
create table `SalaryComponentType` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`code` varchar(10) NOT NULL,
`name` varchar(100) NOT NULL,
primary key (`id`)
) engine=innodb default charset=utf8;
create table `SalaryComponent` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`name` varchar(100) NOT NULL,
`componentType` bigint(20) NULL,
`details` text default null,
CONSTRAINT `Fk_SalaryComponent_SalaryComponentType` FOREIGN KEY (`componentType`) REFERENCES `SalaryComponentType` (`id`) ON DELETE SET NULL ON UPDATE CASCADE,
primary key (`id`)
) engine=innodb default charset=utf8;
create table `ImmigrationStatus` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`name` varchar(100) NOT NULL,
primary key (`id`)
) engine=innodb default charset=utf8;
create table `Ethnicity` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`name` varchar(100) NOT NULL,
primary key (`id`)
) engine=innodb default charset=utf8;
create table `EmployeeImmigrationStatus` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`employee` bigint(20) NOT NULL,
`status` bigint(20) NOT NULL,
CONSTRAINT `Fk_EmployeeImmigrationStatus_Employee` FOREIGN KEY (`employee`) REFERENCES `Employees` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
CONSTRAINT `Fk_EmployeeImmigrationStatus_Type` FOREIGN KEY (`status`) REFERENCES `ImmigrationStatus` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
primary key (`id`)
) engine=innodb default charset=utf8;
create table `EmployeeEthnicity` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`employee` bigint(20) NOT NULL,
`ethnicity` bigint(20) NOT NULL,
CONSTRAINT `Fk_EmployeeEthnicity_Employee` FOREIGN KEY (`employee`) REFERENCES `Employees` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
CONSTRAINT `Fk_EmployeeEthnicity_Ethnicity` FOREIGN KEY (`ethnicity`) REFERENCES `Ethnicity` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
primary key (`id`)
) engine=innodb default charset=utf8;
create table `EmployeeSalary` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`employee` bigint(20) NOT NULL,
`component` bigint(20) NOT NULL,
`pay_frequency` enum('Hourly','Daily','Bi Weekly','Weekly','Semi Monthly','Monthly') default NULL,
`currency` bigint(20) NULL,
`amount` decimal(10,2) NOT NULL,
`details` text default null,
CONSTRAINT `Fk_EmployeeSalary_Employee` FOREIGN KEY (`employee`) REFERENCES `Employees` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
CONSTRAINT `Fk_EmployeeSalary_Currency` FOREIGN KEY (`currency`) REFERENCES `CurrencyTypes` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
primary key (`id`)
) engine=innodb default charset=utf8;
create table `Deductions` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`name` varchar(100) NOT NULL,
`contributor` enum('Employee','Employer') default NULL,
`type` enum('Fixed','Percentage') default NULL,
`percentage_type` enum('On Component','On Component Type') default NULL,
`componentType` bigint(20) NULL,
`component` bigint(20) NULL,
`rangeAmounts` text default null,
`country` bigint(20) NULL,
CONSTRAINT `Fk_Deductions_Country` FOREIGN KEY (`country`) REFERENCES `Country` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
primary key (`id`)
) engine=innodb default charset=utf8;
create table `Tax` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`name` varchar(100) NOT NULL,
`contributor` enum('Employee','Employer') default NULL,
`type` enum('Fixed','Percentage') default NULL,
`percentage_type` enum('On Component','On Component Type') default NULL,
`componentType` bigint(20) NULL,
`component` bigint(20) NULL,
`rangeAmounts` text default null,
`country` bigint(20) NULL,
CONSTRAINT `Fk_Tax_Country` FOREIGN KEY (`country`) REFERENCES `Country` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
primary key (`id`)
) engine=innodb default charset=utf8;
create table `TaxRules` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`apply` enum('Yes','No') default 'Yes',
`application_type` enum('All','Condition - OR','Condition - AND') default 'All',
`tax` bigint(20) NOT NULL,
`job_title` bigint(20) NULL,
`ethnicity` bigint(20) NULL,
`nationality` bigint(20) NULL,
`immigration_status` bigint(20) NULL,
`pay_grade` bigint(20) NULL,
`country` bigint(20) NULL,
CONSTRAINT `Fk_TaxRules_Tax` FOREIGN KEY (`tax`) REFERENCES `Tax` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
CONSTRAINT `Fk_TaxRules_Country` FOREIGN KEY (`country`) REFERENCES `Country` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
primary key (`id`)
) engine=innodb default charset=utf8;
create table `DeductionRules` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`apply` enum('Yes','No') default 'Yes',
`application_type` enum('All','Condition - OR','Condition - AND') default 'All',
`deduction` bigint(20) NOT NULL,
`job_title` bigint(20) NULL,
`ethnicity` bigint(20) NULL,
`nationality` bigint(20) NULL,
`immigration_status` bigint(20) NULL,
`pay_grade` bigint(20) NULL,
`country` bigint(20) NULL,
CONSTRAINT `Fk_DeductionRules_Deductions` FOREIGN KEY (`deduction`) REFERENCES `Deductions` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
CONSTRAINT `Fk_DeductionRules_Country` FOREIGN KEY (`country`) REFERENCES `Country` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
primary key (`id`)
) engine=innodb default charset=utf8;

View File

@@ -0,0 +1,35 @@
Select id, employee_id as 'Employee ID',
concat(`first_name`,' ',`middle_name`,' ', `last_name`) as 'Name',
(SELECT name from Nationality where id = nationality) as 'Nationality',
birthday as 'Birthday',
gender as 'Gender',
marital_status as 'Marital Status',
ssn_num as 'SSN Number',
nic_num as 'NIC Number',
other_id as 'Other IDs',
driving_license as 'Driving License Number',
(SELECT name from EmploymentStatus where id = employment_status) as 'Employment Status',
(SELECT name from JobTitles where id = job_title) as 'Job Title',
(SELECT name from PayGrades where id = pay_grade) as 'Pay Grade',
work_station_id as 'Work Station ID',
address1 as 'Address 1',
address2 as 'Address 2',
city as 'City',
(SELECT name from Country where code = country) as 'Country',
(SELECT name from Province where id = province) as 'Province',
postal_code as 'Postal Code',
home_phone as 'Home Phone',
mobile_phone as 'Mobile Phone',
work_phone as 'Work Phone',
work_email as 'Work Email',
private_email as 'Private Email',
joined_date as 'Joined Date',
confirmation_date as 'Confirmation Date',
(SELECT title from CompanyStructures where id = department) as 'Department',
(SELECT concat(`first_name`,' ',`middle_name`,' ', `last_name`,' [Employee ID:',`employee_id`,']') from Employees e1 where e1.id = e.supervisor) as 'Supervisor'
FROM Employees e _where_
This report list all employee details and you can filter employees by department, employment status or job title

View File

@@ -0,0 +1,24 @@
[
[ "employee", {"label":"Employee","type":"select","allow-null":true,"remote-source":["Employee","id","first_name+last_name"]}],
[ "date_start", {"label":"Start Date","type":"date"}],
[ "date_end", {"label":"End Date","type":"date"}],
[ "status", {"label":"Leave Status","type":"select","source":[["NULL","All Statuses"],["Approved","Approved"],["Pending","Pending"],["Rejected","Rejected"]]}]
]
["employee","date_start","date_end","status"]
SELECT *,
(SELECT concat(`first_name`,' ',`middle_name`,' ', `last_name`) from Employees where id = employee) as 'Employee',
(SELECT name from LeaveTypes where id = leave_type) as 'Leave Type',
(SELECT name from LeavePeriods where id = leave_type) as 'Leave Type',
date_start as 'Start Date',
date_end as 'End Date',
details as 'Reason',
status as 'Leave Status',
(select count(*) from EmployeeLeaveDays d where d.employee_leave = lv.id and leave_type = 'Full Day') as 'Full Day Count',
(select count(*) from EmployeeLeaveDays d where d.employee_leave = lv.id and leave_type = 'Half Day - Morning') as 'Half Day (Morning) Count',
(select count(*) from EmployeeLeaveDays d where d.employee_leave = lv.id and leave_type = 'Half Day - Afternoon') as 'Half Day (Afternoon) Count'
from EmployeeLeaves lv where employee = ? and date_start >= ? and date_end <= ? and status = ?;
This report list all employee leaves by employee, date range and leave status

View File

@@ -0,0 +1,20 @@
[
[ "employee", {"label":"Employee","type":"select","allow-null":true,"remote-source":["Employee","id","first_name+last_name"]}],
[ "project", {"label":"Project","type":"select","allow-null":true,"remote-source":["Project","id","name"]}],
[ "date_start", {"label":"Start Date","type":"date"}],
[ "date_end", {"label":"End Date","type":"date"}]
]
["date_start","date_end","project","employee"]
SELECT
(SELECT concat(`first_name`,' ',`middle_name`,' ', `last_name`) from Employees where id = te.employee) as 'Employee',
(SELECT name from Projects where id = te.project) as 'Project',
details as 'Details',
date_start as 'Start Time',
date_end as 'End Time',
SEC_TO_TIME(TIMESTAMPDIFF(SECOND,te.date_start,te.date_end)) as 'Duration'
FROM EmployeeTimeEntry te
WHERE date_start >= ? and date_end <= ? and project = ? and employee = ?
This report list all employee time entries by employee, date range and project

View File

@@ -0,0 +1,169 @@
SET @employee = 1;
SET @startInTime = '2014-08-01 08:15:15';
SET @startOutTime = '2014-08-01 12:15:15';
INSERT INTO `Attendance` (`employee`, `in_time`, `out_time`, `note`) VALUES
(@employee, FROM_UNIXTIME(UNIX_TIMESTAMP(@startInTime) + FLOOR(0 + (RAND() * 60*60*4))), FROM_UNIXTIME(UNIX_TIMESTAMP(@startOutTime) + FLOOR(0 + (RAND() * 60*60*4))), 'Test Entry');
SET @startInTime = DATE_ADD(@startInTime, INTERVAL 1 DAY);
SET @startOutTime = DATE_ADD(@startOutTime, INTERVAL 1 DAY);
INSERT INTO `Attendance` (`employee`, `in_time`, `out_time`, `note`) VALUES
(@employee, FROM_UNIXTIME(UNIX_TIMESTAMP(@startInTime) + FLOOR(0 + (RAND() * 60*60*4))), FROM_UNIXTIME(UNIX_TIMESTAMP(@startOutTime) + FLOOR(0 + (RAND() * 60*60*4))), 'Test Entry');
SET @startInTime = DATE_ADD(@startInTime, INTERVAL 1 DAY);
SET @startOutTime = DATE_ADD(@startOutTime, INTERVAL 1 DAY);
INSERT INTO `Attendance` (`employee`, `in_time`, `out_time`, `note`) VALUES
(@employee, FROM_UNIXTIME(UNIX_TIMESTAMP(@startInTime) + FLOOR(0 + (RAND() * 60*60*4))), FROM_UNIXTIME(UNIX_TIMESTAMP(@startOutTime) + FLOOR(0 + (RAND() * 60*60*4))), 'Test Entry');
SET @startInTime = DATE_ADD(@startInTime, INTERVAL 1 DAY);
SET @startOutTime = DATE_ADD(@startOutTime, INTERVAL 1 DAY);
INSERT INTO `Attendance` (`employee`, `in_time`, `out_time`, `note`) VALUES
(@employee, FROM_UNIXTIME(UNIX_TIMESTAMP(@startInTime) + FLOOR(0 + (RAND() * 60*60*4))), FROM_UNIXTIME(UNIX_TIMESTAMP(@startOutTime) + FLOOR(0 + (RAND() * 60*60*4))), 'Test Entry');
SET @startInTime = DATE_ADD(@startInTime, INTERVAL 1 DAY);
SET @startOutTime = DATE_ADD(@startOutTime, INTERVAL 1 DAY);
INSERT INTO `Attendance` (`employee`, `in_time`, `out_time`, `note`) VALUES
(@employee, FROM_UNIXTIME(UNIX_TIMESTAMP(@startInTime) + FLOOR(0 + (RAND() * 60*60*4))), FROM_UNIXTIME(UNIX_TIMESTAMP(@startOutTime) + FLOOR(0 + (RAND() * 60*60*4))), 'Test Entry');
SET @startInTime = DATE_ADD(@startInTime, INTERVAL 1 DAY);
SET @startOutTime = DATE_ADD(@startOutTime, INTERVAL 1 DAY);
INSERT INTO `Attendance` (`employee`, `in_time`, `out_time`, `note`) VALUES
(@employee, FROM_UNIXTIME(UNIX_TIMESTAMP(@startInTime) + FLOOR(0 + (RAND() * 60*60*4))), FROM_UNIXTIME(UNIX_TIMESTAMP(@startOutTime) + FLOOR(0 + (RAND() * 60*60*4))), 'Test Entry');
SET @startInTime = DATE_ADD(@startInTime, INTERVAL 1 DAY);
SET @startOutTime = DATE_ADD(@startOutTime, INTERVAL 1 DAY);
INSERT INTO `Attendance` (`employee`, `in_time`, `out_time`, `note`) VALUES
(@employee, FROM_UNIXTIME(UNIX_TIMESTAMP(@startInTime) + FLOOR(0 + (RAND() * 60*60*4))), FROM_UNIXTIME(UNIX_TIMESTAMP(@startOutTime) + FLOOR(0 + (RAND() * 60*60*4))), 'Test Entry');
SET @startInTime = DATE_ADD(@startInTime, INTERVAL 1 DAY);
SET @startOutTime = DATE_ADD(@startOutTime, INTERVAL 1 DAY);
INSERT INTO `Attendance` (`employee`, `in_time`, `out_time`, `note`) VALUES
(@employee, FROM_UNIXTIME(UNIX_TIMESTAMP(@startInTime) + FLOOR(0 + (RAND() * 60*60*4))), FROM_UNIXTIME(UNIX_TIMESTAMP(@startOutTime) + FLOOR(0 + (RAND() * 60*60*4))), 'Test Entry');
SET @startInTime = DATE_ADD(@startInTime, INTERVAL 1 DAY);
SET @startOutTime = DATE_ADD(@startOutTime, INTERVAL 1 DAY);
INSERT INTO `Attendance` (`employee`, `in_time`, `out_time`, `note`) VALUES
(@employee, FROM_UNIXTIME(UNIX_TIMESTAMP(@startInTime) + FLOOR(0 + (RAND() * 60*60*4))), FROM_UNIXTIME(UNIX_TIMESTAMP(@startOutTime) + FLOOR(0 + (RAND() * 60*60*4))), 'Test Entry');
SET @startInTime = DATE_ADD(@startInTime, INTERVAL 1 DAY);
SET @startOutTime = DATE_ADD(@startOutTime, INTERVAL 1 DAY);
INSERT INTO `Attendance` (`employee`, `in_time`, `out_time`, `note`) VALUES
(@employee, FROM_UNIXTIME(UNIX_TIMESTAMP(@startInTime) + FLOOR(0 + (RAND() * 60*60*4))), FROM_UNIXTIME(UNIX_TIMESTAMP(@startOutTime) + FLOOR(0 + (RAND() * 60*60*4))), 'Test Entry');
SET @startInTime = DATE_ADD(@startInTime, INTERVAL 1 DAY);
SET @startOutTime = DATE_ADD(@startOutTime, INTERVAL 1 DAY);
INSERT INTO `Attendance` (`employee`, `in_time`, `out_time`, `note`) VALUES
(@employee, FROM_UNIXTIME(UNIX_TIMESTAMP(@startInTime) + FLOOR(0 + (RAND() * 60*60*4))), FROM_UNIXTIME(UNIX_TIMESTAMP(@startOutTime) + FLOOR(0 + (RAND() * 60*60*4))), 'Test Entry');
SET @startInTime = DATE_ADD(@startInTime, INTERVAL 1 DAY);
SET @startOutTime = DATE_ADD(@startOutTime, INTERVAL 1 DAY);
INSERT INTO `Attendance` (`employee`, `in_time`, `out_time`, `note`) VALUES
(@employee, FROM_UNIXTIME(UNIX_TIMESTAMP(@startInTime) + FLOOR(0 + (RAND() * 60*60*4))), FROM_UNIXTIME(UNIX_TIMESTAMP(@startOutTime) + FLOOR(0 + (RAND() * 60*60*4))), 'Test Entry');
SET @startInTime = DATE_ADD(@startInTime, INTERVAL 1 DAY);
SET @startOutTime = DATE_ADD(@startOutTime, INTERVAL 1 DAY);
INSERT INTO `Attendance` (`employee`, `in_time`, `out_time`, `note`) VALUES
(@employee, FROM_UNIXTIME(UNIX_TIMESTAMP(@startInTime) + FLOOR(0 + (RAND() * 60*60*4))), FROM_UNIXTIME(UNIX_TIMESTAMP(@startOutTime) + FLOOR(0 + (RAND() * 60*60*4))), 'Test Entry');
SET @startInTime = DATE_ADD(@startInTime, INTERVAL 1 DAY);
SET @startOutTime = DATE_ADD(@startOutTime, INTERVAL 1 DAY);
INSERT INTO `Attendance` (`employee`, `in_time`, `out_time`, `note`) VALUES
(@employee, FROM_UNIXTIME(UNIX_TIMESTAMP(@startInTime) + FLOOR(0 + (RAND() * 60*60*4))), FROM_UNIXTIME(UNIX_TIMESTAMP(@startOutTime) + FLOOR(0 + (RAND() * 60*60*4))), 'Test Entry');
SET @startInTime = DATE_ADD(@startInTime, INTERVAL 1 DAY);
SET @startOutTime = DATE_ADD(@startOutTime, INTERVAL 1 DAY);
INSERT INTO `Attendance` (`employee`, `in_time`, `out_time`, `note`) VALUES
(@employee, FROM_UNIXTIME(UNIX_TIMESTAMP(@startInTime) + FLOOR(0 + (RAND() * 60*60*4))), FROM_UNIXTIME(UNIX_TIMESTAMP(@startOutTime) + FLOOR(0 + (RAND() * 60*60*4))), 'Test Entry');
SET @startInTime = DATE_ADD(@startInTime, INTERVAL 1 DAY);
SET @startOutTime = DATE_ADD(@startOutTime, INTERVAL 1 DAY);
INSERT INTO `Attendance` (`employee`, `in_time`, `out_time`, `note`) VALUES
(@employee, FROM_UNIXTIME(UNIX_TIMESTAMP(@startInTime) + FLOOR(0 + (RAND() * 60*60*4))), FROM_UNIXTIME(UNIX_TIMESTAMP(@startOutTime) + FLOOR(0 + (RAND() * 60*60*4))), 'Test Entry');
SET @startInTime = DATE_ADD(@startInTime, INTERVAL 1 DAY);
SET @startOutTime = DATE_ADD(@startOutTime, INTERVAL 1 DAY);
INSERT INTO `Attendance` (`employee`, `in_time`, `out_time`, `note`) VALUES
(@employee, FROM_UNIXTIME(UNIX_TIMESTAMP(@startInTime) + FLOOR(0 + (RAND() * 60*60*4))), FROM_UNIXTIME(UNIX_TIMESTAMP(@startOutTime) + FLOOR(0 + (RAND() * 60*60*4))), 'Test Entry');
SET @startInTime = DATE_ADD(@startInTime, INTERVAL 1 DAY);
SET @startOutTime = DATE_ADD(@startOutTime, INTERVAL 1 DAY);
INSERT INTO `Attendance` (`employee`, `in_time`, `out_time`, `note`) VALUES
(@employee, FROM_UNIXTIME(UNIX_TIMESTAMP(@startInTime) + FLOOR(0 + (RAND() * 60*60*4))), FROM_UNIXTIME(UNIX_TIMESTAMP(@startOutTime) + FLOOR(0 + (RAND() * 60*60*4))), 'Test Entry');
SET @startInTime = DATE_ADD(@startInTime, INTERVAL 1 DAY);
SET @startOutTime = DATE_ADD(@startOutTime, INTERVAL 1 DAY);
INSERT INTO `Attendance` (`employee`, `in_time`, `out_time`, `note`) VALUES
(@employee, FROM_UNIXTIME(UNIX_TIMESTAMP(@startInTime) + FLOOR(0 + (RAND() * 60*60*4))), FROM_UNIXTIME(UNIX_TIMESTAMP(@startOutTime) + FLOOR(0 + (RAND() * 60*60*4))), 'Test Entry');
SET @startInTime = DATE_ADD(@startInTime, INTERVAL 1 DAY);
SET @startOutTime = DATE_ADD(@startOutTime, INTERVAL 1 DAY);
INSERT INTO `Attendance` (`employee`, `in_time`, `out_time`, `note`) VALUES
(@employee, FROM_UNIXTIME(UNIX_TIMESTAMP(@startInTime) + FLOOR(0 + (RAND() * 60*60*4))), FROM_UNIXTIME(UNIX_TIMESTAMP(@startOutTime) + FLOOR(0 + (RAND() * 60*60*4))), 'Test Entry');
SET @startInTime = DATE_ADD(@startInTime, INTERVAL 1 DAY);
SET @startOutTime = DATE_ADD(@startOutTime, INTERVAL 1 DAY);
INSERT INTO `Attendance` (`employee`, `in_time`, `out_time`, `note`) VALUES
(@employee, FROM_UNIXTIME(UNIX_TIMESTAMP(@startInTime) + FLOOR(0 + (RAND() * 60*60*4))), FROM_UNIXTIME(UNIX_TIMESTAMP(@startOutTime) + FLOOR(0 + (RAND() * 60*60*4))), 'Test Entry');
SET @startInTime = DATE_ADD(@startInTime, INTERVAL 1 DAY);
SET @startOutTime = DATE_ADD(@startOutTime, INTERVAL 1 DAY);
INSERT INTO `Attendance` (`employee`, `in_time`, `out_time`, `note`) VALUES
(@employee, FROM_UNIXTIME(UNIX_TIMESTAMP(@startInTime) + FLOOR(0 + (RAND() * 60*60*4))), FROM_UNIXTIME(UNIX_TIMESTAMP(@startOutTime) + FLOOR(0 + (RAND() * 60*60*4))), 'Test Entry');
SET @startInTime = DATE_ADD(@startInTime, INTERVAL 1 DAY);
SET @startOutTime = DATE_ADD(@startOutTime, INTERVAL 1 DAY);
INSERT INTO `Attendance` (`employee`, `in_time`, `out_time`, `note`) VALUES
(@employee, FROM_UNIXTIME(UNIX_TIMESTAMP(@startInTime) + FLOOR(0 + (RAND() * 60*60*4))), FROM_UNIXTIME(UNIX_TIMESTAMP(@startOutTime) + FLOOR(0 + (RAND() * 60*60*4))), 'Test Entry');
SET @startInTime = DATE_ADD(@startInTime, INTERVAL 1 DAY);
SET @startOutTime = DATE_ADD(@startOutTime, INTERVAL 1 DAY);
INSERT INTO `Attendance` (`employee`, `in_time`, `out_time`, `note`) VALUES
(@employee, FROM_UNIXTIME(UNIX_TIMESTAMP(@startInTime) + FLOOR(0 + (RAND() * 60*60*4))), FROM_UNIXTIME(UNIX_TIMESTAMP(@startOutTime) + FLOOR(0 + (RAND() * 60*60*4))), 'Test Entry');
SET @startInTime = DATE_ADD(@startInTime, INTERVAL 1 DAY);
SET @startOutTime = DATE_ADD(@startOutTime, INTERVAL 1 DAY);
INSERT INTO `Attendance` (`employee`, `in_time`, `out_time`, `note`) VALUES
(@employee, FROM_UNIXTIME(UNIX_TIMESTAMP(@startInTime) + FLOOR(0 + (RAND() * 60*60*4))), FROM_UNIXTIME(UNIX_TIMESTAMP(@startOutTime) + FLOOR(0 + (RAND() * 60*60*4))), 'Test Entry');
SET @startInTime = DATE_ADD(@startInTime, INTERVAL 1 DAY);
SET @startOutTime = DATE_ADD(@startOutTime, INTERVAL 1 DAY);
INSERT INTO `Attendance` (`employee`, `in_time`, `out_time`, `note`) VALUES
(@employee, FROM_UNIXTIME(UNIX_TIMESTAMP(@startInTime) + FLOOR(0 + (RAND() * 60*60*4))), FROM_UNIXTIME(UNIX_TIMESTAMP(@startOutTime) + FLOOR(0 + (RAND() * 60*60*4))), 'Test Entry');
SET @startInTime = DATE_ADD(@startInTime, INTERVAL 1 DAY);
SET @startOutTime = DATE_ADD(@startOutTime, INTERVAL 1 DAY);
INSERT INTO `Attendance` (`employee`, `in_time`, `out_time`, `note`) VALUES
(@employee, FROM_UNIXTIME(UNIX_TIMESTAMP(@startInTime) + FLOOR(0 + (RAND() * 60*60*4))), FROM_UNIXTIME(UNIX_TIMESTAMP(@startOutTime) + FLOOR(0 + (RAND() * 60*60*4))), 'Test Entry');
SET @startInTime = DATE_ADD(@startInTime, INTERVAL 1 DAY);
SET @startOutTime = DATE_ADD(@startOutTime, INTERVAL 1 DAY);
INSERT INTO `Attendance` (`employee`, `in_time`, `out_time`, `note`) VALUES
(@employee, FROM_UNIXTIME(UNIX_TIMESTAMP(@startInTime) + FLOOR(0 + (RAND() * 60*60*4))), FROM_UNIXTIME(UNIX_TIMESTAMP(@startOutTime) + FLOOR(0 + (RAND() * 60*60*4))), 'Test Entry');

View File

@@ -0,0 +1,267 @@
INSERT INTO `Employees` (`employee_id`, `first_name`, `middle_name`, `last_name`, `nationality`, `birthday`, `gender`, `marital_status`, `ssn_num`, `nic_num`, `other_id`, `driving_license`, `driving_license_exp_date`, `employment_status`, `job_title`, `pay_grade`, `work_station_id`, `address1`, `address2`, `city`, `country`, `province`, `postal_code`, `home_phone`, `mobile_phone`, `work_phone`, `work_email`, `private_email`, `joined_date`, `confirmation_date`, `supervisor`, `department`, `custom1`, `custom2`, `custom3`, `custom4`, `custom5`, `custom6`, `custom7`, `custom8`, `custom9`, `custom10`) VALUES
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(FLOOR(RAND() * 50000), concat('Employee ',FLOOR(RAND() * 50000)), '', concat('E',FLOOR(RAND() * 50000)), 175, '1984-03-12 18:30:00', 'Female', 'Single', '', '4594567WE3', '4595567WE3', '349-066-YUO', '2012-03-01', 1, 8, 2, 'W001', 'Green War Rd, 00123', '', 'Istanbul', 'TR', NULL, '909066', '+960112345', '+960112345', '+960112345', 'icehrm+1@web-stalk.com', 'icehrm+1@web-stalk.com', '2011-03-07 18:30:00', '2012-02-14 18:30:00', 3, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);

View File

@@ -0,0 +1,105 @@
<?php
/*
This file is part of iCE Hrm.
iCE Hrm is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
iCE Hrm is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with iCE Hrm. If not, see <http://www.gnu.org/licenses/>.
------------------------------------------------------------------
Original work Copyright (c) 2012 [Gamonoid Media Pvt. Ltd]
Developer: Thilina Hasantha (thilina.hasantha[at]gmail.com / facebook.com/thilinah)
*/
class AttendanceActionManager extends SubActionManager{
public function savePunch($req){
$employee = $this->baseService->getElement('Employee',$req->employee,null,true);
$inDateTime = $req->in_time;
$inDateArr = explode(" ",$inDateTime);
$inDate = $inDateArr[0];
$outDateTime = $req->out_time;
$outDate = "";
if(!empty($outDateTime)){
$outDateArr = explode(" ",$outDateTime);
$outDate = $outDateArr[0];
}
$note = $req->note;
//check if dates are differnet
if(!empty($outDate) && $inDate != $outDate){
return new IceResponse(IceResponse::ERROR,"Attendance entry should be within a single day");
}
//compare dates
if(!empty($outDateTime) && strtotime($outDateTime) <= strtotime($inDateTime)){
return new IceResponse(IceResponse::ERROR,"Punch-in time should be lesser than Punch-out time");
}
//Find all punches for the day
$attendance = new Attendance();
$attendanceList = $attendance->Find("employee = ? and DATE_FORMAT( in_time, '%Y-%m-%d' ) = ?",array($employee->id,$inDate));
foreach($attendanceList as $attendance){
if(!empty($req->id) && $req->id == $attendance->id){
continue;
}
if(empty($attendance->out_time) || $attendance->out_time == "0000-00-00 00:00:00"){
return new IceResponse(IceResponse::ERROR,"There is a non closed attendance entry for today. Please mark punch-out time of the open entry before adding a new one");
}else if(!empty($outDateTime)){
if(strtotime($attendance->out_time) >= strtotime($outDateTime) && strtotime($attendance->in_time) <= strtotime($outDateTime)){
//-1---0---1---0 || ---0--1---1---0
return new IceResponse(IceResponse::ERROR,"Time entry is overlapping with an existing one");
}else if(strtotime($attendance->out_time) >= strtotime($inDateTime) && strtotime($attendance->in_time) <= strtotime($inDateTime)){
//---0---1---0---1 || ---0--1---1---0
return new IceResponse(IceResponse::ERROR,"Time entry is overlapping with an existing one");
}else if(strtotime($attendance->out_time) <= strtotime($outDateTime) && strtotime($attendance->in_time) >= strtotime($inDateTime)){
//--1--0---0--1--
return new IceResponse(IceResponse::ERROR,"Time entry is overlapping with an existing one");
}
}else{
if(strtotime($attendance->out_time) >= strtotime($inDateTime) && strtotime($attendance->in_time) <= strtotime($inDateTime)){
//---0---1---0
return new IceResponse(IceResponse::ERROR,"Time entry is overlapping with an existing one");
}
}
}
$attendance = new Attendance();
if(!empty($req->id)){
$attendance->Load("id = ?",array($req->id));
}
$attendance->in_time = $inDateTime;
if(empty($outDateTime)){
$attendance->out_time = "0000-00-00 00:00:00";
}else{
$attendance->out_time = $outDateTime;
}
$attendance->employee = $req->employee;
$attendance->note = $note;
$ok = $attendance->Save();
if(!$ok){
LogManager::getInstance()->info($attendance->ErrorMsg());
return new IceResponse(IceResponse::ERROR,"Error occured while saving attendance");
}
return new IceResponse(IceResponse::SUCCESS,$attendance);
}
}

View File

@@ -0,0 +1,176 @@
<?php
if (!class_exists('AttendanceAdminManager')) {
class AttendanceAdminManager extends AbstractModuleManager{
public function initializeUserClasses(){
}
public function initializeFieldMappings(){
}
public function initializeDatabaseErrorMappings(){
}
public function setupModuleClassDefinitions(){
$this->addModelClass('Attendance');
}
}
}
//Model Classes
if (!class_exists('Attendance')) {
class Attendance extends ICEHRM_Record {
var $_table = 'Attendance';
public function getAdminAccess(){
return array("get","element","save","delete");
}
public function getManagerAccess(){
return array("get","element","save","delete");
}
public function getUserAccess(){
return array("get");
}
public function getUserOnlyMeAccess(){
return array("element","save","delete");
}
}
}
if (!class_exists('AttendanceStatus')) {
class AttendanceStatus extends ICEHRM_Record {
var $_table = 'Attendance';
public function getRecentAttendanceEntries($limit){
$shift = intval(SettingsManager::getInstance()->getSetting("Attendance: Shift (Minutes)"));
$attendance = new Attendance();
$attendanceToday = $attendance->Find("1 = 1 order by in_time desc limit ".$limit,array());
$attendanceData = array();
$employees = array();
foreach($attendanceToday as $atEntry){
$entry = new stdClass();
$entry->id = $atEntry->employee;
$dayArr = explode(" ",$atEntry->in_time);
$day = $dayArr[0];
if($atEntry->out_time == "0000-00-00 00:00:00" || empty($atEntry->out_time)){
if(strtotime($atEntry->in_time) < (time() + $shift * 60) && $day == date("Y-m-d")){
$entry->status = "Clocked In";
$entry->statusId = 0;
$entry->color = 'green';
$employee = new Employee();
$employee->Load("id = ?",array($entry->id));
$entry->employee = $employee->first_name." ".$employee->last_name;
$employees[$entry->id] = $entry;
}
}
if(!isset($employees[$entry->id])){
$employee = new Employee();
$employee->Load("id = ?",array($entry->id));
if($day == date("Y-m-d")){
$entry->status = "Clocked Out";
$entry->statusId = 1;
$entry->color = 'yellow';
}else{
$entry->status = "Not Clocked In";
$entry->statusId = 2;
$entry->color = 'gray';
}
$entry->employee = $employee->first_name." ".$employee->last_name;
$employees[$entry->id] = $entry;
}
}
return array_values($employees);
}
public function Find($whereOrderBy,$bindarr=false,$pkeysArr=false,$extra=array()){
$shift = intval(SettingsManager::getInstance()->getSetting("Attendance: Shift (Minutes)"));
$employee = new Employee();
$data = array();
$employees = $employee->Find("1=1");
$attendance = new Attendance();
$attendanceToday = $attendance->Find("date(in_time) = ?",array(date("Y-m-d")));
$attendanceData = array();
//Group by employee
foreach($attendanceToday as $attendance){
if(isset($attendanceData[$attendance->employee])){
$attendanceData[$attendance->employee][] = $attendance;
}else{
$attendanceData[$attendance->employee] = array($attendance);
}
}
foreach($employees as $employee){
$entry = new stdClass();
$entry->id = $employee->id;
$entry->employee = $employee->id;
if(isset($attendanceData[$employee->id])){
$attendanceEntries = $attendanceData[$employee->id];
foreach($attendanceEntries as $atEntry){
if($atEntry->out_time == "0000-00-00 00:00:00" || empty($atEntry->out_time)){
if(strtotime($atEntry->in_time) < time() + $shift * 60){
$entry->status = "Clocked In";
$entry->statusId = 0;
}
}
}
if(empty($entry->status)){
$entry->status = "Clocked Out";
$entry->statusId = 1;
}
}else{
$entry->status = "Not Clocked In";
$entry->statusId = 2;
}
$data[] = $entry;
}
function cmp($a, $b) {
return $a->statusId - $b->statusId;
}
usort($data, "cmp");
return $data;
}
public function getAdminAccess(){
return array("get","element","save","delete");
}
public function getManagerAccess(){
return array("get","element","save","delete");
}
public function getUserAccess(){
return array("get");
}
public function getUserOnlyMeAccess(){
return array("element","save","delete");
}
}
}

View File

@@ -0,0 +1,82 @@
<?php
/*
This file is part of iCE Hrm.
iCE Hrm is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
iCE Hrm is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with iCE Hrm. If not, see <http://www.gnu.org/licenses/>.
------------------------------------------------------------------
Original work Copyright (c) 2012 [Gamonoid Media Pvt. Ltd]
Developer: Thilina Hasantha (thilina.hasantha[at]gmail.com / facebook.com/thilinah)
*/
$moduleName = 'attendance_monitor';
define('MODULE_PATH',dirname(__FILE__));
include APP_BASE_PATH.'header.php';
include APP_BASE_PATH.'modulejslibs.inc.php';
?><div class="span9">
<ul class="nav nav-tabs" id="modTab" style="margin-bottom:0px;margin-left:5px;border-bottom: none;">
<li class="active"><a id="tabAttendance" href="#tabPageAttendance">Monitor Attendance</a></li>
<li class=""><a id="tabAttendanceStatus" href="#tabPageAttendanceStatus">Current Clocked In Status</a></li>
<!--
<li class=""><a id="tabAttendanceData" href="#tabPageAttendanceData">Attendance Data Update</a></li>
-->
</ul>
<div class="tab-content">
<div class="tab-pane active" id="tabPageAttendance">
<div id="Attendance" class="reviewBlock" data-content="List" style="padding-left:5px;">
</div>
<div id="AttendanceForm" class="reviewBlock" data-content="Form" style="padding-left:5px;display:none;">
</div>
</div>
<div class="tab-pane" id="tabPageAttendanceStatus">
<div id="AttendanceStatus" class="reviewBlock" data-content="List" style="padding-left:5px;">
</div>
<div id="AttendanceStatusForm" class="reviewBlock" data-content="Form" style="padding-left:5px;display:none;">
</div>
</div>
<!--
<div class="tab-pane" id="tabPageAttendanceData">
<div class="control-group" id="field__id_">
<div class="controls">
<textarea class="input-xxlarge" placeholder="Insert CSV data to submit" type="textarea" width="96%" rows="100" id="attendanceData" name="attendanceData"></textarea>
</div>
</div>
<div class="control-group">
<div class="controls">
<button onclick="return false;" class="btn">Update Attendance Data</button>
</div>
</div>
</div>
-->
</div>
</div>
<script>
var modJsList = new Array();
modJsList['tabAttendance'] = new AttendanceAdapter('Attendance','Attendance','','in_time desc');
modJsList['tabAttendance'].setRemoteTable(true);
modJsList['tabAttendanceStatus'] = new AttendanceStatusAdapter('AttendanceStatus','AttendanceStatus','','');
modJsList['tabAttendanceStatus'].setShowAddNew(false);
var modJs = modJsList['tabAttendance'];
</script>
<?php include APP_BASE_PATH.'footer.php';?>

218
ext/admin/attendance/lib.js Normal file
View File

@@ -0,0 +1,218 @@
/*
This file is part of iCE Hrm.
iCE Hrm is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
iCE Hrm is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with iCE Hrm. If not, see <http://www.gnu.org/licenses/>.
------------------------------------------------------------------
Original work Copyright (c) 2012 [Gamonoid Media Pvt. Ltd]
Developer: Thilina Hasantha (thilina.hasantha[at]gmail.com / facebook.com/thilinah)
*/
function AttendanceAdapter(endPoint,tab,filter,orderBy) {
this.initAdapter(endPoint,tab,filter,orderBy);
}
AttendanceAdapter.inherits(AdapterBase);
AttendanceAdapter.method('getDataMapping', function() {
return [
"id",
"employee",
"in_time",
"out_time",
"note"
];
});
AttendanceAdapter.method('getHeaders', function() {
return [
{ "sTitle": "ID" ,"bVisible":false},
{ "sTitle": "Employee" },
{ "sTitle": "Time-In" },
{ "sTitle": "Time-Out"},
{ "sTitle": "Note"}
];
});
AttendanceAdapter.method('getFormFields', function() {
return [
[ "employee", {"label":"Employee","type":"select2","allow-null":false,"remote-source":["Employee","id","first_name+last_name"]}],
[ "id", {"label":"ID","type":"hidden"}],
[ "in_time", {"label":"Time-In","type":"datetime"}],
[ "out_time", {"label":"Time-Out","type":"datetime", "validation":"none"}],
[ "note", {"label":"Note","type":"textarea","validation":"none"}]
];
});
AttendanceAdapter.method('getFilters', function() {
return [
[ "employee", {"label":"Employee","type":"select2","allow-null":false,"remote-source":["Employee","id","first_name+last_name"]}]
];
});
AttendanceAdapter.method('getCustomTableParams', function() {
var that = this;
var dataTableParams = {
"aoColumnDefs": [
{
"fnRender": function(data, cell){
return that.preProcessRemoteTableData(data, cell, 2)
} ,
"aTargets": [2]
},
{
"fnRender": function(data, cell){
return that.preProcessRemoteTableData(data, cell, 3)
} ,
"aTargets": [3]
},
{
"fnRender": function(data, cell){
return that.preProcessRemoteTableData(data, cell, 4)
} ,
"aTargets": [4]
},
{
"fnRender": that.getActionButtons,
"aTargets": [that.getDataMapping().length]
}
]
};
return dataTableParams;
});
AttendanceAdapter.method('preProcessRemoteTableData', function(data, cell, id) {
if(id == 2){
if(cell == '0000-00-00 00:00:00' || cell == "" || cell == undefined || cell == null){
return "";
}
return Date.parse(cell).toString('yyyy MMM d <b>HH:mm</b>');
}else if(id == 3){
if(cell == '0000-00-00 00:00:00' || cell == "" || cell == undefined || cell == null){
return "";
}
return Date.parse(cell).toString('MMM d <b>HH:mm</b>');
}else if(id == 4){
if(cell != undefined && cell != null){
if(cell.length > 10){
return cell.substring(0,10)+"..";
}
}
return cell;
}
});
AttendanceAdapter.method('save', function() {
var validator = new FormValidation(this.getTableName()+"_submit",true,{'ShowPopup':false,"LabelErrorClass":"error"});
if(validator.checkValues()){
var params = validator.getFormParameters();
var msg = this.doCustomValidation(params);
if(msg == null){
var id = $('#'+this.getTableName()+"_submit #id").val();
if(id != null && id != undefined && id != ""){
$(params).attr('id',id);
}
var reqJson = JSON.stringify(params);
var callBackData = [];
callBackData['callBackData'] = [];
callBackData['callBackSuccess'] = 'saveSuccessCallback';
callBackData['callBackFail'] = 'saveFailCallback';
this.customAction('savePunch','admin=attendance',reqJson,callBackData);
}else{
$("#"+this.getTableName()+'Form .label').html(msg);
$("#"+this.getTableName()+'Form .label').show();
}
}
});
AttendanceAdapter.method('saveSuccessCallback', function(callBackData) {
this.get(callBackData);
});
AttendanceAdapter.method('saveFailCallback', function(callBackData) {
this.showMessage("Error saving attendance entry", callBackData);
});
/*
Attendance Status
*/
function AttendanceStatusAdapter(endPoint,tab,filter,orderBy) {
this.initAdapter(endPoint,tab,filter,orderBy);
}
AttendanceStatusAdapter.inherits(AdapterBase);
AttendanceStatusAdapter.method('getDataMapping', function() {
return [
"id",
"employee",
"status"
];
});
AttendanceStatusAdapter.method('getHeaders', function() {
return [
{ "sTitle": "ID" ,"bVisible":false},
{ "sTitle": "Employee" },
{ "sTitle": "Clocked In Status" }
];
});
AttendanceStatusAdapter.method('getFormFields', function() {
return [
];
});
AttendanceStatusAdapter.method('getFilters', function() {
return [
[ "employee", {"label":"Employee","type":"select2","allow-null":false,"remote-source":["Employee","id","first_name+last_name"]}]
];
});
AttendanceStatusAdapter.method('getActionButtonsHtml', function(id,data) {
html = '<div class="online-button-_COLOR_"></div>';
html = html.replace(/_BASE_/g,this.baseUrl);
if(data[2] == "Not Clocked In"){
html = html.replace(/_COLOR_/g,'gray');
}else if(data[2] == "Clocked Out"){
html = html.replace(/_COLOR_/g,'yellow');
}else if(data[2] == "Clocked In"){
html = html.replace(/_COLOR_/g,'green');
}
return html;
});

View File

@@ -0,0 +1,10 @@
{
"label":"Monitor Attendance",
"menu":"Employees",
"order":"8",
"icon":"fa-clock-o",
"user_levels":["Admin"],
"permissions":
{}
}

View File

@@ -0,0 +1,52 @@
<?php
if (!class_exists('Company_structureAdminManager')) {
class Company_structureAdminManager extends AbstractModuleManager{
public function initializeUserClasses(){
}
public function initializeFieldMappings(){
}
public function initializeDatabaseErrorMappings(){
$this->addDatabaseErrorMapping("CONSTRAINT `Fk_Employee_CompanyStructures` FOREIGN KEY (`department`) REFERENCES `CompanyStructures` (`id`)", "Can not delete a company structure while employees are assigned to it");
$this->addDatabaseErrorMapping("CONSTRAINT `Fk_CompanyStructures_Own` FOREIGN KEY (`parent`) REFERENCES ", "Can not delete a parent structure");
}
public function setupModuleClassDefinitions(){
$this->addModelClass('CompanyStructure');
}
}
}
if (!class_exists('CompanyStructure')) {
class CompanyStructure extends ICEHRM_Record {
var $_table = 'CompanyStructures';
public function getAdminAccess(){
return array("get","element","save","delete");
}
public function getManagerAccess(){
return array("get","element","save","delete");
}
public function getUserAccess(){
return array("get","element");
}
public function validateSave($obj){
if($obj->id == $obj->parent && !empty($obj->parent)){
return new IceResponse(IceResponse::ERROR,"A Company structure unit can not be the parent of the same unit");
}
return new IceResponse(IceResponse::SUCCESS,"");
}
}
}

View File

@@ -0,0 +1,96 @@
<?php
/*
This file is part of iCE Hrm.
iCE Hrm is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
iCE Hrm is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with iCE Hrm. If not, see <http://www.gnu.org/licenses/>.
------------------------------------------------------------------
Original work Copyright (c) 2012 [Gamonoid Media Pvt. Ltd]
Developer: Thilina Hasantha (thilina.hasantha[at]gmail.com / facebook.com/thilinah)
*/
$moduleName = 'company_structure';
define('MODULE_PATH',dirname(__FILE__));
include APP_BASE_PATH.'header.php';
include APP_BASE_PATH.'modulejslibs.inc.php';
?>
<script type="text/javascript" src="<?=BASE_URL.'js/d3js/d3.js?v='.$jsVersion?>"></script>
<script type="text/javascript" src="<?=BASE_URL.'js/d3js/d3.layout.js?v='.$jsVersion?>"></script>
<style type="text/css">
.node circle {
cursor: pointer;
fill: #fff;
stroke: steelblue;
stroke-width: 1.5px;
}
.node text {
font-size: 11px;
}
path.link {
fill: none;
stroke: #ccc;
stroke-width: 1.5px;
}
</style>
<div class="span9">
<ul class="nav nav-tabs" id="modTab" style="margin-bottom:0px;margin-left:5px;border-bottom: none;">
<li class="active"><a id="tabCompanyStructure" href="#tabPageCompanyStructure">Company Structure</a></li>
<li><a id="tabCompanyGraph" href="#tabPageCompanyGraph">Company Graph</a></li>
</ul>
<div class="tab-content">
<div class="tab-pane active" id="tabPageCompanyStructure">
<div id="CompanyStructure" class="reviewBlock" data-content="List" style="padding-left:5px;">
</div>
<div id="CompanyStructureForm" class="reviewBlock" data-content="Form" style="padding-left:5px;display:none;">
</div>
</div>
<div class="tab-pane reviewBlock" id="tabPageCompanyGraph" style="overflow-x: scroll;">
</div>
</div>
</div>
<script>
var modJsList = new Array();
modJsList['tabCompanyStructure'] = new CompanyStructureAdapter('CompanyStructure');
<?php if(isset($modulePermissions['perm']['Add Company Structure']) && $modulePermissions['perm']['Add Company Structure'] == "No"){?>
modJsList['tabCompanyStructure'].setShowAddNew(false);
<?php }?>
<?php if(isset($modulePermissions['perm']['Delete Company Structure']) && $modulePermissions['perm']['Delete Company Structure'] == "No"){?>
modJsList['tabCompanyStructure'].setShowDelete(false);
<?php }?>
<?php if(isset($modulePermissions['perm']['Edit Company Structure']) && $modulePermissions['perm']['Edit Company Structure'] == "No"){?>
modJsList['tabCompanyStructure'].setShowEdit(false);
<?php }?>
modJsList['tabCompanyGraph'] = new CompanyGraphAdapter('CompanyStructure');
var modJs = modJsList['tabCompanyStructure'];
</script>
<?php include APP_BASE_PATH.'footer.php';?>

View File

@@ -0,0 +1,306 @@
/**
* Author: Thilina Hasantha
*/
function CompanyStructureAdapter(endPoint) {
this.initAdapter(endPoint);
}
CompanyStructureAdapter.inherits(AdapterBase);
CompanyStructureAdapter.method('getDataMapping', function() {
return [
"id",
"title",
"address",
"type",
"country",
"parent"
];
});
CompanyStructureAdapter.method('getHeaders', function() {
return [
{ "sTitle": "ID","bVisible":false },
{ "sTitle": "Name" },
{ "sTitle": "Address","bSortable":false},
{ "sTitle": "Type"},
{ "sTitle": "Country", "sClass": "center" },
{ "sTitle": "Parent Structure"}
];
});
CompanyStructureAdapter.method('getFormFields', function() {
return [
[ "id", {"label":"ID","type":"hidden","validation":""}],
[ "title", {"label":"Name","type":"text","validation":""}],
[ "description", {"label":"Details","type":"textarea","validation":""}],
[ "address", {"label":"Address","type":"textarea","validation":"none"}],
[ "type", {"label":"Type","type":"select","source":[["Company","Company"],["Head Office","Head Office"],["Regional Office","Regional Office"],["Department","Department"],["Unit","Unit"],["Sub Unit","Sub Unit"],["Other","Other"]]}],
[ "country", {"label":"Country","type":"select","remote-source":["Country","code","name"]}],
[ "parent", {"label":"Parent Structure","type":"select","allow-null":true,"remote-source":["CompanyStructure","id","title"]}]
];
});
/*
* Company Graph
*/
function CompanyGraphAdapter(endPoint) {
this.initAdapter(endPoint);
this.nodeIdCounter = 0;
}
CompanyGraphAdapter.inherits(CompanyStructureAdapter);
CompanyGraphAdapter.method('convertToTree', function(data) {
var ice = {};
ice['id'] = -1;
ice['title'] = '';
ice['name'] = '';
ice['children'] = [];
var parent = null;
var added = {};
for(var i=0;i<data.length;i++){
data[i].name = data[i].title;
if(data[i].parent != null && data[i].parent != undefined){
parent = this.findParent(data,data[i].parent);
if(parent != null){
if(parent.children == undefined || parent.children == null){
parent.children = [];
}
parent.children.push(data[i]);
}
}
}
for(var i=0;i<data.length;i++){
if(data[i].parent == null || data[i].parent == undefined){
ice['children'].push(data[i]);
}
}
return ice;
});
CompanyGraphAdapter.method('findParent', function(data, parent) {
for(var i=0;i<data.length;i++){
if(data[i].title == parent || data[i].title == parent){
return data[i];
}
}
return null;
});
CompanyGraphAdapter.method('createTable', function(elementId) {
$("#tabPageCompanyGraph").html("");
var that = this;
var sourceData = this.sourceData;
//this.fixCyclicParent(sourceData);
var treeData = this.convertToTree(sourceData);
var m = [20, 120, 20, 120],
w = 5000 - m[1] - m[3],
h = 1000 - m[0] - m[2],
root;
var tree = d3.layout.tree()
.size([h, w]);
this.diagonal = d3.svg.diagonal()
.projection(function(d) { return [d.y, d.x]; });
this.vis = d3.select("#tabPageCompanyGraph").append("svg:svg")
.attr("width", w + m[1] + m[3])
.attr("height", h + m[0] + m[2])
.append("svg:g")
.attr("transform", "translate(" + m[3] + "," + m[0] + ")");
root = treeData;
root.x0 = h / 2;
root.y0 = 0;
function toggleAll(d) {
if (d.children) {
console.log(d.name);
d.children.forEach(toggleAll);
that.toggle(d);
}
}
this.update(root, tree, root);
});
CompanyGraphAdapter.method('update', function(source, tree, root) {
var that = this;
var duration = d3.event && d3.event.altKey ? 5000 : 500;
// Compute the new tree layout.
var nodes = tree.nodes(root).reverse();
// Normalize for fixed-depth.
nodes.forEach(function(d) { d.y = d.depth * 180; });
// Update the nodes<65>
var node = that.vis.selectAll("g.node")
.data(nodes, function(d) { return d.id || (d.id = ++that.nodeIdCounter); });
// Enter any new nodes at the parent's previous position.
var nodeEnter = node.enter().append("svg:g")
.attr("class", "node")
.attr("transform", function(d) { return "translate(" + source.y0 + "," + source.x0 + ")"; })
.on("click", function(d) { that.toggle(d); that.update(d, tree, root); });
nodeEnter.append("svg:circle")
.attr("r", 1e-6)
.style("fill", function(d) { return d._children ? "lightsteelblue" : "#fff"; });
nodeEnter.append("svg:text")
.attr("x", function(d) { return d.children || d._children ? -10 : 10; })
.attr("dy", ".35em")
.attr("text-anchor", function(d) { return d.children || d._children ? "end" : "start"; })
.text(function(d) { return d.name; })
.style("fill-opacity", 1e-6);
// Transition nodes to their new position.
var nodeUpdate = node.transition()
.duration(duration)
.attr("transform", function(d) { return "translate(" + d.y + "," + d.x + ")"; });
nodeUpdate.select("circle")
.attr("r", 4.5)
.style("fill", function(d) { return d._children ? "lightsteelblue" : "#fff"; });
nodeUpdate.select("text")
.style("fill-opacity", 1);
// Transition exiting nodes to the parent's new position.
var nodeExit = node.exit().transition()
.duration(duration)
.attr("transform", function(d) { return "translate(" + source.y + "," + source.x + ")"; })
.remove();
nodeExit.select("circle")
.attr("r", 1e-6);
nodeExit.select("text")
.style("fill-opacity", 1e-6);
// Update the links<6B>
var link = that.vis.selectAll("path.link")
.data(tree.links(nodes), function(d) { return d.target.id; });
// Enter any new links at the parent's previous position.
link.enter().insert("svg:path", "g")
.attr("class", "link")
.attr("d", function(d) {
var o = {x: source.x0, y: source.y0};
return that.diagonal({source: o, target: o});
})
.transition()
.duration(duration)
.attr("d", that.diagonal);
// Transition links to their new position.
link.transition()
.duration(duration)
.attr("d", that.diagonal);
// Transition exiting nodes to the parent's new position.
link.exit().transition()
.duration(duration)
.attr("d", function(d) {
var o = {x: source.x, y: source.y};
return that.diagonal({source: o, target: o});
})
.remove();
// Stash the old positions for transition.
nodes.forEach(function(d) {
d.x0 = d.x;
d.y0 = d.y;
});
});
// Toggle children.
CompanyGraphAdapter.method('toggle', function(d) {
if (d.children) {
d._children = d.children;
d.children = null;
} else {
d.children = d._children;
d._children = null;
}
});
CompanyGraphAdapter.method('getSourceDataById', function(id) {
for(var i=0; i< this.sourceData.length; i++){
if(this.sourceData[i].id == id){
return this.sourceData[i];
}
}
return null;
});
CompanyGraphAdapter.method('fixCyclicParent', function(sourceData) {
var errorMsg = "";
for(var i=0; i< sourceData.length; i++){
var obj = sourceData[i];
var curObj = obj;
var parentIdArr = {};
parentIdArr[curObj.id] = 1;
while(curObj.parent != null && curObj.parent != undefined){
var parent = this.getSourceDataById(curObj.parent);
if(parent == null){
break;
}else if(parentIdArr[parent.id] == 1){
errorMsg = obj.title +"'s parent structure set to "+parent.title+"<br/>";
obj.parent = null;
break;
}
parentIdArr[parent.id] = 1;
curObj = parent;
}
}
if(errorMsg != ""){
this.showMessage("Company Structure is having a cyclic dependency","We found a cyclic dependency due to following reasons:<br/>"+errorMsg);
return false;
}
return true;
});
CompanyGraphAdapter.method('getHelpLink', function () {
return 'http://blog.icehrm.com/?page_id=61';
});

View File

@@ -0,0 +1,16 @@
{
"label":"Company Structure",
"menu":"Admin",
"order":"2",
"icon":"fa-building-o",
"user_levels":["Admin","Manager"],
"permissions":
{
"Manager":{
"Add Company Structure":"No",
"Edit Company Structure":"No",
"Delete Company Structure":"No"
}
}
}

View File

@@ -0,0 +1,55 @@
<?php
/*
This file is part of iCE Hrm.
iCE Hrm is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
iCE Hrm is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with iCE Hrm. If not, see <http://www.gnu.org/licenses/>.
------------------------------------------------------------------
Original work Copyright (c) 2012 [Gamonoid Media Pvt. Ltd]
Developer: Thilina Hasantha (thilina.hasantha[at]gmail.com / facebook.com/thilinah)
*/
class DashboardActionManager extends SubActionManager{
public function getInitData($req){
$data = array();
$employees = new Employee();
$data['numberOfEmployees'] = $employees->Count("1 = 1");
$company = new CompanyStructure();
$data['numberOfCompanyStuctures'] = $company->Count("1 = 1");
$user = new User();
$data['numberOfUsers'] = $user->Count("1 = 1");
$project = new Project();
$data['numberOfProjects'] = $project->Count("status = 'Active'");
$attendance = new Attendance();
$data['numberOfAttendanceLastWeek'] = $attendance->Count("in_time > '".date("Y-m-d H:i:s",strtotime("-1 week"))."'");
$empLeave = new EmployeeLeave();
$data['numberOfLeaves'] = $empLeave->Count("date_start > '".date("Y-m-d")."'");
$timeEntry = new EmployeeTimeEntry();
$data['numberOfAttendanceLastWeek'] = $attendance->Count("in_time > '".date("Y-m-d H:i:s",strtotime("-1 week"))."'");
return new IceResponse(IceResponse::SUCCESS,$data);
}
}

View File

@@ -0,0 +1,22 @@
<?php
if (!class_exists('DashboardAdminManager')) {
class DashboardAdminManager extends AbstractModuleManager{
public function initializeUserClasses(){
}
public function initializeFieldMappings(){
}
public function initializeDatabaseErrorMappings(){
}
public function setupModuleClassDefinitions(){
}
}
}

View File

@@ -0,0 +1,223 @@
<?php
/*
This file is part of iCE Hrm.
iCE Hrm is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
iCE Hrm is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with iCE Hrm. If not, see <http://www.gnu.org/licenses/>.
------------------------------------------------------------------
Original work Copyright (c) 2012 [Gamonoid Media Pvt. Ltd]
Developer: Thilina Hasantha (thilina.hasantha[at]gmail.com / facebook.com/thilinah)
*/
$moduleName = 'dashboard';
define('MODULE_PATH',dirname(__FILE__));
include APP_BASE_PATH.'header.php';
include APP_BASE_PATH.'modulejslibs.inc.php';
?><div class="span9">
<div id="iceannon">
<div class="callout callout-warning lead" style="font-size: 14px;">
<h4>Why not upgrade to IceHrm Pro Version</h4>
<p>
IceHrm Pro is the feature rich upgrade to IceHrm open source version. It comes with improved modules for
employee management, leave management, LDAP support and number of other features over open source version.
Hit this <a href="http://icehrm.com/#compare" class="btn btn-primary btn-xs target="_blank">link</a> to do a full one to one comparison.
Also you can learn more about IceHrm Pro <a href="http://blog.icehrm.com/icehrm-pro/" class="btn btn-primary btn-xs" target="_blank">here</a>
<br/>
<br/>
<a href="http://icehrm.com/modules.php" class="btn btn-success btm-xs" target="_blank"><i class="fa fa-checkout"></i> Buy IceHrm Pro</a>
</p>
</div>
</div>
<div class="row">
<div class="col-lg-3 col-xs-6">
<!-- small box -->
<div class="small-box bg-aqua">
<div class="inner">
<h3>
People
</h3>
<p id="numberOfEmployees">
.. Employees
</p>
</div>
<div class="icon">
<i class="ion ion-person-stalker"></i>
</div>
<a href="#" class="small-box-footer" id="employeeLink">
Manage Employees <i class="fa fa-arrow-circle-right"></i>
</a>
</div>
</div><!-- ./col -->
<div class="col-lg-3 col-xs-6">
<!-- small box -->
<div class="small-box bg-green">
<div class="inner">
<h3 id="numberOfCompanyStuctures">..</h3>
<p >
Company Structures
</p>
</div>
<div class="icon">
<i class="ion ion-shuffle"></i>
</div>
<a href="#" class="small-box-footer" id="companyLink">
Manage Company <i class="fa fa-arrow-circle-right"></i>
</a>
</div>
</div><!-- ./col -->
<div class="col-lg-3 col-xs-6">
<!-- small box -->
<div class="small-box bg-yellow">
<div class="inner">
<h3>Users</h3>
<p id="numberOfUsers">
.. Users
</p>
</div>
<div class="icon">
<i class="ion ion-person-add"></i>
</div>
<a href="#" class="small-box-footer" id="usersLink">
Manage Users <i class="fa fa-arrow-circle-right"></i>
</a>
</div>
</div><!-- ./col -->
<div class="col-lg-3 col-xs-6">
<!-- small box -->
<div class="small-box bg-red">
<div class="inner">
<h3 id="numberOfProjects">..</h3>
<p>
Active Projects
</p>
</div>
<div class="icon">
<i class="ion ion-pie-graph"></i>
</div>
<a href="#" class="small-box-footer" id="projectsLink">
Update Clients/Projects <i class="fa fa-arrow-circle-right"></i>
</a>
</div>
</div><!-- ./col -->
</div>
<div class="row">
<div class="col-lg-3 col-xs-6">
<!-- small box -->
<div class="small-box bg-yellow">
<div class="inner">
<h3>
Attendance
</h3>
<p id="numberOfAttendanceLastWeek">
.. Entries Last Week
</p>
</div>
<div class="icon">
<i class="ion ion-clock"></i>
</div>
<a href="#" class="small-box-footer" id="attendanceLink">
Monitor Attendance <i class="fa fa-arrow-circle-right"></i>
</a>
</div>
</div><!-- ./col -->
<div class="col-lg-3 col-xs-6">
<!-- small box -->
<div class="small-box bg-red">
<div class="inner">
<h3 id="numberOfLeaves">..</h3>
<p >Upcoming Leaves</p>
</div>
<div class="icon">
<i class="ion ion-calendar"></i>
</div>
<a href="#" class="small-box-footer" id="leaveLink">
Leave Management <i class="fa fa-arrow-circle-right"></i>
</a>
</div>
</div><!-- ./col -->
<div class="col-lg-3 col-xs-6">
<!-- small box -->
<div class="small-box bg-teal">
<div class="inner">
<h3>Reports</h3>
<p>
View / Download Reports
</p>
</div>
<div class="icon">
<i class="ion ion-document-text"></i>
</div>
<a href="#" class="small-box-footer" id="reportsLink">
Create a Report <i class="fa fa-arrow-circle-right"></i>
</a>
</div>
</div><!-- ./col -->
<div class="col-lg-3 col-xs-6">
<!-- small box -->
<div class="small-box bg-green">
<div class="inner">
<h3>Settings</h3>
<p>
Configure IceHrm
</p>
</div>
<div class="icon">
<i class="ion ion-settings"></i>
</div>
<a href="#" class="small-box-footer" id="settingsLink">
Update Settings <i class="fa fa-arrow-circle-right"></i>
</a>
</div>
</div><!-- ./col -->
</div>
</div>
<script>
var modJsList = new Array();
modJsList['tabDashboard'] = new DashboardAdapter('Dashboard','Dashboard');
var modJs = modJsList['tabDashboard'];
$("#employeeLink").attr("href",modJs.getCustomUrl('?g=admin&n=employees&m=admin_Admin'));
$("#companyLink").attr("href",modJs.getCustomUrl('?g=admin&n=company_structure&m=admin_Admin'));
$("#usersLink").attr("href",modJs.getCustomUrl('?g=admin&n=users&m=admin_System'));
$("#projectsLink").attr("href",modJs.getCustomUrl('?g=admin&n=projects&m=admin_Admin'));
$("#attendanceLink").attr("href",modJs.getCustomUrl('?g=admin&n=attendance&m=admin_Admin'));
$("#leaveLink").attr("href",modJs.getCustomUrl('?g=admin&n=leaves&m=admin_Admin'));
$("#reportsLink").attr("href",modJs.getCustomUrl('?g=admin&n=reports&m=admin_Reports'));
$("#settingsLink").attr("href",modJs.getCustomUrl('?g=admin&n=settings&m=admin_System'));
modJs.getInitData();
$(document).ready(function(){
try{
$.ajax({
url : "https://icehrm-public.s3.amazonaws.com/icehrmnews.html",
success : function(result){
$('#iceannon').html(result);
}
});
}catch(e){}
});
</script>
<?php include APP_BASE_PATH.'footer.php';?>

View File

@@ -0,0 +1,76 @@
/*
This file is part of iCE Hrm.
iCE Hrm is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
iCE Hrm is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with iCE Hrm. If not, see <http://www.gnu.org/licenses/>.
------------------------------------------------------------------
Original work Copyright (c) 2012 [Gamonoid Media Pvt. Ltd]
Developer: Thilina Hasantha (thilina.hasantha[at]gmail.com / facebook.com/thilinah)
*/
function DashboardAdapter(endPoint) {
this.initAdapter(endPoint);
}
DashboardAdapter.inherits(AdapterBase);
DashboardAdapter.method('getDataMapping', function() {
return [];
});
DashboardAdapter.method('getHeaders', function() {
return [];
});
DashboardAdapter.method('getFormFields', function() {
return [];
});
DashboardAdapter.method('get', function(callBackData) {
});
DashboardAdapter.method('getInitData', function() {
var that = this;
var object = {};
var reqJson = JSON.stringify(object);
var callBackData = [];
callBackData['callBackData'] = [];
callBackData['callBackSuccess'] = 'getInitDataSuccessCallBack';
callBackData['callBackFail'] = 'getInitDataFailCallBack';
this.customAction('getInitData','admin=dashboard',reqJson,callBackData);
});
DashboardAdapter.method('getInitDataSuccessCallBack', function(data) {
$("#numberOfEmployees").html(data['numberOfEmployees']+" Employees");
$("#numberOfCompanyStuctures").html(data['numberOfCompanyStuctures']);
$("#numberOfUsers").html(data['numberOfUsers']+" Users");
$("#numberOfProjects").html(data['numberOfProjects']);
$("#numberOfAttendanceLastWeek").html(data['numberOfAttendanceLastWeek']+" Entries Last Week");
$("#numberOfLeaves").html(data['numberOfLeaves']);
$("#numberOfTimeEntries").html(data['numberOfTimeEntries']);
});
DashboardAdapter.method('getInitDataFailCallBack', function(callBackData) {
});

View File

@@ -0,0 +1,11 @@
{
"label":"Dashboard",
"menu":"Admin",
"order":"1",
"icon":"fa-desktop",
"user_levels":["Admin"],
"permissions":
{
}
}

View File

@@ -0,0 +1,69 @@
<?php
if (!class_exists('DocumentsAdminManager')) {
class DocumentsAdminManager extends AbstractModuleManager{
public function initializeUserClasses(){
}
public function initializeFieldMappings(){
$this->addFileFieldMapping('EmployeeDocument', 'attachment', 'name');
}
public function initializeDatabaseErrorMappings(){
$this->addDatabaseErrorMapping('CONSTRAINT `Fk_EmployeeDocuments_Documents` FOREIGN KEY','Can not delete Document Type, users have already uploaded these types of documents');
}
public function setupModuleClassDefinitions(){
$this->addModelClass('Document');
$this->addModelClass('EmployeeDocument');
}
}
}
if (!class_exists('Document')) {
class Document extends ICEHRM_Record {
var $_table = 'Documents';
public function getAdminAccess(){
return array("get","element","save","delete");
}
public function getUserAccess(){
return array();
}
}
}
if (!class_exists('EmployeeDocument')) {
class EmployeeDocument extends ICEHRM_Record {
var $_table = 'EmployeeDocuments';
public function getAdminAccess(){
return array("get","element","save","delete");
}
public function getManagerAccess(){
return array("get","element","save","delete");
}
public function getUserAccess(){
return array("get");
}
public function getUserOnlyMeAccess(){
return array("element","save","delete");
}
public function Insert(){
if(empty($this->date_added)){
$this->date_added = date("Y-m-d H:i:s");
}
return parent::Insert();
}
}
}

View File

@@ -0,0 +1,64 @@
<?php
/*
This file is part of iCE Hrm.
iCE Hrm is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
iCE Hrm is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with iCE Hrm. If not, see <http://www.gnu.org/licenses/>.
------------------------------------------------------------------
Original work Copyright (c) 2012 [Gamonoid Media Pvt. Ltd]
Developer: Thilina Hasantha (thilina.hasantha[at]gmail.com / facebook.com/thilinah)
*/
$moduleName = 'documents';
define('MODULE_PATH',dirname(__FILE__));
include APP_BASE_PATH.'header.php';
include APP_BASE_PATH.'modulejslibs.inc.php';
?><div class="span9">
<ul class="nav nav-tabs" id="modTab" style="margin-bottom:0px;margin-left:5px;border-bottom: none;">
<li class="active"><a id="tabDocument" href="#tabPageDocument">Document Types</a></li>
<li class=""><a id="tabEmployeeDocument" href="#tabPageEmployeeDocument">Employee Documents</a></li>
</ul>
<div class="tab-content">
<div class="tab-pane active" id="tabPageDocument">
<div id="Document" class="reviewBlock" data-content="List" style="padding-left:5px;">
</div>
<div id="DocumentForm" class="reviewBlock" data-content="Form" style="padding-left:5px;display:none;">
</div>
</div>
<div class="tab-pane" id="tabPageEmployeeDocument">
<div id="EmployeeDocument" class="reviewBlock" data-content="List" style="padding-left:5px;">
</div>
<div id="EmployeeDocumentForm" class="reviewBlock" data-content="Form" style="padding-left:5px;display:none;">
</div>
</div>
</div>
</div>
<script>
var modJsList = new Array();
modJsList['tabDocument'] = new DocumentAdapter('Document','Document');
modJsList['tabEmployeeDocument'] = new EmployeeDocumentAdapter('EmployeeDocument','EmployeeDocument');
var modJs = modJsList['tabDocument'];
</script>
<?php include APP_BASE_PATH.'footer.php';?>

107
ext/admin/documents/lib.js Normal file
View File

@@ -0,0 +1,107 @@
/**
* Author: Thilina Hasantha
*/
/**
* DocumentAdapter
*/
function DocumentAdapter(endPoint) {
this.initAdapter(endPoint);
}
DocumentAdapter.inherits(AdapterBase);
DocumentAdapter.method('getDataMapping', function() {
return [
"id",
"name",
"details"
];
});
DocumentAdapter.method('getHeaders', function() {
return [
{ "sTitle": "ID" ,"bVisible":false},
{ "sTitle": "Name" },
{ "sTitle": "Details"}
];
});
DocumentAdapter.method('getFormFields', function() {
return [
[ "id", {"label":"ID","type":"hidden"}],
[ "name", {"label":"Name","type":"text","validation":""}],
[ "details", {"label":"Details","type":"textarea","validation":"none"}]
];
});
DocumentAdapter.method('getHelpLink', function () {
return 'http://blog.icehrm.com/?page_id=88';
});
function EmployeeDocumentAdapter(endPoint) {
this.initAdapter(endPoint);
}
EmployeeDocumentAdapter.inherits(AdapterBase);
EmployeeDocumentAdapter.method('getDataMapping', function() {
return [
"id",
"employee",
"document",
"details",
"date_added",
"status",
"attachment"
];
});
EmployeeDocumentAdapter.method('getHeaders', function() {
return [
{ "sTitle": "ID" ,"bVisible":false},
{ "sTitle": "Employee" },
{ "sTitle": "Document" },
{ "sTitle": "Details" },
{ "sTitle": "Date Added"},
{ "sTitle": "Status"},
{ "sTitle": "Attachment","bVisible":false}
];
});
EmployeeDocumentAdapter.method('getFormFields', function() {
return [
[ "id", {"label":"ID","type":"hidden"}],
[ "employee", {"label":"Employee","type":"select2","remote-source":["Employee","id","first_name+last_name"]}],
[ "document", {"label":"Document","type":"select2","remote-source":["Document","id","name"]}],
[ "date_added", {"label":"Date Added","type":"date","validation":""}],
[ "valid_until", {"label":"Valid Until","type":"date","validation":"none"}],
[ "status", {"label":"Status","type":"select","source":[["Active","Active"],["Inactive","Inactive"],["Draft","Draft"]]}],
[ "details", {"label":"Details","type":"textarea","validation":"none"}],
[ "attachment", {"label":"Attachment","type":"fileupload","validation":"none"}]
];
});
EmployeeDocumentAdapter.method('getFilters', function() {
return [
[ "employee", {"label":"Employee","type":"select2","remote-source":["Employee","id","first_name+last_name"]}]
];
});
EmployeeDocumentAdapter.method('getActionButtonsHtml', function(id,data) {
var html = '<div style="width:80px;"><img class="tableActionButton" src="_BASE_images/edit.png" style="cursor:pointer;" rel="tooltip" title="Edit" onclick="modJs.edit(_id_);return false;"></img><img class="tableActionButton" src="_BASE_images/download.png" style="margin-left:15px;cursor:pointer;" rel="tooltip" title="Download Document" onclick="download(\'_attachment_\');return false;"></img><img class="tableActionButton" src="_BASE_images/delete.png" style="margin-left:15px;cursor:pointer;" rel="tooltip" title="Delete" onclick="modJs.deleteRow(_id_);return false;"></img></div>';
html = html.replace(/_id_/g,id);
html = html.replace(/_attachment_/g,data[6]);
html = html.replace(/_BASE_/g,this.baseUrl);
return html;
});

View File

@@ -0,0 +1,11 @@
{
"label":"Document Management",
"menu":"Employees",
"order":"2",
"icon":"fa-files-o",
"user_levels":["Admin"],
"permissions":
{
}
}

View File

@@ -0,0 +1,71 @@
<?php
if (!class_exists('EmployeesAdminManager')) {
class EmployeesAdminManager extends AbstractModuleManager{
public function initializeUserClasses(){
}
public function initializeFieldMappings(){
}
public function initializeDatabaseErrorMappings(){
$this->addDatabaseErrorMapping('CONSTRAINT `Fk_User_Employee` FOREIGN KEY',"Can not delete Employee, please delete the User for this employee first.");
$this->addDatabaseErrorMapping("Duplicate entry|for key 'employee'","A duplicate entry found");
}
public function setupModuleClassDefinitions(){
$this->addModelClass('Employee');
$this->addModelClass('EmploymentStatus');
}
}
}
if (!class_exists('Employee')) {
class Employee extends ICEHRM_Record {
public function getAdminAccess(){
return array("get","element","save","delete");
}
public function getManagerAccess(){
return array("get","element","save");
}
public function getUserAccess(){
return array("get");
}
public function getUserOnlyMeAccess(){
return array("element","save");
}
public function getUserOnlyMeAccessField(){
return "id";
}
var $_table = 'Employees';
}
}
if (!class_exists('EmploymentStatus')) {
class EmploymentStatus extends ICEHRM_Record {
var $_table = 'EmploymentStatus';
public function getAdminAccess(){
return array("get","element","save","delete");
}
public function getManagerAccess(){
return array("get","element","save");
}
public function getUserAccess(){
return array();
}
}
}

View File

@@ -0,0 +1,34 @@
<?php
$moduleName = 'employees';
define('MODULE_PATH',dirname(__FILE__));
include APP_BASE_PATH.'header.php';
include APP_BASE_PATH.'modulejslibs.inc.php';
?><div class="span9">
<ul class="nav nav-tabs" id="modTab" style="margin-bottom:0px;margin-left:5px;border-bottom: none;">
<li class="active"><a id="tabEmployee" href="#tabPageEmployee">Employees</a></li>
</ul>
<div class="tab-content">
<div class="tab-pane active" id="tabPageEmployee">
<div id="Employee" class="reviewBlock" data-content="List" style="padding-left:5px;">
</div>
<div id="EmployeeForm" class="reviewBlock" data-content="Form" style="padding-left:5px;display:none;">
</div>
</div>
</div>
</div>
<script>
var modJsList = new Array();
modJsList['tabEmployee'] = new EmployeeAdapter('Employee');
modJsList['tabEmployee'].setRemoteTable(true);
var modJs = modJsList['tabEmployee'];
</script>
<?php include APP_BASE_PATH.'footer.php';?>

View File

@@ -0,0 +1,96 @@
/**
* Author: Thilina Hasantha
*/
function EmployeeAdapter(endPoint) {
this.initAdapter(endPoint);
}
EmployeeAdapter.inherits(AdapterBase);
EmployeeAdapter.method('getDataMapping', function() {
return [
"id",
"employee_id",
"first_name",
"last_name",
"mobile_phone",
"department",
"gender",
"supervisor"
];
});
EmployeeAdapter.method('getHeaders', function() {
return [
{ "sTitle": "ID" },
{ "sTitle": "Employee Number" },
{ "sTitle": "First Name" },
{ "sTitle": "Last Name"},
{ "sTitle": "Mobile"},
{ "sTitle": "Department"},
{ "sTitle": "Gender"},
{ "sTitle": "Supervisor"}
];
});
EmployeeAdapter.method('getFormFields', function() {
return [
[ "id", {"label":"ID","type":"hidden","validation":""}],
[ "employee_id", {"label":"Employee Number","type":"text","validation":""}],
[ "first_name", {"label":"First Name","type":"text","validation":""}],
[ "middle_name", {"label":"Middle Name","type":"text","validation":"none"}],
[ "last_name", {"label":"Last Name","type":"text","validation":""}],
[ "nationality", {"label":"Nationality","type":"select2","remote-source":["Nationality","id","name"]}],
[ "birthday", {"label":"Date of Birth","type":"date","validation":""}],
[ "gender", {"label":"Gender","type":"select","source":[["Male","Male"],["Female","Female"]]}],
[ "marital_status", {"label":"Marital Status","type":"select","source":[["Married","Married"],["Single","Single"],["Divorced","Divorced"],["Widowed","Widowed"],["Other","Other"]]}],
[ "ssn_num", {"label":"SSN/NRIC","type":"text","validation":"none"}],
[ "nic_num", {"label":"NIC","type":"text","validation":"none"}],
[ "other_id", {"label":"Other ID","type":"text","validation":"none"}],
[ "driving_license", {"label":"Driving License No","type":"text","validation":"none"}],
/*[ "driving_license_exp_date", {"label":"License Exp Date","type":"date","validation":"none"}],*/
[ "employment_status", {"label":"Employment Status","type":"select2","remote-source":["EmploymentStatus","id","name"]}],
[ "job_title", {"label":"Job Title","type":"select2","remote-source":["JobTitle","id","name"]}],
[ "pay_grade", {"label":"Pay Grade","type":"select2","allow-null":true,"remote-source":["PayGrade","id","name"]}],
[ "work_station_id", {"label":"Work Station Id","type":"text","validation":"none"}],
[ "address1", {"label":"Address Line 1","type":"text","validation":"none"}],
[ "address2", {"label":"Address Line 2","type":"text","validation":"none"}],
[ "city", {"label":"City","type":"text","validation":"none"}],
[ "country", {"label":"Country","type":"select2","remote-source":["Country","code","name"]}],
[ "province", {"label":"Province","type":"select2","allow-null":true,"remote-source":["Province","id","name"]}],
[ "postal_code", {"label":"Postal/Zip Code","type":"text","validation":"none"}],
[ "home_phone", {"label":"Home Phone","type":"text","validation":"none"}],
[ "mobile_phone", {"label":"Mobile Phone","type":"text","validation":"none"}],
[ "work_phone", {"label":"Work Phone","type":"text","validation":"none"}],
[ "work_email", {"label":"Work Email","type":"text","validation":"emailOrEmpty"}],
[ "private_email", {"label":"Private Email","type":"text","validation":"emailOrEmpty"}],
[ "joined_date", {"label":"Joined Date","type":"date","validation":""}],
[ "confirmation_date", {"label":"Confirmation Date","type":"date","validation":"none"}],
[ "department", {"label":"Department","type":"select2","remote-source":["CompanyStructure","id","title"]}],
[ "supervisor", {"label":"Supervisor","type":"select2","allow-null":true,"remote-source":["Employee","id","first_name+last_name"]}]
];
});
EmployeeAdapter.method('getFilters', function() {
return [
[ "job_title", {"label":"Job Title","type":"select2","allow-null":true,"null-label":"All Job Titles","remote-source":["JobTitle","id","name"]}],
[ "department", {"label":"Department","type":"select2","allow-null":true,"null-label":"All Departments","remote-source":["CompanyStructure","id","title"]}],
[ "supervisor", {"label":"Supervisor","type":"select2","allow-null":true,"null-label":"Anyone","remote-source":["Employee","id","first_name+last_name"]}]
];
});
EmployeeAdapter.method('getActionButtonsHtml', function(id) {
var html = '<div style="width:110px;"><img class="tableActionButton" src="_BASE_images/user.png" style="cursor:pointer;" rel="tooltip" title="Login as this Employee" onclick="modJs.setAdminEmployee(_id_);return false;"></img><img class="tableActionButton" src="_BASE_images/edit.png" style="cursor:pointer;margin-left:15px;" rel="tooltip" title="Edit" onclick="modJs.edit(_id_);return false;"></img><img class="tableActionButton" src="_BASE_images/delete.png" style="margin-left:15px;cursor:pointer;" rel="tooltip" title="Terminate Employee" onclick="modJs.deleteRow(_id_);return false;"></img></div>';
html = html.replace(/_id_/g,id);
html = html.replace(/_BASE_/g,this.baseUrl);
return html;
});
EmployeeAdapter.method('getHelpLink', function () {
return 'http://blog.icehrm.com/?page_id=69';
});

View File

@@ -0,0 +1,11 @@
{
"label":"Employees",
"menu":"Employees",
"order":"1",
"icon":"fa-users",
"user_levels":["Admin"],
"permissions":
{
}
}

View File

@@ -0,0 +1,54 @@
<?php
if (!class_exists('JobsAdminManager')) {
class JobsAdminManager extends AbstractModuleManager{
public function initializeUserClasses(){
}
public function initializeFieldMappings(){
}
public function initializeDatabaseErrorMappings(){
}
public function setupModuleClassDefinitions(){
$this->addModelClass('JobTitle');
$this->addModelClass('PayGrade');
}
}
}
if (!class_exists('JobTitle')) {
class JobTitle extends ICEHRM_Record {
var $_table = 'JobTitles';
public function getAdminAccess(){
return array("get","element","save","delete");
}
public function getUserAccess(){
return array();
}
}
}
if (!class_exists('PayGrade')) {
class PayGrade extends ICEHRM_Record {
var $_table = 'PayGrades';
public function getAdminAccess(){
return array("get","element","save","delete");
}
public function getUserAccess(){
return array();
}
}
}

74
ext/admin/jobs/index.php Normal file
View File

@@ -0,0 +1,74 @@
<?php
/*
This file is part of iCE Hrm.
iCE Hrm is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
iCE Hrm is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with iCE Hrm. If not, see <http://www.gnu.org/licenses/>.
------------------------------------------------------------------
Original work Copyright (c) 2012 [Gamonoid Media Pvt. Ltd]
Developer: Thilina Hasantha (thilina.hasantha[at]gmail.com / facebook.com/thilinah)
*/
$moduleName = 'jobs';
define('MODULE_PATH',dirname(__FILE__));
include APP_BASE_PATH.'header.php';
include APP_BASE_PATH.'modulejslibs.inc.php';
?><div class="span9">
<ul class="nav nav-tabs" id="modTab" style="margin-bottom:0px;margin-left:5px;border-bottom: none;">
<li class="active"><a id="tabJobTitles" href="#tabPageJobTitles">Job Titles</a></li>
<li><a id="tabPayGrades" href="#tabPagePayGrades">Pay Grades</a></li>
<li><a id="tabEmploymentStatus" href="#tabPageEmploymentStatus">Employment Status</a></li>
</ul>
<div class="tab-content">
<div class="tab-pane active" id="tabPageJobTitles">
<div id="JobTitle" class="reviewBlock" data-content="List" style="padding-left:5px;">
</div>
<div id="JobTitleForm" class="reviewBlock" data-content="Form" style="padding-left:5px;display:none;">
</div>
</div>
<div class="tab-pane" id="tabPagePayGrades">
<div id="PayGrade" class="reviewBlock" data-content="List" style="padding-left:5px;">
</div>
<div id="PayGradeForm" class="reviewBlock" data-content="Form" style="padding-left:5px;display:none;">
</div>
</div>
<div class="tab-pane" id="tabPageEmploymentStatus">
<div id="EmploymentStatus" class="reviewBlock" data-content="List" style="padding-left:5px;">
</div>
<div id="EmploymentStatusForm" class="reviewBlock" data-content="Form" style="padding-left:5px;display:none;">
</div>
</div>
</div>
</div>
<script>
var modJsList = new Array();
modJsList['tabJobTitles'] = new JobTitleAdapter('JobTitle');
modJsList['tabPayGrades'] = new PayGradeAdapter('PayGrade');
modJsList['tabEmploymentStatus'] = new EmploymentStatusAdapter('EmploymentStatus');
var modJs = modJsList['tabJobTitles'];
</script>
<?php include APP_BASE_PATH.'footer.php';?>

139
ext/admin/jobs/lib.js Normal file
View File

@@ -0,0 +1,139 @@
/**
* Author: Thilina Hasantha
*/
/**
* JobTitleAdapter
*/
function JobTitleAdapter(endPoint) {
this.initAdapter(endPoint);
}
JobTitleAdapter.inherits(AdapterBase);
JobTitleAdapter.method('getDataMapping', function() {
return [
"id",
"code",
"name"
];
});
JobTitleAdapter.method('getHeaders', function() {
return [
{ "sTitle": "ID" ,"bVisible":false},
{ "sTitle": "Code" },
{ "sTitle": "Name" }
];
});
JobTitleAdapter.method('getFormFields', function() {
return [
[ "id", {"label":"ID","type":"hidden"}],
[ "code", {"label":"Job Title Code","type":"text"}],
[ "name", {"label":"Job Title","type":"text"}],
[ "description", {"label":"Description","type":"textarea"}],
[ "specification", {"label":"Specification","type":"textarea"}]
];
});
JobTitleAdapter.method('getHelpLink', function () {
return 'http://blog.icehrm.com/?page_id=80';
});
/**
* PayGradeAdapter
*/
function PayGradeAdapter(endPoint) {
this.initAdapter(endPoint);
}
PayGradeAdapter.inherits(AdapterBase);
PayGradeAdapter.method('getDataMapping', function() {
return [
"id",
"name",
"currency",
"min_salary",
"max_salary"
];
});
PayGradeAdapter.method('getHeaders', function() {
return [
{ "sTitle": "ID" ,"bVisible":false},
{ "sTitle": "Name" },
{ "sTitle": "Currency"},
{ "sTitle": "Min Salary" },
{ "sTitle": "Max Salary"}
];
});
PayGradeAdapter.method('getFormFields', function() {
return [
[ "id", {"label":"ID","type":"hidden"}],
[ "name", {"label":"Pay Grade Name","type":"text"}],
[ "currency", {"label":"Currency","type":"select2","remote-source":["CurrencyType","code","name"]}],
[ "min_salary", {"label":"Min Salary","type":"text","validation":"float"}],
[ "max_salary", {"label":"Max Salary","type":"text","validation":"float"}]
];
});
PayGradeAdapter.method('doCustomValidation', function(params) {
try{
if(parseFloat(params.min_salary)>parseFloat(params.max_salary)){
return "Min Salary should be smaller than Max Salary";
}
}catch(e){
}
return null;
});
/**
* EmploymentStatusAdapter
*/
function EmploymentStatusAdapter(endPoint) {
this.initAdapter(endPoint);
}
EmploymentStatusAdapter.inherits(AdapterBase);
EmploymentStatusAdapter.method('getDataMapping', function() {
return [
"id",
"name",
"description"
];
});
EmploymentStatusAdapter.method('getHeaders', function() {
return [
{ "sTitle": "ID" },
{ "sTitle": "Name" },
{ "sTitle": "Description"}
];
});
EmploymentStatusAdapter.method('getFormFields', function() {
return [
[ "id", {"label":"ID","type":"hidden"}],
[ "name", {"label":"Employment Status","type":"text"}],
[ "description", {"label":"Description","type":"textarea","validation":""}]
];
});

11
ext/admin/jobs/meta.json Normal file
View File

@@ -0,0 +1,11 @@
{
"label":"Job Details Setup",
"menu":"Admin",
"order":"3",
"icon":"fa-columns",
"user_levels":["Admin"],
"permissions":
{
}
}

View File

@@ -0,0 +1,37 @@
<?php
if (!class_exists('LoansAdminManager')) {
class LoansAdminManager extends AbstractModuleManager{
public function initializeUserClasses(){
}
public function initializeFieldMappings(){
}
public function initializeDatabaseErrorMappings(){
}
public function setupModuleClassDefinitions(){
$this->addModelClass('CompanyLoan');
}
}
}
if (!class_exists('CompanyLoan')) {
class CompanyLoan extends ICEHRM_Record {
var $_table = 'CompanyLoans';
public function getAdminAccess(){
return array("get","element","save","delete");
}
public function getUserAccess(){
return array();
}
}
}

64
ext/admin/loans/index.php Normal file
View File

@@ -0,0 +1,64 @@
<?php
/*
This file is part of iCE Hrm.
iCE Hrm is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
iCE Hrm is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with iCE Hrm. If not, see <http://www.gnu.org/licenses/>.
------------------------------------------------------------------
Original work Copyright (c) 2012 [Gamonoid Media Pvt. Ltd]
Developer: Thilina Hasantha (thilina.hasantha[at]gmail.com / facebook.com/thilinah)
*/
$moduleName = 'CompanyLoans';
define('MODULE_PATH',dirname(__FILE__));
include APP_BASE_PATH.'header.php';
include APP_BASE_PATH.'modulejslibs.inc.php';
?><div class="span9">
<ul class="nav nav-tabs" id="modTab" style="margin-bottom:0px;margin-left:5px;border-bottom: none;">
<li class="active"><a id="tabCompanyLoan" href="#tabPageCompanyLoan">Loan Types</a></li>
<li><a id="tabEmployeeCompanyLoan" href="#tabPageEmployeeCompanyLoan">Employee Loans</a></li>
</ul>
<div class="tab-content">
<div class="tab-pane active" id="tabPageCompanyLoan">
<div id="CompanyLoan" class="reviewBlock" data-content="List" style="padding-left:5px;">
</div>
<div id="CompanyLoanForm" class="reviewBlock" data-content="Form" style="padding-left:5px;display:none;">
</div>
</div>
<div class="tab-pane" id="tabPageEmployeeCompanyLoan">
<div id="EmployeeCompanyLoan" class="reviewBlock" data-content="List" style="padding-left:5px;">
</div>
<div id="EmployeeCompanyLoanForm" class="reviewBlock" data-content="Form" style="padding-left:5px;display:none;">
</div>
</div>
</div>
</div>
<script>
var modJsList = new Array();
modJsList['tabCompanyLoan'] = new CompanyLoanAdapter('CompanyLoan','CompanyLoan');
modJsList['tabEmployeeCompanyLoan'] = new EmployeeCompanyLoanAdapter('EmployeeCompanyLoan','EmployeeCompanyLoan');
var modJs = modJsList['tabCompanyLoan'];
</script>
<?php include APP_BASE_PATH.'footer.php';?>

102
ext/admin/loans/lib.js Normal file
View File

@@ -0,0 +1,102 @@
/**
* Author: Thilina Hasantha
*/
/**
* CompanyLoanAdapter
*/
function CompanyLoanAdapter(endPoint) {
this.initAdapter(endPoint);
}
CompanyLoanAdapter.inherits(AdapterBase);
CompanyLoanAdapter.method('getDataMapping', function() {
return [
"id",
"name",
"details"
];
});
CompanyLoanAdapter.method('getHeaders', function() {
return [
{ "sTitle": "ID" ,"bVisible":false},
{ "sTitle": "Name" },
{ "sTitle": "Details"}
];
});
CompanyLoanAdapter.method('getFormFields', function() {
return [
[ "id", {"label":"ID","type":"hidden"}],
[ "name", {"label":"Name","type":"text","validation":""}],
[ "details", {"label":"Details","type":"textarea","validation":"none"}]
];
});
/*
* EmployeeCompanyLoanAdapter
*/
function EmployeeCompanyLoanAdapter(endPoint) {
this.initAdapter(endPoint);
}
EmployeeCompanyLoanAdapter.inherits(AdapterBase);
EmployeeCompanyLoanAdapter.method('getDataMapping', function() {
return [
"id",
"employee",
"loan",
"start_date",
"period_months",
"currency",
"amount",
"status"
];
});
EmployeeCompanyLoanAdapter.method('getHeaders', function() {
return [
{ "sTitle": "ID" ,"bVisible":false},
{ "sTitle": "Employee" },
{ "sTitle": "Loan Type" },
{ "sTitle": "Loan Start Date"},
{ "sTitle": "Loan Period (Months)"},
{ "sTitle": "Currency"},
{ "sTitle": "Amount"},
{ "sTitle": "Status"}
];
});
EmployeeCompanyLoanAdapter.method('getFormFields', function() {
return [
[ "id", {"label":"ID","type":"hidden"}],
[ "employee", {"label":"Employee","type":"select2","remote-source":["Employee","id","first_name+last_name"]}],
[ "loan", {"label":"Loan Type","type":"select","remote-source":["CompanyLoan","id","name"]}],
[ "start_date", {"label":"Loan Start Date","type":"date","validation":""}],
[ "last_installment_date", {"label":"Last Installment Date","type":"date","validation":"none"}],
[ "period_months", {"label":"Loan Period (Months)","type":"text","validation":"number"}],
[ "currency", {"label":"Currency","type":"select2","remote-source":["CurrencyType","id","name"]}],
[ "amount", {"label":"Loan Amount","type":"text","validation":"float"}],
[ "monthly_installment", {"label":"Monthly Installment","type":"text","validation":"float"}],
[ "status", {"label":"Status","type":"select","source":[["Approved","Approved"],["Paid","Paid"],["Suspended","Suspended"]]}],
[ "details", {"label":"Details","type":"textarea","validation":"none"}]
];
});
EmployeeCompanyLoanAdapter.method('getFilters', function() {
return [
[ "employee", {"label":"Employee","type":"select2","allow-null":true,"null-label":"All Employees","remote-source":["Employee","id","first_name+last_name"]}],
[ "loan", {"label":"Loan Type","type":"select","allow-null":true,"null-label":"All Loan Types","remote-source":["CompanyLoan","id","name"]}],
];
});

11
ext/admin/loans/meta.json Normal file
View File

@@ -0,0 +1,11 @@
{
"label":"Company Loans",
"menu":"Admin",
"order":"7",
"icon":"fa-shield",
"user_levels":["Admin"],
"permissions":
{
}
}

7
ext/admin/meta.json Normal file
View File

@@ -0,0 +1,7 @@
{
"Admin":"fa-cubes",
"Employees":"fa-users",
"Reports":"fa-file-text",
"System":"fa-cogs",
"Salary Details":"fa-money"
}

View File

@@ -0,0 +1,144 @@
<?php
if (!class_exists('MetadataAdminManager')) {
class MetadataAdminManager extends AbstractModuleManager{
public function initializeUserClasses(){
}
public function initializeFieldMappings(){
}
public function initializeDatabaseErrorMappings(){
}
public function setupModuleClassDefinitions(){
$this->addModelClass('Country');
$this->addModelClass('Province');
$this->addModelClass('CurrencyType');
$this->addModelClass('Nationality');
$this->addModelClass('ImmigrationStatus');
$this->addModelClass('Ethnicity');
}
}
}
if (!class_exists('Country')) {
class Country extends ICEHRM_Record {
var $_table = 'Country';
public function getAdminAccess(){
return array("get","element","save","delete");
}
public function getUserAccess(){
return array();
}
public function getAnonymousAccess(){
return array("get","element");
}
}
}
if (!class_exists('Province')) {
class Province extends ICEHRM_Record {
var $_table = 'Province';
public function getAdminAccess(){
return array("get","element","save","delete");
}
public function getUserAccess(){
return array();
}
public function getAnonymousAccess(){
return array("get","element");
}
}
}
if (!class_exists('CurrencyType')) {
class CurrencyType extends ICEHRM_Record {
var $_table = 'CurrencyTypes';
public function getAdminAccess(){
return array("get","element","save","delete");
}
public function getUserAccess(){
return array();
}
public function getAnonymousAccess(){
return array("get","element");
}
}
}
if (!class_exists('Nationality')) {
class Nationality extends ICEHRM_Record {
var $_table = 'Nationality';
public function getAdminAccess(){
return array("get","element","save","delete");
}
public function getUserAccess(){
return array();
}
public function getAnonymousAccess(){
return array("get","element");
}
}
}
if (!class_exists('ImmigrationStatus')) {
class ImmigrationStatus extends ICEHRM_Record {
var $_table = 'ImmigrationStatus';
public function getAdminAccess(){
return array("get","element","save","delete");
}
public function getUserAccess(){
return array();
}
public function getAnonymousAccess(){
return array("get","element");
}
}
}
if (!class_exists('Ethnicity')) {
class Ethnicity extends ICEHRM_Record {
var $_table = 'Ethnicity';
public function getAdminAccess(){
return array("get","element","save","delete");
}
public function getUserAccess(){
return array();
}
public function getAnonymousAccess(){
return array("get","element");
}
}
}

View File

@@ -0,0 +1,42 @@
<?php
/*
This file is part of Ice Framework.
Ice Framework is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
Ice Framework is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with Ice Framework. If not, see <http://www.gnu.org/licenses/>.
------------------------------------------------------------------
Original work Copyright (c) 2012 [Gamonoid Media Pvt. Ltd]
Developer: Thilina Hasantha (thilina.hasantha[at]gmail.com / facebook.com/thilinah)
*/
$moduleName = 'metadata';
define('MODULE_PATH',dirname(__FILE__));
include APP_BASE_PATH.'header.php';
include APP_BASE_PATH.'modulejslibs.inc.php';
$moduleBuilder = new ModuleBuilder();
$moduleBuilder->addModuleOrGroup(new ModuleTab('Country','Country','Countries','CountryAdapter','','',true));
$moduleBuilder->addModuleOrGroup(new ModuleTab('Province','Province','Provinces','ProvinceAdapter','',''));
$moduleBuilder->addModuleOrGroup(new ModuleTab('CurrencyType','CurrencyType','Currency Types','CurrencyTypeAdapter','',''));
$moduleBuilder->addModuleOrGroup(new ModuleTab('Nationality','Nationality','Nationality','NationalityAdapter','',''));
$moduleBuilder->addModuleOrGroup(new ModuleTab('Nationality','Nationality','Nationality','NationalityAdapter','',''));
$moduleBuilder->addModuleOrGroup(new ModuleTab('Ethnicity','Ethnicity','Ethnicity','EthnicityAdapter','',''));
$moduleBuilder->addModuleOrGroup(new ModuleTab('ImmigrationStatus','ImmigrationStatus','Immigration Status','ImmigrationStatusAdapter','',''));
echo UIManager::getInstance()->renderModule($moduleBuilder);
include APP_BASE_PATH.'footer.php';

158
ext/admin/metadata/lib.js Normal file
View File

@@ -0,0 +1,158 @@
/**
* Author: Thilina Hasantha
*/
/**
* CountryAdapter
*/
function CountryAdapter(endPoint) {
this.initAdapter(endPoint);
}
CountryAdapter.inherits(AdapterBase);
CountryAdapter.method('getDataMapping', function() {
return [
"id",
"code",
"name"
];
});
CountryAdapter.method('getHeaders', function() {
return [
{ "sTitle": "ID" ,"bVisible":false},
{ "sTitle": "Code" },
{ "sTitle": "Name"}
];
});
CountryAdapter.method('getFormFields', function() {
return [
[ "id", {"label":"ID","type":"hidden"}],
[ "code", {"label":"Code","type":"text","validation":""}],
[ "name", {"label":"Name","type":"text","validation":""}]
];
});
/**
* ProvinceAdapter
*/
function ProvinceAdapter(endPoint) {
this.initAdapter(endPoint);
}
ProvinceAdapter.inherits(AdapterBase);
ProvinceAdapter.method('getDataMapping', function() {
return [
"id",
"code",
"name",
"country"
];
});
ProvinceAdapter.method('getHeaders', function() {
return [
{ "sTitle": "ID" ,"bVisible":false},
{ "sTitle": "Code" },
{ "sTitle": "Name"},
{ "sTitle": "Country"},
];
});
ProvinceAdapter.method('getFormFields', function() {
return [
[ "id", {"label":"ID","type":"hidden"}],
[ "code", {"label":"Code","type":"text","validation":""}],
[ "name", {"label":"Name","type":"text","validation":""}],
[ "country", {"label":"Country","type":"select2","remote-source":["Country","code","name"]}]
];
});
ProvinceAdapter.method('getFilters', function() {
return [
[ "country", {"label":"Country","type":"select2","remote-source":["Country","code","name"]}]
];
});
/**
* CurrencyTypeAdapter
*/
function CurrencyTypeAdapter(endPoint) {
this.initAdapter(endPoint);
}
CurrencyTypeAdapter.inherits(AdapterBase);
CurrencyTypeAdapter.method('getDataMapping', function() {
return [
"id",
"code",
"name"
];
});
CurrencyTypeAdapter.method('getHeaders', function() {
return [
{ "sTitle": "ID" ,"bVisible":false},
{ "sTitle": "Code" },
{ "sTitle": "Name"}
];
});
CurrencyTypeAdapter.method('getFormFields', function() {
return [
[ "id", {"label":"ID","type":"hidden"}],
[ "code", {"label":"Code","type":"text","validation":""}],
[ "name", {"label":"Name","type":"text","validation":""}]
];
});
/**
* NationalityAdapter
*/
function NationalityAdapter(endPoint) {
this.initAdapter(endPoint);
}
NationalityAdapter.inherits(IdNameAdapter);
/**
* ImmigrationStatusAdapter
*/
function ImmigrationStatusAdapter(endPoint) {
this.initAdapter(endPoint);
}
ImmigrationStatusAdapter.inherits(IdNameAdapter);
/**
* EthnicityAdapter
*/
function EthnicityAdapter(endPoint) {
this.initAdapter(endPoint);
}
EthnicityAdapter.inherits(IdNameAdapter);

View File

@@ -0,0 +1,11 @@
{
"label":"Manage Metadata",
"menu":"System",
"order":"6",
"icon":"fa-sort-alpha-asc",
"user_levels":["Admin"],
"permissions":
{
}
}

View File

@@ -0,0 +1,35 @@
<?php
if (!class_exists('ModulesAdminManager')) {
class ModulesAdminManager extends AbstractModuleManager{
public function initializeUserClasses(){
}
public function initializeFieldMappings(){
}
public function initializeDatabaseErrorMappings(){
}
public function setupModuleClassDefinitions(){
$this->addModelClass('Module');
}
}
}
if (!class_exists('Module')) {
class Module extends ICEHRM_Record {
public function getAdminAccess(){
return array("get","element","save","delete");
}
public function getUserAccess(){
return array();
}
var $_table = 'Modules';
}
}

View File

@@ -0,0 +1,54 @@
<?php
/*
This file is part of iCE Hrm.
iCE Hrm is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
iCE Hrm is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with iCE Hrm. If not, see <http://www.gnu.org/licenses/>.
------------------------------------------------------------------
Original work Copyright (c) 2012 [Gamonoid Media Pvt. Ltd]
Developer: Thilina Hasantha (thilina.hasantha[at]gmail.com / facebook.com/thilinah)
*/
$moduleName = 'Modules';
define('MODULE_PATH',dirname(__FILE__));
include APP_BASE_PATH.'header.php';
include APP_BASE_PATH.'modulejslibs.inc.php';
?><div class="span9">
<ul class="nav nav-tabs" id="modTab" style="margin-bottom:0px;margin-left:5px;border-bottom: none;">
<li class="active"><a id="tabModule" href="#tabPageModule">Modules</a></li>
</ul>
<div class="tab-content">
<div class="tab-pane active" id="tabPageModule">
<div id="Module" class="reviewBlock" data-content="List" style="padding-left:5px;">
</div>
<div id="ModuleForm" class="reviewBlock" data-content="Form" style="padding-left:5px;display:none;">
</div>
</div>
</div>
</div>
<script>
var modJsList = new Array();
modJsList['moduleModule'] = new ModuleAdapter('Module','Module');
modJsList['moduleModule'].setShowAddNew(false);
var modJs = modJsList['moduleModule'];
</script>
<?php include APP_BASE_PATH.'footer.php';?>

78
ext/admin/modules/lib.js Normal file
View File

@@ -0,0 +1,78 @@
/**
* Author: Thilina Hasantha
*/
/**
* ModuleAdapter
*/
function ModuleAdapter(endPoint) {
this.initAdapter(endPoint);
}
ModuleAdapter.inherits(AdapterBase);
ModuleAdapter.method('getDataMapping', function() {
return [
"id",
"label",
"menu",
"mod_group",
"mod_order",
"status",
"version",
"update_path"
];
});
ModuleAdapter.method('getHeaders', function() {
return [
{ "sTitle": "ID" ,"bVisible":false},
{ "sTitle": "Name" },
{ "sTitle": "Menu" ,"bVisible":false},
{ "sTitle": "Group"},
{ "sTitle": "Order"},
{ "sTitle": "Status"},
{ "sTitle": "Version","bVisible":false},
{ "sTitle": "Path" ,"bVisible":false}
];
});
ModuleAdapter.method('getFormFields', function() {
return [
[ "id", {"label":"ID","type":"hidden"}],
[ "label", {"label":"Label","type":"text","validation":""}],
[ "status", {"label":"Status","type":"select","source":[["Enabled","Enabled"],["Disabled","Disabled"]]}],
[ "user_levels", {"label":"User Levels","type":"select2multi","source":[["Admin","Admin"],["Manager","Manager"],["Employee","Employee"],["Other","Other"]]}]
];
});
ModuleAdapter.method('getActionButtonsHtml', function(id,data) {
var nonEditableFields = {};
nonEditableFields["admin_Company Structure"] = 1;
nonEditableFields["admin_Employees"] = 1;
nonEditableFields["admin_Jobs"] = 1;
nonEditableFields["admin_Leaves"] = 1;
nonEditableFields["admin_Manage Modules"] = 1;
nonEditableFields["admin_Projects"] = 1;
nonEditableFields["admin_Qualifications"] = 1;
nonEditableFields["admin_Settings"] = 1;
nonEditableFields["admin_Users"] = 1;
nonEditableFields["admin_Upgrade"] = 1;
nonEditableFields["user_Basic Information"] = 1;
if(nonEditableFields[data[3]+"_"+data[1]] == 1){
return "";
}
var html = '<div style="width:80px;"><img class="tableActionButton" src="_BASE_images/edit.png" style="cursor:pointer;" rel="tooltip" title="Edit" onclick="modJs.edit(_id_);return false;"></img></div>';
html = html.replace(/_id_/g,id);
html = html.replace(/_BASE_/g,this.baseUrl);
return html;
});

View File

@@ -0,0 +1,11 @@
{
"label":"Manage Modules",
"menu":"System",
"order":"3",
"icon":"fa-folder-open",
"user_levels":["Admin"],
"permissions":
{
}
}

View File

@@ -0,0 +1,37 @@
<?php
if (!class_exists('PermissionsAdminManager')) {
class PermissionsAdminManager extends AbstractModuleManager{
public function initializeUserClasses(){
}
public function initializeFieldMappings(){
}
public function initializeDatabaseErrorMappings(){
}
public function setupModuleClassDefinitions(){
$this->addModelClass('Permission');
}
}
}
if (!class_exists('Permission')) {
class Permission extends ICEHRM_Record {
var $_table = 'Permissions';
public function getAdminAccess(){
return array("get","element","save","delete");
}
public function getUserAccess(){
return array();
}
}
}

View File

@@ -0,0 +1,54 @@
<?php
/*
This file is part of iCE Hrm.
iCE Hrm is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
iCE Hrm is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with iCE Hrm. If not, see <http://www.gnu.org/licenses/>.
------------------------------------------------------------------
Original work Copyright (c) 2012 [Gamonoid Media Pvt. Ltd]
Developer: Thilina Hasantha (thilina.hasantha[at]gmail.com / facebook.com/thilinah)
*/
$moduleName = 'Permissions';
define('MODULE_PATH',dirname(__FILE__));
include APP_BASE_PATH.'header.php';
include APP_BASE_PATH.'modulejslibs.inc.php';
?><div class="span9">
<ul class="nav nav-tabs" id="modTab" style="margin-bottom:0px;margin-left:5px;border-bottom: none;">
<li class="active"><a id="tabPermission" href="#tabPagePermission">Permissions</a></li>
</ul>
<div class="tab-content">
<div class="tab-pane active" id="tabPagePermission">
<div id="Permission" class="reviewBlock" data-content="List" style="padding-left:5px;">
</div>
<div id="PermissionForm" class="reviewBlock" data-content="Form" style="padding-left:5px;display:none;">
</div>
</div>
</div>
</div>
<script>
var modJsList = new Array();
modJsList['tabPermission'] = new PermissionAdapter('Permission','Permission');
modJsList['tabPermission'].setShowAddNew(false);
var modJs = modJsList['tabPermission'];
</script>
<?php include APP_BASE_PATH.'footer.php';?>

View File

@@ -0,0 +1,73 @@
/**
* Author: Thilina Hasantha
*/
/**
* PermissionAdapter
*/
function PermissionAdapter(endPoint) {
this.initAdapter(endPoint);
}
PermissionAdapter.inherits(AdapterBase);
PermissionAdapter.method('getDataMapping', function() {
return [
"id",
"user_level",
"module_id",
"permission",
"value"
];
});
PermissionAdapter.method('getHeaders', function() {
return [
{ "sTitle": "ID" ,"bVisible":false},
{ "sTitle": "User Level" },
{ "sTitle": "Module"},
{ "sTitle": "Permission"},
{ "sTitle": "Value"}
];
});
PermissionAdapter.method('getFormFields', function() {
return [
[ "id", {"label":"ID","type":"hidden"}],
[ "user_level", {"label":"User Level","type":"placeholder","validation":"none"}],
[ "module_id", {"label":"Module","type":"placeholder","remote-source":["Module","id","menu+name"]}],
[ "permission", {"label":"Permission","type":"placeholder","validation":"none"}],
[ "value", {"label":"Value","type":"text","validation":"none"}]
];
});
PermissionAdapter.method('getFilters', function() {
return [
[ "module_id", {"label":"Module","type":"select2","allow-null":true,"null-label":"All Modules","remote-source":["Module","id","menu+name"]}]
];
});
PermissionAdapter.method('getActionButtonsHtml', function(id,data) {
var html = '<div style="width:80px;"><img class="tableActionButton" src="_BASE_images/edit.png" style="cursor:pointer;" rel="tooltip" title="Edit" onclick="modJs.edit(_id_);return false;"></img></div>';
html = html.replace(/_id_/g,id);
html = html.replace(/_BASE_/g,this.baseUrl);
return html;
});
PermissionAdapter.method('getMetaFieldForRendering', function(fieldName) {
if(fieldName == "value"){
return "meta";
}
return "";
});
PermissionAdapter.method('fillForm', function(object) {
this.uber('fillForm',object);
$("#helptext").html(object.description);
});

View File

@@ -0,0 +1,11 @@
{
"label":"Manage Permissions",
"menu":"System",
"order":"4",
"icon":"fa-unlock",
"user_levels":["Admin"],
"permissions":
{
}
}

View File

@@ -0,0 +1,60 @@
<?php
if (!class_exists('ProjectsAdminManager')) {
class ProjectsAdminManager extends AbstractModuleManager{
public function initializeUserClasses(){
}
public function initializeFieldMappings(){
}
public function initializeDatabaseErrorMappings(){
$this->addDatabaseErrorMapping("key 'EmployeeProjectsKey'", "Employee already added to this project");
}
public function setupModuleClassDefinitions(){
$this->addModelClass('Client');
$this->addModelClass('Project');
}
}
}
if (!class_exists('Client')) {
class Client extends ICEHRM_Record {
var $_table = 'Clients';
public function getAdminAccess(){
return array("get","element","save","delete");
}
public function getManagerAccess(){
return array("get","element","save","delete");
}
public function getUserAccess(){
return array();
}
}
}
if (!class_exists('Project')) {
class Project extends ICEHRM_Record {
var $_table = 'Projects';
public function getAdminAccess(){
return array("get","element","save","delete");
}
public function getManagerAccess(){
return array("get","element","save","delete");
}
public function getUserAccess(){
return array("get","element");
}
}
}

View File

@@ -0,0 +1,113 @@
<?php
/*
This file is part of iCE Hrm.
iCE Hrm is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
iCE Hrm is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with iCE Hrm. If not, see <http://www.gnu.org/licenses/>.
------------------------------------------------------------------
Original work Copyright (c) 2012 [Gamonoid Media Pvt. Ltd]
Developer: Thilina Hasantha (thilina.hasantha[at]gmail.com / facebook.com/thilinah)
*/
$moduleName = 'projects';
define('MODULE_PATH',dirname(__FILE__));
include APP_BASE_PATH.'header.php';
include APP_BASE_PATH.'modulejslibs.inc.php';
?><div class="span9">
<ul class="nav nav-tabs" id="modTab" style="margin-bottom:0px;margin-left:5px;border-bottom: none;">
<li class="active"><a id="tabClient" href="#tabPageClient">Clients</a></li>
<li><a id="tabProject" href="#tabPageProject">Projects</a></li>
<li><a id="tabEmployeeProject" href="#tabPageEmployeeProject">Employee Projects</a></li>
</ul>
<div class="tab-content">
<div class="tab-pane active" id="tabPageClient">
<div id="Client" class="reviewBlock" data-content="List" style="padding-left:5px;">
</div>
<div id="ClientForm" class="reviewBlock" data-content="Form" style="padding-left:5px;display:none;">
</div>
</div>
<div class="tab-pane" id="tabPageProject">
<div id="Project" class="reviewBlock" data-content="List" style="padding-left:5px;">
</div>
<div id="ProjectForm" class="reviewBlock" data-content="Form" style="padding-left:5px;display:none;">
</div>
</div>
<div class="tab-pane" id="tabPageEmployeeProject">
<div id="EmployeeProject" class="reviewBlock" data-content="List" style="padding-left:5px;">
</div>
<div id="EmployeeProjectForm" class="reviewBlock" data-content="Form" style="padding-left:5px;display:none;">
</div>
</div>
</div>
</div>
<script>
var modJsList = new Array();
modJsList['tabClient'] = new ClientAdapter('Client','Client');
<?php if(isset($modulePermissions['perm']['Add Clients']) && $modulePermissions['perm']['Add Clients'] == "No"){?>
modJsList['tabClient'].setShowAddNew(false);
<?php }?>
<?php if(isset($modulePermissions['perm']['Delete Clients']) && $modulePermissions['perm']['Delete Clients'] == "No"){?>
modJsList['tabClient'].setShowDelete(false);
<?php }?>
<?php if(isset($modulePermissions['perm']['Edit Clients']) && $modulePermissions['perm']['Edit Clients'] == "No"){?>
modJsList['tabClient'].setShowSave(false);
<?php }?>
modJsList['tabProject'] = new ProjectAdapter('Project','Project');
<?php if(isset($modulePermissions['perm']['Add Projects']) && $modulePermissions['perm']['Add Projects'] == "No"){?>
modJsList['tabProject'].setShowAddNew(false);
<?php }?>
<?php if(isset($modulePermissions['perm']['Delete Projects']) && $modulePermissions['perm']['Delete Projects'] == "No"){?>
modJsList['tabProject'].setShowDelete(false);
<?php }?>
<?php if(isset($modulePermissions['perm']['Edit Projects']) && $modulePermissions['perm']['Edit Projects'] == "No"){?>
modJsList['tabProject'].setShowSave(false);
<?php }?>
modJsList['tabEmployeeProject'] = new EmployeeProjectAdapter('EmployeeProject','EmployeeProject');
modJsList['tabEmployeeProject'].setRemoteTable(true);
<?php if(isset($modulePermissions['perm']['Add Projects']) && $modulePermissions['perm']['Add Projects'] == "No"){?>
modJsList['tabEmployeeProject'].setShowAddNew(false);
<?php }?>
<?php if(isset($modulePermissions['perm']['Delete Projects']) && $modulePermissions['perm']['Delete Projects'] == "No"){?>
modJsList['tabEmployeeProject'].setShowDelete(false);
<?php }?>
<?php if(isset($modulePermissions['perm']['Edit Projects']) && $modulePermissions['perm']['Edit Projects'] == "No"){?>
modJsList['tabEmployeeProject'].setShowEdit(false);
<?php }?>
var modJs = modJsList['tabClient'];
</script>
<?php include APP_BASE_PATH.'footer.php';?>

177
ext/admin/projects/lib.js Normal file
View File

@@ -0,0 +1,177 @@
/**
* Author: Thilina Hasantha
*/
/**
* ClientAdapter
*/
function ClientAdapter(endPoint,tab,filter,orderBy) {
this.initAdapter(endPoint,tab,filter,orderBy);
}
ClientAdapter.inherits(AdapterBase);
ClientAdapter.method('getDataMapping', function() {
return [
"id",
"name",
"details",
"address",
"contact_number"
];
});
ClientAdapter.method('getHeaders', function() {
return [
{ "sTitle": "ID","bVisible":false },
{ "sTitle": "Name" },
{ "sTitle": "Details"},
{ "sTitle": "Address"},
{ "sTitle": "Contact Number"}
];
});
ClientAdapter.method('getFormFields', function() {
if(this.showSave){
return [
[ "id", {"label":"ID","type":"hidden"}],
[ "name", {"label":"Name","type":"text"}],
[ "details", {"label":"Details","type":"textarea","validation":"none"}],
[ "address", {"label":"Address","type":"textarea","validation":"none"}],
[ "contact_number", {"label":"Contact Number","type":"text","validation":"none"}],
[ "contact_email", {"label":"Contact Email","type":"text","validation":"none"}],
[ "company_url", {"label":"Company Url","type":"text","validation":"none"}],
[ "status", {"label":"Status","type":"select","source":[["Active","Active"],["Inactive","Inactive"]]}],
[ "first_contact_date", {"label":"First Contact Date","type":"date","validation":"none"}]
];
}else{
return [
[ "id", {"label":"ID","type":"hidden"}],
[ "name", {"label":"Name","type":"placeholder"}],
[ "details", {"label":"Details","type":"placeholder","validation":"none"}],
[ "address", {"label":"Address","type":"placeholder","validation":"none"}],
[ "contact_number", {"label":"Contact Number","type":"placeholder","validation":"none"}],
[ "contact_email", {"label":"Contact Email","type":"placeholder","validation":"none"}],
[ "company_url", {"label":"Company Url","type":"placeholder","validation":"none"}],
[ "status", {"label":"Status","type":"placeholder","source":[["Active","Active"],["Inactive","Inactive"]]}],
[ "first_contact_date", {"label":"First Contact Date","type":"placeholder","validation":"none"}]
];
}
});
ClientAdapter.method('getHelpLink', function () {
return 'http://blog.icehrm.com/?page_id=85';
});
/**
* ProjectAdapter
*/
function ProjectAdapter(endPoint,tab,filter,orderBy) {
this.initAdapter(endPoint,tab,filter,orderBy);
}
ProjectAdapter.inherits(AdapterBase);
ProjectAdapter.method('getDataMapping', function() {
return [
"id",
"name",
"client"
];
});
ProjectAdapter.method('getHeaders', function() {
return [
{ "sTitle": "ID","bVisible":false },
{ "sTitle": "Name" },
{ "sTitle": "Client"},
];
});
ProjectAdapter.method('getFormFields', function() {
if(this.showSave){
return [
[ "id", {"label":"ID","type":"hidden"}],
[ "name", {"label":"Name","type":"text"}],
[ "client", {"label":"Client","type":"select2","allow-null":true,"remote-source":["Client","id","name"]}],
[ "details", {"label":"Details","type":"textarea","validation":"none"}],
[ "status", {"label":"Status","type":"select","source":[["Active","Active"],["Inactive","Inactive"]]}]
];
}else{
return [
[ "id", {"label":"ID","type":"hidden"}],
[ "name", {"label":"Name","type":"placeholder"}],
[ "client", {"label":"Client","type":"placeholder","allow-null":true,"remote-source":["Client","id","name"]}],
[ "details", {"label":"Details","type":"placeholder","validation":"none"}],
[ "status", {"label":"Status","type":"placeholder","source":[["Active","Active"],["Inactive","Inactive"]]}]
];
}
});
ProjectAdapter.method('getHelpLink', function () {
return 'http://blog.icehrm.com/?page_id=85';
});
/*
* EmployeeProjectAdapter
*/
function EmployeeProjectAdapter(endPoint) {
this.initAdapter(endPoint);
}
EmployeeProjectAdapter.inherits(AdapterBase);
EmployeeProjectAdapter.method('getDataMapping', function() {
return [
"id",
"employee",
"project",
"status"
];
});
EmployeeProjectAdapter.method('getHeaders', function() {
return [
{ "sTitle": "ID" ,"bVisible":false},
{ "sTitle": "Employee" },
{ "sTitle": "Project" },
/*{ "sTitle": "Start Date"},*/
{ "sTitle": "Status"}
];
});
EmployeeProjectAdapter.method('getFormFields', function() {
return [
[ "id", {"label":"ID","type":"hidden"}],
[ "employee", {"label":"Employee","type":"select2","remote-source":["Employee","id","first_name+last_name"]}],
[ "project", {"label":"Project","type":"select2","remote-source":["Project","id","name"]}],
/*[ "date_start", {"label":"Start Date","type":"date","validation":""}],
[ "date_end", {"label":"End Date","type":"date","validation":"none"}],*/
[ "status", {"label":"Status","type":"select","source":[["Current","Current"],["Inactive","Inactive"],["Completed","Completed"]]}],
[ "details", {"label":"Details","type":"textarea","validation":"none"}]
];
});
EmployeeProjectAdapter.method('getFilters', function() {
return [
[ "employee", {"label":"Employee","type":"select2","remote-source":["Employee","id","first_name+last_name"]}]
];
});
EmployeeProjectAdapter.method('getHelpLink', function () {
return 'http://blog.icehrm.com/?page_id=85';
});

View File

@@ -0,0 +1,19 @@
{
"label":"Projects/Client Setup",
"menu":"Admin",
"order":"5",
"icon":"fa-list-alt",
"user_levels":["Admin","Manager"],
"permissions":
{
"Manager":{
"Add Projects":"Yes",
"Edit Projects":"Yes",
"Delete Projects":"No",
"Add Clients":"Yes",
"Edit Clients":"Yes",
"Delete Clients":"No"
}
}
}

View File

@@ -0,0 +1,95 @@
<?php
if (!class_exists('QualificationsAdminManager')) {
class QualificationsAdminManager extends AbstractModuleManager{
public function initializeUserClasses(){
}
public function initializeFieldMappings(){
}
public function initializeDatabaseErrorMappings(){
}
public function setupModuleClassDefinitions(){
$this->addModelClass('Skill');
$this->addModelClass('Education');
$this->addModelClass('Certification');
$this->addModelClass('Language');
}
}
}
if (!class_exists('Skill')) {
class Skill extends ICEHRM_Record {
var $_table = 'Skills';
public function getAdminAccess(){
return array("get","element","save","delete");
}
public function getManagerAccess(){
return array("get","element","save","delete");
}
public function getUserAccess(){
return array();
}
}
class Education extends ICEHRM_Record {
var $_table = 'Educations';
public function getAdminAccess(){
return array("get","element","save","delete");
}
public function getManagerAccess(){
return array("get","element","save","delete");
}
public function getUserAccess(){
return array();
}
}
class Certification extends ICEHRM_Record {
var $_table = 'Certifications';
public function getAdminAccess(){
return array("get","element","save","delete");
}
public function getManagerAccess(){
return array("get","element","save","delete");
}
public function getUserAccess(){
return array();
}
}
class Language extends ICEHRM_Record {
var $_table = 'Languages';
public function getAdminAccess(){
return array("get","element","save","delete");
}
public function getManagerAccess(){
return array("get","element","save","delete");
}
public function getUserAccess(){
return array();
}
}
}

View File

@@ -0,0 +1,127 @@
<?php
/*
This file is part of iCE Hrm.
iCE Hrm is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
iCE Hrm is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with iCE Hrm. If not, see <http://www.gnu.org/licenses/>.
------------------------------------------------------------------
Original work Copyright (c) 2012 [Gamonoid Media Pvt. Ltd]
Developer: Thilina Hasantha (thilina.hasantha[at]gmail.com / facebook.com/thilinah)
*/
$moduleName = 'company_structure';
define('MODULE_PATH',dirname(__FILE__));
include APP_BASE_PATH.'header.php';
include APP_BASE_PATH.'modulejslibs.inc.php';
?><div class="span9">
<ul class="nav nav-tabs" id="modTab" style="margin-bottom:0px;margin-left:5px;border-bottom: none;">
<li class="active"><a id="tabSkill" href="#tabPageSkill">Skills</a></li>
<li><a id="tabEducation" href="#tabPageEducation">Education</a></li>
<li><a id="tabCertification" href="#tabPageCertification">Certifications</a></li>
<li><a id="tabLanguage" href="#tabPageLanguage">Languages</a></li>
</ul>
<div class="tab-content">
<div class="tab-pane active" id="tabPageSkill">
<div id="Skill" class="reviewBlock" data-content="List" style="padding-left:5px;">
</div>
<div id="SkillForm" class="reviewBlock" data-content="Form" style="padding-left:5px;display:none;">
</div>
</div>
<div class="tab-pane" id="tabPageEducation">
<div id="Education" class="reviewBlock" data-content="List" style="padding-left:5px;">
</div>
<div id="EducationForm" class="reviewBlock" data-content="Form" style="padding-left:5px;display:none;">
</div>
</div>
<div class="tab-pane" id="tabPageCertification">
<div id="Certification" class="reviewBlock" data-content="List" style="padding-left:5px;">
</div>
<div id="CertificationForm" class="reviewBlock" data-content="Form" style="padding-left:5px;display:none;">
</div>
</div>
<div class="tab-pane" id="tabPageLanguage">
<div id="Language" class="reviewBlock" data-content="List" style="padding-left:5px;">
</div>
<div id="LanguageForm" class="reviewBlock" data-content="Form" style="padding-left:5px;display:none;">
</div>
</div>
</div>
</div>
<script>
var modJsList = new Array();
modJsList['tabSkill'] = new SkillAdapter('Skill');
<?php if(isset($modulePermissions['perm']['Add Skills']) && $modulePermissions['perm']['Add Skills'] == "No"){?>
modJsList['tabSkill'].setShowAddNew(false);
<?php }?>
<?php if(isset($modulePermissions['perm']['Delete Skills']) && $modulePermissions['perm']['Delete Skills'] == "No"){?>
modJsList['tabSkill'].setShowDelete(false);
<?php }?>
<?php if(isset($modulePermissions['perm']['Edit Skills']) && $modulePermissions['perm']['Edit Skills'] == "No"){?>
modJsList['tabSkill'].setShowEdit(false);
<?php }?>
modJsList['tabEducation'] = new EducationAdapter('Education');
<?php if(isset($modulePermissions['perm']['Add Education']) && $modulePermissions['perm']['Add Education'] == "No"){?>
modJsList['tabEducation'].setShowAddNew(false);
<?php }?>
<?php if(isset($modulePermissions['perm']['Delete Education']) && $modulePermissions['perm']['Delete Education'] == "No"){?>
modJsList['tabEducation'].setShowDelete(false);
<?php }?>
<?php if(isset($modulePermissions['perm']['Edit Education']) && $modulePermissions['perm']['Edit Education'] == "No"){?>
modJsList['tabEducation'].setShowEdit(false);
<?php }?>
modJsList['tabCertification'] = new CertificationAdapter('Certification');
<?php if(isset($modulePermissions['perm']['Add Certifications']) && $modulePermissions['perm']['Add Certifications'] == "No"){?>
modJsList['tabCertification'].setShowAddNew(false);
<?php }?>
<?php if(isset($modulePermissions['perm']['Delete Certifications']) && $modulePermissions['perm']['Delete Certifications'] == "No"){?>
modJsList['tabCertification'].setShowDelete(false);
<?php }?>
<?php if(isset($modulePermissions['perm']['Edit Certifications']) && $modulePermissions['perm']['Edit Certifications'] == "No"){?>
modJsList['tabCertification'].setShowEdit(false);
<?php }?>
modJsList['tabLanguage'] = new LanguageAdapter('Language');
<?php if(isset($modulePermissions['perm']['Add Languages']) && $modulePermissions['perm']['Add Languages'] == "No"){?>
modJsList['tabLanguage'].setShowAddNew(false);
<?php }?>
<?php if(isset($modulePermissions['perm']['Delete Languages']) && $modulePermissions['perm']['Delete Languages'] == "No"){?>
modJsList['tabLanguage'].setShowDelete(false);
<?php }?>
<?php if(isset($modulePermissions['perm']['Edit Languages']) && $modulePermissions['perm']['Edit Languages'] == "No"){?>
modJsList['tabLanguage'].setShowEdit(false);
<?php }?>
var modJs = modJsList['tabSkill'];
</script>
<?php include APP_BASE_PATH.'footer.php';?>

View File

@@ -0,0 +1,161 @@
/**
* Author: Thilina Hasantha
*/
/**
* SkillAdapter
*/
function SkillAdapter(endPoint) {
this.initAdapter(endPoint);
}
SkillAdapter.inherits(AdapterBase);
SkillAdapter.method('getDataMapping', function() {
return [
"id",
"name",
"description"
];
});
SkillAdapter.method('getHeaders', function() {
return [
{ "sTitle": "ID","bVisible":false },
{ "sTitle": "Name" },
{ "sTitle": "Description"}
];
});
SkillAdapter.method('getFormFields', function() {
return [
[ "id", {"label":"ID","type":"hidden"}],
[ "name", {"label":"Name","type":"text"}],
[ "description", {"label":"Description","type":"textarea","validation":""}]
];
});
SkillAdapter.method('getHelpLink', function () {
return 'http://blog.icehrm.com/?page_id=83';
});
/**
* EducationAdapter
*/
function EducationAdapter(endPoint) {
this.initAdapter(endPoint);
}
EducationAdapter.inherits(AdapterBase);
EducationAdapter.method('getDataMapping', function() {
return [
"id",
"name",
"description"
];
});
EducationAdapter.method('getHeaders', function() {
return [
{ "sTitle": "ID","bVisible":false },
{ "sTitle": "Name" },
{ "sTitle": "Description"}
];
});
EducationAdapter.method('getFormFields', function() {
return [
[ "id", {"label":"ID","type":"hidden"}],
[ "name", {"label":"Name","type":"text"}],
[ "description", {"label":"Description","type":"textarea","validation":""}]
];
});
/**
* CertificationAdapter
*/
function CertificationAdapter(endPoint) {
this.initAdapter(endPoint);
}
CertificationAdapter.inherits(AdapterBase);
CertificationAdapter.method('getDataMapping', function() {
return [
"id",
"name",
"description"
];
});
CertificationAdapter.method('getHeaders', function() {
return [
{ "sTitle": "ID" ,"bVisible":false},
{ "sTitle": "Name" },
{ "sTitle": "Description"}
];
});
CertificationAdapter.method('getFormFields', function() {
return [
[ "id", {"label":"ID","type":"hidden"}],
[ "name", {"label":"Name","type":"text"}],
[ "description", {"label":"Description","type":"textarea","validation":""}]
];
});
/**
* LanguageAdapter
*/
function LanguageAdapter(endPoint) {
this.initAdapter(endPoint);
}
LanguageAdapter.inherits(AdapterBase);
LanguageAdapter.method('getDataMapping', function() {
return [
"id",
"name",
"description"
];
});
LanguageAdapter.method('getHeaders', function() {
return [
{ "sTitle": "ID" ,"bVisible":false},
{ "sTitle": "Name" },
{ "sTitle": "Description"}
];
});
LanguageAdapter.method('getFormFields', function() {
return [
[ "id", {"label":"ID","type":"hidden"}],
[ "name", {"label":"Name","type":"text"}],
[ "description", {"label":"Description","type":"textarea","validation":""}]
];
});

View File

@@ -0,0 +1,26 @@
{
"label":"Qualifications Setup",
"menu":"Admin",
"order":"4",
"icon":"fa-check-square-o",
"user_levels":["Admin","Manager"],
"permissions":
{
"Manager":{
"Add Skills":"Yes",
"Edit Skills":"Yes",
"Delete Skills":"No",
"Add Education":"Yes",
"Edit Education":"Yes",
"Delete Education":"No",
"Add Certifications":"Yes",
"Edit Certifications":"Yes",
"Delete Certifications":"No",
"Add Languages":"Yes",
"Edit Languages":"Yes",
"Delete Languages":"No"
}
}
}

View File

@@ -0,0 +1,23 @@
<?php
if (!class_exists('ReportsAdminManager')) {
class ReportsAdminManager extends AbstractModuleManager{
public function initializeUserClasses(){
}
public function initializeFieldMappings(){
}
public function initializeDatabaseErrorMappings(){
}
public function setupModuleClassDefinitions(){
//This is a fixed module, store model classes in models.inc.php
}
}
}

View File

@@ -0,0 +1,34 @@
<?php
$moduleName = 'Reports';
define('MODULE_PATH',dirname(__FILE__));
include APP_BASE_PATH.'header.php';
include APP_BASE_PATH.'modulejslibs.inc.php';
?><div class="span9">
<ul class="nav nav-tabs" id="modTab" style="margin-bottom:0px;margin-left:5px;border-bottom: none;">
<li class="active"><a id="tabReport" href="#tabPageReport">Reports</a></li>
</ul>
<div class="tab-content">
<div class="tab-pane active" id="tabPageReport">
<div id="Report" class="reviewBlock" data-content="List" style="padding-left:5px;">
</div>
<div id="ReportForm" class="reviewBlock" data-content="Form" style="padding-left:5px;display:none;">
</div>
</div>
</div>
</div>
<script>
var modJsList = new Array();
modJsList['tabReport'] = new ReportAdapter('Report','Report');
modJsList['tabReport'].setShowAddNew(false);
var modJs = modJsList['tabReport'];
</script>
<?php include APP_BASE_PATH.'footer.php';?>

167
ext/admin/reports/lib.js Normal file
View File

@@ -0,0 +1,167 @@
/**
* Author: Thilina Hasantha
*/
/**
* ReportAdapter
*/
function ReportAdapter(endPoint) {
this.initAdapter(endPoint);
this._formFileds = [
[ "id", {"label":"ID","type":"hidden"}],
[ "name", {"label":"Name","type":"label","validation":""}],
[ "parameters", {"label":"Parameters","type":"fieldset","validation":"none"}]
];
}
ReportAdapter.inherits(AdapterBase);
ReportAdapter.method('_initLocalFormFields', function() {
this._formFileds = [
[ "id", {"label":"ID","type":"hidden"}],
[ "name", {"label":"Name","type":"label","validation":""}],
[ "parameters", {"label":"Parameters","type":"fieldset","validation":"none"}]
];
});
ReportAdapter.method('getDataMapping', function() {
return [
"id",
"name",
"details",
"parameters"
];
});
ReportAdapter.method('getHeaders', function() {
return [
{ "sTitle": "ID" ,"bVisible":false},
{ "sTitle": "Name" },
{ "sTitle": "Details"},
{ "sTitle": "Parameters","bVisible":false},
];
});
ReportAdapter.method('getFormFields', function() {
return this._formFileds;
});
ReportAdapter.method('processFormFieldsWithObject', function(object) {
var that = this;
this._initLocalFormFields();
var len = this._formFileds.length;
var fieldIDsToDelete = [];
var fieldsToDelete = [];
for(var i=0;i<len;i++){
if(this._formFileds[i][1]['type']=="fieldset"){
var newFields = JSON.parse(object[this._formFileds[i][0]]);
fieldsToDelete.push(this._formFileds[i][0]);
newFields.forEach(function(entry) {
that._formFileds.push(entry);
});
}
}
var tempArray = [];
that._formFileds.forEach(function(entry) {
if(jQuery.inArray(entry[0], fieldsToDelete) < 0){
tempArray.push(entry);
}
});
that._formFileds = tempArray;
});
ReportAdapter.method('renderForm', function(object) {
var that = this;
this.processFormFieldsWithObject(object);
var cb = function(){
that.uber('renderForm',object);
};
this.initFieldMasterData(cb);
});
ReportAdapter.method('getActionButtonsHtml', function(id,data) {
var html = '<div style="width:80px;"><img class="tableActionButton" src="_BASE_images/download.png" style="cursor:pointer;" rel="tooltip" title="Download" onclick="modJs.edit(_id_);return false;"></img></div>';
html = html.replace(/_id_/g,id);
html = html.replace(/_BASE_/g,this.baseUrl);
return html;
});
ReportAdapter.method('addSuccessCallBack', function(callBackData,serverData) {
//var link = '<a href="'+this.getCustomActionUrl("download",{'file':serverData})+'" target="_blank">Download Report <i class="icon-download-alt"></i> </a>';
//this.showMessage("Download Report",link);
var fileName = serverData[0];
var link;
if(fileName.indexOf("https:") == 0){
link = '<a href="'+fileName+'" target="_blank" style="font-size:14px;font-weight:bold;">Download Report <img src="_BASE_images/download.png"></img> </a>';
}else{
link = '<a href="'+modJs.getCustomActionUrl("download",{'file':fileName})+'" target="_blank" style="font-size:14px;font-weight:bold;">Download Report <img src="_BASE_images/download.png"></img> </a>';
}
link = link.replace(/_BASE_/g,this.baseUrl);
var tableHtml = link+'<br/><br/><div class="box-body table-responsive" style="overflow-x:scroll;padding: 5px;border: solid 1px #DDD;"><table id="tempReportTable" cellpadding="0" cellspacing="0" border="0" class="table table-bordered table-striped"></table></div>';
//Delete existing temp report table
$("#tempReportTable").remove();
//this.showMessage("Report",tableHtml);
$("#Report").html(tableHtml);
$("#Report").show();
$("#ReportForm").hide();
//Prepare headers
var headers = [];
for(title in serverData[1]){
headers.push({ "sTitle": serverData[1][title]});
}
var data = serverData[2];
var dataTableParams = {
"oLanguage": {
"sLengthMenu": "_MENU_ records per page"
},
"aaData": data,
"aoColumns": headers,
"bSort": false,
"iDisplayLength": 15,
"iDisplayStart": 0
};
$("#tempReportTable").dataTable( dataTableParams );
$(".dataTables_paginate ul").addClass("pagination");
$(".dataTables_length").hide();
$(".dataTables_filter input").addClass("form-control");
$(".dataTables_filter input").attr("placeholder","Search");
$(".dataTables_filter label").contents().filter(function(){
return (this.nodeType == 3);
}).remove();
$('.tableActionButton').tooltip();
});
ReportAdapter.method('fillForm', function(object) {
var fields = this.getFormFields();
for(var i=0;i<fields.length;i++) {
if(fields[i][1].type == 'label'){
$("#"+this.getTableName()+'Form #'+fields[i][0]).html(object[fields[i][0]]);
}else{
$("#"+this.getTableName()+'Form #'+fields[i][0]).val(object[fields[i][0]]);
}
}
});
ReportAdapter.method('getHelpLink', function () {
return 'http://blog.icehrm.com/?page_id=118';
});

View File

@@ -0,0 +1,11 @@
{
"label":"Reports",
"menu":"Reports",
"order":"1",
"icon":"fa-file-o",
"user_levels":["Admin","Manager"],
"permissions":
{
}
}

View File

@@ -0,0 +1,88 @@
<?php
if(!class_exists('ReportBuilder')){
include_once MODULE_PATH.'/reportClasses/ReportBuilder.php';
}
class ActiveEmployeeReport extends ReportBuilder{
public function getMainQuery(){
$query = "Select id, employee_id as 'Employee ID',
concat(`first_name`,' ',`middle_name`,' ', `last_name`) as 'Name',
(SELECT name from Nationality where id = nationality) as 'Nationality',
birthday as 'Birthday',
gender as 'Gender',
marital_status as 'Marital Status',
ssn_num as 'SSN Number',
nic_num as 'NIC Number',
other_id as 'Other IDs',
driving_license as 'Driving License Number',
(SELECT name from EmploymentStatus where id = employment_status) as 'Employment Status',
(SELECT name from JobTitles where id = job_title) as 'Job Title',
(SELECT name from PayGrades where id = pay_grade) as 'Pay Grade',
work_station_id as 'Work Station ID',
address1 as 'Address 1',
address2 as 'Address 2',
city as 'City',
(SELECT name from Country where code = country) as 'Country',
(SELECT name from Province where id = province) as 'Province',
postal_code as 'Postal Code',
home_phone as 'Home Phone',
mobile_phone as 'Mobile Phone',
work_phone as 'Work Phone',
work_email as 'Work Email',
private_email as 'Private Email',
joined_date as 'Joined Date',
confirmation_date as 'Confirmation Date',
(SELECT title from CompanyStructures where id = department) as 'Department',
(SELECT concat(`first_name`,' ',`middle_name`,' ', `last_name`,' [Employee ID:',`employee_id`,']') from Employees e1 where e1.id = e.supervisor) as 'Supervisor', notes as 'Notes'
FROM Employees e";
return $query;
}
public function getWhereQuery($request){
$query = "";
$params = array();
if(empty($request['department']) || $request['department'] == "NULL"){
$params = array();
$query = "where ((termination_date = '0001-01-01 00:00:00' or termination_date = '0000-00-00 00:00:00') and joined_date < NOW()) or (termination_date > NOW() and joined_date < NOW())";
}else{
$depts = $this->getChildCompanyStuctures($request['department']);
$query = "where department in (".implode(",",$depts).") and (((termination_date = '0001-01-01 00:00:00' or termination_date = '0000-00-00 00:00:00') and joined_date < NOW()) or (termination_date > NOW() and joined_date < NOW()))";
}
return array($query, $params);
}
public function getChildCompanyStuctures($companyStructId){
$childIds = array();
$childIds[] = $companyStructId;
$nodeIdsAtLastLevel = $childIds;
$count = 0;
do{
$count++;
$companyStructTemp = new CompanyStructure();
if(empty($nodeIdsAtLastLevel) || empty($childIds)){
break;
}
$idQuery = "parent in (".implode(",",$nodeIdsAtLastLevel).") and id not in(".implode(",",$childIds).")";
LogManager::getInstance()->debug($idQuery);
$list = $companyStructTemp->Find($idQuery, array());
if(!$list){
LogManager::getInstance()->debug($companyStructTemp->ErrorMsg());
}
$nodeIdsAtLastLevel = array();
foreach($list as $item){
$childIds[] = $item->id;
$nodeIdsAtLastLevel[] = $item->id;
}
}while(count($list) > 0 && $count < 10);
return $childIds;
}
}

View File

@@ -0,0 +1,50 @@
<?php
if(!class_exists('ReportBuilder')){
include_once MODULE_PATH.'/reportClasses/ReportBuilder.php';
}
class EmployeeAttendanceReport extends ReportBuilder{
public function getMainQuery(){
$query = "SELECT
(SELECT `employee_id` from Employees where id = at.employee) as 'Employee',
(SELECT concat(`first_name`,' ',`middle_name`,' ', `last_name`) from Employees where id = at.employee) as 'Employee',
in_time as 'Time In',
out_time as 'Time Out',
note as 'Note'
FROM Attendance at";
return $query;
}
public function getWhereQuery($request){
$employeeList = array();
if(!empty($request['employee'])){
$employeeList = json_decode($request['employee'],true);
}
if(in_array("NULL", $employeeList) ){
$employeeList = array();
}
if(!empty($employeeList)){
$query = "where employee in (".implode(",", $employeeList).") and in_time >= ? and out_time <= ? order by in_time desc;";
$params = array(
$request['date_start']." 00:00:00",
$request['date_end']." 23:59:59",
);
}else{
$query = "where in_time >= ? and out_time <= ? order by in_time desc;";
$params = array(
$request['date_start']." 00:00:00",
$request['date_end']." 23:59:59",
);
}
LogManager::getInstance()->info("Query:".$query);
LogManager::getInstance()->info("Params:".json_encode($params));
return array($query, $params);
}
}

View File

@@ -0,0 +1,70 @@
<?php
if(!class_exists('ReportBuilder')){
include_once MODULE_PATH.'/reportClasses/ReportBuilder.php';
}
class EmployeeLeavesReport extends ReportBuilder{
public function getMainQuery(){
$query = "SELECT
(SELECT concat(`first_name`,' ',`middle_name`,' ', `last_name`) from Employees where id = employee) as 'Employee',
(SELECT name from LeaveTypes where id = leave_type) as 'Leave Type',
(SELECT name from LeavePeriods where id = leave_type) as 'Leave Type',
date_start as 'Start Date',
date_end as 'End Date',
details as 'Reason',
status as 'Leave Status',
(select count(*) from EmployeeLeaveDays d where d.employee_leave = lv.id and leave_type = 'Full Day') as 'Full Day Count',
(select count(*) from EmployeeLeaveDays d where d.employee_leave = lv.id and leave_type = 'Half Day - Morning') as 'Half Day (Morning) Count',
(select count(*) from EmployeeLeaveDays d where d.employee_leave = lv.id and leave_type = 'Half Day - Afternoon') as 'Half Day (Afternoon) Count'
from EmployeeLeaves lv";
return $query;
}
public function getWhereQuery($request){
$employeeList = array();
if(!empty($request['employee'])){
$employeeList = json_decode($request['employee'],true);
}
if(in_array("NULL", $employeeList) ){
$employeeList = array();
}
if(!empty($employeeList) && ($request['status'] != "NULL" && !empty($request['status']))){
$query = "where employee in (".implode(",", $employeeList).") and date_start >= ? and date_end <= ? and status = ?;";
$params = array(
$request['date_start'],
$request['date_end'],
$request['status']
);
}else if(!empty($employeeList)){
$query = "where employee in (".implode(",", $employeeList).") and date_start >= ? and date_end <= ?;";
$params = array(
$request['date_start'],
$request['date_end']
);
}else if(($request['status'] != "NULL" && !empty($request['status']))){
$query = "where status = ? and date_start >= ? and date_end <= ?;";
$params = array(
$request['status'],
$request['date_start'],
$request['date_end']
);
}else{
$query = "where date_start >= ? and date_end <= ?;";
$params = array(
$request['date_start'],
$request['date_end']
);
}
LogManager::getInstance()->info("Query:".$query);
LogManager::getInstance()->info("Params:".json_encode($params));
return array($query, $params);
}
}

View File

@@ -0,0 +1,104 @@
<?php
if(!interface_exists('ReportBuilderInterface')){
include_once MODULE_PATH.'/reportClasses/ReportBuilderInterface.php';
}
class EmployeeTimeTrackReport implements ReportBuilderInterface{
public function getData($report,$req){
LogManager::getInstance()->info(json_encode($report));
LogManager::getInstance()->info(json_encode($req));
$employeeTimeEntry = new EmployeeTimeEntry();
$timeEntryList = $employeeTimeEntry->Find("employee = ? and date(date_start) >= ? and date(date_end) <= ?",array($req['employee'], $req['date_start'], $req['date_end']));
$seconds = 0;
$graphTimeArray = array();
foreach($timeEntryList as $entry){
$seconds = (strtotime($entry->date_end) - strtotime($entry->date_start));
$key = date("Y-m-d",strtotime($entry->date_end));
if(isset($graphTimeArray[$key])){
$graphTimeArray[$key] += $seconds;
}else{
$graphTimeArray[$key] = $seconds;
}
}
//$minutes = (int)($seconds/60);
//Find Attendance Entries
$attendance = new Attendance();
$atteandanceList = $attendance->Find("employee = ? and date(in_time) >= ? and date(out_time) <= ? and in_time < out_time",array($req['employee'], $req['date_start'], $req['date_end']));
$seconds = 0;
$graphAttendanceArray = array();
$firstTimeInArray = array();
$lastTimeOutArray = array();
foreach($atteandanceList as $entry){
$seconds = (strtotime($entry->out_time) - strtotime($entry->in_time));
$key = date("Y-m-d",strtotime($entry->in_time));
if(isset($graphAttendanceArray[$key])){
$graphAttendanceArray[$key] += $seconds;
$lastTimeOutArray[$key] = $entry->out_time;
}else{
$graphAttendanceArray[$key] = $seconds;
$firstTimeInArray[$key] = $entry->in_time;
$lastTimeOutArray[$key] = $entry->out_time;
}
}
/////////////////////////////////////////
$employeeObject = new Employee();
$employeeObject->Load("id = ?",array($req['employee']));
$reportData = array();
//$reportData[] = array($employeeObject->first_name." ".$employeeObject->last_name,"","","","");
$reportData[] = array("Date","First Punch-In Time","Last Punch-Out Time","Time in Office","Time in Timesheets");
//Iterate date range
$interval = DateInterval::createFromDateString('1 day');
$period = new DatePeriod(new DateTime($req['date_start']), $interval, new DateTime($req['date_end']));
foreach ( $period as $dt ){
$dataRow = array();
$key = $dt->format("Y-m-d");
$dataRow[] = $key;
if(isset($firstTimeInArray[$key])){
$dataRow[] = $firstTimeInArray[$key];
}else{
$dataRow[] = "Not Found";
}
if(isset($lastTimeOutArray[$key])){
$dataRow[] = $lastTimeOutArray[$key];
}else{
$dataRow[] = "Not Found";
}
if(isset($graphAttendanceArray[$key])){
$dataRow[] = round(($graphAttendanceArray[$key]/3600),2);
}else{
$dataRow[] = 0;
}
if(isset($graphTimeArray[$key])){
$dataRow[] = round(($graphTimeArray[$key]/3600),2);
}else{
$dataRow[] = 0;
}
$reportData[] = $dataRow;
}
return $reportData;
}
}

View File

@@ -0,0 +1,66 @@
<?php
if(!class_exists('ReportBuilder')){
include_once MODULE_PATH.'/reportClasses/ReportBuilder.php';
}
class EmployeeTimesheetReport extends ReportBuilder{
public function getMainQuery(){
$query = "SELECT
(SELECT concat(`first_name`,' ',`middle_name`,' ', `last_name`) from Employees where id = te.employee) as 'Employee',
(SELECT name from Projects where id = te.project) as 'Project',
details as 'Details',
date_start as 'Start Time',
date_end as 'End Time',
SEC_TO_TIME(TIMESTAMPDIFF(SECOND,te.date_start,te.date_end)) as 'Duration'
FROM EmployeeTimeEntry te";
return $query;
}
public function getWhereQuery($request){
$employeeList = array();
if(!empty($request['employee'])){
$employeeList = json_decode($request['employee'],true);
}
if(in_array("NULL", $employeeList) ){
$employeeList = array();
}
if(!empty($employeeList) && ($request['project'] != "NULL" && !empty($request['project']))){
$query = "where employee in (".implode(",", $employeeList).") and date_start >= ? and date_end <= ? and project = ?;";
$params = array(
$request['date_start'],
$request['date_end'],
$request['project']
);
}else if(!empty($employeeList)){
$query = "where employee in (".implode(",", $employeeList).") and date_start >= ? and date_end <= ?;";
$params = array(
$request['date_start'],
$request['date_end']
);
}else if(($request['project'] != "NULL" && !empty($request['project']))){
$query = "where project = ? and date_start >= ? and date_end <= ?;";
$params = array(
$request['project'],
$request['date_start'],
$request['date_end']
);
}else{
$query = "where date_start >= ? and date_end <= ?;";
$params = array(
$request['date_start'],
$request['date_end']
);
}
LogManager::getInstance()->info("Query:".$query);
LogManager::getInstance()->info("Params:".json_encode($params));
return array($query, $params);
}
}

View File

@@ -0,0 +1,34 @@
<?php
if(!class_exists('ActiveEmployeeReport')){
include_once MODULE_PATH.'/reportClasses/ActiveEmployeeReport.php';
}
class NewHiresEmployeeReport extends ActiveEmployeeReport{
public function getWhereQuery($request){
$query = "where ";
$params = array();
if(!empty($request['department']) && $request['department'] != "NULL"){
$depts = $this->getChildCompanyStuctures($request['department']);
$query.="department in(".implode(",",$depts).") and ";
}
if(empty($request['date_start']) || $request['date_start'] == "NULL"){
$request['date_start'] = date("Y-m-d 00:00:00");
}
if(empty($request['date_end']) || $request['date_end'] == "NULL"){
$request['date_end'] = date("Y-m-d 23:59:59");
}
$query.="joined_date >= ? ";
$params[] = $request['date_start']." 00:00:00";
$query.="and joined_date <= ? ";
$params[] = $request['date_end']." 23:59:59";
return array($query, $params);
}
}

View File

@@ -0,0 +1,57 @@
<?php
if(!interface_exists('ReportBuilderInterface')){
include_once MODULE_PATH.'/reportClasses/ReportBuilderInterface.php';
}
abstract class ReportBuilder implements ReportBuilderInterface{
public function getData($report,$request){
$query = $this->getMainQuery();
$where = $this->getWhereQuery($request);
$query.=" ".$where[0];
return $this->execute($report, $query, $where[1]);
}
protected function execute($report, $query, $parameters){
$report->DB()->SetFetchMode(ADODB_FETCH_ASSOC);
LogManager::getInstance()->debug("Query: ".$query);
LogManager::getInstance()->debug("Parameters: ".json_encode($parameters));
$rs = $report->DB()->Execute($query,$parameters);
if(!$rs){
LogManager::getInstance()->info($report->DB()->ErrorMsg());
return array("ERROR","Error generating report");
}
$reportNamesFilled = false;
$columnNames = array();
$reportData = array();
foreach ($rs as $rowId => $row) {
$reportData[] = array();
if(!$reportNamesFilled){
$countIt = 0;
foreach ($row as $name=> $value){
$countIt++;
$columnNames[$countIt] = $name;
$reportData[count($reportData)-1][] = $value;
}
$reportNamesFilled = true;
}else{
foreach ($row as $name=> $value){
$reportData[count($reportData)-1][] = $this->transformData($name, $value);
}
}
}
array_unshift($reportData,$columnNames);
return $reportData;
}
abstract public function getWhereQuery($request);
abstract public function getMainQuery();
public function transformData($name, $value){
return $value;
}
}

View File

@@ -0,0 +1,4 @@
<?php
interface ReportBuilderInterface{
public function getData($report,$request);
}

View File

@@ -0,0 +1,34 @@
<?php
if(!class_exists('ActiveEmployeeReport')){
include_once MODULE_PATH.'/reportClasses/ActiveEmployeeReport.php';
}
class TerminatedEmployeeReport extends ActiveEmployeeReport{
public function getWhereQuery($request){
$query = "where ";
$params = array();
if(!empty($request['department']) && $request['department'] != "NULL"){
$depts = $this->getChildCompanyStuctures($request['department']);
$query.="department in(".implode(",",$depts).") and ";
}
if(empty($request['date_start']) || $request['date_start'] == "NULL"){
$request['date_start'] = date("Y-m-d 00:00:00");
}
if(empty($request['date_end']) || $request['date_end'] == "NULL"){
$request['date_end'] = date("Y-m-d 23:59:59");
}
$query.="termination_date >= ? ";
$params[] = $request['date_start']." 00:00:00";
$query.="and termination_date <= ? ";
$params[] = $request['date_end']." 23:59:59";
return array($query, $params);
}
}

View File

@@ -0,0 +1,18 @@
INSERT INTO `Reports` (`name`, `details`, `parameters`, `query`, `paramOrder`, `type`) VALUES
('Active Employee Report', 'This report list employees who are currently active based on joined date and termination date ',
'[\r\n[ "department", {"label":"Department","type":"select2","remote-source":["CompanyStructure","id","title"],"allow-null":true}]\r\n]',
'ActiveEmployeeReport',
'["department"]', 'Class');
INSERT INTO `Reports` (`name`, `details`, `parameters`, `query`, `paramOrder`, `type`) VALUES
('New Hires Employee Report', 'This report list employees who are joined between given two dates ',
'[[ "department", {"label":"Department","type":"select2","remote-source":["CompanyStructure","id","title"],"allow-null":true}],\r\n[ "date_start", {"label":"Start Date","type":"date"}],\r\n[ "date_end", {"label":"End Date","type":"date"}]\r\n]',
'NewHiresEmployeeReport',
'["department","date_start","date_end"]', 'Class');
INSERT INTO `Reports` (`name`, `details`, `parameters`, `query`, `paramOrder`, `type`) VALUES
('Terminated Employee Report', 'This report list employees who are terminated between given two dates ',
'[[ "department", {"label":"Department","type":"select2","remote-source":["CompanyStructure","id","title"],"allow-null":true}],\r\n[ "date_start", {"label":"Start Date","type":"date"}],\r\n[ "date_end", {"label":"End Date","type":"date"}]\r\n]',
'TerminatedEmployeeReport',
'["department","date_start","date_end"]', 'Class');

View File

@@ -0,0 +1,6 @@
<div class="control-group" id="field__id_">
<div class="controls">
<label id="_id_" name="_id_" style="font-weight:bold"></label>
<hr/>
</div>
</div>

View File

@@ -0,0 +1,14 @@
<form class="form-horizontal" id="_id_">
<div class="control-group">
<div class="controls">
<span class="label label-warning" id="_id__error" style="display:none;"></span>
</div>
</div>
_fields_
<div class="control-group">
<div class="controls">
<button onclick="try{modJs.save()}catch(e){};return false;" class="btn">Download</button>
<button onclick="modJs.cancel();return false;" class="btn">Cancel</button>
</div>
</div>
</form>

View File

@@ -0,0 +1,23 @@
<?php
if (!class_exists('SettingsAdminManager')) {
class SettingsAdminManager extends AbstractModuleManager{
public function initializeUserClasses(){
}
public function initializeFieldMappings(){
}
public function initializeDatabaseErrorMappings(){
}
public function setupModuleClassDefinitions(){
//This is a fixed module, store model classes in models.inc.php
}
}
}

View File

@@ -0,0 +1,39 @@
<?php
/*
This file is part of iCE Hrm.
iCE Hrm is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
iCE Hrm is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with iCE Hrm. If not, see <http://www.gnu.org/licenses/>.
------------------------------------------------------------------
Original work Copyright (c) 2012 [Gamonoid Media Pvt. Ltd]
Developer: Thilina Hasantha (thilina.hasantha[at]gmail.com / facebook.com/thilinah)
*/
class SettingsInitialize extends AbstractInitialize{
public function init(){
if(SettingsManager::getInstance()->getSetting("Api: REST Api Enabled") == "1"){
$user = BaseService::getInstance()->getCurrentUser();
$dbUser = new User();
$dbUser->Load("id = ?",array($user->id));
$resp = RestApiManager::getInstance()->getAccessTokenForUser($dbUser);
if($resp->getStatus() != IceResponse::SUCCESS){
LogManager::getInstance()->error("Error occured while creating REST Api acces token for ".$user->username);
}
}
}
}

View File

@@ -0,0 +1,55 @@
<?php
/*
This file is part of iCE Hrm.
iCE Hrm is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
iCE Hrm is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with iCE Hrm. If not, see <http://www.gnu.org/licenses/>.
------------------------------------------------------------------
Original work Copyright (c) 2012 [Gamonoid Media Pvt. Ltd]
Developer: Thilina Hasantha (thilina.hasantha[at]gmail.com / facebook.com/thilinah)
*/
$moduleName = 'settings';
define('MODULE_PATH',dirname(__FILE__));
include APP_BASE_PATH.'header.php';
include APP_BASE_PATH.'modulejslibs.inc.php';
?><div class="span9">
<ul class="nav nav-tabs" id="modTab" style="margin-bottom:0px;margin-left:5px;border-bottom: none;">
<li class="active"><a id="tabSetting" href="#tabPageSetting">Settings</a></li>
</ul>
<div class="tab-content">
<div class="tab-pane active" id="tabPageSetting">
<div id="Setting" class="reviewBlock" data-content="List" style="padding-left:5px;">
</div>
<div id="SettingForm" class="reviewBlock" data-content="Form" style="padding-left:5px;display:none;">
</div>
</div>
</div>
</div>
<script>
var modJsList = new Array();
modJsList['tabSetting'] = new SettingAdapter('Setting','Setting','','name');
modJsList['tabSetting'].setShowAddNew(false);
var modJs = modJsList['tabSetting'];
</script>
<?php include APP_BASE_PATH.'footer.php';?>

67
ext/admin/settings/lib.js Normal file
View File

@@ -0,0 +1,67 @@
/**
* Author: Thilina Hasantha
*/
/**
* SettingAdapter
*/
function SettingAdapter(endPoint,tab,filter,orderBy) {
this.initAdapter(endPoint,tab,filter,orderBy);
}
SettingAdapter.inherits(AdapterBase);
SettingAdapter.method('getDataMapping', function() {
return [
"id",
"name",
"value",
"description"
];
});
SettingAdapter.method('getHeaders', function() {
return [
{ "sTitle": "ID" ,"bVisible":false},
{ "sTitle": "Name" },
{ "sTitle": "Value"},
{ "sTitle": "Details"}
];
});
SettingAdapter.method('getFormFields', function() {
return [
[ "id", {"label":"ID","type":"hidden"}],
[ "value", {"label":"Value","type":"text","validation":"none"}]
];
});
SettingAdapter.method('getActionButtonsHtml', function(id,data) {
var html = '<div style="width:80px;"><img class="tableActionButton" src="_BASE_images/edit.png" style="cursor:pointer;" rel="tooltip" title="Edit" onclick="modJs.edit(_id_);return false;"></img></div>';
html = html.replace(/_id_/g,id);
html = html.replace(/_BASE_/g,this.baseUrl);
return html;
});
SettingAdapter.method('getMetaFieldForRendering', function(fieldName) {
if(fieldName == "value"){
return "meta";
}
return "";
});
SettingAdapter.method('fillForm', function(object) {
this.uber('fillForm',object);
$("#helptext").html(object.description);
});
SettingAdapter.method('getHelpLink', function () {
return 'http://blog.icehrm.com/?page_id=126';
});

View File

@@ -0,0 +1,11 @@
{
"label":"Settings",
"menu":"System",
"order":"1",
"icon":"fa-cogs",
"user_levels":["Admin"],
"permissions":
{
}
}

View File

@@ -0,0 +1,16 @@
<form class="form-horizontal" id="_id_">
<div class="control-group">
<div class="controls">
<span class="label label-warning" id="_id__error" style="display:none;"></span>
</div>
</div>
_fields_
<div class="control-group" id="helptext" style="padding-left:20%;">
</div>
<div class="control-group">
<div class="controls">
<button onclick="try{modJs.save()}catch(e){};return false;" class="btn">Save</button>
<button onclick="modJs.cancel();return false;" class="btn">Cancel</button>
</div>
</div>
</form>

View File

@@ -0,0 +1,100 @@
<?php
/*
This file is part of iCE Hrm.
iCE Hrm is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
iCE Hrm is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with iCE Hrm. If not, see <http://www.gnu.org/licenses/>.
------------------------------------------------------------------
Original work Copyright (c) 2012 [Gamonoid Media Pvt. Ltd]
Developer: Thilina Hasantha (thilina.hasantha[at]gmail.com / facebook.com/thilinah)
*/
class UsersActionManager extends SubActionManager{
public function changePassword($req){
if($this->user->user_level == 'Admin' || $this->user->id == $req->id){
$user = $this->baseService->getElement('User',$req->id);
if(empty($user->id)){
return new IceResponse(IceResponse::ERROR,"Please save the user first");
}
$user->password = md5($req->pwd);
$ok = $user->Save();
if(!$ok){
return new IceResponse(IceResponse::ERROR,$user->ErrorMsg());
}
return new IceResponse(IceResponse::SUCCESS,$user);
}
return new IceResponse(IceResponse::ERROR);
}
public function saveUser($req){
if($this->user->user_level == 'Admin'){
$user = new User();
$user->Load("email = ?",array($req->email));
if($user->email == $req->email){
return new IceResponse(IceResponse::ERROR,"User with same email already exists");
}
$user->Load("username = ?",array($req->username));
if($user->username == $req->username){
return new IceResponse(IceResponse::ERROR,"User with same username already exists");
}
$user = new User();
$user->email = $req->email;
$user->username = $req->username;
$password = $this->generateRandomString(6);
$user->password = md5($password);
$user->employee = (empty($req->employee) || $req->employee == "NULL" )?NULL:$req->employee;
$user->user_level = $req->user_level;
$user->last_login = date("Y-m-d H:i:s");
$user->last_update = date("Y-m-d H:i:s");
$user->created = date("Y-m-d H:i:s");
$employee = null;
if(!empty($user->employee)){
$employee = $this->baseService->getElement('Employee',$user->employee,null,true);
}
$ok = $user->Save();
if(!$ok){
LogManager::getInstance()->info($user->ErrorMsg()."|".json_encode($user));
return new IceResponse(IceResponse::ERROR,"Error occured while saving the user");
}
$user->password = "";
$user = $this->baseService->cleanUpAdoDB($user);
if(!empty($this->emailSender)){
$usersEmailSender = new UsersEmailSender($this->emailSender, $this);
$usersEmailSender->sendWelcomeUserEmail($user, $password, $employee);
}
return new IceResponse(IceResponse::SUCCESS,$user);
}
return new IceResponse(IceResponse::ERROR, "Not Allowed");
}
private function generateRandomString($length = 10) {
$characters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
$charactersLength = strlen($characters);
$randomString = '';
for ($i = 0; $i < $length; $i++) {
$randomString .= $characters[rand(0, $charactersLength - 1)];
}
return $randomString;
}
}

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