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

378 lines
12 KiB
Bash

#!/bin/bash
# IMPORT COMPLETO DATI GESCON → NetGescon STABILE GES00148
# Database: netgescon_stabile_GES00148
# Dati: STABILE_0021 (2024 e 2025)
echo "🚀 IMPORT COMPLETO DATI GESCON STABILE 148 → NetGescon GES00148"
echo "Database target: netgescon_stabile_GES00148"
echo "Dati source: /home/michele/netgescon/docs/000-IMPORT/02-CSV-ESTRATTI/STABILE_0021"
# Parametri database
DB_HOST="localhost"
DB_NAME="netgescon_stabile_GES00148"
DB_USER="netgescon"
DB_PASS="miki2024"
# Directory dati
DATA_DIR="/home/michele/netgescon/docs/000-IMPORT/02-CSV-ESTRATTI/STABILE_0021"
echo ""
echo "🗄️ Svuotamento tabelle esistenti..."
mysql -h${DB_HOST} -u${DB_USER} -p${DB_PASS} ${DB_NAME} << 'EOF'
DELETE FROM import_incassi;
DELETE FROM import_rate;
DELETE FROM import_condomini;
EOF
if [ $? -eq 0 ]; then
echo " ✅ Tabelle svuotate"
else
echo " ❌ Errore svuotamento tabelle"
exit 1
fi
echo ""
echo "📋 Import CONDOMINI..."
# Funzione per preparare campo per MySQL
escape_field() {
echo "$1" | sed 's/"/\\"/g' | sed "s/'/\\'/g"
}
# Import condomini 2024
if [ -f "${DATA_DIR}/condomini_2024.csv" ]; then
echo " 📅 Import condomini 2024..."
# Conta righe (escluso header)
total_lines=$(tail -n +2 "${DATA_DIR}/condomini_2024.csv" | wc -l)
echo " 📊 Record da importare: $total_lines"
line_count=0
while IFS=',' read -r cod_condomino condomino cap citta millesimi interno appartamento; do
# Salta header
if [ "$cod_condomino" = "cod_condomino" ]; then
continue
fi
line_count=$((line_count + 1))
# Mostra progresso ogni 50 record
if [ $((line_count % 50)) -eq 0 ]; then
echo " → Processati $line_count/$total_lines record..."
fi
# Pulisci campi
cod_condomino=$(echo "$cod_condomino" | tr -d '"')
condomino=$(echo "$condomino" | tr -d '"')
cap=$(echo "$cap" | tr -d '"')
citta=$(echo "$citta" | tr -d '"')
millesimi=$(echo "$millesimi" | tr -d '"')
interno=$(echo "$interno" | tr -d '"')
appartamento=$(echo "$appartamento" | tr -d '"')
# Escape caratteri speciali
condomino=$(escape_field "$condomino")
citta=$(escape_field "$citta")
# Insert nel database
mysql -h${DB_HOST} -u${DB_USER} -p${DB_PASS} ${DB_NAME} << EOF
INSERT INTO import_condomini (
cod_condomino, condomino, cap, citta, millesimi, interno, appartamento, anno_fonte
) VALUES (
'$cod_condomino', '$condomino', '$cap', '$citta', '$millesimi', '$interno', '$appartamento', '2024'
);
EOF
if [ $? -ne 0 ]; then
echo " ❌ Errore import record $line_count: $condomino"
fi
done < "${DATA_DIR}/condomini_2024.csv"
echo " ✅ Condomini 2024 importati: $line_count"
fi
# Import condomini 2025
if [ -f "${DATA_DIR}/condomini_2025.csv" ]; then
echo " 📅 Import condomini 2025..."
# Conta righe (escluso header)
total_lines=$(tail -n +2 "${DATA_DIR}/condomini_2025.csv" | wc -l)
echo " 📊 Record da importare: $total_lines"
line_count=0
while IFS=',' read -r cod_condomino condomino cap citta millesimi interno appartamento; do
# Salta header
if [ "$cod_condomino" = "cod_condomino" ]; then
continue
fi
line_count=$((line_count + 1))
# Mostra progresso ogni 50 record
if [ $((line_count % 50)) -eq 0 ]; then
echo " → Processati $line_count/$total_lines record..."
fi
# Pulisci campi
cod_condomino=$(echo "$cod_condomino" | tr -d '"')
condomino=$(echo "$condomino" | tr -d '"')
cap=$(echo "$cap" | tr -d '"')
citta=$(echo "$citta" | tr -d '"')
millesimi=$(echo "$millesimi" | tr -d '"')
interno=$(echo "$interno" | tr -d '"')
appartamento=$(echo "$appartamento" | tr -d '"')
# Escape caratteri speciali
condomino=$(escape_field "$condomino")
citta=$(escape_field "$citta")
# Insert nel database
mysql -h${DB_HOST} -u${DB_USER} -p${DB_PASS} ${DB_NAME} << EOF
INSERT INTO import_condomini (
cod_condomino, condomino, cap, citta, millesimi, interno, appartamento, anno_fonte
) VALUES (
'$cod_condomino', '$condomino', '$cap', '$citta', '$millesimi', '$interno', '$appartamento', '2025'
);
EOF
if [ $? -ne 0 ]; then
echo " ❌ Errore import record $line_count: $condomino"
fi
done < "${DATA_DIR}/condomini_2025.csv"
echo " ✅ Condomini 2025 importati: $line_count"
fi
echo ""
echo "💰 Import RATE..."
# Import rate 2024
if [ -f "${DATA_DIR}/rate_2024.csv" ]; then
echo " 📅 Import rate 2024..."
# Conta righe (escluso header)
total_lines=$(tail -n +2 "${DATA_DIR}/rate_2024.csv" | wc -l)
echo " 📊 Record da importare: $total_lines"
line_count=0
while IFS=',' read -r cod_condomino data_scadenza importo descrizione; do
# Salta header
if [ "$cod_condomino" = "cod_condomino" ]; then
continue
fi
line_count=$((line_count + 1))
# Mostra progresso ogni 100 record
if [ $((line_count % 100)) -eq 0 ]; then
echo " → Processati $line_count/$total_lines record..."
fi
# Pulisci campi
cod_condomino=$(echo "$cod_condomino" | tr -d '"')
data_scadenza=$(echo "$data_scadenza" | tr -d '"')
importo=$(echo "$importo" | tr -d '"')
descrizione=$(echo "$descrizione" | tr -d '"')
# Escape caratteri speciali
descrizione=$(escape_field "$descrizione")
# Insert nel database
mysql -h${DB_HOST} -u${DB_USER} -p${DB_PASS} ${DB_NAME} << EOF
INSERT INTO import_rate (
cod_condomino, data_scadenza, importo, descrizione, anno_fonte
) VALUES (
'$cod_condomino', '$data_scadenza', '$importo', '$descrizione', '2024'
);
EOF
if [ $? -ne 0 ]; then
echo " ❌ Errore import record $line_count"
fi
done < "${DATA_DIR}/rate_2024.csv"
echo " ✅ Rate 2024 importate: $line_count"
fi
# Import rate 2025
if [ -f "${DATA_DIR}/rate_2025.csv" ]; then
echo " 📅 Import rate 2025..."
# Conta righe (escluso header)
total_lines=$(tail -n +2 "${DATA_DIR}/rate_2025.csv" | wc -l)
echo " 📊 Record da importare: $total_lines"
line_count=0
while IFS=',' read -r cod_condomino data_scadenza importo descrizione; do
# Salta header
if [ "$cod_condomino" = "cod_condomino" ]; then
continue
fi
line_count=$((line_count + 1))
# Mostra progresso ogni 100 record
if [ $((line_count % 100)) -eq 0 ]; then
echo " → Processati $line_count/$total_lines record..."
fi
# Pulisci campi
cod_condomino=$(echo "$cod_condomino" | tr -d '"')
data_scadenza=$(echo "$data_scadenza" | tr -d '"')
importo=$(echo "$importo" | tr -d '"')
descrizione=$(echo "$descrizione" | tr -d '"')
# Escape caratteri speciali
descrizione=$(escape_field "$descrizione")
# Insert nel database
mysql -h${DB_HOST} -u${DB_USER} -p${DB_PASS} ${DB_NAME} << EOF
INSERT INTO import_rate (
cod_condomino, data_scadenza, importo, descrizione, anno_fonte
) VALUES (
'$cod_condomino', '$data_scadenza', '$importo', '$descrizione', '2025'
);
EOF
if [ $? -ne 0 ]; then
echo " ❌ Errore import record $line_count"
fi
done < "${DATA_DIR}/rate_2025.csv"
echo " ✅ Rate 2025 importate: $line_count"
fi
echo ""
echo "💵 Import INCASSI..."
# Import incassi 2024
if [ -f "${DATA_DIR}/incassi_2024.csv" ]; then
echo " 📅 Import incassi 2024..."
# Conta righe (escluso header)
total_lines=$(tail -n +2 "${DATA_DIR}/incassi_2024.csv" | wc -l)
echo " 📊 Record da importare: $total_lines"
line_count=0
while IFS=',' read -r cod_condomino data_incasso importo descrizione; do
# Salta header
if [ "$cod_condomino" = "cod_condomino" ]; then
continue
fi
line_count=$((line_count + 1))
# Mostra progresso ogni 50 record
if [ $((line_count % 50)) -eq 0 ]; then
echo " → Processati $line_count/$total_lines record..."
fi
# Pulisci campi
cod_condomino=$(echo "$cod_condomino" | tr -d '"')
data_incasso=$(echo "$data_incasso" | tr -d '"')
importo=$(echo "$importo" | tr -d '"')
descrizione=$(echo "$descrizione" | tr -d '"')
# Escape caratteri speciali
descrizione=$(escape_field "$descrizione")
# Insert nel database
mysql -h${DB_HOST} -u${DB_USER} -p${DB_PASS} ${DB_NAME} << EOF
INSERT INTO import_incassi (
cod_condomino, data_incasso, importo, descrizione, anno_fonte
) VALUES (
'$cod_condomino', '$data_incasso', '$importo', '$descrizione', '2024'
);
EOF
if [ $? -ne 0 ]; then
echo " ❌ Errore import record $line_count"
fi
done < "${DATA_DIR}/incassi_2024.csv"
echo " ✅ Incassi 2024 importati: $line_count"
fi
# Import incassi 2025
if [ -f "${DATA_DIR}/incassi_2025.csv" ]; then
echo " 📅 Import incassi 2025..."
# Conta righe (escluso header)
total_lines=$(tail -n +2 "${DATA_DIR}/incassi_2025.csv" | wc -l)
echo " 📊 Record da importare: $total_lines"
line_count=0
while IFS=',' read -r cod_condomino data_incasso importo descrizione; do
# Salta header
if [ "$cod_condomino" = "cod_condomino" ]; then
continue
fi
line_count=$((line_count + 1))
# Mostra progresso ogni 50 record
if [ $((line_count % 50)) -eq 0 ]; then
echo " → Processati $line_count/$total_lines record..."
fi
# Pulisci campi
cod_condomino=$(echo "$cod_condomino" | tr -d '"')
data_incasso=$(echo "$data_incasso" | tr -d '"')
importo=$(echo "$importo" | tr -d '"')
descrizione=$(echo "$descrizione" | tr -d '"')
# Escape caratteri speciali
descrizione=$(escape_field "$descrizione")
# Insert nel database
mysql -h${DB_HOST} -u${DB_USER} -p${DB_PASS} ${DB_NAME} << EOF
INSERT INTO import_incassi (
cod_condomino, data_incasso, importo, descrizione, anno_fonte
) VALUES (
'$cod_condomino', '$data_incasso', '$importo', '$descrizione', '2025'
);
EOF
if [ $? -ne 0 ]; then
echo " ❌ Errore import record $line_count"
fi
done < "${DATA_DIR}/incassi_2025.csv"
echo " ✅ Incassi 2025 importati: $line_count"
fi
echo ""
echo "📊 ANALISI DATI IMPORTATI"
echo "========================="
mysql -h${DB_HOST} -u${DB_USER} -p${DB_PASS} ${DB_NAME} << 'EOF'
SELECT 'Condomini totali:' as info, COUNT(*) as numero FROM import_condomini;
SELECT 'Condomini 2024:' as info, COUNT(*) as numero FROM import_condomini WHERE anno_fonte = '2024';
SELECT 'Condomini 2025:' as info, COUNT(*) as numero FROM import_condomini WHERE anno_fonte = '2025';
SELECT '' as info, '' as numero;
SELECT 'Rate totali:' as info, COUNT(*) as numero FROM import_rate;
SELECT 'Rate 2024:' as info, COUNT(*) as numero FROM import_rate WHERE anno_fonte = '2024';
SELECT 'Rate 2025:' as info, COUNT(*) as numero FROM import_rate WHERE anno_fonte = '2025';
SELECT '' as info, '' as numero;
SELECT 'Incassi totali:' as info, COUNT(*) as numero FROM import_incassi;
SELECT 'Incassi 2024:' as info, COUNT(*) as numero FROM import_incassi WHERE anno_fonte = '2024';
SELECT 'Incassi 2025:' as info, COUNT(*) as numero FROM import_incassi WHERE anno_fonte = '2025';
EOF
echo ""
echo "✅ Import completo terminato per stabile GES00148"
echo "📊 Database: netgescon_stabile_GES00148"
echo "📁 Tutti i dati importati e pronti per mapping su NetGescon"
echo ""
echo "🔄 Prossimi passi:"
echo " 1. Verifica qualità dati importati"
echo " 2. Mapping su schema NetGescon standard"
echo " 3. Creazione interfacce per gestione stabile"