This commit is contained in:
Amministratore 2023-05-30 20:57:20 +02:00
commit 2f1678684e
11 changed files with 152 additions and 135 deletions

View File

@ -12,7 +12,7 @@ Al momento sono presenti:
*Sviluppato in php, mysql, jquery su framework Laravel*.
<<<<<<< HEAD
## Installazione
- clonare il repository
- copiare il file .env.example
@ -35,5 +35,3 @@ Flavio Barachino <flavio.barachino@lavorain.cloud>
### Vuoi partecipare?
Scrivimi con le tue proposte, le tue critiche, i tuoi suggerimenti.
>>>>>>> 1b6609d0284a739053caeda9936ab9a9b8e7738e
> Written with [StackEdit](https://stackedit.io/).

View File

@ -20,35 +20,35 @@ class MovimentiController extends Controller
'tags'=>$tags,
]);
}
public static function listMovimenti(){
$categorie=Categorie::list();
$tags=tag::getList();
/* Query per visualizzare anche il totale dei documenti presenti per il record */
$movimenti=Movimenti::getList();
return view('conti.movimenti.list',[
'categorie'=>$categorie,
'movimenti'=>$movimenti,
'tags'=>$tags
'tags'=>$tags
]);
}
public static function dashboard()
{
$bilancio=Movimenti::getSaldo(date('Y'));
$bilancio=Movimenti::getSaldo(date('Y'));
$saldo=Movimenti::getSaldoTot();
return view('layouts.dashboard',[
'bilancio'=>$bilancio,
'saldo'=>$saldo,
]);
}
public static function insMovimentiSpesa(Request $request)
{
Movimenti::insSpesa($request);
$mov=Movimenti::getList();
$mov=Movimenti::getList();
$categorie=Categorie::list();
$tags=tag::getList();
return view('conti.movimenti.list',
@ -57,8 +57,8 @@ class MovimentiController extends Controller
'movimenti'=> $mov,
'tags'=>$tags,
]);
/* return dd($mov);*/
/* return dd($mov);*/
}
public static function insMovimentiEntrata(Request $request)
{
@ -72,7 +72,7 @@ class MovimentiController extends Controller
'movimenti'=> $mov,
'tags'=>$tags,
]);
/* return dd($mov);*/
}
public function exportMovimenti()
@ -91,7 +91,7 @@ class MovimentiController extends Controller
return (new FastExcel($lista))->download('movimenti_al_'.date('d-m-Y').'.xls');
// return dd($movimenti);
}
public function resocontoMovimenti(Request $request)
{
if(!$request['Year'])
@ -101,7 +101,7 @@ class MovimentiController extends Controller
else {
$year=$request['Year'];
}
if (!$request['Month'])
{
$month=date('m');
@ -109,16 +109,16 @@ class MovimentiController extends Controller
else {
$month=$request['Month'];
}
$reportSpesa = Movimenti::reportSpesa($year, $month);
$reportEntrate = Movimenti::reportEntrate($year,$month);
return view('components.charts',[
'dataSpesa'=>$reportSpesa,
'dataEntrate'=>$reportEntrate,
'dataEntrate'=>$reportEntrate,
]);
}
/*public function updateMovimenti(Request $request)
{
$id=$request['id'];
@ -132,37 +132,37 @@ class MovimentiController extends Controller
'tags'=>$tags,
]);
}*/
public function updatePostMovimenti(Request $request)
{
Movimenti::updateMovimenti($request);
return redirect(route('movimenti'));
}
public function deleteMovimenti(Request $request)
{
Movimenti::deleteMovimento($request['id']);
return redirect(route('movimenti'));
}
public function listMovPerCateg(Request $request)
{
if($request['year'])
{
$anno=$request['year'];
}
else
else
{
$anno=date('Y');
}
$mov=Movimenti::listByCatMonth($request['month'], $request['cat'],$anno);
return view('conti.movimenti.list',
[
'movimenti'=> $mov,
'movimenti'=> $mov,
]);
}
public function listMovByCat(Request $request)
{
$mov=Movimenti::listByCategory($request['cat']);
@ -171,17 +171,17 @@ class MovimentiController extends Controller
'movimenti'=> $mov,
]);
}
public function reportCategorieAnno($anno = 0)
{
if ($anno <= 1970)
{
$anno = date('Y');
$anno = date('Y');
}
$mesi=['Gennaio','Febbraio','Marzo','Aprile','Maggio','Giugno','Luglio','Agosto','Settembre','Ottobre','Novembre','Dicembre'];
$categorie=Categorie::list();
foreach ($categorie as $categoria)
{
$id=$categoria->id;
@ -211,17 +211,17 @@ class MovimentiController extends Controller
'sel_anni'=>$anni,
]);
}
public function reportCategorieAnnoXLS($anno = 0)
{
if ($anno <= 1970)
{
$anno = date('Y');
}
$intestazione=['Categoria','Gennaio','Febbraio','Marzo','Aprile','Maggio','Giugno','Luglio','Agosto','Settembre','Ottobre','Novembre','Dicembre'];
$categorie=DB::table('categories')->orderBy('cat_name')->get();
foreach ($categorie as $categoria)
{
$id=$categoria->id;
@ -234,15 +234,15 @@ class MovimentiController extends Controller
->where('mov_fk_categoria','=',$id)
->sum('mov_importo');
$coll[] = $movrow;
}
$row[]=array_combine($intestazione,array_merge(array($ncategoria),$coll));
unset($coll);
unset($coll);
}
return (new FastExcel($row))->download('report_al_'.date('d-m-Y').'.xls');
return (new FastExcel($row))->download('report_al_'.date('d-m-Y').'.xls');
}
public function filterByTag(Request $tag)
{
$mov=Movimenti::getByTag($tag['tag']);
@ -251,14 +251,14 @@ class MovimentiController extends Controller
'movimenti'=> $mov,
]);
}
public function apiList()
{
$movments = Movimenti::getList();
return json_encode($movments);
}
private function dateFormat($type,$string)
{
if($type)
@ -270,57 +270,57 @@ class MovimentiController extends Controller
return $year.'-'.$month.'-'.$day;
}
}
public function importEC_ING(Request $request)
{
if ($request->hasFile('filename'))
{
$filename=$request->file('filename')->store('EC');
Movimenti::importEstrattoIng($filename);
return redirect(Route('movimenti'));
}
else {
return 'Nessun File trovato';
}
}
public function importEC_CR(Request $request)
{
if ($request->hasFile('filename'))
{
$filename=$request->file('filename')->store('EC');
Movimenti::importEstrattoCR($filename);
return redirect(Route('movimenti'));
}
else {
return 'Nessun File trovato';
}
}
public function importFile()
{
return view('conti.import');
}
public function importFileCR()
{
return view('conti.importCR');
}
public function test()
/* public function test()
{
Movimenti::getYearsFromMovimenti();
}
}*/
public function manageRedirect(Request $request)
{
return redirect('/admin/reportbudget/'.$request['anno']);
return redirect('/admin/movimenti/reportbudget/'.$request['anno']);
}
public function updateMovimenti($id)
{
$mov=Movimenti::getMovimentoById($id);

View File

@ -12,34 +12,39 @@ class TagController extends Controller
$tags = tag::getList();
return view('conti.tags.list',['tags'=>$tags]);
}
public static function insTags(Request $request)
{
tag::inserisci($request);
$tags = tag::getList();
return view('conti.tags.list',['tags'=>$tags]);
}
public function calendartest()
{
return view('components.calendar');
}
public function updateTag($id)
{
$tags=tag::getById($id);
return json_encode($tags);
}
public function updatePostTag(Request $request)
{
tag::updateById($request);
return redirect(route('tags'));
}
public function apiList()
{
$tags=tag::getList();
return json_encode($tags);
}
public function deleteTag($id){
tag::deleteTag($id);
return redirect(route('tags'));
}
}

