Initial commit: Data Intelligence Report Generator
- Oracle ERP ROA integration with sales analytics and margin analysis - Excel multi-sheet reports with conditional formatting - PDF executive summaries with charts via ReportLab - Optimized SQL queries (no cartesian products) - Docker support for cross-platform deployment - Configurable alert thresholds for business intelligence 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
176
README.md
Normal file
176
README.md
Normal file
@@ -0,0 +1,176 @@
|
||||
# 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)
|
||||
|
||||
```bash
|
||||
# 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
|
||||
|
||||
```bash
|
||||
# 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ă:
|
||||
|
||||
```env
|
||||
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:
|
||||
```bash
|
||||
cat /etc/resolv.conf | grep nameserver | awk '{print $2}'
|
||||
```
|
||||
|
||||
## 📊 Utilizare
|
||||
|
||||
### Cu Virtual Environment
|
||||
```bash
|
||||
# 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
|
||||
```bash
|
||||
# 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
|
||||
Reference in New Issue
Block a user