File size: 8,589 Bytes
2e25654
 
6efda20
 
2e25654
 
6efda20
2e25654
 
 
 
 
 
 
6efda20
2e25654
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
6efda20
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
bd5a9a7
6efda20
 
 
 
 
 
 
bd5a9a7
6efda20
 
 
 
 
bd5a9a7
6efda20
 
 
 
 
bd5a9a7
2e25654
 
bd5a9a7
 
6efda20
2e25654
 
bd5a9a7
6efda20
 
2e25654
6efda20
bd5a9a7
6efda20
bd5a9a7
 
 
 
 
2e25654
bd5a9a7
2e25654
bd5a9a7
6efda20
bd5a9a7
6efda20
2e25654
bd5a9a7
6efda20
 
bd5a9a7
 
6efda20
bd5a9a7
6efda20
 
bd5a9a7
6efda20
2e25654
6efda20
2e25654
6efda20
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2e25654
6efda20
 
 
 
 
 
 
 
 
 
2e25654
 
bd5a9a7
6efda20
 
 
 
 
 
 
 
 
2e25654
bd5a9a7
6efda20
 
 
2e25654
6efda20
2e25654
6efda20
 
bd5a9a7
2e25654
bd5a9a7
6efda20
2e25654
6efda20
2e25654
6efda20
2e25654
bd5a9a7
2e25654
6efda20
2e25654
bd5a9a7
2e25654
 
6efda20
2e25654
6efda20
2e25654
6efda20
2e25654
bd5a9a7
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
"""
Module pour la prévisualisation des contrats avant génération du PDF.
Version améliorée avec un formatage plus clair et une meilleure organisation.
Version corrigée pour l'encodage des caractères accentués et UTF-8.
"""
from contract_templates import ContractTemplates
from utils import ensure_default_supports


