Icehrm Guide
Icehrm Guide
of Contents
Introduction 1.1
Installation and Settings 1.2
Manual Installation 1.3
Setup Company Details 1.4
Employee Setup 1.5
Training Module 1.6
Salary 1.7
Payroll Management 1.8
Recruitment & Candidates 1.9
Vacation and Leave Management 1.10
Document Management 1.11
Expense Management 1.12
2
Introduction
Introduction
This book aims to be a comprehensive guide to IceHrm. Well cover topics such as installing
IceHrm and getting it up and running, configuring IceHrm and using icehrm modules.
What is IceHrm?
IceHrm is a Human resource management system for small and medium sized
organizations. It covers all the basic HRM needs of a company such as leave management,
time management and handling employee information.
3
Installation and Settings
# Installation
Getting IceHrm installed only take a few minutes. If it ever becomes a problem, please file
an issue describing the issue you encountered and how we might make the process easier.
Requirements
Before installing IceHrm please make sure your system supports following requirements
youll need to make sure your system has before you start.
Optional Modules
Memcache
Installation
If you are installing the open source version, download the latest release from GitHub
If you are installing the pro version or enterprise you should have received the files after
purchase.
Copy the downloaded file to the path you want to install iCE Hrm in your server and
extract.
Create a mysql DB for and user. Grant all on iCE Hrm DB to new DB user.
Once the application is installed use the username = admin and password = admin to
login to your system.
After installation the settings module can be accessed by login in as admin and going to
System->Settings
4
Installation and Settings
Global Settings
Setting Description
Company:
Name Name of the company
Company: Company logo. You may upload the company logo here. Ideally should
Logo be 200px wide and height between 50px to 150 px.
Email: Set this to "No" to disable all outgoing emails from modules. Value "Yes"
Enable will enable outgoing emails
Email Settings
Configuring Email with SMTP
Setting Description
Email: Mode This should be set to SMTP
Email: SMTP If you are using local machine to send emails, set this to localhost. If
Host not set the IP address of the server you are using to send emails
Email: SMTP
Authentication Set this to "Yes" if SMTP server authorization is enabled
Email: SMTP
User User name of the SMTP user
Email: SMTP
Password SMTP user password
Email: SMTP
Port Port configured in SMTP server (Default 25)
Email: Email
From From email address (e.g icehrm@[Link])
5
Installation and Settings
Setting Description
Email: Mode This should be set to SES
Email: Email From Authorized email address for sending emails through SES
Setting Description
Email: Mode This should be set to SMTP
Developer Settings
6
Installation and Settings
Setting Description
System: Do
not pass
JSON in Select Yes if you are having trouble loading data for some tables
request
System: When this is set to Yes IceHrm will reset all values given in System-
Reset
Modules and >Permissions module. This setting can be used to reload permissions
Permissions after adding new permissions to module [Link] file
System: Add
New Add new permissions without resetting modules
Permissions
System:
Debug Mode Print debug log messages
Other Settings
Setting Description
Leave: Share If "Yes" all the employees of company can see other peoples' leave
Calendar to schedules. If set to "No" only admins and supervisors will be able to
Whole Company
see leave schedule of subordinates
Leave: CC Every email sent though leave module will be CC to these comma
Emails seperated list of emails addresses
Leave: BCC Every email sent though leave module will be BCC to these comma
Emails seperated list of emails addresses
Attendance:
Time-sheet
Only allow users to add an entry to a timesheet only if they have
Cross Check marked atteandance for the selected period
Recruitment: Show quick apply button when candidates are applying for jobs.
Show Quick Quick apply allow candidates to apply with minimum amount of
Apply
information
Recruitment:
Show Apply Show apply button when candidates are applying for jobs
7
Installation and Settings
Notification cron is used to send periodic notifications. Document expiry notifications will
depend on this scheduler.
(IceHrm Root)/app/[Link]
LDAP Settings
This section describe the process of configuring LDAP with IceHrm
php5-ldap
PHP5 LDAP extension should be installed for LDAP to work. Also make sure all required
outbound ports are opened
Before using please install php5-ldap module. R Run following command to install php5-ldap
The user "admin" will always login with local db username and password (even LDAP is
enabled)
Use these config to test LDAP connection with following test LDAP server
[Link]
8
Installation and Settings
Setting Description
LDAP: Enabled Yes
If you are facing login issues after enabling LDAP, you can still login as user "admin" and
disable LDAP
9
Manual Installation
Manual Installation
If you encountered any issues with automated installation please follow these steps to
manually configure icehrm on your server.
Then execute icehrm database scripts on newly created mysql database via console or
phpmyadmin.
The two files you need to execute can be found in icehrm installation directory (assuming it
to be /var/www/icehrm)
1. /var/www/icehrm/scripts/[Link]
2. /var/www/icehrm/scripts/icehrm__master__data.sql
10
Manual Installation
<?php
ini_set('error_log', '_LOG_');
define('APP_NAME', 'Ice Framework');
define('FB_URL', 'Ice Framework');
define('TWITTER_URL', 'Ice Framework');
define('CLIENT_NAME', '_CLIENT_');
define('APP_BASE_PATH', '_APP_BASE_PATH_');
define('CLIENT_BASE_PATH', '_CLIENT_BASE_PATH_');
define('BASE_URL','_BASE_URL_');
define('CLIENT_BASE_URL','_CLIENTBASE_URL_');
define('APP_DB', '_APP_DB_');
define('APP_USERNAME', '_APP_USERNAME_');
define('APP_PASSWORD', '_APP_PASSWORD_');
define('APP_HOST', '_APP_HOST_');
define('APP_CON_STR', 'mysqli://'.APP_USERNAME.':'.APP_PASSWORD.'@'.APP_HOST.'/'.APP_D
B);
//file upload
define('FILE_TYPES', 'jpg,png,jpeg');
define('MAX_FILE_SIZE_KB', 10 * 1024);
//Home Links
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_My_Account
");
You may change app name and social media urls to your company social media accounts:
For updating urls you need to know the absolute path of your icehrm installation and url to
your icehrm installation.
For an example we assume path to icehrm is : /var/www/icehrm/ and icehrm web url to be
[Link] then paths and urls should be updated as below.
11
Manual Installation
define('APP_BASE_PATH', '/var/www/icehrm/');
define('CLIENT_BASE_PATH', '/var/www/icehrm/app/');
define('BASE_URL','[Link]
define('CLIENT_BASE_URL','[Link]
If you are using windows note that all the path should be specified with forward slash
e.g
define('APP_BASE_PATH', 'C:/xampp/htdocs/icehrm/');
define('APP_DB', 'icehrm');
define('APP_USERNAME', 'icehrm_user');
define('APP_PASSWORD', 'icehrm_pwd');
define('APP_HOST', 'localhost');
If you would like to upload files larger than 10MB you can update MAX_FILE_SIZE_KB
config.
12
Setup Company Details
Company structure
Company structure module allows you to define the structure of you company. Let you
create parent structure of the company, branches, departments and other company units.
Also it provides a graphical overview of how each of your company units are connected.
13
Employee Setup
Employee Management
Employees module is used to list, edit, add and search employees in your company. You can
use the search box to search employees by ID, name or department. Also you can use filter
button to filter employees by job title, department or supervisor.
Adding Employees
Adding employees to ICE Hrm can only be done by the admin. The employee Id field should
have a unique value. In order to complete adding an employee you need to provide job title,
employment status and pay grade. These values can be defined in admin: Jobs module.
Once an employee is added to the system you will be asked to create a user for the newly
added employee.
Switching Employees
One of the key features of ICE Hrm, is admins and managers ability to login as another
employee. This feature can be used to apply leaves, add attendance records or update time
sheets behalf of other employees.
To login as an employee you can use the switch user icon on employee list or the Switch
Employee menu in top right hand corner.
Here you can setup all the information related to job titles, pay grades and employment
status in your company.
14
Employee Setup
Qualifications Setup
(Admin > Qualifications Setup)
Skills, Educational Details, Certifications and Languages you define under qualifications
setup module will be used by employees or admins to attach these qualifications to their
profiles.
15
Training Module
16
Training Module
Field Description
Name Name of the training session
Assignment Due If the training session has an associated assignment, the due date
Date for that
Training
Certificate
If Yes, employees have to attach a proof of completion (such as
Required certificate) before marking the training session as completed
Attendance Type
Employees can only subscribe to training sessions having Attendance Type set to "Sign Up"
Proof of Completion
17
Training Module
If the training session requires a proof of completion, employee has to edit the training
session under "My Training Sessions" tab and attach a proof of completion before submitting
it for approval
If all the things are in order, the supervisor can approve the training session via
Training=>Training=>Training Sessions of Direct Reports tab
18
Salary
Salary
Defining Employee Salary Details
In icehrm we have employee salary components (e.g Car Allowance) which are grouped into
salary component types (e.g Allowances). Then for each employee you can add actual
numbers for each of the salary component.
Salary Components
Employee Salary
19
Payroll Management
Payroll Management
Payroll Module Usage
You may use IceHrm to achieve following tasks:
Store employee salary details with and group into salary components
Calculate various deductions
Include overtime payments into employee salary slips depending on number of hours
Add salary components based on attendance sheets
Allow employees to download payslips in PDF format
If required you can add more. (You may view/edit Salary Components under menu Payroll
=> Salary)
Also in order to make it more easy to define taxes and other deductions on salary
components we group these into Salary Component Types
20
Payroll Management
This way you can define other salary components like allowances and hourly pay details.
21
Payroll Management
One of the best ways to decide which columns you need have your payroll report is to think
of rows in your employees payslip. Payroll report as a table which holds all your individual
employee payslips in each row.
Since you have three salary components Basic, Car Allowance and Hourly pay we can
define following payroll columns. (For now let's assume tax is 19% on total salary).
1. Basic Salary
2. Car Allowance
3. Hours Worked During Month
4. Hourly Pay
5. Payment For Hours Worked
6. Gross monthly salary
7. Deduction for Tax
8. Net Salary
So now we can start adding payroll column. It's a good idea to prefix your payroll columns
with its respective country code to make it easier to find.
22
Payroll Management
As this column is only depend on Basic Salary component you can just select the that salary
component from the list. (Note that in some cases you can add multiple salary components
to same column).
Also make sure you set the enable to Yes and default value to 0.00.
The column order should be 1 because it should be the first column in your payroll report
for Germany.
23
Payroll Management
24
Payroll Management
25
Payroll Management
26
Payroll Management
Here you are adding the previously defined hours per month column as a parameter
named X and hourly pay column as parameter Y, so you can use it to do various
calculations using these columns
27
Payroll Management
Then under the Function field you can multiply these columns (all other basic math
expressions will work here)
28
Payroll Management
29
Payroll Management
You can create a calculation method based on a Salary component group (type), a Salary
component or an Existing payroll column. In this case we use an existing payroll column.
Now click on add button on Calculation Process filed to define the actual calculation.
According to our example for the full range of gross salary tax is 19%. So we don't need to
define any ranges and can calculate the tax as follows.
30
Payroll Management
Now we need to create a payroll column and add this calculation method to that column.
Please also play attention how we are assigning column order to each column.
31
Payroll Management
Now we have finished defining payroll columns. When you go to Payroll columns and search
"DE - " you can see all the fields in German payroll.
32
Payroll Management
As you have all the required payroll columns you can use these to create a payslip template.
So we are going to create a new payslip template named German Payslip Template and add
all the columns defined above. Goto Payslip Templates tab and create a new payslip.
1. Company Logo
2. Company Name
3. Text (For adding special messages to notifications to employees)
4. Separators (For separating sections on payslip)
5. Payroll columns
33
Payroll Management
34
Payroll Management
Payroll Report is the unit used to combine all the payroll columns and calculate monthly
payments for all the selected employees.
When you create the payroll report it should be in Draft state. Only when it is processing
completed it should go to Completed state.
Also you need to select all the payroll columns you defined earlier for german payroll here as
shown above.
35
Payroll Management
As you can see here IceHrm Employee is getting a Basic and Allowance while Lala
Lamees getting paid per hour. As we have configured our payroll report application now able
to calculate the tax and other payroll columns properly.
36
Payroll Management
Click on the blue color "Process" button on your payroll report under Payroll Report tab. This
will show salaries of all the employees in your payroll.
As you can see here IceHrm can now calculate your payroll.
After checking figures manually you can click on finalize button which will change the payroll
report status to Completed.
Downloading Payslips
Now your employee can login and download payslip for the payroll period 2017-08-01 to
2017-08-31.
Login as the employee and goto User Reports -> Reports module.
And then download the Payslip from any completed payroll report
37
Payroll Management
38
Payroll Management
Then save the new Payroll Report and process and finalize it.
39
Recruitment & Candidates
Recruitment
Recruitment module can be used to:
Post jobs
Let candidates apply for these jobs
Schedule interviews
Track candidate progress with notes
Share job links with linkedIn, facebook, twitter and google+ directly from icehrm
Recruitment Setup
Recruitment setup menu is available under "Recruitment"=>"Recruitment Setup". Here you
can add/edit Employment Types, Experience levels, Job Functions, Education Levels and
Benefits. All these information will be used when posting a job.
Posting a Job
Jobs can be posted via "Recruitment"=>"Job Positions". Following table will list out main
fields used to create job postings
40
Recruitment & Candidates
Fields Description
Job Code
A unique code to identify the job position. Url for applying the job
position will contain this code.
A short description about the job position. This will be displayed when
Short
Description listing company jobs. The public url for companies open positions is,
[Link]
Show Salary Whether you want to show the salary range for this job position
Image Attach an image if you want to show an image with job listing
Fields Description
Only an image will be displayed. The image for the ad should be provided in
Image
Only Image field when creating job position
e.g: Image only ad
Image
and Full
Use this display type when you want to show an image for the job position
Text with a full description and details such as salary, requirements and benefits.
Image Use this display type when you want to show an image for the job position
and
Other only with a minimum set of meta data about the job position such as salary,
Details employment type, experience, job functions and closing date.
41
Recruitment & Candidates
Candidates
Store candidate details
Receive job applications from candidates via job postings
Schedule interviews
Track candidate progress with notes
After creating a job position you can list all the candidates who have applied for the job
position via "Recruitment"=>"Candidates" module. It should list all the candidates who have
applied for your jobs.
42
Recruitment & Candidates
Here you can schedule interviews and add notes related to the candidate. Notes could be a
details about a telephone conversation or candidates expectations.
43
Vacation and Leave Management
including:
Leave periods
Leave types
Work week
Holidays
Leave rules
Leave Periods
A leave period usually a year but can be different according to company HR processes.
Leave periods cant overlap, which means if an employee applied for annual leaves in leave
period for Year 2014, his leave balance in leave period Year 2015 wont get affected. This
is same for all types of leaves. Also if the leave period for year 2015 is not defined,
employees wont be able to apply leaves for 2015.
Leave Types
Leave type tab defines types of leaves which can be applied by employees.
44
Vacation and Leave Management
Field Description
If Yes is selected, an Admin or a Manager is able to login as an
Admin can
employee (Please check switch employee concept explained in
assign leave
employee module) and apply this type of leaves behalf of the
to employees
employee.
Employees
If No is selected; only an Admin or a Manager is allowed to assign
can apply for
this type of leave to an employee. (An employee wont be able to apply
this leave
this type of leave).
type
If this is set to Yes, employees wont have all the leaves added to
their leave balance at the beginning of the leave period. Instead leaves
Leave get accrued for every passing day in leave period. For an example if for
Accrue a particular leave type number of leaves per period is defined as 24
Enabled and leave period (having 12 months) is stating from January, at the end
of January an employee will be able apply for 2 leaves of this leave
type (24/12)
Leave
If an employee has some leave balance remaining in previous leave
Carried
period, that amount will get add to the current leave period.
Forward
45
Vacation and Leave Management
Percentage In each year (or period) what percentage of remaining leaves should
of Leaves be carried forward.
Carried
Forward
Maximum
Carried Maximum number of leave days which can be carried forwarded from
Forward one year to another. Set to 0 for unlimited
Amount
Carried
Forward
For how many days carried forward leaves are available in start date of
Leave
current leave period.
Availability
Period
Work Week
Work week defines the days that your employees are working. When an employee is
applying for a leave, work week is taken into consideration. For an example if you company
works only from Monday to Friday and if an employee applied for a leave for two continuous
weeks including weekends, Saturdays and Sundays will NOT be counted for leave
application.
In some cases, companies need to keep different workweeks for different countries. For an
example if your branch in UK works a half a day on Saturday then you can add that as
shown on following image. All the leave calculations of UK based employees (employee:
country field should be set to UK) will be done according to extended workweek defined for
UK.
46
Vacation and Leave Management
Holidays
Holidays defines the list of holidays for all leave periods. It is advised to define all holidays
for all the enabled leave periods. If an employee applies for a leave which includes a holiday,
the leave for holiday wont be counted. Just like the workweek, you can have different
holidays defined for different countries. In following example 2014-12-18 defined as a
holiday only for UK.
Employee leaves
47
Vacation and Leave Management
Employee leaves tab lists all the employee leaves. An administrator can view details of
leaves and take actions on it (Approve or Reject). Admin should usually use this feature
when the Supervisor of the person who applied the leave is not able to do it.
All the employees are allowed to check there leave entitlement. It show a summery of their
leave balances for the current leave period.
Field Description
Available
Number of leave remaining that you can apply during current leave period
Leaves
Pending
Number of leave you have applied but not approved or rejected
Leaves
Leaves to If the Leave Accrue Enabled is set for the leave type, this will show how
be many leave days will be added to your leave balance by end of current
Accrued leave period
Leaves
Carried Leave days carried forward from previous leave periods
Forwarded
Leave Groups
Leave groups can be used to:
1. Group a set of employees and create leave rules affecting all employees in the group.
48
Vacation and Leave Management
2. Selectively allow some leave types only to a group of employees (for an example you
can assign Maternity leaves only to female employees)
In order to do this:
First create the leave group under Leave Settings->Leave Groups->Edit Leave
Groups.
Create a leave type for Maternity leave by specifying Female employees group. Now
only employees added to that group will be able to apply for maternity leaves
Following examples will show you the proper way to use leave rules
Example 1
To enable all Software Engineers to apply for 20 annual leaves, you need to add a new
leave rule as shown below
49
Vacation and Leave Management
Example 2
Enable all Software Engineers who are permanent employees to apply for 10 medical leaves
Example 3
50
Vacation and Leave Management
Do not allow contact workers to apply for casual leaves. Only administrator is allowed to
apply casual leaves behalf of them with a maximum limit of 5 leaves per leave period
1. You are moving the leave management system to icehrm, in the middle of the leave
period for 2015
2. Some of your employees have leaves carried forwarded from 2014, which might not have
been used
3. Your company have annual leave which can be carried forwarded to next year
4. There are casual leave which are accrued 1.5 per each month
5. Some employees have joined in 2015 and their leave entitlement should be proportionate
according to joined date
51
Vacation and Leave Management
First task is setting up the leave periods. If you are starting from 2015 you only need to have
the 2015 leave period. But creating a leave period for 2016 also should not be an issue.
Creating a leave period for 2014 will carry forward what ever the remaining leaves from 2014
to 2015. In that case you have to enter all employee leave details for 2014 manually into
IceHrm. So the preferred way is to not create the previous leave period by adding all leave
carried forwarded by employees using PTO (this will be explained in another section).
Also note that leave period can have different lengths and can be started from any month of
the year.
Here I've set leave carried forward to 'Yes' and carry forward percentage to 100% so all the
remaining annual leave of this year will be carried forward to the next.
1. Setting up casual leave which are accrued 1.5 per each month and should not be
carried forward to the next year
52
Vacation and Leave Management
I have entered 18 for leave amount, this will accrue 1.5 (18/12) days per month since leave
period length for 2015 is 12 months
There are 14.39 leaves accrued for this year (for the period 2015-01-01 to 2015-10-19). Also
it shows the number of day that will be accrued till end of the year from now, which is 3.61
days
53
Vacation and Leave Management
After adding the leave balance you will notice that Jhon Doe has 17 annual leaves instead of
14 in his leave entitlement
Also you may add negative leave balances under PTO for current year to reflect already
taken leaves by employees.
If this is set then Jhon Doe will only be entitled for 18 * (8/12) annual leaves for the year
given he has joined on 1st of May 2015
54
Vacation and Leave Management
55
Document Management
Document Management
Company Documents
(Employee -> Document Management)
You can add company documents and share these documents with whole company, multiple
departments or individual employees.
Employees can view company documents they are entitled to under (Documents -> My
Documents -> Company Documents)
56
Document Management
Expire Notifications
When defining document types you can define before how many days icehrm should notify
the user about the expiring documents.
The notification cron should be setup for this feature to function properly. Please check
[scheduler](/docs/scheduler)
Employee Documents
Administrators and Managers can use "Employee Documents" tab to explore and manage
documents uploaded by employees or add new documents to employees.
Settings
Set Notifications: Send Document Expiry Emails to No if you don't wish to receive document
expiry notifications.
Also set Notifications: Copy Document Expiry Emails to Manager to Yes if you want to send
all document expiry notifications to respective managers also
57
Expense Management
Expenses
Configuring Expenses Module
Expense categories and payment methods can be configured under Employees -> Expense
Administration . Also Managers can view and approve or reject subordinate expenses under
Adding Expenses
Employees can add expenses under Finance -> Expenses .
Pre-Approving Expenses
If the Setting Expense: Pre-Approve Expenses is set to Yes, all new expenses will be
approved automatically
Reporting
Expense report can be downloaded under Admin -> Reports by specifying a date range.
58