264 lines
5.0 KiB
Markdown
264 lines
5.0 KiB
Markdown
# 🚀 **SCRIPT AUTOMATICI IMPORT NETGESCON**
|
|
|
|
## 📋 **OVERVIEW**
|
|
|
|
Script Node.js per automatizzare l'import dei dati dal vecchio sistema Gescon a NetGescon tramite API.
|
|
|
|
---
|
|
|
|
## 🔧 **SETUP**
|
|
|
|
### 1. **Prerequisiti**
|
|
```bash
|
|
# Installa Node.js e npm
|
|
node --version # >= 14.0.0
|
|
npm --version # >= 6.0.0
|
|
|
|
# Installa dipendenze
|
|
npm install axios
|
|
```
|
|
|
|
### 2. **Configurazione**
|
|
```bash
|
|
# Copia file environment
|
|
cp .env.example .env
|
|
|
|
# Modifica configurazione API
|
|
nano .env
|
|
```
|
|
|
|
### 3. **Variabili Environment**
|
|
```bash
|
|
NETGESCON_API_URL=http://localhost:8000/api/v1
|
|
NETGESCON_EMAIL=admin@netgescon.local
|
|
NETGESCON_PASSWORD=your_password
|
|
```
|
|
|
|
---
|
|
|
|
## 🎯 **SCRIPT DISPONIBILI**
|
|
|
|
### **validation-checker.js**
|
|
Validazione preliminare dati senza import
|
|
```bash
|
|
# Esecuzione
|
|
node validation-checker.js
|
|
|
|
# Output
|
|
- validation-report-{timestamp}.json
|
|
- Log validazione su console
|
|
```
|
|
|
|
### **import-runner.js**
|
|
Import automatico completo via API
|
|
```bash
|
|
# Solo validazione (no import)
|
|
node import-runner.js --validate-only
|
|
|
|
# Import solo amministratori
|
|
node import-runner.js --step=admin
|
|
|
|
# Import solo stabili
|
|
node import-runner.js --step=stabili
|
|
|
|
# Import completo
|
|
node import-runner.js
|
|
```
|
|
|
|
---
|
|
|
|
## 📊 **PROCESSO STEP-BY-STEP**
|
|
|
|
### **Step 1: Validazione Pre-Import**
|
|
```bash
|
|
# Controlla tutti i dati prima di iniziare
|
|
node validation-checker.js
|
|
```
|
|
|
|
**Controlla:**
|
|
- Formati codici fiscali
|
|
- Validità email e PEC
|
|
- Formati IBAN
|
|
- CAP e province italiane
|
|
- Riferimenti incrociati amministratori-stabili
|
|
|
|
### **Step 2: Test Validazione API**
|
|
```bash
|
|
# Test chiamata API senza modifiche
|
|
node import-runner.js --validate-only
|
|
```
|
|
|
|
**Verifica:**
|
|
- Connessione API
|
|
- Autenticazione
|
|
- Validazione remota dati
|
|
- Mappatura campi corretta
|
|
|
|
### **Step 3: Import Amministratori**
|
|
```bash
|
|
# Import solo amministratori
|
|
node import-runner.js --step=admin
|
|
```
|
|
|
|
**Risultato:**
|
|
- Creazione utenti sistema
|
|
- Assegnazione ruoli
|
|
- Generazione password temporanee
|
|
|
|
### **Step 4: Import Stabili**
|
|
```bash
|
|
# Import stabili (dopo amministratori)
|
|
node import-runner.js --step=stabili
|
|
```
|
|
|
|
**Risultato:**
|
|
- Creazione stabili
|
|
- Collegamento amministratori
|
|
- Configurazione dati bancari
|
|
|
|
---
|
|
|
|
## 📁 **FILE GENERATI**
|
|
|
|
### **Log Files**
|
|
- `import.log` - Log dettagliato operazioni
|
|
- `validation-report-{timestamp}.json` - Report validazione
|
|
- `import-report-{timestamp}.json` - Report import finale
|
|
|
|
### **Struttura Log**
|
|
```
|
|
[2025-01-08T10:30:15.123Z] [INFO] Avvio import...
|
|
[2025-01-08T10:30:16.456Z] [INFO] Login API completato
|
|
[2025-01-08T10:30:17.789Z] [INFO] Amministratori importati: 1
|
|
[2025-01-08T10:30:18.012Z] [ERROR] Errore validazione stabile...
|
|
```
|
|
|
|
---
|
|
|
|
## 🔍 **MONITORING E DEBUG**
|
|
|
|
### **Verifica Stato**
|
|
```bash
|
|
# Durante import - altro terminale
|
|
tail -f import.log
|
|
|
|
# Controlla API server
|
|
curl http://localhost:8000/api/v1/auth/login
|
|
```
|
|
|
|
### **Recovery da Errori**
|
|
```bash
|
|
# Re-run solo step falliti
|
|
node import-runner.js --step=stabili
|
|
|
|
# Debug modalità
|
|
DEBUG_MODE=true node import-runner.js --validate-only
|
|
```
|
|
|
|
---
|
|
|
|
## ⚡ **ESEMPI USO**
|
|
|
|
### **Workflow Completo**
|
|
```bash
|
|
# 1. Validazione locale
|
|
node validation-checker.js
|
|
|
|
# 2. Test API
|
|
node import-runner.js --validate-only
|
|
|
|
# 3. Import step-by-step
|
|
node import-runner.js --step=admin
|
|
node import-runner.js --step=stabili
|
|
|
|
# 4. Verifica risultati
|
|
grep "importati" import.log
|
|
```
|
|
|
|
### **Solo Validazione**
|
|
```bash
|
|
# Controllo rapido dati
|
|
node validation-checker.js | grep ERROR
|
|
|
|
# Test connessione API
|
|
node import-runner.js --validate-only --step=admin
|
|
```
|
|
|
|
---
|
|
|
|
## 🔧 **TROUBLESHOOTING**
|
|
|
|
### **Errori Comuni**
|
|
|
|
#### **Connection Refused**
|
|
```bash
|
|
# Verifica server Laravel attivo
|
|
php artisan serve --host=0.0.0.0 --port=8000
|
|
|
|
# Test connessione
|
|
curl http://localhost:8000/api/v1/auth/login
|
|
```
|
|
|
|
#### **Authentication Failed**
|
|
```bash
|
|
# Verifica credenziali in .env
|
|
cat .env | grep NETGESCON_
|
|
|
|
# Test login manuale
|
|
curl -X POST http://localhost:8000/api/v1/auth/login \
|
|
-H "Content-Type: application/json" \
|
|
-d '{"email":"admin@netgescon.local","password":"password"}'
|
|
```
|
|
|
|
#### **Validation Errors**
|
|
```bash
|
|
# Controlla dettagli errori
|
|
node validation-checker.js > validation-output.txt
|
|
grep "ERROR" validation-output.txt
|
|
|
|
# Fix dati in JSON files
|
|
nano ../01-GESCON/amministratori.json
|
|
```
|
|
|
|
---
|
|
|
|
## 📈 **PERFORMANCE**
|
|
|
|
### **Tempi Stimati**
|
|
- Validazione: ~5 secondi
|
|
- Import 1 amministratore: ~2 secondi
|
|
- Import 7 stabili: ~10 secondi
|
|
- **Totale**: ~20 secondi
|
|
|
|
### **Ottimizzazione**
|
|
- Batch size: 50 record/volta
|
|
- Timeout: 30 secondi/richiesta
|
|
- Retry: 3 tentativi automatici
|
|
|
|
---
|
|
|
|
## 🔒 **SICUREZZA**
|
|
|
|
### **Best Practices**
|
|
- Password sicure in .env (non committare)
|
|
- Token API con scadenza
|
|
- Log senza dati sensibili
|
|
- Backup prima import
|
|
|
|
### **Rollback**
|
|
```sql
|
|
-- In caso di problemi
|
|
DELETE FROM stabili WHERE created_at > '2025-01-08 10:30:00';
|
|
DELETE FROM users WHERE email LIKE '%@import.temp';
|
|
```
|
|
|
|
---
|
|
|
|
## 🎯 **NEXT STEPS**
|
|
|
|
Dopo import amministratori e stabili:
|
|
1. Import unità immobiliari
|
|
2. Import anagrafica condomini
|
|
3. Import dati contabilità
|
|
4. Verifica integrità finale
|