# Fichiers modifiés Ce fichier liste tous les fichiers qui ont été modifiés dans le cadre de l'implémentation de la fonctionnalité de pré-remplissage et de détection d'impact sur le tarif pour la page Projet RC. ## Fichiers modifiés ### 1. `/public/js/projet-form-rc.js` **Modifications principales :** #### Pré-remplissage depuis le Tarif - Ajout de la fonction `prefillFromTarif()` pour pré-remplir les données du projet depuis le tarif (activités, marchandises, zones, activités complémentaires, type de cotisation, CA, RCE, Protection Juridique, garanties RCC) - Modification de `populateFormData()` pour appeler `prefillFromTarif()` si un tarif existe - Ajout du pré-remplissage automatique de "Inclure les autres RC" si des extensions RCE sont présentes #### Détection d'impact sur le tarif - Ajout des variables globales pour les modulateurs (modRCActRCC, modRCMar, modRCZone, modRCActCompl, modRCGarAdd) - Ajout de la fonction `loadModulateurs()` pour charger les modulateurs depuis l'API - Ajout de la fonction `saveOriginalTarifData()` pour sauvegarder l'état initial du tarif - Ajout de la fonction `checkTarifImpact()` pour détecter si une modification impacte le tarif - Ajout des fonctions de détection d'impact spécifiques : - `checkActivityImpact()` : détecte les modifications d'activités principales - `checkMarchandiseImpact()` : détecte les modifications de marchandises - `checkZoneImpact()` : détecte les modifications de zones géographiques (compare les coefficients maximums) - `checkActiviteComplImpact()` : détecte les modifications d'activités complémentaires - `checkGarantieRCCImpact()` : détecte les modifications de garanties RCC impactantes - Ajout des fonctions de récupération des données actuelles : - `getCurrentActivityData()` : récupère les activités principales actuelles - `getCurrentMarchandiseData()` : récupère les marchandises actuelles - `getCurrentZoneData()` : récupère les zones géographiques actuelles (prend en compte les zones désactivées) - `getCurrentGarantieRCCData()` : récupère les garanties RCC actuelles - `getCurrentActiviteComplData()` : récupère les activités complémentaires actuelles #### Modal d'avertissement - Ajout de la fonction `showTarifImpactModal()` pour afficher le modal d'avertissement avec restauration intelligente des valeurs - Le modal permet de restaurer la valeur originale sans recharger la page - Ajout d'un flag `isRestoringValue` pour éviter les boucles infinies lors de la restauration #### Écouteurs d'événements - Ajout de la fonction `setupTarifImpactListeners()` pour configurer les écouteurs d'événements sur tous les champs impactant le tarif : - Sélecteur d'activités - Sélecteur de marchandises - Cases à cocher des zones géographiques - Sélecteur de garanties RCC - Boutons radio de type de cotisation - Cases à cocher d'activités complémentaires - Champs de saisie des capitaux d'activités (avec MutationObserver pour les champs dynamiques) - Champ CA (Chiffre d'affaires) - Switch Protection Juridique #### Sauvegarde des données - Modification de `handleSubmitForm()` et `saveProjetRC()` pour : - Mettre à jour le projetRC existant au lieu de toujours en créer un nouveau - Envoyer les grilles Ad Valorem comme arrays directement (sans JSON.stringify) car PocketBase les parse automatiquement - Sauvegarder correctement les zones même si elles sont désactivées - Amélioration de `extractGrilleAdvalo()` pour : - Gérer les tables cachées en les rendant temporairement visibles - Extraire toutes les valeurs correctement, y compris les valeurs vides - Restaurer correctement les styles après extraction #### Chargement des données - Amélioration de `populateGrAdvalo()` pour : - Ajouter des logs de débogage - Vérifier que les données existent et sont valides avant de remplir le tableau - Gérer les erreurs de parsing - Amélioration de la logique de chargement des grilles Ad Valorem pour : - Vérifier que les données existent avant de les charger - Gérer les cas où les données sont vides ou invalides - Afficher des messages d'avertissement dans la console #### Zones géographiques - Correction de la logique de chargement des zones pour prendre en compte les zones désactivées - Correction de la logique de sauvegarde pour inclure les zones désactivées (zone1 et zone2 quand zone2 ou zone3 sont sélectionnées) - Amélioration de `getCurrentZoneData()` pour retourner `true` pour zone1 et zone2 si elles sont désactivées #### Protection Juridique et RCE - Ajout du pré-remplissage de Protection Juridique depuis `tarif.checkPJ` - Ajout du pré-remplissage des garanties RCC (contenant-confie, TPPC, ferroutage, etc.) depuis `rc` - Ajout de la vérification automatique de "Inclure les autres RC" si des extensions RCE sont présentes - Ajout de plusieurs vérifications avec setTimeout pour s'assurer que la case est cochée après tous les chargements ## Date de modification Date: 2025-01-27 ## Notes importantes - Les grilles Ad Valorem sont maintenant envoyées comme arrays directement (sans JSON.stringify) car PocketBase les parse automatiquement - Le modal d'avertissement se déclenche uniquement si une modification impacte réellement le tarif (par exemple, pour les zones, seulement si le coefficient maximum change) - Les zones désactivées (zone1/zone2 quand zone2/zone3 sont sélectionnées) sont maintenant correctement sauvegardées et chargées - La mise à jour du projetRC existant est maintenant gérée correctement au lieu de toujours créer un nouvel enregistrement