def preview_contract(contract_type, is_free, author_type, author_info, 
                   work_description, image_description, supports, 
                   additional_rights, remuneration, is_exclusive):
    """
    Génère un aperçu du contrat sous forme de texte.
    Version améliorée pour une meilleure lisibilité et encodage correct.
    
    Args:
        contract_type (list): Liste des types de contrats sélectionnés
        is_free (bool): True si la cession est gratuite, False sinon
        author_type (str): Type d'auteur ("Personne physique" ou "Personne morale")
        author_info (dict): Informations sur l'auteur
        work_description (str): Description de l'œuvre
        image_description (str): Description de l'image
        supports (list): Liste des supports sélectionnés
        additional_rights (list): Liste des droits supplémentaires sélectionnés
        remuneration (str): Modalités de rémunération
        is_exclusive (bool): True si la cession est exclusive, False sinon
        
    Returns:
        str: Aperçu du contrat
    """
    is_free = (is_free == "Gratuite")
    
    # Ajouter les supports par défaut
    final_supports = ensure_default_supports(supports)
    
    # Initialiser l'aperçu avec le titre
    apercu = ContractTemplates.get_title(contract_type) + "\n\n"
    
    # Ajouter le préambule de façon plus claire
    apercu += "ENTRE LES SOUSSIGNÉS :\n\n"
    
    # Informations sur l'auteur/modèle
    if author_type == "Personne physique":
        gentille = author_info.get("gentille", "M.")
        nom = author_info.get("nom", "")
        prenom = author_info.get("prenom", "")
        date_naissance = author_info.get("date_naissance", "")
        nationalite = author_info.get("nationalite", "")
        adresse = author_info.get("adresse", "")
        contact = author_info.get("contact", "")
        
        apercu += f"{gentille} {prenom} {nom}"
        if date_naissance:
            apercu += f", né(e) le {date_naissance}"
        if nationalite:
            apercu += f", de nationalité {nationalite}"
        apercu += f", domicilié(e) au {adresse}"
        if contact:
            apercu += f", joignable à {contact}"
    else:
        # Personne morale
        nom_societe = author_info.get("nom_societe", "")
        statut = author_info.get("statut", "")
        rcs = author_info.get("rcs", "")
        siege = author_info.get("siege", "")
        contact = author_info.get("contact", "")
        
        apercu += f"La société {nom_societe}, {statut}, immatriculée sous le numéro {rcs} au Registre du Commerce et des Sociétés, dont le siège social est situé {siege}"
        if contact:
            apercu += f", joignable à {contact}"
    
    # Dénomination de l'auteur
    if "Auteur (droits d'auteur)" in contract_type and "Image (droit à l'image)" in contract_type:
        apercu += ", ci-après dénommé(e) \"l'Auteur et le Modèle\",\n\n"
    elif "Auteur (droits d'auteur)" in contract_type:
        apercu += ", ci-après dénommé(e) \"l'Auteur\",\n\n"
    else:
        apercu += ", ci-après dénommé(e) \"le Modèle\",\n\n"
    
    # Informations sur Tellers (bénéficiaire)
    apercu += "Tellers, société par actions simplifiée unipersonnelle au capital de 1000 €, "
    apercu += "immatriculée sous le numéro 932 553 266 R.C.S. Lyon, et dont le siège social est situé au : "
    apercu += "12 RUE DE LA PART-DIEU, 69003 LYON, représentée par son Président en exercice dûment habilité à l'effet des présentes, "
    apercu += "ci-après dénommée \"le Cessionnaire\",\n\n"
    
    # Introduction
    apercu += "Ci-après dénommées ensemble \"les Parties\" ou individuellement \"la Partie\",\n\n"
    apercu += "CECI EXPOSÉ, IL A ÉTÉ CONVENU CE QUI SUIT :\n\n"
    
    # ARTICLE 1 - OBJET DU CONTRAT
    apercu += "ARTICLE 1 – OBJET DU CONTRAT\n\n"
    
    if "Auteur (droits d'auteur)" in contract_type:
        apercu += "1.1 Œuvre concernée\n\n"
        apercu += f"L'Auteur déclare être le créateur et titulaire exclusif des droits d'auteur sur l'œuvre suivante :\n\n"
        apercu += f"{work_description}\n\n"
    
    if "Image (droit à l'image)" in contract_type:
        apercu += "1.2 Images concernées\n\n"
        apercu += f"Le Modèle autorise l'utilisation de son image telle qu'elle apparaît dans : \n\n"
        apercu += f"{image_description}\n\n"
    
    # ARTICLE 2 - DROITS CÉDÉS
    apercu += "ARTICLE 2 – ÉTENDUE DES DROITS CÉDÉS\n\n"
    
    apercu += "2.1 Nature de la cession\n\n"
    apercu += "L'Auteur cède au Cessionnaire, "
    
    if is_exclusive:
        apercu += "à titre exclusif, "
    else:
        apercu += "à titre non exclusif, "
    
    if is_free:
        apercu += "gratuitement et pour la durée précisée à l'article 4, les droits patrimoniaux suivants :\n\n"
    else:
        apercu += "pour la durée précisée à l'article 4 et moyennant rémunération, les droits suivants :\n\n"
    
    apercu += "2.2 Droits patrimoniaux cédés\n\n"
    apercu += "- Droit de reproduction\n"
    apercu += "- Droit de représentation\n"
    
    if not is_free and additional_rights:
        apercu += "\nDroits supplémentaires inclus :\n"
        for right in additional_rights:
            short_name = right.split(" - ")[0] if " - " in right else right
            apercu += f"- {short_name}\n"
    
    apercu += "\n"
    
    # Article sur l'image si applicable
    if "Image (droit à l'image)" in contract_type:
        article_num = 3
        apercu += f"ARTICLE {article_num} – AUTORISATION D'EXPLOITATION DE L'IMAGE\n\n"
        
        apercu += "Le Modèle autorise expressément le Cessionnaire à exploiter son image "
        
        if is_exclusive:
            apercu += "à titre exclusif"
        else:
            apercu += "à titre non exclusif"
        
        if is_free:
            apercu += " et gratuit"
        
        apercu += " selon les modalités détaillées dans le contrat complet.\n\n"
        
        article_num += 1
    else:
        article_num = 3
    
    # Article DURÉE ET TERRITOIRE
    apercu += f"ARTICLE {article_num} – DURÉE ET TERRITOIRE\n\n"
    apercu += "4.1 Durée\n"
    apercu += "La cession est consentie pour une durée d'un (1) an, renouvelable par tacite reconduction.\n\n"
    
    apercu += "4.2 Territoire\n"
    apercu += "La cession est consentie pour le monde entier.\n\n"
    
    article_num += 1
    
    # Article SUPPORTS D'EXPLOITATION
    apercu += f"ARTICLE {article_num} – SUPPORTS D'EXPLOITATION\n\n"
    apercu += "5.1 Supports autorisés\n"
    apercu += "Les supports d'exploitation autorisés sont :\n"
    
    for support in final_supports:
        apercu += f"- {support}\n"
    
    apercu += "\n"
    article_num += 1
    
    # Article RÉMUNÉRATION
    apercu += f"ARTICLE {article_num} – RÉMUNÉRATION\n\n"
    
    if is_free:
        apercu += "La présente cession est consentie à titre gratuit, sans contrepartie financière.\n\n"
    else:
        apercu += f"En contrepartie de la présente cession, le Cessionnaire versera au Cédant : \n{remuneration}\n\n"
    
    article_num += 1
    
    # Résumé des articles restants
    apercu += f"ARTICLE {article_num} – GARANTIES ET RESPONSABILITÉS\n\n"
    article_num += 1
    apercu += f"ARTICLE {article_num} – RÉSILIATION\n\n"
    article_num += 1
    apercu += f"ARTICLE {article_num} – DISPOSITIONS DIVERSES\n\n"
    article_num += 1
    apercu += f"ARTICLE {article_num} – LOI APPLICABLE ET JURIDICTION COMPÉTENTE\n\n"
    
    # Signature
    apercu += "Fait à ________________, le ________________\n\n"
    apercu += "En deux exemplaires originaux.\n\n"
    
    if "Auteur (droits d'auteur)" in contract_type and "Image (droit à l'image)" in contract_type:
        apercu += "Pour l'Auteur et Modèle :                                Pour le Cessionnaire :"
    elif "Auteur (droits d'auteur)" in contract_type:
        apercu += "Pour l'Auteur :                                          Pour le Cessionnaire :"
    else:
        apercu += "Pour le Modèle :                                         Pour le Cessionnaire :"
    
    return apercu