diff --git a/RECONCILIATION-MODAL-FIX.md b/RECONCILIATION-MODAL-FIX.md
index cf0be6b..477ebf2 100644
--- a/RECONCILIATION-MODAL-FIX.md
+++ b/RECONCILIATION-MODAL-FIX.md
@@ -1,111 +1,110 @@
-# Fix Complet - Modal de Rapprochement et Actions
+# Fix Rapprochement - Restrictions Édition
-## ✅ Problèmes Résolus
+## 🎯 Demandes Utilisateur
-### 1. **Validation impossible** ❌ → ✅
-**Avant :** Bouton "Valider" sans vérification des données requises
-**Après :**
-- Validation conditionnelle : BL number requis
-- Message d'erreur explicite : "Le numéro de BL est requis. Cliquez sur 'Voir les détails' pour le renseigner"
-- Action rapide si données complètes, sinon redirection vers modal
+1. **Les rapprochements validés ne peuvent plus être édités**
+2. **Ajouter bouton supprimer pour les admins** (onglet automatique)
-### 2. **Pas de modal d'édition** ❌ → ✅
-**Avant :** Bouton "Voir les détails" ne faisait rien
-**Après :**
-- **Modal ReconciliationModal.tsx** complet avec :
- - Édition BL : N° BL (requis) + Montant BL
- - Édition Facture : Référence + Montant
- - Actions : Enregistrer + Valider directement
- - Distinction Manuel/Automatique avec badges
- - Validation en temps réel
+## ✅ Corrections Appliquées
-### 3. **Dévalidation automatique** 🔄 → À tester
-**Fonctionnalité :**
-- Bouton dévalider visible pour admin uniquement
-- Confirmation avant action
-- API call vers `/api/deliveries/${id}` PUT
-
-## 🎯 Nouvelles Fonctionnalités
-
-### Modal de Rapprochement
+### 1. **Onglet Manuel** - Édition Restreinte
```typescript
-// Ouverture via bouton "Voir les détails"
-const handleOpenModal = (delivery: any) => {
- setSelectedDelivery(delivery);
- setIsModalOpen(true);
-};
+// Avant : Bouton modifier toujours disponible
+
+
+// Après : Modifier seulement si non validé
+{!delivery.reconciled && (
+
+)}
```
-### Actions Intelligentes
-- **Validation rapide** : Si BL number présent → validation directe
-- **Validation guidée** : Si BL number manquant → ouverture modal
-- **Édition complète** : Modal avec tous les champs BL/Facture
+### 2. **Onglet Automatique** - Boutons Admin
+```typescript
+// Avant : Seulement modifier + dévalider
+
+
+ {admin && }
+
-### Interface Améliorée
-- ✅ Boutons d'action fonctionnels avec tooltips
-- ✅ Indicateurs visuels par statut
-- ✅ Confirmations de sécurité (window.confirm)
-- ✅ Messages d'erreur contextuels
-
-## 📋 Tests à Effectuer en Production
-
-### Test 1 : Modal d'Édition
-- [ ] Cliquer sur icône "œil" (Eye) → Modal s'ouvre
-- [ ] Remplir N° BL obligatoire
-- [ ] Remplir montants optionnels
-- [ ] Cliquer "Enregistrer" → Données sauvegardées
-- [ ] Cliquer "Valider le rapprochement" → Rapprochement validé
-
-### Test 2 : Validation Rapide
-- [ ] Livraison avec BL number → Bouton vert "Valider" fonctionne
-- [ ] Livraison sans BL number → Message "Données manquantes"
-
-### Test 3 : Dévalidation Automatique
-- [ ] Se connecter en tant qu'admin
-- [ ] Onglet "Rapprochement Automatique"
-- [ ] Cliquer bouton orange "Dévalider" → Confirmation puis action
-
-### Test 4 : Permissions
-- **Admin** : Tous boutons visibles (Valider, Supprimer, Dévalider)
-- **Directeur** : Valider + Supprimer (pas dévalider)
-- **Manager** : Accès refusé au module
-- **Employee** : Accès refusé au module
-
-## 🔧 Debug Dévalidation Automatique
-
-Si la dévalidation ne fonctionne toujours pas :
-
-### Vérifier API
-```bash
-# Test manuel API
-curl -X PUT /api/deliveries/[ID] \
- -H "Content-Type: application/json" \
- -d '{"reconciled": false, "validatedAt": null}'
+// Après : Supprimer + édition restreinte
+
+ {admin && delivery.reconciled && }
+ {admin && }
+ {!delivery.reconciled && }
+
```
-### Vérifier Permissions
-```javascript
-// Dans console navigateur
-console.log("User role:", user?.role);
-console.log("Is admin:", user?.role === 'admin');
+## 🔒 Logique des Boutons par État
+
+### **Rapprochement Non Validé** (`delivery.reconciled = false`)
+- ✅ **Modifier** : Disponible pour tous les rôles autorisés
+- ✅ **Valider** : Disponible selon permissions
+- ✅ **Supprimer** : Admin uniquement
+
+### **Rapprochement Validé** (`delivery.reconciled = true`)
+- ❌ **Modifier** : BLOQUÉ (plus d'édition possible)
+- ✅ **Dévalider** : Admin uniquement
+- ✅ **Supprimer** : Admin uniquement
+
+## 🎨 Interface Utilisateur
+
+### États Visuels
+```css
+/* Non validé */
+bg-white (normal) ou bg-red-50 (problème)
+
+/* Validé */
+bg-gray-100 opacity-60 text-gray-500 (grisé)
```
-### Vérifier Console Erreurs
-- F12 → Console → Vérifier erreurs JavaScript
-- Network → Vérifier requêtes API (200 vs 4xx/5xx)
+### Boutons par Onglet
-## 🚀 Déploiement
+#### **Manuel**
+- Non validé : `[Valider] [Supprimer] [Modifier]`
+- Validé : `[Dévalider] [Supprimer]` (admin) ou `[]` (autres)
-### Fichiers Modifiés
-```
-client/src/components/modals/ReconciliationModal.tsx # ✅ Nouveau
-client/src/pages/BLReconciliation.tsx # ✅ Modifié
+#### **Automatique**
+- Non validé : `[Modifier]`
+- Validé : `[Dévalider] [Supprimer]` (admin) ou `[]` (autres)
+
+## 🔧 Imports Requis
+
+```typescript
+import { Trash2, Ban, Settings, Check } from 'lucide-react';
```
-### Points de Contrôle
-- ✅ Modal shadcn/ui Dialog (pas React.forwardRef problématique)
-- ✅ Confirmations via window.confirm (évite erreurs React)
-- ✅ Gestion d'état locale simple (useState)
-- ✅ API calls via apiRequest (standardisé)
+## 🧪 Tests de Validation
-**Status :** ✅ Prêt pour déploiement et test production
\ No newline at end of file
+### Test 1 : Édition Restreinte
+1. Créer une livraison
+2. **Vérifier** : Bouton modifier visible
+3. Valider le rapprochement
+4. **Vérifier** : Bouton modifier DISPARU
+5. **Vérifier** : Ligne grisée
+
+### Test 2 : Boutons Admin (Automatique)
+1. Se connecter comme admin
+2. Aller sur onglet "Automatique"
+3. **Vérifier** : Bouton supprimer visible
+4. **Vérifier** : Dévalider visible si validé
+5. **Vérifier** : Modifier visible si non validé
+
+### Test 3 : Permissions Non-Admin
+1. Se connecter comme manager/directeur
+2. **Vérifier** : Pas de bouton supprimer
+3. **Vérifier** : Pas de bouton dévalider
+4. **Vérifier** : Modifier visible si non validé
+
+## 📊 Status
+
+- ✅ Édition bloquée pour rapprochements validés
+- ✅ Bouton supprimer ajouté pour admins (automatique)
+- ✅ Logique cohérente entre onglets manuel/automatique
+- ✅ Permissions respectées selon le rôle
+- ✅ Interface claire avec grisage des validés
+
+**Les rapprochements validés sont maintenant protégés contre l'édition !**
\ No newline at end of file
diff --git a/client/src/pages/BLReconciliation.tsx b/client/src/pages/BLReconciliation.tsx
index 6fd07f7..29fa4a6 100644
--- a/client/src/pages/BLReconciliation.tsx
+++ b/client/src/pages/BLReconciliation.tsx
@@ -468,14 +468,16 @@ export default function BLReconciliation() {
)}
>
)}
- {/* Bouton Modifier toujours disponible */}
-
+ {/* Bouton Modifier : disponible seulement si pas encore validé */}
+ {!delivery.reconciled && (
+
+ )}
@@ -618,15 +620,7 @@ export default function BLReconciliation() {
-
- {/* Dévalider automatique - admin uniquement */}
- {user?.role === 'admin' && (
+ {user?.role === 'admin' && delivery.reconciled && (
)}
+ {user?.role === 'admin' && (
+
+ )}
+ {/* Bouton Modifier : disponible seulement si pas encore validé */}
+ {!delivery.reconciled && (
+
+ )}
|