From 30cf03bd7de9448078170cf07d58b4ea2b7a5dea Mon Sep 17 00:00:00 2001 From: Flavio Barachino Date: Fri, 16 Jun 2023 14:35:51 +0200 Subject: [PATCH 1/8] aggiunto disabilitazione modifica e cancellazione progetto in caso in cui esso sia in stato di chiuso --- app/Models/Progetti.php | 26 ++++++++++++++------ resources/views/progetti/dettaglio.blade.php | 12 ++++----- resources/views/progetti/list.blade.php | 4 +-- 3 files changed, 27 insertions(+), 15 deletions(-) diff --git a/app/Models/Progetti.php b/app/Models/Progetti.php index 7d4564a..9b4a8e4 100644 --- a/app/Models/Progetti.php +++ b/app/Models/Progetti.php @@ -9,7 +9,7 @@ use Illuminate\Support\Facades\DB; class Progetti extends Model { use HasFactory; - + public static function getProgetti() { return DB::table('progettis') ->select( @@ -23,9 +23,9 @@ class Progetti extends Model 'budget', 'stato', 'note') - ->join('users','progettis.fk_user','=','users.id')->get(); + ->join('users','progettis.fk_user','=','users.id')->get(); } - + public static function getProgettoById($id){ return DB::table('progettis')-> join('users','progettis.fk_user','=','users.id')-> @@ -33,7 +33,7 @@ class Progetti extends Model where('progettis.id','=',$id)-> get(); } - + public static function saveProgetto($progetto){ DB::table('progettis')->insert([ 'nome'=>$progetto['nome'], @@ -46,12 +46,24 @@ class Progetti extends Model 'stato'=>$progetto['stato'], 'note'=>$progetto['note'] ]); - + } - + public static function delProgetto($progetto_id) { DB::table('progettis')->delete($progetto_id); } - + + public static function chiudiProgetto($progetto_id) + { + // chiude il progetto e lo rende non cancellabile e non più editabile + // potrà solo essere esportato in PDF + DB::table('progettis') + ->where('id','=', $progetto_id) + ->update([ + 'stato'=>'chiuso', + 'data_fine'=>date('Y-m-d'), + ]); + + } } diff --git a/resources/views/progetti/dettaglio.blade.php b/resources/views/progetti/dettaglio.blade.php index b7bb7fd..72a737c 100644 --- a/resources/views/progetti/dettaglio.blade.php +++ b/resources/views/progetti/dettaglio.blade.php @@ -86,7 +86,7 @@
- + @if($progetto->stato !='chiuso')@endif
{{ $riga->descrizione }} - + value="{{$riga->id}}">Edit@endif @else @@ -138,7 +138,7 @@ - - + @endforeach From 84c0eaa48bfb5fa713552b6baa4a18fcb0b114fc Mon Sep 17 00:00:00 2001 From: adim Date: Sun, 18 Jun 2023 10:07:19 +0000 Subject: [PATCH 2/8] Aggiornato Readme Aggiornato readme Signed-off-by: adim --- README.md | 28 +++++++++++----------------- 1 file changed, 11 insertions(+), 17 deletions(-) diff --git a/README.md b/README.md index bbca887..bc958c7 100644 --- a/README.md +++ b/README.md @@ -1,29 +1,23 @@ -# Gestionale di Famiglia -Piccolo sistema di gestione famigliare. +# Gestionale Per le associazioni +Piccolo sistema di gestione. Al momento sono presenti: - Gestione delle Entrate e uscite con possibilità di inserimento delle foto degli scontrini ed eventuali documenti in PDF. - Possibilità di importare gli estratti conto da un file excel o csv. - - Un sistema di gestione delle letture dei contatori per il GAS e per l'Energia elettrica - - Un sistema di gestione delle autovetture e relative operazioni effettuate su di esse. + - Un sistema di gestione delle letture dei contatori per il GAS e per l'Energia elettrica [Da rivedere] + - Un sistema di gestione delle autovetture e relative operazioni effettuate su di esse. [Da rivedere] - Una rubrica telefonica e degli indirizzi - - Una gestione dei progetti (ancora in sviluppo) - - Una gestione degli utenti e dei gruppi e relativi permessi. + - Una gestione dei progetti (ancora in sviluppo) [Da rivedere] + - Una gestione degli utenti e dei gruppi e relativi permessi. [Da rivedere] *Sviluppato in php, mysql, jquery su framework Laravel*. - -## Installazione - - clonare il repository - - copiare il file ```.env.example``` in ```.env``` - - inserire le informazioni del database (username,password,dbname) - - lanciare ``` composer install ``` - - lanciare ``` php artisan migrate --seed``` - - di default si crea l'utente ``` admin ``` con password ```admin ``` per accedere la prima volta. - - ## Sviluppatori (attualmente) Flavio Barachino +## Consulenza e richiesta +Mariano Benzi + ### Vuoi partecipare? -Scrivimi con le tue proposte, le tue critiche, i tuoi suggerimenti. +Scrivici con le tue proposte, le tue critiche, i tuoi suggerimenti. +AdimGest From 792d1a0580e6f29c4b30cc72324b897e770e9906 Mon Sep 17 00:00:00 2001 From: adim Date: Sun, 18 Jun 2023 10:07:58 +0000 Subject: [PATCH 3/8] Aggiornare 'README.md' --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index bc958c7..270bbf2 100644 --- a/README.md +++ b/README.md @@ -20,4 +20,4 @@ Mariano Benzi ### Vuoi partecipare? Scrivici con le tue proposte, le tue critiche, i tuoi suggerimenti. -AdimGest +AdimGest From 66157c347763e090578f4303aacc626820b6c6cc Mon Sep 17 00:00:00 2001 From: Flavio Barachino Date: Tue, 20 Jun 2023 08:08:47 +0200 Subject: [PATCH 4/8] creazione tabelle models e controller per Rivista Gruppi e Associazioni, generato sistema di assegnazione permessi diretti ad un utente --- .../Controllers/AssociazioneController.php | 10 ++++ app/Http/Controllers/GruppiController.php | 10 ++++ app/Http/Controllers/MovimentiController.php | 8 ++- app/Http/Controllers/RivistaController.php | 10 ++++ app/Http/Controllers/Utenti.php | 51 ++++++++++++---- app/Models/Associazione.php | 11 ++++ app/Models/Gruppi.php | 11 ++++ app/Models/Movimenti.php | 60 ++++++++++++------- app/Models/Rivista.php | 11 ++++ composer.lock | 18 +++--- .../2023_06_08_162605_columns_anagrafica.php | 8 +-- ...023_06_19_084521_create_rivistas_table.php | 31 ++++++++++ ...6_19_084538_create_associaziones_table.php | 31 ++++++++++ ...2023_06_19_094609_create_gruppis_table.php | 31 ++++++++++ resources/views/components/menu.blade.php | 20 ++++++- resources/views/layouts/dashboard.blade.php | 60 ++++++++++++++++--- resources/views/users/assignperm.blade.php | 47 +++++++++++++++ routes/admin.php | 24 +++++++- 18 files changed, 395 insertions(+), 57 deletions(-) create mode 100644 app/Http/Controllers/AssociazioneController.php create mode 100644 app/Http/Controllers/GruppiController.php create mode 100644 app/Http/Controllers/RivistaController.php create mode 100644 app/Models/Associazione.php create mode 100644 app/Models/Gruppi.php create mode 100644 app/Models/Rivista.php create mode 100644 database/migrations/2023_06_19_084521_create_rivistas_table.php create mode 100644 database/migrations/2023_06_19_084538_create_associaziones_table.php create mode 100644 database/migrations/2023_06_19_094609_create_gruppis_table.php create mode 100644 resources/views/users/assignperm.blade.php diff --git a/app/Http/Controllers/AssociazioneController.php b/app/Http/Controllers/AssociazioneController.php new file mode 100644 index 0000000..74819b8 --- /dev/null +++ b/app/Http/Controllers/AssociazioneController.php @@ -0,0 +1,10 @@ +$bilancio, + 'entrate'=>$entrate, + 'uscite'=>$uscite, 'saldo'=>$saldo, ]); } diff --git a/app/Http/Controllers/RivistaController.php b/app/Http/Controllers/RivistaController.php new file mode 100644 index 0000000..1396925 --- /dev/null +++ b/app/Http/Controllers/RivistaController.php @@ -0,0 +1,10 @@ +$ruolo]); @@ -23,40 +23,69 @@ class Utenti extends Controller $permission=Permission::create(['name'=>$permesso]); return json_encode(Permission::all()->pluck('name')); } - + function userClass() { $user=new User(); return get_class_methods($user); } - + // post del create user function createUser(Request $params){ User::addUser($params); return redirect('/admin/users/new'); } - + // mostra il form della creazione dell'utente function addUser(){ $roles = Role::all(); $users = User::all(); return view('users.create',['ruoli'=>$roles,'users'=>$users]); } - + function listUser(){ $users = User::all(); - return view('users.list',['users'=>$users]); + return view('users.list',['users'=>$users]); } - + function listRoles(){ $roles = Role::all(); return $roles; } - + function deleteUser($id) { User::destroy($id); - + return redirect('/admin/users/new'); } - - + + function givePermissionToUser() + { + $users=User::all(); + $permissions=Permission::all(); + return view('users.assignperm',['users'=>$users,'permissions'=>$permissions]); + } + + function assignPermission(Request $request) + { + //$user=User::getUserbyId($request['user']); + $user=User::findOrFail($request['user']); + foreach($request['permesso'] as $key => $value){ + if($value=='true') + { + $key=str_replace('\'','',$key); + $user->givePermissionTo($key); + // $permission['allowed'][]=$key; + } + else + { + $key=str_replace('\'','',$key); + $user->revokePermissionTo($key); + // $permission['denied'][]=$key; + } + + } + return redirect('/admin/users/givepermission'); + + //return dd($user); + } } diff --git a/app/Models/Associazione.php b/app/Models/Associazione.php new file mode 100644 index 0000000..d3fc4ea --- /dev/null +++ b/app/Models/Associazione.php @@ -0,0 +1,11 @@ +groupBy('movimentis.id','mov_data','mov_descrizione','mov_importo','cat_name','tag_name') ->get(); } - + public static function getSaldo($date) { return DB::table('movimentis')->whereYear('mov_data','=',$date)->sum('mov_importo'); } - + public static function getSaldoTot() { return DB::table('movimentis')->sum('mov_importo'); } - + public static function insSpesa($request) { DB::table('movimentis')->insert( [ @@ -40,7 +40,7 @@ class Movimenti extends Model 'mov_inserito_da'=>$request['userid'], ]); } - + public static function insEntrata($request) { DB::table('movimentis')->insert( [ @@ -52,7 +52,7 @@ class Movimenti extends Model 'mov_inserito_da'=>$request['userid'], ]); } - + public static function export() { return DB::table('movimentis') ->join('categories','movimentis.mov_fk_categoria','=','categories.id') @@ -61,7 +61,7 @@ class Movimenti extends Model ->orderBy('Data','asc') ->get(); } - + public static function reportSpesa($year,$month) { return DB::table('movimentis') ->selectRaw('ABS(Sum(movimentis.mov_importo)) as resoconto, categories.cat_name,categories.id') @@ -72,7 +72,7 @@ class Movimenti extends Model ->groupBy('cat_name','categories.id') ->get(); } - + public static function reportEntrate($year,$month) { return DB::table('movimentis') ->selectRaw('ABS(Sum(movimentis.mov_importo)) as resoconto, categories.cat_name,categories.id') @@ -83,7 +83,7 @@ class Movimenti extends Model ->groupBy('cat_name','categories.id') ->get(); } - + public static function getMovimentoById($id) { return DB::table('movimentis') ->join('categories','movimentis.mov_fk_categoria','=','categories.id') @@ -91,7 +91,7 @@ class Movimenti extends Model ->where('movimentis.id','=',$id) ->get(); } - + public static function updateMovimenti($request) { DB::table('movimentis') ->where('id','=', $request['id']) @@ -104,13 +104,13 @@ class Movimenti extends Model 'mov_inserito_da'=>$request['userid'], ]); } - + public static function deleteMovimento($id) { DB::table('movimentis') ->where('id','=', $id) ->delete(); } - + public static function listByCatMonth($month,$cat,$year) { return DB::table('movimentis') ->join('categories','movimentis.mov_fk_categoria','=','categories.id') @@ -123,7 +123,7 @@ class Movimenti extends Model ->groupBy('movimentis.id','mov_data','mov_descrizione','mov_importo','cat_name','tag_name') ->get(); } - + public static function listByCategory($cat) { return DB::table('movimentis') ->join('categories','movimentis.mov_fk_categoria','=','categories.id') @@ -134,7 +134,7 @@ class Movimenti extends Model ->groupBy('movimentis.id','mov_data','mov_descrizione','mov_importo','cat_name','tag_name') ->get(); } - + public static function getByTag($tag) { return DB::table('movimentis') ->where('mov_fk_tags','=',$tag) @@ -151,7 +151,7 @@ class Movimenti extends Model $inputPath='/var/www/html/bubofamily/public/storage/'.$filename; $outputPath='/var/www/html/bubofamily/public/'.$filename; rename($inputPath,$outputPath); - + $collection = (new FastExcel)->import($filename, function ($line){ if($line['Data valuta']) { @@ -166,13 +166,13 @@ class Movimenti extends Model } }); } - + public static function importEstrattoCR($filename) { $inputPath='/var/www/html/bubofamily/public/storage/'.$filename; $outputPath='/var/www/html/bubofamily/public/'.$filename.'.csv'; rename($inputPath,$outputPath); - + $collection = (new FastExcel)->configureCsv(';')->import($filename.'.csv', function ($line){ if($line['VALUTA']) { @@ -202,18 +202,18 @@ class Movimenti extends Model } }); } - + public static function getYearsFromMovimenti() { $anni=DB::table('movimentis')->select(DB::raw('DISTINCT YEAR(mov_data) as anno'))->get(); // dd($anni); // for test purposes return $anni; } - - + + private static function dateFormat($type,$string) { - + if($type) { $string=$string->format('Y-m-d'); @@ -226,4 +226,24 @@ class Movimenti extends Model } } + public static function getEntrate($year) + { + $entrate_anno=DB::table('movimentis') + ->where('mov_importo','>',0) + ->whereYear('mov_data', '=' , $year) + ->sum('mov_importo'); + //->get(); + return $entrate_anno; + } + + public static function getUscite($year) + { + $uscite_anno=DB::table('movimentis') + ->where('mov_importo','<',0) + ->whereYear('mov_data', '=' , $year) + ->sum('mov_importo'); + //->get(); + return ($uscite_anno); + } + } diff --git a/app/Models/Rivista.php b/app/Models/Rivista.php new file mode 100644 index 0000000..1e22ce2 --- /dev/null +++ b/app/Models/Rivista.php @@ -0,0 +1,11 @@ +longText('ang_indirizzo'); + /*Schema::table('anagraficas', function (Blueprint $table) { + /* // + // $table->longText('ang_indirizzo'); $table->string('ang_CAP'); $table->string('ang_Citta'); $table->string('ang_Provincia'); $table->string('ang_telefono'); - }); + });*/ } /** diff --git a/database/migrations/2023_06_19_084521_create_rivistas_table.php b/database/migrations/2023_06_19_084521_create_rivistas_table.php new file mode 100644 index 0000000..c2d30fc --- /dev/null +++ b/database/migrations/2023_06_19_084521_create_rivistas_table.php @@ -0,0 +1,31 @@ +id(); + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('rivistas'); + } +} diff --git a/database/migrations/2023_06_19_084538_create_associaziones_table.php b/database/migrations/2023_06_19_084538_create_associaziones_table.php new file mode 100644 index 0000000..8019dc7 --- /dev/null +++ b/database/migrations/2023_06_19_084538_create_associaziones_table.php @@ -0,0 +1,31 @@ +id(); + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('associaziones'); + } +} diff --git a/database/migrations/2023_06_19_094609_create_gruppis_table.php b/database/migrations/2023_06_19_094609_create_gruppis_table.php new file mode 100644 index 0000000..25e59c1 --- /dev/null +++ b/database/migrations/2023_06_19_094609_create_gruppis_table.php @@ -0,0 +1,31 @@ +id(); + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('gruppis'); + } +} diff --git a/resources/views/components/menu.blade.php b/resources/views/components/menu.blade.php index c1615d6..4c67f85 100644 --- a/resources/views/components/menu.blade.php +++ b/resources/views/components/menu.blade.php @@ -49,7 +49,21 @@ @endcan @can('progetti')
  • Progetti
  • -@endcan @can('amministrazione') + +@endcan +@can('gruppi') +
  • + Gruppi
  • +@endcan +@can('rivista') +
  • + Rivista
  • +@endcan +@can('associazione') +
  • + Associazione
  • +@endcan +@can('amministrazione')
  • Amministrazione
  • @endcan diff --git a/resources/views/layouts/dashboard.blade.php b/resources/views/layouts/dashboard.blade.php index 766ec72..3b86dbb 100644 --- a/resources/views/layouts/dashboard.blade.php +++ b/resources/views/layouts/dashboard.blade.php @@ -9,15 +9,15 @@ @hasanyrole('user|admin')
    -
    +
    - +
    -
    {{ $bilancio }}
    -
    Bilancio attuale anno {{ date('Y') }}
    +
    {{ $entrate }}
    +
    Entrate attuale anno {{ date('Y') }}
    @@ -30,9 +30,55 @@
    + +
    +
    +
    +
    +
    + +
    +
    +
    {{ $uscite }}
    +
    Uscite attuale anno {{ date('Y') }}
    +
    +
    +
    + + + +
    +
    +
    -
    +
    +
    +
    +
    + +
    +
    +
    {{ $entrate + $uscite }}
    +
    Saldo attuale nell'anno
    +
    +
    +
    + + + +
    +
    +
    +
    @@ -52,11 +98,11 @@
    -
    +
    @endhasanyrole
    @endsection @section('script') -@endsection \ No newline at end of file +@endsection diff --git a/resources/views/users/assignperm.blade.php b/resources/views/users/assignperm.blade.php new file mode 100644 index 0000000..29b6b60 --- /dev/null +++ b/resources/views/users/assignperm.blade.php @@ -0,0 +1,47 @@ +@extends('admin') +@section('content') +
    +
    +

    Assegnazione permessi

    +
    +
    +
    +
    +
    +
    +
    + Nuova assegnazione permessi +
    +
    + + + +
    {{ $riga->ore }} {{ $riga->prezzo }}@if($progetto->stato !='chiuso')X  
    {{ $progetto->stato; }} {{ $progetto->name; }} {{ $progetto->budget; }}Cancella@if($progetto->stato != 'chiuso')Cancella@endif
    + + + + + @foreach($permissions as $perm) + + + + + @endforeach +
    PermessoAzione
    {{$perm->name}} + Attiva +   + Disattiva +
    + @csrf + + +
    +
    +
    + + +@endsection diff --git a/routes/admin.php b/routes/admin.php index dde874a..7b48f90 100644 --- a/routes/admin.php +++ b/routes/admin.php @@ -128,6 +128,8 @@ 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']); }); // PROGETTI Route::group(['middleware'=>['permission:progetti']], function(){ @@ -142,7 +144,27 @@ Route::group(['middleware'=>['permission:progetti']], function(){ Route::post('progetti/rigaupdate', [RigaProgettoController::class, 'updateRiga']); Route::get('progetti/coordinatori', [ProgettiController::class, 'getCoordinatori']); }); - +/// RIVISTA +Route::group(['middleware'=>['permission:rivista']], function(){ + Route::get('rivista',[RivistaController::class,'rivistaHome'])->name('rivista'); + Route::get('rivista/pubblica',[RivistaController::class,'rivistaDigCarica']); + Route::post('rivista/pubblica',[RivistaController::class,'rivistaDigPubblica']); + Route::get('rivista/abbonati',[RivistaController::class,'rivistaAbbonati']); + Route::get('rivista/abbonamenti',[RivistaController::class,'rivistaAbbonamenti']); + Route::get('rivista/abbonamenti/rinnovo',[RivistaController::class,'rivistaAbbonamentiRinnovo']); + Route::get('rivista/abbonamenti/nuovo',[RivistaController::class,'rivistaAbbonamentiNuovo']); + Route::get('rivista/abbonamenti/scadenza',[RivistaController::class,'rivistaAbbonamentiScadono']); + Route::get('rivista/new',[RivistaController::class,'rivistaNuova']); + Route::get('rivista/archivio',[RivistaController::class,'rivistaArchivio']); +}); +/// ASSOCIAZIONE +Route::group(['middleware'=>['permission:associazione']], function(){ + Route::get('associazione',[AssociazioneController::class,'assocHome'])->name('associazione'); +}); +/// GRUPPI +Route::group(['middleware'=>['permission:gruppi']], function(){ + Route::get('gruppi',[GruppiController::class,'gruppiHome'])->name('gruppi'); +}); /// TEST ROUTES Route::get('test/fullcalendar', [FullCalenderController::class, 'index']); From fcbe1e1a4e6dc4acc72c59e7d001571631095560 Mon Sep 17 00:00:00 2001 From: Flavio Barachino Date: Tue, 20 Jun 2023 08:18:20 +0200 Subject: [PATCH 5/8] cambiato titolo dell'applicazione --- app/Http/Controllers/Utenti.php | 2 -- resources/views/admin.blade.php | 16 ++++++++-------- 2 files changed, 8 insertions(+), 10 deletions(-) diff --git a/app/Http/Controllers/Utenti.php b/app/Http/Controllers/Utenti.php index 3bb067b..3741cdb 100644 --- a/app/Http/Controllers/Utenti.php +++ b/app/Http/Controllers/Utenti.php @@ -85,7 +85,5 @@ class Utenti extends Controller } return redirect('/admin/users/givepermission'); - - //return dd($user); } } diff --git a/resources/views/admin.blade.php b/resources/views/admin.blade.php index 327fe2f..efc8361 100644 --- a/resources/views/admin.blade.php +++ b/resources/views/admin.blade.php @@ -7,7 +7,7 @@ - BuBo Family - made with <3 - + {{env('APP_NAME')}} @@ -20,13 +20,13 @@ - - - @@ -71,7 +71,7 @@ @@ -98,7 +98,7 @@ @section('content') Contenuto @show - + @@ -115,7 +115,7 @@ - + From b82ec0adc006afc59e2ae045913ec0b682776a81 Mon Sep 17 00:00:00 2001 From: Flavio Barachino Date: Tue, 20 Jun 2023 08:27:20 +0200 Subject: [PATCH 6/8] Aggiunto assegnazione permessi diretti ad utente --- app/Http/Controllers/ProgettiController.php | 29 +++++++++--- app/Http/Controllers/Utenti.php | 50 ++++++++++++++++----- app/Models/Progetti.php | 11 +++++ resources/views/components/menu.blade.php | 2 +- resources/views/progetti/list.blade.php | 7 ++- resources/views/users/assignperm.blade.php | 47 +++++++++++++++++++ routes/admin.php | 6 +++ 7 files changed, 133 insertions(+), 19 deletions(-) create mode 100644 resources/views/users/assignperm.blade.php diff --git a/app/Http/Controllers/ProgettiController.php b/app/Http/Controllers/ProgettiController.php index 0fac187..d1f039b 100644 --- a/app/Http/Controllers/ProgettiController.php +++ b/app/Http/Controllers/ProgettiController.php @@ -19,28 +19,28 @@ class ProgettiController extends Controller 'progetti'=>Progetti::getProgetti() ]); } - + public function nuovoProgetto() { return view('progetti.new',['coordinatori'=>User::getUsers()]); } - + public function getCoordinatori() { return json_encode(User::getUsers()); } - + public function salvaProgetto(Request $request) { Progetti::saveProgetto($request); return redirect(Route('progetti')); } - + public function deleteProgetto(Request $param) { Progetti::delProgetto($param['id']); return redirect(Route('progetti')); } - + public function dettaglioProgetto($id) { @@ -51,5 +51,22 @@ class ProgettiController extends Controller return view('progetti.dettaglio',['dettaglio'=>$progetto, 'righe'=>$righe, 'tot'=>$costo_tot]); //dd($righe); } - + + public function chiudiProgetto(Request $id) + { + Progetti::chiudiProgetto($id['id']); + return redirect(Route('progetti')); + } + + public function riapriProgetto(Request $id) + { + Progetti::riapriProgetto($id['id']); + return redirect(Route('progetti')); + } + + public function stampaPDF(Request $id) + { + + } + } diff --git a/app/Http/Controllers/Utenti.php b/app/Http/Controllers/Utenti.php index c8d33be..a2b9aa2 100644 --- a/app/Http/Controllers/Utenti.php +++ b/app/Http/Controllers/Utenti.php @@ -12,7 +12,7 @@ use App\Models\User; class Utenti extends Controller { - + public function createRole($ruolo) { $role=Role::create(['name'=>$ruolo]); @@ -23,40 +23,68 @@ class Utenti extends Controller $permission=Permission::create(['name'=>$permesso]); return json_encode(Permission::all()->pluck('name')); } - + function userClass() { $user=new User(); return get_class_methods($user); } - + // post del create user function createUser(Request $params){ User::addUser($params); return redirect('/admin/users/new'); } - + // mostra il form della creazione dell'utente function addUser(){ $roles = Role::all(); $users = User::all(); return view('users.create',['ruoli'=>$roles,'users'=>$users]); } - + function listUser(){ $users = User::all(); - return view('users.list',['users'=>$users]); + return view('users.list',['users'=>$users]); } - + function listRoles(){ $roles = Role::all(); return $roles; } - + function deleteUser($id) { User::destroy($id); - + return redirect('/admin/users/new'); } - - + + function givePermissionToUser() + { + $users=User::all(); + $permissions=Permission::all(); + return view('users.assignperm',['users'=>$users,'permissions'=>$permissions]); + } + + function assignPermission(Request $request) + { + //$user=User::getUserbyId($request['user']); + $user=User::findOrFail($request['user']); + foreach($request['permesso'] as $key => $value){ + if($value=='true') + { + $key=str_replace('\'','',$key); + $user->givePermissionTo($key); + // $permission['allowed'][]=$key; + } + else + { + $key=str_replace('\'','',$key); + $user->revokePermissionTo($key); + // $permission['denied'][]=$key; + } + + } + return redirect('/admin/users/givepermission'); + } } + diff --git a/app/Models/Progetti.php b/app/Models/Progetti.php index 9b4a8e4..f17eaa1 100644 --- a/app/Models/Progetti.php +++ b/app/Models/Progetti.php @@ -66,4 +66,15 @@ class Progetti extends Model ]); } + + public static function riapriProgetto($progetto_id) + { + DB::table('progettis') + ->where('id','=', $progetto_id) + ->update([ + 'stato'=>'aperto', + 'data_fine'=>null, + ]); + } + } diff --git a/resources/views/components/menu.blade.php b/resources/views/components/menu.blade.php index c1615d6..8dd0bb4 100644 --- a/resources/views/components/menu.blade.php +++ b/resources/views/components/menu.blade.php @@ -58,7 +58,7 @@
  • Gruppi
  • Permessi
  • --> -
  • Assegna Ruoli
  • +
  • Assegna Permessi
  • diff --git a/resources/views/progetti/list.blade.php b/resources/views/progetti/list.blade.php index 2c615df..2d7076e 100644 --- a/resources/views/progetti/list.blade.php +++ b/resources/views/progetti/list.blade.php @@ -43,7 +43,12 @@ {{ $progetto->name; }} {{ $progetto->budget; }} @if($progetto->stato != 'chiuso')Cancella@endif + class="btn btn-danger">Cancella Chiudi@endif + @if($progetto->stato == 'chiuso')Riapri@endif + Stampa PDF @endforeach diff --git a/resources/views/users/assignperm.blade.php b/resources/views/users/assignperm.blade.php new file mode 100644 index 0000000..29b6b60 --- /dev/null +++ b/resources/views/users/assignperm.blade.php @@ -0,0 +1,47 @@ +@extends('admin') +@section('content') +
    +
    +

    Assegnazione permessi

    +
    +
    +
    +
    +
    +
    +
    + Nuova assegnazione permessi +
    +
    + +
    + + + + + + + @foreach($permissions as $perm) + + + + + @endforeach +
    PermessoAzione
    {{$perm->name}} + Attiva +   + Disattiva +
    + @csrf + +
    +
    +
    +
    +
    +
    +@endsection diff --git a/routes/admin.php b/routes/admin.php index dde874a..375864f 100644 --- a/routes/admin.php +++ b/routes/admin.php @@ -128,6 +128,8 @@ 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']); }); // PROGETTI Route::group(['middleware'=>['permission:progetti']], function(){ @@ -141,6 +143,10 @@ Route::group(['middleware'=>['permission:progetti']], function(){ Route::get('progetti/detail/edit/{id}', [RigaProgettoController::class, 'editRiga']); Route::post('progetti/rigaupdate', [RigaProgettoController::class, 'updateRiga']); Route::get('progetti/coordinatori', [ProgettiController::class, 'getCoordinatori']); + Route::get('progetti/close',[ProgettiController::class, 'chiudiProgetto']); + Route::get('progetti/reopen',[ProgettiController::class, 'riapriProgetto']); + + }); From d5f4d5c8272a3cd84955a52cc5f306a87d7b71f6 Mon Sep 17 00:00:00 2001 From: Flavio Barachino Date: Tue, 20 Jun 2023 08:29:13 +0200 Subject: [PATCH 7/8] Creato link al menu per la gestione dei permessi --- resources/views/components/menu.blade.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/views/components/menu.blade.php b/resources/views/components/menu.blade.php index 4c67f85..2d89f6e 100644 --- a/resources/views/components/menu.blade.php +++ b/resources/views/components/menu.blade.php @@ -72,7 +72,7 @@
  • Gruppi
  • Permessi
  • --> -
  • Assegna Ruoli
  • +
  • Assegna Permessi
  • From 3dc54235c5ad57e647ce70a2a088533607ccdc1f Mon Sep 17 00:00:00 2001 From: Flavio Barachino Date: Tue, 20 Jun 2023 09:28:23 +0200 Subject: [PATCH 8/8] ripristinato conflitti --- resources/views/components/menu.blade.php | 18 +----------------- 1 file changed, 1 insertion(+), 17 deletions(-) diff --git a/resources/views/components/menu.blade.php b/resources/views/components/menu.blade.php index 7d63906..ed4faf8 100644 --- a/resources/views/components/menu.blade.php +++ b/resources/views/components/menu.blade.php @@ -51,18 +51,7 @@ Progetti @endcan -@can('gruppi') -
  • - Gruppi
  • -@endcan -@can('rivista') -
  • - Rivista
  • -@endcan -@can('associazione') -
  • - Associazione
  • -@endcan + @can('amministrazione')
  • Amministrazione @@ -73,13 +62,8 @@
  • Permessi
  • -->
  • Assegna Permessi
  • -<<<<<<< HEAD - @endcan