Premier commit
This commit is contained in:
46
app/Http/Controllers/MunicipalityController.php
Normal file
46
app/Http/Controllers/MunicipalityController.php
Normal file
@@ -0,0 +1,46 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
class MunicipalityController extends Controller
|
||||
{
|
||||
public function index()
|
||||
{
|
||||
$municipalities = \App\Models\Municipality::active()->orderBy('name')->get();
|
||||
return view('municipalities.index', compact('municipalities'));
|
||||
}
|
||||
|
||||
public function show(\App\Models\Municipality $municipality)
|
||||
{
|
||||
if (!$municipality->is_active) {
|
||||
abort(404);
|
||||
}
|
||||
|
||||
$municipality->load(['contracts.meta']);
|
||||
|
||||
$contracts = $municipality->contracts;
|
||||
|
||||
// M365 Statistics
|
||||
$m365Contracts = $contracts->where('type', 'microsoft_365');
|
||||
|
||||
// Fetch all active license levels to initialize stats keys
|
||||
$licenseLevels = \App\Models\LicenseLevel::active()->pluck('name')->toArray();
|
||||
$m365Stats = array_fill_keys($licenseLevels, 0);
|
||||
$m365Stats['Autre'] = 0; // Fallback category
|
||||
|
||||
foreach ($m365Contracts as $contract) {
|
||||
$level = $contract->meta->where('key', 'm365_license_level')->first()?->value;
|
||||
$quantity = (int) $contract->meta->where('key', 'm365_quantity')->first()?->value ?? 0;
|
||||
|
||||
if ($level && array_key_exists($level, $m365Stats)) {
|
||||
$m365Stats[$level] += $quantity;
|
||||
} else {
|
||||
$m365Stats['Autre'] += $quantity;
|
||||
}
|
||||
}
|
||||
|
||||
return view('municipalities.show', compact('municipality', 'contracts', 'm365Stats'));
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user