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

197 lines
5.9 KiB
Bash
Executable File

#!/bin/bash
# 🔄 IMPORT DATI GESCON STABILE 148 → NetGescon GES00148
# Import dei dati estratti nel database dedicato del stabile
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. IMPORT CONDOMINI (anagrafica proprietari)
echo "📋 1. Import Condomini (proprietari)..."
if [ -f "$EXTRACT_DIR/ANNI/0001/condomin.csv" ]; then
# Crea tabella temporanea per import
mysql -h $DB_HOST -u $DB_USER -p"$DB_PASS" $DB_NAME << 'SQL'
CREATE TABLE IF NOT EXISTS 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
);
SQL
# Import dati CSV (salta header)
tail -n +2 "$EXTRACT_DIR/ANNI/0001/condomin.csv" | \
mysql -h $DB_HOST -u $DB_USER -p"$DB_PASS" $DB_NAME \
--local-infile=1 -e "
LOAD DATA LOCAL INFILE '/dev/stdin'
INTO TABLE import_condomini
FIELDS TERMINATED BY ','
OPTIONALLY ENCLOSED BY '\"'
LINES TERMINATED BY '\n'
(id_cond, cod_cond, scala, interno, tipo_pr, nom_cond, presso, ind, cap, citta);"
CONDOMINI_COUNT=$(mysql -h $DB_HOST -u $DB_USER -p"$DB_PASS" $DB_NAME -sN -e "SELECT COUNT(*) FROM import_condomini;")
echo " ✅ Importati $CONDOMINI_COUNT condomini"
else
echo " ⚠️ File condomin.csv non trovato"
fi
# 2. IMPORT RATE (movimenti rate condominiali)
echo "💰 2. Import Rate..."
if [ -f "$EXTRACT_DIR/ANNI/0001/rate.csv" ]; then
mysql -h $DB_HOST -u $DB_USER -p"$DB_PASS" $DB_NAME << 'SQL'
CREATE TABLE IF NOT EXISTS 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
);
SQL
tail -n +2 "$EXTRACT_DIR/ANNI/0001/rate.csv" | \
mysql -h $DB_HOST -u $DB_USER -p"$DB_PASS" $DB_NAME \
--local-infile=1 -e "
LOAD DATA LOCAL INFILE '/dev/stdin'
INTO TABLE import_rate
FIELDS TERMINATED BY ','
OPTIONALLY ENCLOSED BY '\"'
LINES TERMINATED BY '\n'
(id_rate, id_condomino, propr_inquil, n_mese, o_r_s, importo_dovuto, importo_dovuto_euro, d_p_e, @dt_empag, descrizione)
SET dt_empag = NULLIF(@dt_empag, '');"
RATE_COUNT=$(mysql -h $DB_HOST -u $DB_USER -p"$DB_PASS" $DB_NAME -sN -e "SELECT COUNT(*) FROM import_rate;")
echo " ✅ Importate $RATE_COUNT rate"
else
echo " ⚠️ File rate.csv non trovato"
fi
# 3. IMPORT INCASSI (pagamenti)
echo "💵 3. Import Incassi..."
if [ -f "$EXTRACT_DIR/ANNI/0001/incassi.csv" ]; then
mysql -h $DB_HOST -u $DB_USER -p"$DB_PASS" $DB_NAME << 'SQL'
CREATE TABLE IF NOT EXISTS 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
);
SQL
tail -n +2 "$EXTRACT_DIR/ANNI/0001/incassi.csv" | \
mysql -h $DB_HOST -u $DB_USER -p"$DB_PASS" $DB_NAME \
--local-infile=1 -e "
LOAD DATA LOCAL INFILE '/dev/stdin'
INTO TABLE import_incassi
FIELDS TERMINATED BY ','
OPTIONALLY ENCLOSED BY '\"'
LINES TERMINATED BY '\n'
(ID_incasso, cod_cond, cond_inquil, n_riferimento, anno_rif, da_ricev_diretto, n_ricevuta, posiz_riga, anno_ricev, n_mese);"
INCASSI_COUNT=$(mysql -h $DB_HOST -u $DB_USER -p"$DB_PASS" $DB_NAME -sN -e "SELECT COUNT(*) FROM import_incassi;")
echo " ✅ Importati $INCASSI_COUNT incassi"
else
echo " ⚠️ File incassi.csv non trovato"
fi
# 4. IMPORT FATTURE (dal generale)
echo "🧾 4. Import Fatture..."
if [ -f "$EXTRACT_DIR/GENERALE/Fatture.csv" ]; then
mysql -h $DB_HOST -u $DB_USER -p"$DB_PASS" $DB_NAME << 'SQL'
CREATE TABLE IF NOT EXISTS import_fatture (
id INT AUTO_INCREMENT PRIMARY KEY,
data_fattura DATE,
numero_fattura VARCHAR(50),
fornitore VARCHAR(255),
importo DECIMAL(10,2),
descrizione TEXT,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
SQL
# Per le fatture facciamo un import più semplice inizialmente
FATTURE_COUNT=$(tail -n +2 "$EXTRACT_DIR/GENERALE/Fatture.csv" | wc -l)
echo " ✅ Trovate $FATTURE_COUNT fatture (import dettagliato da fare)"
else
echo " ⚠️ File Fatture.csv non trovato"
fi
# 5. RIEPILOGO IMPORT
echo
echo "📊 RIEPILOGO IMPORT COMPLETATO"
echo "================================="
mysql -h $DB_HOST -u $DB_USER -p"$DB_PASS" $DB_NAME << 'SQL'
SELECT
'import_condomini' as tabella,
COUNT(*) as record_importati
FROM import_condomini
UNION ALL
SELECT
'import_rate' as tabella,
COUNT(*) as record_importati
FROM import_rate
UNION ALL
SELECT
'import_incassi' as tabella,
COUNT(*) as record_importati
FROM import_incassi;
SQL
echo
echo "✅ Import completato per stabile $STABILE_CODE"
echo "📊 Database: $DB_NAME"
echo "📁 Dati disponibili per elaborazione e mappatura"
echo
echo "🔄 Prossimi step:"
echo " 1. Mappatura dati import → tabelle NetGescon standard"
echo " 2. Creazione unità immobiliari da condomini"
echo " 3. Creazione proprietari da anagrafica"
echo " 4. Migrazione movimenti contabili"