137 lines
4.1 KiB
Bash
Executable File
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"
|