espace-paie-odentas/templates-contrats/cddu-handlebars.html
odentas c6faceb038 feat: Préparation migration PDFMonkey vers Gotenberg
- Ajout helpers Handlebars pour remplacer filtres Liquid
- Conversion template CDDU de Liquid vers Handlebars
- Nouvelle API route /api/generate-contract-pdf pour Gotenberg
- Configuration Docker Compose pour auto-héberger Gotenberg
- Documentation complète de migration
- Variables d'environnement exemple

Note: Le bouton 'Créer PDF' utilise encore PDFMonkey.
Pour activer Gotenberg, modifier l'appel dans ContractEditor.tsx
2025-12-27 21:40:27 +01:00

390 lines
18 KiB
HTML

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<style>
body {
font-family: Arial, sans-serif;
font-size: 12pt;
line-height: 1.5;
margin: 40px;
}
h1 {
text-align: center;
font-size: 16pt;
margin-bottom: 20px;
}
h2.section-title {
font-size: 13pt;
margin-top: 20px;
margin-bottom: 10px;
}
.bold {
font-weight: bold;
}
.section {
margin-bottom: 15px;
}
.section-objet {
margin-bottom: 15px;
}
ul {
list-style-type: none;
padding-left: 0;
}
li {
margin-bottom: 5px;
}
.info-paragraph {
margin-top: 30px;
}
.info-row {
margin-bottom: 20px;
}
.info-label {
font-weight: bold;
margin-bottom: 5px;
}
.info-value {
margin-bottom: 3px;
}
.info-delegation {
font-style: italic;
margin-bottom: 3px;
}
</style>
</head>
<body>
<div style="display: flex; justify-content: center;">
<img src="{{imageUrl}}" style="width: 180px;" />
</div>
<h1>CONTRAT D'ENGAGEMENT
{{#eq employee_catpro "Artiste"}}ARTISTE{{/eq}}
{{#if (and (eq employee_civ "Madame") (eq employee_catpro "Technicien"))}}TECHNICIENNE{{/if}}
{{#if (and (eq employee_civ "Monsieur") (eq employee_catpro "Technicien"))}}TECHNICIEN{{/if}}
{{#if (and (eq employee_civ "Madame") (eq employee_catpro "Metteur en scène"))}}<br>ARTISTE CADRE{{/if}}
{{#if (and (eq employee_civ "Monsieur") (eq employee_catpro "Metteur en scène"))}}ARTISTE CADRE{{/if}}
</h1>
<p class="bold">Entre les {{#eq employee_civ "Monsieur"}}soussignés{{else}}soussignées{{/eq}} :</p>
<ul>
<li class="bold">{{structure_name}}</li>
<li>{{forme_juridique}}</li>
<li>{{structure_adresse}}</li>
<li>{{structure_cpville}} {{structure_ville}}</li>
<li>SIRET : {{structure_siret}}</li>
{{#ne structure_licence "n/a"}}<li>Licence d'entrepreneur de spectacles : {{structure_licence}}</li>{{/ne}}
<li>représentée par {{structure_signataire}}, en sa qualité {{#eq structure_signatairequalite "Administrateur"}}d'{{else}}de {{/eq}}{{structure_signatairequalite}}{{#eq delegation "Oui"}}, pour le représentant légal et par délégation.{{else}}.{{/eq}}</li>
</ul>
<p class="bold">d'une part,</p>
<p class="bold">et :</p>
<ul>
<li class="bold">{{employee_civ}} {{employee_firstname}} {{employee_lastname}}{{#ne employee_birthname employee_lastname}}{{#eq employee_civ "Monsieur"}}, né {{employee_birthname}}{{/eq}}{{#eq employee_civ "Madame"}}, née {{employee_birthname}}{{/eq}}{{/ne}}{{#ne employee_pseudo "n/a"}}, {{#eq employee_civ "Monsieur"}}dit{{else}}dite{{/eq}} "{{employee_pseudo}}"{{/ne}}</li>
<li>
{{#eq employee_civ "Monsieur"}}né{{else}}née{{/eq}}
le {{ employee_dob }}
{{#if (contains employee_cob "Le ")}}
au {{removeFirst employee_cob "Le "}}
{{else}}
à {{ employee_cob }}
{{/if}}
</li>
<li>demeurant {{employee_address}}</li>
{{#if (or (eq employee_ss 0) (isEmpty employee_ss))}}
<li>Le numéro de Sécurité Sociale du salarié est en cours d'attribution.</li>
{{else}}
<li>N° de Sécurité Sociale : {{ employee_ss }}</li>
{{/if}}
<li>N° Congés Spectacles : {{employee_cs}}</li>
{{#eq mineur1618 "Oui"}}<li>dont {{#eq representant_civ "Monsieur"}}le représentant légal{{else}}la représentante légale{{/eq}} est {{representant_civ}} {{representant_nom}}, {{#eq representant_civ "Monsieur"}}né{{else}}née{{/eq}} le {{representant_dob}} à {{representant_cob}}, demeurant {{representant_adresse}}.</li>{{/eq}}
</ul>
<p class="bold">d'autre part.</p>
<p>
Le présent contrat est conclu dans le cadre de la législation du travail, des usages en vigueur dans la
profession, de l'article L. 1242-2° du Code du travail et de l'accord interbranche sur le recours au
contrat à durée déterminée d'usage dans le spectacle du 12/10/1998. Il est, en outre, régi par les
dispositions de la {{join CCN ', '}}{{#if (contains (join CCN ', ') "Convention Collective Nationale de l'Édition")}} et de ses annexes afférentes à l'Édition Phonographique{{/if}}.
</p>
<p>
Il a été convenu et arrêté ce qui suit :
</p>
<div class="section">
<h2 class="section-title">OBJET</h2>
{{employee_civ}} {{employee_firstname}} {{employee_lastname}} est {{#eq employee_civ "Monsieur"}}engagé{{else}}engagée{{/eq}} selon l'objet suivant :
<ul>
<li><b>Profession</b> : {{employee_profession}}</li>
<li><b>Code emploi</b> : {{employee_codeprofession}}</li>
<li>
{{#if (and (eq structure_spectacle "Oui") (ne type_numobjet "Administratif"))}}
<b>Spectacle</b> : {{ spectacle }}
{{else if (includesAny (join CCN ', ') "Convention Collective Nationale de la Production Audiovisuelle" "Convention Collective Nationale de l'Édition")}}
<b>Production</b> : {{ spectacle }}
{{/if}}
</li>
<li>{{#isNotEmpty numobjet}}<b>Numéro d'objet</b> : {{numobjet}}{{else}}Le <b>numéro d'objet</b> de cette production est en cours d'attribution.{{/isNotEmpty}}</li>
</ul>
</div>
<div class="section-objet">
<h2 class="section-title">DURÉE DE L'ENGAGEMENT</h2>
<p>
{{#eq date_debut date_fin}}
Le présent engagement couvre la journée du {{ date_debut }}, pour
{{else}}
{{#isNotEmpty dates_travaillees}}
Le présent engagement couvre la période du {{ date_debut }} au {{ date_fin }} pour les dates travaillées suivantes :
<ul>
{{#each (split dates_travaillees ";")}}
<li>- {{strip this}}{{#unless @last}};{{/unless}}</li>
{{/each}}
</ul>
{{else}}
Le présent engagement couvre la période du {{ date_debut }} au {{ date_fin }}.
{{/isNotEmpty}}
Pour
{{/eq}}
{{#eq employee_catpro "Artiste"}}
un total de
{{#if (and (gte cachets.representations 1) (gte cachets.repetitions 1))}}
{{cachets.representations}} {{#eq cachets.representations 1}}cachet{{else}}cachets{{/eq}} de représentation et {{cachets.repetitions}} {{#eq cachets.repetitions 1}}service{{else}}services{{/eq}} de répétition.
{{/if}}
{{#if (and (gte cachets.representations 1) (eq cachets.repetitions 0))}}
{{cachets.representations}} {{#eq cachets.representations 1}}cachet{{else}}cachets{{/eq}}{{#if (includesAny (join CCN ', ') "Convention Collective Nationale de la Production Audiovisuelle" "Convention Collective Nationale de l'Édition")}} d'enregistrement.{{else}} de représentation.{{/if}}
{{/if}}
{{#if (and (eq cachets.representations 0) (gte cachets.repetitions 1))}}
{{cachets.repetitions}} {{#eq cachets.repetitions 1}}service{{else}}services{{/eq}} de répétition.
{{/if}}
{{/eq}}
{{#eq employee_catpro "Technicien"}}
un total de {{cachets.heures}} heures de travail{{#eq cachets.heuresparjour 0}}.{{/eq}}{{#gte cachets.heuresparjour 1}}, à raison de {{cachets.heuresparjour}} heures par jour de travail.{{/gte}}
{{/eq}}
{{#eq employee_catpro "Metteur en scène"}}
{{#if (and (gte cachets.representations 1) (gt cachets.heures 0))}}
un total de {{cachets.representations}} {{#eq cachets.representations 1}}cachet{{else}}cachets{{/eq}} de représentation et {{cachets.heures}} heures de travail.
{{/if}}
{{#if (eq cachets.representations 0)}}
un total de {{cachets.heures}} heures de travail.
{{/if}}
{{#if (and (gte cachets.representations 1) (eq cachets.heures 0))}}
un total de {{cachets.representations}} {{#eq cachets.representations 1}}cachet{{else}}cachets{{/eq}} de représentation.
{{/if}}
{{/eq}}
</p>
<p>
{{#if (gte cachets.repetitions 1)}}La durée totale des répétitions sera de {{cachets.heures}} heures{{#eq cachets.heuresparjour 0}}.{{/eq}}{{#gte cachets.heuresparjour 1}}, à raison de {{cachets.heuresparjour}} heures par journée de répétition.{{/gte}}{{/if}}
</p>
{{#isNotEmpty autreprecision_duree}}<p>{{autreprecision_duree}}</p>{{/isNotEmpty}}
</div>
<div class="section">
Il ne nous sera, en aucun cas, fait obligation de proroger le présent engagement à expiration. La fin de la période d'engagement prévue
aux présentes, prorogée éventuellement de la durée de dépassement, en constitue le terme. Il n'y a lieu à aucun préavis.
</div>
<div class="section">
<h2 class="section-title">LIEUX D'ENGAGEMENT ET HORAIRES DE TRAVAIL</h2>
<p>
{{structure_name}} communiquera à {{employee_firstname}} {{employee_lastname}} les lieux
{{#if (includesAny (join CCN ', ') "Convention Collective Nationale de la Production Audiovisuelle" "Convention Collective Nationale de l'Édition")}}
de travail
{{else if (and (gte cachets.representations 1) (eq cachets.repetitions 0))}}
des représentations
{{else if (and (eq cachets.representations 0) (gte cachets.repetitions 1))}}
des répétitions
{{else if (eq employee_catpro "Technicien")}}
d'engagement
{{else if (and (gte cachets.representations 1) (gte cachets.repetitions 1))}}
des répétitions et des représentations
{{/if}}
{{#if (and (eq employee_catpro "Metteur en scène") (eq cachets.representations 0))}}d'exercice de sa fonction{{/if}}, ainsi que ses horaires de travail.
</p>
</div>
<div class="section">
<h2 class="section-title">RÉMUNÉRATION</h2>
<p>
Il sera alloué à {{employee_firstname}} {{employee_lastname}} à titre de salaire la somme de {{salaire_brut}} euros bruts.
</p>
{{#isNotEmpty precisions_salaire}}
<p>
À titre informatif, la répartition de ce salaire brut est la suivante : {{precisions_salaire}}.
</p>
{{/isNotEmpty}}
{{#if (and (isNotEmpty panierrepas) (isNotEmpty hebergement))}}
<p>{{employee_firstname}} {{employee_lastname}} percevra {{panierrepas}}
{{#eq panierrepas "1"}}panier repas principal{{else}}paniers repas principaux,{{/eq}} et {{hebergement}} {{#eq hebergement "1"}}indemnité{{else}}indemnités{{/eq}} d'hébergement et petit-déjeuner,
{{#if (and (eq panierrepasccn "Oui") (eq hebergementccn "Oui"))}}
selon les conditions prévues par la Convention Collective.
{{else if (and (eq panierrepasccn "Non") (eq hebergementccn "Oui"))}}
à hauteur de {{montantpanierrepas}} euros par panier repas principal, et selon les conditions prévues par la Convention Collective pour l'indemnité hébergement et petit-déjeuner.
{{else if (and (eq panierrepasccn "Oui") (eq hebergementccn "Non"))}}
selon les conditions prévues par la Convention Collective pour les paniers repas principaux, et à hauteur de {{montanthebergement}} euros par indemnité hébergement et petit-déjeuner.
{{else if (and (eq panierrepasccn "Non") (eq hebergementccn "Non"))}}
à hauteur de {{montantpanierrepas}} euros par panier repas principal et à hauteur de {{montanthebergement}} euros par indemnité hébergement et petit-déjeuner.
{{/if}}
</p>
{{/if}}
{{#isNotEmpty autreprecision_salaire}}<p>{{autreprecision_salaire}}</p>{{/isNotEmpty}}
</div>
<div class="section">
<h2 class="section-title">RETRAITE ET CONGÉS PAYÉS</h2>
<p>
Les cotisations de retraite seront versées à AUDIENS - 7 rue Jean Bleuzen - 92177 VANVES Cedex. L'employeur acquittera ses
contributions à la caisse des Congés Spectacles conformément à la législation et dans la limite des plafonds applicables en vigueur.
</p>
</div>
<div class="section">
<h2 class="section-title">ABSENCE-MALADIE</h2>
<p>
En cas de maladie ou d'empêchement d'assurer
{{#if (eq employee_catpro "Metteur en scène")}}
ses missions de mise en scène,
{{else if (contains (join CCN ', ') "Convention Collective Nationale de la Production Audiovisuelle")}}
ses missions de {{employee_profession}},
{{else if (contains (join CCN ', ') "Convention Collective Nationale de l'Édition")}}
un enregistrement,
{{else}}
une répétition ou une représentation,
{{/if}}
{{employee_firstname}} {{employee_lastname}} sera {{#eq employee_civ "Monsieur"}}tenu{{else}}tenue{{/eq}}
d'en aviser {{structure_name}} dans un délai de 24 heures en précisant la durée probable de son absence. En cas de prolongation d'arrêt de travail,
{{employee_firstname}} {{employee_lastname}} devra transmettre à {{structure_name}}, dans les plus brefs délais, le certificat médical
justifiant de cette prolongation. En tout état de cause, les parties conviennent expressément qu'en cas de maladie de {{employee_firstname}} {{employee_lastname}},
le présent contrat pourra être résilié de plein droit par {{structure_name}} et ce, dans le respect des dispositions de la convention collective applicable.
</p>
</div>
<div class="section">
<h2 class="section-title">DROIT DE PRIORITÉ ET D'EXCLUSIVITÉ</h2>
<p>
Le présent contrat donne à {{structure_name}} une priorité absolue sur tous les autres engagements que pourrait conclure par ailleurs {{employee_firstname}} {{employee_lastname}}, sur la période de l'engagement.
La dérogation éventuelle à cette clause devra faire l'objet d'un accord écrit de {{structure_name}}.
</p>
<p>
{{employee_firstname}} {{employee_lastname}} ne pourra en aucun cas refuser sa présence
{{#if (eq employee_catpro "Metteur en scène")}}
sur ses lieux de travail et aux répétitions
{{else if (contains (join CCN ', ') "Convention Collective Nationale de la Production Audiovisuelle")}}
sur les lieux de production
{{else if (contains (join CCN ', ') "Convention Collective Nationale de l'Édition")}}
sur les lieux d'enregistrement
{{else}}
à une répétition ou à une représentation
{{/if}}
pour cause d'engagement extérieur, à quelque moment qu'il·elle ait été prévenu
{{#if (eq employee_catpro "Metteur en scène")}}
de ses horaires et jours de travail et de l'existence de répétitons.
{{else if (contains (join CCN ', ') "Convention Collective Nationale de la Production Audiovisuelle")}}
de ses horaires, jours et lieux de travail.
{{else if (contains (join CCN ', ') "Convention Collective Nationale de l'Édition")}}
de cet session d'enregistrement.
{{else}}
de l'existence de cette répétition ou représentation.
{{/if}}
</p>
</div>
<div class="section">
<h2 class="section-title">MÉDECINE DU TRAVAIL</h2>
<p>
{{employee_firstname}} {{employee_lastname}} déclare avoir satisfait aux obligations relatives à la Médecine du travail et communiquera
à {{structure_name}} l'attestation annuelle qui lui a été délivrée par cet organisme.
</p>
</div>
<div class="section">
<h2 class="section-title">ASSURANCES</h2>
<p>
{{employee_firstname}} {{employee_lastname}} est {{#eq employee_civ "Monsieur"}}tenu{{else}}tenue{{/eq}} d'assurer contre tous les risques tous les objets lui appartenant. {{structure_name}}
déclare avoir souscrit les assurances nécessaires à la couverture des risques liés{{#if (contains (join CCN ', ') "Convention Collective Nationale de la Production Audiovisuelle")}} à la production audiovisuelle.{{else if (contains (join CCN ', ') "Convention Collective Nationale de l'Édition")}} à l'édition phonographique.{{else}} aux représentations du spectacle.{{/if}}
</p>
</div>
<div class="section">
<h2 class="section-title">LITIGES</h2>
<p>
En cas de litige portant sur l'interprétation ou l'application du présent contrat, les parties conviennent de s'en remettre à l'appréciation des
tribunaux compétents, mais seulement après épuisement des voies amiables (conciliation, arbitrage).
</p>
</div>
<div class="section">
<h2 class="section-title">PROTECTION DES DONNÉES PERSONNELLES</h2>
<p>
Aux fins de gestion du personnel et de traitement des rémunérations, nous sommes amenés à solliciter des données personnelles vous concernant
à l'occasion de la conclusion, l'exécution et le cas échéant, la rupture de votre contrat de travail.
</p>
<p>
La signature du présent contrat vaut autorisation pour la société de collecter, d'enregistrer et de stocker les données nécessaires.
</p>
<p>
Outre les services internes de {{structure_name}}, les destinataires de ces données sont, à ce jour, les organismes de sécurité sociale,
les caisses de retraite et de prévoyance, la mutuelle, France Travail Spectacle, les services des impôts, le service de médecine du travail, les organismes conventionnels et la société
Odentas Media SAS, notre prestataire de gestion de la paie.
</p>
<p>
Ces informations sont réservées à l'usage des services concernés et ne peuvent être communiquées qu'à ces destinataires.
</p>
<p>
Vous bénéficiez notamment d'un droit d'accès, de rectification et d'effacement des informations vous concernant, que vous pouvez exercer
en adressant directement une demande au responsable de ces traitements : {{nom_responsable_traitement}}, {{qualite_responsable_traitement}}, {{email_responsable_traitement}}.
</p>
</div>
<div class="section">
<p>
Fait en double exemplaire,
</p>
<p>
{{#if (contains structure_ville "Le ")}}
Au {{removeFirst structure_ville "Le "}}, le {{ date_signature }}.
{{else}}
À {{ structure_ville }}, le {{ date_signature }}.
{{/if}}
</p>
</div>
<div class="info-paragraph">
<div class="info-row">
<div class="info-label">{{#eq employee_civ "Monsieur"}}Le salarié :{{else}}La salariée :{{/eq}}</div>
<div class="info-value">{{employee_civ}} {{employee_firstname}} {{employee_lastname}}</div>
<br>
<div>[Signature Employé - À intégrer via Docuseal]</div>
<br><br><br><br>
</div>
{{#eq mineur1618 "Oui"}}
<div class="info-row">
<div class="info-label">{{#eq representant_civ "Monsieur"}}Le représentant légal{{else}}La représentante légale{{/eq}}{{#eq employee_civ "Madame"}} de la salariée :{{else}} du salarié :{{/eq}}</div>
<div class="info-value">{{representant_civ}} {{representant_nom}}</div>
<div class="info-signature">[Signature Représentant - À intégrer via Docuseal]</div>
<br><br>
</div>
{{/eq}}
<div class="info-row">
<div class="info-label">L'employeur:</div>
<div class="info-value">Pour {{structure_name}},</div>
{{#eq delegation "Oui"}}<div class="info-delegation">Pour le représentant légal et par délégation,</div>{{/eq}}
<div class="info-value">{{structure_signataire}},</div>
<div class="info-value">{{structure_signatairequalite}}.</div>
<br>
<div>[Signature Employeur - À intégrer via Docuseal]</div>
</div>
</div>
</body>
</html>