File: /home/cafsindia/allyindian_com/sbltt/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;
$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;
$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;
$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;
$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'),
'land_line' => $this->input->post('land_line')
);
$grants_data = $this->input->post('grants') != NULL ? $this->input->post('grants') : array();
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{
$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['respons'] = $this->input->post('respons');
$employee_data['branch'] = $this->input->post('branch');
$employee_data['dob'] = date('Y-m-d',strtotime($this->input->post('dob')));
$employee_data['salary'] = $this->input->post('salary');
$employee_data['license_number'] = $this->input->post('license_number');
$employee_data['license_expiry'] = $this->input->post('license_expiry');
$employee_data['badge_number'] = $this->input->post('badge_number');
$employee_data['bank_name'] = $this->input->post('bank_name');
$employee_data['acc_no'] = $this->input->post('acc_no');
$employee_data['bank_branch'] = $this->input->post('bank_branch');
$employee_data['ifsc_code'] = $this->input->post('ifsc_code');
$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);
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{
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{
$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);
}
}
?>