Compare commits

...

8 Commits

9 changed files with 245 additions and 5 deletions

View File

@ -7,6 +7,7 @@ use App\Models\User;
use Illuminate\Http\Request;
use App\Models\RigaProgetto;
use function GuzzleHttp\json_encode;
use Barryvdh\DomPDF\Facade\Pdf;
class ProgettiController extends Controller
{
@ -64,9 +65,14 @@ class ProgettiController extends Controller
return redirect(Route('progetti'));
}
public function stampaPDF(Request $id)
public function stampaPDFProgetto(Request $id)
{
$progetto_id=$id['id'];
$progetto = Progetti::getProgettoById($progetto_id);
$righe = RigaProgetto::getRigheProgetto($progetto_id);
$costo_tot=RigaProgetto::getCostoRighe($progetto_id);
$pdf=Pdf::loadview('progetti.PDF.scheda',['dettaglio'=>$progetto,'righe'=>$righe, 'tot'=>$costo_tot]);
return $pdf->stream();
}
}

View File

@ -86,5 +86,20 @@ class Utenti extends Controller
}
return redirect('/admin/users/givepermission');
}
function giveRoleToUser()
{
$users=User::all();
$roles=Role::all();
return view('users.assignrole',['users'=>$users,'roles'=>$roles]);
}
function assignRole(Request $request)
{
//$user=User::getUserbyId($request['user']);
$user=User::findOrFail($request['user']);
$user->assignRole($request['role']);
return redirect('/admin/users/giverole');
}
}

View File

@ -0,0 +1,83 @@
<?php
namespace Database\Seeders;
use App\Models\User;
use Illuminate\Database\Seeder;
use Illuminate\Support\Facades\Hash;
use Spatie\Permission\Models\Permission;
use Spatie\Permission\Models\Role;
use Spatie\Permission\PermissionRegistrar;
class OnlySeeder extends Seeder
{
/**
* Run the database seeds.
*
* @return void
*/
public function run()
{
/* // Role Creation
$role_admin = Role::create([
'name' => 'admin'
]);
$role_user = Role::create([
'name' => 'user'
]);
$role_guest = Role::create([
'name' => 'guest'
]);
// Permission Creation
Permission::create([
'name' => 'conti'
]);
Permission::create([
'name' => 'consumi'
]);
Permission::create([
'name' => 'automobili'
]);
Permission::create([
'name' => 'contatti'
]);
Permission::create([
'name' => 'affitti'
]);
Permission::create([
'name' => 'progetti'
]);
Permission::create([
'name' => 'amministrazione'
]);
// Assegnazione permessi al ruolo user
$role_user->givePermissionTo('affitti');
$role_user->givePermissionTo('automobili');
$role_user->givePermissionTo('contatti');
$role_user->givePermissionTo('consumi');
$role_user->givePermissionTo('conti');
$role_user->givePermissionTo('progetti');
// Assegnazione permessi al ruolo guest
$role_guest->givePermissionTo('affitti');
*/
$admin = User::create([
'name'=>'Amministratore',
'email'=>'admin@localhost.local',
'password'=>Hash::make('Portalnet_2023'),
])->assignRole('admin');
$user = User::create([
'name'=>'Utente',
'email'=>'user@localhost.local',
'password'=>Hash::make('user2023'),
])->assignRole('user');
$guest = User::create([
'name'=>'Guest',
'email'=>'guest@localhost.local',
'password'=>Hash::make('password'),
])->assignRole('guest');
}
}

View File

@ -62,6 +62,7 @@
<li><a class="active" href="/admin/users/newPermission">Permessi</a></li>
-->
<li><a class="active" href="/admin/users/givepermission">Assegna Permessi</a></li>
<li><a class="active" href="/admin/users/giverole">Assegna Ruoli</a></li>
<!--
<li><a href="/login">Login Page</a></li>
-->

View File

@ -7,10 +7,10 @@
<ul class="dropdown-menu dropdown-user">
<li><a href="#"><i class="fa fa-user fa-fw"></i> Profilo utente</a></li>
<li><a href="#"><i class="fa fa-gear fa-fw"></i> Impostazioni</a></li>
@role('admin')
@can('amministrazione')
<li class="divider"></li>
<li><a href="/admin/users/new"><i class="fa fa-gear fa-fw"></i> Gestisci Utenti</a></li>
@endrole
@endcan
<li class="divider"></li>
<li><a href="https://github.com/fbarachino/bubofamily/issues/new/choose" target="new"><i class="fa fa-bug fa-fw"></i> Segnala un bug</a></li>
<li class="divider"></li>

View File

