{# Devis Vocal — le document A4. Reprise du handoff `reference/pdf/devis.html`, branchée sur le modèle `Devis`. Trois choses à savoir avant d'y toucher : - La mise en page vient de `pdf.css`, qui vient du design. On ne met pas de style ici : les seuls attributs `style` sont ceux que le handoff portait déjà en ligne. - La pagination est décidée en Python (`app.pdf.paginer`), pas par le navigateur : la page 1 porte l'en-tête d'entreprise, les suivantes un titre courant, et la dernière les mentions. Aucun moteur CSS ne sait faire ça seul. - Feuilles et polices sont inlinées : Chromium rend depuis `about:blank`, donc aucune URL relative ne résoudrait, et un devis ne doit pas dépendre du réseau au moment où on le montre à un artisan. #} Devis {{ devis.numero }} — {{ e.nom }} {%- macro entete_courante(mention) -%}
{{ e.nom }}
{{ mention }}
{%- endmacro -%} {#- L'identité de la configuration n'est pas celle de l'artisan : en travers de chaque page, sans rien déplacer — le filigrane est hors du flux. #} {%- macro filigrane() -%} {%- if specimen %}{% endif -%} {%- endmacro -%} {%- macro pied_courant(numero) -%} {%- endmacro -%} {%- macro note_dague() -%} {%- if devis.a_des_prix_estimes -%} {#- La quantité comme le prix : le modèle estime aussi un métrage qui n'a pas été dit. #}

† Ligne estimée : quantité ou prix unitaire non dicté lors de la prise de mesure. Montant à confirmer avant signature.

{%- endif -%} {%- endmacro -%} {%- macro entete_tableau() -%}
N°
Désignation
Qté
U.
P.U. HT
Total HT
{%- endmacro -%} {%- macro lignes_tableau(bloc) -%} {%- for numero, ligne in bloc %}
{{ '%02d' % numero }}
{{ ligne.designation }}{% if ligne.a_valider %}estimé †{% endif %}{% if ligne.detail %}{{ ligne.detail }}{% endif %}
{{ ligne.quantite | nombre }}
{{ ligne.unite.value }}
{{ ligne.prix_unitaire_ht | montant }}
{{ ligne.total_ht | montant }}
{%- else %}
Aucune prestation chiffrable à ce stade — voir les observations.
{%- endfor %} {%- endmacro -%} {%- macro cloture() -%}
{#- `notes_cloture` et pas `devis.notes` : des observations trop longues pour tenir à côté des totaux ont leurs propres pages, voir plus bas. #} {%- if notes_cloture %}
Observations
{%- for note in notes_cloture %}
—

{{ note }}

{%- endfor %}
{%- endif %}
Total HT{{ devis.total_ht | euro }}
{%- if e.franchise_tva %} {#- Une entreprise en franchise ne facture pas de TVA : une ligne « TVA 0 % » se lirait comme un taux, la mention dit le régime. #}
TVA non applicable, art. 293 B du CGI
Net à payer{{ devis.total_ttc | euro }}
{%- else %}
TVA {{ devis.taux_tva_libelle }} %{{ devis.montant_tva | euro }}
Total TTC{{ devis.total_ttc | euro }}
{%- endif %}
{#- Chez un particulier, aucun paiement avant sept jours (art. L221-10 du Code de la consommation) : « à la commande » y réclamerait un acompte interdit. #} Acompte {{ devis.acompte_pct | pourcent }} % {{ 'à la commande' if devis.client.professionnel else 'après 7 jours' }} {{ devis.montant_acompte | euro }}
{%- endmacro -%} {%- macro bon_pour_accord() -%}

Bon pour accord

Date et signature du client, précédées de la mention manuscrite « Bon pour accord, devis reçu avant l'exécution des travaux ».

{%- if not devis.client.professionnel %} {#- La demande expresse de l'article L221-25 : sans elle, un client qui se rétracte ne doit rien pour les travaux déjà faits. Ses suites sont sur la page des conditions, avec le droit de rétractation. #}

Je demande que les travaux commencent avant la fin du délai de rétractation (art. L221-25 du Code de la consommation).

{%- endif %} {#- L'année aussi reste en blanc : un devis émis en décembre se signe souvent en janvier, et une année pré-imprimée antidaterait l'acceptation. #}
Fait à ……………………………, le ……… / ……… / ………
Signature
{%- endmacro -%} {# ---- pages du tableau ------------------------------------------------- #} {%- for bloc in pages %} {%- set cloture_ici = loop.last and cloture_sur_derniere %}
{{ filigrane() }} {%- if loop.first %}
{{ e.nom }}
{{ e.metier }}
{#- Une mention que l'artisan n'a pas renseignée s'imprime « à compléter » : le serveur ne la complète plus avec la configuration, qui est l'identité d'une autre entreprise. Le code APE, qui n'est pas une mention obligatoire, se tait. #}
{{ e.forme_juridique or 'Forme juridique à compléter' }}
{{ e.adresse or 'Adresse à compléter' }}, {{ e.code_postal_ville or 'code postal à compléter' }}
{{ e.telephone or 'Téléphone à compléter' }} · {{ e.email or 'e-mail à compléter' }}
DEVIS
N° {{ devis.numero }}
Émis le{{ devis.date_emission | date_longue }}
Valable jusqu'au{{ devis.date_validite | date_longue }}
{%- if devis.duree_estimee %}
Durée estimée{{ devis.duree_estimee }}
{%- endif %} {#- La date ou le délai d'exécution est une mention due (art. L111-1 du Code de la consommation), et une durée ne dit pas quand. Rien de dicté : une ligne à remplir à la main, jamais une date inventée. #}
Début des travaux{{ devis.debut_travaux or '…………………………' }}
Client

{{ devis.client.nom or 'Nom du client à compléter' }} {%- if devis.client.adresse %}
{{ devis.client.adresse }}{% endif %} {%- if devis.client.telephone %}
{{ devis.client.telephone }}{% endif %}

Objet des travaux

{{ devis.type_travaux or 'Nature des travaux à préciser' }}. {%- if devis.client.adresse_chantier %}
Chantier : {{ devis.client.adresse_chantier }}{% endif %} {%- if devis.taux_tva in (taux_reduit, taux_renovation_energetique) %}
Logement d'habitation achevé depuis plus de deux ans.{% endif %}

{%- else %} {{ entete_courante('Devis ' ~ devis.numero ~ ' · suite') }}
{%- endif %} {{ entete_tableau() }} {{ lignes_tableau(bloc) }} {%- if cloture_ici %}{{ note_dague() }}{% endif %}
{%- if cloture_ici %} {{ cloture() }}
{{ bon_pour_accord() }} {{ pied_courant(loop.index) }}
{%- else %} {{ pied_courant(loop.index) }} {%- endif %}
{%- endfor %} {# ---- observations trop longues pour la clôture, en pleine largeur ----- #} {%- for tranche in pages_observations %}
{{ filigrane() }} {{ entete_courante('Devis ' ~ devis.numero ~ ' · observations') }}
Observations
{%- for note in tranche %}
—

{{ note }}

{%- endfor %}
{{ pied_courant(pages | length + loop.index) }}
{%- endfor %} {# ---- page de clôture, quand elle ne tient pas sous le tableau --------- #} {%- if not cloture_sur_derniere %}
{{ filigrane() }} {{ entete_courante('Devis ' ~ devis.numero ~ ' · récapitulatif') }}
{{ note_dague() }}
{{ cloture() }} {#- Sur sa page à elle, la clôture n'a pas de tableau au-dessus : le bon pour accord suit les totaux au lieu d'être poussé en bas, sinon la page s'ouvre en deux. Seul le pied de page descend. #}
{{ bon_pour_accord() }}
{{ pied_courant(pages | length + pages_observations | length + 1) }}
{%- endif %} {# ---- mentions légales, toujours seules sur la dernière page ----------- #}
{{ filigrane() }} {{ entete_courante('Conditions générales') }}

Mentions légales et conditions

Validité

Le présent devis est valable {{ devis.validite_jours }} jours à compter de sa date d'émission, soit jusqu'au {{ devis.date_validite | date_longue }}. Passé ce délai, les prix des fournitures et de la main-d'œuvre pourront être révisés.

Conditions de règlement

{%- if devis.client.professionnel %}

Acompte de {{ devis.acompte_pct | pourcent }} % à la commande, soit {{ devis.montant_acompte | euro }}, solde à la réception des travaux. Règlement par {%- else %}

Acompte de {{ devis.acompte_pct | pourcent }} %, soit {{ devis.montant_acompte | euro }}, exigible après 7 jours à compter de la signature du devis (art. L221-10 du Code de la consommation), solde à la réception des travaux. Règlement par {%- endif %} virement ou par chèque. Aucun escompte n'est accordé pour paiement anticipé.

{#- Le paragraphe ci-dessus demande un virement : sans coordonnées bancaires, il demande au client de deviner où payer. L'IBAN n'apparaît que s'il est réellement renseigné — un RIB à zéros serait pire que pas de RIB du tout. #} {% if e.iban and '0000 0000 0000' not in e.iban %}

Virement : {{ e.iban }}

{% endif %}

Pénalités de retard

{#- Le taux BCE majoré et l'indemnité de 40 € ne valent qu'entre professionnels. Face à un particulier, c'est le droit commun : l'intérêt au taux légal. #} {%- if devis.client.professionnel %}

En cas de retard de paiement, des pénalités au taux d'intérêt appliqué par la Banque centrale européenne à son opération de refinancement la plus récente, majoré de dix points, seront exigibles sans mise en demeure préalable, ainsi qu'une indemnité forfaitaire de 40 € pour frais de recouvrement (art. L441-10 et D441-5 du Code de commerce).

{%- else %}

En cas de retard de paiement, les sommes dues porteront intérêt au taux légal à compter de la mise en demeure (art. 1231-6 du Code civil).

{%- endif %}

Taux de TVA

{%- if e.franchise_tva %}

TVA non applicable, art. 293 B du CGI. L'entreprise relève de la franchise en base de TVA : les montants du présent devis s'entendent sans TVA.

{%- elif devis.taux_tva == taux_renovation_energetique %}

TVA au taux réduit de {{ devis.taux_tva_libelle }} % appliquée conformément à l'article 278-0 bis A du Code général des impôts, les travaux portant sur l'amélioration de la qualité énergétique d'un local à usage d'habitation achevé depuis plus de deux ans. En signant le présent devis, le client atteste que ces conditions sont remplies.

{%- elif devis.taux_tva == taux_reduit %}

TVA au taux réduit de {{ devis.taux_tva_libelle }} % appliquée conformément à l'article 279-0 bis du Code général des impôts, les travaux portant sur un local à usage d'habitation achevé depuis plus de deux ans. En signant le présent devis, le client atteste que cette condition est remplie.

{%- else %}

TVA au taux normal de {{ devis.taux_tva_libelle }} %, les travaux ne relevant pas des taux réduits prévus aux articles 278-0 bis A et 279-0 bis du Code général des impôts.

{%- endif %}

Droit de rétractation

{%- if devis.client.professionnel %}

Le client professionnel ne bénéficie du droit de rétractation que dans les cas prévus à l'article L221-3 du Code de la consommation.

{%- else %}

Pour un contrat conclu hors établissement ou à distance, le client dispose d'un délai de quatorze (14) jours à compter de la signature du devis pour se rétracter, sans avoir à se justifier (art. L221-18 du Code de la consommation). Il notifie sa décision au moyen du formulaire ci-dessous ou de toute autre déclaration dénuée d'ambiguïté. S'il a demandé que les travaux commencent avant la fin de ce délai, il doit, en cas de rétractation, un montant proportionné aux travaux exécutés jusqu'à sa décision (art. L221-25).

{%- endif %}

Assurance décennale

{#- Tout tel que saisi (loi 96-603, art. 22-2) : la couverture géographique se lit dans le contrat de l'artisan, elle ne se suppose pas. Sans assureur, la phrase n'affirme pas que l'entreprise est assurée. #} {%- if e.assurance %}

Entreprise assurée au titre de la responsabilité civile décennale auprès de {{ e.assurance }}, {{ e.assurance_coordonnees or "coordonnées de l'assureur à compléter" }}, police n° {{ e.assurance_police or 'à compléter' }}. Couverture géographique du contrat : {{ e.assurance_couverture or 'à compléter' }}.

{%- else %}

Assurance de responsabilité civile décennale : assureur, coordonnées de l'assureur, n° de police et couverture géographique à compléter.

{%- endif %}

Médiation de la consommation

{#- Nommé, avec son site (art. R616-1) : une phrase sur « le médiateur dont relève l'entreprise » paraît conforme et ne dit au client à qui s'adresser. #}

En cas de litige n'ayant pas trouvé d'issue amiable, le client peut recourir gratuitement au médiateur de la consommation dont relève l'entreprise : {{ e.mediateur or 'médiateur à compléter' }}, {{ e.mediateur_site or 'site internet à compléter' }} (art. L612-1 et R616-1 du Code de la consommation).

Réserves

Les travaux non décrits au présent devis, notamment les reprises de maçonnerie, d'électricité ou de plâtrerie révélées en cours de chantier, feront l'objet d'un devis complémentaire soumis à l'accord du client.

{%- if not devis.client.professionnel %} {#- Le formulaire type de l'annexe à l'article R221-1, texte officiel inchangé. Sans lui, le délai de rétractation est prolongé de douze mois (art. L221-20). Seul l'en-tête « à l'attention de » est rempli : c'est au professionnel de le faire. #}

Formulaire de rétractation

(Veuillez compléter et renvoyer le présent formulaire uniquement si vous souhaitez vous rétracter du contrat.)

À l'attention de {{ e.nom }}, {{ e.adresse or 'adresse à compléter' }}, {{ e.code_postal_ville or 'code postal à compléter' }}{% if e.email %}, {{ e.email }}{% endif %} :

Je/nous (*) vous notifie/notifions (*) par la présente ma/notre (*) rétractation du contrat portant sur la vente du bien (*)/pour la prestation de services (*) ci-dessous :

Commandé le (*)/reçu le (*) :

Nom du (des) consommateur(s) :

Adresse du (des) consommateur(s) :

Signature du (des) consommateur(s) (uniquement en cas de notification du présent formulaire sur papier) :

Date :

(*) Rayez la mention inutile.

{%- endif %}