# 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