@ -0,0 +1,93 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Scheda Progetto</title>
<style type="text/css">
* {
font-family: Verdana, Arial, sans-serif;
}
table{
font-size: x-small;
}
tfoot tr td{
font-weight: bold;
font-size: x-small;
}
.gray {
background-color: lightgray
}
</style>
</head>
<body>
@foreach($tot as $totale) @endforeach @foreach($dettaglio ?? '' as $progetto)
<table width="100%">
<tr>
<!-- <td valign="top"><img src="{{asset('images/meteor-logo.png')}}" alt="" width="150"/></td> -->
<td>
<h3>Progetto: #{{$progetto->id}}:{{$progetto->nome}}</h3>
<p> {{$progetto->descrizione}}</p>
</td>
</tr>
</table>
<hr>
<table width="100%">
<tr>
<td><strong>Creato il:</strong> {{ date('d/m/Y',strtotime($progetto->data_creazione)) }}</td>
<td><strong>Inizio:</strong> {{ date('d/m/Y',strtotime($progetto->data_inizio)) }}</td>
<td><strong>Termine:</strong> {{ date('d/m/Y',strtotime($progetto->data_fine)) }}</td>
<td><strong>Stato:</strong> {{ $progetto->stato }}</td>
</tr>
<tr>
<td><strong>Budget iniziale:</strong> {{ $progetto->budget }}</td>
<td><strong>Costi sostenuti:</strong> {{ $totale->costo}}</td>
<td><strong>Scostamento:</strong>{{ $progetto->budget - $totale->costo}}</td>
<td><strong>Coordinatore:</strong> {{ $progetto->name }}</td>
</tr>
<tr>
<td colspan="4" class="gray">DESCRIZIONE:</td>
</tr>
<tr>
<td colspan="4">{{ $progetto->note }}</td>
</tr>
</table>
@endforeach
<br/>
<table width="100%">
<thead style="background-color: lightgray;">
<tr>
<th>Data</th>
<th>Descrizione</th>
<th>Ore</th>
<th>Costi</th>
</tr>
</thead>
<tbody>
@foreach($righe as $riga)
<tr>
<td>{{ date('d/m/Y',strtotime($riga->data)) }}</td>
<td>{{ $riga->descrizione }}</td>
<td>{{ $riga->ore }}</td>
<td>{{ $riga->prezzo }}</td>
</tr>
@endforeach
</tbody>
<tfoot>
<tr>
<td colspan="2"></td>
<td align="right">Totale</td>
<td align="right" class="gray">{{ $totale->costo}} &euro;</td>
</tr>
</tfoot>
</table>
</body>
</html>

View File

@ -0,0 +1,38 @@
@extends('admin')
@section('content')
<div class="row">
<div class="col-lg-12">
<h1 class="page-header">Assegnazione permessi</h1>
</div>
</div>
<div class="container">
<div class="row">
<div class="col-lg-12">
<div class="panel panel-default">
<div class="panel-heading">
Nuova assegnazione permessi
</div>
<div class="panel-body">
<!-- Form -->
<form action="" method="POST">
<select name="user" class="form-control">
@foreach($users as $user)
<option value="{{$user->id}}"> {{$user->name}}</option>
@endforeach
</select>
<select name="role" class="form-control">
@foreach($roles as $role)
<option value="{{$role->name}}">{{$role->name}}</td>
@endforeach
</select>
@csrf
<input type="Submit" name="submit" value="associa">
</form>
</div>
</div>
</div>
</div>
</div>
@endsection

View File

@ -128,8 +128,11 @@ Route::group(['middleware'=>['permission:amministrazione']], function(){
Route::post('users/new',[Utenti::class,'createUser']);
Route::get('users/roles',[Utenti::class,'listRoles']);
Route::get('users/delete/{id}',[Utenti::class,'deleteUser']);
//});
Route::get('users/givepermission',[Utenti::class,'givePermissionToUser']);
Route::post('users/givepermission',[Utenti::class,'assignPermission']);
Route::get('users/giverole',[Utenti::class,'giveRoleToUser']);
Route::post('users/giverole',[Utenti::class,'assignRole']);
});
// PROGETTI
Route::group(['middleware'=>['permission:progetti']], function(){
@ -145,6 +148,7 @@ Route::group(['middleware'=>['permission:progetti']], function(){
Route::get('progetti/coordinatori', [ProgettiController::class, 'getCoordinatori']);
Route::get('progetti/close',[ProgettiController::class, 'chiudiProgetto']);
Route::get('progetti/reopen',[ProgettiController::class, 'riapriProgetto']);
Route::get('progetti/print',[ProgettiController::class,'stampaPDFProgetto']);
});

View File

@ -24,5 +24,5 @@ Route::get('/', function () {
Auth::routes(['register' => false]); // Production only
// Auth::routes(); //development mode
Route::get('/calendar', [TagController::class,'calendartest'])->name('calendar');
Route::get('/home', [App\Http\Controllers\HomeController::class, 'index'])->name('home');
// Route::get('/home', [App\Http\Controllers\HomeController::class, 'index'])->name('home');
Route::get('/home', [App\Http\Controllers\HomeController::class, 'index'])->name('home');