Création d'une application métier spécifique

Bonjour, je souhaiterai créer une application métier spécifique et l’intégrer à Dokos,
Afin de ne pas aller dans le mur, pouvez vous m’indiquer les étapes à suivre pour mettre en place la base de l’appli (icone dans le menu à gauche et/ou l’intégration dans des formulaires existants).

L’objectif de cette application est de réaliser une note de dimensionnement d’une installation de chauffage qui doit être intégré au devis.
Il faudra remplir un formulaire et cela donnera le résultat après quelques opération et le tout mis en page et intégré dans la présentation du devis.

Merci d’avance pour vos conseils.

1 « J'aime »

Bonjour @oryxr,

Voici quelques pistes génériques pour créer une note de dimensionnement.
Je te propose d’essayer et de poster ici l’avancement de tes personnalisations et tes questions pour que je puisse t’aider sur des points plus spécifiques.

Nouveau type de document

Le plus simple est de commencer par créer un nouveau type de document contenant les champs nécessaires à la note de dimensionnement.

Pour ça, il faut aller dans “Type de document” et en créer un nouveau (Understanding DocTypes).

Scripts

La deuxième étape va être d’ajouter la logique permettant d’effectuer les calculs et d’en enregistrer le résultat dans le formulaire.
Pour ça il y a deux outils: les scripts clients et les scripts python.
Les script clients (Client Script) permettent d’effectuer des actions “en temps réel” dans l’interface utilisateur.
Par exemple, si on modifie la valeur d’un champ, ça va immédiatement effectuer un calcul et remplir un autre champ.

Les scripts python (Scripts Python | Dokos) permettent de déclencher des actions côté serveur, lors de certain événements.
Par exemple, quand on enregistre le document on veut que tous les calculs soient effectuées et les valeurs mises à jour dans le document.

Idéalement on utilise les deux types de script de manière complémentaires.

Liaison entre les documents

La troisième étape sera de lier la note de dimensionnement avec le devis.
Si la liaison se fait côté “Note de dimensionnement” (1 note de dimensionnement ne peut être liée qu’à un seul devis), dans ce cas il faut ajouter un champ de type “Lien” dans la note de dimensionnement avec “Quotation” dans les options pour avoir accès à la liste des devis.
Dans ce cas tu peux ajouter un lien vers les notes de dimensionnement associées aux devis en personnalisant le type de document “Devis” et en ajoutant une entrée dans le tableau des liens dans la section “Etats du document”.

Si la liaison se fait côté Devis, il faut décider si c’est au niveau de l’en-tête (une note de dimensionnement par devis) ou au niveau des lignes de devis (une note par ligne de devis).
Ensuite il faut personnaliser le bon type de document (Devis ou Article du devis) pour ajouter un champ de type Lien pointant vers les Notes de dimensionnement (dans le champ options).
Dans ce cas tu peux ajouter un lien dans le tableau de bord des notes de dimensionnement en ajoutant une ligne dans le tableau de Liens des Notes de dimensionnement.

Format d’impression

Une fois les documents liés, il est possible d’ajouter un champ HTML (Formats d'impression | Dokos) dans le format d’impression du devis et de récupérer la ou les notes de dimensionnement liées au devis pour imprimer leurs données.
Ex.

# On récupère la note de dimensionnement
{% set note_dimensionnement = frappe.get_doc("Note de dimensionnement", doc.note_dimensionnement) %}

# Ensuite pour afficher le champ resultat
{{ note_dimensionnement.resultat }}

Il est aussi possible d’ajouter des champs personnalisés dans le devis, qui reprennent directement les données de la note de dimensionnement grâce à l’option Récupérer depuis le champ
Ex. note_dimensionnement.resultat
image

Ca évite d’avoir à écrire du jinja dans le format d’impression.
Dans ce cas le champ resultat sera disponible directement dans l’éditeur de format d’impression.

Créer un espace de travail

Pour créer un espace de travail, il faut cliquer sur le bouton Créer un espace de travail
image

Ensuite tu peux ajouter un raccourci vers ton type de document Note de dimensionnement par exemple

Module personnalisé

Idéalement, si tu prévois d’exporter tes personnalisations à l’avenir (depuis/vers un site de test par exemple), tu peux créer un module (type de document Module Def) et associer tous les éléments que tu crées à ce module.
Ca permettra notamment de créer un paquet, mais je te propose de traiter ce sujet dans un second temps… :wink:

Bonne journée !

1 « J'aime »

Super, merci pour les infos je vais tenter et revenir ici si j’ai des question.