You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
184 lines
8.9 KiB
184 lines
8.9 KiB
============================================================
|
|
RÉSUMÉ DES MODIFICATIONS - C-UNIVERSITY
|
|
============================================================
|
|
|
|
1. BASE DE DONNÉES / SCHÉMA (database/database.js)
|
|
------------------------------------------------------------
|
|
- Refonte de la table "etudiants" : les champs annuels (niveau, année scolaire, status, mention, parcours) ont été retirés
|
|
- Nouvelle table "inscriptions" : stocke chaque inscription annuelle d'un étudiant (niveau, mention, parcours, status, num_inscription)
|
|
- Nouvelle table "configecolage" : configure le montant d'écolage par mention/niveau
|
|
- Restructuration de "trancheecolage" : passe à 2 tranches par ligne (tranche1_montant, tranche1_bordereau, tranche2_montant, tranche2_bordereau, is_paid)
|
|
|
|
|
|
2. MODELS
|
|
------------------------------------------------------------
|
|
|
|
database/Models/Etudiants.js
|
|
- Refonte complète : toutes les fonctions utilisent maintenant des transactions et la table "inscriptions"
|
|
- Nouvelles fonctions : reinscribeEtudiant, payerTranche, getEtudiantsWithPaidTranche, getAllEtudiantsByAnnee
|
|
- insertEtudiant : insère dans "etudiants" puis crée une inscription dans "inscriptions" (transaction)
|
|
- updateEtudiant : met à jour les données permanentes + cherche/crée l'inscription de l'année
|
|
- deleteEtudiant : suppression en cascade (notes, notesrepech, trancheecolage, inscriptions, etudiants)
|
|
- payerTranche (remplace createTranche) : gère Tranche 1, Tranche 2, Tranche Complète avec bordereau
|
|
- getTranche : jointure avec anneescolaire, tri par année décroissante
|
|
- updateTranche : signature étendue à 4 paramètres (tranche1_montant, tranche1_bordereau, tranche2_montant, tranche2_bordereau)
|
|
|
|
database/Models/AnneeScolaire.js
|
|
- Correction : ajout des "await" manquants dans setCurrent (bug critique de condition de course)
|
|
|
|
database/Models/Notes.js
|
|
- Ajout du filtre par annee_scolaire dans toutes les requêtes (getNote, showMoyen, updateNote, blockShowMoyene)
|
|
- blockShowMoyene : utilise notes.mention_id et notes.etudiant_niveau au lieu des champs supprimés de etudiants
|
|
|
|
database/Models/NoteRepechage.js
|
|
- Ajout du filtre par annee_scolaire dans getNoteRepech, updateNoteRepech, blockShowMoyenRepech
|
|
|
|
database/Models/Parcours.js
|
|
- extractFiche : jointure avec inscriptions et anneescolaire au lieu de champs directs sur etudiants
|
|
|
|
database/Models/ConfigEcolage.js (NOUVEAU)
|
|
- getAllConfigEcolage() : liste toutes les configurations avec noms de mention et niveau
|
|
- getConfigEcolageByMentionNiveau() : retourne le montant pour une combinaison mention/niveau
|
|
- upsertConfigEcolage() : INSERT ou UPDATE selon existence
|
|
- deleteConfigEcolage() : suppression d'une configuration
|
|
|
|
|
|
3. BACKEND (main process / preload)
|
|
------------------------------------------------------------
|
|
|
|
src/main/index.js
|
|
- Nouveaux handlers IPC : getAllConfigEcolage, getConfigEcolageByMentionNiveau, upsertConfigEcolage, deleteConfigEcolage
|
|
- Remplacement de createTranche par payerTranche
|
|
- Ajout de getEtudiantsWithPaidTranche et reinscribeEtudiant
|
|
- Handlers de notes/rattrapage reçoivent maintenant annee_scolaire en paramètre
|
|
- Démarrage : updateCurrentYears() et updateStudents() enveloppés dans async/await avec gestion d'erreur
|
|
|
|
src/preload/index.js
|
|
- Exposition de getEtudiantsByAnnee sur window.etudiants
|
|
- Remplacement de createTranche par payerTranche
|
|
- Remplacement de getSingleTranche par getEtudiantsWithPaidTranche et reinscribeEtudiant
|
|
- Nouvel objet window.configecolage avec 4 méthodes (getAll, getByMentionNiveau, upsert, delete)
|
|
|
|
|
|
4. FRONTEND - COMPOSANTS MODIFIÉS
|
|
------------------------------------------------------------
|
|
|
|
src/renderer/src/Routes/Routes.jsx
|
|
- Ajout de la route /configecolage vers le composant ConfigEcolage
|
|
|
|
src/renderer/src/components/AddNotes.jsx
|
|
- Navigation retour transmet selectedAnnee depuis localStorage
|
|
|
|
src/renderer/src/components/AddStudent.jsx (refonte majeure)
|
|
- Ajout barre de recherche d'étudiant existant (par nom, prénom ou numéro d'inscription)
|
|
- Réinscription : si étudiant existant sélectionné, appel reinscribeEtudiant au lieu de insertEtudiant
|
|
- Section paiement écolage intégrée (type de paiement, bordereau, montant, montant restant)
|
|
- Chargement automatique du montant configuré selon mention/niveau
|
|
|
|
src/renderer/src/components/AjoutTranche.jsx
|
|
- Formulaire repensé : sélection année scolaire, type de paiement (Tranche 1/2/Complète), numéro de bordereau
|
|
- Appel payerTranche au lieu de createTranche
|
|
|
|
src/renderer/src/components/AnneeScolaire.jsx
|
|
- Fonction setCurrent rétablie (était commentée)
|
|
|
|
src/renderer/src/components/Home.jsx
|
|
- Chargement par 3 appels séparés au lieu de getDataToDashboards
|
|
- Filtre par année via getEtudiantsByAnnee
|
|
|
|
src/renderer/src/components/Noteclasse.jsx (refonte calcul)
|
|
- Nouvelle fonction calculerMoyennePonderee centralisée
|
|
- Gestion correcte du rattrapage (0 = pas de rattrapage, prend la meilleure note si rattrapage > 0)
|
|
- Remplacement de l'état "session" par "moyennesCalculees"
|
|
|
|
src/renderer/src/components/ReleverNotes.jsx
|
|
- PDF amélioré : format A4 (210mm x 297mm), redimensionnement automatique
|
|
- Calcul de moyenne pondérée corrigé avec rattrapage
|
|
- Décision du jury basée sur le seuil du système de notes (noteSysteme.admis)
|
|
- Correction noterepech : null si pas de rattrapage (au lieu de la note normale)
|
|
|
|
src/renderer/src/components/Resultat.jsx
|
|
- Ajout des moyennes avec rattrapage (moyennesRattrapage)
|
|
- calculerMoyennePonderee dupliquée localement
|
|
- Correction extractMatieresAndUEs : utilise nomMat et Map
|
|
|
|
src/renderer/src/components/SingleNotes.jsx
|
|
- Transmission de annee_scolaire aux appels de notes et notes de rattrapage
|
|
|
|
src/renderer/src/components/Student.jsx
|
|
- Adapté au nouveau modèle avec inscriptions
|
|
|
|
src/renderer/src/components/TrancheEcolage.jsx
|
|
- Adaptation au nouveau format 2 tranches avec bordereau
|
|
|
|
src/renderer/src/components/UpdateTranche.jsx
|
|
- Adaptation au nouveau format (tranche1_montant, tranche1_bordereau, tranche2_montant, tranche2_bordereau)
|
|
|
|
src/renderer/src/components/Sidenav.jsx
|
|
- Ajout du lien vers la page Config Ecolage
|
|
|
|
src/renderer/src/components/function/FonctionRelever.js
|
|
- Récupération du système de notes intégrée dans les calculs du relevé
|
|
|
|
|
|
5. FRONTEND - NOUVEAUX COMPOSANTS
|
|
------------------------------------------------------------
|
|
|
|
src/renderer/src/components/ConfigEcolage.jsx (NOUVEAU)
|
|
- Interface d'administration des montants d'écolage par mention et par niveau
|
|
- Formulaire : sélection mention, niveau, saisie montant total
|
|
- Tableau : affiche Mention, Niveau, Montant total, Tranche 1 (moitié), Tranche 2 (moitié)
|
|
- Actions : modifier (pré-remplit le formulaire) et supprimer
|
|
|
|
src/renderer/src/components/Ecolage.jsx (NOUVEAU)
|
|
- Tableau de suivi des paiements (DataGrid MUI)
|
|
- Filtres par année scolaire et par niveau
|
|
- Colonnes : Nom, Prénom, N° inscription, Niveau, Mention, Année, Statut, Contact, Tranches payées, Photo
|
|
- Indicateur visuel : vert si tranche payée, rouge sinon
|
|
|
|
|
|
6. SYSTÈME D'IMPORT (database/import/Etudiants.js)
|
|
------------------------------------------------------------
|
|
- Import enveloppé dans une transaction complète
|
|
- Insertions une par une dans "etudiants" + "inscriptions" (au lieu de batch INSERT)
|
|
- Résolution de annee_scolaire_id depuis le code d'année
|
|
- Auto-progression du niveau pour les passants (L1->L2->...->M2->D1->...->PHD)
|
|
- Rollback automatique en cas d'erreur
|
|
|
|
|
|
7. SYSTÈME DE TRAITEMENT (database/function/System.js)
|
|
------------------------------------------------------------
|
|
- Refonte de updateStudents :
|
|
* Récupère toutes les années scolaires triées par date
|
|
* Pour chaque paire d'années consécutives, traite les étudiants non encore inscrits en année N+1
|
|
* Calcule la moyenne avec rattrapage pour déterminer le statut
|
|
* Crée une nouvelle inscription pour l'année suivante
|
|
* Copie les notes pour les redoublants
|
|
* Les étudiants renvoyés (status=4) ne reçoivent pas de nouvelle inscription
|
|
|
|
|
|
8. AUTRES
|
|
------------------------------------------------------------
|
|
|
|
README.md
|
|
- Mise à jour de la documentation
|
|
|
|
|
|
============================================================
|
|
SYNTHÈSE GLOBALE
|
|
============================================================
|
|
|
|
Ces modifications représentent une REFONTE ARCHITECTURALE MAJEURE avec 2 axes :
|
|
|
|
1. NORMALISATION DE LA BASE DE DONNÉES
|
|
Séparation des données permanentes d'un étudiant et de ses inscriptions
|
|
annuelles dans deux tables distinctes, permettant de gérer l'historique
|
|
complet sur plusieurs années sans dupliquer les données personnelles.
|
|
|
|
2. MODULE ÉCOLAGE COMPLET
|
|
Configuration des montants par mention/niveau, paiement par tranche
|
|
avec numéro de bordereau, suivi intégré, et paiement possible dès
|
|
l'inscription d'un étudiant.
|
|
|
|
Statistiques : 26 fichiers modifiés, 3 nouveaux fichiers
|
|
+2755 lignes ajoutées, -1926 lignes supprimées
|
|
|