#!/bin/bash # Script per analisi completa struttura GESCON # Estrae tutte le tabelle principali da tutti i database MDB # Posizione: /home/michele/netgescon/docs/000-IMPORT/03-SCRIPTS/extract-gescon-complete.sh GESCON_ROOT="/home/michele/netgescon/docs/02-architettura-laravel/Gescon" OUTPUT_DIR="/home/michele/netgescon/docs/000-IMPORT/02-CSV-ESTRATTI" ANALYSIS_DIR="/home/michele/netgescon/docs/000-IMPORT/04-ANALISI" # Crea directory di output mkdir -p "$OUTPUT_DIR"/{CENTRALI,STABILI,ANNI} mkdir -p "$ANALYSIS_DIR" echo "=== ESTRAZIONE COMPLETA GESCON ===" echo "Root: $GESCON_ROOT" echo "Output: $OUTPUT_DIR" echo # FASE 1: Database centrali echo "=== FASE 1: DATABASE CENTRALI ===" echo "Estraendo Stabili.csv..." cp "$GESCON_ROOT/Stabili.csv" "$OUTPUT_DIR/CENTRALI/" STABILI_COUNT=$(wc -l < "$GESCON_ROOT/Stabili.csv") echo " → $STABILI_COUNT record stabili" echo "Estraendo Fornitori.csv..." cp "$GESCON_ROOT/Fornitori.csv" "$OUTPUT_DIR/CENTRALI/" FORNITORI_COUNT=$(wc -l < "$GESCON_ROOT/Fornitori.csv") echo " → $FORNITORI_COUNT record fornitori" echo "Estraendo database centrali MDB..." if [ -f "$GESCON_ROOT/dbc/Stabili.mdb" ]; then mdb-export "$GESCON_ROOT/dbc/Stabili.mdb" Stabili > "$OUTPUT_DIR/CENTRALI/Stabili_MDB.csv" echo " → Stabili.mdb estratto" fi if [ -f "$GESCON_ROOT/dbc/Fornitori.mdb" ]; then mdb-export "$GESCON_ROOT/dbc/Fornitori.mdb" Fornitori > "$OUTPUT_DIR/CENTRALI/Fornitori_MDB.csv" echo " → Fornitori.mdb estratto" fi # FASE 2: Analisi directory stabili echo echo "=== FASE 2: DIRECTORY STABILI ===" # Leggi elenco stabili dal CSV tail -n +2 "$GESCON_ROOT/Stabili.csv" | while IFS=';' read -r id_interno cod_stabile denominazione indirizzo cap citta provincia cf_cond cf_amm scale interni codice_dir resto; do echo "Elaborando Stabile: $cod_stabile - $codice_dir ($denominazione)" STABILE_DIR="$GESCON_ROOT/$codice_dir" OUTPUT_STABILE="$OUTPUT_DIR/STABILI/$codice_dir" if [ -d "$STABILE_DIR" ]; then mkdir -p "$OUTPUT_STABILE"/{GENERALE,ANNI} # Estrai generale_stabile.mdb if [ -f "$STABILE_DIR/generale_stabile.mdb" ]; then echo " → Estraendo generale_stabile.mdb" # Tabelle principali già identificate TABELLE_GENERALI=("anni" "Fatture" "emes_gen" "emes_det" "F24" "Elenco_destinatari_email" "Elenco_destinatari_PEC" "Corrisp_inviata") for tabella in "${TABELLE_GENERALI[@]}"; do mdb-export "$STABILE_DIR/generale_stabile.mdb" "$tabella" > "$OUTPUT_STABILE/GENERALE/${tabella}.csv" 2>/dev/null RECORDS=$(tail -n +2 "$OUTPUT_STABILE/GENERALE/${tabella}.csv" 2>/dev/null | wc -l) if [ $RECORDS -gt 0 ]; then echo " → $tabella: $RECORDS record" fi done fi # Estrai anni specifici for anno_dir in "$STABILE_DIR"/[0-9]*; do if [ -d "$anno_dir" ] && [ -f "$anno_dir/singolo_anno.mdb" ]; then ANNO_CODE=$(basename "$anno_dir") echo " → Estraendo anno $ANNO_CODE" mkdir -p "$OUTPUT_STABILE/ANNI/$ANNO_CODE" # Tabelle principali per anno TABELLE_ANNO=("condomin" "rate" "incassi" "Assemblee" "rendite_condominiali" "Detrazioni_fiscali" "foglio_riscossioni") for tabella in "${TABELLE_ANNO[@]}"; do mdb-export "$anno_dir/singolo_anno.mdb" "$tabella" > "$OUTPUT_STABILE/ANNI/$ANNO_CODE/${tabella}.csv" 2>/dev/null RECORDS=$(tail -n +2 "$OUTPUT_STABILE/ANNI/$ANNO_CODE/${tabella}.csv" 2>/dev/null | wc -l) if [ $RECORDS -gt 0 ]; then echo " → $tabella: $RECORDS record" fi done # Estrai anche anni.csv se presente if [ -f "$anno_dir/../anni.csv" ]; then cp "$anno_dir/../anni.csv" "$OUTPUT_STABILE/ANNI/" fi fi done else echo " → Directory $STABILE_DIR non trovata" fi echo done # FASE 3: Crea analisi riassuntiva echo "=== FASE 3: ANALISI RIASSUNTIVA ===" # Conta totali echo "Creando report analisi..." { echo "# REPORT ESTRAZIONE COMPLETA GESCON" echo "Data: $(date)" echo echo "## TOTALI ESTRATTI" echo echo "### Database Centrali:" echo "- Stabili: $STABILI_COUNT record" echo "- Fornitori: $FORNITORI_COUNT record" echo echo "### Per Stabile:" TOTAL_FATTURE=0 TOTAL_RATE=0 TOTAL_CONDOMINI=0 TOTAL_INCASSI=0 for stabile_dir in "$OUTPUT_DIR/STABILI"/*; do if [ -d "$stabile_dir" ]; then STABILE_CODE=$(basename "$stabile_dir") echo "#### Stabile $STABILE_CODE:" # Conta fatture if [ -f "$stabile_dir/GENERALE/Fatture.csv" ]; then FATTURE=$(tail -n +2 "$stabile_dir/GENERALE/Fatture.csv" | wc -l) echo " - Fatture: $FATTURE" TOTAL_FATTURE=$((TOTAL_FATTURE + FATTURE)) fi # Conta rate e condomini per anno for anno_dir in "$stabile_dir/ANNI"/*; do if [ -d "$anno_dir" ]; then ANNO_CODE=$(basename "$anno_dir") if [ -f "$anno_dir/rate.csv" ]; then RATE=$(tail -n +2 "$anno_dir/rate.csv" | wc -l) echo " - Rate $ANNO_CODE: $RATE" TOTAL_RATE=$((TOTAL_RATE + RATE)) fi if [ -f "$anno_dir/condomin.csv" ]; then CONDOMINI=$(tail -n +2 "$anno_dir/condomin.csv" | wc -l) echo " - Condomini $ANNO_CODE: $CONDOMINI" TOTAL_CONDOMINI=$((TOTAL_CONDOMINI + CONDOMINI)) fi if [ -f "$anno_dir/incassi.csv" ]; then INCASSI=$(tail -n +2 "$anno_dir/incassi.csv" | wc -l) echo " - Incassi $ANNO_CODE: $INCASSI" TOTAL_INCASSI=$((TOTAL_INCASSI + INCASSI)) fi fi done echo fi done echo "## TOTALI SISTEMA:" echo "- Stabili totali: $STABILI_COUNT" echo "- Fornitori totali: $FORNITORI_COUNT" echo "- Fatture totali: $TOTAL_FATTURE" echo "- Rate totali: $TOTAL_RATE" echo "- Condomini totali: $TOTAL_CONDOMINI" echo "- Incassi totali: $TOTAL_INCASSI" echo echo "Volume dati stimato: $((TOTAL_RATE + TOTAL_INCASSI + TOTAL_FATTURE + TOTAL_CONDOMINI)) record" } > "$ANALYSIS_DIR/REPORT-ESTRAZIONE-COMPLETA.md" echo "=== ESTRAZIONE COMPLETATA ===" echo "Report salvato in: $ANALYSIS_DIR/REPORT-ESTRAZIONE-COMPLETA.md" echo "Dati estratti in: $OUTPUT_DIR"