function getWorkHours($clockingIn, $clockingOut, $shiftEnd) { $employeeId = Session::get('userEmployeeId'); $userId = Session::get('userId'); $schedule = new Schedule(); $getSchedule = $schedule->getSchedule($employeeId, date('Y-m-d')); $workShift = new Workshift(); $getWorkShiftByEmployeeId = $workShift->getWorkShiftByEmployeeId($employeeId); $setting = new Setting(); $employeeSetting = $setting->getEmployeeSettingByEmployeeId($employeeId); if (!empty($getSchedule)) { $schedule['start_time'] = $getSchedule[0]->start_time; $schedule['end_time'] = $getSchedule[0]->end_time; $schedule['hours_per_day'] = $getSchedule[0]->hours_per_day; $halfOfhoursPerDay = $schedule['hours_per_day'] / 2; // e.g 8.00 without break } elseif (!empty($getWorkShiftByEmployeeId)) { $workShift['start_time'] = $getWorkShiftByEmployeeId[0]->start_time; $workShift['end_time'] = $getWorkShiftByEmployeeId[0]->end_time; $workShift['hours_per_day'] = $getWorkShiftByEmployeeId[0]->hours_per_day; $halfOfhoursPerDay = $workShift['hours_per_day'] / 2; // e.g 8.00 without break } if (!empty($employeeSetting->hours_per_day)) { $halfOfhoursPerDay = $employeeSetting->hours_per_day / 2; // e.g 8.00 without break $setting['break_time'] = $employeeSetting->break_time; } //$interval = getDateTimeDiffInterval($clockingIn, $shiftEnd); $interval = getDateTimeDiffInterval($clockingIn, $clockingOut); $days = $interval->format('%a'); $days = (int) $days; if ($days !== 0) { $hhToDays = $days * 24; $hh = (int) $hhToDays; } else { $hh = (int) $interval->format('%h'); } $mm = (int) $interval->format('%i'); $ss = (int) $interval->format('%s'); if ($setting['break_time'] === 1) { list($breakTimeHh, $breakTimeMm, $breakTimeSs) = explode(':', $setting['break_time']); $breakTime = getTimeToDecimalHours($breakTimeHh, $breakTimeMm, $breakTimeSs); $workHours = getTimeToDecimalHours($hh, $mm, $ss); //number_format($hours, 2); if ($workHours > $halfOfhoursPerDay) { $workHours = $workHours - $breakTime; } else { $workHours = getTimeToDecimalHours($hh, $mm, $ss); } } else { $workHours = getTimeToDecimalHours($hh, $mm, $ss); //number_format($hours, 2); } return number_format($workHours, 2); }
return Redirect::to('users/login'); }); // Show the login form Route::get('/users/login', array('as' => 'usersLogin', 'uses' => 'UsersController@showLogin')); // Process the login form Route::post('/users/login', array('as' => 'processLogin', 'uses' => 'UsersController@doLogin')); // Logging Out Route::get('users/logout', array('uses' => 'UsersController@doLogout')); Route::get('/employee/servertime', array('before' => 'auth', 'as' => 'updateServerTime', 'uses' => 'EmployeesController@updateServerTime')); Route::get('/employee/serverdatetime', array('before' => 'auth', 'as' => 'getServerDateTime', 'uses' => 'EmployeesController@getServerDateTime')); Route::get('/employee/clocking', array('before' => 'auth', 'as' => 'employeeTimesheet', 'uses' => 'EmployeesController@showEmployeeTimesheet')); Route::post('/employee/clocking', array('as' => 'timeClocking', 'uses' => function () { $data = Input::all(); echo Session::put('timeclocking', $data['timeclocking']); $workShift = new Workshift(); $getWorkShift = $workShift->getWorkShiftByEmployeeId(Auth::user()->employee_id); $todayDate = date('Y-m-d'); $holiday = new Holiday(); $getHolidayByDate = $holiday->getHolidayByDate($todayDate); //var_dump($employeeClocking); //$employeeId = Auth::user()->employee_id; //$workShift = DB::table('work_shift')->where('employee_id', $employeeId)->get(); $timesheet = new Timesheet(); $getTimesheetById = $timesheet->getTimesheetById(Auth::user()->employee_id, date('Y-m-d')); $schedule = new Schedule(); $hasSchedule = $schedule->checkSchedule(Auth::user()->employee_id, date('Y-m-d')); $getSchedule = $schedule->getSchedule(Auth::user()->employee_id, date('Y-m-d')); //Deduction Model $deduction = new Deduction(); $hasNightShiftStartTimeThreshold = true; $nightShiftStartTimeThreshold = 5;
public function showAdminEmployeeTimesheet() { $employeeId = Session::get('userEmployeeId'); //$employeeId = Auth::user()->employee_id; $currentDate = date('Y-m-d'); $employee = new Employee(); $employeeInfo = $employee->getEmployeeInfoById($employeeId); $workShift = new Workshift(); $employeeWorkShift = $workShift->getWorkShiftByEmployeeId($employeeId); $timesheet = new Timesheet(); $employeeTimesheet = $timesheet->getAllRows($employeeId); $getTimesheetById = $timesheet->getTimesheetById($employeeId, $currentDate); $timesheetPerMonth = $timesheet->getTimesheetPerMonth($employeeId, Session::get('dayDateArr')); $schedule = new Schedule(); $checkSchedule = $schedule->checkSchedule($employeeId, $currentDate); $getSchedule = $schedule->getSchedule($employeeId, $currentDate); //Admin view return View::make('employees.admin.clocking', ['employeeInfo' => $employeeInfo, 'employeeWorkShift' => $employeeWorkShift, 'employeeTimesheet' => $employeeTimesheet, 'getTimesheetById' => $getTimesheetById, 'timesheetPerMonth' => $timesheetPerMonth]); }