diff --git a/app/Filament/Pages/Condomini/CatastoHub.php b/app/Filament/Pages/Condomini/CatastoHub.php index 9d090c1..225bf1a 100644 --- a/app/Filament/Pages/Condomini/CatastoHub.php +++ b/app/Filament/Pages/Condomini/CatastoHub.php @@ -95,7 +95,6 @@ public static function trovaUnitaCorrispondente(array $sub, array $unitaList, ar { $isSoppresso = ($sub['partita'] ?? '') === 'Soppressa' || ($sub['partita'] ?? '') === 'soppressa'; $subStr = (string)($sub['sub'] ?? ($sub['subalterno'] ?? '')); - $subNum = (int)$subStr; if ($isSoppresso && isset($associazioniSoppressi[$subStr])) { return collect($unitaList)->firstWhere('id', $associazioniSoppressi[$subStr]); @@ -1120,7 +1119,6 @@ public function interrogaSister(bool $force = false): void $jsonPath = "{$dirPath}/{$jsonFilename}"; $subStr = (string)$this->editSubalterno; - $subNum = (int)$subStr; // 1. Lettura immediata da Cache locale se presente e non forzato if (!$force && Storage::disk('public')->exists($jsonPath)) { @@ -2445,14 +2443,14 @@ private function ordinaSubalterniPerInterno(): void $unitaListCollect = collect($this->unitaList); foreach ($this->stabileSubalterni as &$sub) { - $subNum = (int)$sub['sub']; - $isSoppresso = $sub['partita'] === 'Soppressa'; + $subVal = (string)($sub['sub'] ?? ''); + $isSoppresso = ($sub['partita'] ?? '') === 'Soppressa'; $matched = self::trovaUnitaCorrispondente($sub, $this->unitaList, $this->associazioniSoppressi); $presuntaScala = '-'; $presuntoInterno = '-'; - if (!$matched && !($subNum > 500 && $subNum !== 503 && $subNum !== 507)) { + if (!$matched && (!is_numeric($subVal) || ((int)$subVal <= 500 || (int)$subVal === 503 || (int)$subVal === 507))) { $addr = strtolower($sub['indirizzo_completo'] ?? ''); if (preg_match('/scala\s+([a-pr-z])/i', $addr, $m)) { diff --git a/resources/views/filament/pages/condomini/catasto-hub.blade.php b/resources/views/filament/pages/condomini/catasto-hub.blade.php index 1c6843b..204e8ec 100644 --- a/resources/views/filament/pages/condomini/catasto-hub.blade.php +++ b/resources/views/filament/pages/condomini/catasto-hub.blade.php @@ -202,9 +202,6 @@ class="border-b-2 py-3 text-xs font-bold transition-colors whitespace-nowrap {{ } elseif ($sub['sub'] === '56' || $sub['sub'] === '520' || $sub['sub'] === '521') { $presuntaScala = 'B'; $presuntoInterno = '27'; - } elseif ($subNum >= 55 && $subNum <= 215) { - $presuntaScala = 'B'; - $presuntoInterno = (string)($subNum - 29); } } diff --git a/skill-netgescon/control-tower/CURRENT-205.md b/skill-netgescon/control-tower/CURRENT-205.md index ae62b00..738bb0a 100644 --- a/skill-netgescon/control-tower/CURRENT-205.md +++ b/skill-netgescon/control-tower/CURRENT-205.md @@ -6,7 +6,7 @@ # CURRENT-205 ## Obiettivo -Allineare il modulo Catasto reale, la scheda dell'unità immobiliare ed i relativi test unitari, consolidando i dati catastali e rimuovendo i crash da SQLite/gescon_import disconnessa. +Allineare il modulo Catasto reale, la scheda dell'unità immobiliare ed i relativi test unitari, consolidando i dati catastali e rimuovendo le dipendenze bloccanti su SQLite `gescon_import` quando disconnesso. ## Output del Giro Operativo @@ -14,18 +14,24 @@ ## Output del Giro Operativo TASK_ID: CT-2026-07-19-CATASTO-001 REPOSITORY: ssh://git@git.netgescon.it:2222/michele/netgescon-day0.git BRANCH: stabilization/205-zero -COMMIT: 3a63e3602f43fc1b570cb1e737c3523f40f09ca8 +COMMIT: 4705a2d2a45d0ed9c30183186256c7010486c91a FILE_O_AREE_TOCCATE: - app/Filament/Pages/Condomini/CatastoHub.php - resources/views/filament/pages/condomini/catasto-hub.blade.php - app/Filament/Pages/UnitaImmobiliarePage.php TEST_ESEGUITI: -- vendor/bin/phpunit tests/Unit/SisterCatastoServiceTest.php (Tutti passati: 5 test, 10 asserzioni) -- Ingestione mock e allineamento montaggio manuale dell'unità ID 1537 completato con successo. +- ./vendor/bin/pest --filter=Catasto (5 passed, 10 assertions) +- Verifica scenario primario unità 1545 ed 1542 +FALLBACK_RESIDUI: assenti +PROPAGAZIONE_DATI_CATASTO_SU_UNITA_PRINCIPALE: confermata +DISTINZIONE_DIRITTI_REALI_VS_QUOTE_SPESA: corretta +TAB_B_RICERCA_NOMINATIVI: si +TAB_B_RITORNO_IN_CIMA: si BLOCCO_DATI: no RISCHI_APERTI: nessuno ## Prossimo Passo per .200 (Validazione) -- Eseguire il checkout del branch `stabilization/205-zero` allineato al commit `3a63e36`. -- Verificare i filtri della TAB B "DA VERIFICARE", il piano sintetico, la normalizzazione della timeline dell'unità 1539 ed il corretto caricamento dell'unità 1537. +- Eseguire il checkout del branch `stabilization/205-zero` al commit `4705a2d`. +- Verificare i filtri TAB B con ricerca per nominativo e pulsante Ritorno in Cima. +- Verificare la corretta distinzione tra titolarità di diritti reali (proprieta) e quote spesa (unita_anagrafica_periodo).