mirror of
https://github.com/R0m1k3/LogiFlow.git
synced 2026-10-11 17:27:31 +02:00
Implement the 'Écart' column in the BL reconciliation page, calculating and displaying the difference between the 'Montant BL' and 'Montant Fact.' with conditional coloring based on the deviation amount. Replit-Commit-Author: Agent Replit-Commit-Session-Id: b163d4c0-de5e-4f4e-a9c0-aed4c7049718 Replit-Commit-Checkpoint-Type: full_checkpoint Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/1957c339-2757-4d1f-8e92-e9f71a1ce58e/b163d4c0-de5e-4f4e-a9c0-aed4c7049718/Is38Tns
4.0 KiB
4.0 KiB
Ajout Colonne Écart - Module Rapprochement
🎯 Demande Utilisateur
Ajouter une colonne "Écart" dans le module rapprochement qui calcule la différence entre le montant BL et le montant Facture.
✅ Implementation
1. Structure des Tableaux
Onglet Manuel
| Fournisseur | N° BL | Date Livr. | Montant BL | Ref. Facture | Montant Fact. | **Écart** | Magasin | Actions |
Onglet Automatique
| Fournisseur | N° BL | Date Livr. | Date Valid. | Montant BL | Ref. Facture | Montant Fact. | **Écart** | Magasin | Actions |
2. Logique de Calcul
const blAmount = delivery.blAmount ? parseFloat(delivery.blAmount) : 0;
const invoiceAmount = delivery.invoiceAmount ? parseFloat(delivery.invoiceAmount) : 0;
if (blAmount && invoiceAmount) {
const diff = blAmount - invoiceAmount;
// BL > Facture = +XX.XX€ (positif)
// BL < Facture = -XX.XX€ (négatif)
// BL = Facture = 0.00€ (équilibré)
}
3. Couleurs Indicatives
/* Aucun écart - Parfait */
diff === 0 → text-green-600
/* Écart faible (≤ 10€) - Attention */
diffAbs ≤ 10 → text-orange-600
/* Écart important (> 10€) - Problème */
diffAbs > 10 → text-red-600
4. Affichage par Cas
Cas Complet (BL + Facture renseignés)
+15.50€(BL supérieur de 15.50€)-8.25€(Facture supérieure de 8.25€)0.00€(Montants identiques)
Cas Incomplet (données manquantes)
-(grisé, données insuffisantes)
5. Headers de Colonnes
// Manuel
<th>Écart</th>
// Automatique
<th>Écart</th>
🎨 Rendu Visuel
Exemples d'Affichage
| Montant BL | Montant Fact. | Écart | Couleur |
|---|---|---|---|
| 150.00€ | 150.00€ | 0.00€ |
🟢 Vert |
| 155.50€ | 150.00€ | +5.50€ |
🟠 Orange |
| 140.00€ | 165.75€ | -25.75€ |
🔴 Rouge |
| 100.00€ | - | - |
⚪ Gris |
États Visuels par Seuil
/* Équilibré - Vert */
.text-green-600 { color: #16a34a; }
/* Écart modéré - Orange */
.text-orange-600 { color: #ea580c; }
/* Écart important - Rouge */
.text-red-600 { color: #dc2626; }
/* Non applicable - Gris */
.text-gray-400 { color: #9ca3af; }
🔧 Code Implementation
Header (Manuel)
<th className="px-3 py-2 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">
Écart
</th>
Cellule Data
<td className="px-3 py-2 text-sm">
{(() => {
const blAmount = delivery.blAmount ? parseFloat(delivery.blAmount) : 0;
const invoiceAmount = delivery.invoiceAmount ? parseFloat(delivery.invoiceAmount) : 0;
if (blAmount && invoiceAmount) {
const diff = blAmount - invoiceAmount;
const diffAbs = Math.abs(diff);
return (
<div className={`font-medium ${
diff === 0 ? 'text-green-600' :
diffAbs > 10 ? 'text-red-600' : 'text-orange-600'
}`}>
{diff > 0 ? '+' : ''}{diff.toFixed(2)}€
</div>
);
}
return <span className="text-gray-400 italic text-xs">-</span>;
})()}
</td>
🧪 Tests de Validation
Test 1 : Calcul d'Écart
- BL: 100.00€, Facture: 95.00€
- Vérifier : Écart =
+5.00€(orange)
Test 2 : Équilibre
- BL: 150.00€, Facture: 150.00€
- Vérifier : Écart =
0.00€(vert)
Test 3 : Écart Important
- BL: 200.00€, Facture: 185.00€
- Vérifier : Écart =
+15.00€(rouge)
Test 4 : Données Manquantes
- BL: 100.00€, Facture: non renseigné
- Vérifier : Écart =
-(gris)
📊 Status
- ✅ Colonne Écart ajoutée sur onglet Manuel
- ✅ Colonne Écart ajoutée sur onglet Automatique
- ✅ Calcul automatique (BL - Facture)
- ✅ Couleurs indicatives par seuil
- ✅ Gestion des cas de données manquantes
- ✅ Format d'affichage cohérent (+/-XX.XX€)
La colonne Écart permet maintenant de visualiser instantanément les différences entre BL et factures !