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

Software: Apache. PHP/8.1.30 

uname -a: Linux server1.tuhinhossain.com 5.15.0-151-generic #161-Ubuntu SMP Tue Jul 22 14:25:40 UTC
2025 x86_64
 

uid=1002(picotech) gid=1003(picotech) groups=1003(picotech),0(root)  

Safe-mode: OFF (not secure)

/home/picotech/domains/inventory.picotech.app/public_html/app/Http/Controllers/hrm/   drwxr-xr-x
Free 29.11 GB of 117.98 GB (24.67%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Self remove    Logout    


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

namespace App\Http\Controllers\hrm;
use 
App\Http\Controllers\Controller;

use 
App\Models\Employee;
use 
App\Models\Company;
use 
App\Models\Designation;
use 
App\Models\EmployeeExperience;
use 
App\Models\EmployeeDocument;
use 
App\Models\EmployeeAccount;
use 
App\Models\Department;
use 
App\Models\OfficeShift;
use 
App\Models\Leave;
use 
App\Models\LeaveType;
use 
App\Models\Award;
use 
App\Models\Travel;
use 
App\Models\Complaint;
use 
App\Models\Project;
use 
App\Models\Task;
use 
App\Models\Training;
use 
App\utils\helpers;
use 
Carbon\Carbon;
use 
DB;
use 
Illuminate\Support\Facades\Hash;
use 
Illuminate\Support\Facades\Validator;
use 
Illuminate\Validation\Rule;
use 
Illuminate\Http\Request;
use 
Intervention\Image\ImageManagerStatic as Image;

class 
EmployeesController extends Controller
{

    
//------------ GET ALL employees -----------\\

    
public function index(Request $request)
    {
        
$this->authorizeForUser($request->user('api'), 'view'Employee::class);
        
// How many items do you want to display.
        
$perPage $request->limit;
        
$pageStart \Request::get('page'1);
        
// Start displaying items from this number;
        
$offSet = ($pageStart $perPage) - $perPage;
        
$order $request->SortField;
        
$dir $request->SortType;
        
$helpers = new helpers();
        
// Filter fields With Params to retrieve
        
$param = array(
            
=> 'like',
            
=> 'like',
            
=> '=',
           
        );
        
$columns = array(
            
=> 'username',
            
=> 'employment_type',
            
=> 'company_id',
        );
        
$data = array();

        
$employees Employee::with('company:id,name','office_shift:id,name','department:id,department','designation:id,designation')
            ->
where('deleted_at''='null)
            ->
where('leaving_date' NULL);

         
//Multiple Filter
        
$Filtred $helpers->filter($employees$columns$param$request)
        
// Search With Multiple Param
            
->where(function ($query) use ($request) {
                return 
$query->when($request->filled('search'), function ($query) use ($request) {
                    return 
$query->where('firstname''LIKE'"%{$request->search}%")
                        ->
orWhere('lastname''LIKE'"%{$request->search}%")
                        ->
orWhere('username''LIKE'"%{$request->search}%");
                });
            });
        
$totalRows $employees->count();
        if(
$perPage == "-1"){
            
$perPage $totalRows;
        }
        
$employees $employees->offset($offSet)
            ->
limit($perPage)
            ->
orderBy($order$dir)
            ->
get();

        foreach (
$employees as $employee) {

            
$item['id'] = $employee->id;
            
$item['firstname'] = $employee->firstname;
            
$item['lastname'] = $employee->lastname;
            
$item['phone'] = $employee->phone;
            
$item['company_name'] = $employee['company']->name;
            
$item['department_name'] = $employee['department']->department;
            
$item['designation_name'] = $employee['designation']->designation;
            
$item['office_shift_name'] = $employee['office_shift']->name;
          
            
$data[] = $item;
        }

        
$companies Company::where('deleted_at''='null)->get(['id''name']);

        return 
response()->json([
            
'employees' => $data,
            
'companies' => $companies,
            
'totalRows' => $totalRows,
        ]);

    }

      
//---------------- Show Form Create Employee ---------------\\

      
public function create(Request $request)
      {
  
          
$this->authorizeForUser($request->user('api'), 'create'Employee::class);
  
          
$companies Company::where('deleted_at''='null)->get(['id','name']);
  
          return 
response()->json([
              
'companies' => $companies,
          ]);
      }


  
//----------------Store  Employee ---------------\\

    
public function store(Request $request)
    {
        
$this->authorizeForUser($request->user('api'), 'create'Employee::class);

            
$this->validate($request, [
                
'firstname'      => 'required|string',
                
'lastname'       => 'required|string',
                
'gender'         => 'required',
                
'company_id'     => 'required',
                
'department_id'  => 'required',
                
'designation_id' => 'required',
                
'office_shift_id'=> 'required',
            ]);
          
            
$data = [];
            
$data['firstname'] = $request['firstname'];
            
$data['lastname'] = $request['lastname'];
            
$data['username'] = $request['firstname'] .' '.$request['lastname'];
            
$data['country'] = $request['country'];
            
$data['email'] = $request['email'];
            
$data['gender'] = $request['gender'];
            
$data['phone'] = $request['phone'];
            
$data['birth_date'] = $request['birth_date'];
            
$data['company_id'] = $request['company_id'];
            
$data['department_id'] = $request['department_id'];
            
$data['designation_id'] = $request['designation_id'];
            
$data['office_shift_id'] = $request['office_shift_id'];
            
$data['joining_date'] = $request['joining_date'];
            
            
Employee::create($data);
            
            return 
response()->json(['success' => true]);
    }

   
     
//------------ function show -----------\\

     
public function show(Request $request$id)
     {

        
$this->authorizeForUser($request->user('api'), 'view'Employee::class);

        
$employee Employee::where('deleted_at''='null)->findOrFail($id);
        
$companies Company::where('deleted_at''='null)->orderBy('id''desc')->get(['id','name']);
        
$office_shifts OfficeShift::where('company_id' $employee->company_id)->where('deleted_at''='null)->orderBy('id''desc')->get(['id','name']);
        
$departments Department::where('company_id' $employee->company_id)->where('deleted_at''='null)->orderBy('id''desc')->get(['id','department']);
        
$designations Designation::where('department_id' $employee->department_id)->where('deleted_at''='null)->orderBy('id''desc')->get(['id','designation']);

        return 
response()->json([
            
'employee' => $employee,
            
'companies' => $companies,
            
'office_shifts' => $office_shifts,
            
'departments' => $departments,
            
'designations' => $designations,
        ]);   
    
    }

    public function 
edit(Request $request$id)
    {
        
$this->authorizeForUser($request->user('api'), 'update'Employee::class);

        
$employee Employee::where('deleted_at''='null)->findOrFail($id);
        
$companies Company::where('deleted_at''='null)->get(['id','name']);
        
$office_shifts OfficeShift::where('company_id' $employee->company_id)->where('deleted_at''='null)->get(['id','name']);
        
$departments Department::where('company_id' $employee->company_id)->where('deleted_at''='null)->get(['id','department']);
        
$designations Designation::where('department_id' $employee->department_id)->where('deleted_at''='null)->get(['id','designation']);
        
        return 
response()->json([
            
'employee' => $employee,
            
'companies' => $companies,
            
'office_shifts' => $office_shifts,
            
'departments' => $departments,
            
'designations' => $designations,
        ]);     
    }

     
//---------------- UPDATE Employee -------------\\

     
public function update(Request $request$id)
     {
 
         
$this->authorizeForUser($request->user('api'), 'update'Employee::class);
 
         
$this->validate($request, [
            
'firstname'      => 'required|string',
            
'lastname'       => 'required|string',
            
'country'        => 'required|string',
            
'gender'         => 'required',
            
'phone'          => 'required',
            
'total_leave'    => 'required|numeric|min:0',
            
'company_id'     => 'required',
            
'department_id'  => 'required',
            
'designation_id' => 'required',
            
'office_shift_id'=> 'required',
            
'basic_salary'   => 'nullable|numeric',
            
'hourly_rate'     => 'nullable|numeric',
        ]);

       
        
$data = [];
        
$data['firstname'] = $request['firstname'];
        
$data['lastname'] = $request['lastname'];
        
$data['username'] = $request['firstname'] .' '.$request['lastname'];
        
$data['country'] = $request['country'];
        
$data['email'] = $request['email'];
        
$data['gender'] = $request['gender'];
        
$data['phone'] = $request['phone'];
        
$data['birth_date'] = $request['birth_date'];
        
$data['company_id'] = $request['company_id'];
        
$data['department_id'] = $request['department_id'];
        
$data['designation_id'] = $request['designation_id'];
        
$data['office_shift_id'] = $request['office_shift_id'];
        
$data['joining_date'] = $request['joining_date'];
        
$data['role_users_id'] = $request['role_users_id'];
        
$data['leaving_date'] = $request['leaving_date']?$request['leaving_date']:NULL;
        
$data['marital_status'] = $request['marital_status'];
        
$data['employment_type'] = $request['employment_type'];
        
$data['city'] = $request['city'];
        
$data['province'] = $request['province'];
        
$data['zipcode'] = $request['zipcode'];
        
$data['address'] = $request['address'];
        
$data['basic_salary'] = $request['basic_salary'];
        
$data['hourly_rate'] = $request['hourly_rate'];

        
//calculation of total_leave & remaining_leave
        
$employee_leave_info Employee::find($id);
        if(
$employee_leave_info->total_leave == 0)
        {
            
$data['total_leave'] = $request->total_leave;
            
$data['remaining_leave'] = $request->total_leave;
        }
        elseif(
$request->total_leave $employee_leave_info->total_leave ){
            
$data['total_leave'] = $request->total_leave;
            
$data['remaining_leave'] = $request->remaining_leave + ($request->total_leave $employee_leave_info->total_leave);
        }
         elseif(
$request->total_leave $employee_leave_info->total_leave ){
            
$data['total_leave'] = $request->total_leave;
            
$data['remaining_leave'] = $request->remaining_leave - ($employee_leave_info->total_leave $request->total_leave);

        }else{
            
$data['total_leave'] = $request->total_leave;
            
$data['remaining_leave'] = $employee_leave_info->remaining_leave;
        }
        
        
Employee::find($id)->update($data);

         return 
response()->json(['success' => true]);
     }

    
//------------ Delete Employee -----------\\

    
public function destroy(Request $request$id)
    {
        
$this->authorizeForUser($request->user('api'), 'delete'Employee::class);

        
Employee::whereId($id)->update([
            
'deleted_at' => Carbon::now(),
        ]);
        return 
response()->json(['success' => true]);
    }

    
//-------------- Delete by selection  ---------------\\

    
public function delete_by_selection(Request $request)
    {

        
$this->authorizeForUser($request->user('api'), 'delete'Employee::class);

        
$selectedIds $request->selectedIds;
        foreach (
$selectedIds as $employee_id) {
            
Employee::whereId($employee_id)->update([
                
'deleted_at' => Carbon::now(),
            ]);
        }
        return 
response()->json(['success' => true]);

    }


    public function 
Get_employees_by_department(Request $request)
    {
        
$employees Employee::where('department_id' $request->id)->where('deleted_at''='null)->orderBy('id''desc')->get(['id','username']);

        return 
response()->json($employees);
    }


    public function 
Get_office_shift_by_company(Request $request)
    {
        
$office_shifts OfficeShift::where('company_id' $request->id)->where('deleted_at''='null)->orderBy('id''desc')->get(['id','name']);

        return 
response()->json($office_shifts);
    }



    
//details employee


    
public function update_social_profile(Request $request$id)
    {
        
$this->authorizeForUser($request->user('api'), 'update'Employee::class);

        
$data = [];
        
$data['skype'] = $request['skype'];
        
$data['facebook'] = $request['facebook'];
        
$data['whatsapp'] = $request['whatsapp'];
        
$data['twitter'] = $request['twitter'];
        
$data['linkedin'] = $request['linkedin'];

        
Employee::whereId($id)->update($data);

        return 
response()->json(['success' => true]);
    }



       
//-------------------- get_experiences_by_employee -------------\\

       
public function get_experiences_by_employee(request $request)
       {
   
           
$this->authorizeForUser($request->user('api'), 'view'Employee::class);
           
// How many items do you want to display.
           
$perPage $request->limit;
           
$pageStart \Request::get('page'1);
           
// Start displaying items from this number;
           
$offSet = ($pageStart $perPage) - $perPage;
   
            
$experiences EmployeeExperience::where('employee_id' $request->id)
            ->
where('deleted_at''='null)
            ->
orderBy('id''desc');

   
           
$totalRows $experiences->count();
           if(
$perPage == "-1"){
               
$perPage $totalRows;
           }
           
$experiences $experiences->offset($offSet)
               ->
limit($perPage)
               ->
orderBy('id''desc')
               ->
get();
   
          
           return 
response()->json([
               
'totalRows' => $totalRows,
               
'experiences' => $experiences,
           ]);
   
       }

         
//-------------------- get_accounts_by_employee -------------\\

         
public function get_accounts_by_employee(request $request)
         {
     
             
$this->authorizeForUser($request->user('api'), 'view'Employee::class);
             
// How many items do you want to display.
             
$perPage $request->limit;
             
$pageStart \Request::get('page'1);
             
// Start displaying items from this number;
             
$offSet = ($pageStart $perPage) - $perPage;
     
              
$accounts_bank EmployeeAccount::where('employee_id' $request->id)
              ->
where('deleted_at''='null)
              ->
orderBy('id''desc');
  
     
             
$totalRows $accounts_bank->count();
             if(
$perPage == "-1"){
                 
$perPage $totalRows;
             }
             
$accounts_bank $accounts_bank->offset($offSet)
                 ->
limit($perPage)
                 ->
orderBy('id''desc')
                 ->
get();
     
            
             return 
response()->json([
                 
'totalRows' => $totalRows,
                 
'accounts_bank' => $accounts_bank,
             ]);
     
         }


}

:: Command execute ::

Enter:
 
Select:
 

:: Search ::
  - regexp 

:: Upload ::
 
[ ok ]

:: Make Dir ::
 
[ ok ]
:: Make File ::
 
[ ok ]

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

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