52 lines
1.4 KiB
PHP
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;
|
|
}
|
|
}
|