- 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
274 lines
8.6 KiB
Markdown
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
|
|
|