$parsed */ public function ingest(FatturaElettronica $fattura, array $parsed, ?int $stabileServizioId = null): array { if (! Schema::hasTable('stabile_servizio_tariffe')) { return ['status' => 'skipped', 'message' => 'Tabella stabile_servizio_tariffe non presente']; } $stabileId = (int) ($fattura->stabile_id ?? 0); if ($stabileId <= 0) { return ['status' => 'error', 'message' => 'Stabile non valido']; } $tariffe = is_array($parsed['tariffe'] ?? null) ? $parsed['tariffe'] : []; $iva = is_array($parsed['iva'] ?? null) ? $parsed['iva'] : []; $scaglioni = is_array($tariffe['quota_variabile_acquedotto_scaglioni'] ?? null) ? $tariffe['quota_variabile_acquedotto_scaglioni'] : []; $quotaFissaAnnua = is_array($tariffe['quota_fissa_annua'] ?? null) ? $tariffe['quota_fissa_annua'] : []; $componentiUi = is_array($tariffe['componenti_ui'] ?? null) ? $tariffe['componenti_ui'] : []; $componenti = [ 'quota_variabile_fognatura_euro_mc' => $tariffe['quota_variabile_fognatura_euro_mc'] ?? null, 'quota_variabile_depurazione_euro_mc' => $tariffe['quota_variabile_depurazione_euro_mc'] ?? null, 'quota_fissa_annua' => $quotaFissaAnnua, 'componenti_ui' => $componentiUi, ]; $row = StabileServizioTariffa::query()->updateOrCreate( ['fattura_elettronica_id' => (int) $fattura->id], [ 'stabile_id' => $stabileId, 'stabile_servizio_id' => $stabileServizioId, 'fornitore_id' => (int) ($fattura->fornitore_id ?: 0) ?: null, 'data_fattura' => $fattura->data_fattura, 'decorrenza_tariffe' => $tariffe['decorrenza'] ?? null, 'profilo_tariffario' => $tariffe['profilo'] ?? null, 'delibera_ato' => $tariffe['delibera_ato'] ?? null, 'delibera_arera' => $tariffe['delibera_arera'] ?? null, 'codice_iva' => $iva['codice'] ?? null, 'aliquota_iva_percentuale' => $iva['aliquota_percentuale'] ?? null, 'iva_descrizione' => $iva['descrizione'] ?? null, 'tariffe_scaglioni' => $scaglioni, 'tariffe_componenti' => $componenti, 'payload' => [ 'tariffe' => $tariffe, 'iva' => $iva, ], ] ); return [ 'status' => 'ok', 'id' => (int) $row->id, ]; } }