BUB-13 Creazione report annuale per movimenti per categoria ed esportazione in excel

This commit is contained in:
Amministratore 2022-03-16 09:03:51 +01:00
parent 55a7a68826
commit ed1b65e5a1
4 changed files with 45 additions and 24 deletions

View File

@ -87,7 +87,7 @@ class MovimentiController extends Controller
'mov_fk_tags'=>$request['mov_fk_tags'], 'mov_fk_tags'=>$request['mov_fk_tags'],
'mov_inserito_da'=>$request['userid'], 'mov_inserito_da'=>$request['userid'],
]); ]);
$mov==DB::table('movimentis') $mov=DB::table('movimentis')
->join('categories','movimentis.mov_fk_categoria','=','categories.id') ->join('categories','movimentis.mov_fk_categoria','=','categories.id')
->join('tags','movimentis.mov_fk_tags','=','tags.id') ->join('tags','movimentis.mov_fk_tags','=','tags.id')
->leftJoin('documentis', 'movimenti_id','=','movimentis.id') ->leftJoin('documentis', 'movimenti_id','=','movimentis.id')
@ -133,8 +133,6 @@ class MovimentiController extends Controller
public function resocontoMovimenti(Request $request) 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']) if(!$request['Year'])
{ {
$year=date('Y'); $year=date('Y');
@ -247,7 +245,6 @@ class MovimentiController extends Controller
->leftJoin('documentis', 'movimenti_id','=','movimentis.id') ->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')) ->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') ->groupBy('movimentis.id','mov_data','mov_descrizione','mov_importo','cat_name','tag_name')
//->whereMonth('mov_data','=',$request['month'])
->get(); ->get();
return view('conti.movimenti.list', 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) if ($anno <= 1970)
{ {
@ -271,7 +268,6 @@ class MovimentiController extends Controller
$ncategoria=$categoria->cat_name; $ncategoria=$categoria->cat_name;
for ($i=1;$i<=12;$i++) 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') $movrow=DB::table('movimentis')
->whereMonth('mov_data','=',$i) ->whereMonth('mov_data','=',$i)
@ -281,24 +277,9 @@ class MovimentiController extends Controller
->sum('mov_importo'); ->sum('mov_importo');
$coll[] = ['totale' => $movrow]; $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',[ return view('conti.report.catanno',[
'categorie'=>$categorie, 'categorie'=>$categorie,
'mesi'=>$mesi, '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() public function apiList()
{ {
$movments = DB::table('movimentis') $movments = DB::table('movimentis')

View File

@ -27,6 +27,9 @@
<li> <li>
<a href="{{ route('resoconto'); }}">Resoconto Movimenti</a> <a href="{{ route('resoconto'); }}">Resoconto Movimenti</a>
</li> </li>
<li>
<a href="{{ route('budget'); }}">Report Annuale Movimenti</a>
</li>
<li> <li>
<a href="{{ route('export'); }}"><i class="fa fa-file-o fa-fw"></i>Esporta tutti i movimenti</a> <a href="{{ route('export'); }}"><i class="fa fa-file-o fa-fw"></i>Esporta tutti i movimenti</a>
</li> </li>

View File

@ -6,6 +6,11 @@
<h1 class="page-header">Rapporto dei movimenti</h1> <h1 class="page-header">Rapporto dei movimenti</h1>
</div> </div>
</div> </div>
<div class="row">
<div class="col">
<a href="{{ route('budgetxls');}}" class="btn btn-primary">Esporta in .ods</a>
</div>
</div>
<div class="row"> <div class="row">
<div class="col"> <div class="col">
<div class="panel panel-default"> <div class="panel panel-default">

View File

@ -37,7 +37,8 @@ Route::get('/', function () {
Route::get('movmodify',[MovimentiController::class,'updateMovimenti']); Route::get('movmodify',[MovimentiController::class,'updateMovimenti']);
Route::post('movmodify',[MovimentiController::class,'updatePostMovimenti']); Route::post('movmodify',[MovimentiController::class,'updatePostMovimenti']);
Route::get('movdelete',[MovimentiController::class,'deleteMovimenti']); 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'); Route::get('categorie', [CategorieController::class,'listCategorie'])->name('categorie');
@ -66,5 +67,5 @@ Route::get('/', function () {
Route::get('fullcalender', [FullCalenderController::class, 'index']); Route::get('fullcalender', [FullCalenderController::class, 'index']);
Route::post('fullcalenderAjax', [FullCalenderController::class, 'ajax']); Route::post('fullcalenderAjax', [FullCalenderController::class, 'ajax']);
Route::get('condominio',[CondominioController::class,'testPdf']); Route::get('condominio',[CondominioController::class,'testPdf']);
Route::get('reportbudget',[MovimentiController::class,'reportCategorieAnno']);