Structuration devis

Bonjour,
Lorsque l’on crée un devis, il est souvent intéressant de le structurer avec chapitre ou texte d’explication. Dans certains logiciels, cela se fait avec des lignes d’articles libres intercalé entre les articles eux-mêmes. Peut-on le faire avec Dokos, sinon cette possibilité est-elle prévu ou comment peut-on le faire ? Cela permet d’avoir une meilleure lisibilité pour le client.

Ou y a -t-il la possibilité d’écrire des articles éphémères qui sont uniquement liés au devis ?

Merci d’avance pour la réponse

Autre question, est-il possible de faire des chapitres avec des sous-totaux ?
Merci

Bonjour @oryxr,

Dans Dokos il n’est pas possible d’ajouter une ligne de texte libre entre deux articles. Toutes les lignes sont obligatoirement associées avec un article; par contre celui-ci peut être générique.

Aujourd’hui il existe plusieurs manières de formater son tableau de facturation et d’ajouter du texte libre sur son devis/facture:

  1. Il est possible d’ajouter un champ de type “Petit Texte” juste au dessus du tableau d’articles pour mettre un paragraphe de présentation par exemple.

  2. Il est possible d’ajouter des titres juste au dessus des lignes d’articles sur le format d’impression:
    Formats d'impression | Dokos

  3. Il est possible de créer un format d’impression sur mesure, en Jinja, pour afficher des totaux et sous-totaux. Dans ce cas, il faut développer votre propre version du tableau d’article imprimé sur PDF (via un champ de type HTML personnalisé dans l’éditeur de format d’impression).
    Voici le code d’affichage standard des articles pour info: erpnext/templates/print_formats/includes/items.html · develop · Dokos / Dokos · GitLab

Merci, Je suis en train de faire un modèle jinja de devis.
Du coup j’ai une question :
Comment est géré les acompte a la commande.
Je ne trouve que les calendriers de paiement dans termes de payement avec des dates d’échéance à mettre. Comme c’est un devis, je ne sais pas encore quand je vais faire la facture.

Et comment faire pour avoir la structure “doc” pour permettre d’aller chercher où il faut les variables ?
Pour faciliter la saisie jinja, par exemple:

{% if doc.customer_address %}
            {% set client_address = frappe.get_doc("Address", doc.customer_address) %}
{% endif %}

Merci d’avance pour ton aide et tes conseils

Bonjour Pierre,

Sur ton devis tu peux décider de ne pas imprimer la date d’échéance de paiement que tu as renseignée dans Dokos et uniquement les pourcentages de factuation associés à la description de tes termes de paiement. Comme ça la date ne pose pas de problème si tu ne la connais pas.

Sinon, une fois le devis validé, tu peux créer une commande en partant de ton devis. Depuis la commande, tu pourras créer une facture en cochant la case “facture d’acompte” pour facturer un acompte.

L’objet doc correspondant au document de référence: ici à ton devis.
Tu peux accéder à l’ensemble des champs disponibles dans un devis en cliquant sur le Menu (…) > Personnaliser
Ensuite tu peux les utiliser comme dans ton exemple: doc.[le_nom_du_champ]

Bonne journée !

Merci,
Et comment aller chercher les données complémentaires dans les sous-tables pour avoir des éléments plus précis ?
Par exemple ci-dessous le champ comportant le pourcentage ?

Je pense avoir compris, voila comment j’ai procéder :

{% if doc.payment_schedule %}
                {{ doc.payment_schedule[0].invoice_portion or "" }}
{%- endif -%}

De plus ci-dessous, on va chercher des infos dans une autre base.

Du coup, cela marche en basculant d’un document à l’autre et en se basant sur le champ du document avec la table qui correspond dans l’adresse du site (après app):

https://nondomaine.io/app/customer

J’espère que ça pourra aider d’autres

Désolé, encore une question:

  • comment arrondir les montants à 2 chiffres après la virgule ?

De manière générale, le nombre de chiffres après la virgule peut être déterminé à deux niveaux:

  • Dans les paramètres système
  • En personnalisant les champs qui ne suivent pas la règle générale et en changeant la Précision

En Jinja, il est possible d’utiliser la fonction frappe.utils.fmt_money pour formatter les champs en devise.
Ex: frappe.utils.fmt_money(doc.grand_total or '', currency=doc.currency)

Je l’ai rajouté dans la documentation Jinja: API Jinja | Dokos

Bonne journée !