197 lines
5.9 KiB
Bash
Executable File
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"
|