117 lines
5.2 KiB
Markdown
117 lines
5.2 KiB
Markdown
# 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
|
||
|
||
```mermaid
|
||
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 ? |