# Gestore Trimestrale - Documentazione Tecnica

## Descrizione Generale

Gestore Trimestrale è un'applicazione Windows (WPF) progettata per la gestione automatizzata di documenti e report per Fideuram. L'applicazione gestisce principalmente l'elaborazione, la generazione e la distribuzione di report PDF e file ZIP su base periodica (giornaliera, settimanale e trimestrale).

## Architettura Database

### Database Principale (C6StampeCentralizzate)

- **Server**: "10.14.152.19;", "10.10.32.203;" modificati in "DATABASE_PDC_LOCALE;"
- **Database**: C6StampeCentralizzate
- **Utente**: F701264
- **Configurazione**: Max Pool Size=1000, Load Balance Timeout=1000
- **Scopo**: Gestione delle stampe centralizzate e operazioni principali

### Database Report (SEIReport)

- **Server**: 10.14.152.20\i1
- **Database**: SEIReport
- **Utente**: SEIReport
- **Configurazione**: Max Pool Size=10
- **Scopo**: Gestione specifica dei report

## Funzionalità Principali

### 1. Elaborazione Dati (Processing)

- Gestione dei processi di elaborazione dati
- Sistema di logging e monitoraggio
- Gestione multi-thread delle operazioni
- Contatori e statistiche in tempo reale

### 2. Trasferimento FTP

- Gestione automatizzata dei trasferimenti file
- Supporto per multiple destinazioni FTP
- Integrazione con WinSCP per le operazioni FTP
- Monitoraggio dello stato dei trasferimenti

### 3. Gestione File

- Compressione/decompressione file (utilizzo 7-Zip)
- Naming convention standardizzato per i file:
  - Prefisso: SEI
  - Formati: ZIP, IDX, TXT
- Gestione backup dei flussi in cartelle dedicate

### 4. Stored Procedures Principali

Schema: C6MartPeriodico

- SP_TotaliReportGenerazioneZip
- GESTIONE_SELECT_FTP_DA_INVIARE
- GESTIONE_UPDATE_FTP
- GESTIONE_UPDATE_EMAIL_HOST
- GESTIONE_INSERT_ELABORAZIONE_ZIP
- GESTIONE_UPDATE_ELABORAZIONE_ZIP

## Configurazione

### Tipi di Invio

- **Giornaliero** (G)
- **Settimanale**
- **Trimestrale** (T)

### Gestione ZIP

- Prefisso file: SEI
- Suffissi:
  - T1: 01_A (Report diagnosi con lettera di benvenuto giornalieri)
  - T2: 01_B (Report diagnosi + report monitoraggio + lettera accompagnamento)

### Logging

- Implementazione: NLog
- Monitoraggio in tempo reale delle operazioni
- Intervalli configurabili per aggiornamento statistiche

## Performance e Scalabilità

- Supporto multi-threading configurabile
- Pool di connessioni database ottimizzato
- Gestione timeout e bilanciamento del carico
- Intervalli configurabili per operazioni batch

## Operazioni Database

### Stored Procedures di Aggiornamento

L'applicazione esegue modifiche al database attraverso le seguenti stored procedures:

- `[C6MartPeriodico].[GESTIONE_UPDATE_FTP]` - Aggiorna lo stato dei trasferimenti FTP
- `[C6MartPeriodico].[GESTIONE_UPDATE_EMAIL_HOST]` - Aggiorna le date di comunicazione con l'host
- `[C6MartPeriodico].[GESTIONE_UPDATE_ZIP]` - Aggiorna lo stato dei file ZIP
- `[C6MartPeriodico].[GESTIONE_INSERT_ELABORAZIONE_ZIP]` - Inserisce i record di elaborazione ZIP
- `[C6MartPeriodico].[GESTIONE_INSERT_ZIP]` - Inserisce nuovi record ZIP

### Logging e Tracciamento

- Tracciamento dello stato di elaborazione dei file
- Logging degli errori nel database (quando `scriviErroreNelDB=1`)
- Monitoraggio delle operazioni FTP e comunicazioni host