!C99Shell v. 2.5 [PHP 8 Update] [24.05.2025]!

Software: Apache/2.4.41 (Ubuntu). PHP/8.0.30 

uname -a: Linux apirnd 5.4.0-204-generic #224-Ubuntu SMP Thu Dec 5 13:38:28 UTC 2024 x86_64 

uid=33(www-data) gid=33(www-data) groups=33(www-data) 

Safe-mode: OFF (not secure)

/var/www/html/main_file/app/Http/Controllers/   drwxrwxr-x
Free 12.99 GB of 57.97 GB (22.42%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Self remove    Logout    


Viewing file:     AttendanceEmployeeController.php (25.68 KB)      -rw-rw-r--
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php

namespace App\Http\Controllers;

use 
App\Models\AttendanceEmployee;
use 
App\Models\Branch;
use 
App\Models\Department;
use 
App\Models\Employee;
use 
App\Models\IpRestrict;
use 
App\Models\User;
use 
App\Models\Utility;
use 
Illuminate\Http\Request;
use 
Illuminate\Support\Facades\Auth;

class 
AttendanceEmployeeController extends Controller
{
    public function 
index(Request $request)
    {


        if(
\Auth::user()->can('manage attendance'))
        {

            
$branch Branch::where('created_by'\Auth::user()->creatorId())->get()->pluck('name''id');
            
$branch->prepend('Select Branch''');

            
$department Department::where('created_by'\Auth::user()->creatorId())->get()->pluck('name''id');
            
$department->prepend('Select Department''');

            if(
\Auth::user()->type != 'client' && \Auth::user()->type != 'company')
            {

                
$emp = !empty(\Auth::user()->employee) ? \Auth::user()->employee->id 0;

                
$attendanceEmployee AttendanceEmployee::where('employee_id'$emp);


                if(
$request->type == 'monthly' && !empty($request->month))
                {
                    
$month date('m'strtotime($request->month));
                    
$year  date('Y'strtotime($request->month));

                    
$start_date date($year '-' $month '-01');
                    
$end_date   date($year '-' $month '-t');

                    
$attendanceEmployee->whereBetween(
                        
'date', [
                                  
$start_date,
                                  
$end_date,
                              ]
                    );
                }
                elseif(
$request->type == 'daily' && !empty($request->date))
                {
                    
$attendanceEmployee->where('date'$request->date);
                }
                else
                {
                    
$month      date('m');
                    
$year       date('Y');
                    
$start_date date($year '-' $month '-01');
                    
$end_date   date($year '-' $month '-t');

                    
$attendanceEmployee->whereBetween(
                        
'date', [
                                  
$start_date,
                                  
$end_date,
                              ]
                    );
                }
                
$attendanceEmployee $attendanceEmployee->get();

            }
            else
            {

                
$employee Employee::select('id')->where('created_by'\Auth::user()->creatorId());

                if(!empty(
$request->branch))
                {
                    
$employee->where('branch_id'$request->branch);
                }

                if(!empty(
$request->department))
                {
                    
$employee->where('department_id'$request->department);
                }
                
$employee $employee->get()->pluck('id');

                
$attendanceEmployee AttendanceEmployee::whereIn('employee_id'$employee);

                if(
$request->type == 'monthly' && !empty($request->month))
                {
                    
$month date('m'strtotime($request->month));
                    
$year  date('Y'strtotime($request->month));

                    
$start_date date($year '-' $month '-01');
                    
$end_date   date($year '-' $month '-t');

                    
$attendanceEmployee->whereBetween(
                        
'date', [
                                  
$start_date,
                                  
$end_date,
                              ]
                    );
                }
                elseif(
$request->type == 'daily' && !empty($request->date))
                {
                    
$attendanceEmployee->where('date'$request->date);
                }
                else
                {
                    
$month      date('m');
                    
$year       date('Y');
                    
$start_date date($year '-' $month '-01');
                    
$end_date   date($year '-' $month '-t');

                    
$attendanceEmployee->whereBetween(
                        
'date', [
                                  
$start_date,
                                  
$end_date,
                              ]
                    );
                }

//                dd($attendanceEmployee->toSql(), $attendanceEmployee->getBindings());
                
$attendanceEmployee $attendanceEmployee->get();




            }

            return 
view('attendance.index'compact('attendanceEmployee''branch''department'));
        }
        else
        {
            return 
redirect()->back()->with('error'__('Permission denied.'));
        }
    }

    public function 
create()
    {
        if(
\Auth::user()->can('create attendance'))
        {
            
$employees User::where('created_by''='Auth::user()->creatorId())->where('type''='"employee")->get()->pluck('name''id');

            return 
view('attendance.create'compact('employees'));
        }
        else
        {
            return 
redirect()->back()->with('error'__('Permission denied.'));
        }


    }

    public function 
store(Request $request)
    {
        if(
\Auth::user()->can('create attendance'))
        {
            
$validator \Validator::make(
                
$request->all(), [
                                   
'employee_id' => 'required',
                                   
'date' => 'required',
                                   
'clock_in' => 'required',
                                   
'clock_out' => 'required',
                               ]
            );
            if(
$validator->fails())
            {
                
$messages $validator->getMessageBag();

                return 
redirect()->back()->with('error'$messages->first());
            }

            
$startTime  Utility::getValByName('company_start_time');
            
$endTime    Utility::getValByName('company_end_time');
            
$attendance AttendanceEmployee::where('employee_id''='$request->employee_id)->where('date''='$request->date)->where('clock_out''=''00:00:00')->get()->toArray();
            if(
$attendance)
            {
                return 
redirect()->route('attendanceemployee.index')->with('error'__('Employee Attendance Already Created.'));
            }
            else
            {
                
$date date("Y-m-d");

                
$totalLateSeconds strtotime($request->clock_in) - strtotime($date $startTime);

                
$hours floor($totalLateSeconds 3600);
                
$mins  floor($totalLateSeconds 60 60);
                
$secs  floor($totalLateSeconds 60);
                
$late  sprintf('%02d:%02d:%02d'$hours$mins$secs);

                
//early Leaving
                
$totalEarlyLeavingSeconds strtotime($date $endTime) - strtotime($request->clock_out);
                
$hours                    floor($totalEarlyLeavingSeconds 3600);
                
$mins                     floor($totalEarlyLeavingSeconds 60 60);
                
$secs                     floor($totalEarlyLeavingSeconds 60);
                
$earlyLeaving             sprintf('%02d:%02d:%02d'$hours$mins$secs);


                if(
strtotime($request->clock_out) > strtotime($date $endTime))
                {
                    
//Overtime
                    
$totalOvertimeSeconds strtotime($request->clock_out) - strtotime($date $endTime);
                    
$hours                floor($totalOvertimeSeconds 3600);
                    
$mins                 floor($totalOvertimeSeconds 60 60);
                    
$secs                 floor($totalOvertimeSeconds 60);
                    
$overtime             sprintf('%02d:%02d:%02d'$hours$mins$secs);
                }
                else
                {
                    
$overtime '00:00:00';
                }

                
$employeeAttendance                = new AttendanceEmployee();
                
$employeeAttendance->employee_id   $request->employee_id;
                
$employeeAttendance->date          $request->date;
                
$employeeAttendance->status        'Present';
                
$employeeAttendance->clock_in      $request->clock_in ':00';
                
$employeeAttendance->clock_out     $request->clock_out ':00';
                
$employeeAttendance->late          $late;
                
$employeeAttendance->early_leaving $earlyLeaving;
                
$employeeAttendance->overtime      $overtime;
                
$employeeAttendance->total_rest    '00:00:00';
                
$employeeAttendance->created_by    \Auth::user()->creatorId();
                
$employeeAttendance->save();

                return 
redirect()->route('attendanceemployee.index')->with('success'__('Employee attendance successfully created.'));
            }
        }
        else
        {
            return 
redirect()->back()->with('error'__('Permission denied.'));
        }
    }

    public function 
edit($id)
    {
        if(
\Auth::user()->can('edit attendance'))
        {
            
$attendanceEmployee AttendanceEmployee::where('id'$id)->first();
            
$employees          Employee::where('created_by''='\Auth::user()->creatorId())->get()->pluck('name''id');

            return 
view('attendance.edit'compact('attendanceEmployee''employees'));
        }
        else
        {
            return 
redirect()->back()->with('error'__('Permission denied.'));
        }
    }

    public function 
update(Request $request$id)
    {

        
//    dd($request->all());
        
$employeeId      = !empty(\Auth::user()->employee) ? \Auth::user()->employee->id 0;
        
$todayAttendance AttendanceEmployee::where('employee_id''='$employeeId)->where('date'date('Y-m-d'))->first();
        
//        dd($todayAttendance);
        
if(!empty($todayAttendance) && $todayAttendance->clock_out == '00:00:00')
        {

            
$startTime Utility::getValByName('company_start_time');
            
$endTime   Utility::getValByName('company_end_time');

            if(
Auth::user()->type == 'Employee')
            {

                
$date date("Y-m-d");
                
$time date("H:i:s");
                
//                dd($time);
                //early Leaving
                
$totalEarlyLeavingSeconds strtotime($date $endTime) - time();
                
$hours                    floor($totalEarlyLeavingSeconds 3600);
                
$mins                     floor($totalEarlyLeavingSeconds 60 60);
                
$secs                     floor($totalEarlyLeavingSeconds 60);
                
$earlyLeaving             sprintf('%02d:%02d:%02d'$hours$mins$secs);

                if(
time() > strtotime($date $endTime))
                {
                    
//Overtime
                    
$totalOvertimeSeconds time() - strtotime($date $endTime);
                    
$hours                floor($totalOvertimeSeconds 3600);
                    
$mins                 floor($totalOvertimeSeconds 60 60);
                    
$secs                 floor($totalOvertimeSeconds 60);
                    
$overtime             sprintf('%02d:%02d:%02d'$hours$mins$secs);
                }
                else
                {
                    
$overtime '00:00:00';
                }

                
//                $attendanceEmployee                = AttendanceEmployee::find($id);
                
$attendanceEmployee['clock_out']     = $time;
                
$attendanceEmployee['early_leaving'] = $earlyLeaving;
                
$attendanceEmployee['overtime']      = $overtime;

                if(!empty(
$request->date)) {
                    
$attendanceEmployee['date']       =  $request->date;
                }
                
//                dd($attendanceEmployee);
                
AttendanceEmployee::where('id',$id)->update($attendanceEmployee);
                
//                $attendanceEmployee->save();

                
return redirect()->route('hrm.dashboard')->with('success'__('Employee successfully clock Out.'));
            }
            else
            {
                
$date date("Y-m-d");
                
$clockout_time date("H:i:s");
                
//late
                
$totalLateSeconds strtotime($clockout_time) - strtotime($date $startTime);

                
$hours floor($totalLateSeconds 3600);
                
$mins  floor($totalLateSeconds 60 60);
                
$secs  floor($totalLateSeconds 60);
                
$late  sprintf('%02d:%02d:%02d'$hours$mins$secs);

                
//early Leaving
                
$totalEarlyLeavingSeconds strtotime($date $endTime) - strtotime($clockout_time);
                
$hours                    floor($totalEarlyLeavingSeconds 3600);
                
$mins                     floor($totalEarlyLeavingSeconds 60 60);
                
$secs                     floor($totalEarlyLeavingSeconds 60);
                
$earlyLeaving             sprintf('%02d:%02d:%02d'$hours$mins$secs);


                if(
strtotime($clockout_time) > strtotime($date $endTime))
                {
                    
//Overtime
                    
$totalOvertimeSeconds strtotime($clockout_time) - strtotime($date $endTime);
                    
$hours                floor($totalOvertimeSeconds 3600);
                    
$mins                 floor($totalOvertimeSeconds 60 60);
                    
$secs                 floor($totalOvertimeSeconds 60);
                    
$overtime             sprintf('%02d:%02d:%02d'$hours$mins$secs);
                }
                else
                {
                    
$overtime '00:00:00';
                }

                
$attendanceEmployee                AttendanceEmployee::find($id);
                
// $attendanceEmployee->employee_id   = $employeeId;
                // $attendanceEmployee->date          = $request->date;
                // $attendanceEmployee->clock_in      = $request->clock_in;
                
$attendanceEmployee->clock_out     $clockout_time;
                
$attendanceEmployee->late          $late;
                
$attendanceEmployee->early_leaving $earlyLeaving;
                
$attendanceEmployee->overtime      $overtime;
                
$attendanceEmployee->total_rest    '00:00:00';

                
$attendanceEmployee->save();

                return 
redirect()->back()->with('success'__('Employee attendance successfully updated.'));
            }
        }
        else
        {
            return 
redirect()->back()->with('error'__('Employee are not allow multiple time clock in & clock for every day.'));
        }
    }

    public function 
destroy($id)
    {
        if(
\Auth::user()->can('delete attendance'))
        {
            
$attendance AttendanceEmployee::where('id'$id)->first();

            
$attendance->delete();

            return 
redirect()->route('attendanceemployee.index')->with('success'__('Attendance successfully deleted.'));
        }
        else
        {
            return 
redirect()->back()->with('error'__('Permission denied.'));
        }
    }

    public function 
attendance(Request $request)
    {
        
$settings Utility::settings();

//        dd($settings);

        
$employeeId      = !empty(\Auth::user()->employee) ? \Auth::user()->employee->id 0;
        
$todayAttendance AttendanceEmployee::where('employee_id''='$employeeId)->where('date'date('Y-m-d'))->first();
        if(empty(
$todayAttendance))
        {

            
$startTime Utility::getValByName('company_start_time');
            
$endTime   Utility::getValByName('company_end_time');

            
$attendance AttendanceEmployee::orderBy('id''desc')->where('employee_id''='$employeeId)->where('clock_out''=''00:00:00')->first();

            if(
$attendance != null)
            {
                
$attendance            AttendanceEmployee::find($attendance->id);
                
$attendance->clock_out $endTime;
                
$attendance->save();
            }

            
$date date("Y-m-d");
            
$time date("H:i:s");

            
//late
            
$totalLateSeconds time() - strtotime($date $startTime);
            
$hours            floor($totalLateSeconds 3600);
            
$mins             floor($totalLateSeconds 60 60);
            
$secs             floor($totalLateSeconds 60);
            
$late             sprintf('%02d:%02d:%02d'$hours$mins$secs);

            
$checkDb AttendanceEmployee::where('employee_id''='\Auth::user()->id)->get()->toArray();


            if(empty(
$checkDb))
            {
                
$employeeAttendance                = new AttendanceEmployee();
                
$employeeAttendance->employee_id   $employeeId;
                
$employeeAttendance->date          $date;
                
$employeeAttendance->status        'Present';
                
$employeeAttendance->clock_in      $time;
                
$employeeAttendance->clock_out     '00:00:00';
                
$employeeAttendance->late          $late;
                
$employeeAttendance->early_leaving '00:00:00';
                
$employeeAttendance->overtime      '00:00:00';
                
$employeeAttendance->total_rest    '00:00:00';
                
$employeeAttendance->created_by    \Auth::user()->id;

                
$employeeAttendance->save();

                return 
redirect()->back()->with('success'__('Employee Successfully Clock In.'));
            }
            foreach(
$checkDb as $check)
            {

                
$employeeAttendance                = new AttendanceEmployee();
                
$employeeAttendance->employee_id   $employeeId;
                
$employeeAttendance->date          $date;
                
$employeeAttendance->status        'Present';
                
$employeeAttendance->clock_in      $time;
                
$employeeAttendance->clock_out     '00:00:00';
                
$employeeAttendance->late          $late;
                
$employeeAttendance->early_leaving '00:00:00';
                
$employeeAttendance->overtime      '00:00:00';
                
$employeeAttendance->total_rest    '00:00:00';
                
$employeeAttendance->created_by    \Auth::user()->id;

                
$employeeAttendance->save();

                return 
redirect()->back()->with('success'__('Employee Successfully Clock In.'));

            }
        }
        else
        {
            return 
redirect()->back()->with('error'__('Employee are not allow multiple time clock in & clock for every day.'));
        }
    }

    public function 
bulkAttendance(Request $request)
    {
        if(
\Auth::user()->can('create attendance'))
        {

            
$branch Branch::where('created_by'\Auth::user()->creatorId())->get()->pluck('name''id');
            
$branch->prepend('Select Branch''');

            
$department Department::where('created_by'\Auth::user()->creatorId())->get()->pluck('name''id');
            
$department->prepend('Select Department''');

            
$employees = [];
            if(!empty(
$request->branch) && !empty($request->department))
            {
                
$employees Employee::where('created_by'\Auth::user()->creatorId())->where('branch_id'$request->branch)->where('department_id'$request->department)->get();


            }else{
                
$employees Employee::where('created_by'\Auth::user()->creatorId())->where('branch_id'1)->where('department_id',1)->get();
            }


            return 
view('attendance.bulk'compact('employees''branch''department'));
        }
        else
        {
            return 
redirect()->back()->with('error'__('Permission denied.'));
        }
    }

    public function 
bulkAttendanceData(Request $request)
    {

        if(
\Auth::user()->can('create attendance'))
        {
            if(!empty(
$request->branch) && !empty($request->department))
            {
                
$startTime Utility::getValByName('company_start_time');
                
$endTime   Utility::getValByName('company_end_time');
                
$date      $request->date;

                
$employees $request->employee_id;
                
$atte      = [];

                if(!empty(
$employees)){
                    foreach(
$employees as $employee)
                    {
                        
$present 'present-' $employee;
                        
$in      'in-' $employee;
                        
$out     'out-' $employee;
                        
$atte[]  = $present;
                        if(
$request->$present == 'on')
                        {

                            
$in  date("H:i:s"strtotime($request->$in));
                            
$out date("H:i:s"strtotime($request->$out));

                            
$totalLateSeconds strtotime($in) - strtotime($startTime);

                            
$hours floor($totalLateSeconds 3600);
                            
$mins  floor($totalLateSeconds 60 60);
                            
$secs  floor($totalLateSeconds 60);
                            
$late  sprintf('%02d:%02d:%02d'$hours$mins$secs);

                            
//early Leaving
                            
$totalEarlyLeavingSeconds strtotime($endTime) - strtotime($out);
                            
$hours                    floor($totalEarlyLeavingSeconds 3600);
                            
$mins                     floor($totalEarlyLeavingSeconds 60 60);
                            
$secs                     floor($totalEarlyLeavingSeconds 60);
                            
$earlyLeaving             sprintf('%02d:%02d:%02d'$hours$mins$secs);

                            if(
strtotime($out) > strtotime($endTime))
                            {
                                
//Overtime
                                
$totalOvertimeSeconds strtotime($out) - strtotime($endTime);
                                
$hours                floor($totalOvertimeSeconds 3600);
                                
$mins                 floor($totalOvertimeSeconds 60 60);
                                
$secs                 floor($totalOvertimeSeconds 60);
                                
$overtime             sprintf('%02d:%02d:%02d'$hours$mins$secs);
                            }
                            else
                            {
                                
$overtime '00:00:00';
                            }
                            
$attendance AttendanceEmployee::where('employee_id''='$employee)->where('date''='$request->date)->first();

                            if(!empty(
$attendance))
                            {
                                
$employeeAttendance $attendance;
                            }
                            else
                            {
                                
$employeeAttendance              = new AttendanceEmployee();
                                
$employeeAttendance->employee_id $employee;
                                
$employeeAttendance->created_by  \Auth::user()->creatorId();
                            }
                            
$employeeAttendance->date          $request->date;
                            
$employeeAttendance->status        'Present';
                            
$employeeAttendance->clock_in      $in;
                            
$employeeAttendance->clock_out     $out;
                            
$employeeAttendance->late          $late;
                            
$employeeAttendance->early_leaving = ($earlyLeaving 0) ? $earlyLeaving '00:00:00';
                            
$employeeAttendance->overtime      $overtime;
                            
$employeeAttendance->total_rest    '00:00:00';
                            
$employeeAttendance->save();

                        }
                        else
                        {
                            
$attendance AttendanceEmployee::where('employee_id''='$employee)->where('date''='$request->date)->first();

                            if(!empty(
$attendance))
                            {
                                
$employeeAttendance $attendance;
                            }
                            else
                            {
                                
$employeeAttendance              = new AttendanceEmployee();
                                
$employeeAttendance->employee_id $employee;
                                
$employeeAttendance->created_by  \Auth::user()->creatorId();
                            }

                            
$employeeAttendance->status        'Leave';
                            
$employeeAttendance->date          $request->date;
                            
$employeeAttendance->clock_in      '00:00:00';
                            
$employeeAttendance->clock_out     '00:00:00';
                            
$employeeAttendance->late          '00:00:00';
                            
$employeeAttendance->early_leaving '00:00:00';
                            
$employeeAttendance->overtime      '00:00:00';
                            
$employeeAttendance->total_rest    '00:00:00';
                            
$employeeAttendance->save();
                        }
                    }
                }else{
                    return 
redirect()->back()->with('error'__('Employee not found.'));
                }


                return 
redirect()->back()->with('success'__('Employee attendance successfully created.'));
            }
            else
            {
                return 
redirect()->back()->with('error'__('Branch & department field required.'));
            }
        }
        else
        {
            return 
redirect()->back()->with('error'__('Permission denied.'));
        }
    }

}

:: Command execute ::

Enter:
 
Select:
 

:: Search ::
  - regexp 

:: Upload ::
 
[ Read-Only ]

:: Make Dir ::
 
[ Read-Only ]
:: Make File ::
 
[ Read-Only ]

:: Go Dir ::
 
:: Go File ::
 

--[ c99shell v. 2.5 [PHP 8 Update] [24.05.2025] | Generation time: 0.0123 ]--