378 lines
12 KiB
Bash
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"
|