Project

General

Profile

Actions

Feature #82

closed
CD

Améliorer la génération de PDF pour les contrats avec design professionnel et signatures configurables

Feature #82: Améliorer la génération de PDF pour les contrats avec design professionnel et signatures configurables

Added by Client Dashboard about 2 months ago. Updated about 1 month ago.

Status:
Shipped
Priority:
Normal
Assignee:
-
Start date:
06/15/2026
Due date:
% Done:

100%

Estimated time:
(Total: 0:00 h)
spec_ref:

ÉPIC découpé (PO : sous-tâche backend éclatée en 3). Génération PDF contrats pro + signatures configurables. Sous-tâches : #90 Backend moteur de rendu (police, logo, marges 2cm, schéma réglages) [socle] ; #91 Backend signatures configurables + mentions [dép. #90] ; #92 Backend numéro unique (séquence Postgres) + enregistrement/téléchargement/email après contre-signature [dép. #90] ; #93 Frontend config modèle (police/logo/emplacement) [partage le schéma #90, design requis] ; #94 Frontend avertissement balises manquantes [indépendant]. Entité Contract : html_template_id, signature_data, internal_signature_id, internal_signed_pdf_url.

build_status:
build_number:
ci_run_url:
scan_status:
scan_report_url:
deploy_status:
deployed
preprod_url:
deployed_at:
06/23/2026
branch:
pr_url:
security_key:
severity:
paused:

Description

### Problème
Actuellement, la génération de PDF des contrats dans l'onglet "Édition de contrat" produit un rendu peu professionnel, basé sur une copie brute de l'HTML. Le design manque de cohérence (polices, marges, alignements) et les signatures ne sont pas intégrées de manière flexible ou esthétique. Cela nuit à l'image professionnelle de l'application et complique le processus de validation des contrats.

### Contexte
- Les utilisateurs sélectionnent un modèle de contrat (créé dans les paramètres avec des balises comme `{{nom_artiste}}`) et remplacent ces balises par les données de l'événement.
- Le PDF généré doit être envoyé via un formulaire sans identification pour validation et signature par le destinataire.
- Les signatures (expéditeur et destinataire) doivent être intégrées automatiquement et positionnées de manière configurable.
- Un numéro de contrat unique doit être généré et affiché dans le PDF pour faciliter le suivi.

### Comportement proposé
1. **Design du PDF** :
- Utiliser la police choisie lors de la création du modèle de contrat.
- Intégrer le logo de la structure (configurable dans les paramètres du modèle) en haut à gauche, avec une ligne de séparation.
- Appliquer des marges de 2 cm et une mise en page soignée (alignements, espacements).

2. **Signatures** :
- Permettre de choisir l'emplacement des signatures (bas à droite, bas à gauche, côte à côte) dans les paramètres du modèle.
- Intégrer automatiquement la signature de l'expéditeur (depuis les paramètres) et celle du destinataire (après signature en ligne) aux emplacements choisis.
- Ajouter des mentions sous les signatures (ex: "Signé par [Nom] le [date]").

3. **Numéro de contrat** :
- Générer un numéro unique (ex: "CONTRAT-2024-001") et l'afficher en pied de page.
- Incrémenter automatiquement ce numéro pour chaque nouveau contrat.

4. **Gestion des erreurs** :
- Afficher un message d'avertissement si une balise est manquante avant génération, avec les options "Ignorer et générer" ou "Corriger".

## Acceptance criteria
- [ ] Le PDF généré respecte la police et la mise en page définies dans le modèle de contrat.
- [ ] Le logo de la structure peut être intégré en haut à gauche du PDF (option configurable dans les paramètres du modèle).
- [ ] Les marges de 2 cm sont appliquées sur tous les côtés du PDF.
- [ ] Les signatures (expéditeur et destinataire) sont intégrées aux emplacements configurables dans les paramètres du modèle.
- [ ] Les mentions "Signé par [Nom] le [date]" sont ajoutées sous chaque signature.
- [ ] Un numéro de contrat unique est généré et affiché en pied de page du PDF.
- [ ] Le numéro de contrat est incrémenté automatiquement pour chaque nouveau contrat.
- [ ] Un message d'avertissement s'affiche si une balise est manquante avant génération, avec les options "Ignorer et générer" ou "Corriger".
- [ ] Le PDF final est enregistré dans l'application et peut être téléchargé après contresignature.
- [ ] Le PDF est envoyé par email au destinataire après contresignature.

## Classification
- feature

## Complexity
- 7/10 — La complexité est modérée en raison de l'intégration de plusieurs fonctionnalités (design PDF, gestion des signatures, numéro de contrat, gestion des erreurs) et de la nécessité de configurer des paramètres flexibles dans les modèles de contrat.


Files

82-apres-contrat-pdf-pro.png (353 KB) 82-apres-contrat-pdf-pro.png Redmine Admin, 06/15/2026 10:27 AM
82-avant-contrat-brut.png (155 KB) 82-avant-contrat-brut.png Redmine Admin, 06/15/2026 10:27 AM
82-maquette-contrat.html (4.79 KB) 82-maquette-contrat.html Redmine Admin, 06/15/2026 10:27 AM
preprod-smoke-dashboard.png (245 KB) preprod-smoke-dashboard.png Redmine Admin, 06/15/2026 11:44 AM
82-apres-contrat-pdf-pro.png
82-avant-contrat-brut.png
preprod-smoke-dashboard.png

Subtasks 7 (0 open7 closed)

Feature #90: Backend — moteur de rendu PDF du contrat (police, logo, marges)Shipped06/15/2026

Actions
Feature #91: Backend — intégration des signatures configurables dans le PDFShipped06/15/2026

Actions
Feature #92: Backend — numéro de contrat unique + enregistrement/téléchargement/envoi emailShipped06/15/2026

Actions
Feature #93: Frontend — configuration de présentation du modèle de contratShipped06/15/2026

Actions
Feature #94: Frontend — avertissement balises manquantes avant générationShipped06/15/2026

Actions
Feature #377: Refonte du rendu PDF contrat : HTML → Chromium (Playwright) + Paged.js (mise en page A4 pro multi-page)Shipped06/15/2026

Actions
Feature #1110: Améliorer le format/design du PDF de contrat (polish visuel, champs vides, identité Le Bijou)Shipped06/15/2026

Actions
Actions

Also available in: PDF Atom