# Rapporto Completo: Librerie Non Utilizzate e Codice Morto

**Data Analisi:** 2025-01-24  
**Codebase:** CHEWEBAPP  
**Analizzato:** /home/tmirandola/CHELEO/chewebapp_bitbucket

## **RIEPILOGO GENERALE**

Ho identificato **significative opportunità di pulizia del codice** che potrebbero liberare diverse centinaia di MB di spazio e ridurre la complessità del codebase.

---

## **1. LIBRERIE E DIPENDENZE NON UTILIZZATE**

### **Sicure da Rimuovere (Alta Confidenza)**
- **`com/class/pChart2.1.4/`** - Directory completa (~500KB-1MB)
  - Versione più recente di pChart mai implementata
  - Nessun riferimento trovato nel codebase
- **`com/class/DB2Adapter.class.php`** - Completamente inutilizzato
- **`com/class/xPDF.class.php`** - Completamente inutilizzato  
- **`com/class/help.class.php`** - Completamente inutilizzato

### **Da Investigare Ulteriormente**
- **`com/class/HashTable.class.php`** - Uso limitato
- **Duplicazione SMTP** - Consolidare `SMTP.class.php` e `class.smtp.php`

### **Duplicazioni Identificate (CONSOLIDARE)**
- **`apps/preventivi/com/com/classi/wsPrevManager.class.php`** vs **`apps/preventivi/com/inc/classi/wsPrevManager.class.php`**
  - **Stato**: File identici duplicati
  - **Uso**: Attivamente utilizzato nei web services SOAP (`PrevManagerDL.ws.php`)
  - **Raccomandazione**: Mantenere una sola copia, rimuovere l'altra per evitare confusione
  - **Evidenze utilizzo**:
    - Istanziato in `apps/preventivi/ws/PrevManagerDL.ws.php:73`
    - Utilizzato nei file di test `testaPrevManager.php` e `testaPrevManagerDL.php`
    - Definito nei file WSDL per API SOAP

### **Librerie Attivamente Utilizzate (MANTENERE)**
- **Zend Framework (PDF)** - 133+ riferimenti per generazione PDF
- **pChart (v1)** - Utilizzato per grafici statistici
- **PHPMailer** - 24+ riferimenti per funzionalità email
- **Securimage** - CAPTCHA per sicurezza login
- **File JAR AS400** - Integrazione sistema legacy

---

## **2. CODICE MORTO E COMMENTATO**

### **Directory di Backup Massive**
- **`apps.old/`** - Contiene **403+ file PHP** di versioni precedenti
  - Sottodirectory: `__criteri_coll/`, `__criteri_prod/`, `__preventivi_*`
  - **Potenziale risparmio: decine di MB**

### **File di Test con Codice Commentato**
- **`apps/criteri/test/test.php`** - 95% del file commentato (linee 2-93)
- **`apps/preventivi/preventivi/preventivi.inc.php`** - Grandi blocchi di array commentati (linee 15-43)

### **File di Debug da Rimuovere**
- **`get400Resp.php`** - Solo `var_dump($_SESSION)`
- **`getUser.php`** - Solo debug dell'oggetto utente

### **File Backup Specifici**
- `com/img/pdf.png.old`
- `com/js/statistiche.js.old`  
- `home/template/STD/css/style_dom.css.old`
- `apps/preventivi/PRIMDATI/preventivi/prev_secci_*.old` (3 file)

---

## **3. FILE CSS/JS NON UTILIZZATI**

### **CSS Completamente Inutilizzati**
- **`com/css/ajax.css`** - Nessun riferimento trovato nel codebase

### **JavaScript Completamente Inutilizzati**
- **`com/js/ajax-dynamic-list.js`** - Correlato ad ajax.css inutilizzato
- **`com/js/active0.prima.js`** - Versione backup di active0.js
- **`com/js/controls.js`** - Nessun riferimento trovato
- **`com/js/statistiche.js.old`** - File backup
- **`com/js/statistiche_incassi.prima.js`** - Versione precedente
- **`com/js/statistiche_monitoraggio.prec.js`** - Versione precedente
- **`com/js/jquery-3.2.1.min.js`** - Duplicato inutilizzato (si usa jquery-3.2.1.js)
- **`com/js/tools.js`** - Nessun riferimento trovato

