|
Server : LiteSpeed System : Linux terra.hostitbro.com 5.14.0-611.54.3.el9_7.x86_64 #1 SMP PREEMPT_DYNAMIC Thu May 7 16:31:24 EDT 2026 x86_64 User : outerorb ( 1091) PHP Version : 8.1.34 Disable Function : mail Directory : /home2/outerorb/hr.outerorbittech.com/application/controllers/ | |
|
Path: /home2/outerorb/hr.outerorbittech.com/application/controllers/Attendance.php
Size: 14.41 KB
Permissions: 0644
<?php
defined('BASEPATH') or exit('No direct script access allowed');
class Attendance extends CI_Controller
{
function __construct()
{
parent::__construct();
$this->load->database();
$this->load->model('login_model');
$this->load->model('dashboard_model');
$this->load->model('employee_model');
$this->load->model('loan_model');
$this->load->model('settings_model');
$this->load->model('leave_model');
$this->load->model('attendance_model');
$this->load->model('project_model');
$this->load->library('csvimport');
}
public function Attendance()
{
if ($this->session->userdata('user_login_access') != False) {
#$data['employee'] = $this->employee_model->emselect();
$data['attendancelist'] = $this->attendance_model->getAllAttendance();
$this->load->view('backend/attendance', $data);
} else {
redirect(base_url(), 'refresh');
}
}
public function Report()
{
if ($this->session->userdata('user_login_access') != False) {
$emid = $this->session->userdata('user_login_id');
$data['employee'] = $this->employee_model->emselectByID($emid);
$data['basic'] = $this->employee_model->GetBasic($emid);
$data['application'] = $this->attendance_model->emattendanceForsss($emid);
$data['avg'] = $this->attendance_model->getAvgDuration($emid);
// $data['application'] = $this->leave_model->GetallApplication($emid);
$this->load->view('backend/attendance_report', $data);
} else {
redirect(base_url(), 'refresh');
}
}
public function User_Report()
{
if ($this->session->userdata('user_login_access') != False) {
$id = base64_decode($this->input->get('Atte'));
$data['employee'] = $this->employee_model->emselectByID($id);
$data['basic'] = $this->employee_model->GetBasic($id);
$data['application'] = $this->attendance_model->emattendanceForsss($id);
$data['avg'] = $this->attendance_model->getAvgDuration($id);
// $data['application'] = $this->leave_model->GetallApplication($emid);
$this->load->view('backend/attendance_report', $data);
} else {
redirect(base_url(), 'refresh');
}
}
public function Save_Attendance()
{
if ($this->session->userdata('user_login_access') != False) {
$data['employee'] = $this->employee_model->emselect();
$id = $this->input->get('A');
if (!empty($id)) {
$data['attval'] = $this->attendance_model->em_attendanceFor($id);
}
#$data['attendancelist'] = $this->attendance_model->em_attendance();
$this->load->view('backend/add_attendance', $data);
} else {
redirect(base_url(), 'refresh');
}
}
public function Attendance_Report()
{
if ($this->session->userdata('user_login_access') != False) {
$data['employee'] = $this->employee_model->emselect();
$id = $this->input->get('A');
$data['attval'] = $this->attendance_model->em_attendance();
$this->load->view('backend/attendance_allreport', $data);
} else {
redirect(base_url(), 'refresh');
}
}
public function getPINFromID($employee_ID)
{
return $this->attendance_model->getPINFromID($employee_ID);
}
public function Get_attendance_data_for_report()
{
if ($this->session->userdata('user_login_access') != False) {
$date_from = $this->input->post('date_from');
$date_to = $this->input->post('date_to');
$employee_id = $this->input->post('employee_id');
$employee_PIN = $this->getPINFromID($employee_id)->em_code;
$attendance_data = $this->attendance_model->getAttendanceDataByID($employee_PIN, $date_from, $date_to);
$data['attendance'] = $attendance_data;
$attendance_hours = $this->attendance_model->getTotalAttendanceDataByID($employee_PIN, $date_from, $date_to);
if (!empty($attendance_data)) {
$data['name'] = $attendance_data[0]->name;
$data['days'] = count($attendance_data);
$data['hours'] = $attendance_hours;
}
echo json_encode($data);
/*foreach ($attendance_data as $row) {
$row =
"<tr>
<td>$numbering</td>
<td>$row->first_name $row->first_name</td>
<td>$row->atten_date</td>
<td>$row->signin_time</td>
<td>$row->signout_time</td>
<td>$row->working_hour</td>
<td>Type</td>
</tr>";
}*/
} else {
redirect(base_url(), 'refresh');
}
}
public function Add_Attendance()
{
if ($this->session->userdata('user_login_access') != False) {
$id = $this->input->post('id');
$em_id = $this->input->post('emid');
$attdate = $this->input->post('attdate');
$ssout = $this->input->post('ssout');
$signin = $this->input->post('signin');
$signout = $this->input->post('signout');
$place = $this->input->post('place');
$this->load->library('form_validation');
$this->form_validation->set_error_delimiters();
$this->form_validation->set_rules('attdate', 'Date details', 'trim|required|xss_clean');
$this->form_validation->set_rules('emid', 'Employee', 'trim|required|xss_clean');
$old_date = $attdate; // returns Saturday, January 30 10 02:06:34
$old_date_timestamp = strtotime($old_date);
$new_date = date('m/d/Y', $old_date_timestamp);
$old1_date = $ssout; // returns Saturday, January 30 10 02:06:34
$old1_date_timestamp = strtotime($old1_date);
$new1_date = date('m/d/Y', $old1_date_timestamp);
$current_date = date("Y/m/d");
if ($new_date <= $current_date) {
// CHANGING THE DATE FORMAT FOR DB UTILITY
$new_date_changed = date('Y-m-d', strtotime(str_replace('-', '/', $new_date)));
} else {
$new_date_changed = date("Y/m/d");
}
if ($this->form_validation->run() == FALSE) {
echo validation_errors();
#redirect("loan/View");
} else {
$sin = new DateTime($new_date . $signin);
$sout = new DateTime($new1_date . $signout);
$hour = $sin->diff($sout);
$work = $hour->format('%H h %i m');
if (empty($id)) {
$day = date("D", strtotime($new_date_changed));
if ($day == "Fri") {
$duplicate = $this->attendance_model->getDuplicateVal($em_id, $new_date_changed);
//print_r($duplicate);
if (!empty($duplicate)) {
echo "Already Exist";
} else {
$emcode = $this->employee_model->emselectByCode($em_id);
$emid = $emcode->em_id;
$earnval = $this->leave_model->emEarnselectByLeave($emid);
$data = array();
$data = array(
'present_date' => $earnval->present_date + 1,
'hour' => $earnval->hour + 480,
'status' => '1'
);
$success = $this->leave_model->UpdteEarnValue($emid, $data);
$data = array();
$data = array(
'emp_id' => $em_id,
'atten_date' => $new_date_changed,
'signin_time' => $signin,
'signout_time' => $signout,
'working_hour' => $work,
'place' => $place,
'status' => 'E'
);
$success = $this->attendance_model->Add_AttendanceData($data);
echo "Successfully Updated!";
}
} elseif ($day != "Fri") {
$holiday = $this->leave_model->get_holiday_between_dates($new_date_changed);
if ($holiday) {
$duplicate = $this->attendance_model->getDuplicateVal($em_id, $new_date_changed);
//print_r($duplicate);
if (!empty($duplicate)) {
echo "Already Exist";
} else {
$emcode = $this->employee_model->emselectByCode($em_id);
$emid = $emcode->em_id;
$earnval = $this->leave_model->emEarnselectByLeave($emid);
$data = array();
$data = array(
'present_date' => $earnval->present_date + 1,
'hour' => $earnval->hour + 480,
'status' => '1'
);
$success = $this->leave_model->UpdteEarnValue($emid, $data);
$data = array();
$data = array(
'emp_id' => $em_id,
'atten_date' => $new_date_changed,
'signin_time' => $signin,
'signout_time' => $signout,
'working_hour' => $work,
'place' => $place,
'status' => 'E'
);
$this->attendance_model->Add_AttendanceData($data);
echo "Successfully Added";
}
} else {
$duplicate = $this->attendance_model->getDuplicateVal($em_id, $new_date_changed);
//print_r($duplicate);
if (!empty($duplicate)) {
echo "Already Exist";
} else {
//$date = date('Y-m-d', $i);
$data = array();
$data = array(
'emp_id' => $em_id,
'atten_date' => $new_date_changed,
'signin_time' => $signin,
'signout_time' => $signout,
'working_hour' => $work,
'place' => $place,
'status' => 'A'
);
$this->attendance_model->Add_AttendanceData($data);
echo "Successfully Added.";
}
}
}
} else {
$data = array();
$data = array(
'signin_time' => $signin,
'signout_time' => $signout,
'working_hour' => $work,
'place' => $place,
'status' => 'A'
);
$this->attendance_model->Update_AttendanceData($id, $data);
echo "Successfully Updated.";
}
}
} else {
// redirect(base_url(), 'refresh');
}
}
function import()
{
$this->load->library('csvimport');
$file_data = $this->csvimport->get_array($_FILES["csv_file"]["tmp_name"]);
//echo $file_data;
foreach ($file_data as $row) {
if ($row["Check-in at"] > '0:00:00') {
$date = date('Y-m-d', strtotime($row["Date"]));
$duplicate = $this->attendance_model->getDuplicateVal($row["Employee No"], $date);
//print_r($duplicate);
if (!empty($duplicate)) {
$data = array();
$data = array(
'signin_time' => $row["Check-in at"],
'signout_time' => $row["Check-out at"],
'working_hour' => $row["Work Duration"],
'absence' => $row["Absence Duration"],
'overtime' => $row["Overtime Duration"],
'status' => 'A',
'place' => 'office'
);
$this->attendance_model->bulk_Update($row["Employee No"], $date, $data);
} else {
$data = array();
$data = array(
'emp_id' => $row["Employee No"],
'atten_date' => date('Y-m-d', strtotime($row["Date"])),
'signin_time' => $row["Check-in at"],
'signout_time' => $row["Check-out at"],
'working_hour' => $row["Work Duration"],
'absence' => $row["Absence Duration"],
'overtime' => $row["Overtime Duration"],
'status' => 'A',
'place' => 'office'
);
//echo count($data);
$this->attendance_model->Add_AttendanceData($data);
}
} else {
}
}
echo "Successfully Updated";
}
}