Marius Mutu bc05d02319 Add manager-friendly explanations and dynamic generators
main.py:
- Add PDF_EXPLANATIONS dict with Romanian explanations for all report sections
- Add dynamic explanation generators:
  - generate_indicatori_generali_explanation() - financial ratios with values
  - generate_indicatori_lichiditate_explanation() - liquidity ratios
  - generate_ciclu_cash_explanation() - cash conversion cycle
  - generate_solduri_clienti/furnizori_explanation() - balance summaries

report_generator.py:
- Add diacritics removal for PDF compatibility (Helvetica font)
- Add sanitize_for_pdf() helper function
- Add explanation_fill and explanation_border styles for info boxes
- Enhance add_consolidated_sheet() with explanation parameter
- Add merged explanation boxes with light grey background

These changes complement the FORMULA column additions, providing
managers with contextual explanations throughout the reports.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-12 16:20:30 +02:00

Data Intelligence Report Generator

Generator automat de rapoarte de Business Intelligence pentru ERP ROA (Oracle Database).

📋 Funcționalități

Scriptul generează automat:

Excel (multiple sheet-uri):

  • Sumar Executiv - KPIs principale
  • 🚨 Vânzări sub Cost - Alertă critică pentru pierderi
  • ⚠️ Clienți Marjă Mică - Clienți care necesită renegociere
  • Marja per Client - Profitabilitate per client
  • Concentrare Clienți - Analiza dependenței de clienți mari
  • Trending Clienți - Evoluție YoY (creștere/scădere)
  • Top Produse - Cele mai vândute produse
  • Marja per Categorie - Profitabilitate per subgrupă
  • Marja per Gestiune - Profitabilitate per depozit
  • Producție vs Revânzare - Comparație marje
  • Dispersie Prețuri - Produse cu variație mare de preț
  • Clienți sub Medie - Cine cumpără prea ieftin
  • Vânzări Lunare - Sezonalitate (24 luni)
  • Stoc Curent - Valoare stoc per gestiune
  • Stoc Lent - Produse fără mișcare >90 zile
  • Rotație Stocuri - Viteza de rotație
  • Analiză Prăjitorie - Fluxul producției

PDF (Sumar Executiv):

  • Grafice interactive
  • Tabele rezumat
  • Alerte evidențiate vizual
  • Perfect pentru prezentări

🚀 Instalare

Opțiunea 1: Virtual Environment (recomandat)

# 1. Clonează/copiază directorul
cd data_intelligence_report

# 2. Creează mediu virtual
python -m venv .venv

# 3. Activează mediul virtual
source .venv/bin/activate      # Linux/WSL/Mac
# sau
.venv\Scripts\activate         # Windows CMD
# sau
.venv\Scripts\Activate.ps1     # Windows PowerShell

# 4. Instalează dependențele
pip install -r requirements.txt

# 5. Configurează conexiunea
cp .env.example .env
nano .env  # sau editează cu alt editor

Opțiunea 2: Docker

# 1. Configurează conexiunea
cp .env.example .env
nano .env

# 2. Rulează cu docker-compose
docker-compose run --rm report-generator

⚙️ Configurare

Copiază .env.example în .env și editează:

ORACLE_HOST=127.0.0.1
ORACLE_PORT=1521
ORACLE_SERVICE=XEPDB1
ORACLE_USER=FIRMA
ORACLE_PASSWORD=PAROLA

OUTPUT_DIR=./output
COMPANY_NAME=Numele Companiei

Conexiune Oracle din diferite medii

Mediu ORACLE_HOST
Windows nativ 127.0.0.1 sau localhost
WSL IP Windows (vezi mai jos)
Docker host.docker.internal (automat în docker-compose)

Pentru WSL, obține IP-ul Windows:

cat /etc/resolv.conf | grep nameserver | awk '{print $2}'

📊 Utilizare

Cu Virtual Environment

# Activează mediul (dacă nu e activ)
source .venv/bin/activate  # Linux/WSL
# sau: .venv\Scripts\activate  # Windows

# Raport standard (ultimele 12 luni)
python main.py

# Raport pentru ultimele 6 luni
python main.py --months 6

# Salvare în alt director
python main.py --output-dir /path/to/output

Cu Docker

# Raport standard
docker-compose run --rm report-generator

# Cu parametri custom
docker-compose run --rm report-generator python main.py --months 6

📁 Structura Output

output/
├── data_intelligence_report_20251126_143022.xlsx
└── data_intelligence_report_20251126_143022.pdf

🔧 Cerințe Sistem

  • Python 3.8+
  • Oracle Client (sau oracledb în thin mode)
  • Acces la schema Oracle cu view-urile:
    • fact_vfacturi2
    • fact_vfacturi_detalii
    • vnom_articole
    • vnom_parteneri
    • vstoc
    • vrul

📈 Query-uri Incluse

Toate query-urile sunt în queries.py și pot fi personalizate:

  1. Praguri de alertă:

    • Marjă mică: < 15%
    • Variație preț: > 20%
    • Stoc lent: > 90 zile
  2. Parametri configurabili:

    • Perioada de analiză (luni)
    • Vânzări minime pentru analiză
    • Număr maxim de rezultate

🤝 Personalizare

Pentru a adăuga query-uri noi:

  1. Adaugă SQL-ul în queries.py
  2. Adaugă entry în dicționarul QUERIES
  3. (Opțional) Adaugă în sheet_order din main.py

📝 Note

  • Raportul folosește view-urile existente din ERP
  • Datele șterse (sters=0) sunt excluse automat
  • Retururile și credit note-urile sunt excluse din analiză
  • Producția proprie e identificată după cont (341, 345)

Generator creat pentru ROMFAST SRL - ERP ROA

Description
No description provided
Readme 229 KiB
Languages
Python 99.8%
Dockerfile 0.1%