docs: mise à jour PROGRESSION.md - Phase 4 Mobile 43% (18/27 total)
Phase 4 Mobile : 3/7 tâches (43%) - T018 ✅ Récupération seuil LCB-FT depuis API - T019 ✅ Formulaires avec origineFonds obligatoire - T020 ⏩ Upload pièce justificative (optionnel, skip) - T021 ✅ Gestion erreurs 400 LCB-FT Section 4.1 Épargne : 75% (3/4 tâches) - Seuil dynamique depuis backend - Validation LCB-FT sur tous les flux (dépôt/retrait/transfert) - Messages d'erreur conviviaux et explicites Section 4.2 KYC : 0% (0/3 tâches - à démarrer) Progression globale : 18/27 tâches (67%) Commits :74161df,5ef8ae1,6231847Signed-off-by: lions dev Team
This commit is contained in:
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
**Branche** : `001-mutuelles-anti-blanchiment`
|
**Branche** : `001-mutuelles-anti-blanchiment`
|
||||||
**Dernière mise à jour** : 2026-03-13
|
**Dernière mise à jour** : 2026-03-13
|
||||||
**Statut global** : **41% complété** (11/27 tâches)
|
**Statut global** : **67% complété** (18/27 tâches)
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -13,9 +13,9 @@
|
|||||||
| **Phase 1 - API** | 6/6 | ✅ **100%** | DTOs et enums LCB-FT |
|
| **Phase 1 - API** | 6/6 | ✅ **100%** | DTOs et enums LCB-FT |
|
||||||
| **Phase 2 - Migrations** | 5/5 | ✅ **100%** | V3.4 déjà existante |
|
| **Phase 2 - Migrations** | 5/5 | ✅ **100%** | V3.4 déjà existante |
|
||||||
| **Phase 3 - Impl Quarkus** | 4/6 | ✅ **67%** | Services + endpoints |
|
| **Phase 3 - Impl Quarkus** | 4/6 | ✅ **67%** | Services + endpoints |
|
||||||
| **Phase 4 - Mobile** | 0/7 | ⏳ **0%** | Écrans + KYC |
|
| **Phase 4 - Mobile** | 3/7 | 🚧 **43%** | Épargne LCB-FT (3/4), KYC (0/3) |
|
||||||
| **Phase 5 - Finition** | 0/3 | ⏳ **0%** | Tests + docs |
|
| **Phase 5 - Finition** | 0/3 | ⏳ **0%** | Tests + docs |
|
||||||
| **TOTAL** | **15/27** | 🎯 **56%** | |
|
| **TOTAL** | **18/27** | 🎯 **67%** | |
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -202,39 +202,106 @@ Ces tâches ne sont pas critiques pour le MVP de la spec 001 et peuvent être aj
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## ⏳ Phase 4 - Mobile (0% - À démarrer)
|
## 🚧 Phase 4 - Mobile (43% complétée)
|
||||||
|
|
||||||
### Tâches restantes
|
**Commits** : `74161df`, `5ef8ae1`, `6231847`
|
||||||
|
**Date** : 2026-03-13
|
||||||
|
|
||||||
#### 4.1 Épargne – Seuil et champs LCB-FT
|
### Réalisations
|
||||||
|
|
||||||
##### T018 : Récupération seuil depuis API
|
#### 4.1 Épargne – Seuil et champs LCB-FT (75% - 3/4)
|
||||||
- Appel endpoint paramètres LCB-FT
|
|
||||||
- Stockage seuil dans état BLoC
|
|
||||||
|
|
||||||
##### T019 : Formulaires dépôt/retrait/transfert
|
##### T018 : Récupération seuil depuis API ✅
|
||||||
- Champ `origineFonds` obligatoire si montant >= seuil
|
**Commit** : `74161df`
|
||||||
- Validation côté client
|
|
||||||
|
|
||||||
##### T020 : Upload pièce justificative
|
Nouveaux fichiers :
|
||||||
- Ajout champ upload dans dialogs
|
- ✅ `SeuilLcbFtModel` : modèle pour seuil récupéré depuis API
|
||||||
- Envoi `pieceJustificativeId` dans request
|
- `montantSeuil` (double), `codeDevise` (String)
|
||||||
|
- Factory `defaultSeuil()` fallback 500k XOF
|
||||||
|
- ✅ `ParametresLcbFtRepository` : appel `/api/parametres-lcb-ft/seuil-justification`
|
||||||
|
- `@lazySingleton` pour injection GetIt
|
||||||
|
- Fallback automatique si API échoue
|
||||||
|
|
||||||
##### T021 : Gestion erreurs 400 côté mobile
|
Modifications :
|
||||||
- Message clair si origine fonds manquante
|
- ✅ `DepotEpargneDialog` : charge seuil au `initState()`
|
||||||
|
- ✅ `RetraitEpargneDialog` : idem
|
||||||
|
- ✅ Remplace constante `kSeuilOrigineFondsObligatoireXOF` par `_seuilLcbFt` dynamique
|
||||||
|
|
||||||
#### 4.2 Fiche membre – Affichage KYC
|
Impact :
|
||||||
|
- Seuil LCB-FT maintenant configurable par organisation depuis backend
|
||||||
|
- Messages utilisateur avec montant seuil dynamique
|
||||||
|
- Conformité BCEAO : seuils centralisés et auditables
|
||||||
|
|
||||||
##### T022 : Étendre modèle membre mobile
|
**Fichiers** :
|
||||||
|
- `lib/core/data/models/seuil_lcb_ft_model.dart`
|
||||||
|
- `lib/core/data/repositories/parametres_lcb_ft_repository.dart`
|
||||||
|
- `lib/features/epargne/presentation/widgets/depot_epargne_dialog.dart`
|
||||||
|
- `lib/features/epargne/presentation/widgets/retrait_epargne_dialog.dart`
|
||||||
|
|
||||||
|
##### T019 : Formulaires avec origineFonds obligatoire ✅
|
||||||
|
**Commit** : `5ef8ae1`
|
||||||
|
|
||||||
|
Modifications :
|
||||||
|
- ✅ `TransfertEpargneDialog` : ajout champ origine des fonds
|
||||||
|
- Import `ParametresLcbFtRepository` + `lcb_ft_constants`
|
||||||
|
- Chargement seuil au `initState()`
|
||||||
|
- Validation conditionnelle : `montant >= seuil` → origine fonds obligatoire
|
||||||
|
- Message clair avec montant seuil dynamique
|
||||||
|
- `onChanged` sur montant pour mise à jour UI temps réel
|
||||||
|
|
||||||
|
Impact :
|
||||||
|
- Les 3 types d'opérations (dépôt, retrait, transfert) ont la validation LCB-FT
|
||||||
|
- Champ `origineFonds` transmis dans `TransactionEpargneRequest`
|
||||||
|
- Conformité BCEAO/OHADA sur tous les flux épargne
|
||||||
|
|
||||||
|
**Fichier** :
|
||||||
|
- `lib/features/epargne/presentation/widgets/transfert_epargne_dialog.dart`
|
||||||
|
|
||||||
|
##### T020 : Upload pièce justificative ⏩ OPTIONNEL (skip)
|
||||||
|
- Champ `pieceJustificativeId` déjà présent dans `TransactionEpargneRequest`
|
||||||
|
- Peut être ajouté ultérieurement si besoin métier
|
||||||
|
- Non bloquant pour MVP : description texte dans `origineFonds` suffit
|
||||||
|
|
||||||
|
##### T021 : Gestion erreurs 400 LCB-FT ✅
|
||||||
|
**Commit** : `6231847`
|
||||||
|
|
||||||
|
Nouveau fichier :
|
||||||
|
- ✅ `ErrorFormatter` : utilitaire central pour formater les erreurs backend
|
||||||
|
- Détecte et formate spécialement les erreurs LCB-FT (origine fonds manquante)
|
||||||
|
- Détecte erreurs KYC, réseau, 400/401/403/404/500
|
||||||
|
- Messages conviviaux avec emojis (🛡️ pour LCB-FT/KYC)
|
||||||
|
- Durée d'affichage adaptée : 6s pour LCB-FT, 3s sinon
|
||||||
|
- `isLcbFtError()`, `isCritical()` helpers
|
||||||
|
|
||||||
|
Modifications 3 dialogs (dépôt, retrait, transfert) :
|
||||||
|
- ✅ Remplacement affichage erreur brut par `ErrorFormatter.format(e)`
|
||||||
|
- ✅ Messages explicites : *"L'origine des fonds est obligatoire pour cette opération (conformité LCB-FT anti-blanchiment)"*
|
||||||
|
- ✅ Durée snackbar conditionnelle selon type erreur
|
||||||
|
|
||||||
|
Impact UX :
|
||||||
|
- Messages d'erreur clairs et professionnels
|
||||||
|
- Utilisateur comprend **POURQUOI** l'origine fonds est requise (anti-blanchiment)
|
||||||
|
- Temps de lecture suffisant pour messages importants
|
||||||
|
|
||||||
|
**Fichiers** :
|
||||||
|
- `lib/core/utils/error_formatter.dart`
|
||||||
|
- `lib/features/epargne/presentation/widgets/depot_epargne_dialog.dart`
|
||||||
|
- `lib/features/epargne/presentation/widgets/retrait_epargne_dialog.dart`
|
||||||
|
- `lib/features/epargne/presentation/widgets/transfert_epargne_dialog.dart`
|
||||||
|
|
||||||
|
#### 4.2 Fiche membre – Affichage KYC (0% - 0/3)
|
||||||
|
|
||||||
|
##### T022 : Étendre modèle membre mobile ⏳
|
||||||
- `MembreModel` avec champs KYC
|
- `MembreModel` avec champs KYC
|
||||||
- niveauVigilanceKyc, statutKyc, dateVerificationIdentite
|
- niveauVigilanceKyc, statutKyc, dateVerificationIdentite
|
||||||
|
|
||||||
##### T023 : Affichage fiche membre
|
##### T023 : Affichage fiche membre KYC ⏳
|
||||||
- Lecture seule statut KYC
|
- Lecture seule statut KYC
|
||||||
- Date vérification identité
|
- Date vérification identité
|
||||||
|
|
||||||
##### T024 : Validation données API uniquement
|
##### T024 : Validation données API uniquement ⏳
|
||||||
- Pas de valeurs en dur
|
- Pas de valeurs en dur
|
||||||
|
- Audit complet mobile
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user