netgescon-day0/docs/00-IMPORT/03-SCRIPTS/import-stabile-simple.sh

137 lines
4.1 KiB
Bash
Executable File

#!/bin/bash
# 🔄 IMPORT DATI GESCON STABILE 148 → NetGescon GES00148
# Import dei dati estratti nel database dedicato del stabile - Versione Semplificata
set -e
# Configurazione
STABILE_CODE="GES00148"
GESCON_CODE="148"
ADMIN_CODE="00000000"
DB_NAME="netgescon_stabile_${STABILE_CODE}"
EXTRACT_DIR="/home/michele/netgescon/docs/000-IMPORT/02-CSV-ESTRATTI/STABILE_0021"
# Credenziali database
DB_HOST="127.0.0.1"
DB_USER="netgescon_user"
DB_PASS="NetGescon2024!"
echo "🚀 IMPORT DATI GESCON STABILE ${GESCON_CODE} → NetGescon ${STABILE_CODE}"
echo "Database target: ${DB_NAME}"
echo "Dati source: ${EXTRACT_DIR}"
echo
# Verifica che esistano i file estratti
if [ ! -d "$EXTRACT_DIR" ]; then
echo "❌ Cartella estratti non trovata: $EXTRACT_DIR"
exit 1
fi
# 1. CREA TABELLE IMPORT
echo "🗄️ Creazione tabelle import..."
mysql -h $DB_HOST -u $DB_USER -p"$DB_PASS" $DB_NAME << 'SQL'
-- Tabella import condomini (proprietari)
DROP TABLE IF EXISTS import_condomini;
CREATE TABLE import_condomini (
id_cond INT,
cod_cond VARCHAR(20),
scala VARCHAR(10),
interno VARCHAR(10),
tipo_pr VARCHAR(10),
nom_cond VARCHAR(255),
presso VARCHAR(255),
ind VARCHAR(255),
cap VARCHAR(10),
citta VARCHAR(100),
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
INDEX idx_cod_cond (cod_cond),
INDEX idx_nom_cond (nom_cond)
);
-- Tabella import rate
DROP TABLE IF EXISTS import_rate;
CREATE TABLE import_rate (
id_rate INT,
id_condomino INT,
propr_inquil VARCHAR(10),
n_mese INT,
o_r_s VARCHAR(10),
importo_dovuto DECIMAL(10,2),
importo_dovuto_euro DECIMAL(10,2),
d_p_e VARCHAR(10),
dt_empag DATE,
descrizione VARCHAR(255),
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
INDEX idx_condomino (id_condomino),
INDEX idx_mese (n_mese)
);
-- Tabella import incassi
DROP TABLE IF EXISTS import_incassi;
CREATE TABLE import_incassi (
ID_incasso INT,
cod_cond VARCHAR(20),
cond_inquil VARCHAR(10),
n_riferimento VARCHAR(50),
anno_rif INT,
da_ricev_diretto VARCHAR(10),
n_ricevuta VARCHAR(50),
posiz_riga INT,
anno_ricev INT,
n_mese INT,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
INDEX idx_cod_cond (cod_cond),
INDEX idx_anno_mese (anno_rif, n_mese)
);
SQL
echo "✅ Tabelle create"
# 2. IMPORT CAMPIONE CONDOMINI (prime 10 righe per test)
echo "📋 Import campione condomini..."
if [ -f "$EXTRACT_DIR/ANNI/0001/condomin.csv" ]; then
# Prendi le prime 10 righe dopo l'header per test
tail -n +2 "$EXTRACT_DIR/ANNI/0001/condomin.csv" | head -10 | while IFS=',' read -r id_cond cod_cond scala interno tipo_pr nom_cond presso ind cap citta resto; do
# Pulisci i campi dalle virgolette
nom_cond=$(echo "$nom_cond" | sed 's/^"//; s/"$//')
presso=$(echo "$presso" | sed 's/^"//; s/"$//')
ind=$(echo "$ind" | sed 's/^"//; s/"$//')
mysql -h $DB_HOST -u $DB_USER -p"$DB_PASS" $DB_NAME -e "
INSERT INTO import_condomini (id_cond, cod_cond, scala, interno, tipo_pr, nom_cond, presso, ind, cap, citta)
VALUES ($id_cond, '$cod_cond', '$scala', '$interno', '$tipo_pr', \"$nom_cond\", \"$presso\", \"$ind\", '$cap', '$citta');" 2>/dev/null || true
done
CONDOMINI_COUNT=$(mysql -h $DB_HOST -u $DB_USER -p"$DB_PASS" $DB_NAME -sN -e "SELECT COUNT(*) FROM import_condomini;" 2>/dev/null)
echo " ✅ Importati $CONDOMINI_COUNT condomini (campione)"
else
echo " ⚠️ File condomin.csv non trovato"
fi
# 3. ANALISI DATI IMPORTATI
echo
echo "📊 ANALISI DATI IMPORTATI"
echo "========================="
mysql -h $DB_HOST -u $DB_USER -p"$DB_PASS" $DB_NAME << 'SQL' 2>/dev/null
SELECT 'Condomini campione importati:' as info, COUNT(*) as numero FROM import_condomini;
SELECT 'Primi 5 condomini:' as info, '' as numero;
SELECT CONCAT(cod_cond, ' - ', nom_cond) as condomino_info, cap, citta
FROM import_condomini
ORDER BY cod_cond
LIMIT 5;
SQL
echo
echo "✅ Import campione completato per stabile $STABILE_CODE"
echo "📊 Database: $DB_NAME"
echo "📁 Tabelle create e pronte per import completo"
echo
echo "🔄 Per import completo, modificare lo script per processare tutti i record"