Files
unionflow-client-quarkus-pr…/PHASE2_AUDIT_ET_PLAN_ACTION.md
dahoud c877065500 feat(client): Réorganisation des composants réutilisables par type et correction des erreurs EL
- Réorganisation de la structure des composants dans des sous-dossiers :
  * buttons/ : tous les composants de boutons
  * cards/ : card-header, card-simple, filter-bar, stat-card
  * columns/ : composants de colonnes pour datatables
  * dialogs/ : confirm-dialog, form-dialog
  * forms/ : tous les composants de formulaires
  * layout/ : menu, topbar, footer, config, rightpanel, page-header, organisation-logo
  * tables/ : data-table

- Correction des erreurs EL dans les composants :
  * Suppression des expressions EL dans les commentaires XML
  * Protection des paramètres optionnels (styleClass) avec 'not empty'
  * Simplification de confirm-dialog avec valeurs fixes
  * Correction de organisation-logo (rendered sur balise HTML)

- Ajout de nouvelles pages pour les organisations :
  * detail.xhtml : consultation exhaustive d'une organisation
  * nouvelle.xhtml : création complète d'une organisation

- Mise à jour de toutes les références vers les nouveaux chemins (37+ fichiers)
- Maintien de l'approche DRY/WOU avec composants réutilisables
2025-11-29 19:10:01 +00:00

274 lines
8.6 KiB
Markdown