View File

@ -9,28 +9,35 @@ use Illuminate\Support\Facades\DB;
class tag extends Model
{
use HasFactory;
public static function getList() {
return DB::table('tags')->orderBy('tag_name')->get();
return DB::table('tags')->orderBy('tag_name')->get();
}
public static function inserisci($param) {
DB::table('tags')->insert(['tag_name'=> $param['tag_name']]);
}
public static function getById($param) {
return DB::table('tags')
->where('tags.id','=',$param)
->get();
}
public static function updateById($param) {
DB::table('tags')
->where('id','=', $param['id'])
->update([
'tag_name' => $param['tag_name'],
]);
}
public static function deleteTag($id)
{
DB::table('tags')
//->where('id','=',$id)
->delete($id);
}
}

View File

@ -13,9 +13,9 @@ $(document).ready(function() {
$('#categorie').DataTable({
responsive: true
});
$(document).on('click','.open_modal',function(){
var url = "catmodify";
var url = "/admin/categorie/modify";
var riga_id= $(this).val();
$.getJSON(url + '/' + riga_id, function (data) {
//success data
@ -24,10 +24,10 @@ $(document).ready(function() {
$('#H_cat_cat_name').val(data[0].cat_name);
$('#H_cat_id').val(data[0].id);
$('#myModal').modal('show');
});
});
});
$(document).on('click','.open_modal_new',function(){
$('#myModal_new').modal('show');
});
});
});

