Merge branch 'master' of https://bitbucket.org/FlavioBarachino/bubofamily
This commit is contained in:
commit
36a863eafd
28
README.md
28
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 <flavio.barachino@lavorain.cloud>
|
||||
|
||||
## 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 <adimgest@lavorain.cloud>
|
||||
|
10
app/Http/Controllers/AssociazioneController.php
Normal file
10
app/Http/Controllers/AssociazioneController.php
Normal file
@ -0,0 +1,10 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
class AssociazioneController extends Controller
|
||||
{
|
||||
//
|
||||
}
|
10
app/Http/Controllers/GruppiController.php
Normal file
10
app/Http/Controllers/GruppiController.php
Normal file
@ -0,0 +1,10 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
class GruppiController extends Controller
|
||||
{
|
||||
//
|
||||
}
|
@ -37,10 +37,14 @@ class MovimentiController extends Controller
|
||||
|
||||
public static function dashboard()
|
||||
{
|
||||
$bilancio=Movimenti::getSaldo(date('Y'));
|
||||
/*$bilancio=Movimenti::getSaldo(date('Y'));*/
|
||||
$entrate=Movimenti::getEntrate(date('Y'));
|
||||
$uscite=Movimenti::getUscite(date('Y'));
|
||||
$saldo=Movimenti::getSaldoTot();
|
||||
|
||||
return view('layouts.dashboard',[
|
||||
'bilancio'=>$bilancio,
|
||||
'entrate'=>$entrate,
|
||||
'uscite'=>$uscite,
|
||||
'saldo'=>$saldo,
|
||||
]);
|
||||
}
|
||||
|
@ -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)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
10
app/Http/Controllers/RivistaController.php
Normal file
10
app/Http/Controllers/RivistaController.php
Normal file
@ -0,0 +1,10 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
class RivistaController extends Controller
|
||||
{
|
||||
//
|
||||
}
|
@ -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');
|
||||
}
|
||||
}
|
||||
|
||||
|
11
app/Models/Associazione.php
Normal file
11
app/Models/Associazione.php
Normal file
@ -0,0 +1,11 @@
|
||||
<?php
|
||||
|
||||
namespace App\Models;
|
||||
|
||||
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
|
||||
class Associazione extends Model
|
||||
{
|
||||
use HasFactory;
|
||||
}
|
11
app/Models/Gruppi.php
Normal file
11
app/Models/Gruppi.php
Normal file
@ -0,0 +1,11 @@
|
||||
<?php
|
||||
|
||||
namespace App\Models;
|
||||
|
||||
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
|
||||
class Gruppi extends Model
|
||||
{
|
||||
use HasFactory;
|
||||
}
|
@ -20,15 +20,15 @@ class Movimenti extends Model
|
||||
->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);
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -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,35 @@ 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'),
|
||||
]);
|
||||
|
||||
}
|
||||
|
||||
public static function riapriProgetto($progetto_id)
|
||||
{
|
||||
DB::table('progettis')
|
||||
->where('id','=', $progetto_id)
|
||||
->update([
|
||||
'stato'=>'aperto',
|
||||
'data_fine'=>null,
|
||||
]);
|
||||
}
|
||||
|
||||
}
|
||||
|
11
app/Models/Rivista.php
Normal file
11
app/Models/Rivista.php
Normal file
@ -0,0 +1,11 @@
|
||||
<?php
|
||||
|
||||
namespace App\Models;
|
||||
|
||||
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
|
||||
class Rivista extends Model
|
||||
{
|
||||
use HasFactory;
|
||||
}
|
18
composer.lock
generated
18
composer.lock
generated
@ -501,28 +501,28 @@
|
||||
},
|
||||
{
|
||||
"name": "doctrine/inflector",
|
||||
"version": "2.0.6",
|
||||
"version": "2.0.8",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/doctrine/inflector.git",
|
||||
"reference": "d9d313a36c872fd6ee06d9a6cbcf713eaa40f024"
|
||||
"reference": "f9301a5b2fb1216b2b08f02ba04dc45423db6bff"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/doctrine/inflector/zipball/d9d313a36c872fd6ee06d9a6cbcf713eaa40f024",
|
||||
"reference": "d9d313a36c872fd6ee06d9a6cbcf713eaa40f024",
|
||||
"url": "https://api.github.com/repos/doctrine/inflector/zipball/f9301a5b2fb1216b2b08f02ba04dc45423db6bff",
|
||||
"reference": "f9301a5b2fb1216b2b08f02ba04dc45423db6bff",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": "^7.2 || ^8.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"doctrine/coding-standard": "^10",
|
||||
"doctrine/coding-standard": "^11.0",
|
||||
"phpstan/phpstan": "^1.8",
|
||||
"phpstan/phpstan-phpunit": "^1.1",
|
||||
"phpstan/phpstan-strict-rules": "^1.3",
|
||||
"phpunit/phpunit": "^8.5 || ^9.5",
|
||||
"vimeo/psalm": "^4.25"
|
||||
"vimeo/psalm": "^4.25 || ^5.4"
|
||||
},
|
||||
"type": "library",
|
||||
"autoload": {
|
||||
@ -572,7 +572,7 @@
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/doctrine/inflector/issues",
|
||||
"source": "https://github.com/doctrine/inflector/tree/2.0.6"
|
||||
"source": "https://github.com/doctrine/inflector/tree/2.0.8"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@ -588,7 +588,7 @@
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2022-10-20T09:10:12+00:00"
|
||||
"time": "2023-06-16T13:40:37+00:00"
|
||||
},
|
||||
{
|
||||
"name": "doctrine/lexer",
|
||||
@ -10285,5 +10285,5 @@
|
||||
"php": "^7.3|^8.0"
|
||||
},
|
||||
"platform-dev": [],
|
||||
"plugin-api-version": "2.2.0"
|
||||
"plugin-api-version": "2.3.0"
|
||||
}
|
||||
|
@ -13,14 +13,14 @@ class ColumnsAnagrafica extends Migration
|
||||
*/
|
||||
public function up()
|
||||
{
|
||||
Schema::table('anagraficas', function (Blueprint $table) {
|
||||
//
|
||||
$table->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');
|
||||
});
|
||||
});*/
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -0,0 +1,31 @@
|
||||
<?php
|
||||
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
|
||||
class CreateRivistasTable extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function up()
|
||||
{
|
||||
Schema::create('rivistas', function (Blueprint $table) {
|
||||
$table->id();
|
||||
$table->timestamps();
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function down()
|
||||
{
|
||||
Schema::dropIfExists('rivistas');
|
||||
}
|
||||
}
|
@ -0,0 +1,31 @@
|
||||
<?php
|
||||
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
|
||||
class CreateAssociazionesTable extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function up()
|
||||
{
|
||||
Schema::create('associaziones', function (Blueprint $table) {
|
||||
$table->id();
|
||||
$table->timestamps();
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function down()
|
||||
{
|
||||
Schema::dropIfExists('associaziones');
|
||||
}
|
||||
}
|
@ -0,0 +1,31 @@
|
||||
<?php
|
||||
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
|
||||
class CreateGruppisTable extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function up()
|
||||
{
|
||||
Schema::create('gruppis', function (Blueprint $table) {
|
||||
$table->id();
|
||||
$table->timestamps();
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function down()
|
||||
{
|
||||
Schema::dropIfExists('gruppis');
|
||||
}
|
||||
}
|
@ -7,7 +7,7 @@
|
||||
<meta name="description" content="">
|
||||
<meta name="author" content="">
|
||||
|
||||
<title>BuBo Family - made with <3 - </title>
|
||||
<title>{{env('APP_NAME')}}</title>
|
||||
|
||||
<!-- Bootstrap Core CSS -->
|
||||
<link href="/css/bootstrap.min.css" rel="stylesheet">
|
||||
@ -20,13 +20,13 @@
|
||||
|
||||
<!-- Custom Fonts -->
|
||||
<link href="/css/font-awesome.min.css" rel="stylesheet" type="text/css">
|
||||
<!-- Latest compiled and minified CSS
|
||||
<!-- Latest compiled and minified CSS
|
||||
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-select@1.13.14/dist/css/bootstrap-select.min.css">
|
||||
-->
|
||||
<!-- Latest compiled and minified JavaScript
|
||||
<!-- Latest compiled and minified JavaScript
|
||||
<script src="https://cdn.jsdelivr.net/npm/bootstrap-select@1.13.14/dist/js/bootstrap-select.min.js"></script>-->
|
||||
|
||||
<!-- (Optional) Latest compiled and minified JavaScript translation files
|
||||
<!-- (Optional) Latest compiled and minified JavaScript translation files
|
||||
<script src="https://cdn.jsdelivr.net/npm/bootstrap-select@1.13.14/dist/js/i18n/defaults-*.min.js"></script>-->
|
||||
|
||||
|
||||
@ -71,7 +71,7 @@
|
||||
<div class="sidebar-nav navbar-collapse">
|
||||
<ul class="nav" id="side-menu">
|
||||
<li class="sidebar-search">
|
||||
<!-- input group
|
||||
<!-- input group
|
||||
<!--<div class="input-group custom-search-form">
|
||||
<input type="text" class="form-control" placeholder="Search...">
|
||||
<span class="input-group-btn">
|
||||
@ -83,7 +83,7 @@
|
||||
<!-- /input-group -->
|
||||
</li>
|
||||
<!-- MENU -->
|
||||
@include('components.menu')
|
||||
@include('components.menu')
|
||||
<!-- / Menu -->
|
||||
</ul>
|
||||
</div>
|
||||
@ -98,7 +98,7 @@
|
||||
@section('content')
|
||||
Contenuto
|
||||
@show
|
||||
|
||||
|
||||
</div>
|
||||
<!-- /.container-fluid -->
|
||||
</div>
|
||||
@ -115,7 +115,7 @@
|
||||
|
||||
<!-- Metis Menu Plugin JavaScript -->
|
||||
<script src="/js/metisMenu.min.js"></script>
|
||||
|
||||
|
||||
<!-- DataTables JavaScript -->
|
||||
<script src="/js/dataTables/jquery.dataTables.min.js"></script>
|
||||
<script src="/js/dataTables/dataTables.bootstrap.min.js"></script>
|
||||
|
@ -49,7 +49,10 @@
|
||||
@endcan @can('progetti')
|
||||
<li><a href="{{ route('progetti'); }}"><i class="fa fa-list fa-fw"></i>
|
||||
Progetti <span class="fa arrow"></span></a></li>
|
||||
@endcan @can('amministrazione')
|
||||
|
||||
@endcan
|
||||
|
||||
@can('amministrazione')
|
||||
<li><a href="#"><i class="fa fa-gears fa-fw"></i>Amministrazione<span
|
||||
class="fa arrow"></span></a>
|
||||
<ul class="nav nav-second-level">
|
||||
@ -58,9 +61,9 @@
|
||||
<li><a class="active" href="/admin/users/newRole">Gruppi</a></li>
|
||||
<li><a class="active" href="/admin/users/newPermission">Permessi</a></li>
|
||||
-->
|
||||
<li><a class="active" href="/admin/users/assignRole">Assegna Ruoli</a></li>
|
||||
<!--
|
||||
<li><a href="/login">Login Page</a></li>
|
||||
<li><a class="active" href="/admin/users/givepermission">Assegna Permessi</a></li>
|
||||
<!--
|
||||
<li><a href="/login">Login Page</a></li>
|
||||
-->
|
||||
</ul> <!-- /.nav-second-level --></li>
|
||||
@endcan
|
||||
|
@ -9,15 +9,15 @@
|
||||
@hasanyrole('user|admin')
|
||||
<!-- WIDGET Bilancio -->
|
||||
<div class="col-lg-4 col-md-8">
|
||||
<div class="panel panel-primary">
|
||||
<div class="panel panel-success">
|
||||
<div class="panel-heading">
|
||||
<div class="row">
|
||||
<div class="col-xs-3">
|
||||
<i class="fa fa-balance-scale fa-5x"></i>
|
||||
<i class="fa fa-plus-square fa-5x"></i>
|
||||
</div>
|
||||
<div class="col-xs-9 text-right">
|
||||
<div class="huge">{{ $bilancio }}</div>
|
||||
<div>Bilancio attuale anno {{ date('Y') }}</div>
|
||||
<div class="huge">{{ $entrate }}</div>
|
||||
<div>Entrate attuale anno {{ date('Y') }}</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@ -30,9 +30,55 @@
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
<!-- WIDGET Bilancio -->
|
||||
<div class="col-lg-4 col-md-8">
|
||||
<div class="panel panel-danger">
|
||||
<div class="panel-heading">
|
||||
<div class="row">
|
||||
<div class="col-xs-3">
|
||||
<i class="fa fa-minus-square fa-5x"></i>
|
||||
</div>
|
||||
<div class="col-xs-9 text-right">
|
||||
<div class="huge">{{ $uscite }}</div>
|
||||
<div>Uscite attuale anno {{ date('Y') }}</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<a href="{{ route('budget');}}">
|
||||
<div class="panel-footer">
|
||||
<span class="pull-left">Report annuo</span>
|
||||
<span class="pull-right"><i class="fa fa-arrow-circle-right"></i></span>
|
||||
<div class="clearfix"></div>
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- WIDGET -->
|
||||
<div class="col-lg-4 col-md-8">
|
||||
<div class="panel panel-green">
|
||||
<div class="panel panel-primary">
|
||||
<div class="panel-heading">
|
||||
<div class="row">
|
||||
<div class="col-xs-3">
|
||||
<i class="fa fa-balance-scale fa-5x"></i>
|
||||
</div>
|
||||
<div class="col-xs-9 text-right">
|
||||
<div class="huge">{{ $entrate + $uscite }}</div>
|
||||
<div>Saldo attuale nell'anno</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<a href="{{ route('budget'); }}">
|
||||
<div class="panel-footer">
|
||||
<span class="pull-left">Report annuo</span>
|
||||
<span class="pull-right"><i class="fa fa-arrow-circle-right"></i></span>
|
||||
<div class="clearfix"></div>
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-4 col-md-8">
|
||||
<div class="panel panel-yellow">
|
||||
<div class="panel-heading">
|
||||
<div class="row">
|
||||
<div class="col-xs-3">
|
||||
@ -52,11 +98,11 @@
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endhasanyrole
|
||||
</div>
|
||||
@endsection
|
||||
|
||||
@section('script')
|
||||
<script src="/js/app/dashboard.js"></script>
|
||||
@endsection
|
||||
@endsection
|
||||
|
@ -86,7 +86,7 @@
|
||||
<div class="row">
|
||||
<div class="col-xs-10">
|
||||
<div class="row p-3">
|
||||
<button class="btn btn-primary open_modal_addRow">Nuova riga</button>
|
||||
@if($progetto->stato !='chiuso')<button class="btn btn-primary open_modal_addRow">Nuova riga</button>@endif
|
||||
</div>
|
||||
<div class="row">
|
||||
<table class="table table-striped table-bordered table-hover"
|
||||
@ -107,11 +107,11 @@
|
||||
<td>{{ $riga->descrizione }}</td>
|
||||
<td>{{ $riga->ore }}</td>
|
||||
<td>{{ $riga->prezzo }}</td>
|
||||
<td><a
|
||||
<td>@if($progetto->stato !='chiuso')<a
|
||||
href="/admin/progetti/delete_row/{{ $riga->id }}/return/{{ $progetto->id }}"
|
||||
class="btn btn-danger">X</a>
|
||||
<button class="btn btn-warning btn-detail open_modal"
|
||||
value="{{$riga->id}}">Edit</button></td>
|
||||
value="{{$riga->id}}">Edit</button>@endif</td>
|
||||
|
||||
</tr>
|
||||
@else
|
||||
@ -138,7 +138,7 @@
|
||||
</div>
|
||||
|
||||
<!-- MODAL EDIT Riga-->
|
||||
<div class="modal fade" id="myModal" tabindex="-1" role="dialog"
|
||||
<div class="modal fade" id="myModal" tabindex="-1" role="dialog"
|
||||
aria-labelledby="myModalLabel" aria-hidden="true">
|
||||
<form method="POST" action="/admin/progetti/rigaupdate">
|
||||
<div class="modal-dialog" role="document">
|
||||
@ -182,8 +182,8 @@
|
||||
|
||||
<div class="modal-footer">
|
||||
<div class="col-xs-12">
|
||||
<input type="hidden" name="fk_id_progetto" id="id_progetto_u">
|
||||
<input type="hidden" name="idriga" id="idriga">
|
||||
<input type="hidden" name="fk_id_progetto" id="id_progetto_u">
|
||||
<input type="hidden" name="idriga" id="idriga">
|
||||
<input type="submit" name="Submit" class="form-control" value="Aggiorna">
|
||||
|
||||
</div>
|
||||
|
@ -42,8 +42,13 @@
|
||||
<td>{{ $progetto->stato; }}</td>
|
||||
<td>{{ $progetto->name; }}</td>
|
||||
<td>{{ $progetto->budget; }}</td>
|
||||
<td><a href="progetti/delete?id={{ $progetto->progetto }}"
|
||||
class="btn btn-danger">Cancella</a></td>
|
||||
<td>@if($progetto->stato != 'chiuso')<a href="progetti/delete?id={{ $progetto->progetto }}"
|
||||
class="btn btn-danger">Cancella</a> <a href="progetti/close?id={{ $progetto->progetto }}"
|
||||
class="btn btn-danger">Chiudi</a>@endif
|
||||
@if($progetto->stato == 'chiuso')<a href="progetti/reopen?id={{ $progetto->progetto }}"
|
||||
class="btn btn-danger">Riapri</a>@endif
|
||||
<a href="progetti/print?id={{ $progetto->progetto }}"
|
||||
class="btn btn-primary">Stampa PDF</a></td>
|
||||
</tr>
|
||||
@endforeach
|
||||
</tbody>
|
||||
|
47
resources/views/users/assignperm.blade.php
Normal file
47
resources/views/users/assignperm.blade.php
Normal file
@ -0,0 +1,47 @@
|
||||
@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>
|
||||
<table>
|
||||
<tr>
|
||||
<th>Permesso</th>
|
||||
<th>Azione</th>
|
||||
</tr>
|
||||
@foreach($permissions as $perm)
|
||||
<tr>
|
||||
<td>{{$perm->name}}</td>
|
||||
<td>
|
||||
Attiva<input type="radio" name="permesso['{{$perm->name}}']" value="true">
|
||||
|
||||
Disattiva <input type="radio" name="permesso['{{$perm->name}}']" value="false">
|
||||
</td>
|
||||
</tr>
|
||||
@endforeach
|
||||
</table>
|
||||
@csrf
|
||||
<input type="Submit" name="submit" value="associa">
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
@ -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,9 +143,33 @@ 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']);
|
||||
|
||||
|
||||
});
|
||||
/// 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']);
|
||||
Route::post('test/fullcalendar', [FullCalenderController::class, 'ajax']);
|
||||
|
Loading…
Reference in New Issue
Block a user