[FIX] Simulator: P.IVA checksum + ServicesController: sectorMap + role enum

- simulate-nis2.php: P.IVA demo corrette con checksum Luhn validi
  (09876543217, 07654321095, 05432109873, 99887766550)
- ServicesController::provision(): sectorMap rimappato a valori enum reali
  (es: 'energia'→'energy', 'finanza'→'banking', 'ict'→'ict_services')
- ServicesController::provision(): user_organizations.role 'super_admin'→'org_admin'
  (super_admin non è nel enum di user_organizations)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
DevEnv nis2-agile
2026-03-09 09:38:02 +01:00
co-authored by Claude Sonnet 4.6
parent 48317e0556
commit ef8b7a90e4
2 changed files with 29 additions and 17 deletions
+12 -7
View File
@@ -538,13 +538,18 @@ class ServicesController extends BaseController
[$partitaIva]
);
// Mappa sector lg231 → NIS2
// Mappa sector lg231 → NIS2 (valori enum: energy,transport,banking,health,water,
// digital_infra,public_admin,manufacturing,postal,chemical,food,waste,
// ict_services,digital_providers,space,research,other)
$sectorMap = [
'manufacturing' => 'manifattura', 'ict' => 'ict', 'consulting' => 'servizi_professionali',
'social' => 'altro', 'energia' => 'energia', 'energy' => 'energia',
'sanità' => 'sanita', 'health' => 'sanita', 'finance' => 'finanza',
'trasporti' => 'trasporti', 'transport' => 'trasporti', 'water' => 'acqua',
'digital' => 'ict', 'waste' => 'gestione_rifiuti',
'energia' => 'energy', 'energia_elettrica' => 'energy',
'trasporti' => 'transport', 'sanità' => 'health', 'sanita' => 'health',
'finanza' => 'banking', 'finance' => 'banking',
'acqua' => 'water',
'ict' => 'ict_services', 'digital' => 'digital_providers',
'manifattura'=> 'manufacturing',
'gestione_rifiuti' => 'waste',
'consulting' => 'other', 'servizi_professionali' => 'other', 'social' => 'other',
];
$rawSector = strtolower($company['sector'] ?? 'ict');
$nis2Sector = $sectorMap[$rawSector] ?? $rawSector;
@@ -614,7 +619,7 @@ class ServicesController extends BaseController
);
if (!$mem) {
Database::query(
'INSERT INTO user_organizations (user_id, organization_id, role) VALUES (?,?,\'super_admin\')',
'INSERT INTO user_organizations (user_id, organization_id, role, is_primary) VALUES (?,?,\'org_admin\',1)',
[$userId, $orgId]
);
}