feat: Pré-remplissage depuis Tarif et détection d'impact sur le tarif pour Projet RC
- Ajout du pré-remplissage automatique des données depuis la page Tarif - Détection d'impact sur le tarif avec modal d'avertissement - Correction de la sauvegarde des grilles Ad Valorem (arrays au lieu de strings JSON) - Correction de la mise à jour du projetRC existant - Amélioration de la gestion des zones géographiques (zones désactivées) - Ajout de logs de débogage pour le chargement des grilles - Pré-remplissage automatique de 'Inclure les autres RC' si extensions RCE présentes
This commit is contained in:
parent
e47b2b2c28
commit
30d1eb1d4a
|
|
@ -0,0 +1,90 @@
|
|||
# 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
|
||||
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue