17 lines
2.2 KiB
Markdown
17 lines
2.2 KiB
Markdown
# 🧪 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. |