Files
budget_analyser/app/Http/Controllers/TransactionsController.php
clement be5225c85d 🌱 🏗️ ⬆️ add expense table 🎨 🔧
2025-05-15 17:45:22 +02:00

52 lines
1.4 KiB
PHP

<?php
namespace App\Http\Controllers;
use App\Models\Income;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Schema;
use Inertia\Inertia;
class TransactionsController extends Controller
{
public $table = "incomes";
public function index(){
$query = $this->queryBuilder("incomes");
$data['incomes']['columns'] = collect($query->columns)->map(function($item){
return ucfirst(substr($item, strrpos($item, '.')+1));
});
$data['incomes']['data'] = $query->get();
$query = $this->queryBuilder("expenses");
$data['expenses']['columns'] = collect($query->columns)->map(function($item){
return ucfirst(substr($item, strrpos($item, '.')+1));
});
$data['expenses']['data'] = $query->get();
return Inertia::render('Transactions/index', $data);
}
private function queryBuilder($type){
$query = DB::table($type)
->select([
// 'users.account',
// 'users.role',
// 'users.email',
$type.'.amount',
$type.'.description',
$type.'.date',
'type_'.$type.'.label'
])
->join('users', 'users.id', $type.'.id_user')
->join('type_'.$type, 'type_'.$type.'.id', $type.'.id_type_'.$type)
;
return $query;
}
}