File: //home/cafsindia/crm_cafsindia_com/application/controllers/Employees.php
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
require_once("Persons.php");
class Employees extends Persons
{
public function __construct()
{
parent::__construct('employees');
}
public function index()
{
if(!$this->Appconfig->isAppvalid()){
redirect('config');
}
$data['table_headers'] = $this->xss_clean(get_employee_manage_table_headers());
$this->load->view('people/manage', $data);
}
/*
Returns employee table data rows. This will be called with AJAX.
*/
public function search()
{
$search = $this->input->get('search');
$limit = $this->input->get('limit');
$offset = $this->input->get('offset');
$sort = $this->input->get('sort');
$order = $this->input->get('order');
$employees = $this->Employee->search($search, $limit, $offset, $sort, $order);
$total_rows = $this->Employee->get_found_rows($search);
$data_rows = array();
foreach($employees->result() as $person)
{
$data_rows[] = get_employee_data_row($person, $this);
}
$data_rows = $this->xss_clean($data_rows);
echo json_encode(array('total' => $total_rows, 'rows' => $data_rows));
}
/*
Gives search suggestions based on what is being searched for
*/
public function suggest_search()
{
$suggestions = $this->xss_clean($this->Employee->get_search_suggestions($this->input->post('term')));
echo json_encode($suggestions);
}
/*
Loads the employee edit form
*/
public function view($employee_id = -1)
{
$person_info = $this->Employee->get_info($employee_id);
foreach(get_object_vars($person_info) as $property => $value)
{
$person_info->$property = $this->xss_clean($value);
}
$data['person_info'] = $person_info;
$modules = array();
foreach($this->Module->get_all_modules()->result() as $module)
{
$module->module_id = $this->xss_clean($module->module_id);
$module->grant = $this->xss_clean($this->Employee->has_grant($module->module_id, $person_info->person_id));
$modules[] = $module;
}
$data['all_modules'] = $modules;
$permissions = array();
foreach($this->Module->get_all_subpermissions()->result() as $permission)
{
$permission->module_id = $this->xss_clean($permission->module_id);
$permission->permission_id = $this->xss_clean($permission->permission_id);
$permission->grant = $this->xss_clean($this->Employee->has_grant($permission->permission_id, $person_info->person_id));
$permissions[] = $permission;
}
$data['all_subpermissions'] = $permissions;
$state_info[""] = "---- Select State ----";
foreach($this->Employee->get_state()->result_array() as $row){
$state_info[$this->xss_clean($row['state_code'])] = $this->xss_clean($row['state_name']);
}
$data['state_info'] = $state_info;
//SAT-Get role
$role_info[""] = "---- Select Role ----";
foreach($this->Employee->get_role()->result_array() as $row){
$role_info[$this->xss_clean($row['role_id'])] = $this->xss_clean($row['role_name']);
}
$data['role_info'] = $role_info;
//SAT-Get Category
$category_info[""] = "---- Select Category ----";
foreach($this->Employee->get_category()->result_array() as $row){
$category_info[$this->xss_clean($row['cat_id'])] = $this->xss_clean($row['cat_name']);
}
$data['category_info'] = $category_info;
//SAT-Get Branch
$branch_info[""] = "---- Select Branch ----";
foreach($this->Employee->get_branch()->result_array() as $row){
$branch_info[$this->xss_clean($row['branch_id'])] = $this->xss_clean($row['branch_name']);
}
$data['branch_info'] = $branch_info;
//SAT-Get Branch
$reporting_info[""] = "---- Select Reporting ----";
foreach($this->Employee->get_reporter()->result_array() as $row){
$reporting_info[$this->xss_clean($row['person_id'])] = $this->xss_clean($row['first_name']."-".$row['role_name']);
}
$data['reporting_info'] = $reporting_info;
$grade_info[""] = "---- Select Grade ----";
foreach($this->Employee->get_grade()->result_array() as $row){
$grade_info[$this->xss_clean($row['grade_id'])] = $this->xss_clean($row['grade']);
}
$data['grade_info'] = $grade_info;
$this->load->view("employees/form", $data);
}
/*
Inserts/updates an employee
*/
public function save($employee_id = -1)
{
$person_data = array(
'first_name' => $this->input->post('first_name'),
'last_name' => $this->input->post('last_name'),
'gender' => $this->input->post('gender'),
'email' => $this->input->post('email'),
'phone_number' => $this->input->post('phone_number'),
'address_1' => $this->input->post('address_1'),
'address_2' => $this->input->post('address_2'),
'city' => $this->input->post('city'),
'state' => $this->input->post('state'),
'zip' => $this->input->post('zip'),
'country' => $this->input->post('country'),
'comments' => $this->input->post('comments'),
'phone_number_alt' => $this->input->post('phone_number_alt')
);
$grants_data = $this->input->post('grants') != NULL ? $this->input->post('grants') : array();
//Password has been changed OR first time password set
if($this->input->post('password') != '')
{
$employee_data = array(
'username' => $this->input->post('username'),
'password' => md5($this->input->post('password')),
'shop_id' => $this->session->userdata('shop_id')
);
}
else //Password not changed
{
$employee_data = array(
'username' => $this->input->post('username'),
'shop_id' => $this->session->userdata('shop_id'));
}
$employee_data['join_date'] = date('Y-m-d',strtotime($this->input->post('join_date')));
$employee_data['blood_group'] = $this->input->post('blood_group');
$employee_data['role'] = $this->input->post('role');
$employee_data['reporting'] = $this->input->post('reporting');
$employee_data['grade'] = $this->input->post('grade');
$employee_data['branch'] = $this->input->post('branch');
$employee_data['category'] = $this->input->post('category');
$employee_data['dob'] = date('Y-m-d',strtotime($this->input->post('dob')));
$employee_data['family'] = $this->input->post('family');
$employee_data['designation'] = $this->input->post('designation');
$employee_data['pan'] = $this->input->post('pan');
$employee_data['statutory_details'] = $this->input->post('statutory_details');
$employee_data['salary'] = $this->input->post('salary');
$employee_data['created_on'] = date("Y-m-d h:i:s");
if($this->Employee->save_employee($person_data, $employee_data, $grants_data, $employee_id))
{
$person_data = $this->xss_clean($person_data);
$employee_data = $this->xss_clean($employee_data);
//New employee
if($employee_id == -1)
{
echo json_encode(array('success' => TRUE, 'message' => $this->lang->line('employees_successful_adding').' '.
$person_data['first_name'].' '.$person_data['last_name'], 'id' => $employee_data['person_id']));
}
else //Existing employee
{
echo json_encode(array('success' => TRUE, 'message' => $this->lang->line('employees_successful_updating').' '.
$person_data['first_name'].' '.$person_data['last_name'], 'id' => $employee_id));
}
}
else//failure
{
$person_data = $this->xss_clean($person_data);
echo json_encode(array('success' => FALSE, 'message' => $this->lang->line('employees_error_adding_updating').' '.
$person_data['first_name'].' '.$person_data['last_name'], 'id' => -1));
}
}
/*
This deletes employees from the employees table
*/
public function delete()
{
$employees_to_delete = $this->xss_clean($this->input->post('ids'));
if($this->Employee->delete_list($employees_to_delete))
{
echo json_encode(array('success' => TRUE,'message' => $this->lang->line('employees_successful_deleted').' '.
count($employees_to_delete).' '.$this->lang->line('employees_one_or_multiple')));
}
else
{
echo json_encode(array('success' => FALSE,'message' => $this->lang->line('employees_cannot_be_deleted')));
}
}
public function get_row($person_ids)
{
$person_infos = $this->Employee->get_multiple_info(explode(":", $person_ids));
$result = array();
foreach($person_infos->result() as $person_info)
{
$result[$person_info->person_id] = $this->xss_clean(get_employee_data_row($person_info, $this));
}
echo json_encode($result);
}
}
?>