credit-direct/assets/js/README.md
2025-12-18 09:44:42 +01:00

5.2 KiB
Raw Blame History

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_typecalculate_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?