Primo commit
This commit is contained in:
81
app/Livewire/Home.php
Normal file
81
app/Livewire/Home.php
Normal file
@@ -0,0 +1,81 @@
|
||||
<?php
|
||||
|
||||
namespace App\Livewire;
|
||||
|
||||
use Livewire\Component;
|
||||
use App\Models\Territorio;
|
||||
use App\Models\Proclamatore;
|
||||
use App\Models\Assegnazione;
|
||||
use App\Models\AnnoTeocratico;
|
||||
use App\Models\Campagna;
|
||||
use App\Models\Setting;
|
||||
|
||||
class Home extends Component
|
||||
{
|
||||
public function render()
|
||||
{
|
||||
$settings = Setting::instance();
|
||||
$annoCorrente = AnnoTeocratico::corrente();
|
||||
$campagnaAttiva = Campagna::attiva();
|
||||
|
||||
// Territory counts
|
||||
$totTerritoriAttivi = Territorio::where('attivo', true)->count();
|
||||
$totAssegnati = Territorio::assegnato()->count();
|
||||
$totInReparto = Territorio::inReparto()->count();
|
||||
|
||||
// Coverage: returned territories per current theocratic year
|
||||
$territoriPercorsi = 0;
|
||||
if ($annoCorrente) {
|
||||
$territoriPercorsi = Assegnazione::where('anno_teocratico_id', $annoCorrente->id)
|
||||
->whereNotNull('returned_at')
|
||||
->distinct('territorio_id')
|
||||
->count('territorio_id');
|
||||
}
|
||||
|
||||
// Monthly average
|
||||
$mediaPercorrenzaMensile = 0;
|
||||
if ($annoCorrente && $annoCorrente->mesi_trascorsi > 0) {
|
||||
$mediaPercorrenzaMensile = round($territoriPercorsi / $annoCorrente->mesi_trascorsi, 1);
|
||||
}
|
||||
|
||||
// Campaign stats
|
||||
$campagnaStats = null;
|
||||
if ($campagnaAttiva) {
|
||||
$campagnaStats = [
|
||||
'descrizione' => $campagnaAttiva->descrizione,
|
||||
'percentuale' => $campagnaAttiva->percentuale_percorrenza,
|
||||
'fine' => $campagnaAttiva->end_date->format('d/m/Y'),
|
||||
];
|
||||
}
|
||||
|
||||
// Quick lists
|
||||
$daAssegnare = Territorio::daAssegnare()
|
||||
->with('zona', 'tipologia', 'ultimaAssegnazione')
|
||||
->take(10)
|
||||
->get();
|
||||
|
||||
$prioritari = Territorio::prioritari()
|
||||
->with('zona', 'tipologia', 'ultimaAssegnazione')
|
||||
->take(10)
|
||||
->get();
|
||||
|
||||
$daRientrare = Territorio::daRientrare()
|
||||
->with(['zona', 'assegnazioneCorrente.proclamatore'])
|
||||
->take(10)
|
||||
->get();
|
||||
|
||||
return view('livewire.home', [
|
||||
'congregazione' => $settings->congregazione_nome ?? 'TerManager2',
|
||||
'annoCorrente' => $annoCorrente,
|
||||
'totTerritoriAttivi' => $totTerritoriAttivi,
|
||||
'totAssegnati' => $totAssegnati,
|
||||
'totInReparto' => $totInReparto,
|
||||
'territoriPercorsi' => $territoriPercorsi,
|
||||
'mediaPercorrenzaMensile' => $mediaPercorrenzaMensile,
|
||||
'campagnaStats' => $campagnaStats,
|
||||
'daAssegnare' => $daAssegnare,
|
||||
'prioritari' => $prioritari,
|
||||
'daRientrare' => $daRientrare,
|
||||
]);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user