Compare commits
42 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
27779782fc | ||
|
|
04bafeec81 | ||
|
|
cc1ac5a75e | ||
|
|
7528e5eabd | ||
|
|
ef72f8daa3 | ||
|
|
967c69b04e | ||
|
|
a2a23a2bb4 | ||
|
|
d022651a24 | ||
|
|
a619f76b3a | ||
|
|
9f0626c1f7 | ||
|
|
ec85cfa521 | ||
|
|
b15e432756 | ||
|
|
1b7bea571f | ||
|
|
1f60c4b217 | ||
|
|
ed739aa4e1 | ||
|
|
e6b4245334 | ||
|
|
4c171bfce3 | ||
|
|
3bb3f038bf | ||
|
|
4f6cdd98f8 | ||
|
|
81f7a97096 | ||
|
|
ab2a0293a6 | ||
|
|
283ef1e377 | ||
|
|
55f8ae364f | ||
|
|
564ce43c18 | ||
|
|
bd9e5acd65 | ||
|
|
a4a38a1869 | ||
|
|
e1aa2c1365 | ||
|
|
b1bfd2f39d | ||
|
|
4c3f27914b | ||
|
|
214ab89ce8 | ||
|
|
9348be0acd | ||
|
|
21c5d09bac | ||
|
|
13085bcecc | ||
|
|
9271156708 | ||
|
|
6ac1320f6a | ||
|
|
dcfc009938 | ||
|
|
b9ba064dbb | ||
|
|
f78f5592d3 | ||
|
|
d9f0d52eed | ||
|
|
fb8e970f7e | ||
|
|
e78331f5b3 | ||
|
|
9e415d589e |
7
.gitignore
vendored
7
.gitignore
vendored
@@ -1,5 +1,8 @@
|
|||||||
/.settings
|
/.settings
|
||||||
/.buildpath
|
/.buildpath
|
||||||
/.project
|
/.project
|
||||||
/.idea
|
/.idea/
|
||||||
build
|
/build
|
||||||
|
/deployment/clients/dev/data/
|
||||||
|
/deployment/clients/test/data/
|
||||||
|
/.vagrant
|
||||||
|
|||||||
13
.travis.yml
Normal file
13
.travis.yml
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
services:
|
||||||
|
- mysql
|
||||||
|
before_script:
|
||||||
|
- echo "USE mysql;\nUPDATE user SET password=PASSWORD('dev') WHERE user='root';\nFLUSH PRIVILEGES;\n" | mysql -u root
|
||||||
|
install:
|
||||||
|
- ant buildlocal
|
||||||
|
language: php
|
||||||
|
php:
|
||||||
|
- '5.5'
|
||||||
|
- '5.6'
|
||||||
|
- '7.0'
|
||||||
|
- nightly
|
||||||
|
#after_failure: "cat /tmp/icehrm.test.log"
|
||||||
29
Vagrantfile
vendored
Normal file
29
Vagrantfile
vendored
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
# -*- mode: ruby -*-
|
||||||
|
# vi: set ft=ruby :
|
||||||
|
|
||||||
|
Vagrant.configure(2) do |config|
|
||||||
|
config.vm.box = "thilinah/jessie64_isotope"
|
||||||
|
config.vm.box_version = "0.0.1"
|
||||||
|
config.vm.network "private_network", ip: "192.168.40.40"
|
||||||
|
config.vm.synced_folder ".", "/vagrant", type: "nfs"
|
||||||
|
|
||||||
|
config.vm.provider "virtualbox" do |vb|
|
||||||
|
vb.memory = "1024"
|
||||||
|
vb.cpus = "2"
|
||||||
|
vb.name = "app.dev"
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
|
config.vm.provision "shell", inline: <<-SHELL
|
||||||
|
sudo apt-get update
|
||||||
|
SHELL
|
||||||
|
|
||||||
|
config.vm.hostname = "app.dev"
|
||||||
|
|
||||||
|
config.hostsupdater.aliases = [
|
||||||
|
"app.dev",
|
||||||
|
"app.app.dev",
|
||||||
|
"clients.app.dev"
|
||||||
|
]
|
||||||
|
|
||||||
|
end
|
||||||
89
build.xml
89
build.xml
@@ -3,6 +3,7 @@
|
|||||||
<!-- By default, we assume all tools to be on the $PATH -->
|
<!-- By default, we assume all tools to be on the $PATH -->
|
||||||
<property name="toolsdir" value=""/>
|
<property name="toolsdir" value=""/>
|
||||||
<property name="destination" value="${basedir}/build/app"/>
|
<property name="destination" value="${basedir}/build/app"/>
|
||||||
|
<property name="testdir" value="${basedir}/build/test"/>
|
||||||
<property name="origin" value="${basedir}/src"/>
|
<property name="origin" value="${basedir}/src"/>
|
||||||
<property environment="env"/>
|
<property environment="env"/>
|
||||||
<property name="env.appname" value="icehrm"/>
|
<property name="env.appname" value="icehrm"/>
|
||||||
@@ -11,13 +12,21 @@
|
|||||||
<property name="installLocalpath" value="/Applications/XAMPP/xamppfiles/htdocs/icehrm-open-core"/>
|
<property name="installLocalpath" value="/Applications/XAMPP/xamppfiles/htdocs/icehrm-open-core"/>
|
||||||
|
|
||||||
|
|
||||||
<target name="build"
|
<target name="build"
|
||||||
depends="prepare,lint,copyapp,release,install"
|
depends="prepare,lint,copyapp,phpunit,release,install"
|
||||||
description=""/>
|
description=""/>
|
||||||
|
|
||||||
<target name="buildlocal"
|
<target name="buildlocal"
|
||||||
depends="prepare,copyapp,installLocal"
|
depends="prepare,copyapp"
|
||||||
description=""/>
|
description=""/>
|
||||||
|
|
||||||
|
<target name="releaseapp"
|
||||||
|
depends="prepare,lint,copyapp,phpunit,release"
|
||||||
|
description=""/>
|
||||||
|
|
||||||
|
<target name="ice"
|
||||||
|
depends="copyapp_quick"
|
||||||
|
description=""/>
|
||||||
|
|
||||||
<target name="clean"
|
<target name="clean"
|
||||||
unless="clean.done"
|
unless="clean.done"
|
||||||
@@ -180,23 +189,55 @@
|
|||||||
description="Generate project documentation using phpDox">
|
description="Generate project documentation using phpDox">
|
||||||
<exec executable="${toolsdir}phpdox"/>
|
<exec executable="${toolsdir}phpdox"/>
|
||||||
</target>
|
</target>
|
||||||
|
|
||||||
|
|
||||||
|
<target name="copyapp_quick"
|
||||||
|
description="Copy generated files to QA app">
|
||||||
|
|
||||||
|
<copy todir="${destination}" overwrite="true">
|
||||||
|
<fileset dir="${origin}">
|
||||||
|
<include name="**/*"/>
|
||||||
|
<exclude name="composer/**"/>
|
||||||
|
<exclude name="themecss/**"/>
|
||||||
|
<exclude name="themejs/**"/>
|
||||||
|
<exclude name="robo/**"/>
|
||||||
|
<exclude name="images/**"/>
|
||||||
|
</fileset>
|
||||||
|
</copy>
|
||||||
|
|
||||||
|
<copy todir="${destination}" overwrite="true">
|
||||||
|
<fileset dir="${basedir}/core-ext">
|
||||||
|
<include name="**/*"/>
|
||||||
|
</fileset>
|
||||||
|
</copy>
|
||||||
|
|
||||||
|
<copy todir="${destination}" overwrite="true">
|
||||||
|
<fileset dir="${basedir}/ext">
|
||||||
|
<include name="**/*"/>
|
||||||
|
</fileset>
|
||||||
|
</copy>
|
||||||
|
|
||||||
|
<copy todir="${testdir}" overwrite="true">
|
||||||
|
<fileset dir="${basedir}/test">
|
||||||
|
<include name="**/*"/>
|
||||||
|
</fileset>
|
||||||
|
</copy>
|
||||||
|
|
||||||
|
</target>
|
||||||
|
|
||||||
<target name="copyapp"
|
<target name="copyapp"
|
||||||
description="Copy generated files to QA app">
|
description="Copy generated files to QA app">
|
||||||
|
|
||||||
<delete includeemptydirs="true">
|
<delete includeemptydirs="true">
|
||||||
<fileset dir="${destination}">
|
<fileset dir="${destination}">
|
||||||
<include name="**/*"/>
|
<include name="**/*"/>
|
||||||
</fileset>
|
</fileset>
|
||||||
</delete>
|
</delete>
|
||||||
|
|
||||||
<copy todir="${destination}" overwrite="true">
|
<copy todir="${destination}" overwrite="true">
|
||||||
<fileset dir="${origin}">
|
<fileset dir="${origin}">
|
||||||
<include name="**/*"/>
|
<include name="**/*"/>
|
||||||
</fileset>
|
</fileset>
|
||||||
</copy>
|
</copy>
|
||||||
|
|
||||||
<copy todir="${destination}/lib" overwrite="true">
|
<copy todir="${destination}/lib" overwrite="true">
|
||||||
<fileset dir="${basedir}/lib">
|
<fileset dir="${basedir}/lib">
|
||||||
@@ -215,7 +256,13 @@
|
|||||||
<include name="**/*"/>
|
<include name="**/*"/>
|
||||||
</fileset>
|
</fileset>
|
||||||
</copy>
|
</copy>
|
||||||
|
|
||||||
|
<copy todir="${testdir}" overwrite="true">
|
||||||
|
<fileset dir="${basedir}/test">
|
||||||
|
<include name="**/*"/>
|
||||||
|
</fileset>
|
||||||
|
</copy>
|
||||||
|
|
||||||
</target>
|
</target>
|
||||||
|
|
||||||
<target name="install"
|
<target name="install"
|
||||||
|
|||||||
0
config/database.yml
Normal file
0
config/database.yml
Normal file
90
core-ext/admin/dashboard/index.php
Normal file
90
core-ext/admin/dashboard/index.php
Normal file
@@ -0,0 +1,90 @@
|
|||||||
|
<?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 class="row">
|
||||||
|
<?php
|
||||||
|
$moduleManagers = BaseService::getInstance()->getModuleManagers();
|
||||||
|
$dashBoardList = array();
|
||||||
|
foreach($moduleManagers as $moduleManagerObj){
|
||||||
|
|
||||||
|
//Check if this is not an admin module
|
||||||
|
if($moduleManagerObj->getModuleType() != 'admin'){
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
$allowed = BaseService::getInstance()->isModuleAllowedForUser($moduleManagerObj);
|
||||||
|
|
||||||
|
if(!$allowed){
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
$item = $moduleManagerObj->getDashboardItem();
|
||||||
|
if(!empty($item)) {
|
||||||
|
$index = $moduleManagerObj->getDashboardItemIndex();
|
||||||
|
$dashBoardList[$index] = $item;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
ksort($dashBoardList);
|
||||||
|
|
||||||
|
foreach($dashBoardList as $k=>$v){
|
||||||
|
echo LanguageManager::translateTnrText($v);
|
||||||
|
}
|
||||||
|
?>
|
||||||
|
</div>
|
||||||
|
<?php
|
||||||
|
if(class_exists("ProVersion")) {
|
||||||
|
$proVersion = new ProVersion();
|
||||||
|
if (strtotime($proVersion->licenseExpire) < time()) {
|
||||||
|
?>
|
||||||
|
<div class="callout callout-danger lead" style="font-size: 14px;">
|
||||||
|
<h4>Your IceHrm Pro License is Expired</h4>
|
||||||
|
<p style="font-weight: bold;">
|
||||||
|
Your IceHrm Pro license is expired. Even though you can continue to use the software you won't receive
|
||||||
|
software upgrades or security patches. Please renew your license.
|
||||||
|
<br/>
|
||||||
|
<br/>
|
||||||
|
<a href="https://icehrm.com/renew_icehrmpro.php" class="btn btn-success btm-xs"><i
|
||||||
|
class="fa fa-checkout"></i> Renew License</a>
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
<?php
|
||||||
|
}
|
||||||
|
}
|
||||||
|
?>
|
||||||
|
</div>
|
||||||
|
<script>
|
||||||
|
var modJsList = new Array();
|
||||||
|
|
||||||
|
modJsList['tabDashboard'] = new DashboardAdapter('Dashboard','Dashboard');
|
||||||
|
|
||||||
|
var modJs = modJsList['tabDashboard'];
|
||||||
|
|
||||||
|
</script>
|
||||||
|
<?php include APP_BASE_PATH.'footer.php';?>
|
||||||
1
core-ext/app/data/icehrm.log
Normal file
1
core-ext/app/data/icehrm.log
Normal file
@@ -0,0 +1 @@
|
|||||||
|
init log
|
||||||
@@ -5,13 +5,16 @@ if(!defined('APP_NAME')){define('APP_NAME','ICE Hrm');}
|
|||||||
if(!defined('FB_URL')){define('FB_URL', 'https://www.facebook.com/icehrm');};
|
if(!defined('FB_URL')){define('FB_URL', 'https://www.facebook.com/icehrm');};
|
||||||
if(!defined('TWITTER_URL')){define('TWITTER_URL', 'https://twitter.com/icehrmapp');};
|
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");
|
if(defined('CLIENT_BASE_URL')) {
|
||||||
define('HOME_LINK_OTHERS', CLIENT_BASE_URL."?g=modules&n=dashboard&m=module_Personal_Information");
|
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
|
//Version
|
||||||
define('VERSION', '18.0.OS');
|
define('VERSION', '19.0.OS');
|
||||||
define('CACHE_VALUE', '18.0.OS');
|
define('CACHE_VALUE', '19.0.OS');
|
||||||
define('VERSION_DATE', '04/08/2016');
|
define('VERSION_NUMBER', '190');
|
||||||
|
define('VERSION_DATE', '19/11/2016');
|
||||||
|
|
||||||
if(!defined('CONTACT_EMAIL')){define('CONTACT_EMAIL','icehrm@gamonoid.com');}
|
if(!defined('CONTACT_EMAIL')){define('CONTACT_EMAIL','icehrm@gamonoid.com');}
|
||||||
if(!defined('KEY_PREFIX')){define('KEY_PREFIX','IceHrm');}
|
if(!defined('KEY_PREFIX')){define('KEY_PREFIX','IceHrm');}
|
||||||
@@ -26,3 +29,7 @@ define('MEMCACHE_PORT', '11211');
|
|||||||
if(!defined('WK_HTML_PATH')){
|
if(!defined('WK_HTML_PATH')){
|
||||||
define('WK_HTML_PATH', '/usr/bin/wkhtmltopdf');
|
define('WK_HTML_PATH', '/usr/bin/wkhtmltopdf');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
define('ALL_CLIENT_BASE_PATH', '/vagrant/deployment/clients/');
|
||||||
|
|
||||||
|
define('CHECK_UPDATE_URL', 'https://icehrm.com/a.php?a=checkUpdate&');
|
||||||
|
|||||||
@@ -1,27 +0,0 @@
|
|||||||
Before using please install php5-ldap module
|
|
||||||
sudo apt-get install php5-ldap
|
|
||||||
|
|
||||||
For using php ldap on windows please refer
|
|
||||||
http://stackoverflow.com/questions/16864306/fatal-error-call-to-undefined-function-ldap-connect
|
|
||||||
|
|
||||||
|
|
||||||
The user "admin" will always login with local db username and password (even LDAP is enabled)
|
|
||||||
|
|
||||||
Use following config to test LDAP connection with following test LDAP server
|
|
||||||
http://www.forumsys.com/tutorials/integration-how-to/ldap/online-ldap-test-server/
|
|
||||||
|
|
||||||
Change configs as follows under System->Settings
|
|
||||||
|
|
||||||
LDAP: Enabled = Yes
|
|
||||||
LDAP: Server = ldap.forumsys.com
|
|
||||||
LDAP: Port = 389
|
|
||||||
LDAP: Root DN = dc=example,dc=com
|
|
||||||
LDAP: Manager DN = cn=read-only-admin,dc=example,dc=com
|
|
||||||
LDAP: Manager Password = password
|
|
||||||
LDAP: Version 3 = Yes
|
|
||||||
LDAP: User Filter = uid={}
|
|
||||||
|
|
||||||
Then create a user with username "riemann" under System->Users
|
|
||||||
|
|
||||||
Logout and try login with riemann/password
|
|
||||||
|
|
||||||
10
core-ext/lang/de-ext.po
Normal file
10
core-ext/lang/de-ext.po
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Language: English\n"
|
||||||
|
"Language-Team: IceHrm\n"
|
||||||
|
"Last-Translator: Thilina Hasantha\n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Project-Id-Version: 18.0\n"
|
||||||
|
"Report-Msgid-Bugs-To: https://icehrm.com\n"
|
||||||
10
core-ext/lang/en-ext.po
Normal file
10
core-ext/lang/en-ext.po
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Language: English\n"
|
||||||
|
"Language-Team: IceHrm\n"
|
||||||
|
"Last-Translator: Thilina Hasantha\n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Project-Id-Version: 18.0\n"
|
||||||
|
"Report-Msgid-Bugs-To: https://icehrm.com\n"
|
||||||
@@ -1,2 +1,2 @@
|
|||||||
<?php
|
<?php
|
||||||
//Nothing here
|
//Nothing here
|
||||||
@@ -1,409 +0,0 @@
|
|||||||
<?php
|
|
||||||
define('CLIENT_PATH',dirname(__FILE__));
|
|
||||||
include ("config.base.php");
|
|
||||||
include ("include.common.php");
|
|
||||||
include("server.includes.inc.php");
|
|
||||||
|
|
||||||
error_log(print_r($_REQUEST,true));
|
|
||||||
|
|
||||||
if(empty($user)){
|
|
||||||
|
|
||||||
if(!isset($_REQUEST['f']) && isset($_COOKIE['icehrmLF']) && @$_REQUEST['login'] != 'no' && !isset($_REQUEST['username'])){
|
|
||||||
$tempUser = new User();
|
|
||||||
$tempUser->Load("login_hash = ?",array($_COOKIE['icehrmLF']));
|
|
||||||
|
|
||||||
if(!empty($tempUser->id) &&
|
|
||||||
sha1($tempUser->email."_".$tempUser->password) == $_COOKIE['icehrmLF']){
|
|
||||||
|
|
||||||
$_REQUEST['username'] = $tempUser->username;
|
|
||||||
$_REQUEST['password'] = $tempUser->password;
|
|
||||||
$_REQUEST['hashedPwd'] = $tempUser->password;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if(!empty($_REQUEST['username']) && !empty($_REQUEST['password'])){
|
|
||||||
|
|
||||||
$suser = null;
|
|
||||||
$ssoUserLoaded = false;
|
|
||||||
|
|
||||||
if($_REQUEST['username'] != "admin") {
|
|
||||||
LogManager::getInstance()->debug("LDAP: Enabled :" . SettingsManager::getInstance()->getSetting("LDAP: Enabled"));
|
|
||||||
if (SettingsManager::getInstance()->getSetting("LDAP: Enabled") == "1") {
|
|
||||||
$ldapResp = LDAPManager::getInstance()->checkLDAPLogin($_REQUEST['username'], $_REQUEST['password']);
|
|
||||||
LogManager::getInstance()->debug("LDAP Response :" . print_r($ldapResp, true));
|
|
||||||
LogManager::getInstance()->debug("LDAP Response Status :" . $ldapResp->getStatus());
|
|
||||||
if ($ldapResp->getStatus() == IceResponse::ERROR) {
|
|
||||||
header("Location:" . CLIENT_BASE_URL . "login.php?f=1");
|
|
||||||
exit();
|
|
||||||
} else {
|
|
||||||
$suser = new User();
|
|
||||||
$suser->Load("username = ?", array($_REQUEST['username']));
|
|
||||||
LogManager::getInstance()->debug("LDAP Response :[".$_REQUEST['username']."]" . print_r($suser, true));
|
|
||||||
if (empty($suser)) {
|
|
||||||
header("Location:" . CLIENT_BASE_URL . "login.php?f=1");
|
|
||||||
exit();
|
|
||||||
}
|
|
||||||
|
|
||||||
$ssoUserLoaded = true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
if(!isset($_REQUEST['hashedPwd'])){
|
|
||||||
$_REQUEST['hashedPwd'] = md5($_REQUEST['password']);
|
|
||||||
}
|
|
||||||
|
|
||||||
include 'login.com.inc.php';
|
|
||||||
|
|
||||||
if(empty($suser)){
|
|
||||||
$suser = new User();
|
|
||||||
$suser->Load("(username = ? or email = ?) and password = ?",array($_REQUEST['username'],$_REQUEST['username'],$_REQUEST['hashedPwd']));
|
|
||||||
}
|
|
||||||
|
|
||||||
if($suser->password == $_REQUEST['hashedPwd'] || $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(!$ssoUserLoaded && isset($_REQUEST['remember'])){
|
|
||||||
//Add cookie
|
|
||||||
$suser->login_hash = sha1($suser->email."_".$suser->password);
|
|
||||||
$suser->Save();
|
|
||||||
|
|
||||||
setcookie('icehrmLF',$suser->login_hash);
|
|
||||||
}
|
|
||||||
|
|
||||||
if(!isset($_REQUEST['remember'])){
|
|
||||||
setcookie('icehrmLF');
|
|
||||||
}
|
|
||||||
|
|
||||||
$redirectUrl = SessionUtils::getSessionObject('loginRedirect');
|
|
||||||
if(!empty($redirectUrl)){
|
|
||||||
header("Location:".$redirectUrl);
|
|
||||||
}else{
|
|
||||||
if($user->user_level == "Admin"){
|
|
||||||
if(SessionUtils::getSessionObject('account_locked') == "1"){
|
|
||||||
header("Location:".CLIENT_BASE_URL."?g=admin&n=billing&m=admin_System");
|
|
||||||
}else{
|
|
||||||
header("Location:".HOME_LINK_ADMIN);
|
|
||||||
}
|
|
||||||
|
|
||||||
}else{
|
|
||||||
if(empty($user->default_module)){
|
|
||||||
header("Location:".HOME_LINK_OTHERS);
|
|
||||||
}else{
|
|
||||||
$defaultModule = new Module();
|
|
||||||
$defaultModule->Load("id = ?",array($user->default_module));
|
|
||||||
if($defaultModule->mod_group == "user"){
|
|
||||||
$defaultModule->mod_group = "modules";
|
|
||||||
}
|
|
||||||
$homeLink = CLIENT_BASE_URL."?g=".$defaultModule->mod_group."&&n=".$defaultModule->name.
|
|
||||||
"&m=".$defaultModule->mod_group."_".str_replace(" ","_",$defaultModule->menu);
|
|
||||||
header("Location:".$homeLink);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}else{
|
|
||||||
header("Location:".CLIENT_BASE_URL."login.php?f=1");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}else{
|
|
||||||
if($user->user_level == "Admin"){
|
|
||||||
header("Location:".HOME_LINK_ADMIN);
|
|
||||||
}else{
|
|
||||||
if(empty($user->default_module)){
|
|
||||||
header("Location:".HOME_LINK_OTHERS);
|
|
||||||
}else{
|
|
||||||
$defaultModule = new Module();
|
|
||||||
$defaultModule->Load("id = ?",array($user->default_module));
|
|
||||||
if($defaultModule->mod_group == "user"){
|
|
||||||
$defaultModule->mod_group = "modules";
|
|
||||||
}
|
|
||||||
$homeLink = CLIENT_BASE_URL."?g=".$defaultModule->mod_group."&n=".$defaultModule->name.
|
|
||||||
"&m=".$defaultModule->mod_group."_".str_replace(" ","_",$defaultModule->menu);
|
|
||||||
header("Location:".$homeLink);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
$tuser = SessionUtils::getSessionObject('user');
|
|
||||||
$logoFileUrl = UIManager::getInstance()->getCompanyLogoUrl();
|
|
||||||
|
|
||||||
?><!DOCTYPE html>
|
|
||||||
<html lang="en">
|
|
||||||
<head>
|
|
||||||
<meta charset="utf-8">
|
|
||||||
<title><?=APP_NAME?> Login</title>
|
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
||||||
<meta name="description" content="">
|
|
||||||
<meta name="author" content="">
|
|
||||||
|
|
||||||
<!-- Le styles -->
|
|
||||||
<link href="<?=BASE_URL?>bootstrap/css/bootstrap.css" rel="stylesheet">
|
|
||||||
|
|
||||||
<script type="text/javascript" src="<?=BASE_URL?>js/jquery-1.8.1.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="<?=BASE_URL?>js/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 {
|
|
||||||
min-height: 0px !important;
|
|
||||||
background-color: #fff;
|
|
||||||
padding: 20px;
|
|
||||||
margin: 0 -20px;
|
|
||||||
-webkit-border-radius:0px;
|
|
||||||
-moz-border-radius:0px;
|
|
||||||
border-radius: 0px;
|
|
||||||
-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;
|
|
||||||
}
|
|
||||||
|
|
||||||
.add-on{
|
|
||||||
-webkit-border-radius:0px;
|
|
||||||
-moz-border-radius:0px;
|
|
||||||
border-radius: 0px;
|
|
||||||
}
|
|
||||||
|
|
||||||
input{
|
|
||||||
-webkit-border-radius:0px;
|
|
||||||
-moz-border-radius:0px;
|
|
||||||
border-radius: 0px;
|
|
||||||
}
|
|
||||||
|
|
||||||
</style>
|
|
||||||
|
|
||||||
|
|
||||||
</head>
|
|
||||||
|
|
||||||
<body>
|
|
||||||
|
|
||||||
<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(){
|
|
||||||
try{
|
|
||||||
localStorage.clear();
|
|
||||||
}catch(e){}
|
|
||||||
$("#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>
|
|
||||||
<div class="clearfix">
|
|
||||||
<div class="checkbox">
|
|
||||||
<label><input id="remember" name="remember" type="checkbox" value="remember" checked>Remember me</label>
|
|
||||||
</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 <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>
|
|
||||||
</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 <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 <span class="icon-arrow-right"></span></button>
|
|
||||||
</fieldset>
|
|
||||||
</form>
|
|
||||||
<?php }?>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div> <!-- /container -->
|
|
||||||
</body>
|
|
||||||
</html>
|
|
||||||
@@ -18,9 +18,9 @@ class ICEHRM_Record extends ADOdb_Active_Record{
|
|||||||
return array("get","element","save","delete");
|
return array("get","element","save","delete");
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getOtherAccess(){
|
public function getOtherAccess(){
|
||||||
return array("get","element","save","delete");
|
return array("get","element","save","delete");
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getManagerAccess(){
|
public function getManagerAccess(){
|
||||||
return array("get","element");
|
return array("get","element");
|
||||||
@@ -29,7 +29,7 @@ class ICEHRM_Record extends ADOdb_Active_Record{
|
|||||||
public function getUserAccess(){
|
public function getUserAccess(){
|
||||||
return array("get","element");
|
return array("get","element");
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getEmployeeAccess(){
|
public function getEmployeeAccess(){
|
||||||
return $this->getUserAccess();
|
return $this->getUserAccess();
|
||||||
}
|
}
|
||||||
@@ -70,22 +70,22 @@ class ICEHRM_Record extends ADOdb_Active_Record{
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public function postProcessGetData($obj){
|
public function postProcessGetData($obj){
|
||||||
return $obj;
|
return $obj;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function postProcessGetElement($obj){
|
public function postProcessGetElement($obj){
|
||||||
return $obj;
|
return $obj;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getDefaultAccessLevel(){
|
public function getDefaultAccessLevel(){
|
||||||
return array("get","element","save","delete");
|
return array("get","element","save","delete");
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getVirtualFields(){
|
public function getVirtualFields(){
|
||||||
return array(
|
return array(
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function allowIndirectMapping(){
|
public function allowIndirectMapping(){
|
||||||
return false;
|
return false;
|
||||||
|
|||||||
@@ -1,54 +1,54 @@
|
|||||||
<!-- Delete Modal -->
|
<!-- Delete Modal -->
|
||||||
<div class="modal fade" id="deleteModel" tabindex="-1" role="dialog" aria-labelledby="deleteModelLabel" aria-hidden="true">
|
<div class="modal fade" id="deleteModel" tabindex="-1" role="dialog" aria-labelledby="deleteModelLabel" aria-hidden="true">
|
||||||
<div class="modal-dialog">
|
<div class="modal-dialog">
|
||||||
<div class="modal-content">
|
<div class="modal-content">
|
||||||
<div class="modal-header">
|
<div class="modal-header">
|
||||||
<button type="button" class="close" data-dismiss="modal" aria-hidden="true"><li class="fa fa-times"/></button>
|
<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>
|
<h3 id="deleteModelLabel" style="font-size: 17px;"></h3>
|
||||||
</div>
|
</div>
|
||||||
<div class="modal-body">
|
<div class="modal-body">
|
||||||
<p id="deleteModelBody"></p>
|
<p id="deleteModelBody"></p>
|
||||||
</div>
|
</div>
|
||||||
<div class="modal-footer">
|
<div class="modal-footer">
|
||||||
<button class="btn" onclick="modJs.cancelDelete();">Cancel</button>
|
<button class="btn" onclick="modJs.cancelDelete();">Cancel</button>
|
||||||
<button class="btn btn-primary" onclick="modJs.confirmDelete();">Delete</button>
|
<button class="btn btn-primary" onclick="modJs.confirmDelete();">Delete</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<!-- Delete Modal -->
|
<!-- Delete Modal -->
|
||||||
|
|
||||||
<!-- Message Modal -->
|
<!-- Message Modal -->
|
||||||
<div class="modal fade" id="messageModel" tabindex="-1" role="dialog" aria-labelledby="messageModelLabel" aria-hidden="true">
|
<div class="modal fade" id="messageModel" tabindex="-1" role="dialog" aria-labelledby="messageModelLabel" aria-hidden="true">
|
||||||
<div class="modal-dialog">
|
<div class="modal-dialog">
|
||||||
<div class="modal-content">
|
<div class="modal-content">
|
||||||
<div class="modal-header">
|
<div class="modal-header">
|
||||||
<button type="button" class="close" data-dismiss="modal" aria-hidden="true"><li class="fa fa-times"/></button>
|
<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>
|
<h3 id="messageModelLabel" style="font-size: 17px;"></h3>
|
||||||
</div>
|
</div>
|
||||||
<div class="modal-body">
|
<div class="modal-body">
|
||||||
<p id="messageModelBody"></p>
|
<p id="messageModelBody"></p>
|
||||||
</div>
|
</div>
|
||||||
<div class="modal-footer">
|
<div class="modal-footer">
|
||||||
<button class="btn" onclick="modJs.closeMessage();">Ok</button>
|
<button class="btn" onclick="modJs.closeMessage();">Ok</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<!-- Message Modal -->
|
<!-- Message Modal -->
|
||||||
|
|
||||||
<!-- Plain Message Modal -->
|
<!-- Plain Message Modal -->
|
||||||
<div class="modal fade" id="plainMessageModel" tabindex="-1" role="dialog" aria-labelledby="plainMessageModelLabel" aria-hidden="true">
|
<div class="modal fade" id="plainMessageModel" tabindex="-1" role="dialog" aria-labelledby="plainMessageModelLabel" aria-hidden="true">
|
||||||
<div class="modal-dialog">
|
<div class="modal-dialog">
|
||||||
<div class="modal-content">
|
<div class="modal-content">
|
||||||
<div class="modal-header" style="border-bottom:none;/*background-color: #3c8dbc;*/">
|
<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>
|
<button type="button" class="close" data-dismiss="modal" aria-hidden="true" style="margin-top:-10px;"><li class="fa fa-times"/></button>
|
||||||
</div>
|
</div>
|
||||||
<div class="modal-body">
|
<div class="modal-body">
|
||||||
<p id="plainMessageModelBody"></p>
|
<p id="plainMessageModelBody"></p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<!-- Plain Message Modal -->
|
<!-- Plain Message Modal -->
|
||||||
|
|
||||||
@@ -89,62 +89,62 @@
|
|||||||
|
|
||||||
<!-- Upload Modal -->
|
<!-- Upload Modal -->
|
||||||
<div class="modal fade" id="uploadModel" tabindex="-1" role="dialog" aria-hidden="true">
|
<div class="modal fade" id="uploadModel" tabindex="-1" role="dialog" aria-hidden="true">
|
||||||
<div class="modal-dialog">
|
<div class="modal-dialog">
|
||||||
<div class="modal-content">
|
<div class="modal-content">
|
||||||
<div class="modal-header">
|
<div class="modal-header">
|
||||||
<button type="button" class="close" data-dismiss="modal" aria-hidden="true"><li class="fa fa-times"/></button>
|
<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>
|
<h3 id="uploadModelLabel" style="font-size: 17px;"></h3>
|
||||||
</div>
|
</div>
|
||||||
<div class="modal-body">
|
<div class="modal-body">
|
||||||
<p id="uploadModelBody"></p>
|
<p id="uploadModelBody"></p>
|
||||||
</div>
|
</div>
|
||||||
<div class="modal-footer">
|
<div class="modal-footer">
|
||||||
<button class="btn" onclick="$('#uploadModel').modal('hide');">Cancel</button>
|
<button class="btn" onclick="$('#uploadModel').modal('hide');">Cancel</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<!-- Upload Modal -->
|
<!-- Upload Modal -->
|
||||||
|
|
||||||
<!-- Message Modal -->
|
<!-- Message Modal -->
|
||||||
<div class="modal fade" id="verifyModel" tabindex="-1" role="dialog" aria-labelledby="verifyModelLabel" aria-hidden="true">
|
<div class="modal fade" id="verifyModel" tabindex="-1" role="dialog" aria-labelledby="verifyModelLabel" aria-hidden="true">
|
||||||
<div class="modal-dialog">
|
<div class="modal-dialog">
|
||||||
<div class="modal-content">
|
<div class="modal-content">
|
||||||
<div class="modal-header">
|
<div class="modal-header">
|
||||||
<button type="button" class="close" data-dismiss="modal" aria-hidden="true"><li class="fa fa-times"/></button>
|
<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>
|
<h3 id="verifyModelLabel" style="font-size: 17px;"></h3>
|
||||||
</div>
|
</div>
|
||||||
<div class="modal-body">
|
<div class="modal-body">
|
||||||
<p id="verifyModelBody">
|
<p id="verifyModelBody">
|
||||||
<b>Step 1:</b><br/>
|
<b>Step 1:</b><br/>
|
||||||
Please get your Instance Key from here:<br/>
|
Please get your Instance Key from here:<br/>
|
||||||
<a target="_blank" href="https://icehrm.com/generateInstanceKey.php?id=<?=$baseService->getInstanceId()?>">
|
<a target="_blank" href="https://icehrm.com/generateInstanceKey.php?id=<?=$baseService->getInstanceId()?>">
|
||||||
https://icehrm.com/generateInstanceKey.php?id=<?=$baseService->getInstanceId()?>
|
https://icehrm.com/generateInstanceKey.php?id=<?=$baseService->getInstanceId()?>
|
||||||
</a>
|
</a>
|
||||||
|
|
||||||
<br/><b>Step 2:</b><br/>
|
<br/><b>Step 2:</b><br/>
|
||||||
Enter the key you generated in step 1 here and click "Verify"<br/>
|
Enter the key you generated in step 1 here and click "Verify"<br/>
|
||||||
<form role="form">
|
<form role="form">
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<label class="col-sm-12 control-label" for="verificationKey">Verification Key</label>
|
<label class="col-sm-12 control-label" for="verificationKey">Verification Key</label>
|
||||||
<div class="controls col-sm-12">
|
<div class="controls col-sm-12">
|
||||||
<input class="form-control" type="text" id="verificationKey" name="verificationKey" value=""/>
|
<input class="form-control" type="text" id="verificationKey" name="verificationKey" value=""/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<br/><br/>
|
<br/><br/>
|
||||||
<div class="control-group row">
|
<div class="control-group row">
|
||||||
<div class="controls col-sm-12">
|
<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="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>
|
<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>
|
||||||
<div class="controls col-sm-3">
|
<div class="controls col-sm-3">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<!-- Message Modal -->
|
<!-- Message Modal -->
|
||||||
|
|||||||
61
core-ext/raml/api.raml
Normal file
61
core-ext/raml/api.raml
Normal file
@@ -0,0 +1,61 @@
|
|||||||
|
#%RAML 0.8
|
||||||
|
---
|
||||||
|
title: IceHrm
|
||||||
|
baseUri: http://icehrm-hosted.gamonoid.com/api
|
||||||
|
version: 1
|
||||||
|
documentation:
|
||||||
|
- title: Authentication
|
||||||
|
content: !include documentation/authentication.md
|
||||||
|
- title: Responses
|
||||||
|
content: !include documentation/responses.md
|
||||||
|
|
||||||
|
/employee:
|
||||||
|
displayName: Employee
|
||||||
|
/list:
|
||||||
|
get:
|
||||||
|
is: [ paginated ]
|
||||||
|
description: Get a list of employees
|
||||||
|
responses:
|
||||||
|
200:
|
||||||
|
body:
|
||||||
|
application/json:
|
||||||
|
schema: !include schemas/employees.json
|
||||||
|
example: !include examples/employees.json
|
||||||
|
/{id}:
|
||||||
|
get:
|
||||||
|
description: Get an employee by id
|
||||||
|
responses:
|
||||||
|
200:
|
||||||
|
body:
|
||||||
|
application/json:
|
||||||
|
schema: !include schemas/employee.json
|
||||||
|
example: !include examples/employee.json
|
||||||
|
404:
|
||||||
|
description: Employee does not exist
|
||||||
|
body:
|
||||||
|
application/json:
|
||||||
|
schema: !include schemas/error.json
|
||||||
|
uriParameters:
|
||||||
|
id:
|
||||||
|
description: Employee id
|
||||||
|
type: integer
|
||||||
|
/candidate:
|
||||||
|
displayName: Candidate
|
||||||
|
/{id}:
|
||||||
|
get:
|
||||||
|
description: Get an employee by id
|
||||||
|
responses:
|
||||||
|
200:
|
||||||
|
body:
|
||||||
|
application/json:
|
||||||
|
schema: !include schemas/candidate.json
|
||||||
|
example: !include examples/candidate.json
|
||||||
|
404:
|
||||||
|
description: Candidate does not exist
|
||||||
|
body:
|
||||||
|
application/json:
|
||||||
|
schema: !include schemas/error.json
|
||||||
|
uriParameters:
|
||||||
|
id:
|
||||||
|
description: Candidate id
|
||||||
|
type: integer
|
||||||
1
core-ext/raml/documentation/authentication.md
Normal file
1
core-ext/raml/documentation/authentication.md
Normal file
@@ -0,0 +1 @@
|
|||||||
|
Admin users of icehrm can find the access token under System->Settings
|
||||||
9
core-ext/raml/documentation/responses.md
Normal file
9
core-ext/raml/documentation/responses.md
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
| Code | Description |
|
||||||
|
|------|--------------------|
|
||||||
|
| 200 | Ok |
|
||||||
|
| 201 | Created |
|
||||||
|
| 400 | Bad request |
|
||||||
|
| 401 | Not authorized |
|
||||||
|
| 403 | Forbidden |
|
||||||
|
| 404 | Resource not found |
|
||||||
|
| 500 | Server error |
|
||||||
53
core-ext/raml/examples/candidate.json
Normal file
53
core-ext/raml/examples/candidate.json
Normal file
@@ -0,0 +1,53 @@
|
|||||||
|
{
|
||||||
|
"id": "1",
|
||||||
|
"first_name": "Jhon",
|
||||||
|
"last_name": "Doe",
|
||||||
|
"nationality": "4",
|
||||||
|
"birthday": null,
|
||||||
|
"gender": "Male",
|
||||||
|
"marital_status": null,
|
||||||
|
"address1": null,
|
||||||
|
"address2": null,
|
||||||
|
"city": "New York",
|
||||||
|
"country": "US",
|
||||||
|
"province": null,
|
||||||
|
"postal_code": null,
|
||||||
|
"email": "icehrm+jhon@web-stalk.com",
|
||||||
|
"home_phone": "+1 455565656",
|
||||||
|
"mobile_phone": null,
|
||||||
|
"cv_title": "Software Engineer",
|
||||||
|
"cv": "cv_rYwHphV7xD5dOe1444302569136",
|
||||||
|
"cvtext": null,
|
||||||
|
"industry": null,
|
||||||
|
"profileImage": null,
|
||||||
|
"head_line": "",
|
||||||
|
"objective": "",
|
||||||
|
"work_history": "",
|
||||||
|
"education": "",
|
||||||
|
"skills": "",
|
||||||
|
"referees": "",
|
||||||
|
"linkedInUrl": null,
|
||||||
|
"linkedInData": null,
|
||||||
|
"totalYearsOfExperience": null,
|
||||||
|
"totalMonthsOfExperience": null,
|
||||||
|
"generatedCVFile": null,
|
||||||
|
"created": "2015-10-08 16:59:20",
|
||||||
|
"updated": "2015-10-08 16:59:20",
|
||||||
|
"expectedSalary": "0",
|
||||||
|
"preferedPositions": null,
|
||||||
|
"preferedJobtype": null,
|
||||||
|
"preferedCountries": null,
|
||||||
|
"tags": null,
|
||||||
|
"notes": null,
|
||||||
|
"calls": null,
|
||||||
|
"age": null,
|
||||||
|
"hash": "663fd20d1859344585f678a0f87b23522b8f9fce8c67c5290a609ce342b81442",
|
||||||
|
"linkedInProfileLink": null,
|
||||||
|
"linkedInProfileId": null,
|
||||||
|
"facebookProfileLink": null,
|
||||||
|
"facebookProfileId": null,
|
||||||
|
"twitterProfileLink": null,
|
||||||
|
"twitterProfileId": null,
|
||||||
|
"googleProfileLink": null,
|
||||||
|
"googleProfileId": null
|
||||||
|
}
|
||||||
75
core-ext/raml/examples/employee.json
Normal file
75
core-ext/raml/examples/employee.json
Normal file
@@ -0,0 +1,75 @@
|
|||||||
|
{
|
||||||
|
"id": "2",
|
||||||
|
"employee_id": "EMP002",
|
||||||
|
"first_name": "Lala",
|
||||||
|
"middle_name": "Nadila ",
|
||||||
|
"last_name": "Lamees",
|
||||||
|
"nationality": "175",
|
||||||
|
"birthday": "1984-03-12",
|
||||||
|
"gender": "Female",
|
||||||
|
"marital_status": "Single",
|
||||||
|
"ssn_num": "",
|
||||||
|
"nic_num": "4594567WE3",
|
||||||
|
"other_id": "4595567WE3",
|
||||||
|
"driving_license": "349-066-YUO",
|
||||||
|
"driving_license_exp_date": "2012-03-01",
|
||||||
|
"employment_status": "1",
|
||||||
|
"job_title": "8",
|
||||||
|
"pay_grade": "2",
|
||||||
|
"work_station_id": "W001",
|
||||||
|
"address1": "Green War Rd, 00123",
|
||||||
|
"address2": "",
|
||||||
|
"city": "Istanbul",
|
||||||
|
"country": "TR",
|
||||||
|
"province": null,
|
||||||
|
"postal_code": "909066",
|
||||||
|
"home_phone": "+960112345",
|
||||||
|
"mobile_phone": "+960112345",
|
||||||
|
"work_phone": "+960112345",
|
||||||
|
"work_email": "icehrm+manager@web-stalk.com",
|
||||||
|
"private_email": "icehrm+manager@web-stalk.com",
|
||||||
|
"joined_date": "2011-03-07",
|
||||||
|
"confirmation_date": "2012-02-14",
|
||||||
|
"supervisor": "1",
|
||||||
|
"indirect_supervisors": "[3,4]",
|
||||||
|
"department": "2",
|
||||||
|
"custom1": null,
|
||||||
|
"custom2": null,
|
||||||
|
"custom3": null,
|
||||||
|
"custom4": null,
|
||||||
|
"custom5": null,
|
||||||
|
"custom6": null,
|
||||||
|
"custom7": null,
|
||||||
|
"custom8": null,
|
||||||
|
"custom9": null,
|
||||||
|
"custom10": null,
|
||||||
|
"termination_date": "0000-00-00",
|
||||||
|
"notes": null,
|
||||||
|
"status": "Active",
|
||||||
|
"ethnicity": null,
|
||||||
|
"immigration_status": null,
|
||||||
|
"approver1": "5",
|
||||||
|
"approver2": "6",
|
||||||
|
"approver3": null,
|
||||||
|
"nationality_Name_id": [],
|
||||||
|
"nationality_Name": "Tajik",
|
||||||
|
"ethnicity_Name_id": [],
|
||||||
|
"ethnicity_Name": null,
|
||||||
|
"immigration_status_Name_id": [],
|
||||||
|
"immigration_status_Name": null,
|
||||||
|
"employment_status_Name_id": [],
|
||||||
|
"employment_status_Name": "Full Time Contract",
|
||||||
|
"job_title_Name_id": [],
|
||||||
|
"job_title_Name": "Pre-Sales Executive",
|
||||||
|
"pay_grade_Name_id": [],
|
||||||
|
"pay_grade_Name": "Executive",
|
||||||
|
"country_Name_id": [],
|
||||||
|
"country_Name": "Turkey",
|
||||||
|
"province_Name_id": [],
|
||||||
|
"province_Name": null,
|
||||||
|
"department_Name_id": [],
|
||||||
|
"department_Name": "Head Office",
|
||||||
|
"supervisor_Name_id": [],
|
||||||
|
"supervisor_Name": "IceHrm Employee",
|
||||||
|
"image": "http:\/\/app.app.dev\/images\/user_female.png"
|
||||||
|
}
|
||||||
23
core-ext/raml/examples/employees.json
Normal file
23
core-ext/raml/examples/employees.json
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
[
|
||||||
|
{
|
||||||
|
"id": "1",
|
||||||
|
"employee_id": "EMP001",
|
||||||
|
"first_name": "IceHrm",
|
||||||
|
"middle_name": "Sample",
|
||||||
|
"last_name": "Employee"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "2",
|
||||||
|
"employee_id": "EMP002",
|
||||||
|
"first_name": "Lala",
|
||||||
|
"middle_name": "Nadila ",
|
||||||
|
"last_name": "Lamees"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "3",
|
||||||
|
"employee_id": "EMP003",
|
||||||
|
"first_name": "Sofia",
|
||||||
|
"middle_name": "",
|
||||||
|
"last_name": "O'Sullivan"
|
||||||
|
}
|
||||||
|
]
|
||||||
27
core-ext/raml/schemas/candidate.json
Normal file
27
core-ext/raml/schemas/candidate.json
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
{
|
||||||
|
"$schema": "http://json-schema.org/draft-04/schema#",
|
||||||
|
"type": "object",
|
||||||
|
"properties": {
|
||||||
|
"id": {
|
||||||
|
"type": "integer"
|
||||||
|
},
|
||||||
|
"email": {
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
"first_name": {
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
"last_name": {
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
"cv_title": {
|
||||||
|
"type": "string"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"required": [
|
||||||
|
"id",
|
||||||
|
"employee_id",
|
||||||
|
"first_name",
|
||||||
|
"last_name"
|
||||||
|
]
|
||||||
|
}
|
||||||
27
core-ext/raml/schemas/employee.json
Normal file
27
core-ext/raml/schemas/employee.json
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
{
|
||||||
|
"$schema": "http://json-schema.org/draft-04/schema#",
|
||||||
|
"type": "object",
|
||||||
|
"properties": {
|
||||||
|
"id": {
|
||||||
|
"type": "integer"
|
||||||
|
},
|
||||||
|
"employee_id": {
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
"first_name": {
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
"middle_name": {
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
"last_name": {
|
||||||
|
"type": "string"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"required": [
|
||||||
|
"id",
|
||||||
|
"employee_id",
|
||||||
|
"first_name",
|
||||||
|
"last_name"
|
||||||
|
]
|
||||||
|
}
|
||||||
30
core-ext/raml/schemas/employees.json
Normal file
30
core-ext/raml/schemas/employees.json
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
{
|
||||||
|
"$schema": "http://json-schema.org/draft-04/schema#",
|
||||||
|
"type": "array",
|
||||||
|
"items": {
|
||||||
|
"type": "object",
|
||||||
|
"properties": {
|
||||||
|
"id": {
|
||||||
|
"type": "integer"
|
||||||
|
},
|
||||||
|
"employee_id": {
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
"first_name": {
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
"middle_name": {
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
"last_name": {
|
||||||
|
"type": "string"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"required": [
|
||||||
|
"id",
|
||||||
|
"employee_id",
|
||||||
|
"first_name",
|
||||||
|
"last_name"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
39
core-ext/raml/schemas/error.json
Normal file
39
core-ext/raml/schemas/error.json
Normal file
@@ -0,0 +1,39 @@
|
|||||||
|
{
|
||||||
|
"$schema": "http://json-schema.org/draft-04/schema#",
|
||||||
|
"type": "object",
|
||||||
|
"properties": {
|
||||||
|
"error": {
|
||||||
|
"type": "object",
|
||||||
|
"properties": {
|
||||||
|
"messages": {
|
||||||
|
"type": "array",
|
||||||
|
"items": {
|
||||||
|
"type": "object",
|
||||||
|
"properties": {
|
||||||
|
"code": {
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
"message": {
|
||||||
|
"type": "string"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"required": [
|
||||||
|
"code",
|
||||||
|
"message"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"description": {
|
||||||
|
"type": "string"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"required": [
|
||||||
|
"messages",
|
||||||
|
"description"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"required": [
|
||||||
|
"error"
|
||||||
|
]
|
||||||
|
}
|
||||||
File diff suppressed because one or more lines are too long
@@ -40,7 +40,26 @@ INSERT INTO `Employees` (`id`, `employee_id`, `first_name`, `middle_name`, `last
|
|||||||
(12, CONCAT('EMP', RAND()), generate_fname(), '', generate_fname(), 10, '1979-07-15 18:30:00', 'Female', '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),
|
(12, CONCAT('EMP', RAND()), generate_fname(), '', generate_fname(), 10, '1979-07-15 18:30:00', 'Female', '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),
|
||||||
(13, CONCAT('EMP', RAND()), generate_fname(), '', generate_fname(), 10, '1979-07-15 18:30:00', 'Female', '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),
|
(13, CONCAT('EMP', RAND()), generate_fname(), '', generate_fname(), 10, '1979-07-15 18:30:00', 'Female', '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),
|
||||||
(14, CONCAT('EMP', RAND()), generate_fname(), '', generate_fname(), 10, '1979-07-15 18:30:00', 'Female', '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),
|
(14, CONCAT('EMP', RAND()), generate_fname(), '', generate_fname(), 10, '1979-07-15 18:30:00', 'Female', '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),
|
||||||
(15, CONCAT('EMP', RAND()), generate_fname(), '', generate_fname(), 10, '1979-07-15 18:30:00', 'Female', '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);
|
(15, CONCAT('EMP', RAND()), generate_fname(), '', generate_fname(), 10, '1979-07-15 18:30:00', 'Female', '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),
|
||||||
|
(16, CONCAT('EMP', RAND()), generate_fname(), '', generate_fname(), 10, '1979-07-15 18:30:00', 'Female', '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),
|
||||||
|
(17, CONCAT('EMP', RAND()), generate_fname(), '', generate_fname(), 10, '1979-07-15 18:30:00', 'Female', '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),
|
||||||
|
(18, CONCAT('EMP', RAND()), generate_fname(), '', generate_fname(), 10, '1979-07-15 18:30:00', 'Female', '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),
|
||||||
|
(19, CONCAT('EMP', RAND()), generate_fname(), '', generate_fname(), 10, '1979-07-15 18:30:00', 'Female', '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),
|
||||||
|
(20, CONCAT('EMP', RAND()), generate_fname(), '', generate_fname(), 10, '1979-07-15 18:30:00', 'Female', '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),
|
||||||
|
(21, CONCAT('EMP', RAND()), generate_fname(), '', generate_fname(), 10, '1979-07-15 18:30:00', 'Female', '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),
|
||||||
|
(22, CONCAT('EMP', RAND()), generate_fname(), '', generate_fname(), 10, '1979-07-15 18:30:00', 'Female', '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),
|
||||||
|
(23, CONCAT('EMP', RAND()), generate_fname(), '', generate_fname(), 10, '1979-07-15 18:30:00', 'Female', '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),
|
||||||
|
(24, CONCAT('EMP', RAND()), generate_fname(), '', generate_fname(), 10, '1979-07-15 18:30:00', 'Female', '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),
|
||||||
|
(25, CONCAT('EMP', RAND()), generate_fname(), '', generate_fname(), 10, '1979-07-15 18:30:00', 'Female', '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),
|
||||||
|
(26, CONCAT('EMP', RAND()), generate_fname(), '', generate_fname(), 10, '1979-07-15 18:30:00', 'Female', '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),
|
||||||
|
(27, CONCAT('EMP', RAND()), generate_fname(), '', generate_fname(), 10, '1979-07-15 18:30:00', 'Female', '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),
|
||||||
|
(28, CONCAT('EMP', RAND()), generate_fname(), '', generate_fname(), 10, '1979-07-15 18:30:00', 'Female', '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),
|
||||||
|
(29, CONCAT('EMP', RAND()), generate_fname(), '', generate_fname(), 10, '1979-07-15 18:30:00', 'Female', '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),
|
||||||
|
(30, CONCAT('EMP', RAND()), generate_fname(), '', generate_fname(), 10, '1979-07-15 18:30:00', 'Female', '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),
|
||||||
|
(31, CONCAT('EMP', RAND()), generate_fname(), '', generate_fname(), 10, '1979-07-15 18:30:00', 'Female', '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),
|
||||||
|
(32, CONCAT('EMP', RAND()), generate_fname(), '', generate_fname(), 10, '1979-07-15 18:30:00', 'Female', '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),
|
||||||
|
(33, CONCAT('EMP', RAND()), generate_fname(), '', generate_fname(), 10, '1979-07-15 18:30:00', 'Female', '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),
|
||||||
|
(34, CONCAT('EMP', RAND()), generate_fname(), '', generate_fname(), 10, '1979-07-15 18:30:00', 'Female', '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);
|
||||||
|
|
||||||
|
|
||||||
UPDATE `Employees` set supervisor = 2, indirect_supervisors = '[3,4]', approver1 = 5, approver2 = 6, approver3 = 7 where id = 1;
|
UPDATE `Employees` set supervisor = 2, indirect_supervisors = '[3,4]', approver1 = 5, approver2 = 6, approver3 = 7 where id = 1;
|
||||||
@@ -150,7 +169,7 @@ INSERT INTO `Candidates` VALUES
|
|||||||
(1,'Jhon','Doe',4,NULL,'Male',NULL,NULL,NULL,'New York','US',NULL,NULL,'icehrm+jhon@web-stalk.com','+1 455565656',NULL,'Software Engineer','cv_rYwHphV7xD5dOe1444302569136',NULL,NULL,NULL,'','','','','','',NULL,NULL,NULL,NULL,NULL,NULL,'2015-10-08 16:59:20','2015-10-08 16:59:20',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'663fd20d1859344585f678a0f87b23522b8f9fce8c67c5290a609ce342b81442',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
|
(1,'Jhon','Doe',4,NULL,'Male',NULL,NULL,NULL,'New York','US',NULL,NULL,'icehrm+jhon@web-stalk.com','+1 455565656',NULL,'Software Engineer','cv_rYwHphV7xD5dOe1444302569136',NULL,NULL,NULL,'','','','','','',NULL,NULL,NULL,NULL,NULL,NULL,'2015-10-08 16:59:20','2015-10-08 16:59:20',0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'663fd20d1859344585f678a0f87b23522b8f9fce8c67c5290a609ce342b81442',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
|
||||||
|
|
||||||
INSERT INTO `Files` VALUES
|
INSERT INTO `Files` VALUES
|
||||||
(6,'attachment_BI5XQCYFxZO12W1447383181684','attachment_BI5XQCYFxZO12W1447383181684.png',1,'Job');
|
(6,'attachment_BI5XQCYFxZO12W1447383181684','attachment_BI5XQCYFxZO12W1447383181684.png',1,'Job',2000,'2MB');
|
||||||
|
|
||||||
|
|
||||||
INSERT INTO `EmployeeDocuments` (`id`,`employee`, `document`, `date_added`, `valid_until`, `status`, `details`, `attachment`, `expire_notification_last`) VALUES
|
INSERT INTO `EmployeeDocuments` (`id`,`employee`, `document`, `date_added`, `valid_until`, `status`, `details`, `attachment`, `expire_notification_last`) VALUES
|
||||||
@@ -201,39 +220,8 @@ INSERT INTO `Attendance` (`employee`,`in_time`,`out_time`,`note`) VALUES
|
|||||||
(3, FROM_UNIXTIME((UNIX_TIMESTAMP(DATE_SUB(CURDATE(), INTERVAL 23 DAY))) + FLOOR(28800 + (RAND() * 3600)),'%Y-%m-%d %T'), FROM_UNIXTIME((UNIX_TIMESTAMP(DATE_SUB(CURDATE(), INTERVAL 23 DAY))) + FLOOR(57600 + (RAND() * 21600)),'%Y-%m-%d %T'), ''),
|
(3, FROM_UNIXTIME((UNIX_TIMESTAMP(DATE_SUB(CURDATE(), INTERVAL 23 DAY))) + FLOOR(28800 + (RAND() * 3600)),'%Y-%m-%d %T'), FROM_UNIXTIME((UNIX_TIMESTAMP(DATE_SUB(CURDATE(), INTERVAL 23 DAY))) + FLOOR(57600 + (RAND() * 21600)),'%Y-%m-%d %T'), ''),
|
||||||
(3, FROM_UNIXTIME((UNIX_TIMESTAMP(DATE_SUB(CURDATE(), INTERVAL 22 DAY))) + FLOOR(28800 + (RAND() * 3600)),'%Y-%m-%d %T'), FROM_UNIXTIME((UNIX_TIMESTAMP(DATE_SUB(CURDATE(), INTERVAL 22 DAY))) + FLOOR(57600 + (RAND() * 21600)),'%Y-%m-%d %T'), '');
|
(3, FROM_UNIXTIME((UNIX_TIMESTAMP(DATE_SUB(CURDATE(), INTERVAL 22 DAY))) + FLOOR(28800 + (RAND() * 3600)),'%Y-%m-%d %T'), FROM_UNIXTIME((UNIX_TIMESTAMP(DATE_SUB(CURDATE(), INTERVAL 22 DAY))) + FLOOR(57600 + (RAND() * 21600)),'%Y-%m-%d %T'), '');
|
||||||
|
|
||||||
INSERT INTO `PayslipTemplates` (`id`, `name`, `data`, `status`, `created`, `updated`) VALUES
|
|
||||||
(1, 'Basic', '[{"type":"Company Logo","payrollColumn":"NULL","label":"","text":"","fontSize":"Normal","fontStyle":"Normal","fontColor":"#000000","status":"Show","id":"data_1"},{"type":"Company Name","payrollColumn":"NULL","label":"","text":"","fontSize":"Normal","fontStyle":"Normal","fontColor":"","status":"Show","id":"data_2"},{"type":"Separators","payrollColumn":"NULL","label":"","text":"","fontSize":"Normal","fontStyle":"Normal","fontColor":"","status":"Show","id":"data_8"},{"type":"Payroll Column","payrollColumn":"5","label":"","text":"","fontSize":"Normal","fontStyle":"Normal","fontColor":"","status":"Show","id":"data_3"},{"type":"Payroll Column","payrollColumn":"6","label":"","text":"","fontSize":"Normal","fontStyle":"Normal","fontColor":"","status":"Show","id":"data_4"},{"type":"Payroll Column","payrollColumn":"17","label":"","text":"","fontSize":"Normal","fontStyle":"Normal","fontColor":"","status":"Show","id":"data_5"},{"type":"Separators","payrollColumn":"NULL","label":"","text":"","fontSize":"Normal","fontStyle":"Normal","fontColor":"","status":"Show","id":"data_9"},{"type":"Payroll Column","payrollColumn":"18","label":"","text":"","fontSize":"Normal","fontStyle":"Normal","fontColor":"","status":"Show","id":"data_6"},{"type":"Separators","payrollColumn":"NULL","label":"","text":"","fontSize":"Normal","fontStyle":"Normal","fontColor":"","status":"Show","id":"data_10"},{"type":"Text","payrollColumn":"NULL","label":"","text":"Big Company Ltd. is a limited company registered in England and Wales. Registered number: 1234567. Registered office: 123 Some Street, Somewhere, Someshire.","fontSize":"Normal","fontStyle":"Normal","fontColor":"","status":"Show","id":"data_7"}]', NULL, '2016-06-30 03:37:12', '2016-06-30 03:37:12');
|
|
||||||
|
|
||||||
|
|
||||||
INSERT INTO `Payroll` VALUES
|
|
||||||
(1,'2016-03',4,1,1,'[\"5\",\"8\",\"9\",\"10\",\"6\",\"7\",\"4\",\"3\",\"2\",\"1\",\"11\",\"12\",\"13\",\"14\",\"15\",\"16\"]','2016-03-01','2016-03-31','Draft', 1),
|
|
||||||
(2,'2016-03-Weekly',2,1,2,'[\"1\",\"2\",\"3\"]','2016-03-01','2016-03-31','Draft', 1);
|
|
||||||
|
|
||||||
INSERT INTO `PayrollColumns` VALUES
|
|
||||||
(5,'Basic Salary',NULL,'[\"1\"]','[]','[]','[]',5,'No','Yes','0.00',NULL,NULL),
|
|
||||||
(6,'Fixed Allowance',NULL,'[\"2\"]','[]','[]','[]',6,'No','Yes','0.00',NULL,NULL),
|
|
||||||
(7,'Gross Pay',NULL,'[]','[]','[\"5\",\"6\"]','[]',7,'No','Yes','0.00',NULL,NULL),
|
|
||||||
(8,'EPF Employee Contribution',NULL,'[]','[\"1\"]','[]','[]',8,'No','Yes','0.00',NULL,NULL),
|
|
||||||
(9,'EPF Employer Contribution',NULL,'[]','[\"2\"]','[]','[]',9,'No','Yes','0.00',NULL,NULL),
|
|
||||||
(10,'ETF Employee Contribution',NULL,'[]','[\"3\"]','[]','[]',10,'No','Yes','0.00',NULL,NULL),
|
|
||||||
(11,'Total EPF 20%',NULL,'[]','[]','[\"8\",\"9\"]','[]',11,'No','Yes','0.00',NULL,NULL),
|
|
||||||
(12,'Total for PAYE',NULL,'[]','[]','[\"7\"]','[]',12,'No','Yes','0.00',NULL,NULL),
|
|
||||||
(13,'PAYE Tax',NULL,'[]','[\"4\"]','[]','[]',13,'No','Yes','0.00',NULL,NULL),
|
|
||||||
(14,'Stamp Duty',NULL,'[]','[\"5\"]','[]','[]',14,'No','Yes','0.00',NULL,NULL),
|
|
||||||
(15,'Total Deductions',NULL,'[]','[]','[\"8\",\"13\",\"14\"]','[]',15,'No','Yes','0.00',NULL,NULL),
|
|
||||||
(16,'Salary to Bank',NULL,'[]','[]','[\"7\"]','[\"15\"]',16,'No','Yes','0.00',NULL,NULL);
|
|
||||||
|
|
||||||
|
|
||||||
INSERT INTO `DeductionGroup` VALUES
|
|
||||||
(1,'Sri Lanka Payroll Calculation',''),
|
|
||||||
(2,'Singapore Payroll Calculation','');
|
|
||||||
|
|
||||||
INSERT INTO `Deductions` VALUES
|
|
||||||
(1,'EPF Employee Contribution','[]','[]',7,'[{\"lowerCondition\":\"No Lower Limit\",\"lowerLimit\":\"0\",\"upperCondition\":\"No Upper Limit\",\"upperLimit\":\"0\",\"amount\":\"X*0.08\",\"id\":\"rangeAmounts_1\"}]',1),
|
|
||||||
(2,'EPF Employer Contribution','[]','[]',7,'[{\"lowerCondition\":\"No Lower Limit\",\"lowerLimit\":\"0\",\"upperCondition\":\"No Upper Limit\",\"upperLimit\":\"0\",\"amount\":\"X*0.12\",\"id\":\"rangeAmounts_1\"}]',1),
|
|
||||||
(3,'ETF Employee Contribution','[]','[]',7,'[{\"lowerCondition\":\"No Lower Limit\",\"lowerLimit\":\"0\",\"upperCondition\":\"No Upper Limit\",\"upperLimit\":\"0\",\"amount\":\"X*0.03\",\"id\":\"rangeAmounts_1\"}]',1),
|
|
||||||
(4,'PAYE Tax','[]','[]',12,'[{\"lowerCondition\":\"No Lower Limit\",\"lowerLimit\":\"0\",\"upperCondition\":\"lte\",\"upperLimit\":\"62500\",\"amount\":\"0\",\"id\":\"rangeAmounts_1\"},{\"lowerCondition\":\"gt\",\"lowerLimit\":\"62500\",\"upperCondition\":\"lte\",\"upperLimit\":\"104167\",\"amount\":\"X*0.04 - 2500\",\"id\":\"rangeAmounts_2\"},{\"lowerCondition\":\"gt\",\"lowerLimit\":\"104167\",\"upperCondition\":\"lte\",\"upperLimit\":\"145833\",\"amount\":\"X*0.08 - 6667\",\"id\":\"rangeAmounts_3\"},{\"lowerCondition\":\"gt\",\"lowerLimit\":\"145833\",\"upperCondition\":\"lte\",\"upperLimit\":\"187500\",\"amount\":\"X*0.12-12500\",\"id\":\"rangeAmounts_4\"},{\"lowerCondition\":\"gt\",\"lowerLimit\":\"187500\",\"upperCondition\":\"No Upper Limit\",\"upperLimit\":\"0\",\"amount\":\"X*0.16 - 20000\",\"id\":\"rangeAmounts_5\"}]',1),
|
|
||||||
(5,'Stamp Duty','[]','[]',12,'[{\"lowerCondition\":\"No Lower Limit\",\"lowerLimit\":\"0\",\"upperCondition\":\"lte\",\"upperLimit\":\"25000\",\"amount\":\"0\",\"id\":\"rangeAmounts_1\"},{\"lowerCondition\":\"gt\",\"lowerLimit\":\"25000\",\"upperCondition\":\"No Upper Limit\",\"upperLimit\":\"0\",\"amount\":\"25\",\"id\":\"rangeAmounts_2\"}]',1);
|
|
||||||
|
|
||||||
INSERT INTO `PayrollEmployees` VALUES
|
INSERT INTO `PayrollEmployees` VALUES
|
||||||
(1,1,4,151,'[]','[]',1),
|
(1,1,4,151,'[]','[]',1),
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -472,10 +472,11 @@ INSERT INTO `SupportedLanguages` (`name`, `description`) VALUES
|
|||||||
('es', 'Spanish');
|
('es', 'Spanish');
|
||||||
|
|
||||||
|
|
||||||
Alter table `Users` add column varchar(100) default null;
|
Alter table `Users` add column `lang` bigint(20) default null;
|
||||||
|
|
||||||
REPLACE INTO `Settings` (`name`, `value`, `description`, `meta`) VALUES
|
REPLACE INTO `Settings` (`name`, `value`, `description`, `meta`) VALUES
|
||||||
('System: Language', 'en', 'Current Language','["value", {"label":"Value","type":"select2","allow-null":false,"remote-source":["SupportedLanguage","name","description"]}]');
|
('System: Language', 'en', 'Current Language','["value", {"label":"Value","type":"select2","allow-null":false,"remote-source":["SupportedLanguage","name","description"]}]');
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
194
core-ext/scripts/upgrade_v18.0.OS_v19.0.OS.sql
Normal file
194
core-ext/scripts/upgrade_v18.0.OS_v19.0.OS.sql
Normal file
@@ -0,0 +1,194 @@
|
|||||||
|
REPLACE INTO `Reports` (`name`, `details`, `parameters`, `query`, `paramOrder`, `type`,`report_group`,`output`) VALUES
|
||||||
|
('Overtime Report', 'This report list all employee attendance entries by employee with overtime calculations', '[\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]', 'OvertimeReport', '["employee","date_start","date_end"]', 'Class','Time Management','CSV');
|
||||||
|
|
||||||
|
REPLACE INTO `Reports` (`name`, `details`, `parameters`, `query`, `paramOrder`, `type`,`report_group`,`output`) VALUES
|
||||||
|
('Overtime Summary Report', 'This report list all employee attendance entries by employee with overtime calculation summary', '[\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]', 'OvertimeSummaryReport', '["employee","date_start","date_end"]', 'Class','Time Management','CSV');
|
||||||
|
|
||||||
|
REPLACE INTO `Reports` (`name`, `details`, `parameters`, `query`, `paramOrder`, `type`,`report_group`,`output`) VALUES
|
||||||
|
('Overtime Request Report',
|
||||||
|
'This report list employee overtime requests by employee, date range, overtime category and project',
|
||||||
|
'[[ "employee", {"label":"Employee","type":"select2multi","allow-null":true,"null-label":"All Employees","remote-source":["Employee","id","first_name+last_name"]}],[ "date_start", {"label":"Start Date","type":"date"}],[ "date_end", {"label":"End Date","type":"date"}],[ "category", {"label":"Category","type":"select2","allow-null":true,"remote-source":["OvertimeCategory","id","name"]}],[ "project", {"label":"Project","type":"select2","allow-null":true,"remote-source":["Project","id","name"]}],[ "status", {"label":"Status","type":"select","source":[["NULL","All Statuses"],["Approved","Approved"],["Pending","Pending"],["Rejected","Rejected"],["Cancellation Requested","Cancellation Requested"],["Cancelled","Cancelled"],["Processing","Processing"]]}]]', 'OvertimeRequestReport', '["employee","date_start","date_end","category","project"]', 'Class','Time Management','CSV');
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
REPLACE INTO `Settings` (`name`, `value`, `description`, `meta`) VALUES
|
||||||
|
('Overtime: Allow Indirect Admins to Approve', '0', 'Allow indirect admins to approve overtime requests','["value", {"label":"Value","type":"select","source":[["1","Yes"],["0","No"]]}]');
|
||||||
|
|
||||||
|
REPLACE INTO `Settings` (`name`, `value`, `description`, `meta`) VALUES
|
||||||
|
('Travel: Enable Multi Level Approvals', '0', 'Allow multi level approvals in travel module','["value", {"label":"Value","type":"select","source":[["1","Yes"],["0","No"]]}]');
|
||||||
|
|
||||||
|
REPLACE INTO `Settings` (`name`, `value`, `description`, `meta`) VALUES
|
||||||
|
('Overtime: Enable Multi Level Approvals', '0', 'Allow multi level approvals in overtime module','["value", {"label":"Value","type":"select","source":[["1","Yes"],["0","No"]]}]');
|
||||||
|
|
||||||
|
REPLACE INTO `Settings` (`name`, `value`, `description`, `meta`) VALUES
|
||||||
|
('System: Company Structure Managers Enabled', '0', 'Allow Managers to View Employees in Their Company Structure, if They are Assigned as a Head of the Company Structure',
|
||||||
|
'["value", {"label":"Value","type":"select","source":[["1","Yes"],["0","No"]]}]');
|
||||||
|
|
||||||
|
|
||||||
|
REPLACE INTO `Settings` (`name`, `value`, `description`, `meta`) VALUES
|
||||||
|
('System: Child Company Structure Managers Enabled', '0', 'Allow Managers to View Employees in Their Company Structure and all Child Company Structures, if They are Assigned as a Head of the Company Structure',
|
||||||
|
'["value", {"label":"Value","type":"select","source":[["1","Yes"],["0","No"]]}]');
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
delete from PayrollColumns;
|
||||||
|
|
||||||
|
|
||||||
|
INSERT INTO `PayrollColumns` (`id`,`name`,`calculation_hook`,`salary_components`,`deductions`,`add_columns`,`sub_columns`,`editable`,`enabled`,`default_value`,`calculation_columns`,`calculation_function`) VALUES
|
||||||
|
(1,'Total Hours','AttendanceUtil_getTimeWorkedHours','','','','','No','Yes','0.00',NULL,NULL),
|
||||||
|
(2,'Regular Hours','AttendanceUtil_getRegularWorkedHours','','','','','No','Yes','0.00',NULL,NULL),
|
||||||
|
(3,'Overtime Hours','AttendanceUtil_getOverTimeWorkedHours','','','','','No','Yes','0.00',NULL,NULL),
|
||||||
|
(4,'Leave Hours','LeaveUtil_getLeaveHours','','','','','No','Yes','0.00',NULL,NULL);
|
||||||
|
|
||||||
|
|
||||||
|
delete from DataImport where name = 'Sage50 Import - Employee Data';
|
||||||
|
|
||||||
|
INSERT INTO `DataImport` (`name`, `dataType`, `details`, `columns`, `updated`, `created`) VALUES
|
||||||
|
('Employee Data Import', 'EmployeeDataImporter', '', '[{"name":"employee_id","title":"","type":"Normal","dependOn":"NULL","dependOnField":"","isKeyField":"No","idField":"Yes","id":"columns_7"},{"name":"first_name","title":"","type":"Normal","dependOn":"NULL","dependOnField":"","isKeyField":"No","idField":"No","id":"columns_3"},{"name":"middle_name","title":"","type":"Normal","dependOn":"NULL","dependOnField":"","isKeyField":"No","idField":"No","id":"columns_5"},{"name":"last_name","title":"","type":"Normal","dependOn":"NULL","dependOnField":"","isKeyField":"No","idField":"No","id":"columns_6"},{"name":"address1","title":"Address1","type":"Normal","dependOn":"NULL","dependOnField":"","isKeyField":"No","idField":"No","id":"columns_8"},{"name":"address2","title":"Address2","type":"Normal","dependOn":"NULL","dependOnField":"","isKeyField":"No","idField":"No","id":"columns_9"},{"name":"home_phone","title":"","type":"Normal","dependOn":"NULL","dependOnField":"","isKeyField":"No","idField":"No","id":"columns_14"},{"name":"mobile_phone","title":"","type":"Normal","dependOn":"NULL","dependOnField":"","isKeyField":"No","idField":"No","id":"columns_15"},{"name":"work_email","title":"","type":"Normal","dependOn":"NULL","dependOnField":"","isKeyField":"No","idField":"No","id":"columns_16"},{"name":"gender","title":"","type":"Normal","dependOn":"NULL","dependOnField":"","isKeyField":"No","idField":"No","id":"columns_17"},{"name":"marital_status","title":"","type":"Normal","dependOn":"NULL","dependOnField":"","isKeyField":"No","idField":"No","id":"columns_18"},{"name":"birthday","title":"","type":"Normal","dependOn":"NULL","dependOnField":"","isKeyField":"No","idField":"No","id":"columns_20"},{"name":"nationality","title":"Nationality","type":"Reference","dependOn":"Nationality","dependOnField":"name","isKeyField":"Yes","idField":"No","id":"columns_22"},{"name":"ethnicity","title":"Ethnicity","type":"Normal","dependOn":"Ethnicity","dependOnField":"name","isKeyField":"Yes","idField":"No","id":"columns_23"},{"name":"EmergencyContact/name","title":"","type":"Attached","dependOn":"EmergencyContact","dependOnField":"name","isKeyField":"Yes","idField":"No","id":"columns_24"},{"name":"EmergencyContact/relationship","title":"","type":"Attached","dependOn":"EmergencyContact","dependOnField":"relationship","isKeyField":"No","idField":"No","id":"columns_25"},{"name":"EmergencyContact/home_phone","title":"","type":"Attached","dependOn":"EmergencyContact","dependOnField":"home_phone","isKeyField":"No","idField":"No","id":"columns_26"},{"name":"ssn_num","title":"","type":"Normal","dependOn":"NULL","dependOnField":"","isKeyField":"No","idField":"No","id":"columns_31"},{"name":"job_title","title":"","type":"Reference","dependOn":"JobTitle","dependOnField":"name","isKeyField":"Yes","idField":"No","id":"columns_32"},{"name":"employment_status","title":"","type":"Reference","dependOn":"EmploymentStatus","dependOnField":"name","isKeyField":"Yes","idField":"No","id":"columns_33"},{"name":"joined_date","title":"","type":"Normal","dependOn":"NULL","dependOnField":"","isKeyField":"No","idField":"No","id":"columns_36"},{"name":"department","title":"","type":"Reference","dependOn":"CompanyStructure","dependOnField":"title","isKeyField":"Yes","idField":"No","id":"columns_38"}]', '2016-06-02 18:56:32', '2016-06-02 18:56:32'),
|
||||||
|
('Attendance Data Import', 'AttendanceDataImporter', '', '[{"name":"employee","title":"","type":"Reference","dependOn":"Employee","dependOnField":"employee_id","isKeyField":"Yes","idField":"No","id":"columns_1"},{"name":"in_time","title":"","type":"Normal","dependOn":"NULL","dependOnField":"","isKeyField":"No","idField":"No","id":"columns_2"},{"name":"out_time","title":"","type":"Normal","dependOn":"NULL","dependOnField":"","isKeyField":"No","idField":"No","id":"columns_3"},{"name":"note","title":"","type":"Normal","dependOn":"NULL","dependOnField":"","isKeyField":"No","idField":"No","id":"columns_4"}]', '2016-08-14 02:51:56', '2016-08-14 02:51:56');
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
REPLACE INTO `UserReports` (`name`, `details`, `parameters`, `query`, `paramOrder`, `type`,`report_group`,`output`) VALUES
|
||||||
|
('Overtime Report', 'This report list all employee attendance entries by employee with overtime calculations', '[\r\n[ "date_start", {"label":"Start Date","type":"date"}],\r\n[ "date_end", {"label":"End Date","type":"date"}]\r\n]', 'OvertimeReport', '["employee","date_start","date_end"]', 'Class','Time Management','CSV');
|
||||||
|
|
||||||
|
REPLACE INTO `UserReports` (`name`, `details`, `parameters`, `query`, `paramOrder`, `type`,`report_group`,`output`) VALUES
|
||||||
|
('Overtime Summary Report', 'This report list all employee attendance entries by employee with overtime calculation summary', '[\r\n[ "date_start", {"label":"Start Date","type":"date"}],\r\n[ "date_end", {"label":"End Date","type":"date"}]\r\n]', 'OvertimeSummaryReport', '["date_start","date_end"]', 'Class','Time Management','CSV');
|
||||||
|
|
||||||
|
REPLACE INTO `UserReports` (`name`, `details`, `parameters`, `query`, `paramOrder`, `type`,`report_group`,`output`) VALUES
|
||||||
|
('Client Project Time Report', 'View your time entries for projects under a given client',
|
||||||
|
'[\r\n[ "client", {"label":"Select Client","type":"select","allow-null":false,"remote-source":["Client","id","name"]}],\r\n[ "date_start", {"label":"Start Date","type":"date"}],\r\n[ "date_end", {"label":"End Date","type":"date"}]\r\n]',
|
||||||
|
'ClientProjectTimeReport', '["client","date_start","date_end","status"]', 'Class','Time Management','PDF');
|
||||||
|
|
||||||
|
REPLACE INTO `UserReports` (`name`, `details`, `parameters`, `query`, `paramOrder`, `type`,`report_group`,`output`) VALUES
|
||||||
|
('Download Payslips', 'Download your payslips',
|
||||||
|
'[\r\n[ "payroll", {"label":"Select Payroll","type":"select","allow-null":false,"remote-source":["Payroll","id","name","getEmployeePayrolls"]}]]',
|
||||||
|
'PayslipReport', '["payroll"]', 'Class','Finance','PDF');
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
INSERT INTO `DeductionGroup` VALUES
|
||||||
|
(1,'Sri Lanka Payroll Calculation','');
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
INSERT INTO `PayslipTemplates` (`id`, `name`, `data`, `status`, `created`, `updated`) VALUES
|
||||||
|
(1, 'Sri Lanka - Default Payslip', '[{"type":"Company Logo","payrollColumn":"NULL","label":"","text":"","fontSize":"Normal","fontStyle":"Normal","fontColor":"#000000","status":"Show","id":"data_1"},{"type":"Company Name","payrollColumn":"NULL","label":"","text":"","fontSize":"Normal","fontStyle":"Normal","fontColor":"","status":"Show","id":"data_2"},{"type":"Separators","payrollColumn":"NULL","label":"","text":"","fontSize":"Normal","fontStyle":"Normal","fontColor":"","status":"Show","id":"data_8"},{"type":"Payroll Column","payrollColumn":"5","label":"Basic Salary","text":"","status":"Show","id":"data_3"},{"type":"Payroll Column","payrollColumn":"6","label":"Fixed Allowance","text":"","status":"Show","id":"data_4"},{"type":"Payroll Column","payrollColumn":"7","label":"Gross Pay","text":"","status":"Show","id":"data_11"},{"type":"Separators","payrollColumn":"NULL","label":"","text":"","fontSize":"Normal","fontStyle":"Normal","fontColor":"","status":"Show","id":"data_9"},{"type":"Text","payrollColumn":"NULL","label":"","text":"Deductions","status":"Show","id":"data_13"},{"type":"Payroll Column","payrollColumn":"8","label":"EPF Employee Contribution","text":"","status":"Show","id":"data_6"},{"type":"Payroll Column","payrollColumn":"13","label":"PAYE Tax","text":"","status":"Show","id":"data_14"},{"type":"Payroll Column","payrollColumn":"14","label":"Stamp Duty","text":"","status":"Show","id":"data_15"},{"type":"Payroll Column","payrollColumn":"15","label":"Total Deductions","text":"","status":"Show","id":"data_16"},{"type":"Separators","payrollColumn":"NULL","label":"","text":"","status":"Show","id":"data_17"},{"type":"Text","payrollColumn":"NULL","label":"","text":"Employer Contributions","status":"Show","id":"data_18"},{"type":"Payroll Column","payrollColumn":"9","label":"EPF Employer Contribution","text":"","status":"Show","id":"data_19"},{"type":"Payroll Column","payrollColumn":"7","label":"ETF Employer Contribution","text":"","status":"Show","id":"data_20"},{"type":"Separators","payrollColumn":"7","label":"","text":"","status":"Show","id":"data_21"},{"type":"Text","payrollColumn":"7","label":"","text":"Totals","status":"Show","id":"data_22"},{"type":"Payroll Column","payrollColumn":"11","label":"Total EPF 20%","text":"","status":"Show","id":"data_23"},{"type":"Payroll Column","payrollColumn":"12","label":"Total for PAYE","text":"","status":"Show","id":"data_24"},{"type":"Payroll Column","payrollColumn":"16","label":"Net Salary","text":"","status":"Show","id":"data_25"}]', NULL, '2016-06-29 22:07:12', '2016-06-29 22:07:12');
|
||||||
|
|
||||||
|
INSERT INTO `Payroll` VALUES
|
||||||
|
(1,'Sri Lanka Payroll Sample',4,1,NULL,'[\"5\",\"8\",\"9\",\"10\",\"6\",\"7\",\"11\",\"12\",\"13\",\"14\",\"15\",\"16\"]','2016-03-01','2016-03-31','Draft', 1);
|
||||||
|
|
||||||
|
INSERT INTO `PayrollColumns` VALUES
|
||||||
|
(5,'LK - Basic Salary',NULL,'[\"1\"]','[]','[]','[]',5,'No','Yes','0.00',NULL,NULL),
|
||||||
|
(6,'LK - Fixed Allowance',NULL,'[\"2\"]','[]','[]','[]',6,'No','Yes','0.00',NULL,NULL),
|
||||||
|
(7,'LK - Gross Pay',NULL,'[]','[]','[\"5\",\"6\"]','[]',7,'No','Yes','0.00',NULL,NULL),
|
||||||
|
(8,'LK - EPF Employee Contribution',NULL,'[]','[\"1\"]','[]','[]',8,'No','Yes','0.00',NULL,NULL),
|
||||||
|
(9,'LK - EPF Employer Contribution',NULL,'[]','[\"2\"]','[]','[]',9,'No','Yes','0.00',NULL,NULL),
|
||||||
|
(10,'LK - ETF Employer Contribution',NULL,'[]','[\"3\"]','[]','[]',10,'No','Yes','0.00',NULL,NULL),
|
||||||
|
(11,'LK - Total EPF 20%',NULL,'[]','[]','[\"8\",\"9\"]','[]',11,'No','Yes','0.00',NULL,NULL),
|
||||||
|
(12,'LK - Total for PAYE',NULL,'[]','[]','[\"7\"]','[]',12,'No','Yes','0.00',NULL,NULL),
|
||||||
|
(13,'LK - PAYE Tax',NULL,'[]','[\"4\"]','[]','[]',13,'No','Yes','0.00',NULL,NULL),
|
||||||
|
(14,'LK - Stamp Duty',NULL,'[]','[\"5\"]','[]','[]',14,'No','Yes','0.00',NULL,NULL),
|
||||||
|
(15,'LK - Total Deductions',NULL,'[]','[]','[\"8\",\"13\",\"14\"]','[]',15,'No','Yes','0.00',NULL,NULL),
|
||||||
|
(16,'LK - Salary to Bank',NULL,'[]','[]','[\"7\"]','[\"15\"]',16,'No','Yes','0.00',NULL,NULL);
|
||||||
|
|
||||||
|
INSERT INTO `Deductions` VALUES
|
||||||
|
(1,'EPF Employee Contribution','[]','[]',7,'[{\"lowerCondition\":\"No Lower Limit\",\"lowerLimit\":\"0\",\"upperCondition\":\"No Upper Limit\",\"upperLimit\":\"0\",\"amount\":\"X*0.08\",\"id\":\"rangeAmounts_1\"}]',1),
|
||||||
|
(2,'EPF Employer Contribution','[]','[]',7,'[{\"lowerCondition\":\"No Lower Limit\",\"lowerLimit\":\"0\",\"upperCondition\":\"No Upper Limit\",\"upperLimit\":\"0\",\"amount\":\"X*0.12\",\"id\":\"rangeAmounts_1\"}]',1),
|
||||||
|
(3,'ETF Employer Contribution','[]','[]',7,'[{\"lowerCondition\":\"No Lower Limit\",\"lowerLimit\":\"0\",\"upperCondition\":\"No Upper Limit\",\"upperLimit\":\"0\",\"amount\":\"X*0.03\",\"id\":\"rangeAmounts_1\"}]',1),
|
||||||
|
(4,'PAYE Tax','[]','[]',12,'[{\"lowerCondition\":\"No Lower Limit\",\"lowerLimit\":\"0\",\"upperCondition\":\"lte\",\"upperLimit\":\"62500\",\"amount\":\"0\",\"id\":\"rangeAmounts_1\"},{\"lowerCondition\":\"gt\",\"lowerLimit\":\"62500\",\"upperCondition\":\"lte\",\"upperLimit\":\"104167\",\"amount\":\"X*0.04 - 2500\",\"id\":\"rangeAmounts_2\"},{\"lowerCondition\":\"gt\",\"lowerLimit\":\"104167\",\"upperCondition\":\"lte\",\"upperLimit\":\"145833\",\"amount\":\"X*0.08 - 6667\",\"id\":\"rangeAmounts_3\"},{\"lowerCondition\":\"gt\",\"lowerLimit\":\"145833\",\"upperCondition\":\"lte\",\"upperLimit\":\"187500\",\"amount\":\"X*0.12-12500\",\"id\":\"rangeAmounts_4\"},{\"lowerCondition\":\"gt\",\"lowerLimit\":\"187500\",\"upperCondition\":\"No Upper Limit\",\"upperLimit\":\"0\",\"amount\":\"X*0.16 - 20000\",\"id\":\"rangeAmounts_5\"}]',1),
|
||||||
|
(5,'Stamp Duty','[]','[]',12,'[{\"lowerCondition\":\"No Lower Limit\",\"lowerLimit\":\"0\",\"upperCondition\":\"lte\",\"upperLimit\":\"25000\",\"amount\":\"0\",\"id\":\"rangeAmounts_1\"},{\"lowerCondition\":\"gt\",\"lowerLimit\":\"25000\",\"upperCondition\":\"No Upper Limit\",\"upperLimit\":\"0\",\"amount\":\"25\",\"id\":\"rangeAmounts_2\"}]',1);
|
||||||
|
|
||||||
|
|
||||||
|
INSERT INTO `DeductionGroup` VALUES
|
||||||
|
(2,'Ghana Payroll Calculation','');
|
||||||
|
|
||||||
|
INSERT INTO `PayslipTemplates` VALUES
|
||||||
|
(2,'Ghana Default','[{\"type\":\"Company Name\",\"payrollColumn\":\"NULL\",\"label\":\"\",\"text\":\"\",\"status\":\"Show\",\"id\":\"data_1\"},{\"type\":\"Separators\",\"payrollColumn\":\"NULL\",\"label\":\"\",\"text\":\"\",\"status\":\"Show\",\"id\":\"data_3\"},{\"type\":\"Payroll Column\",\"payrollColumn\":\"105\",\"label\":\"\",\"text\":\"\",\"status\":\"Show\",\"id\":\"data_4\"},{\"type\":\"Payroll Column\",\"payrollColumn\":\"106\",\"label\":\"\",\"text\":\"\",\"status\":\"Show\",\"id\":\"data_5\"},{\"type\":\"Payroll Column\",\"payrollColumn\":\"107\",\"label\":\"\",\"text\":\"\",\"status\":\"Show\",\"id\":\"data_6\"},{\"type\":\"Payroll Column\",\"payrollColumn\":\"112\",\"label\":\"Total\",\"text\":\"\",\"status\":\"Show\",\"id\":\"data_7\"},{\"type\":\"Separators\",\"payrollColumn\":\"NULL\",\"label\":\"\",\"text\":\"\",\"status\":\"Show\",\"id\":\"data_8\"},{\"type\":\"Text\",\"payrollColumn\":\"NULL\",\"label\":\"\",\"text\":\"Deductions \",\"status\":\"Show\",\"id\":\"data_9\"},{\"type\":\"Payroll Column\",\"payrollColumn\":\"109\",\"label\":\"SSNIT (5.5%)\",\"text\":\"\",\"status\":\"Show\",\"id\":\"data_10\"},{\"type\":\"Payroll Column\",\"payrollColumn\":\"113\",\"label\":\"Tax (1st Level 5%)\",\"text\":\"\",\"status\":\"Show\",\"id\":\"data_11\"},{\"type\":\"Payroll Column\",\"payrollColumn\":\"114\",\"label\":\"Tax (2nd Level 10%)\",\"text\":\"\",\"status\":\"Show\",\"id\":\"data_12\"},{\"type\":\"Payroll Column\",\"payrollColumn\":\"115\",\"label\":\"Tax (3rd Level 17.5%)\",\"text\":\"\",\"status\":\"Show\",\"id\":\"data_13\"},{\"type\":\"Payroll Column\",\"payrollColumn\":\"120\",\"label\":\"Tax (4th Level 25%)\",\"text\":\"\",\"status\":\"Show\",\"id\":\"data_14\"},{\"type\":\"Payroll Column\",\"payrollColumn\":\"121\",\"label\":\"Overtime Allow. Tax (5%)\",\"text\":\"\",\"status\":\"Show\",\"id\":\"data_15\"},{\"type\":\"Payroll Column\",\"payrollColumn\":\"122\",\"label\":\"Total (PAYE Tax)\",\"text\":\"\",\"status\":\"Show\",\"id\":\"data_16\"},{\"type\":\"Separators\",\"payrollColumn\":\"NULL\",\"label\":\"\",\"text\":\"\",\"status\":\"Show\",\"id\":\"data_17\"},{\"type\":\"Payroll Column\",\"payrollColumn\":\"123\",\"label\":\"Sub Total\",\"text\":\"\",\"status\":\"Show\",\"id\":\"data_18\"},{\"type\":\"Separators\",\"payrollColumn\":\"NULL\",\"label\":\"\",\"text\":\"\",\"status\":\"Show\",\"id\":\"data_19\"},{\"type\":\"Payroll Column\",\"payrollColumn\":\"125\",\"label\":\"Netto Monthly Salary\",\"text\":\"\",\"status\":\"Show\",\"id\":\"data_20\"}]',NULL,'2016-08-30 21:53:13','2016-08-30 21:53:13');
|
||||||
|
|
||||||
|
|
||||||
|
INSERT INTO `Payroll` VALUES
|
||||||
|
(6,'Ghana Payroll Sample',4,1,NULL,'[\"123\",\"125\",\"106\",\"124\",\"113\",\"114\",\"115\",\"121\",\"107\",\"120\",\"109\",\"105\",\"112\",\"108\",\"122\"]','2016-08-01','2016-08-31','Draft',2);
|
||||||
|
|
||||||
|
|
||||||
|
INSERT INTO `PayrollColumns` VALUES
|
||||||
|
(105,'GH - Salary (Basic)',NULL,'[\"1\"]','[]','[]','[]',1,'No','Yes','0.00','',''),
|
||||||
|
(106,'GH - Housing Allowance',NULL,'[]','[\"101\"]','[]','[]',2,'No','Yes','0.00','',''),
|
||||||
|
(107,'GH - Overtime Allowance',NULL,'[]','[\"102\"]','[]','[]',3,'No','Yes','0.00','',''),
|
||||||
|
(108,'GH - Total',NULL,'[]','[]','[\"106\",\"107\",\"105\"]','[]',4,'No','Yes','0.00','',''),
|
||||||
|
(109,'GH - SSNIT',NULL,'[]','[\"103\"]','[]','[]',5,'No','Yes','0.00','',''),
|
||||||
|
(112,'GH - Taxable Income',NULL,'[]','[]','[\"106\",\"105\"]','[\"109\"]',7,'No','Yes','0.00','',''),
|
||||||
|
(113,'GH - Next 108 GHC',NULL,'[]','[\"106\"]','[]','[]',9,'No','Yes','0.00','',''),
|
||||||
|
(114,'GH - Next 151 GHC',NULL,'[]','[\"107\"]','[]','[]',10,'No','Yes','0.00','',''),
|
||||||
|
(115,'GH - Next 2765 GHC',NULL,'[]','[\"108\"]','[]','[]',11,'No','Yes','0.00','',''),
|
||||||
|
(120,'GH - Remaining after 3240 GHC',NULL,'[]','[\"111\"]','[]','[]',12,'No','Yes','0.00','',''),
|
||||||
|
(121,'GH - Overtime Allow. Tax',NULL,'[]','[]','[]','[]',13,'No','Yes','0.00','[{\"name\":\"O\",\"column\":\"107\",\"id\":\"calculation_columns_1\"}]','O*0.05'),
|
||||||
|
(122,'GH - Total (PAYE Tax)',NULL,'[]','[]','[\"113\",\"114\",\"115\",\"120\",\"121\"]','[]',14,'No','Yes','0.00','',''),
|
||||||
|
(123,'GH - Deductions - Sub Total',NULL,'[]','[]','[\"109\",\"122\"]','[]',15,'No','Yes','0.00','',''),
|
||||||
|
(125,'GH - Final Total',NULL,'[]','[]','[\"108\"]','[\"123\"]',16,'No','Yes','0.00','','');
|
||||||
|
|
||||||
|
|
||||||
|
INSERT INTO `Deductions` VALUES
|
||||||
|
(101,'Housing Allowance (10%)','[]','[\"1\"]',NULL,'[{\"lowerCondition\":\"No Lower Limit\",\"lowerLimit\":0,\"upperCondition\":\"No Upper Limit\",\"upperLimit\":0,\"amount\":\"X*0.1\",\"id\":\"rangeAmounts_1\"}]',2),
|
||||||
|
(102,'Overtime Allowance (10%)','[]','[\"1\"]',NULL,'[{\"lowerCondition\":\"No Lower Limit\",\"lowerLimit\":0,\"upperCondition\":\"No Upper Limit\",\"upperLimit\":0,\"amount\":\"X*0.1\",\"id\":\"rangeAmounts_1\"}]',2),
|
||||||
|
(103,'SSNIT','[]','[\"1\"]',NULL,'[{\"lowerCondition\":\"No Lower Limit\",\"lowerLimit\":0,\"upperCondition\":\"No Upper Limit\",\"upperLimit\":0,\"amount\":\"X*0.055\",\"id\":\"rangeAmounts_1\"}]',2),
|
||||||
|
(104,'Tax - Ghana','[]','[]',NULL,'',2),
|
||||||
|
(106,'Next 108 GHC','[]','[]',112,'[{\"lowerCondition\":\"gte\",\"lowerLimit\":\"216\",\"upperCondition\":\"lt\",\"upperLimit\":\"324\",\"amount\":\"X*0.05\",\"id\":\"rangeAmounts_1\"},{\"lowerCondition\":\"gte\",\"lowerLimit\":\"324\",\"upperCondition\":\"No Upper Limit\",\"upperLimit\":0,\"amount\":\"5.4\",\"id\":\"rangeAmounts_2\"}]',2),
|
||||||
|
(107,'Next 151 GHC','[]','[]',112,'[{\"lowerCondition\":\"gte\",\"lowerLimit\":\"324\",\"upperCondition\":\"lt\",\"upperLimit\":\"475\",\"amount\":\"(X-324) * 0.1\",\"id\":\"rangeAmounts_1\"},{\"lowerCondition\":\"gte\",\"lowerLimit\":\"259\",\"upperCondition\":\"No Upper Limit\",\"upperLimit\":0,\"amount\":\"15.10\",\"id\":\"rangeAmounts_2\"}]',2),
|
||||||
|
(108,'Next 2765 GHC','[]','[]',112,'[{\"lowerCondition\":\"gte\",\"lowerLimit\":\"475\",\"upperCondition\":\"lt\",\"upperLimit\":\"3240\",\"amount\":\"(X - 475) * 0.175\",\"id\":\"rangeAmounts_1\"},{\"lowerCondition\":\"gte\",\"lowerLimit\":\"3240\",\"upperCondition\":\"No Upper Limit\",\"upperLimit\":0,\"amount\":\"483.88\",\"id\":\"rangeAmounts_2\"}]',2),
|
||||||
|
(111,'Remaining after 3240 GHC','[]','[]',112,'[{\"lowerCondition\":\"gte\",\"lowerLimit\":\"3240\",\"upperCondition\":\"No Upper Limit\",\"upperLimit\":0,\"amount\":\"(X-3240)*0.25\",\"id\":\"rangeAmounts_1\"}]',2);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
ALTER table `Files` add column `size` bigint(20) NULL;
|
||||||
|
|
||||||
|
ALTER table `Files` add column `size_text` varchar(20) NULL;
|
||||||
|
|
||||||
|
ALTER table `CompanyDocuments` add column `share_departments` varchar(100) NULL;
|
||||||
|
ALTER table `CompanyDocuments` add column `share_employees` varchar(100) NULL;
|
||||||
|
ALTER table `CompanyDocuments` add column `share_userlevel` varchar(100) NULL;
|
||||||
|
ALTER table `CompanyDocuments` modify column `share_userlevel` varchar(100) NULL;
|
||||||
|
|
||||||
|
ALTER table `Notifications` add column `employee` bigint(20) NULL;
|
||||||
|
|
||||||
|
create table `Forms` (
|
||||||
|
`id` bigint(20) NOT NULL AUTO_INCREMENT,
|
||||||
|
`name` varchar(50) NOT NULL,
|
||||||
|
`description` varchar(500) NULL,
|
||||||
|
`items` text 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 `EmployeeForms` (
|
||||||
|
`id` bigint(20) NOT NULL AUTO_INCREMENT,
|
||||||
|
`employee` bigint(20) NOT NULL,
|
||||||
|
`form` bigint(20) NOT NULL,
|
||||||
|
`status` enum('Pending','Completed') default 'Pending',
|
||||||
|
`created` timestamp NULL default '0000-00-00 00:00:00',
|
||||||
|
`updated` timestamp NULL default '0000-00-00 00:00:00',
|
||||||
|
CONSTRAINT `Fk_EmployeeForms_Employee` FOREIGN KEY (`employee`) REFERENCES `Employees` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
|
||||||
|
CONSTRAINT `Fk_EmployeeForms_Forms` FOREIGN KEY (`form`) REFERENCES `Forms` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
|
||||||
|
primary key (`id`)
|
||||||
|
) engine=innodb default charset=utf8;
|
||||||
|
|
||||||
|
create table `Migrations` (
|
||||||
|
`id` bigint(20) NOT NULL AUTO_INCREMENT,
|
||||||
|
`file` varchar(50) NOT NULL,
|
||||||
|
`version` int(11) NOT NULL,
|
||||||
|
`created` DATETIME default '0000-00-00 00:00:00',
|
||||||
|
`updated` DATETIME default '0000-00-00 00:00:00',
|
||||||
|
`status` enum('Pending','Up','Down','UpError','DownError') default 'Pending',
|
||||||
|
`last_error` varchar(500) NULL,
|
||||||
|
primary key (`id`),
|
||||||
|
unique key `KEY_Migrations_file` (`file`),
|
||||||
|
index `KEY_Migrations_status` (`status`),
|
||||||
|
index `KEY_Migrations_version` (`version`)
|
||||||
|
) engine=innodb default charset=utf8;
|
||||||
|
|
||||||
18
deployment/clients/dev/config.php
Normal file
18
deployment/clients/dev/config.php
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
<?php
|
||||||
|
ini_set('error_log', 'data/icehrm.log');
|
||||||
|
|
||||||
|
define('CLIENT_NAME', 'icehrmpro');
|
||||||
|
define('APP_BASE_PATH', '/vagrant/build/app/');
|
||||||
|
define('CLIENT_BASE_PATH', '/vagrant/deployment/clients/dev/');
|
||||||
|
define('BASE_URL','http://app.app.dev/');
|
||||||
|
define('CLIENT_BASE_URL','http://clients.app.dev/dev/');
|
||||||
|
|
||||||
|
define('APP_DB', 'dev');
|
||||||
|
define('APP_USERNAME', 'dev');
|
||||||
|
define('APP_PASSWORD', 'dev');
|
||||||
|
define('APP_HOST', 'localhost');
|
||||||
|
define('APP_CON_STR', 'mysqli://'.APP_USERNAME.':'.APP_PASSWORD.'@'.APP_HOST.'/'.APP_DB);
|
||||||
|
|
||||||
|
//file upload
|
||||||
|
define('FILE_TYPES', 'jpg,png,jpeg');
|
||||||
|
define('MAX_FILE_SIZE_KB', 10 * 1024);
|
||||||
7
deployment/clients/dev/cron.php
Normal file
7
deployment/clients/dev/cron.php
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
<?php
|
||||||
|
if(php_sapi_name() != 'cli'){
|
||||||
|
exit();
|
||||||
|
}
|
||||||
|
|
||||||
|
include ('config.php');
|
||||||
|
include (APP_BASE_PATH.'crons/cron.php');
|
||||||
3
deployment/clients/dev/data.php
Normal file
3
deployment/clients/dev/data.php
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
<?php
|
||||||
|
include ('config.php');
|
||||||
|
include (APP_BASE_PATH.'data.php');
|
||||||
1
deployment/clients/dev/data/sample
Executable file
1
deployment/clients/dev/data/sample
Executable file
@@ -0,0 +1 @@
|
|||||||
|
Test File
|
||||||
18
deployment/clients/dev/entry.php
Normal file
18
deployment/clients/dev/entry.php
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
<?php
|
||||||
|
include ('config.php');
|
||||||
|
if(!isset($_REQUEST['g']) || !isset($_REQUEST['n'])){
|
||||||
|
header("Location:".CLIENT_BASE_URL."login.php");
|
||||||
|
exit();
|
||||||
|
}
|
||||||
|
$group = $_REQUEST['g'];
|
||||||
|
$name= $_REQUEST['n'];
|
||||||
|
|
||||||
|
$groups = array('admin','modules');
|
||||||
|
|
||||||
|
if($group == 'admin' || $group == 'modules'){
|
||||||
|
$name = str_replace("..","",$name);
|
||||||
|
$name = str_replace("/","",$name);
|
||||||
|
include APP_BASE_PATH.'/'.$group.'/'.$name.'/entry.php';
|
||||||
|
}else{
|
||||||
|
exit();
|
||||||
|
}
|
||||||
3
deployment/clients/dev/fileupload.php
Normal file
3
deployment/clients/dev/fileupload.php
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
<?php
|
||||||
|
include ('config.php');
|
||||||
|
include (APP_BASE_PATH.'fileupload.php');
|
||||||
3
deployment/clients/dev/fileupload_page.php
Normal file
3
deployment/clients/dev/fileupload_page.php
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
<?php
|
||||||
|
include ('config.php');
|
||||||
|
include (APP_BASE_PATH.'fileupload_page.php');
|
||||||
3
deployment/clients/dev/header.php
Normal file
3
deployment/clients/dev/header.php
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
include (APP_BASE_PATH.'header.php');
|
||||||
22
deployment/clients/dev/index.php
Normal file
22
deployment/clients/dev/index.php
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
<?php
|
||||||
|
if(!file_exists('config.php')){
|
||||||
|
header("Location:install/");
|
||||||
|
exit();
|
||||||
|
}
|
||||||
|
include ('config.php');
|
||||||
|
if(!isset($_REQUEST['g']) || !isset($_REQUEST['n'])){
|
||||||
|
header("Location:".CLIENT_BASE_URL."login.php");
|
||||||
|
exit();
|
||||||
|
}
|
||||||
|
$group = $_REQUEST['g'];
|
||||||
|
$name= $_REQUEST['n'];
|
||||||
|
|
||||||
|
$groups = array('admin','modules');
|
||||||
|
|
||||||
|
if($group == 'admin' || $group == 'modules'){
|
||||||
|
$name = str_replace("..","",$name);
|
||||||
|
$name = str_replace("/","",$name);
|
||||||
|
include APP_BASE_PATH.'/'.$group.'/'.$name.'/index.php';
|
||||||
|
}else{
|
||||||
|
exit();
|
||||||
|
}
|
||||||
3
deployment/clients/dev/login.php
Normal file
3
deployment/clients/dev/login.php
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
<?php
|
||||||
|
include ('config.php');
|
||||||
|
include (APP_BASE_PATH.'login.php');
|
||||||
3
deployment/clients/dev/logout.php
Normal file
3
deployment/clients/dev/logout.php
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
<?php
|
||||||
|
include ('config.php');
|
||||||
|
include (APP_BASE_PATH.'logout.php');
|
||||||
3
deployment/clients/dev/rest.php
Normal file
3
deployment/clients/dev/rest.php
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
<?php
|
||||||
|
include ('config.php');
|
||||||
|
include (APP_BASE_PATH.'rest.php');
|
||||||
3
deployment/clients/dev/service.php
Normal file
3
deployment/clients/dev/service.php
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
<?php
|
||||||
|
include ('config.php');
|
||||||
|
include (APP_BASE_PATH.'service.php');
|
||||||
18
deployment/clients/dev/update.php
Normal file
18
deployment/clients/dev/update.php
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
<?php
|
||||||
|
include ('config.php');
|
||||||
|
if(!isset($_REQUEST['g']) || !isset($_REQUEST['n'])){
|
||||||
|
header("Location:".CLIENT_BASE_URL."login.php");
|
||||||
|
exit();
|
||||||
|
}
|
||||||
|
$group = $_REQUEST['g'];
|
||||||
|
$name= $_REQUEST['n'];
|
||||||
|
|
||||||
|
$groups = array('admin','modules');
|
||||||
|
|
||||||
|
if($group == 'admin' || $group == 'modules'){
|
||||||
|
$name = str_replace("..","",$name);
|
||||||
|
$name = str_replace("/","",$name);
|
||||||
|
include APP_BASE_PATH.'/'.$group.'/'.$name.'/update.php';
|
||||||
|
}else{
|
||||||
|
exit();
|
||||||
|
}
|
||||||
18
deployment/clients/test/config.php
Normal file
18
deployment/clients/test/config.php
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
<?php
|
||||||
|
ini_set('error_log', 'data/icehrm.log');
|
||||||
|
|
||||||
|
define('CLIENT_NAME', 'icehrmpro');
|
||||||
|
define('APP_BASE_PATH', '/vagrant/build/app/');
|
||||||
|
define('CLIENT_BASE_PATH', '/vagrant/deployment/clients/test/');
|
||||||
|
define('BASE_URL','http://app.app.dev/');
|
||||||
|
define('CLIENT_BASE_URL','http://clients.app.dev/test/');
|
||||||
|
|
||||||
|
define('APP_DB', 'testing');
|
||||||
|
define('APP_USERNAME', 'testing');
|
||||||
|
define('APP_PASSWORD', 'testing');
|
||||||
|
define('APP_HOST', 'localhost');
|
||||||
|
define('APP_CON_STR', 'mysqli://'.APP_USERNAME.':'.APP_PASSWORD.'@'.APP_HOST.'/'.APP_DB);
|
||||||
|
|
||||||
|
//file upload
|
||||||
|
define('FILE_TYPES', 'jpg,png,jpeg');
|
||||||
|
define('MAX_FILE_SIZE_KB', 10 * 1024);
|
||||||
7
deployment/clients/test/cron.php
Normal file
7
deployment/clients/test/cron.php
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
<?php
|
||||||
|
if(php_sapi_name() != 'cli'){
|
||||||
|
exit();
|
||||||
|
}
|
||||||
|
|
||||||
|
include ('config.php');
|
||||||
|
include (APP_BASE_PATH.'crons/cron.php');
|
||||||
3
deployment/clients/test/data.php
Normal file
3
deployment/clients/test/data.php
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
<?php
|
||||||
|
include ('config.php');
|
||||||
|
include (APP_BASE_PATH.'data.php');
|
||||||
1
deployment/clients/test/data/sample
Executable file
1
deployment/clients/test/data/sample
Executable file
@@ -0,0 +1 @@
|
|||||||
|
Test File
|
||||||
18
deployment/clients/test/entry.php
Normal file
18
deployment/clients/test/entry.php
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
<?php
|
||||||
|
include ('config.php');
|
||||||
|
if(!isset($_REQUEST['g']) || !isset($_REQUEST['n'])){
|
||||||
|
header("Location:".CLIENT_BASE_URL."login.php");
|
||||||
|
exit();
|
||||||
|
}
|
||||||
|
$group = $_REQUEST['g'];
|
||||||
|
$name= $_REQUEST['n'];
|
||||||
|
|
||||||
|
$groups = array('admin','modules');
|
||||||
|
|
||||||
|
if($group == 'admin' || $group == 'modules'){
|
||||||
|
$name = str_replace("..","",$name);
|
||||||
|
$name = str_replace("/","",$name);
|
||||||
|
include APP_BASE_PATH.'/'.$group.'/'.$name.'/entry.php';
|
||||||
|
}else{
|
||||||
|
exit();
|
||||||
|
}
|
||||||
3
deployment/clients/test/fileupload.php
Normal file
3
deployment/clients/test/fileupload.php
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
<?php
|
||||||
|
include ('config.php');
|
||||||
|
include (APP_BASE_PATH.'fileupload.php');
|
||||||
3
deployment/clients/test/fileupload_page.php
Normal file
3
deployment/clients/test/fileupload_page.php
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
<?php
|
||||||
|
include ('config.php');
|
||||||
|
include (APP_BASE_PATH.'fileupload_page.php');
|
||||||
3
deployment/clients/test/header.php
Normal file
3
deployment/clients/test/header.php
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
include (APP_BASE_PATH.'header.php');
|
||||||
22
deployment/clients/test/index.php
Normal file
22
deployment/clients/test/index.php
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
<?php
|
||||||
|
if(!file_exists('config.php')){
|
||||||
|
header("Location:install/");
|
||||||
|
exit();
|
||||||
|
}
|
||||||
|
include ('config.php');
|
||||||
|
if(!isset($_REQUEST['g']) || !isset($_REQUEST['n'])){
|
||||||
|
header("Location:".CLIENT_BASE_URL."login.php");
|
||||||
|
exit();
|
||||||
|
}
|
||||||
|
$group = $_REQUEST['g'];
|
||||||
|
$name= $_REQUEST['n'];
|
||||||
|
|
||||||
|
$groups = array('admin','modules');
|
||||||
|
|
||||||
|
if($group == 'admin' || $group == 'modules'){
|
||||||
|
$name = str_replace("..","",$name);
|
||||||
|
$name = str_replace("/","",$name);
|
||||||
|
include APP_BASE_PATH.'/'.$group.'/'.$name.'/index.php';
|
||||||
|
}else{
|
||||||
|
exit();
|
||||||
|
}
|
||||||
3
deployment/clients/test/login.php
Normal file
3
deployment/clients/test/login.php
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
<?php
|
||||||
|
include ('config.php');
|
||||||
|
include (APP_BASE_PATH.'login.php');
|
||||||
3
deployment/clients/test/logout.php
Normal file
3
deployment/clients/test/logout.php
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
<?php
|
||||||
|
include ('config.php');
|
||||||
|
include (APP_BASE_PATH.'logout.php');
|
||||||
3
deployment/clients/test/rest.php
Normal file
3
deployment/clients/test/rest.php
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
<?php
|
||||||
|
include ('config.php');
|
||||||
|
include (APP_BASE_PATH.'rest.php');
|
||||||
3
deployment/clients/test/service.php
Normal file
3
deployment/clients/test/service.php
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
<?php
|
||||||
|
include ('config.php');
|
||||||
|
include (APP_BASE_PATH.'service.php');
|
||||||
18
deployment/clients/test/update.php
Normal file
18
deployment/clients/test/update.php
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
<?php
|
||||||
|
include ('config.php');
|
||||||
|
if(!isset($_REQUEST['g']) || !isset($_REQUEST['n'])){
|
||||||
|
header("Location:".CLIENT_BASE_URL."login.php");
|
||||||
|
exit();
|
||||||
|
}
|
||||||
|
$group = $_REQUEST['g'];
|
||||||
|
$name= $_REQUEST['n'];
|
||||||
|
|
||||||
|
$groups = array('admin','modules');
|
||||||
|
|
||||||
|
if($group == 'admin' || $group == 'modules'){
|
||||||
|
$name = str_replace("..","",$name);
|
||||||
|
$name = str_replace("/","",$name);
|
||||||
|
include APP_BASE_PATH.'/'.$group.'/'.$name.'/update.php';
|
||||||
|
}else{
|
||||||
|
exit();
|
||||||
|
}
|
||||||
@@ -102,4 +102,4 @@ class AttendanceActionManager extends SubActionManager{
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -15,4 +15,4 @@
|
|||||||
<t>Monitor Attendance</t> <i class="fa fa-arrow-circle-right"></i>
|
<t>Monitor Attendance</t> <i class="fa fa-arrow-circle-right"></i>
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -62,4 +62,4 @@ modJsList['tabAttendanceStatus'].setShowAddNew(false);
|
|||||||
var modJs = modJsList['tabAttendance'];
|
var modJs = modJsList['tabAttendance'];
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
<?php include APP_BASE_PATH.'footer.php';?>
|
<?php include APP_BASE_PATH.'footer.php';?>
|
||||||
@@ -14,4 +14,4 @@
|
|||||||
<t>Manage</t> <t>Company</t> <i class="fa fa-arrow-circle-right"></i>
|
<t>Manage</t> <t>Company</t> <i class="fa fa-arrow-circle-right"></i>
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -93,4 +93,4 @@ modJsList['tabCompanyGraph'] = new CompanyGraphAdapter('CompanyStructure');
|
|||||||
var modJs = modJsList['tabCompanyStructure'];
|
var modJs = modJsList['tabCompanyStructure'];
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
<?php include APP_BASE_PATH.'footer.php';?>
|
<?php include APP_BASE_PATH.'footer.php';?>
|
||||||
@@ -17,7 +17,7 @@ along with iCE Hrm. If not, see <http://www.gnu.org/licenses/>.
|
|||||||
|
|
||||||
------------------------------------------------------------------
|
------------------------------------------------------------------
|
||||||
|
|
||||||
Original work Copyright (c) 2012 [Gamonoid Media Pvt. Ltd]
|
Original work Copyright (c) 2012 [Gamonoid Media Pvt. Ltd]
|
||||||
Developer: Thilina Hasantha (thilina.hasantha[at]gmail.com / facebook.com/thilinah)
|
Developer: Thilina Hasantha (thilina.hasantha[at]gmail.com / facebook.com/thilinah)
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@@ -25,74 +25,68 @@ $moduleName = 'dashboard';
|
|||||||
define('MODULE_PATH',dirname(__FILE__));
|
define('MODULE_PATH',dirname(__FILE__));
|
||||||
include APP_BASE_PATH.'header.php';
|
include APP_BASE_PATH.'header.php';
|
||||||
include APP_BASE_PATH.'modulejslibs.inc.php';
|
include APP_BASE_PATH.'modulejslibs.inc.php';
|
||||||
|
|
||||||
?><div class="span9">
|
?><div class="span9">
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<?php
|
<?php
|
||||||
$moduleManagers = BaseService::getInstance()->getModuleManagers();
|
$moduleManagers = BaseService::getInstance()->getModuleManagers();
|
||||||
$dashBoardList = array();
|
$dashBoardList = array();
|
||||||
foreach($moduleManagers as $moduleManagerObj){
|
foreach($moduleManagers as $moduleManagerObj){
|
||||||
|
|
||||||
//Check if this is not an admin module
|
//Check if this is not an admin module
|
||||||
if($moduleManagerObj->getModuleType() != 'admin'){
|
if($moduleManagerObj->getModuleType() != 'admin'){
|
||||||
continue;
|
continue;
|
||||||
}
|
|
||||||
|
|
||||||
$allowed = BaseService::getInstance()->isModuleAllowedForUser($moduleManagerObj);
|
|
||||||
|
|
||||||
if(!$allowed){
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
$item = $moduleManagerObj->getDashboardItem();
|
|
||||||
if(!empty($item)) {
|
|
||||||
$index = $moduleManagerObj->getDashboardItemIndex();
|
|
||||||
$dashBoardList[$index] = $item;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
ksort($dashBoardList);
|
$allowed = BaseService::getInstance()->isModuleAllowedForUser($moduleManagerObj);
|
||||||
|
|
||||||
foreach($dashBoardList as $k=>$v){
|
if(!$allowed){
|
||||||
echo $v;
|
continue;
|
||||||
}
|
}
|
||||||
?>
|
|
||||||
</div>
|
|
||||||
<div id="iceannon">
|
|
||||||
<div class="callout callout-danger lead" style="font-size: 14px;font-weight: bold;">
|
|
||||||
<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 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/docs/icehrm-pro/" class="btn btn-primary btn-xs" target="_blank">here</a>
|
$item = $moduleManagerObj->getDashboardItem();
|
||||||
<br/>
|
if(!empty($item)) {
|
||||||
<br/>
|
$index = $moduleManagerObj->getDashboardItemIndex();
|
||||||
<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>
|
$dashBoardList[$index] = $item;
|
||||||
</p>
|
}
|
||||||
</div>
|
}
|
||||||
</div>
|
|
||||||
|
ksort($dashBoardList);
|
||||||
|
|
||||||
|
foreach($dashBoardList as $k=>$v){
|
||||||
|
echo LanguageManager::translateTnrText($v);
|
||||||
|
}
|
||||||
|
?>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<script>
|
<script>
|
||||||
var modJsList = new Array();
|
var modJsList = new Array();
|
||||||
|
|
||||||
modJsList['tabDashboard'] = new DashboardAdapter('Dashboard','Dashboard');
|
modJsList['tabDashboard'] = new DashboardAdapter('Dashboard','Dashboard');
|
||||||
|
|
||||||
var modJs = modJsList['tabDashboard'];
|
var modJs = modJsList['tabDashboard'];
|
||||||
|
|
||||||
$(document).ready(function() {
|
/*
|
||||||
try {
|
$("#employeeLink").attr("href",modJs.getCustomUrl('?g=admin&n=employees&m=admin_Admin'));
|
||||||
$.ajax({
|
$("#companyLink").attr("href",modJs.getCustomUrl('?g=admin&n=company_structure&m=admin_Admin'));
|
||||||
url: "https://icehrm-public.s3.amazonaws.com/icehrmnews.html",
|
$("#usersLink").attr("href",modJs.getCustomUrl('?g=admin&n=users&m=admin_System'));
|
||||||
success: function (result) {
|
$("#projectsLink").attr("href",modJs.getCustomUrl('?g=admin&n=projects&m=admin_Admin'));
|
||||||
$('#iceannon').html(result);
|
$("#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'));
|
||||||
} catch (e) {
|
$("#settingsLink").attr("href",modJs.getCustomUrl('?g=admin&n=settings&m=admin_System'));
|
||||||
}
|
$("#jobsLink").attr("href",modJs.getCustomUrl('?g=admin&n=jobpositions&m=admin_Recruitment'));
|
||||||
|
$("#candidatesLink").attr("href",modJs.getCustomUrl('?g=admin&n=candidates&m=admin_Recruitment'));
|
||||||
|
$("#trainingLink").attr("href",modJs.getCustomUrl('?g=admin&n=training&m=admin_Admin'));
|
||||||
|
$("#travelLink").attr("href",modJs.getCustomUrl('?g=admin&n=travel&m=admin_Employees'));
|
||||||
|
$("#documentLink").attr("href",modJs.getCustomUrl('?g=admin&n=documents&m=admin_Employees'));
|
||||||
|
$("#expenseLink").attr("href",modJs.getCustomUrl('?g=admin&n=expenses&m=admin_Employees'));
|
||||||
|
$("#permissionLink").attr("href",modJs.getCustomUrl('?g=admin&n=permissions&m=admin_System'));
|
||||||
|
$("#upgradeLink").attr("href",modJs.getCustomUrl('?g=admin&n=billing&m=admin_System'));
|
||||||
|
|
||||||
|
modJs.getInitData();
|
||||||
|
*/
|
||||||
|
|
||||||
});
|
|
||||||
</script>
|
</script>
|
||||||
<?php include APP_BASE_PATH.'footer.php';?>
|
<?php include APP_BASE_PATH.'footer.php';?>
|
||||||
@@ -102,12 +102,13 @@ class EmployeesActionManager extends SubActionManager{
|
|||||||
|
|
||||||
$ok = $archived->Save();
|
$ok = $archived->Save();
|
||||||
if(!$ok){
|
if(!$ok){
|
||||||
return new IceResponse(IceResponse::ERROR, "Error occured while archiving employee");
|
return new IceResponse(IceResponse::ERROR, "Error occurred while archiving employee");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
$ok = $employee->Delete();
|
$ok = $employee->Delete();
|
||||||
if(!$ok){
|
if(!$ok){
|
||||||
return new IceResponse(IceResponse::ERROR, "Error occured while deleting employee");
|
return new IceResponse(IceResponse::ERROR, "Error occurred while deleting employee");
|
||||||
}
|
}
|
||||||
|
|
||||||
return new IceResponse(IceResponse::SUCCESS, $archived);
|
return new IceResponse(IceResponse::SUCCESS, $archived);
|
||||||
|
|||||||
@@ -16,10 +16,6 @@ if (!class_exists('EmployeesAdminManager')) {
|
|||||||
$empRestEndPoint->process('get',$pathParams);
|
$empRestEndPoint->process('get',$pathParams);
|
||||||
});
|
});
|
||||||
|
|
||||||
\NoahBuscher\Macaw\Macaw::get(REST_API_PATH.'employees', function() {
|
|
||||||
$empRestEndPoint = new EmployeesRestEndPoint();
|
|
||||||
$empRestEndPoint->process('get',NULL);
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public function initializeDatabaseErrorMappings(){
|
public function initializeDatabaseErrorMappings(){
|
||||||
@@ -231,11 +227,11 @@ if (!class_exists('Employee')) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static function cleanEmployeeData($obj){
|
public static function cleanEmployeeData($obj){
|
||||||
|
unset($obj->keysToIgnore);
|
||||||
unset($obj->historyFieldsToTrack);
|
unset($obj->historyFieldsToTrack);
|
||||||
unset($obj->historyUpdateList);
|
unset($obj->historyUpdateList);
|
||||||
unset($obj->oldObjOrig);
|
unset($obj->oldObjOrig);
|
||||||
unset($obj->oldObj);
|
unset($obj->oldObj);
|
||||||
unset($obj->oldObj);
|
|
||||||
return $obj;
|
return $obj;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -312,48 +308,39 @@ if (!class_exists('EmployeeApproval')) {
|
|||||||
if (!class_exists('EmployeeRestEndPoint')) {
|
if (!class_exists('EmployeeRestEndPoint')) {
|
||||||
class EmployeeRestEndPoint extends RestEndPoint{
|
class EmployeeRestEndPoint extends RestEndPoint{
|
||||||
public function get($parameter){
|
public function get($parameter){
|
||||||
|
|
||||||
if(empty($parameter)){
|
if(empty($parameter)){
|
||||||
return new IceResponse(IceResponse::ERROR, "Employee ID not provided");
|
return new IceResponse(IceResponse::ERROR, "Employee ID not provided");
|
||||||
}
|
}
|
||||||
|
|
||||||
$accessTokenValidation = $this->validateAccessToken();
|
if($parameter === 'list'){
|
||||||
if($accessTokenValidation->getStatus() == IceResponse::ERROR){
|
$emp = new Employee();
|
||||||
return $accessTokenValidation;
|
$emps = $emp->Find("1=1");
|
||||||
|
$newEmps = array();
|
||||||
|
foreach($emps as $emp){
|
||||||
|
$employee = new stdClass();
|
||||||
|
$employee->id = $emp->id;
|
||||||
|
$employee->employee_id = $emp->employee_id;
|
||||||
|
$employee->first_name = $emp->first_name;
|
||||||
|
$employee->middle_name = $emp->middle_name;
|
||||||
|
$employee->last_name = $emp->last_name;
|
||||||
|
$newEmps[] = $employee;
|
||||||
|
|
||||||
|
}
|
||||||
|
return new IceResponse(IceResponse::SUCCESS, $newEmps);
|
||||||
|
}else{
|
||||||
|
$mapping = '{"nationality":["Nationality","id","name"],"ethnicity":["Ethnicity","id","name"],"immigration_status":["ImmigrationStatus","id","name"],"employment_status":["EmploymentStatus","id","name"],"job_title":["JobTitle","id","name"],"pay_grade":["PayGrade","id","name"],"country":["Country","code","name"],"province":["Province","id","name"],"department":["CompanyStructure","id","title"],"supervisor":["Employee","id","first_name+last_name"]}';
|
||||||
|
$emp = BaseService::getInstance()->getElement('Employee',$parameter,$mapping,true);
|
||||||
|
if(!empty($emp)){
|
||||||
|
$emp = Employee::cleanEmployeeData($emp);
|
||||||
|
return new IceResponse(IceResponse::SUCCESS,$emp);
|
||||||
|
}
|
||||||
|
return new IceResponse(IceResponse::ERROR, "Employee not found" ,404);
|
||||||
}
|
}
|
||||||
|
|
||||||
$mapping = '{"nationality":["Nationality","id","name"],"ethnicity":["Ethnicity","id","name"],"immigration_status":["ImmigrationStatus","id","name"],"employment_status":["EmploymentStatus","id","name"],"job_title":["JobTitle","id","name"],"pay_grade":["PayGrade","id","name"],"country":["Country","code","name"],"province":["Province","id","name"],"department":["CompanyStructure","id","title"],"supervisor":["Employee","id","first_name+last_name"]}';
|
|
||||||
$employeeResp = BaseService::getInstance()->getElement('Employee',$parameter,$mapping,true);
|
|
||||||
if($employeeResp->getStatus() == IceResponse::SUCCESS){
|
|
||||||
$emp = $employeeResp->getObject();
|
|
||||||
$emp = Employee::cleanEmployeeData($emp);
|
|
||||||
return new IceResponse(IceResponse::SUCCESS,$emp);
|
|
||||||
}
|
|
||||||
return $employeeResp;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!class_exists('EmployeesRestEndPoint')) {
|
|
||||||
class EmployeesRestEndPoint extends RestEndPoint{
|
|
||||||
public function get($parameter){
|
|
||||||
|
|
||||||
$accessTokenValidation = $this->validateAccessToken();
|
|
||||||
if($accessTokenValidation->getStatus() == IceResponse::ERROR){
|
|
||||||
return $accessTokenValidation;
|
|
||||||
}
|
|
||||||
|
|
||||||
$emp = new Employee();
|
|
||||||
$emps = $emp->Find("1=1");
|
|
||||||
$newEmps = array();
|
|
||||||
foreach($emps as $emp){
|
|
||||||
$newEmps[] = Employee::cleanEmployeeData($emp);
|
|
||||||
}
|
|
||||||
return new IceResponse(IceResponse::SUCCESS, $newEmps);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|||||||
@@ -4,30 +4,30 @@
|
|||||||
<div class="col-xs-12" style="text-align: center;">
|
<div class="col-xs-12" style="text-align: center;">
|
||||||
<img id="profile_image__id_" src="" class="img-polaroid img-thumbnail" style="max-width: 140px;max-height: 140px;">
|
<img id="profile_image__id_" src="" class="img-polaroid img-thumbnail" style="max-width: 140px;max-height: 140px;">
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-xs-12 col-md-10">
|
<div class="col-xs-12 col-md-10">
|
||||||
<div class="row-fluid">
|
<div class="row-fluid">
|
||||||
<div class="col-md-12"><h2 id="name"></h2></div>
|
<div class="col-md-12"><h2 id="name"></h2></div>
|
||||||
</div>
|
</div>
|
||||||
<div class="row-fluid">
|
<div class="row-fluid">
|
||||||
<div class="col-md-12">
|
<div class="col-md-12">
|
||||||
<p>
|
<p>
|
||||||
<i class="fa fa-phone"></i> <span id="mobile_phone"></span>
|
<i class="fa fa-phone"></i> <span id="mobile_phone"></span>
|
||||||
<i class="fa fa-envelope"></i> <span id="work_email"></span>
|
<i class="fa fa-envelope"></i> <span id="work_email"></span>
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="row-fluid">
|
<div class="row-fluid">
|
||||||
<div class="col-xs-12" style="font-size:18px;border-bottom: 1px solid #DDD;margin-bottom: 10px;padding-bottom: 10px;">
|
<div class="col-xs-12" style="font-size:18px;border-bottom: 1px solid #DDD;margin-bottom: 10px;padding-bottom: 10px;">
|
||||||
<button id="employeeProfileEditInfo" class="btn btn-small btn-success" onclick="modJs.edit(_id_);" style="margin-right:10px;"><i class="fa fa-edit"></i> Edit Info</button>
|
<button id="employeeProfileEditInfo" class="btn btn-small btn-success" onclick="modJs.edit(_id_);" style="margin-right:10px;"><i class="fa fa-edit"></i> Edit Info</button>
|
||||||
<button id="employeeUploadProfileImage" onclick="showUploadDialog('profile_image__id_','Upload Profile Image','profile_image',_id_,'profile_image__id_','src','url','image');return false;" class="btn btn-small btn-primary" type="button" style="margin-right:10px;"><i class="fa fa-upload"></i> Upload Profile Image</button>
|
<button id="employeeUploadProfileImage" onclick="showUploadDialog('profile_image__id_','Upload Profile Image','profile_image',_id_,'profile_image__id_','src','url','image');return false;" class="btn btn-small btn-primary" type="button" style="margin-right:10px;"><i class="fa fa-upload"></i> Upload Profile Image</button>
|
||||||
<button id="employeeDeleteProfileImage" onclick="modJs.deleteProfileImage(_id_);return false;" class="btn btn-small btn-warning" type="button" style="margin-right:10px;"><i class="fa fa-times"></i> Delete Profile Image</button>
|
<button id="employeeDeleteProfileImage" onclick="modJs.deleteProfileImage(_id_);return false;" class="btn btn-small btn-warning" type="button" style="margin-right:10px;"><i class="fa fa-times"></i> Delete Profile Image</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="row-fluid" style="border-top: 1px;">
|
<div class="row-fluid" style="border-top: 1px;">
|
||||||
<div class="col-xs-6 col-md-4" style="font-size:16px;">
|
<div class="col-xs-6 col-md-4" style="font-size:16px;">
|
||||||
<label class="control-label col-xs-12" style="font-size:13px;font-size:13px;">#_label_employee_id_#</label>
|
<label class="control-label col-xs-12" style="font-size:13px;font-size:13px;">#_label_employee_id_#</label>
|
||||||
<label class="control-label col-xs-12 iceLabel" style="font-size:13px;font-weight: bold;" id="employee_id"></label>
|
<label class="control-label col-xs-12 iceLabel" style="font-size:13px;font-weight: bold;" id="employee_id"></label>
|
||||||
@@ -40,19 +40,20 @@
|
|||||||
<label class="control-label col-xs-12" style="font-size:13px;">#_label_ssn_num_#</label>
|
<label class="control-label col-xs-12" style="font-size:13px;">#_label_ssn_num_#</label>
|
||||||
<label class="control-label col-xs-12 iceLabel" style="font-size:13px;font-weight: bold;" id="ssn_num"></label>
|
<label class="control-label col-xs-12 iceLabel" style="font-size:13px;font-weight: bold;" id="ssn_num"></label>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
<ul class="nav nav-tabs" id="subModTab" style="margin-bottom:0px;margin-left:5px;border-bottom: none;">
|
<ul class="nav nav-tabs" id="subModTab" style="margin-bottom:0px;margin-left:5px;border-bottom: none;">
|
||||||
<li class="active"><a id="tabBasic" href="#tabPageBasic">Basic Information</a></li>
|
<li class="active"><a id="tabBasic" href="#tabPageBasic">Basic Information</a></li>
|
||||||
<li class=""><a id="tabQualifications" href="#tabPageQualifications">Qualifications</a></li>
|
<li class=""><a id="tabQualifications" href="#tabPageQualifications">Qualifications</a></li>
|
||||||
|
<li class=""><a id="tabFamily" href="#tabPageFamily">Family</a></li>
|
||||||
<li class=""><a id="tabDocuments" href="#tabPageDocuments">Documents</a></li>
|
<li class=""><a id="tabDocuments" href="#tabPageDocuments">Documents</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<div class="tab-content">
|
<div class="tab-content">
|
||||||
<div class="tab-pane active" id="tabPageBasic" style="border:1px solid #DDD;">
|
<div class="tab-pane sub-tab active" id="tabPageBasic">
|
||||||
<div class="row" style="margin-left:10px;margin-top:20px;">
|
<div class="row" style="margin-left:10px;margin-top:20px;">
|
||||||
<div class="panel panel-default" style="width:97.5%;">
|
<div class="panel panel-default" style="width:97.5%;">
|
||||||
<div class="panel-heading"><h4>Personal Information</h4></div>
|
<div class="panel-heading"><h4>Personal Information</h4></div>
|
||||||
@@ -202,31 +203,45 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div><!-- End tabPageBasic -->
|
</div><!-- End tabPageBasic -->
|
||||||
<div class="tab-pane" id="tabPageQualifications" style="border:1px solid #DDD;">
|
<div class="tab-pane sub-tab" id="tabPageQualifications">
|
||||||
<div class="row" style="margin-top:20px;">
|
<div class="row" style="margin-top:20px;">
|
||||||
<div class="col-md-3">
|
<div class="col-md-3 sub-column">
|
||||||
<div id="EmployeeSkillSubTab" class="" data-content="List" style="padding-left:5px;">
|
<div id="EmployeeSkillSubTab" class="" data-content="List" style="padding-left:5px;">
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-md-3">
|
<div class="col-md-3 sub-column">
|
||||||
<div id="EmployeeEducationSubTab" class="" data-content="List" style="padding-left:5px;">
|
<div id="EmployeeEducationSubTab" class="" data-content="List" style="padding-left:5px;">
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-md-3">
|
<div class="col-md-3 sub-column">
|
||||||
<div id="EmployeeCertificationSubTab" class="" data-content="List" style="padding-left:5px;">
|
<div id="EmployeeCertificationSubTab" class="" data-content="List" style="padding-left:5px;">
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-md-3">
|
<div class="col-md-3 sub-column">
|
||||||
<div id="EmployeeLanguageSubTab" class="" data-content="List" style="padding-left:5px;">
|
<div id="EmployeeLanguageSubTab" class="" data-content="List" style="padding-left:5px;">
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div><!-- End tabPageQualifications -->
|
</div><!-- End tabPageQualifications -->
|
||||||
</div>
|
</div>
|
||||||
<div class="tab-pane" id="tabPageDocuments" style="border:1px solid #DDD;">
|
<div class="tab-pane sub-tab" id="tabPageFamily">
|
||||||
|
<div class="row" style="margin-top:20px;">
|
||||||
|
<div class="col-md-6 sub-column">
|
||||||
|
<div id="EmployeeEmergencyContactSubTab" class="" data-content="List" style="padding-left:5px;">
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="col-md-6 sub-column">
|
||||||
|
<div id="EmployeeDependentSubTab" class="" data-content="List" style="padding-left:5px;">
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="tab-pane sub-tab" id="tabPageDocuments">
|
||||||
<div class="row" style="margin-top:20px;">
|
<div class="row" style="margin-top:20px;">
|
||||||
<div class="col-md-12">
|
<div class="col-md-12">
|
||||||
<div id="EmployeeDocumentSubTab" class="" data-content="List" style="padding-left:5px;">
|
<div id="EmployeeDocumentSubTab" class="" data-content="List" style="padding-left:5px;">
|
||||||
@@ -235,4 +250,4 @@
|
|||||||
</div>
|
</div>
|
||||||
</div><!-- End tabPageQualifications -->
|
</div><!-- End tabPageQualifications -->
|
||||||
</div>
|
</div>
|
||||||
</div><!-- End tab-content -->
|
</div><!-- End tab-content -->
|
||||||
@@ -16,4 +16,4 @@
|
|||||||
<t>Manage</t> <t>Employees</t> <i class="fa fa-arrow-circle-right"></i>
|
<t>Manage</t> <t>Employees</t> <i class="fa fa-arrow-circle-right"></i>
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -197,6 +197,9 @@ EmployeeAdapter.method('getFormFields', function() {
|
|||||||
[ "department", {"label":"Department","type":"select2","remote-source":["CompanyStructure","id","title"]}],
|
[ "department", {"label":"Department","type":"select2","remote-source":["CompanyStructure","id","title"]}],
|
||||||
[ "supervisor", {"label":"Direct Supervisor","type":"select2","allow-null":true,"remote-source":["Employee","id","first_name+last_name"]}],
|
[ "supervisor", {"label":"Direct Supervisor","type":"select2","allow-null":true,"remote-source":["Employee","id","first_name+last_name"]}],
|
||||||
[ "indirect_supervisors", {"label":"Indirect Supervisors","type":"select2multi","allow-null":true,"remote-source":["Employee","id","first_name+last_name"]}],
|
[ "indirect_supervisors", {"label":"Indirect Supervisors","type":"select2multi","allow-null":true,"remote-source":["Employee","id","first_name+last_name"]}],
|
||||||
|
[ "approver1", {"label":"First Level Approver","type":"select2","allow-null":true,"remote-source":["Employee","id","first_name+last_name"]}],
|
||||||
|
[ "approver2", {"label":"Second Level Approver","type":"select2","allow-null":true,"remote-source":["Employee","id","first_name+last_name"]}],
|
||||||
|
[ "approver3", {"label":"Third Level Approver","type":"select2","allow-null":true,"remote-source":["Employee","id","first_name+last_name"]}],
|
||||||
[ "notes", {"label":"Notes","type":"datagroup",
|
[ "notes", {"label":"Notes","type":"datagroup",
|
||||||
"form":[
|
"form":[
|
||||||
[ "note", {"label":"Note","type":"textarea","validation":""}]
|
[ "note", {"label":"Note","type":"textarea","validation":""}]
|
||||||
@@ -413,7 +416,7 @@ EmployeeAdapter.method('renderEmployee', function(data) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
html = html.replace(/#_.+_#/i,"");
|
html = html.replace(/#_.+_#/gi,"");
|
||||||
html = html.replace(/_id_/g,data.id);
|
html = html.replace(/_id_/g,data.id);
|
||||||
|
|
||||||
$("#"+this.getTableName()).html(html);
|
$("#"+this.getTableName()).html(html);
|
||||||
@@ -506,6 +509,12 @@ EmployeeAdapter.method('renderEmployee', function(data) {
|
|||||||
modJs.subModJsList['tabEmployeeLanguageSubTab'] = new EmployeeSubLanguageAdapter('EmployeeLanguage','EmployeeLanguageSubTab',{"employee":data.id});
|
modJs.subModJsList['tabEmployeeLanguageSubTab'] = new EmployeeSubLanguageAdapter('EmployeeLanguage','EmployeeLanguageSubTab',{"employee":data.id});
|
||||||
modJs.subModJsList['tabEmployeeLanguageSubTab'].parent = this;
|
modJs.subModJsList['tabEmployeeLanguageSubTab'].parent = this;
|
||||||
|
|
||||||
|
modJs.subModJsList['tabEmployeeDependentSubTab'] = new EmployeeSubDependentAdapter('EmployeeDependent','EmployeeDependentSubTab',{"employee":data.id});
|
||||||
|
modJs.subModJsList['tabEmployeeDependentSubTab'].parent = this;
|
||||||
|
|
||||||
|
modJs.subModJsList['tabEmployeeEmergencyContactSubTab'] = new EmployeeSubEmergencyContactAdapter('EmergencyContact','EmployeeEmergencyContactSubTab',{"employee":data.id});
|
||||||
|
modJs.subModJsList['tabEmployeeEmergencyContactSubTab'].parent = this;
|
||||||
|
|
||||||
if(this.isModuleInstalled("admin","documents")) {
|
if(this.isModuleInstalled("admin","documents")) {
|
||||||
modJs.subModJsList['tabEmployeeDocumentSubTab'] = new EmployeeSubDocumentAdapter('EmployeeDocument', 'EmployeeDocumentSubTab', {"employee": data.id});
|
modJs.subModJsList['tabEmployeeDocumentSubTab'] = new EmployeeSubDocumentAdapter('EmployeeDocument', 'EmployeeDocumentSubTab', {"employee": data.id});
|
||||||
modJs.subModJsList['tabEmployeeDocumentSubTab'].parent = this;
|
modJs.subModJsList['tabEmployeeDocumentSubTab'].parent = this;
|
||||||
@@ -547,6 +556,16 @@ EmployeeAdapter.method('renderEmployee', function(data) {
|
|||||||
modJs.subModJsList['tabEmployeeLanguageSubTab'].setShowCancel(false);
|
modJs.subModJsList['tabEmployeeLanguageSubTab'].setShowCancel(false);
|
||||||
modJs.subModJsList['tabEmployeeLanguageSubTab'].get([]);
|
modJs.subModJsList['tabEmployeeLanguageSubTab'].get([]);
|
||||||
|
|
||||||
|
modJs.subModJsList['tabEmployeeDependentSubTab'].setShowFormOnPopup(true);
|
||||||
|
modJs.subModJsList['tabEmployeeDependentSubTab'].setShowAddNew(false);
|
||||||
|
modJs.subModJsList['tabEmployeeDependentSubTab'].setShowCancel(false);
|
||||||
|
modJs.subModJsList['tabEmployeeDependentSubTab'].get([]);
|
||||||
|
|
||||||
|
modJs.subModJsList['tabEmployeeEmergencyContactSubTab'].setShowFormOnPopup(true);
|
||||||
|
modJs.subModJsList['tabEmployeeEmergencyContactSubTab'].setShowAddNew(false);
|
||||||
|
modJs.subModJsList['tabEmployeeEmergencyContactSubTab'].setShowCancel(false);
|
||||||
|
modJs.subModJsList['tabEmployeeEmergencyContactSubTab'].get([]);
|
||||||
|
|
||||||
if(this.isModuleInstalled("admin","documents")) {
|
if(this.isModuleInstalled("admin","documents")) {
|
||||||
modJs.subModJsList['tabEmployeeDocumentSubTab'].setShowFormOnPopup(true);
|
modJs.subModJsList['tabEmployeeDocumentSubTab'].setShowFormOnPopup(true);
|
||||||
modJs.subModJsList['tabEmployeeDocumentSubTab'].setShowAddNew(false);
|
modJs.subModJsList['tabEmployeeDocumentSubTab'].setShowAddNew(false);
|
||||||
@@ -1372,7 +1391,7 @@ EmployeeSubSkillsAdapter.method('getSubHeaderTitle', function() {
|
|||||||
});
|
});
|
||||||
|
|
||||||
EmployeeSubSkillsAdapter.method('getSubItemHtml', function(item, itemDelete, itemEdit) {
|
EmployeeSubSkillsAdapter.method('getSubItemHtml', function(item, itemDelete, itemEdit) {
|
||||||
var itemHtml = $('<a href="#" class="list-group-item"><h5 class="list-group-item-heading" style="font-weight:bold;">'+item[2]+itemDelete+itemEdit+'</h5><p class="list-group-item-text">'+nl2br(item[3])+'</p></a>');
|
var itemHtml = $('<div class="list-group-item sub-tab-item"><h5 class="list-group-item-heading" style="font-weight:bold;">'+item[2]+itemDelete+itemEdit+'</h5><p class="list-group-item-text">'+nl2br(item[3])+'</p></div>');
|
||||||
return itemHtml;
|
return itemHtml;
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -1451,8 +1470,8 @@ EmployeeSubEducationAdapter.method('getSubItemHtml', function(item, itemDelete,
|
|||||||
try{
|
try{
|
||||||
end = Date.parse(item[5]).toString('MMM d, yyyy');
|
end = Date.parse(item[5]).toString('MMM d, yyyy');
|
||||||
}catch(e){}
|
}catch(e){}
|
||||||
//var itemHtml = $('<a href="#" class="list-group-item"><h5 class="list-group-item-heading" style="font-weight:bold;">'+item[2]+itemDelete+itemEdit+'</h5><p class="list-group-item-text">'+nl2br(item[3])+'</p></a>');
|
//var itemHtml = $('<div class="list-group-item sub-tab-item"><h5 class="list-group-item-heading" style="font-weight:bold;">'+item[2]+itemDelete+itemEdit+'</h5><p class="list-group-item-text">'+nl2br(item[3])+'</p></div>');
|
||||||
var itemHtml = $('<a href="#" class="list-group-item"><h5 class="list-group-item-heading" style="font-weight:bold;">'+item[2]+itemDelete+itemEdit+'</h5><p class="list-group-item-text"><i class="fa fa-calendar"></i> Start: <b>'+start+'</b></p><p class="list-group-item-text">'+'<i class="fa fa-calendar"></i> Completed: <b>'+end+'</b></p><p class="list-group-item-text">'+'<i class="fa fa-building-o"></i> Institute: <b>'+item[3]+'</b></p></a>');
|
var itemHtml = $('<div class="list-group-item sub-tab-item"><h5 class="list-group-item-heading" style="font-weight:bold;">'+item[2]+itemDelete+itemEdit+'</h5><p class="list-group-item-text"><i class="fa fa-calendar"></i> Start: <b>'+start+'</b></p><p class="list-group-item-text">'+'<i class="fa fa-calendar"></i> Completed: <b>'+end+'</b></p><p class="list-group-item-text">'+'<i class="fa fa-building-o"></i> Institute: <b>'+item[3]+'</b></p></div>');
|
||||||
return itemHtml;
|
return itemHtml;
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -1529,7 +1548,7 @@ EmployeeSubCertificationAdapter.method('getSubItemHtml', function(item, itemDele
|
|||||||
try{
|
try{
|
||||||
end = Date.parse(item[5]).toString('MMM d, yyyy');
|
end = Date.parse(item[5]).toString('MMM d, yyyy');
|
||||||
}catch(e){}
|
}catch(e){}
|
||||||
var itemHtml = $('<a href="#" class="list-group-item"><h5 class="list-group-item-heading" style="font-weight:bold;">'+item[2]+itemDelete+itemEdit+'</h5><p class="list-group-item-text"><i class="fa fa-calendar"></i> Granted On: <b>'+start+'</b></p><p class="list-group-item-text">'+'<i class="fa fa-calendar"></i> Valid Thru: <b>'+end+'</b></p><p class="list-group-item-text">'+'<i class="fa fa-building-o"></i> Institute: <b>'+item[3]+'</b></p></a>');
|
var itemHtml = $('<div class="list-group-item sub-tab-item"><h5 class="list-group-item-heading" style="font-weight:bold;">'+item[2]+itemDelete+itemEdit+'</h5><p class="list-group-item-text"><i class="fa fa-calendar"></i> Granted On: <b>'+start+'</b></p><p class="list-group-item-text">'+'<i class="fa fa-calendar"></i> Valid Thru: <b>'+end+'</b></p><p class="list-group-item-text">'+'<i class="fa fa-building-o"></i> Institute: <b>'+item[3]+'</b></p></div>');
|
||||||
return itemHtml;
|
return itemHtml;
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -1607,7 +1626,7 @@ EmployeeSubLanguageAdapter.method('getSubHeaderTitle', function() {
|
|||||||
});
|
});
|
||||||
|
|
||||||
EmployeeSubLanguageAdapter.method('getSubItemHtml', function(item, itemDelete, itemEdit) {
|
EmployeeSubLanguageAdapter.method('getSubItemHtml', function(item, itemDelete, itemEdit) {
|
||||||
var itemHtml = $('<a href="#" class="list-group-item"><h5 class="list-group-item-heading" style="font-weight:bold;">'+item[2]+itemDelete+itemEdit+'</h5><p class="list-group-item-text"><i class="fa fa-asterisk"></i> Reading: <b>'+item[3]+'</b></p><p class="list-group-item-text">'+'<i class="fa fa-asterisk"></i> Speaking: <b>'+ item[4] +'</b></p><p class="list-group-item-text">'+'<i class="fa fa-asterisk"></i> Writing: <b>'+item[5]+'</b></p><p class="list-group-item-text">'+'<i class="fa fa-asterisk"></i> Understanding: <b>'+item[6]+'</b></p></a>');
|
var itemHtml = $('<div class="list-group-item sub-tab-item"><h5 class="list-group-item-heading" style="font-weight:bold;">'+item[2]+itemDelete+itemEdit+'</h5><p class="list-group-item-text"><i class="fa fa-asterisk"></i> Reading: <b>'+item[3]+'</b></p><p class="list-group-item-text">'+'<i class="fa fa-asterisk"></i> Speaking: <b>'+ item[4] +'</b></p><p class="list-group-item-text">'+'<i class="fa fa-asterisk"></i> Writing: <b>'+item[5]+'</b></p><p class="list-group-item-text">'+'<i class="fa fa-asterisk"></i> Understanding: <b>'+item[6]+'</b></p></div>');
|
||||||
return itemHtml;
|
return itemHtml;
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -1619,6 +1638,154 @@ EmployeeSubLanguageAdapter.method('isSubProfileTable', function() {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @class EmployeeSubDependentAdapter
|
||||||
|
* @param endPoint
|
||||||
|
* @param tab
|
||||||
|
* @param filter
|
||||||
|
* @param orderBy
|
||||||
|
* @returns
|
||||||
|
*/
|
||||||
|
|
||||||
|
function EmployeeSubDependentAdapter(endPoint,tab,filter,orderBy) {
|
||||||
|
this.initAdapter(endPoint,tab,filter,orderBy);
|
||||||
|
}
|
||||||
|
|
||||||
|
EmployeeSubDependentAdapter.inherits(SubAdapterBase);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
EmployeeSubDependentAdapter.method('getDataMapping', function() {
|
||||||
|
return [
|
||||||
|
"id",
|
||||||
|
"employee",
|
||||||
|
"name",
|
||||||
|
"relationship",
|
||||||
|
"dob",
|
||||||
|
"id_number"
|
||||||
|
];
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
EmployeeSubDependentAdapter.method('getHeaders', function() {
|
||||||
|
return [
|
||||||
|
{ "sTitle": "ID" ,"bVisible":false},
|
||||||
|
{ "sTitle": "Employee" },
|
||||||
|
{ "sTitle": "Name" },
|
||||||
|
{ "sTitle": "Relationship"},
|
||||||
|
{ "sTitle": "Date of Birth"},
|
||||||
|
{ "sTitle": "Id Number"}
|
||||||
|
];
|
||||||
|
});
|
||||||
|
|
||||||
|
EmployeeSubDependentAdapter.method('getFormFields', function() {
|
||||||
|
return [
|
||||||
|
[ "id", {"label":"ID","type":"hidden"}],
|
||||||
|
[ "employee", {"label":"Employee","type":"hidden"}],
|
||||||
|
[ "name", {"label":"Name","type":"text","validation":""}],
|
||||||
|
[ "relationship", {"label":"Relationship","type":"select","source":[["Child","Child"],["Spouse","Spouse"],["Parent","Parent"],["Other","Other"]]}],
|
||||||
|
[ "dob", {"label":"Date of Birth","type":"date","validation":""}],
|
||||||
|
[ "id_number", {"label":"Id Number","type":"text","validation":"none"}]
|
||||||
|
];
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
EmployeeSubDependentAdapter.method('forceInjectValuesBeforeSave', function(params) {
|
||||||
|
params['employee'] = this.parent.currentId;
|
||||||
|
return params;
|
||||||
|
});
|
||||||
|
|
||||||
|
EmployeeSubDependentAdapter.method('getSubHeaderTitle', function() {
|
||||||
|
var addBtn = '<button class="btn btn-small btn-success" onclick="modJs.subModJsList[\'tab'+this.tab+'\'].renderForm();" style="margin-right:10px;"><i class="fa fa-plus"></i></button>';
|
||||||
|
return addBtn + "Dependents";
|
||||||
|
});
|
||||||
|
|
||||||
|
EmployeeSubDependentAdapter.method('getSubItemHtml', function(item, itemDelete, itemEdit) {
|
||||||
|
|
||||||
|
|
||||||
|
var itemHtml = $('<div class="list-group-item sub-tab-item"><h5 class="list-group-item-heading" style="font-weight:bold;">'+item[2]+itemDelete+itemEdit+'</h5><p class="list-group-item-text"><i class="fa fa-users"></i> Relationship: <b>'+item[3]+'</b></p><p class="list-group-item-text">'+'<i class="fa fa-user"></i> Name: <b>'+item[2]+'</b></p></div>');
|
||||||
|
return itemHtml;
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @class EmployeeSubEmergencyContactAdapter
|
||||||
|
* @param endPoint
|
||||||
|
* @param tab
|
||||||
|
* @param filter
|
||||||
|
* @param orderBy
|
||||||
|
* @returns
|
||||||
|
*/
|
||||||
|
|
||||||
|
function EmployeeSubEmergencyContactAdapter(endPoint,tab,filter,orderBy) {
|
||||||
|
this.initAdapter(endPoint,tab,filter,orderBy);
|
||||||
|
}
|
||||||
|
|
||||||
|
EmployeeSubEmergencyContactAdapter.inherits(SubAdapterBase);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
EmployeeSubEmergencyContactAdapter.method('getDataMapping', function() {
|
||||||
|
return [
|
||||||
|
"id",
|
||||||
|
"employee",
|
||||||
|
"name",
|
||||||
|
"relationship",
|
||||||
|
"home_phone",
|
||||||
|
"work_phone",
|
||||||
|
"mobile_phone"
|
||||||
|
];
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
EmployeeSubEmergencyContactAdapter.method('getHeaders', function() {
|
||||||
|
return [
|
||||||
|
{ "sTitle": "ID" ,"bVisible":false},
|
||||||
|
{ "sTitle": "Employee" },
|
||||||
|
{ "sTitle": "Name" },
|
||||||
|
{ "sTitle": "Relationship"},
|
||||||
|
{ "sTitle": "Home Phone"},
|
||||||
|
{ "sTitle": "Work Phone"},
|
||||||
|
{ "sTitle": "Mobile Phone"}
|
||||||
|
];
|
||||||
|
});
|
||||||
|
|
||||||
|
EmployeeSubEmergencyContactAdapter.method('getFormFields', function() {
|
||||||
|
return [
|
||||||
|
[ "id", {"label":"ID","type":"hidden"}],
|
||||||
|
[ "employee", {"label":"Employee","type":"hidden"}],
|
||||||
|
[ "name", {"label":"Name","type":"text","validation":""}],
|
||||||
|
[ "relationship", {"label":"Relationship","type":"text","validation":"none"}],
|
||||||
|
[ "home_phone", {"label":"Home Phone","type":"text","validation":"none"}],
|
||||||
|
[ "work_phone", {"label":"Work Phone","type":"text","validation":"none"}],
|
||||||
|
[ "mobile_phone", {"label":"Mobile Phone","type":"text","validation":"none"}]
|
||||||
|
];
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
EmployeeSubEmergencyContactAdapter.method('forceInjectValuesBeforeSave', function(params) {
|
||||||
|
params['employee'] = this.parent.currentId;
|
||||||
|
return params;
|
||||||
|
});
|
||||||
|
|
||||||
|
EmployeeSubEmergencyContactAdapter.method('getSubHeaderTitle', function() {
|
||||||
|
var addBtn = '<button class="btn btn-small btn-success" onclick="modJs.subModJsList[\'tab'+this.tab+'\'].renderForm();" style="margin-right:10px;"><i class="fa fa-plus"></i></button>';
|
||||||
|
return addBtn + "Emergency Contacts";
|
||||||
|
});
|
||||||
|
|
||||||
|
EmployeeSubEmergencyContactAdapter.method('getSubItemHtml', function(item, itemDelete, itemEdit) {
|
||||||
|
|
||||||
|
|
||||||
|
var itemHtml = $('<div class="list-group-item sub-tab-item"><h5 class="list-group-item-heading" style="font-weight:bold;">'+item[2]+itemDelete+itemEdit+'</h5><p class="list-group-item-text"><i class="fa fa-users"></i> Relationship: <b>'+item[3]+'</b></p><p class="list-group-item-text">'+'<i class="fa fa-user"></i> Name: <b>'+item[2]+'</b></p><p class="list-group-item-text"><i class="fa fa-phone"></i> Home Phone: <b>'+item[4]+'</b></p><p class="list-group-item-text"><i class="fa fa-phone"></i> Mobile Phone: <b>'+item[6]+'</b></p></div>');
|
||||||
|
return itemHtml;
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @class EmployeeSubDocumentAdapter
|
* @class EmployeeSubDocumentAdapter
|
||||||
@@ -1692,10 +1859,15 @@ EmployeeSubDocumentAdapter.method('getSubItemHtml', function(item, itemDelete, i
|
|||||||
try{
|
try{
|
||||||
expire = Date.parse(item[5]).toString('MMM d, yyyy');
|
expire = Date.parse(item[5]).toString('MMM d, yyyy');
|
||||||
}catch(e){}
|
}catch(e){}
|
||||||
var itemHtml = $('<a href="#" class="list-group-item"><h5 class="list-group-item-heading" style="font-weight:bold;">'+item[2]+itemDelete+itemEdit+'</h5><p class="list-group-item-text">'+nl2br(item[3])+'</p><p class="list-group-item-text">'+'<i class="fa fa-calendar"></i> Expire On: <b>'+expire+'</b></p></a>');
|
|
||||||
|
var downloadButton = '<button id="#_id_#_download" onclick="download(\''+item[7]+'\');return false;" type="button" style="position: absolute;bottom: 5px;right: 70px;font-size: 13px;" tooltip="Download"><li class="fa fa-cloud-download"></li></button>';
|
||||||
|
|
||||||
|
var itemHtml = $('<div class="list-group-item sub-tab-item"><h5 class="list-group-item-heading" style="font-weight:bold;">'+item[2]+downloadButton+itemDelete+itemEdit+'</h5><p class="list-group-item-text">'+nl2br(item[3])+'</p><p class="list-group-item-text">'+'<i class="fa fa-calendar"></i> Expire On: <b>'+expire+'</b></p></div>');
|
||||||
return itemHtml;
|
return itemHtml;
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
EmployeeSubDocumentAdapter.method('isSubProfileTable', function() {
|
EmployeeSubDocumentAdapter.method('isSubProfileTable', function() {
|
||||||
if(this.user.user_level == "Admin"){
|
if(this.user.user_level == "Admin"){
|
||||||
return false;
|
return false;
|
||||||
|
|||||||
@@ -79,4 +79,4 @@ if (!class_exists('CustomField')) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -54,4 +54,4 @@ modJsList['tabEmployeeCustomField'].setTableType("Employee");
|
|||||||
var modJs = modJsList['tabEmployeeFieldName'];
|
var modJs = modJsList['tabEmployeeFieldName'];
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
<?php include APP_BASE_PATH.'footer.php';?>
|
<?php include APP_BASE_PATH.'footer.php';?>
|
||||||
@@ -70,4 +70,4 @@ modJsList['tabEmploymentStatus'] = new EmploymentStatusAdapter('EmploymentStatus
|
|||||||
var modJs = modJsList['tabJobTitles'];
|
var modJs = modJsList['tabJobTitles'];
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
<?php include APP_BASE_PATH.'footer.php';?>
|
<?php include APP_BASE_PATH.'footer.php';?>
|
||||||
@@ -61,4 +61,4 @@ modJsList['tabEmployeeCompanyLoan'] = new EmployeeCompanyLoanAdapter('EmployeeCo
|
|||||||
var modJs = modJsList['tabCompanyLoan'];
|
var modJs = modJsList['tabCompanyLoan'];
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
<?php include APP_BASE_PATH.'footer.php';?>
|
<?php include APP_BASE_PATH.'footer.php';?>
|
||||||
@@ -3,5 +3,6 @@
|
|||||||
"Employees":"fa-users",
|
"Employees":"fa-users",
|
||||||
"Admin Reports":"fa-file-text",
|
"Admin Reports":"fa-file-text",
|
||||||
"System":"fa-cogs",
|
"System":"fa-cogs",
|
||||||
|
"Insights":"fa-bar-chart-o",
|
||||||
"Payroll":"fa-money"
|
"Payroll":"fa-money"
|
||||||
}
|
}
|
||||||
|
|||||||
27
ext/admin/overtime/api/OvertimeActionManager.php
Normal file
27
ext/admin/overtime/api/OvertimeActionManager.php
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
<?php
|
||||||
|
class OvertimeActionManager extends ApproveAdminActionManager{
|
||||||
|
|
||||||
|
public function getModelClass(){
|
||||||
|
return "EmployeeOvertime";
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getItemName(){
|
||||||
|
return "Overtime Request";
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getModuleName(){
|
||||||
|
return "Overtime Management";
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getModuleTabUrl(){
|
||||||
|
return "g=modules&n=overtime&m=module_Time_Management#tabEmployeeOvertime";
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getModuleSubordinateTabUrl(){
|
||||||
|
return "g=modules&n=overtime&m=module_Time_Management#tabSubordinateEmployeeOvertime";
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getModuleApprovalTabUrl(){
|
||||||
|
return "g=modules&n=overtime&m=module_Time_Management#tabEmployeeOvertimeApproval";
|
||||||
|
}
|
||||||
|
}
|
||||||
123
ext/admin/overtime/api/OvertimeAdminManager.php
Normal file
123
ext/admin/overtime/api/OvertimeAdminManager.php
Normal file
@@ -0,0 +1,123 @@
|
|||||||
|
<?php
|
||||||
|
if (!class_exists('OvertimeAdminManager')) {
|
||||||
|
|
||||||
|
class OvertimeAdminManager extends AbstractModuleManager{
|
||||||
|
|
||||||
|
public function initializeUserClasses(){
|
||||||
|
if(defined('MODULE_TYPE') && MODULE_TYPE != 'admin'){
|
||||||
|
$this->addUserClass("EmployeeOvertime");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public function initializeFieldMappings(){
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public function initializeDatabaseErrorMappings(){
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public function setupModuleClassDefinitions(){
|
||||||
|
|
||||||
|
$this->addModelClass('OvertimeCategory');
|
||||||
|
$this->addModelClass('EmployeeOvertime');
|
||||||
|
$this->addModelClass('EmployeeOvertimeApproval');
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if (!class_exists('OvertimeCategory')) {
|
||||||
|
class OvertimeCategory extends ICEHRM_Record {
|
||||||
|
var $_table = 'OvertimeCategories';
|
||||||
|
|
||||||
|
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("get","element");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
if (!class_exists('EmployeeOvertime')) {
|
||||||
|
class EmployeeOvertime extends ApproveModel
|
||||||
|
{
|
||||||
|
var $_table = 'EmployeeOvertime';
|
||||||
|
|
||||||
|
var $notificationModuleName = "Overtime Management";
|
||||||
|
var $notificationUnitName = "OvertimeRequest";
|
||||||
|
var $notificationUnitPrefix = "An";
|
||||||
|
var $notificationUnitAdminUrl = "g=modules&n=overtime&m=module_Time_Management#tabSubordinateEmployeeOvertime";
|
||||||
|
var $preApproveSettingName = "Attendance: Pre-Approve Overtime Request";
|
||||||
|
|
||||||
|
public function isMultiLevelApprovalsEnabled(){
|
||||||
|
return (SettingsManager::getInstance()->getSetting('Overtime: Enable Multi Level Approvals') == '1');
|
||||||
|
}
|
||||||
|
|
||||||
|
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 fieldsNeedToBeApproved()
|
||||||
|
{
|
||||||
|
return array(
|
||||||
|
"start_time",
|
||||||
|
"end_time"
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getType(){
|
||||||
|
return 'EmployeeOvertime';
|
||||||
|
}
|
||||||
|
|
||||||
|
public function allowIndirectMapping(){
|
||||||
|
if(SettingsManager::getInstance()->getSetting('Overtime: Allow Indirect Admins to Approve') == '1'){
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if (!class_exists('EmployeeOvertimeApproval')) {
|
||||||
|
|
||||||
|
class EmployeeOvertimeApproval extends EmployeeOvertime
|
||||||
|
{
|
||||||
|
|
||||||
|
public function Find($whereOrderBy,$bindarr=false,$pkeysArr=false,$extra=array()){
|
||||||
|
return $this->findApprovals(new EmployeeOvertime(), $whereOrderBy,$bindarr,$pkeysArr,$extra);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
42
ext/admin/overtime/index.php
Normal file
42
ext/admin/overtime/index.php
Normal file
@@ -0,0 +1,42 @@
|
|||||||
|
<?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 = 'travel';
|
||||||
|
define('MODULE_PATH',dirname(__FILE__));
|
||||||
|
include APP_BASE_PATH.'header.php';
|
||||||
|
include APP_BASE_PATH.'modulejslibs.inc.php';
|
||||||
|
|
||||||
|
$options = array();
|
||||||
|
$options['setRemoteTable'] = 'true';
|
||||||
|
|
||||||
|
$moduleBuilder = new ModuleBuilder();
|
||||||
|
$moduleBuilder->addModuleOrGroup(new ModuleTab('OvertimeCategory','OvertimeCategory','Overtime Categories','OvertimeCategoryAdapter','','',true,$options));
|
||||||
|
$moduleBuilder->addModuleOrGroup(new ModuleTab('EmployeeOvertime','EmployeeOvertime','Overtime Requests','EmployeeOvertimeAdminAdapter','','',false,$options));
|
||||||
|
echo UIManager::getInstance()->renderModule($moduleBuilder);
|
||||||
|
|
||||||
|
|
||||||
|
$itemName = 'OvertimeRequest';
|
||||||
|
$moduleName = 'Time Management';
|
||||||
|
$itemNameLower = strtolower($itemName);
|
||||||
|
|
||||||
|
include APP_BASE_PATH.'footer.php';
|
||||||
99
ext/admin/overtime/lib.js
Normal file
99
ext/admin/overtime/lib.js
Normal file
@@ -0,0 +1,99 @@
|
|||||||
|
/**
|
||||||
|
* Author: Thilina Hasantha
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* OvertimeCategoryAdapter
|
||||||
|
*/
|
||||||
|
|
||||||
|
function OvertimeCategoryAdapter(endPoint) {
|
||||||
|
this.initAdapter(endPoint);
|
||||||
|
}
|
||||||
|
|
||||||
|
OvertimeCategoryAdapter.inherits(AdapterBase);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
OvertimeCategoryAdapter.method('getDataMapping', function() {
|
||||||
|
return [
|
||||||
|
"id",
|
||||||
|
"name"
|
||||||
|
];
|
||||||
|
});
|
||||||
|
|
||||||
|
OvertimeCategoryAdapter.method('getHeaders', function() {
|
||||||
|
return [
|
||||||
|
{ "sTitle": "ID" ,"bVisible":false},
|
||||||
|
{ "sTitle": "Name" }
|
||||||
|
];
|
||||||
|
});
|
||||||
|
|
||||||
|
OvertimeCategoryAdapter.method('getFormFields', function() {
|
||||||
|
return [
|
||||||
|
[ "id", {"label":"ID","type":"hidden"}],
|
||||||
|
[ "name", {"label":"Name","type":"text","validation":""}]
|
||||||
|
];
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* EmployeeOvertimeAdminAdapter
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
function EmployeeOvertimeAdminAdapter(endPoint,tab,filter,orderBy) {
|
||||||
|
this.initAdapter(endPoint,tab,filter,orderBy);
|
||||||
|
this.itemName = 'OvertimeRequest';
|
||||||
|
this.itemNameLower = 'overtimerequest';
|
||||||
|
this.modulePathName = 'overtime';
|
||||||
|
}
|
||||||
|
|
||||||
|
EmployeeOvertimeAdminAdapter.inherits(ApproveAdminAdapter);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
EmployeeOvertimeAdminAdapter.method('getDataMapping', function() {
|
||||||
|
return [
|
||||||
|
"id",
|
||||||
|
"employee",
|
||||||
|
"category",
|
||||||
|
"start_time",
|
||||||
|
"end_time",
|
||||||
|
"project",
|
||||||
|
"status"
|
||||||
|
];
|
||||||
|
});
|
||||||
|
|
||||||
|
EmployeeOvertimeAdminAdapter.method('getHeaders', function() {
|
||||||
|
return [
|
||||||
|
{ "sTitle": "ID" ,"bVisible":false},
|
||||||
|
{ "sTitle": "Employee" },
|
||||||
|
{ "sTitle": "Category" },
|
||||||
|
{ "sTitle": "Start Time" },
|
||||||
|
{ "sTitle": "End Time"},
|
||||||
|
{ "sTitle": "Project"},
|
||||||
|
{ "sTitle": "Status"}
|
||||||
|
];
|
||||||
|
});
|
||||||
|
|
||||||
|
EmployeeOvertimeAdminAdapter.method('getFormFields', function() {
|
||||||
|
return [
|
||||||
|
["id", {"label": "ID", "type": "hidden"}],
|
||||||
|
["employee", {
|
||||||
|
"label": "Employee",
|
||||||
|
"type": "select2",
|
||||||
|
"sort": "none",
|
||||||
|
"allow-null": false,
|
||||||
|
"remote-source": ["Employee", "id", "first_name+last_name", "getActiveSubordinateEmployees"]
|
||||||
|
}],
|
||||||
|
["category", {"label": "Category", "type": "select2", "allow-null":false, "remote-source": ["OvertimeCategory", "id", "name"]}],
|
||||||
|
["start_time", {"label": "Start Time", "type": "datetime", "validation": ""}],
|
||||||
|
["end_time", {"label": "End Time", "type": "datetime", "validation": ""}],
|
||||||
|
["project", {"label": "Project", "type": "select2", "allow-null":true,"null=label":"none","remote-source": ["Project", "id", "name"]}],
|
||||||
|
["notes", {"label": "Notes", "type": "textarea", "validation": "none"}]
|
||||||
|
];
|
||||||
|
});
|
||||||
|
|
||||||
12
ext/admin/overtime/meta.json
Normal file
12
ext/admin/overtime/meta.json
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
{
|
||||||
|
"label":"Overtime Administration",
|
||||||
|
"menu":"Employees",
|
||||||
|
"order":"94",
|
||||||
|
"icon":"fa-align-center",
|
||||||
|
"user_levels":["Admin","Manager"],
|
||||||
|
"dashboardPosition":13,
|
||||||
|
|
||||||
|
"permissions":
|
||||||
|
{
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -16,4 +16,4 @@
|
|||||||
<t>Manage</t> <t>Permissions</t> <i class="fa fa-arrow-circle-right"></i>
|
<t>Manage</t> <t>Permissions</t> <i class="fa fa-arrow-circle-right"></i>
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -51,4 +51,4 @@ modJsList['tabPermission'].setShowAddNew(false);
|
|||||||
var modJs = modJsList['tabPermission'];
|
var modJs = modJsList['tabPermission'];
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
<?php include APP_BASE_PATH.'footer.php';?>
|
<?php include APP_BASE_PATH.'footer.php';?>
|
||||||
@@ -14,4 +14,4 @@
|
|||||||
<t>Update Clients/Projects</t> <i class="fa fa-arrow-circle-right"></i>
|
<t>Update Clients/Projects</t> <i class="fa fa-arrow-circle-right"></i>
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -110,4 +110,4 @@ modJsList['tabEmployeeProject'].setShowEdit(false);
|
|||||||
var modJs = modJsList['tabClient'];
|
var modJs = modJsList['tabClient'];
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
<?php include APP_BASE_PATH.'footer.php';?>
|
<?php include APP_BASE_PATH.'footer.php';?>
|
||||||
@@ -124,4 +124,4 @@ modJsList['tabLanguage'].setShowEdit(false);
|
|||||||
var modJs = modJsList['tabSkill'];
|
var modJs = modJsList['tabSkill'];
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
<?php include APP_BASE_PATH.'footer.php';?>
|
<?php include APP_BASE_PATH.'footer.php';?>
|
||||||
@@ -14,4 +14,4 @@
|
|||||||
<t>Generate a Report</t> <i class="fa fa-arrow-circle-right"></i>
|
<t>Generate a Report</t> <i class="fa fa-arrow-circle-right"></i>
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -35,4 +35,4 @@ modJsList['tabReport'].setRemoteTable(true);
|
|||||||
var modJs = modJsList['tabReport'];
|
var modJs = modJsList['tabReport'];
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
<?php include APP_BASE_PATH.'footer.php';?>
|
<?php include APP_BASE_PATH.'footer.php';?>
|
||||||
66
ext/admin/reports/reportClasses/OvertimeRequestReport.php
Normal file
66
ext/admin/reports/reportClasses/OvertimeRequestReport.php
Normal file
@@ -0,0 +1,66 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
if(!class_exists('ReportBuilder')){
|
||||||
|
include_once APP_BASE_PATH.'admin/reports/reportClasses/ReportBuilder.php';
|
||||||
|
}
|
||||||
|
class OvertimeRequestReport extends CSVReportBuilder implements CSVReportBuilderInterface{
|
||||||
|
|
||||||
|
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',
|
||||||
|
(SELECT `name` from OvertimeCategories where id = at.category) as 'Category',
|
||||||
|
(SELECT `name` from Projects where id = at.project) as 'Project',
|
||||||
|
start_time as 'Start Time',
|
||||||
|
end_time as 'End Time',
|
||||||
|
notes as 'Notes',
|
||||||
|
status as 'Status'
|
||||||
|
FROM EmployeeOvertime 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 start_time >= ? and end_time <= ?";
|
||||||
|
$params = array(
|
||||||
|
$request['date_start']." 00:00:00",
|
||||||
|
$request['date_end']." 23:59:59",
|
||||||
|
);
|
||||||
|
}else{
|
||||||
|
$query = "where start_time >= ? and end_time <= ?";
|
||||||
|
$params = array(
|
||||||
|
$request['date_start']." 00:00:00",
|
||||||
|
$request['date_end']." 23:59:59",
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
if(!empty($request['category']) && $request['category'] != "NULL"){
|
||||||
|
$query.= " and category = ?";
|
||||||
|
$params[] = $request['category'];
|
||||||
|
}
|
||||||
|
|
||||||
|
if(!empty($request['project']) && $request['project'] != "NULL"){
|
||||||
|
$query.= " and project = ?";
|
||||||
|
$params[] = $request['project'];
|
||||||
|
}
|
||||||
|
|
||||||
|
$query.=" order by start_time desc;";
|
||||||
|
|
||||||
|
LogManager::getInstance()->info("Query:".$query);
|
||||||
|
LogManager::getInstance()->info("Params:".json_encode($params));
|
||||||
|
|
||||||
|
return array($query, $params);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -205,4 +205,4 @@ class PDFReportBuilder extends ReportBuilder{
|
|||||||
}
|
}
|
||||||
return array($fileFirstPart, $fileName, $fileFullName);
|
return array($fileFirstPart, $fileName, $fileFullName);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -11,4 +11,4 @@
|
|||||||
<button onclick="modJs.cancel();return false;" class="btn"><t>Cancel</t></button>
|
<button onclick="modJs.cancel();return false;" class="btn"><t>Cancel</t></button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
@@ -14,4 +14,4 @@ $moduleBuilder->addModuleOrGroup(new ModuleTab('EmployeeSalary','EmployeeSalary'
|
|||||||
|
|
||||||
echo UIManager::getInstance()->renderModule($moduleBuilder);
|
echo UIManager::getInstance()->renderModule($moduleBuilder);
|
||||||
|
|
||||||
include APP_BASE_PATH.'footer.php';
|
include APP_BASE_PATH.'footer.php';
|
||||||
|
|||||||
@@ -37,6 +37,8 @@ class SettingsInitialize extends AbstractInitialize{
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
BaseService::getInstance()->getMigrationManager()->ensureMigrations();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -14,4 +14,4 @@
|
|||||||
<t>Update</t> <t>Settings</t> <i class="fa fa-arrow-circle-right"></i>
|
<t>Update</t> <t>Settings</t> <i class="fa fa-arrow-circle-right"></i>
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -34,7 +34,10 @@ $options1['setShowAddNew'] = 'false';
|
|||||||
$moduleBuilder->addModuleOrGroup(new ModuleTab('CompanySetting','Setting','Company','SettingAdapter','{"name":["Company:"]}','name',true,$options1));
|
$moduleBuilder->addModuleOrGroup(new ModuleTab('CompanySetting','Setting','Company','SettingAdapter','{"name":["Company:"]}','name',true,$options1));
|
||||||
$moduleBuilder->addModuleOrGroup(new ModuleTab('SystemSetting','Setting','System','SettingAdapter','{"name":["System:"]}','name',false,$options1));
|
$moduleBuilder->addModuleOrGroup(new ModuleTab('SystemSetting','Setting','System','SettingAdapter','{"name":["System:"]}','name',false,$options1));
|
||||||
$moduleBuilder->addModuleOrGroup(new ModuleTab('EmailSetting','Setting','Email','SettingAdapter','{"name":["Email:"]}','name',false,$options1));
|
$moduleBuilder->addModuleOrGroup(new ModuleTab('EmailSetting','Setting','Email','SettingAdapter','{"name":["Email:"]}','name',false,$options1));
|
||||||
$moduleBuilder->addModuleOrGroup(new ModuleTab('LDAPSetting','Setting','LDAP','SettingAdapter','{"name":["LDAP:"]}','name',false,$options1));
|
$moduleBuilder->addModuleOrGroup(new ModuleTab('LeaveSetting','Setting','Leave / PTO','SettingAdapter','{"name":["Leave:"]}','name',false,$options1));
|
||||||
|
if(!defined('LDAP_ENABLED') || LDAP_ENABLED == true){
|
||||||
|
$moduleBuilder->addModuleOrGroup(new ModuleTab('LDAPSetting','Setting','LDAP','SettingAdapter','{"name":["LDAP:"]}','name',false,$options1));
|
||||||
|
}
|
||||||
$moduleBuilder->addModuleOrGroup(new ModuleTab('AttendanceSetting','Setting','Attendance','SettingAdapter','{"name":["Attendance:"]}','name',false,$options1));
|
$moduleBuilder->addModuleOrGroup(new ModuleTab('AttendanceSetting','Setting','Attendance','SettingAdapter','{"name":["Attendance:"]}','name',false,$options1));
|
||||||
$moduleBuilder->addModuleOrGroup(new ModuleTab('OtherSetting','Setting','Other','SettingAdapter','{"name":["Projects:","Recruitment:","Notifications:","Expense:","Travel:","Api:","Overtime:"]}','name',false,$options1));
|
$moduleBuilder->addModuleOrGroup(new ModuleTab('OtherSetting','Setting','Other','SettingAdapter','{"name":["Projects:","Recruitment:","Notifications:","Expense:","Travel:","Api:","Overtime:"]}','name',false,$options1));
|
||||||
echo UIManager::getInstance()->renderModule($moduleBuilder);
|
echo UIManager::getInstance()->renderModule($moduleBuilder);
|
||||||
@@ -47,4 +50,4 @@ $(window).load(function() {
|
|||||||
});
|
});
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
<?php include APP_BASE_PATH.'footer.php';?>
|
<?php include APP_BASE_PATH.'footer.php';?>
|
||||||
@@ -108,4 +108,4 @@ SettingAdapter.method('loadRemoteDataForSettings', function () {
|
|||||||
|
|
||||||
SettingAdapter.method('getHelpLink', function () {
|
SettingAdapter.method('getHelpLink', function () {
|
||||||
return 'http://blog.icehrm.com/docs/settings/';
|
return 'http://blog.icehrm.com/docs/settings/';
|
||||||
});
|
});
|
||||||
@@ -13,4 +13,4 @@
|
|||||||
<button onclick="modJs.cancel();return false;" class="btn"><t>Cancel</t></button>
|
<button onclick="modJs.cancel();return false;" class="btn"><t>Cancel</t></button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
@@ -152,4 +152,4 @@ if (!class_exists('EmployeeTravelRecordApproval')) {
|
|||||||
return $this->findApprovals(new EmployeeTravelRecord(), $whereOrderBy,$bindarr,$pkeysArr,$extra);
|
return $this->findApprovals(new EmployeeTravelRecord(), $whereOrderBy,$bindarr,$pkeysArr,$extra);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -16,4 +16,4 @@
|
|||||||
<t>Manage</t> <t>Travel</t> <i class="fa fa-arrow-circle-right"></i>
|
<t>Manage</t> <t>Travel</t> <i class="fa fa-arrow-circle-right"></i>
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -38,4 +38,4 @@ $itemName = 'TravelRequest';
|
|||||||
$moduleName = 'Travel Management';
|
$moduleName = 'Travel Management';
|
||||||
$itemNameLower = strtolower($itemName);
|
$itemNameLower = strtolower($itemName);
|
||||||
|
|
||||||
include APP_BASE_PATH.'footer.php';
|
include APP_BASE_PATH.'footer.php';
|
||||||
@@ -14,4 +14,4 @@
|
|||||||
<t>Manage</t> <t>Users</t> <i class="fa fa-arrow-circle-right"></i>
|
<t>Manage</t> <t>Users</t> <i class="fa fa-arrow-circle-right"></i>
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -63,4 +63,4 @@ modJsList['tabUserRole'] = new UserRoleAdapter('UserRole');
|
|||||||
var modJs = modJsList['tabUser'];
|
var modJs = modJsList['tabUser'];
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
<?php include APP_BASE_PATH.'footer.php';?>
|
<?php include APP_BASE_PATH.'footer.php';?>
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user