5.2 KiB
5.2 KiB
README – cd_main.js
1. Fonctions principales
Fonctions de calcul de crédit
- calculate_pat, calculate_am, calculate_ph, calculate_fin_neuve, calculate_pao_m_3, calculate_pao_p_3, calculate_mobilhome, calculate_regroupement_de_credit, calculate_frais_notaire, calculate_but_immo, calculate_mono_rate_bt_10_30
- Calculent les paramètres d'un crédit (durée min/max, taux, etc.) selon le type de prêt et les valeurs saisies (capital, durée).
- Chaque fonction correspond à un type de crédit spécifique.
Fonctions d'orchestration et d'UI
- onchange_loan_type
- Fonction centrale appelée lors du changement de type de crédit (sélecteur, radio, sous-type).
- Met à jour les sliders, les valeurs par défaut, l'affichage des champs, et déclenche le recalcul des mensualités.
- calculate_mensualite
- Calcule la mensualité et met à jour l'affichage (montant, durée, taux, etc.) selon les valeurs courantes.
- Appelée à chaque modification pertinente (type, capital, durée).
- change_capital_slider, change_month_slider
- Initialisent et mettent à jour les sliders de capital et de durée, avec gestion des bornes, des steps, et de l'affichage dynamique.
- change_duree
- Met à jour la liste des durées disponibles selon le type de crédit et le capital.
- update_capital_input
- Met à jour les bornes et la valeur du champ capital lors d'un changement de type de crédit.
Fonctions utilitaires
- number_format
- Formate les nombres pour l'affichage (séparateurs, décimales).
- validate_months_input, delayed_capital_chnage, delayed_months_change
- Gèrent la validation et l'arrondi des valeurs saisies dans les champs capital et durée.
Gestionnaires d'événements
- De nombreux gestionnaires jQuery déclenchent les fonctions ci-dessus lors des interactions utilisateur (changement de type, capital, durée, clics sur les boutons, etc.).
2. Scénarios d'interaction et enchaînement des fonctions
Changement de type de crédit
- L'utilisateur change le type de crédit (sélecteur ou radio).
- onchange_loan_type est appelée :
- Met à jour le type sélectionné.
- Met à jour les sliders (capital, durée) via change_capital_slider et change_month_slider.
- Met à jour l'affichage des champs spécifiques.
- Appelle calculate_mensualite pour recalculer la mensualité.
Changement du capital
- L'utilisateur modifie le capital (slider ou input).
- on_slider_value_change est appelée (directement ou via un timeout).
- Appelle calculate_mensualite pour recalculer la mensualité.
- Peut aussi mettre à jour la durée maximale possible via change_duree ou change_month_slider.
Changement de la durée
- L'utilisateur modifie la durée (slider, input, ou boutons + / -).
- calculate_mensualite est appelée pour recalculer la mensualité.
- change_duree ou change_month_slider peuvent être appelées pour ajuster les bornes et l'affichage.
Changement de sous-type ou d'option spécifique
- Peut déclencher onchange_loan_type ou des fonctions de calcul spécifiques selon le contexte.
Soumission du formulaire
- Validation via jQuery Validate.
- Envoi AJAX, affichage d'un message de confirmation ou d'erreur.
Autres interactions
- De nombreux champs conditionnels (ex : profession, co-emprunteur, allocations) affichent ou masquent dynamiquement des sections du formulaire selon les choix de l'utilisateur.
3. Schéma des interactions principales
flowchart TD
A["Utilisateur interagit avec l'UI"]
A --> B{"Type d'action"}
B -->|Change le type de crédit| C[onchange_loan_type]
B -->|Change le capital| D[on_slider_value_change]
B -->|Change la durée| E[validate_months_input]
C --> F[change_capital_slider]
C --> G[change_month_slider]
C --> H[calculate_mensualite]
D --> H
E --> H
H --> I{"Type de crédit"}
I -->|pat| J[calculate_pat]
I -->|am| K[calculate_am]
I -->|ph| L[calculate_ph]
I -->|fin_neuve| M[calculate_fin_neuve]
I -->|fin_occ_m3a| N[calculate_pao_m_3]
I -->|fin_occ_p3a| O[calculate_pao_p_3]
I -->|mobil_carav| P[calculate_mobilhome]
I -->|regroup_cred| Q[calculate_regroupement_de_credit]
I -->|frais_notaire| R[calculate_frais_notaire]
I -->|but_immo| S[calculate_but_immo]
I -->|amr/cdp/cied| T[calculate_mono_rate_bt_10_30]
J --> U[Résultats de calcul]
K --> U
L --> U
M --> U
N --> U
O --> U
P --> U
Q --> U
R --> U
S --> U
T --> U
U --> V[Affichage des résultats]
V --> W[UI mise à jour]
Remarques :
- Le cœur de la logique métier repose sur l'enchaînement
onchange_loan_type→calculate_mensualite→ fonctions de calcul selon le type. - Les sliders et les champs sont synchronisés à chaque changement pour garantir la cohérence des valeurs.
- Le code est fortement couplé à l'UI jQuery et à la structure HTML du simulateur.
Questions restantes :
- Souhaitez-vous un schéma visuel des interactions ?
- Faut-il détailler chaque fonction de calcul ou ce niveau de synthèse suffit-il ?
- Voulez-vous une section sur l'extension AJAX et la structure des réponses serveur ?