- Pour les metteurs en scène : dates_travaillees reçoit jours_travail_non_artiste (brut)
- Pour les autres : dates_travaillees combine représentations, répétitions et jours_travail
- precisions_salaire reçoit toujours la colonne precisions_salaire de Supabase
La détection se fait maintenant sur contract.profession === 'Metteur en scène'
car les metteurs en scène ont la catégorie 'Artiste' comme les autres artistes.
- Détecter les metteurs en scène via employee_catpro
- Utiliser jours_travail_non_artiste au lieu de jours_travail
- Envoyer les jours de travail formatés dans precisions_salaire
- Exclure jours_travail de dates_travaillees pour les metteurs en scène
- Ajouter logs de débogage pour tracer la logique
- Délai réduit à 600ms (original)
- Sur mobile: popup s'étire de top-20 à bottom-4 pour couvrir modal date de naissance
- Sur desktop: comportement normal (coin bas gauche)
- Évite l'effet visuel bizarre de superposition tout en respectant RGPD
- Change délai de 600ms à 2000ms pour éviter conflit visuel avec modal date de naissance
- Le popup apparaît après que l'utilisateur ait eu le temps d'interagir avec le modal de vérification
- Retrait de la mention 'PostHog' (remplacé par 'outil d'analyse')
- Précision : données hébergées dans l'Union Européenne
- Ajout : mention explicite sur la non-revente et non-partage avec des tiers
- Ajout : exception légale pour les organismes sociaux et caisses de retraite
- Message plus clair et transparent pour les utilisateurs
- Ajouter détection de ' par jour ' et textes finissant par '.'
- Ajouter détection de textes commençant par un nombre (ex: '5 heures le...')
- Corriger le double espace avant 'au' dans DatesQuantityModal
- Améliorer la robustesse de la détection pour tous types de phrases formatées
- Applique à tous les champs de dates (représentations, répétitions, travail)
- Ajouter détection de 'du ' et 'le ' en début de chaîne
- Ajouter détection de ' au ' dans le texte
- Évite le parsing incorrect de textes déjà formatés comme 'du 26/10 au 31/10'
- Applique la correction à tous les champs de dates
- Utiliser contract complet comme dépendance au lieu de champs individuels
- Évite les problèmes de synchronisation partielle
- Garantit que jours_travail_non_artiste est rechargé correctement
- Charger depuis jours_travail_non_artiste pour techniciens/metteurs en scène
- Charger depuis jours_travail pour artistes classiques
- Sauvegarder dans le bon champ selon le mode (useHeuresMode)
- Résout le bug où les dates ne persistaient pas au rechargement
- Ajouter logs frontend pour voir le type_avenant envoyé
- Ajouter logs backend pour voir le type_avenant reçu
- Ajouter logs pour voir la valeur annulation calculée
- Modifier NouvelAvenantPageClient pour gérer type_avenant annulation
- Désactiver la sélection d'éléments pour les annulations
- Ajouter message d'information pour les avenants d'annulation
- Adapter l'API generate-pdf pour envoyer annulation: Oui à PDFMonkey
- Modifier l'API create pour accepter les annulations sans éléments requis
- Ne pas mettre à jour le contrat pour les annulations
- Commenté le champ dates_travaillees qui causait l'affichage en double
- Le template PDFMonkey doit maintenant utiliser uniquement :
- dates_representations_detail pour les représentations
- dates_repetitions_detail pour les répétitions
- Modification validation dans DatesQuantityModal pour heures_repetitions
- Limite 1-3 maintenue pour représentations et services de répétition
- Retrait de la limite max pour les champs d'heures
- Mise à jour placeholder selon le type de saisie
- Ajout champs heures totales et minutes pour répétitions dans AmendmentDureeForm
- Intégration DatesQuantityModal pour saisie heures par jour de répétition
- Ajout type 'heures_repetitions' dans dateFormatter et DatesQuantityModal
- Correction envoi precisions_salaire à PDFMonkey pour les avenants
- Ajout champs séparés dates_representations_detail et dates_repetitions_detail
- Correction logique dates_repetitions_heures pour éviter doublons dans PDF
Webhook avenant completed:
- Le payload form.completed ne contient pas la liste complète des submitters
- Récupération via GET /api/docuseal/submissions/{id}
- Permet de vérifier que TOUS les submitters ont status='completed'
- Corrige le blocage où les emails finaux ne partaient jamais
Webhook docuseal-amendment:
- Vérifier le statut actuel avant de traiter
- Si déjà 'pending_employee' ou 'signed', ignorer le webhook
- Évite l'envoi en double de l'email d'invitation au salarié
- La Lambda appelle ce webhook à chaque signature, pas seulement employeur
Corrections webhook avenant completed:
- N'accepter QUE l'événement form.completed (envoyé une seule fois)
- Ignorer submission.completed (envoyé à chaque signature individuelle)
- Utiliser signature_status='signed' au lieu de 'completed'
- Corrige le problème d'email salarié envoyé en double
- Corrige l'affichage du statut dans l'interface
Webhook avenant completed:
- Vérification du status de TOUS les submitters
- N'envoie les emails finaux que si status='completed' pour tous
- Évite l'envoi prématuré des emails de confirmation
- Log détaillé des statuts de signature
Webhook avenant completed:
- Récupération du slug depuis avenant.employee_docuseal_slug
- Évite l'extraction incorrecte depuis submission_url
- Corrige le 404 sur /signature-salarie pour les avenants signés
Avenant signature:
- Stockage de employee_docuseal_slug lors de la signature employeur
- Permet au salarié d'accéder à la page signature-salarie
Email employeur avenant:
- Prénom depuis organization_details.prenom_signataire
- Email vers organization_details.email_signature
- Message: 'Le document est disponible dans la fiche contrat'
- Ajout mise à jour cddu_contracts.avenant_signe = true
- Ajout cddu_contracts.avenant_signe_date avec timestamp
- Correction emails avenants (profession, infoCard employeur, URL salarié)
- Extraction docuseal_id depuis submission_url pour lien salarié
- Retrait de code_employeur du select organizations (colonne inexistante)
- Ajout requête organization_details pour récupérer code_employeur
- Correction erreur SQL 'column organizations_2.code_employeur does not exist'
- Webhook avenant: utiliser les données du contrat depuis Supabase quand Lambda envoie 'Non spécifié'
- Ajout des types d'emails manquants dans EmailType (signature-request-employee-amendment, etc.)
- Les emails d'avenant seront maintenant loggés correctement dans email_logs
Note: Exécuter dans Supabase SQL:
ALTER TYPE email_type ADD VALUE IF NOT EXISTS 'signature-request-employee-amendment';
ALTER TYPE email_type ADD VALUE IF NOT EXISTS 'signature-request-salarie';
ALTER TYPE email_type ADD VALUE IF NOT EXISTS 'contribution-notification';
ALTER TYPE email_type ADD VALUE IF NOT EXISTS 'support-reply';
ALTER TYPE email_type ADD VALUE IF NOT EXISTS 'support-ticket-created';
ALTER TYPE email_type ADD VALUE IF NOT EXISTS 'support-ticket-reply';
ALTER TYPE email_type ADD VALUE IF NOT EXISTS 'contact-support';
Le webhook avenant échouait avec 'multiple rows returned' car plusieurs avenants
pouvaient avoir le même numero_avenant (tests). Utilisation du docuseal_submission_id
unique pour identifier l'avenant correctement.
- check-status: cherche dans cddu_contracts ET avenants
- verify-birthdate: cherche dans les deux tables
- Retourne documentType ('contrat' ou 'avenant')
- UI adaptée: AlreadySignedCard et ToSignCard affichent le type
- Titre dynamique: 'Contrat' ou 'Avenant' selon le document
- Textes adaptés: 'Voir et signer votre avenant/contrat'