# 📝 Modifications : Affichage des Pénalités

**Date** : 12 février 2026  
**Modifications demandées** : Ajouter colonne pénalité + afficher sur le reçu imprimé

---

## ✅ Modifications Effectuées

### 1. Colonne "Pénalité" Ajoutée dans la Liste des Quittances

**Fichier modifié** : `templates/admin/quittances/_partials/_table.html.twig`

**Avant :**
```
| Locataire | Appartements | Status | Payé? | Montant | Date | Zones | Actions |
```

**Après :**
```
| Locataire | Appartements | Status | Payé? | Montant | Pénalité | Date | Zones | Actions |
```

**Affichage de la colonne Pénalité :**
- ✅ Si pénalité appliquée : Badge rouge avec `10%` + montant en dessous
- ⚠️ Si pénalité due (non payée après le 10) : Badge orange "À appliquer"
- ➖ Si pas de pénalité : Tiret gris

**Exemple :**
```
┌───────────────┬──────────────┬─────────────┐
│ Montant       │ Pénalité     │ Date        │
├───────────────┼──────────────┼─────────────┤
│ 110 000 FCFA  │ 🔴 10%       │ 28/02/2026  │
│               │ 10 000 FCFA  │             │
├───────────────┼──────────────┼─────────────┤
│ 100 000 FCFA  │ ⚠️ À appliquer│ 28/02/2026  │
├───────────────┼──────────────┼─────────────┤
│ 100 000 FCFA  │ -            │ 28/02/2026  │
└───────────────┴──────────────┴─────────────┘
```

---

### 2. Pénalité Affichée sur le Reçu Imprimé (PDF)

**Fichier modifié** : `templates/pdf/quittance.html.twig`

**Avant :**
```
┌──────────────────────────────────────┐
│ PRIX TOTAL : 100 000 FCFA            │
└──────────────────────────────────────┘
```

**Après (si pénalité) :**
```
┌──────────────────────────────────────┐
│ SOUS-TOTAL      :  100 000 FCFA      │
│ PÉNALITÉ (10%)  :   10 000 FCFA 🔴   │
│ ─────────────────────────────────    │
│ PRIX TOTAL      :  110 000 FCFA      │
└──────────────────────────────────────┘
```

La ligne de pénalité s'affiche **en rouge** avec la mention :
> "PÉNALITÉ (10% - Paiement après le 10)"

---

### 3. Logique Améliorée pour Pénalités sur Quittances Payées Après le 10

**Fichier modifié** : `src/Entity/Quittances/Quittances.php`

**Problème identifié :**
Votre quittance créée le 12/02 (après le 10) n'avait pas de pénalité.

**Solution :**
```php
// Nouvelle logique
if ($this->is_payer && $this->payer_at) {
    if ($this->payer_at <= $deadline) {
        return false; // Payé à temps
    }
    // NOUVEAU : Si payé après le 10, appliquer la pénalité
    return !$this->is_penalite; // Sauf si déjà appliquée
}
```

**Résultat :**
- ✅ Quittance créée et payée après le 10 → Pénalité appliquée automatiquement
- ✅ Le montant total est automatiquement recalculé : `total = original + 10%`

---

## 🔧 Correction de Votre Quittance Existante

Votre quittance #8 doit être corrigée car :
- **Date de paiement** : 12/02/2026 (après le 10)
- **Pénalité** : Non appliquée (devrait être 10%)

### Option 1 : Correction SQL (Recommandée)

```sql
-- Voir le script complet dans :
migrations/fix_quittance_8_penalite.sql

-- Commande rapide pour corriger :
UPDATE quittances
SET 
    is_penalite = 1,
    penalite = 10,
    total = ROUND(total * 1.10, 2)
WHERE id = 8;

-- Résultat attendu :
-- Montant passe de 100 000 FCFA à 110 000 FCFA
```

### Option 2 : Via l'Interface

1. Ouvrir la quittance #8 en modification
2. Enregistrer sans rien changer
3. La pénalité sera appliquée automatiquement

---

## 🚀 Pour Tester

### 1. Vider le Cache

**Si erreur "Accès refusé" :**
```powershell
# Supprimer manuellement
Remove-Item -Recurse -Force var\cache\*

# Ou voir : FIX_CACHE_WINDOWS.md
```

**Si ça fonctionne :**
```powershell
php bin/console cache:clear
```

### 2. Vérifier la Liste

1. Aller sur la page des quittances
2. Vérifier que la colonne "Pénalité" est visible
3. Les quittances avec pénalité doivent montrer le badge rouge

### 3. Tester l'Impression

1. Cliquer sur "Imprimer la quittance" pour une quittance avec pénalité
2. Vérifier que le PDF affiche :
   - SOUS-TOTAL
   - PÉNALITÉ (10% - Paiement après le 10) en rouge
   - PRIX TOTAL

### 4. Tester la Création

1. Créer une nouvelle quittance avec :
   - Date de fin : Un mois passé
   - Marquer comme "Payée" aujourd'hui
2. Si date actuelle > 10 du mois → Pénalité automatique
3. Vérifier que le montant inclut +10%

