From ed1b65e5a1a333bdfe737eb06f56f447901daef6 Mon Sep 17 00:00:00 2001 From: Flavio Barachino Date: Wed, 16 Mar 2022 09:03:51 +0100 Subject: [PATCH] BUB-13 Creazione report annuale per movimenti per categoria ed esportazione in excel --- app/Http/Controllers/MovimentiController.php | 56 +++++++++++-------- resources/views/components/menu.blade.php | 3 + .../views/conti/report/catanno.blade.php | 5 ++ routes/admin.php | 5 +- 4 files changed, 45 insertions(+), 24 deletions(-) diff --git a/app/Http/Controllers/MovimentiController.php b/app/Http/Controllers/MovimentiController.php index 2af4831..790a159 100644 --- a/app/Http/Controllers/MovimentiController.php +++ b/app/Http/Controllers/MovimentiController.php @@ -87,7 +87,7 @@ class MovimentiController extends Controller 'mov_fk_tags'=>$request['mov_fk_tags'], 'mov_inserito_da'=>$request['userid'], ]); - $mov==DB::table('movimentis') + $mov=DB::table('movimentis') ->join('categories','movimentis.mov_fk_categoria','=','categories.id') ->join('tags','movimentis.mov_fk_tags','=','tags.id') ->leftJoin('documentis', 'movimenti_id','=','movimentis.id') @@ -133,8 +133,6 @@ class MovimentiController extends Controller public function resocontoMovimenti(Request $request) { - // SELECT Sum(movimentis.mov_importo) as resoconto, categories.cat_name FROM movimentis JOIN categories ON movimentis.mov_fk_categoria = categories.id GROUP BY categories.id; - // aggiunto per definizione del periodo di resoconto. if(!$request['Year']) { $year=date('Y'); @@ -247,7 +245,6 @@ class MovimentiController extends Controller ->leftJoin('documentis', 'movimenti_id','=','movimentis.id') ->select('movimentis.id','mov_data','mov_descrizione','mov_importo','cat_name','tag_name', DB::raw('Count(movimenti_id) as quanti')) ->groupBy('movimentis.id','mov_data','mov_descrizione','mov_importo','cat_name','tag_name') - //->whereMonth('mov_data','=',$request['month']) ->get(); return view('conti.movimenti.list', [ @@ -255,7 +252,7 @@ class MovimentiController extends Controller ]); } - public function reportCategorieAnno($anno=0) + public function reportCategorieAnno($anno = 0) { if ($anno <= 1970) { @@ -271,7 +268,6 @@ class MovimentiController extends Controller $ncategoria=$categoria->cat_name; for ($i=1;$i<=12;$i++) { - // $SQL="SELECT SUM(mov_importo) as totale, WHERE Year(mov_data)=".$anno." AND Month(mov_data)=".$i." AND mov_fk_categoria=".$categoria->id; $movrow=DB::table('movimentis') ->whereMonth('mov_data','=',$i) @@ -281,24 +277,9 @@ class MovimentiController extends Controller ->sum('mov_importo'); $coll[] = ['totale' => $movrow]; - /* - foreach ($movrow as $mov) - { - echo($mov->mov_importo); - $coll[] = ['totale' => $movrow]; - - // ','categoria'=>$ncategoria, - // 'categoria_id'=>$id, - // 'mese'=>$i - // ]); - - }*/ - - } + } } - // dd($movrow); - /*dd(array_chunk($coll, 12));*/ return view('conti.report.catanno',[ 'categorie'=>$categorie, 'mesi'=>$mesi, @@ -306,6 +287,37 @@ class MovimentiController extends Controller ]); } + 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; + $ncategoria=$categoria->cat_name; + for ($i=1;$i<=12;$i++) + { + $movrow=DB::table('movimentis') + ->whereMonth('mov_data','=',$i) + ->whereYear('mov_data','=',$anno) + ->where('mov_fk_categoria','=',$id) + ->sum('mov_importo'); + + $coll[] = $movrow; + } + + $row[]=array_combine($intestazione,array_merge(array($ncategoria),$coll)); + unset($coll); + } + return (new FastExcel($row))->download('report_al_'.date('d-m-Y').'.ods'); + } + public function apiList() { $movments = DB::table('movimentis') diff --git a/resources/views/components/menu.blade.php b/resources/views/components/menu.blade.php index 92f9aa3..c57618e 100644 --- a/resources/views/components/menu.blade.php +++ b/resources/views/components/menu.blade.php @@ -27,6 +27,9 @@
  • Resoconto Movimenti
  • +
  • + Report Annuale Movimenti +
  • Esporta tutti i movimenti
  • diff --git a/resources/views/conti/report/catanno.blade.php b/resources/views/conti/report/catanno.blade.php index 17f2526..e404c6e 100644 --- a/resources/views/conti/report/catanno.blade.php +++ b/resources/views/conti/report/catanno.blade.php @@ -6,6 +6,11 @@

    Rapporto dei movimenti

    +
    + +
    diff --git a/routes/admin.php b/routes/admin.php index 077a8f7..5d182aa 100644 --- a/routes/admin.php +++ b/routes/admin.php @@ -37,7 +37,8 @@ Route::get('/', function () { Route::get('movmodify',[MovimentiController::class,'updateMovimenti']); Route::post('movmodify',[MovimentiController::class,'updatePostMovimenti']); Route::get('movdelete',[MovimentiController::class,'deleteMovimenti']); - + Route::get('reportbudget',[MovimentiController::class,'reportCategorieAnno'])->name('budget'); + Route::get('reportbudgetxls',[MovimentiController::class,'reportCategorieAnnoXLS'])->name('budgetxls'); Route::get('categorie', [CategorieController::class,'listCategorie'])->name('categorie'); @@ -66,5 +67,5 @@ Route::get('/', function () { Route::get('fullcalender', [FullCalenderController::class, 'index']); Route::post('fullcalenderAjax', [FullCalenderController::class, 'ajax']); Route::get('condominio',[CondominioController::class,'testPdf']); - Route::get('reportbudget',[MovimentiController::class,'reportCategorieAnno']); +