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":
- Controllo Preventivo: Prima di un
insert, verifica se la combinazione univoca del record esiste già (tramite il Codice Univoco Anagrafica o la chiave compostaCodice_Legacy + ID_Gestione). - 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. - 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.