netgescon-day0/directives/fase7_test_stabile.md

2.2 KiB

🧪 SOP: TEST DI IMPORTAZIONE MONO-STABILE E ASSIMILAZIONE PROGRESSIVA

Istruzione per l'Agent: Questo è un file di Livello 1 (Direttiva). Non modificare il codice esistente in app/Console/Commands/ prima di aver completato la fase di ispezione. Tolleranza errore: ZERO.

1. Obiettivo del Test

Effettuare un'importazione di test controllata per un singolo stabile pilota (es. 0021), isolando i dati anagrafici (Condomini, Inquilini, Fornitori) nel database MySQL di staging per verificare la quadratura, senza sovrascrivere o alterare le strutture stabili già sviluppate in NetGescon.

2. Regola d'Oro: Idempotenza e Fallback (Non distruggere il passato)

Per evitare che la correzione di un bug rompa funzionalità preesistenti, applica rigorosamente questo algoritmo deterministico di "Merge Sicuro":

  1. Controllo Preventivo: Prima di un insert, verifica se la combinazione univoca del record esiste già (tramite il Codice Univoco Anagrafica o la chiave composta Codice_Legacy + ID_Gestione).
  2. Integrazione / Merge: Se il dato esiste già nel database, esegui SOLO un aggiornamento dei campi mancanti o modificati (update/merge). Non rigenerare ID nativi, non duplicare le tabelle millesimali e non toccare i saldi storici consolidati.
  3. Log degli Errori Contabili: Se mancano dati obbligatori nel legacy (es. un codice fiscale o una tabella millesimale orfana), lo script non deve inventare dati e non deve saltare il record silenziosamente. Deve registrare l'anomalia in un file di log (storage/logs/migrazione_test.log) per permettere all'utente di visionarlo graficamente a destra (DX).

3. Gestione dei Vecchi File di Documentazione (.md)

L'utente caricherà progressivamente i vecchi file di spiegazione e i manuali accumulati nel tempo. Quando l'utente ti fornisce un vecchio file di documentazione:

  • NON devi riscrivere o smontare l'applicazione basandoti su logiche superate presenti nei vecchi file.
  • DEVI estrarre solo le logiche di business contabili valide (es. come calcolare una specifica lettura o come era strutturato un vecchio fondo).
  • DEVI integrare queste regole all'interno dei file della cartella directives/ aggiornandoli come documenti vivi.