### **Immagini Inutilizzate**
- **File Thumbs.db** - Cache thumbnail Windows (21 file)
- **Backup immagini**: `delete_old.png`, `delete_old2.png`, `pdf.png.old`
- **`com/images/chartbg.png`** - Sostituito da chartbg-vanilla.png
- **`com/images/ui-bg_gloss-wave_55_5c9ccc_500x100.redo.png`** - Versione backup

---

## **4. FILE ORFANI E ARTIFACT**

### **File Windows di Sistema (21 file)**
**Tutti i file `Thumbs.db` nelle seguenti posizioni:**
- `apps/criteri/com/inc/img/Thumbs.db`
- `apps/criteri/com/inc/img/calendar/Thumbs.db`
- `apps/criteri/com/inc/img/old_icon/Thumbs.db`
- `com/img/Thumbs.db`
- `com/img/calendar/Thumbs.db`
- Multiple istanze nelle directory template

### **Directory Vuote (7 directory)**
- `home/template/_file_personalizzabili_template/js`
- `home/template/_file_personalizzabili_template/html`
- `home/template/_file_personalizzabili_template/img`
- `home/view`

### **File Backup con Pattern Sospetti (60+ file)**
**File con suffissi `_old`, `.old`, `_backup`, `_copy`:**
- Immagini: `exito_old.png`, `header_old.png`, `logo_old.png`
- CSS: `style_dom.css.old`
- Directory: `prime_1024_old`, `IFIVDATI2_old`
- Archive: `apps.old.zip`

### **File Completamente Vuoti (5 file)**
- **`home/template/STD/css/confr/personal.css`** - 0 bytes
- **`home/template/STD/css/personal.css`** - 0 bytes
- **`home/template/_Standard/css/personal.css`** - 0 bytes
- **`com/res/feed.xml`** - File XML vuoto
- **`README.txt`** - File README vuoto

### **File di Sviluppo/Test**
- `test/test.php`
- `apps/criteri/test/test.php` 
- `apps/preventivi/test.php`
- `test.html`
- `apps/preventivi/batch/testPrepStmt2.php`

---

## **RACCOMANDAZIONI PRIORITARIE**

### **🔴 PRIORITÀ ALTA - Rimozione Sicura Immediata**

#### **1. Directory apps.old/ (Maggior Impatto)**
```bash
# BACKUP PRIMA DELLA RIMOZIONE
tar -czf apps_old_backup_$(date +%Y%m%d).tar.gz apps.old/
rm -rf apps.old/
```

#### **2. File Thumbs.db (21 file)**
```bash
find . -name "Thumbs.db" -type f -delete
```

#### **3. Librerie Completamente Inutilizzate**
```bash
rm -rf com/class/pChart2.1.4/
rm com/class/DB2Adapter.class.php
rm com/class/xPDF.class.php  
rm com/class/help.class.php
```

#### **4. Risoluzione Duplicazioni**
```bash
# wsPrevManager.class.php - Verificare quale versione è effettivamente inclusa
# Dopo verifica, rimuovere la copia non utilizzata:
# rm apps/preventivi/com/com/classi/wsPrevManager.class.php
# OPPURE
# rm apps/preventivi/com/inc/classi/wsPrevManager.class.php
```

#### **5. File di Debug**
```bash
rm get400Resp.php getUser.php
```

#### **6. CSS/JS Inutilizzati**
```bash
rm com/css/ajax.css
rm com/js/ajax-dynamic-list.js
rm com/js/active0.prima.js
rm com/js/controls.js
rm com/js/statistiche.js.old
rm com/js/statistiche_incassi.prima.js
rm com/js/statistiche_monitoraggio.prec.js
rm com/js/jquery-3.2.1.min.js
rm com/js/tools.js
```