View File

@ -21,7 +21,7 @@ $(document).on('click', '.open_modal_spesa', function() {
$('#form').find('input[type="date"]').val(strDate);
$('#myModal').modal('show');
$('.modal-title').text(' Nuovo movimento in uscita');
$('#form').attr('action', 'movimentis');
$('#form').attr('action', '/admin/movimenti/spesa');
});
$(document).on('click', '.open_modal_entrata', function() {
@ -30,11 +30,11 @@ $(document).on('click', '.open_modal_entrata', function() {
$('#form').find('input[type="date"]').val(strDate);
$('#myModal').modal('show');
$('.modal-title').text('Nuovo movimento in entrata');
$('#form').attr('action', 'movimentie');
$('#form').attr('action', '/admin/movimenti/entrata');
});
$(document).on('click', '.open_modal_modifica', function() {
var url = "/admin/movmodify";
var url = "/admin/movimenti/modify";
var riga_id = $(this).val();
$.getJSON(url + '/' + riga_id, function(data) {
// success data
@ -53,7 +53,7 @@ $(document).on('click', '.open_modal_modifica', function() {
.trigger('change');
$('#myModal').modal('show');
// $('.panel-heading').text('Modifica movimento');
$('#form').attr('action', '/admin/movmodify');
$('#form').attr('action', '/admin/movimenti/modify');
$('#form').append('<input type="hidden" name="id" value="' + riga_id + '">');
});
});

View File

@ -3,7 +3,7 @@ $(document).ready(function() {
responsive: true
});
$(document).on('click', '.open_modal', function() {
var url = "tagmodify";
var url = "tags/modify";
var riga_id = $(this).val();
$.getJSON(url + '/' + riga_id, function(data) {
//success data
@ -18,4 +18,4 @@ $(document).ready(function() {
$('#myModal_new').modal('show');
});
});
});

View File

@ -34,7 +34,7 @@
<button class="btn btn-warning btn-detail open_modal"
value="{{$categoria->id}}">Edit</button>&nbsp; <a
class="btn btn-danger"
href="/admin/catdelete?id={{ $categoria->id; }}"><i
href="/admin/categorie/delete?id={{ $categoria->id; }}"><i
class="fa fa-trash-o fa-fw"></i></a>&nbsp;
</td>
</tr>
@ -59,11 +59,11 @@
<div class="modal-body">
<div class="row">
<div class="col-md-8">
<form action="catmodify" method="POST">
<form action="/admin/categorie/modify" method="POST">
@csrf <label for="H_cat_cat_name" class="form-label">Categoria</label>
<input type="text" class="form-control" id="H_cat_cat_name"
size="50" name="cat_name" value="" size="50">
</div>
</div>
</div>
@ -92,7 +92,7 @@
@csrf <label for="categoria" class="form-label">Categoria</label>
<input type="text" class="form-control" id="categoria"
name="cat_name" size="50">
</div>
</div>
</div>
@ -104,7 +104,7 @@
</div>
</div>
<!-- FINE MODAL INSERIMENTO -->

View File

@ -37,8 +37,8 @@
<td>&euro; {{ $movimento->mov_importo; }}</td>
<td>
<button class="btn btn-warning btn-detail open_modal_modifica" value="{{ $movimento->id; }}"><i class="fa fa-pencil-square-o fw"></i></button>&nbsp;
<a class="btn btn-danger" href="/admin/movdelete?id={{ $movimento->id; }}"><i class="fa fa-trash-o fa-fw"></i></a>&nbsp;
<a class="btn btn-warning" href="/admin/movdocs?id={{ $movimento->id; }}"><i class="fa fa-files-o fa-fw"></i></a>&nbsp;
<a class="btn btn-danger" href="/admin/movimenti/delete?id={{ $movimento->id; }}"><i class="fa fa-trash-o fa-fw"></i></a>&nbsp;
<a class="btn btn-warning" href="/admin/movimenti/docs?id={{ $movimento->id; }}"><i class="fa fa-files-o fa-fw"></i></a>&nbsp;
<!-- Definisce quanti documenti sono presenti per il record -->
( {{ $movimento->quanti ?? ''; }} )
</td>
@ -64,7 +64,7 @@
<div class="modal-content">
<div class="modal-header">
<h4 class="modal-title">Nuovo movimento</h4>
</div>
<div class="modal-body">
<div class="row">
@ -114,7 +114,7 @@
<div class="row">
<div class="col-xs-12"></div>
</div>
</div>
</div>
</div>
@ -132,4 +132,3 @@
<script src="/js/app/movimenti.js"></script>
@endsection

View File

@ -23,7 +23,7 @@
$tag->tag_name; }}</a></td>
<td><button class="btn btn-warning btn-detail open_modal"
value="{{ $tag->id; }}">Edit</button>&nbsp; <a
class="btn btn-danger" href="/admin/tagdelete?id={{ $tag->id; }}"><i
class="btn btn-danger" href="/admin/tags/delete/{{ $tag->id; }}"><i
class="fa fa-trash-o fa-fw"></i></a>&nbsp;</td>
</tr>
@endforeach
@ -34,7 +34,7 @@
</div>
<div class="modal fade" id="myModal" tabindex="-1" role="dialog"
aria-labelledby="myModalLabel" aria-hidden="true">
<form action="tagmodify" method="POST">
<form action="/admin/tags/modify" method="POST">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">

View File

@ -29,53 +29,57 @@ use App\Http\Controllers\ProgettiController;
Route::get('/', [MovimentiController::class,'dashboard']);
Route::get('logout', function(){ Auth::logout(); return redirect('login'); })->name('logout');
// MOVIMENTI
Route::get('movimentis', [MovimentiController::class,'newMovimenti'])->name('movimentis');
Route::post('movimentis',[MovimentiController::class,'insMovimentiSpesa']);
Route::get('movimentie', [MovimentiController::class,'newMovimenti'])->name('movimentie');
Route::post('movimentie',[MovimentiController::class,'insMovimentiEntrata']);
// Route::get('movimentis', [MovimentiController::class,'newMovimenti'])->name('movimentis');
Route::post('movimenti/spesa',[MovimentiController::class,'insMovimentiSpesa']);
// Route::get('movimentie', [MovimentiController::class,'newMovimenti'])->name('movimentie');
Route::post('movimenti/entrata',[MovimentiController::class,'insMovimentiEntrata']);
Route::get('movimenti',[MovimentiController::class,'listMovimenti'])->name('movimenti');
Route::get('export',[MovimentiController::class,'exportMovimenti'])->name('export');
Route::get('resoconto',[MovimentiController::class,'resocontoMovimenti'])->name('resoconto');
Route::get('movmodify/{id}',[MovimentiController::class,'updateMovimenti']);
Route::post('movmodify',[MovimentiController::class,'updatePostMovimenti']);
Route::get('movdelete',[MovimentiController::class,'deleteMovimenti']);
Route::get('reportbudget/{anno?}',[MovimentiController::class,'reportCategorieAnno'])->name('budget');
Route::post('reportbudget/{anno?}',[MovimentiController::class,'manageRedirect']);
Route::get('reportbudgetxls',[MovimentiController::class,'reportCategorieAnnoXLS'])->name('budgetxls');
Route::get('movimenti/test', [MovimentiController::class,'test']);
// CATEGORIE
Route::get('categorie', [CategorieController::class,'listCategorie'])->name('categorie');
Route::post('categorie', [CategorieController::class,'insCategorie']);
Route::get('catdelete', [CategorieController::class,'deleteCategorie']);
Route::get('catmodify/{id}', [CategorieController::class,'updateCategorie']);
Route::post('catmodify', [CategorieController::class,'updatePostCategorie']);
// Richiami di servizio da jquery
Route::get('service/catlist', [CategorieController::class,'apiList']);
Route::get('service/taglist', [TagController::class,'apiList']);
// TAGS
Route::get('tags', [TagController::class,'listTags'])->name('tags');
Route::post('tags', [TagController::class,'insTags']);
Route::get('tagmodify/{id}', [TagController::class,'updateTag']);
Route::post('tagmodify', [TagController::class,'updatePostTag']);
// CONSUMI
Route::get('letturegas', [ContatoreGasController::class,'listLettureGas'])->name('gas');
Route::post('letturegas', [ContatoreGasController::class,'insLettureGas']);
Route::get('lettureenel', [ContatoreEnElController::class,'listLettureEnel'])->name('enel');
Route::post('lettureenel', [ContatoreEnElController::class,'insLettureEnel']);
// MOVIMENTI
Route::get('movimenti/filter/tags',[MovimentiController::class,'filterByTag']);
Route::get('movimenti/export',[MovimentiController::class,'exportMovimenti'])->name('export');
Route::get('movimenti/resoconto',[MovimentiController::class,'resocontoMovimenti'])->name('resoconto');
Route::get('movimenti/modify/{id}',[MovimentiController::class,'updateMovimenti']);
Route::post('movimenti/modify',[MovimentiController::class,'updatePostMovimenti']);
Route::get('movimenti/delete',[MovimentiController::class,'deleteMovimenti']);
Route::get('movimenti/reportbudget/{anno?}',[MovimentiController::class,'reportCategorieAnno'])->name('budget');
Route::post('movimenti/reportbudget/{anno?}',[MovimentiController::class,'manageRedirect']);
Route::get('movimenti/reportbudgetxls',[MovimentiController::class,'reportCategorieAnnoXLS'])->name('budgetxls');
Route::get('movimenti/filter/tags',[MovimentiController::class,'filterByTag']);
Route::get('movimenti/report/movimenti_categoria', [MovimentiController::class,'listMovPerCateg']);
Route::get('movimenti/report/movimentibycat', [MovimentiController::class,'listMovbyCat']);
Route::get('movdocs', [DocumentiController::class,'fileForm'])->name('documenti');
Route::post('movdocs', [DocumentiController::class,'storeFile']);
Route::get('movimenti/docs', [DocumentiController::class,'fileForm'])->name('documenti');
Route::post('movimenti/docs', [DocumentiController::class,'storeFile']);
Route::get('movimenti/import', [MovimentiController::class,'importFile'])->name('importING');
Route::post('movimenti/import', [MovimentiController::class,'importEC_ING']);
Route::get('movimenti/importcr', [MovimentiController::class,'importFileCR'])->name('importCR');
Route::post('movimenti/importcr', [MovimentiController::class,'importEC_CR']);
// CATEGORIE
Route::get('categorie', [CategorieController::class,'listCategorie'])->name('categorie');
Route::post('categorie', [CategorieController::class,'insCategorie']);
Route::get('categorie/delete', [CategorieController::class,'deleteCategorie']);
Route::get('categorie/modify/{id}', [CategorieController::class,'updateCategorie']);
Route::post('categorie/modify', [CategorieController::class,'updatePostCategorie']);
// Richiami di servizio da jquery
Route::get('service/catlist', [CategorieController::class,'apiList']);
Route::get('service/taglist', [TagController::class,'apiList']);
// TAGS
Route::get('tags', [TagController::class,'listTags'])->name('tags');
Route::post('tags', [TagController::class,'insTags']);
Route::get('tags/modify/{id}', [TagController::class,'updateTag']);
Route::post('tags/modify', [TagController::class,'updatePostTag']);
Route::get('tags/delete/{id}',[TagController::class,'deleteTag']);
// CONSUMI
Route::get('consumi/gas', [ContatoreGasController::class,'listLettureGas'])->name('gas');
Route::post('consumi/gas', [ContatoreGasController::class,'insLettureGas']);
Route::get('consumi/enel', [ContatoreEnElController::class,'listLettureEnel'])->name('enel');
Route::post('consumi/enel', [ContatoreEnElController::class,'insLettureEnel']);
// AUTOMOBILI
Route::get('auto', [AutoController::class, 'index'])->name('auto_list');
Route::get('auto/new', [AutoController::class, 'newAuto'])->name('auto_new');
@ -94,6 +98,7 @@ Route::get('/', [MovimentiController::class,'dashboard']);
Route::post('auto/accessori', [AutoController::class, 'saveAccessori']);
Route::get('auto/operazioni', [AutoController::class, 'getOperazioni']);
Route::get('auto/operazioni/pdf', [AutoController::class, 'exportPdfOperazioni']);
// CONTATTI
Route::get('contatti', [AnagraficaController::class, 'listContact'])->name('contatti');
Route::get('contatti/new', [AnagraficaController::class, 'newContact'])->name('newContact');
@ -102,6 +107,7 @@ Route::get('/', [MovimentiController::class,'dashboard']);
Route::get('contatti/scheda', [AnagraficaController::class, 'getScheda']);
Route::get('contatti/addOther', [AnagraficaController::class, 'insOtherContact']);
Route::post('contatti/addOther', [AnagraficaController::class, 'saveOtherContact']);
// Gruppi e permessi
Route::get('group/new', [Utenti::class, 'nuovoGruppo']);
Route::post('group/new', [Utenti::class, 'saveNuovoGruppo']);
@ -109,6 +115,7 @@ Route::get('/', [MovimentiController::class,'dashboard']);
Route::post('permesso/new', [Utenti::class, 'saveNuovoPermesso']);
Route::get('permesso/assign', [Utenti::class, 'vw_assignToGroup']);
Route::post('permesso/assign', [Utenti::class, 'assignPermissionToGroup']);
// Progetti
Route::get('progetti', [ProgettiController::class, 'listaProgetto'])->name('progetti');
Route::post('progetti/new', [ProgettiController::class, 'salvaProgetto']);
@ -120,9 +127,10 @@ Route::get('/', [MovimentiController::class,'dashboard']);
Route::get('progetti/detail/edit/{id}', [RigaProgettoController::class, 'editRiga']);
Route::post('progetti/rigaupdate', [RigaProgettoController::class, 'updateRiga']);
Route::get('progetti/coordinatori', [ProgettiController::class, 'getCoordinatori']);
/// TEST routes
Route::get('fullcalendar', [FullCalenderController::class, 'index']);
Route::post('fullcalendar', [FullCalenderController::class, 'ajax']);
Route::get('condominio',[CondominioController::class,'testPdf']);
/// TEST routes
Route::get('test/fullcalendar', [FullCalenderController::class, 'index']);
Route::post('test/fullcalendar', [FullCalenderController::class, 'ajax']);
Route::get('test/condominio',[CondominioController::class,'testPdf']);