# Phase 2 - Audit et Plan d'Action : Cotisations & Adhésions
**Date** : 17 novembre 2025
**Objectif** : Préparer la livraison Phase 2 selon le plan de production
---
## 📋 ÉTAT ACTUEL
### ✅ Module Cotisations - Backend
**Statut** : ✅ **COMPLET ET FONCTIONNEL**
#### Backend API (`unionflow-server-api`)
-`CotisationDTO` - DTO complet avec validations
- ✅ Support Wave Money, Orange Money, Free Money
- ✅ Méthodes utilitaires (calculs, statuts, etc.)
#### Backend Implémentation (`unionflow-server-impl-quarkus`)
-`Cotisation` (Entity) - Entité JPA complète
-`CotisationRepository` - Repository Panache
-`CotisationService` - Service métier complet
-`CotisationResource` - REST API complète avec endpoints :
- `GET /api/cotisations` - Liste paginée
- `GET /api/cotisations/{id}` - Par ID
- `GET /api/cotisations/reference/{numeroReference}` - Par référence
- `GET /api/cotisations/membre/{membreId}` - Par membre
- `GET /api/cotisations/statut/{statut}` - Par statut
- `GET /api/cotisations/en-retard` - En retard
- `GET /api/cotisations/recherche` - Recherche avancée
- `GET /api/cotisations/stats` - Statistiques
- `POST /api/cotisations` - Créer
- `PUT /api/cotisations/{id}` - Modifier
- `DELETE /api/cotisations/{id}` - Supprimer
### ⚠️ Module Cotisations - Frontend
**Statut** : ⚠️ **PARTIELLEMENT CONNECTÉ**
#### Service Client
-`CotisationService` (RestClient) - Interface définie
- ⚠️ `CotisationsBean` - Utilise le service mais avec données mockées pour certaines fonctionnalités
#### Pages Frontend
- ⚠️ `paiement.xhtml` - **PLACEHOLDER** (non fonctionnel)
- ⚠️ `historique.xhtml` - À vérifier
- ⚠️ `relances.xhtml` - À vérifier
- ⚠️ `rapports.xhtml` - À vérifier
- ⚠️ `collect.xhtml` - À vérifier
- ⚠️ `reminders.xhtml` - À vérifier
- ⚠️ `report.xhtml` - À vérifier
### ❌ Module Adhésions - Backend
**Statut** : ❌ **MANQUANT COMPLÈTEMENT**
#### À Créer
-`AdhesionDTO` - DTO pour les adhésions
-`Adhesion` (Entity) - Entité JPA
-`AdhesionRepository` - Repository Panache
-`AdhesionService` - Service métier
-`AdhesionResource` - REST API
### ⚠️ Module Adhésions - Frontend
**Statut** : ⚠️ **PAGES PLACEHOLDER**
#### Pages Frontend
- ⚠️ `demande.xhtml` - **PLACEHOLDER** (non fonctionnel)
- ⚠️ `validation.xhtml` - **PLACEHOLDER**
- ⚠️ `renouvellement.xhtml` - **PLACEHOLDER**
- ⚠️ `liste.xhtml` - **PLACEHOLDER**
- ⚠️ `pending.xhtml` - **PLACEHOLDER**
- ⚠️ `history.xhtml` - **PLACEHOLDER**
- ⚠️ `new.xhtml` - **PLACEHOLDER**
---
## 🎯 PLAN D'ACTION DÉTAILLÉ
### **ÉTAPE 1 : Finaliser Module Cotisations Frontend** (Priorité 1)
#### 1.1 Vérifier et compléter `CotisationService` (RestClient)
- [ ] Vérifier que tous les endpoints backend sont exposés
- [ ] Ajouter méthodes manquantes si nécessaire
- [ ] Tester la connexion avec le backend
#### 1.2 Refactoriser `CotisationsBean`
- [ ] Supprimer toutes les données mockées
- [ ] Connecter toutes les méthodes au backend via `CotisationService`
- [ ] Gérer les erreurs proprement
- [ ] Ajouter logging approprié
#### 1.3 Créer/Refactoriser les pages Cotisations
- [ ] **paiement.xhtml** - Interface complète de paiement
- Formulaire de paiement avec sélection de méthode (Wave, Orange, etc.)
- Validation et enregistrement via backend
- Confirmation de paiement
- [ ] **historique.xhtml** - Liste des cotisations avec filtres
- Connexion au backend (`GET /api/cotisations/membre/{id}`)
- Filtres par statut, période, type
- Pagination
- [ ] **relances.xhtml** - Gestion des relances
- Liste des cotisations en retard (`GET /api/cotisations/en-retard`)
- Envoi de rappels individuels et groupés
- Historique des rappels
- [ ] **rapports.xhtml** - Rapports financiers
- Statistiques (`GET /api/cotisations/stats`)
- Graphiques d'évolution
- Export Excel/PDF
- [ ] **collect.xhtml** - Collecte de cotisations
- Vue d'ensemble des cotisations à collecter
- Actions groupées
- [ ] **reminders.xhtml** - Rappels automatiques
- Configuration des rappels
- Planification
#### 1.4 Refactorisation DRY/WOU
- [ ] Utiliser composants réutilisables créés
- [ ] Standardiser les formulaires
- [ ] Uniformiser les tableaux de données
---
### **ÉTAPE 2 : Créer Module Adhésions Backend** (Priorité 2)
#### 2.1 Créer `AdhesionDTO`
- [ ] Définir la structure du DTO
- [ ] Ajouter validations Jakarta
- [ ] Inclure champs nécessaires :
- ID membre
- Type d'adhésion
- Date de demande
- Date de validation
- Statut (EN_ATTENTE, VALIDEE, REJETEE, RENOUVELEE)
- Motif de demande
- Documents joints
- Validateur
#### 2.2 Créer `Adhesion` Entity
- [ ] Entité JPA avec UUID
- [ ] Relations avec Membre et Association
- [ ] Champs de traçabilité (créé le, modifié le, etc.)
#### 2.3 Créer `AdhesionRepository`
- [ ] Repository Panache
- [ ] Méthodes de recherche personnalisées
- [ ] Requêtes par statut, membre, période
#### 2.4 Créer `AdhesionService`
- [ ] Méthodes CRUD complètes
- [ ] Logique métier :
- Validation d'adhésion
- Renouvellement
- Rejet avec motif
- Recherche avancée
- Statistiques
#### 2.5 Créer `AdhesionResource`
- [ ] REST API complète :
- `GET /api/adhesions` - Liste paginée
- `GET /api/adhesions/{id}` - Par ID
- `GET /api/adhesions/membre/{membreId}` - Par membre
- `GET /api/adhesions/statut/{statut}` - Par statut
- `GET /api/adhesions/en-attente` - En attente de validation
- `GET /api/adhesions/recherche` - Recherche avancée
- `GET /api/adhesions/stats` - Statistiques
- `POST /api/adhesions` - Créer demande
- `PUT /api/adhesions/{id}` - Modifier
- `PUT /api/adhesions/{id}/valider` - Valider
- `PUT /api/adhesions/{id}/rejeter` - Rejeter
- `PUT /api/adhesions/{id}/renouveler` - Renouveler
- `DELETE /api/adhesions/{id}` - Supprimer
---
### **ÉTAPE 3 : Créer Module Adhésions Frontend** (Priorité 3)
#### 3.1 Créer `AdhesionService` (RestClient)
- [ ] Interface RestClient complète
- [ ] Tous les endpoints backend exposés
#### 3.2 Créer `AdhesionsBean`
- [ ] Bean JSF pour gestion des adhésions
- [ ] Connexion complète au backend
- [ ] Gestion des listes, filtres, actions
#### 3.3 Créer/Refactoriser les pages Adhésions
- [ ] **demande.xhtml** - Formulaire de demande d'adhésion
- Sélection membre (si existant) ou création
- Type d'adhésion
- Motif de demande
- Upload de documents
- Soumission
- [ ] **validation.xhtml** - Validation des demandes
- Liste des demandes en attente
- Détails de chaque demande
- Actions : Valider / Rejeter
- Commentaires de validation
- [ ] **renouvellement.xhtml** - Renouvellement d'adhésion
- Sélection membre
- Formulaire de renouvellement
- Historique des adhésions précédentes
- [ ] **liste.xhtml** - Liste complète des adhésions
- Filtres (statut, membre, période)
- Recherche
- Actions groupées
- [ ] **pending.xhtml** - Demandes en attente
- Vue dédiée aux adhésions en attente
- Priorisation
- [ ] **history.xhtml** - Historique des adhésions
- Par membre
- Par période
- Export
#### 3.4 Refactorisation DRY/WOU
- [ ] Utiliser composants réutilisables
- [ ] Standardiser les formulaires
- [ ] Uniformiser les tableaux
---
### **ÉTAPE 4 : Intégration Wave** (Priorité 4)
#### 4.1 Préparation Backend
- [ ] Créer service Wave (interface)
- [ ] Préparer endpoints pour callbacks Wave
- [ ] Gérer les webhooks de paiement
#### 4.2 Préparation Frontend
- [ ] Intégrer SDK Wave (si disponible)
- [ ] Interface de paiement Wave
- [ ] Gestion des retours de paiement
---
## 📊 ORDRE D'EXÉCUTION RECOMMANDÉ
1. **Étape 1** : Finaliser Cotisations Frontend (2-3 semaines)
2. **Étape 2** : Créer Adhésions Backend (1-2 semaines)
3. **Étape 3** : Créer Adhésions Frontend (2-3 semaines)
4. **Étape 4** : Intégration Wave (1 semaine)
**Durée totale estimée** : 6-9 semaines
---
## ✅ CRITÈRES DE VALIDATION
### Module Cotisations
- [ ] Toutes les pages fonctionnent avec le backend
- [ ] Aucune donnée mockée
- [ ] Gestion d'erreurs complète
- [ ] Tests de connexion backend réussis
- [ ] Refactorisation DRY/WOU appliquée
### Module Adhésions
- [ ] Backend complet et testé
- [ ] Frontend complet et connecté
- [ ] Workflow complet (demande → validation → renouvellement)
- [ ] Gestion d'erreurs complète
- [ ] Refactorisation DRY/WOU appliquée
### Intégration Wave
- [ ] Paiements fonctionnels via Wave
- [ ] Callbacks gérés
- [ ] Traçabilité complète
---
**Document créé le** : 17 novembre 2025
**Dernière mise à jour** : 17 novembre 2025