Пример #1
0
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);
}
Пример #2
0
    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]);
 }