---

## 📊 Exemple Concret avec Votre Quittance

### Avant Correction

```sql
mysql> SELECT * FROM quittances WHERE id = 8;
+----+--------+------------+------------+------------+-----------+-------------+----------+----------+
| id | code   | end_at     | payer_at   | total     | is_penalite | penalite |
+----+--------+------------+------------+-----------+-------------+----------+----------+
|  8 | 8/2026 | 2026-02-28 | 2026-02-12 | 100000.00 |           0 |        0 |
+----+--------+------------+------------+-----------+-------------+----------+----------+
```

**Analyse :**
- Date limite : **10 février 2026**
- Date de paiement : **12 février 2026** (2 jours de retard)
- Pénalité actuelle : **0%** ❌ (devrait être 10%)

### Après Correction

```sql
mysql> SELECT * FROM quittances WHERE id = 8;
+----+--------+------------+------------+-----------+-------------+----------+
| id | code   | end_at     | payer_at   | total     | is_penalite | penalite |
+----+--------+------------+------------+-----------+-------------+----------+
|  8 | 8/2026 | 2026-02-28 | 2026-02-12 | 110000.00 |           1 |       10 |
+----+--------+------------+------------+-----------+-------------+----------+
```

**Calcul :**
- Montant original : **100 000 FCFA**
- Pénalité (10%) : **10 000 FCFA**
- **Total à payer : 110 000 FCFA** ✅

---

## 📸 Aperçu Visuel

### Liste des Quittances

```
┌────────────────────────────────────────────────────────────────────┐
│ Liste des Quittances                                               │
├──────────┬────────────┬────────┬───────┬──────────┬──────────┬────┤
│ Locataire│ Appart.    │ Status │ Payé? │ Montant  │ Pénalité │    │
├──────────┼────────────┼────────┼───────┼──────────┼──────────┼────┤
│ Jean D.  │ Appt. 12   │ Payé   │  ✅   │110 000 F │ 🔴 10%   │ ...│
│          │            │        │       │          │10 000 F  │    │
├──────────┼────────────┼────────┼───────┼──────────┼──────────┼────┤
│ Marie M. │ Appt. 5    │ Attente│  ❌   │100 000 F │ ⚠️ À app │ ...│
├──────────┼────────────┼────────┼───────┼──────────┼──────────┼────┤
│ Paul D.  │ Appt. 3    │ Payé   │  ✅   │100 000 F │    -     │ ...│
└──────────┴────────────┴────────┴───────┴──────────┴──────────┴────┘
```

### Reçu PDF

```
╔══════════════════════════════════════════════════════════════╗
║                  RECU DE LOCATION N° 8/2026                  ║
╠══════════════════════════════════════════════════════════════╣
║ DESIGNATION               │ P.U.      │ QTE │ MONTANT        ║
║───────────────────────────┼───────────┼─────┼────────────────║
║ Loyer mensuel             │ 100 000   │  1  │ 100 000        ║
║                           │           │     │                ║
║───────────────────────────┴───────────┴─────┴────────────────║
║                              SOUS-TOTAL : 100 000 FCFA       ║
║         🔴 PÉNALITÉ (10% - Paiement après le 10)             ║
║                                        :  10 000 FCFA        ║
║════════════════════════════════════════════════════════════  ║
║                              PRIX TOTAL : 110 000 FCFA       ║
╚══════════════════════════════════════════════════════════════╝
```

---

## ✅ Checklist de Vérification

- [ ] Le cache a été vidé avec succès
- [ ] La colonne "Pénalité" apparaît dans la liste des quittances
- [ ] Les badges de pénalité s'affichent correctement
- [ ] Le PDF imprimé montre la pénalité (si applicable)
- [ ] La quittance #8 a été corrigée
- [ ] Une nouvelle quittance créée après le 10 a automatiquement la pénalité

---

## 📚 Fichiers Créés/Modifiés

### Modifiés
1. `templates/admin/quittances/_partials/_table.html.twig` → Colonne pénalité
2. `templates/pdf/quittance.html.twig` → Affichage pénalité PDF
3. `src/Entity/Quittances/Quittances.php` → Logique améliorée

### Créés
1. `migrations/fix_quittance_8_penalite.sql` → Script de correction
2. `FIX_CACHE_WINDOWS.md` → Résolution problème cache
3. `MODIFICATION_AFFICHAGE_PENALITES.md` → Ce fichier

---

## 🎉 Résultat Final

Maintenant :
- ✅ **Colonne "Pénalité" visible** dans la liste avec montant et pourcentage
- ✅ **Reçu PDF affiche la pénalité** en rouge avec détail
- ✅ **Logique automatique** : création après le 10 → pénalité appliquée
- ✅ **Quittances existantes** peuvent être corrigées facilement

---

**Besoin d'aide ?** Consultez :
- `FIX_CACHE_WINDOWS.md` → Problème de cache
- `LOGIQUE_PAIEMENT_PENALITES.md` → Comment ça fonctionne
- `QUICK_START_PENALITES.md` → Guide rapide

**Bonne utilisation ! 🚀**
