--- aliases: ["GemmaReport"] type: progetto --- # CLAUDE.md — GemmaReport **Versione:** v1 **Creato:** 2026-04-01 ## Scopo Report settimanale (ogni mercoledì) che estrae da GEMMA i nuovi prodotti non ancora presenti in tabOsservatorio e non già inviati nelle settimane precedenti, genera un Excel formattato e lo invia via Outlook ai destinatari configurati. ## Fonti dati | DB | Path | Tabelle usate | |---|---|---| | DB_DAY.accdb | `I:\SOFTWARE\ProcedureICR\ICRmonitor\MonitorLinker\` | GEMMA, CUSTOM_ANAGR_ORIZ | | db_Osservatorio.accdb | `I:\SOFTWARE\ProcedureICR\ICRmonitor\MonitorLinker\` | tabOsservatorio | ## Logica filtri 1. `A_Tipologia NOT IN ('DOCUMENTARI', 'FILM', 'INTRATTENIMENTO LEGGERO')` 2. `A_Cod IMDB` non null e non `'no imdb'` 3. `PAESE <> 'I'` (escludi prodotti italiani — da CUSTOM_ANAGR_ORIZ) 4. IMDB non presente in `tabOsservatorio` (gestita da altro ufficio) 5. IMDB non già inviato in precedenti report (`sent_tracker.db`) ## Tracking invii `sent_tracker.db` (SQLite locale, in .gitignore) — tabella `sent_items (imdb, sent_date)`. Dopo ogni invio riuscito, gli IMDB vengono marcati. La settimana successiva vengono esclusi automaticamente. **Reset manuale**: se si vuole reinviare tutti i prodotti, cancellare `sent_tracker.db`. ## Configurazione `config.json`: - `data_inizio`: data baseline (prodotti con A_Data >= questa data). Convenzionalmente `2025-10-01`. - `email.to`: lista destinatari fissi. Da aggiornare manualmente se cambiano. - `email.subject`: oggetto email — `{date}` viene sostituito con la data di invio. ## Deploy - Dev: `C:\PYTHON\GemmaReport\` - Server: `I:\SOFTWARE\PYTHON_SRV\PYTHON_LOCAL\GemmaReport\` - Deploy: `deploy.bat` (xcopy escludendo venv, logs, output, tracker) ## Schedulazione Frank — job `GemmaReport` — ogni mercoledì (ora da definire con Mauro). ## Setup iniziale (prima installazione) ```bat python -m venv venv venv\Scripts\pip install -r requirements.txt ``` Poi compilare `config.json` con i destinatari reali. ## Standard - Python 3.11.9 - loguru per logging - pyodbc per Access - openpyxl per Excel - pywin32 per Outlook COM