siddharth_application/application/controllers/user.php
venbatechnologies c6bddba4d6 dashboard issues
2018-01-11 11:19:16 +05:30

1803 lines
53 KiB
PHP
Executable File

<?php if(!defined('BASEPATH')) exit('No direct script access allowed');
require APPPATH . '/libraries/BaseController.php';
/**
* Class : User (UserController)
* User Class to control all user related operations.
* @author : Kishor Mali
* @version : 1.1
* @since : 15 November 2016
*/
class user extends BaseController
{
/**
* This is default constructor of the class
*/
public function __construct()
{
parent::__construct();
$this->load->model('user_model');
$this->load->model('dahsboard_Model');
$this->load->library('form_validation');
$this->isLoggedIn();
}
/**
* This function used to load the first screen of the user
*/
public function index()
{
$this->global['pageTitle'] = 'Siddharth : Dashboard';
$this->load->model('employeedetails_model');
$this->load->model('dahsboard_Model');
$data['EmpCount'] = $this->employeedetails_model->getEmployeeCount();
$data['totalpurchaseorder']=$this->dahsboard_Model->totalpurchaseorder();
//print_r( $data['totalpurchaseorder']);
$data['totalordervalue']=$this->dahsboard_Model->totalordervalue();
$data['pendingpo']=$this->dahsboard_Model->pendingpo();
// $data['totalserviceamount']=$this->dahsboard_Model->totalserviceamount();
// $data['totalcapitalamount']=$this->dahsboard_Model->totalcapitalamount();
// $data['totalimportamount']=$this->dahsboard_Model->totalimportamount();
// $data['totalrevenueamount']=$this->dahsboard_Model->totalrevenueamount();
// $data['totalservicepo']=$this->dahsboard_Model->totalservicepo();
// $data['totalrevenuepo']=$this->dahsboard_Model->totalrevenuepo();
$data['totalimportpo']=$this->dahsboard_Model->totalimportpo();
//$data['totalcapitalpo']=$this->dahsboard_Model->totalcapitalpo();
$data['details']=$this->dahsboard_Model->reqdetail();
$data['pending_details']=$this->dahsboard_Model->req_pending();
// $data['list']=$this->dahsboard_Model->req_list();
$data['serviceprogress']=$this->dahsboard_Model->serviceprogress();
$data['revenueprogress']=$this->dahsboard_Model->revenueprogress();
$data['importprogress']=$this->dahsboard_Model->importprogress();
$data['capitalprogress']=$this->dahsboard_Model->capitalprogress();
//month-wise area chart
$data['getTotalServicePoCount'] = $this->dahsboard_Model->getTotalServicePoCount();
$data['getTotalimportPoCount'] = $this->dahsboard_Model->getTotalimportPoCount();
$data['getTotalcapitalPoCount'] = $this->dahsboard_Model->getTotalcapitalPoCount();
$data['getTotalrevenuePoCount'] = $this->dahsboard_Model->getTotalrevenuePoCount();
//dashboard pie chart
$data['importbudgt'] = $this->dahsboard_Model->importbudgt();
$data['servicebudgt'] = $this->dahsboard_Model->servicebudgt();
$data['revenuebudgt'] = $this->dahsboard_Model->revenuebudgt();
$data['capitalbud'] = $this->dahsboard_Model->capitalbud();
$data['typebal'] = $this->dahsboard_Model->typebal();
/* HR DASHBOARD Controller Start*/
$data['totemp'] = $this->dahsboard_Model->totemp();
$data['totloan'] = $this->dahsboard_Model->totloan();
$data['totpay'] = $this->dahsboard_Model->totpay();
$data['totrec'] = $this->dahsboard_Model->totrec();
$data['emplist'] = $this->dahsboard_Model->emplist();
$date = date('Y-m');
//echo $date; die;
$date = $date . '-01';
$dat = date('d');
// $hoilday = 0;
// $month = date('m');
// //echo $month;
// $year = date('Y');
// // echo $year;
// $hoilday= $year.'-'.$month .'-01';
// // echo $hoilday;
// $holiDaySalaryMonth = $this->dahsboard_Model->holiDaySalaryMonth($month,$year);
// //print_r( $holiDaySalaryMonth);
// foreach ($holiDaySalaryMonth as $holidays) {
// //print_r($holidays);
// $holiday [] = date('j', strtotime($holidays->H_Date));
// }
//print_r($holiday);
//$month=date('m')
// $currentdaydates =date('d');
$working = array();
$overtime = array();
//$holid = array();
for ($i = 1; $i <= $dat; $i++) //echo $dat; die;
{
$Working [] = 'WH' . $i;
$overtime [] = 'OT' . $i;
$CUR_month = date('t');
// echo $CUR_month; die;
// foreach ($holiday as $value)
// {
// //$holid []= 'WH'.$value;
// if($i==$value) {
// $holid []=$value;
// }
// }
}
//print_r($WH);die;
$WH = implode(",", $Working);
$OT = implode(",", $overtime);
$salarycurrentdate = array();
$toDayEmployee = $this->dahsboard_Model->dayAllPersentEmpSalary($WH, $OT, $date);
$totalSalary = 0;
$working = explode(",", $WH);
$overtime = explode(",", $OT);
foreach ($toDayEmployee as $value) {
$values = 0;
foreach ($working as $work) {
// foreach ($overtime as $extra) {
if ($value[$work] != 0 || $value['OT' . substr($work, 2)] != 0) {
$totalothour = $value['OT' . substr($work, 2)];
//echo $totalothour;
$values = 1;
//print_r($values); die;
$Empid = $value['EmpID'];
//echo $Empid;
$totalEmployeePersent = $this->dahsboard_Model->persentEmployeeDetails($Empid);
if(!empty($totalEmployeePersent)) {
$HRA_Amount = $totalEmployeePersent[0]->HRA_Amount;
$Basic_Pay = $totalEmployeePersent[0]->Basic_Pay;
$totalsalary = $totalEmployeePersent[0]->TotalSalary;
$dayFoodAmt = $totalEmployeePersent[0]->Food_Allowances;
//$allowances =$totalEmployeePersent[0]->Allowances;
// $Allowances = $allowances * $values;
$Food_Allowances = $dayFoodAmt * $values;
$daySalary = $Basic_Pay / $CUR_month;
/**per day salary working hour**/
//echo $daySalary.'<br/>';
$dayHra = $HRA_Amount / $CUR_month;
/** per day hra amount **/
//echo $dayHra.'<br/>';
$onehoursSalary = ($daySalary + $dayHra) / 8;
/**one hour salay ot calculation**/
if ($totalothour != 0) /** if ot not equal zero **/ {
$totSalayOT = $totalothour * $onehoursSalary;
} else {
$totSalayOT = 0;
}
$currentDaySalary = $daySalary * $values;
/** current day salary working days calculation**/
$currentDayHra = $dayHra * $values;
/** total working days hra calculations**/
// echo $currentDayHra.'<br/>';
$currentDatePF = $currentDaySalary + $currentDayHra + $totSalayOT;
/** current date pf calculation**/
if ($totalsalary <= 20000) {
$esiAmount = $currentDatePF * 1.75 / 100;
/** esiamount not elgiable for 20000 **/
} else {
$esiAmount = 0;
}
$pfAmount = $currentDaySalary * 12 / 100;
/** pf amount per day**/
//echo $totalothour;die;
$salaryInCurrentdays = $currentDaySalary + $totSalayOT + $currentDayHra + $Food_Allowances ;
$salaryInCurrentday = $salaryInCurrentdays -($esiAmount+$pfAmount);
$totalSalarys = $totalSalary + $salaryInCurrentday;
$totalSalary = round($totalSalarys);
// $salarycurrentdate[] = $salaryInCurrentday;;
// echo 'totalSalary';
}
}
}
}
$data['totalSalary'] = $totalSalary;
// print_r( 'totalSalary');die;
$this->loadViews("dashboard", $this->global, $data, NULL);
}
/*date click on day salary,absent name, total absent display*/
function dateFunctionChangeVales()
{
$date = $this->input->post("id");
$dates = date('Y-m');
$date = $dates . '-01';
// // echo $date;
// $dat = date('d', strtotime("-1 days"));
//echo $date;
$WH = 'WH' . date('j', strtotime("-1 days"));
//echo($WH);
$yesterday = $this->dahsboard_Model->attyesterday($WH, $date);
//print_r($yesterday);die;
$values = 0;
foreach ($yesterday as $weekda => $value) {
if ($value[$WH] == 0) {
$values++;
}
}
// echo $values;
$data['values'] = $values;
$date = $this->input->post("id");
// echo $date;
$daydate = date('Y-m',strtotime($date));
//echo $date; die;
$daydate = $daydate . '-01';
//$dat = date('d');
// echo $daydate; echo "";
$WH = 'WH' . date('j',strtotime($date));
// echo $WH;
$yesterday = $this->dahsboard_Model->attyesterday($WH, $daydate);
// print_r($yesterday);
//$absEmp =array($absEmp);
$values = 0;
$absEmp = array();
//echo $value; die;
foreach ($yesterday as $weekda => $value) {
// echo $value[$WH];
if ($value[$WH] == 0) {
$values++;
$absendId = $value['EmpID'];
$absendName = $value['FirstName'];
$absEmp [] = $absendId . "-" . $absendName; //absend empid and name list
}
}
//print_r($absentName);die;
$data['today'] = $values;
$data['absname'] = $absEmp;
$OT = 'OT' . date('j',strtotime($date));
$CUR_month = date('t');
//echo $CUR_month;
//echo $daydate;
$toDayEmployee = $this->dahsboard_Model->dayAllPersentEmpSalary($WH, $OT, $daydate);
//$EmpID = $toDayEmployee[0]->EmpID;
//print_r($toDayEmployee); die;
$EmpID = 0;
$employeeSalary = 0;
foreach ($toDayEmployee as $value) {
$values = 0;
$totalothour = 0;
if ($value[$WH] != 0) {
$totalothour = $value[$OT];
//echo $totalothour;die;
$values = 1;
//print_r($values); die;
$Empid = $value['EmpID'];
//print_r($value['EmpID']);
$totalEmployeePersent = $this->dahsboard_Model->persentEmployeeDetails($Empid);
// echo $Empid;
// print_r($totalEmployeePersent);
if(!empty($totalEmployeePersent)) {
$HRA_Amount = $totalEmployeePersent[0]->HRA_Amount;
$Basic_Pay = $totalEmployeePersent[0]->Basic_Pay;
$totalsalary = $totalEmployeePersent[0]->TotalSalary;
$dayFoodAmt = $totalEmployeePersent[0]->Food_Allowances;
//$allowances =$totalEmployeePersent[0]->Allowances;
//echo "hra amount";print_r(array($HRA_Amount,$Basic_Pay,$totalsalary));
//$Allowances = $allowances * $values;
$Food_Allowances = $dayFoodAmt * $values;
$daySalary = $Basic_Pay / $CUR_month;
/**per day salary working hour**/
//echo $daySalary.'<br/>';
$dayHra = $HRA_Amount / $CUR_month;
/** per day hra amount **/
//echo $dayHra.'<br/>';
$onehoursSalary = ($daySalary + $dayHra) / 8;
/**one hour salay ot calculation**/
if ($totalothour != 0) /** if ot not equal zero **/ {
$totSalayOT = $totalothour * $onehoursSalary;
} else {
$totSalayOT = 0;
}
$currentDaySalary = $daySalary * $values;
/** current day salary working days calculation**/
$currentDayHra = $dayHra * $values;
/** total working days hra calculations**/
// echo $currentDayHra.'<br/>';
$currentDatePF = $currentDaySalary + $currentDayHra + $totSalayOT;
/** current date pf calculation**/
if ($totalsalary <= 20000) {
$esiAmount = $currentDatePF * 1.75 / 100;
/** esiamount not elgiable for 20000 **/
} else {
$esiAmount = 0;
}
$pfAmount = $currentDaySalary * 12 / 100;
/** pf amount per day**/
//echo $totalothour;die;
$salaryInCurrentdays = $currentDaySalary + $totSalayOT + $currentDayHra + $Food_Allowances;
$salaryInCurrentday = $salaryInCurrentdays - ($esiAmount + $pfAmount);
$employeeSalary += round($salaryInCurrentday);
}
// echo $employeeSalary;
}
}
//$salaryInCurrentday++;
$data['employeeSalary'] = $employeeSalary;
// }
echo json_encode($data);
}
/*this function uesd to finance startdate */
public function getFinancialStartDate()
{
$CURMONTH = date('n');
$CURYEAR = date('Y');
$FINYEAR = 0;
if ($CURMONTH >= 4)
{
$FINYEAR = $CURYEAR;
} else
{
$FINYEAR = $CURYEAR - 1;
}
$dateInString = $FINYEAR . '-4-1';
$result = date_create($dateInString);
// print_r($result);
return $result;
}
/*this function uesd to finance EndDate */
public function getFinancialEndDate()
{
$CURMONTH = date('n');
$CURYEAR = date('Y');
$FINYEAR = 0;
if ($CURMONTH < 4)
{
$FINYEAR = $CURYEAR;
} else
{
$FINYEAR = $CURYEAR + 1;
}
$dateInString = $FINYEAR . '-3-31';
$result = date_create($dateInString);
// print_r($result);
return $result;
}
/*this function used to speedometer month emp performances display*/
function monthattendance($empID ='')
{
$CUR_date = date('m');
//echo $CUR_date;
$date = $this->input->post('datepick');
// echo $date;die;
$per_month = date('m',strtotime($date));
if($per_month > $CUR_date and empty($empID))
{
$noofdays=0;
$workdays=0;
$EmpID = $this->input->post('id');
$date = $this->input->post('datepick');
//echo $date;
$daydate = date('Y-m',strtotime($date));
$dates =$daydate . '-01';
$monthabs = $this->dahsboard_Model->attendance($EmpID, $dates);
// print_r($monthabs);
$TotalNoofDays = $monthabs[0]->NoofDays;
$TotalWorkingDays = $monthabs[0]->Days_Worked;
// print_r($TotalNoofDays);die;
$noofdays =$TotalNoofDays;
$workdays =$TotalWorkingDays;
$performances = round(($workdays / $noofdays) * 100);
$month['CUR_month']=$noofdays;
$month['values']=$workdays;
$month['present_percentage']= $performances;
}
else
{
$date = date('Y-m');
//echo $date;
$dates = $date . '-01';
//$EmpID = '';
//if(empty($empID))
// {
$EmpID = $this->input->post('id');
//}
//else
// {
//$EmpID = $empID;
//}
// echo $EmpID;die;
$monthabs = $this->dahsboard_Model->attendance($EmpID, $dates);
$persent_month = date('t');//current month of days 31
$values = array();
$otvalues = array();
$weekdays = array();
$otHours = array();
$date = date('j');//current month current date
$CURDATE =date('d');//current month current date
$CUR_month = date('t'); //current month of days 31
$CURYEAR = date('Y');
$CURMONTH = date('m');
$datejoin = $this->dahsboard_Model->joindate($EmpID);
// print_r($datejoin);die;
$DateofJoiningInString = $datejoin[0]->DateofJoining;
$DateofJoining = date_create($DateofJoiningInString);
$doj_month = date_format($DateofJoining, "n");
$doj_year = date_format($DateofJoining, "Y");
$doj_day = date_format($DateofJoining, "j");
//echo $doj_day;
for ($i = 1; $i <= $persent_month; $i++)
{
$weekdays[] = 'WH' . $i;
$otHours[] = 'OT' . $i;
}
$totalwhhours=0;
foreach ($monthabs as $weekda)
{
//print_r($weekda);
foreach ($weekda as $key => $value)
{
//print_r($key);
foreach ($weekdays as $weeks)
{
if ($weeks == $key)
{
if ($value != 0)
{
// echo $value;
$values[] = $value;
// $totalwhhours=$values;
//echo $values;
}
//echo $values;
}
}
foreach ($otHours as $ot)
{
if ($ot == $key)
{
if ($value != 0)
{
$otvalues [] = $value;
}
}
}
}
}
$totalwhhours = array_sum($values);
//echo $totalwhhours;
$totalothour = array_sum($otvalues);
//$totalwhhour = sizeof($values);
$totalwhhour = $totalwhhours/8;
//echo $totalwhhour;
if ($CURMONTH == $doj_month && $CURYEAR == $doj_year)
{
//echo $doj_day;
$month['CUR_month'] = $CURDATE - $doj_day + 1;
//print_r($month);
}
else
{
$month['CUR_month'] = $date;
}
if ($totalwhhour != 0)
{
$year = date('Y');
$current_month = date('m');
$month['values'] = $totalwhhour;
//$data['salaryInCurrentday'] = round($salaryInCurrentday);
$month['present_percentage'] = round(($totalwhhour / $month['CUR_month']) * 100);
}
else {
$month['values'] = 0;
//$data['salaryInCurrentday'] = 0;
$month['present_percentage'] = 0;
}
}
if(empty($empID)){
echo json_encode($month);
}
else{
return $month;
}
}
/*Permission Month Reports*/
function monthattendance1($empID ='')
{
$date = date('Y-m');
//echo $date;
$dates = $date . '-01';
$EmpID = '';
if(empty($empID)){
$EmpID = $this->input->post('id');
}
else
{
$EmpID = $empID;
}
// echo $EmpID;die;
$monthabs = $this->dahsboard_Model->attendance($EmpID, $dates);
$persent_month = date('t');//current month of days 31
$values = array();
$otvalues = array();
$weekdays = array();
$otHours = array();
$date = date('j');//current month current date
$CURDATE =date('d');//current month current date
$CUR_month = date('t'); //current month of days 31
$CURYEAR = date('Y');
$CURMONTH = date('m');
$datejoin = $this->dahsboard_Model->joindate($EmpID);
$DateofJoiningInString = $datejoin[0]->DateofJoining;
$DateofJoining = date_create($DateofJoiningInString);
$doj_month = date_format($DateofJoining, "n");
$doj_year = date_format($DateofJoining, "Y");
$doj_day = date_format($DateofJoining, "j");
//echo $doj_day;
for ($i = 1; $i <= $persent_month; $i++)
{
$weekdays[] = 'WH' . $i;
$otHours[] = 'OT' . $i;
}
foreach ($monthabs as $weekda)
{
//print_r($weekda);
foreach ($weekda as $key => $value)
{
//print_r($key);
foreach ($weekdays as $weeks)
{
if ($weeks == $key)
{
//print_r($key);
if ($value != 0)
{
//echo $value;
$values[] = $value;
}
//echo $values;
}
}
foreach ($otHours as $ot)
{
if ($ot == $key)
{
if ($value != 0)
{
$otvalues [] = $value;
}
}
}
}
}
$totalothour = array_sum($otvalues);
$totalwhhours = array_sum($values);
$totalwhhour = $totalwhhours/8;
//echo $totalwhhour;
if ($CURMONTH == $doj_month && $CURYEAR == $doj_year)
{
//echo $doj_day;
$month['CUR_month'] = $CURDATE - $doj_day + 1;
//print_r($month);
}
else
{
$month['CUR_month'] = $date;
}
if ($totalwhhour != 0)
{
$year = date('Y');
$current_month = date('m');
$month['values'] = $totalwhhour;
//$data['salaryInCurrentday'] = round($salaryInCurrentday);
$month['present_percentage'] = round(($totalwhhour / $month['CUR_month']) * 100);
}
else {
$month['values'] = 0;
//$data['salaryInCurrentday'] = 0;
$month['present_percentage'] = 0;
}
if(empty($empID)){
echo json_encode($month);
}
else{
return $month;
}
}
/*monthperformances report*/
function monthattendance2($empID ='',$date)
{
// echo $date;
$CUR_date = date('m');
//echo $CUR_date;
// $date = $this->input->post('datepick');
// echo $date;die;
$per_month = date('m',strtotime($date));
if($per_month > $CUR_date and empty($empID))
{
$noofdays=0;
$workdays=0;
$EmpID = $this->input->post('id');
//$date = $this->input->post('datepick');
//echo $date;
$daydate = date('Y-m',strtotime($date));
$dates =$daydate . '-01';
$monthabs = $this->dahsboard_Model->attendance($EmpID, $dates);
// print_r($monthabs);
$TotalNoofDays = $monthabs[0]->NoofDays;
$TotalWorkingDays = $monthabs[0]->Days_Worked;
// print_r($TotalNoofDays);die;
$noofdays =$TotalNoofDays;
$workdays =$TotalWorkingDays;
$performances = round(($workdays / $noofdays) * 100);
$month['CUR_month']=$noofdays;
$month['values']=$workdays;
$month['present_percentage']= $performances;
}
else
{
$date = date('Y-m');
//echo $date;
$dates = $date . '-01';
//$EmpID = '';
//if(empty($empID))
// {
$EmpID = $this->input->post('id');
//}
//else
// {
//$EmpID = $empID;
//}
// echo $EmpID;die;
$monthabs = $this->dahsboard_Model->attendance($EmpID, $dates);
$persent_month = date('t');//current month of days 31
$values = array();
$otvalues = array();
$weekdays = array();
$otHours = array();
$date = date('j');//current month current date
$CURDATE =date('d');//current month current date
$CUR_month = date('t'); //current month of days 31
$CURYEAR = date('Y');
$CURMONTH = date('m');
$datejoin = $this->dahsboard_Model->joindate($EmpID);
// print_r($datejoin);die;
$DateofJoiningInString = $datejoin[0]->DateofJoining;
$DateofJoining = date_create($DateofJoiningInString);
$doj_month = date_format($DateofJoining, "n");
$doj_year = date_format($DateofJoining, "Y");
$doj_day = date_format($DateofJoining, "j");
//echo $doj_day;
for ($i = 1; $i <= $persent_month; $i++)
{
$weekdays[] = 'WH' . $i;
$otHours[] = 'OT' . $i;
}
foreach ($monthabs as $weekda)
{
//print_r($weekda);
foreach ($weekda as $key => $value)
{
//print_r($key);
foreach ($weekdays as $weeks)
{
if ($weeks == $key)
{
//print_r($key);
if ($value != 0)
{
//echo $value;
$values[] = $value;
}
//echo $values;
}
}
foreach ($otHours as $ot)
{
if ($ot == $key)
{
if ($value != 0)
{
$otvalues [] = $value;
}
}
}
}
}
$totalothour = array_sum($otvalues);
$totalwhhour = sizeof($values);
//echo $totalwhhour;
if ($CURMONTH == $doj_month && $CURYEAR == $doj_year)
{
//echo $doj_day;
$month['CUR_month'] = $CURDATE - $doj_day + 1;
//print_r($month);
}
else
{
$month['CUR_month'] = $date;
}
if ($totalwhhour != 0)
{
$year = date('Y');
$current_month = date('m');
$month['values'] = $totalwhhour;
//$data['salaryInCurrentday'] = round($salaryInCurrentday);
$month['present_percentage'] = round(($totalwhhour / $month['CUR_month']) * 100);
}
else {
$month['values'] = 0;
//$data['salaryInCurrentday'] = 0;
$month['present_percentage'] = 0;
}
}
if(empty($empID)){
echo json_encode($month);
}
else{
return $month;
} }
/*this function used to speedometer year emp performances display*/
function attendanceyear($empID ='')
{
$CURMONTH = date('m');
$CURDATE = date('d');
$CURYEAR = date('Y');
$EmpID = '';
if(empty($empID)){
$EmpID = $this->input->post('id');
}
else
{
$EmpID = $empID;
}
$day = array();
$datejoin = $this->dahsboard_Model->joindate($EmpID);
$DateofJoiningInString = $datejoin[0]->DateofJoining;
$DateofJoining = date_create($DateofJoiningInString);
// print_r($DateofJoining);
$doj_month = date_format($DateofJoining, "n");
$doj_year = date_format($DateofJoining, "Y");
$doj_day = date_format($DateofJoining, "j");
$finStart = $this->getFinancialStartDate();
$finEnd = $this->getFinancialEndDate();
$JoinedMonth = date_format($DateofJoining, "n");
// print_r($finStart);print_r($finEnd);
// print $JoinedMonth;
if ($DateofJoining >= $finStart && $DateofJoining <= $finEnd)
{
$JoinedMonthAttendance = $this->dahsboard_Model->getAllAttendances($EmpID,$JoinedMonth);
$joinedMonthDaysCount = cal_days_in_month(CAL_GREGORIAN, $doj_month, $doj_year);
if ($CURMONTH == $doj_month && $CURYEAR == $doj_year)
{
$joinedMonthWorkingDayCount = $CURDATE - $doj_day +1;
}
else
{
$joinedMonthWorkingDayCount = $joinedMonthDaysCount - $doj_day;
}
$joinedMonthDays = 0;
for ($j = $doj_day; $j <= $joinedMonthDaysCount; $j++)
{
$weekdays[] = 'WH' . $j;
}
foreach ($JoinedMonthAttendance as $day)
{
foreach ($day as $key => $value)
{
foreach ($weekdays as $weeks)
{
if ($weeks == $key)
{
if ($value != 0)
{
//echo $value;
$joinedMonthDays++;
}
}
}
}
}
// echo $joinedMonthWorkingDayCount;die;
$result = $this->dahsboard_Model->attendanceyear($EmpID, $JoinedMonth + 1);
// print_r($result); die;
$yearabs = $this->dahsboard_Model->getAllAttendance($EmpID, $CURMONTH);
$TotalNoofDays = $result[0]->TotalWorkingDays;
$DaysWorked = $result[0]->DaysWorked;
//echo $TotalNoofDays;
// echo $DaysWorked;die;
$values = 0;
$weekdays = array();
$date = date('d');
$Work = array_sum($weekdays);
for ($j = 1; $j <= $date; $j++)
{
$weekdays[] = 'WH' . $j;
}
foreach ($yearabs as $day)
{
foreach ($day as $key => $value)
{
foreach ($weekdays as $weeks)
{
if ($weeks == $key)
{
if ($value != 0)
{
$values++;
}
}
}
}
}
$DaysWorked = 0;
if ($CURMONTH == $doj_month && $CURYEAR == $doj_year)
{
$TotalNoofDays = $TotalNoofDays + $joinedMonthWorkingDayCount;
$DaysWorked = $joinedMonthDays;
}
else
{
$TotalNoofDays = $TotalNoofDays + $CURDATE + $joinedMonthWorkingDayCount;
$DaysWorked = $DaysWorked + $joinedMonthDays + $values;
}
$final_res = round(($DaysWorked / $TotalNoofDays) * 100);
// echo "------";
//echo $final_res;exit();
$data['workeds'] = $DaysWorked;
$data['yeardata'] = $final_res;
$data['totaldays'] = $TotalNoofDays;
}
else
{
$result = $this->dahsboard_Model->attendanceyear($EmpID, 4);
$yearabs = $this->dahsboard_Model->getAllAttendance($EmpID, $CURMONTH);
$TotalNoofDays = $result[0]->TotalWorkingDays;
$DaysWorked = $result[0]->DaysWorked;
$values = 0;
$weekdays = array();
$date = date('d');
$Work = array_sum($weekdays);
for ($j = 1; $j <= $date; $j++)
{
$weekdays[] = 'WH' . $j;
}
foreach ($yearabs as $day)
{
foreach ($day as $key => $value)
{
foreach ($weekdays as $weeks)
{
if ($weeks == $key)
{
if ($value != 0)
{
$values++;
}
}
}
}
}
$TotalNoofDays = $TotalNoofDays + $CURDATE;
$DaysWorked = $DaysWorked + $values;
$final_res = round(($DaysWorked / $TotalNoofDays) * 100);
// echo "------";
//echo $final_res;exit();
$data['workeds'] = $DaysWorked;
$data['yeardata'] = $final_res;
$data['totaldays'] = $TotalNoofDays;
}
if(empty($empID)){
echo json_encode($data);
}
else{
return $data;
}
}
/*in this function used to report perfomance*/
function empPerFormation()
{
// $this->global['pageTitle'] = 'Siddharth : Reports';
//echo "welcome";
$EmpLists =$this->dahsboard_Model->getEmployee();
//print_r($EmpLists);die;
$index = 0;
$data['emp_performence_details'] = array();
foreach ($EmpLists as $Emp) {
$EmpID = $Emp->EmpID;
$FirstName =$Emp->FirstName;
$LastName =$Emp->LastName;
$IsActive =$Emp->IsActive;
//echo $EmpID;
$currentmonthemp = $this-> monthattendance1($EmpID);
$fineyearemp = $this->attendanceyear($EmpID);
$a = array($EmpID,$FirstName,$LastName,$IsActive,$currentmonthemp,$fineyearemp);
$data['emp_performence_details'][$index]= $a;
//pre($data[$EmpID]['month']);die;
$index++;
}
//print_r($data['emp_performence_details']);die;
$this->loadViews("empperform", $this->global, $data, NULL);
}
/*Performeans report datepicker click on partculars month reports display*/
function monthwiserepoarts()
{
echo "hi";
$EmpLists =$this->dahsboard_Model->getEmployee();
$datepicker=$this->input->post('month');
// print_r (explode("-",$datepicker));
$dates = date("Y-m",strtotime($datepicker));
$date = $dates . '-01';
//echo $dates;
//print_r($EmpLists);die;
//echo $date;
$index = 0;
$data['emp_performence_details'] = array();
foreach ($EmpLists as $Emp) {
$EmpID = $Emp->EmpID;
$FirstName =$Emp->FirstName;
$LastName =$Emp->LastName;
$IsActive =$Emp->IsActive;
//echo $EmpID;
$currentmonthemp = $this-> monthattendance2($EmpID,$date);
$fineyearemp = $this->attendanceyear2($EmpID,$date);
$a = array($EmpID,$FirstName,$LastName,$IsActive,$currentmonthemp,$fineyearemp);
$data['emp_performence_details'][$index]= $a;
//pre($data[$EmpID]['month']);die;
$index++;
}
//print_r($data['emp_performence_details']);die;
$this->loadViews("empperform", $this->global, $data, NULL);
}
/*this function used dashboard to month and year of the date wise cilck on emp perform in speedometer */
function empPerFormancesDateWise()
{
$date = $this->input->post("id");
// echo $date; die;
$daydate = date('Y-m',strtotime($date));// function month and year display(select)
//echo $daydate; die;
// $daydate = $daydate . '-01';
$EmpLists =$this->dahsboard_Model->getEmployee(); //employee details display
//print_r($EmpLists);die;
$index = 0;
$data['emp_performence_details'] = array();
foreach ($EmpLists as $Emp) {
$EmpID = $Emp->EmpID;
$FirstName =$Emp->FirstName;
$LastName =$Emp->LastName;
$IsActive =$Emp->IsActive;
//echo $EmpID;
$currentmonthemp = $this-> monthattendance($EmpID);
//print_r($currentmonthemp);die;
$fineyearemp = $this->attendanceyear($EmpID);
$a = array($EmpID,$FirstName,$LastName,$IsActive,$currentmonthemp,$fineyearemp);
$data['emp_performence_details'][$index]= $a;
//pre($data[$EmpID]['month']);die;
$index++;
}
//print_r($data['emp_performence_details']);die;
echo json_encode($data);
}
function attendanceyear2($empID ='',$date)
{
$CUR_dates = date('Y-04');
$CUR_date = $CUR_dates .'-01';
$date = $this->input->post('datepick');
// echo $date;die;
$per_months = date('Y-03',strtotime($date));
$per_month = $per_months.'-01';
if($per_month > $CUR_date and empty($empID))
{
$noofdays=0;
$workdays=0;
// $EmpID = $this->input->post('id');
// $date = $this->input->post('datepick');
//echo $date;
$daydate = date('Y-m',strtotime($date));
$dates =$daydate . '-01';
$monthabs = $this->dahsboard_Model->attendance($EmpID, $dates);
// print_r($monthabs);
foreach ($monthabs as $days)
{
$TotalNoofDays = $days->NoofDays;
$TotalWorkingDays = $days->Days_Worked;
}
// print_r($TotalNoofDays);die;
$noofdays =$TotalNoofDays;
$workdays =$TotalWorkingDays;
$performances = round(($workdays / $noofdays) * 100);
$month['CUR_month']=$noofdays;
$month['values']=$workdays;
$month['present_percentage']= $performances;
}
$CURMONTH = date('m');
$CURDATE = date('d');
$CURYEAR = date('Y');
$EmpID = '';
if(empty($empID)){
$EmpID = $this->input->post('id');
}
else
{
$EmpID = $empID;
}
$day = array();
$datejoin = $this->dahsboard_Model->joindate($EmpID);
$DateofJoiningInString = $datejoin[0]->DateofJoining;
$DateofJoining = date_create($DateofJoiningInString);
// print_r($DateofJoining);
$doj_month = date_format($DateofJoining, "n");
$doj_year = date_format($DateofJoining, "Y");
$doj_day = date_format($DateofJoining, "j");
$finStart = $this->getFinancialStartDate();
$finEnd = $this->getFinancialEndDate();
$JoinedMonth = date_format($DateofJoining, "n");
// print_r($finStart);print_r($finEnd);
// print $JoinedMonth;
if ($DateofJoining >= $finStart && $DateofJoining <= $finEnd)
{
$JoinedMonthAttendance = $this->dahsboard_Model->getAllAttendances($EmpID,$JoinedMonth);
$joinedMonthDaysCount = cal_days_in_month(CAL_GREGORIAN, $doj_month, $doj_year);
if ($CURMONTH == $doj_month && $CURYEAR == $doj_year)
{
$joinedMonthWorkingDayCount = $CURDATE - $doj_day +1;
}
else
{
$joinedMonthWorkingDayCount = $joinedMonthDaysCount - $doj_day;
}
$joinedMonthDays = 0;
for ($j = $doj_day; $j <= $joinedMonthDaysCount; $j++)
{
$weekdays[] = 'WH' . $j;
}
foreach ($JoinedMonthAttendance as $day)
{
foreach ($day as $key => $value)
{
foreach ($weekdays as $weeks)
{
if ($weeks == $key)
{
if ($value != 0)
{
//echo $value;
$joinedMonthDays++;
}
}
}
}
}
// echo $joinedMonthWorkingDayCount;die;
$result = $this->dahsboard_Model->attendanceyear($EmpID, $JoinedMonth + 1);
// print_r($result); die;
$yearabs = $this->dahsboard_Model->getAllAttendance($EmpID, $CURMONTH);
$TotalNoofDays = $result[0]->TotalWorkingDays;
$DaysWorked = $result[0]->DaysWorked;
//echo $TotalNoofDays;
// echo $DaysWorked;die;
$values = 0;
$weekdays = array();
$date = date('d');
$Work = array_sum($weekdays);
for ($j = 1; $j <= $date; $j++)
{
$weekdays[] = 'WH' . $j;
}
foreach ($yearabs as $day)
{
foreach ($day as $key => $value)
{
foreach ($weekdays as $weeks)
{
if ($weeks == $key)
{
if ($value != 0)
{
$values++;
}
}
}
}
}
$DaysWorked = 0;
if ($CURMONTH == $doj_month && $CURYEAR == $doj_year)
{
$TotalNoofDays = $TotalNoofDays + $joinedMonthWorkingDayCount;
$DaysWorked = $joinedMonthDays;
}
else
{
$TotalNoofDays = $TotalNoofDays + $CURDATE + $joinedMonthWorkingDayCount;
$DaysWorked = $DaysWorked + $joinedMonthDays + $values;
}
$final_res = round(($DaysWorked / $TotalNoofDays) * 100);
// echo "------";
//echo $final_res;exit();
$data['workeds'] = $DaysWorked;
$data['yeardata'] = $final_res;
$data['totaldays'] = $TotalNoofDays;
}
else
{
$result = $this->dahsboard_Model->attendanceyear($EmpID, 4);
$yearabs = $this->dahsboard_Model->getAllAttendance($EmpID, $CURMONTH);
$TotalNoofDays = $result[0]->TotalWorkingDays;
$DaysWorked = $result[0]->DaysWorked;
$values = 0;
$weekdays = array();
$date = date('d');
$Work = array_sum($weekdays);
for ($j = 1; $j <= $date; $j++)
{
$weekdays[] = 'WH' . $j;
}
foreach ($yearabs as $day)
{
foreach ($day as $key => $value)
{
foreach ($weekdays as $weeks)
{
if ($weeks == $key)
{
if ($value != 0)
{
$values++;
}
}
}
}
}
$TotalNoofDays = $TotalNoofDays + $CURDATE;
$DaysWorked = $DaysWorked + $values;
$final_res = round(($DaysWorked / $TotalNoofDays) * 100);
// echo "------";
//echo $final_res;exit();
$data['workeds'] = $DaysWorked;
$data['yeardata'] = $final_res;
$data['totaldays'] = $TotalNoofDays;
}
if(empty($empID)){
echo json_encode($data);
}
else{
return $data;
}
}
/****************HR DASHBOART Controller END **************************************/
/**
* This function is used to load the user list
*/
function userListing()
{
if($this->isAdmin() == TRUE)
{
$this->loadThis();
}
else
{
$data['userRecords'] = $this->user_model->userListing();
$this->global['pageTitle'] = 'Siddharth : User Listing';
$this->loadViews("users", $this->global, $data, NULL);
}
}
/**
* This function is used to load the add new form
*/
function addNew()
{
if($this->isAdmin() == TRUE)
{
$this->loadThis();
}
else
{
$data['EmpList'] = $this->user_model->getAllEmployees();
$data['roles'] = $this->user_model->getUserRoles();
$this->global['pageTitle'] = 'Siddharth : Add New User';
$this->loadViews("addNew", $this->global, $data, NULL);
}
}
/**
* This function is used to check whether email already exist or not
*/
function checkEmailExists()
{
$userId = $this->input->post("userId");
$email = $this->input->post("email");
if(empty($userId)){
$result = $this->user_model->checkEmailExists($email);
} else {
$result = $this->user_model->checkEmailExists($email, $userId);
}
if(empty($result)){ echo("true"); }
else { echo("false"); }
}
/* Validation for Employee Dropdown
*/
function Employee_validate($selectValue)
{
//echo 'select_validate method called';
// 'none' is the first option and the text says something like "-Choose one-"
if($selectValue == '0')
{
$this->form_validation->set_message('Employee_validate', 'Please Select Employee.');
return false;
}
else // user picked something
{
return true;
}
}
/* Validation for Employee Dropdown
*/
function Role_validate($selectValue)
{
//echo 'select_validate method called';
// 'none' is the first option and the text says something like "-Choose one-"
if($selectValue == '0')
{
$this->form_validation->set_message('Role_validate', 'Please Select Role.');
return false;
}
else // user picked something
{
return true;
}
}
/**
* This function is used to add new user to the system
*/
function addNewUser()
{
if($this->isAdmin() == TRUE)
{
$this->loadThis();
}
else
{
$this->form_validation->set_rules('EmpList','EmpList','trim|callback_Employee_validateS');
$this->form_validation->set_rules('role','role','trim|callback_Role_validate');
$this->form_validation->set_rules('password','Password','required|max_length[20]');
$this->form_validation->set_rules('cpassword','Confirm Password','trim|required|matches[password]|max_length[20]');
if($this->form_validation->run() == FALSE)
{
$this->addNew();
}
else
{
$EmpID = $this->input->post('EmpList');
$roleId = $this->input->post('role');
$password = $this->input->post('password');
$dt = new DateTime('now', new DateTimeZone('Asia/Kolkata'));
$Createddt = $dt->format('Y-m-d H:i:s');
$email = $this->input->post('MailID');
$userInfo = array('email'=>$email,'EmpID'=>$EmpID,'password'=>getHashedPassword($password),'roleId'=>$roleId,'createdBy'=>$this->vendorId,'createdDtm'=>$Createddt);
$result = $this->user_model->addNewUser($userInfo);
if($result > 0)
{
redirect('userListing','refresh');
echo "<script>alert('New User Created successfully!');</script>";
}
else
{
redirect('userListing','refresh');
echo "<script>alert('Failiure User Creation!');</script>";
}
}
}
}
/**
* This function is used load user edit information
* @param number $userId : Optional : This is user id
*/
function editOld($UserId = '')
{
if($this->isAdmin() == TRUE )
{
$this->loadThis();
}
else
{
if($UserId == '')
{
// redirect('userListing');
}
$Uid = $_GET['UID'];
$data['roles'] = $this->user_model->getUserRoles();
//print_r($data);
$data['EmpList'] = $this->user_model->GetEmployeeDetails($Uid);
//print_r($data);
$data['EmpRole'] = $this->user_model->GetRoleNameByUserID($Uid);
// $data['userInfo'] = $this->user_model->getUserInfo($userId);
$this->global['pageTitle'] = 'Siddharth : Edit User';
$this->loadViews("editOld", $this->global, $data, NULL);
}
}
/**
* This function is used to edit the user information
*/
function editUser()
{
if($this->isAdmin() == TRUE)
{
$this->loadThis();
}
else
{
$userId = $this->input->post('EmpList');
$this->form_validation->set_rules('EmpList','EmpList','trim|callback_Employee_validateS');
$this->form_validation->set_rules('role','role','trim|callback_Role_validate');
$this->form_validation->set_rules('password','Password','required|max_length[20]');
$this->form_validation->set_rules('cpassword','Confirm Password','trim|required|matches[password]|max_length[20]');
if($this->form_validation->run() == FALSE)
{
$this->editOld($userId);
}
else
{
$EmpID = $this->input->post('EmpList');
$role = $this->input->post('role');
$password = $this->input->post('password');
$dt = new DateTime('now', new DateTimeZone('Asia/Kolkata'));
$updatedDate = $dt->format('Y-m-d H:i:s');
// echo $EmpID;
$userInfo = array();
$userInfo = array('password'=>getHashedPassword($password),'roleId'=>$role,'EmpId'=>$EmpID,'updatedDtm'=>$updatedDate);
$result = $this->user_model->editUser($userInfo, $EmpID);
if($result == true)
{
$this->session->set_flashdata('success', 'User updated successfully');
}
else
{
$this->session->set_flashdata('error', 'User updation failed');
}
redirect('userListing');
}
}
}
/**
* This function is used to delete the user using userId
* @return boolean $result : TRUE / FALSE
*/
function deleteUser()
{
echo 'Delete';
$Uid = $this->input->post('id');
$dt = new DateTime('now', new DateTimeZone('Asia/Kolkata'));
$updatedDate = $dt->format('Y-m-d H:i:s');
$userInfo = array('isDeleted'=>1,'updatedBy'=>$this->vendorId, 'updatedDtm'=>$updatedDate);
$result = $this->user_model->deleteUser($Uid, $userInfo);
echo 'Succssfully change the user status to InAcive';
}
/**
* This function is used to load the change password screen
*/
function loadChangePass()
{
$this->global['pageTitle'] = 'Siddharth : Change Password';
$this->loadViews("changePassword", $this->global, NULL, NULL);
}
/**
* This function is used to change the password of the user
*/
function changePassword()
{
$this->load->library('form_validation');
$this->form_validation->set_rules('oldPassword','Old password','required|max_length[20]');
$this->form_validation->set_rules('newPassword','New password','required|max_length[20]');
$this->form_validation->set_rules('cNewPassword','Confirm new password','required|matches[newPassword]|max_length[20]');
if($this->form_validation->run() == FALSE)
{
$this->loadChangePass();
}
else
{
$oldPassword = $this->input->post('oldPassword');
$newPassword = $this->input->post('newPassword');
$resultPas = $this->user_model->matchOldPassword($this->vendorId, $oldPassword);
if(empty($resultPas))
{
$this->session->set_flashdata('nomatch', 'Your old password not correct');
redirect('loadChangePass');
}
else
{
$usersData = array('password'=>getHashedPassword($newPassword), 'updatedBy'=>$this->vendorId,
'updatedDtm'=>date('Y-m-d H:i:sa'));
$result = $this->user_model->changePassword($this->vendorId, $usersData);
if($result > 0) { $this->session->set_flashdata('success', 'Password updation successful'); }
else { $this->session->set_flashdata('error', 'Password updation failed'); }
redirect('loadChangePass');
}
}
}
function pageNotFound()
{
$this->global['pageTitle'] = 'Siddharth : 404 - Page Not Found';
$this->loadViews("404", $this->global, NULL, NULL);
}
}
?>