### **🟡 PRIORITÀ MEDIA - Revisione Prima della Rimozione**

#### **1. File di Test (Verificare se Necessari)**
- `test/test.php`
- `apps/criteri/test/test.php`
- `apps/preventivi/test.php`
- `test.html`

#### **2. File Backup con Pattern _old**
- Verificare che le versioni principali funzionino correttamente
- Rimuovere solo dopo conferma

#### **3. File Vuoti**
- `home/template/*/css/personal.css` - Verificare se utilizzati dinamicamente
- `com/res/feed.xml` - Verificare se popolato da script

### **🟢 PRIORITÀ BASSA - Investigazione Approfondita**

#### **1. Classi PHP con Uso Limitato**
- `com/class/HashTable.class.php` - Verificare dipendenze Item class
- Consolidamento classi SMTP duplicate

#### **2. Directory Template Vuote**
- Valutare se parte della struttura necessaria

---

## **RISPARMIO STIMATO**

| Categoria | Dimensione Stimata | Descrizione |
|-----------|-------------------|-------------|
| **Directory apps.old/** | 50-100MB | 403+ file PHP obsoleti |
| **Librerie inutilizzate** | 1-2MB | pChart2.1.4, classi PHP |
| **File CSS/JS/immagini** | 2-5MB | File asset non referenziati |
| **File Thumbs.db + orfani** | 1-2MB | Cache Windows + artifact |
| **Duplicazioni da consolidare** | ~50KB | Classi duplicate (wsPrevManager, SMTP) |
| **TOTALE STIMATO** | **55-110MB** | + riduzione complessità significativa |

---

## **PROCEDURA RACCOMANDATA**

### **Fase 1: Backup Completo**
```bash
# Backup completo prima di iniziare
tar -czf codebase_backup_$(date +%Y%m%d_%H%M%S).tar.gz .
```

### **Fase 2: Rimozione Sicura (Alta Priorità)**
```bash
# 1. Directory apps.old (maggior impatto)
tar -czf apps_old_backup.tar.gz apps.old/
rm -rf apps.old/

# 2. File Thumbs.db 
find . -name "Thumbs.db" -type f -delete

# 3. Librerie inutilizzate
rm -rf com/class/pChart2.1.4/
rm com/class/DB2Adapter.class.php com/class/xPDF.class.php com/class/help.class.php

# 4. File debug
rm get400Resp.php getUser.php

# 5. CSS/JS inutilizzati
rm com/css/ajax.css com/js/ajax-dynamic-list.js com/js/active0.prima.js
rm com/js/controls.js com/js/statistiche.js.old com/js/tools.js
rm com/js/statistiche_incassi.prima.js com/js/statistiche_monitoraggio.prec.js
rm com/js/jquery-3.2.1.min.js
```

### **Fase 3: Test Applicazione**
- Verificare funzionalità principali
- Controllare log errori
- Testare generazione PDF
- Verificare grafici statistici

### **Fase 4: Consolidamento Duplicazioni (Se Test OK)**
```bash
# Verificare quale versione di wsPrevManager.class.php è effettivamente utilizzata
# nell'autoload del sistema e rimuovere l'altra
# Stesso approccio per le classi SMTP duplicate
```

### **Fase 5: Pulizia Aggiuntiva**
- Procedere con file backup _old
- Rimuovere file di test obsoleti
- Verificare directory vuote

---

## **NOTE IMPORTANTI**

⚠️ **ATTENZIONE**: 
- Eseguire sempre backup completo prima delle modifiche
- Testare l'applicazione dopo ogni fase di pulizia
- Non rimuovere file se non si è certi della loro inutilità
- Monitorare log errori durante il processo

✅ **BENEFICI ATTESI**:
- Riduzione significativa dimensioni codebase
- Miglioramento prestazioni di indicizzazione
- Semplificazione manutenzione
- Riduzione confusione sviluppatori

---

**Fine Rapporto**