Personnalisation des rapports py3o dans Odoo

Le module report_py3o, qui facilite la génération de rapports dans Odoo, peut être aisément personnalisé au moyen de quelques lignes de code. XCG a récemment introduit une fonctionnalité de regroupement des articles par catégorie, qui permet d’améliorer la présentation des devis.

 

Modification des modèles de document via report_py3o

Pour faciliter la génération de documents depuis Odoo, nos équipes ont développé le module report_py3o, qui permet d’utiliser les fonctionnalités de py3o.template dans l’ERP. Les entreprises ont besoin de soumettre à leurs clients des documents commerciaux à la présentation soignée et professionnelle. Les personnalisations souhaitées peuvent être facilement réalisées au moyen de quelques lignes de code en Python dans le module report_py3o (les lignes de code sont à ajouter dans le module et non pas directement dans le template afin de ne pas surcharger le modèle de document). Nos équipes ont ajouté des fonctions dans le code du module afin d’améliorer la structure des devis Odoo.

Voici un aperçu d’une fonction en Python permettant de classer les articles par catégorie dans le devis :
 

Code pour classer des articles par catégorie
 
 

La fonction du code Python précédent est ensuite appelée avec une courte ligne de code depuis le modèle de devis :
 

Appel du code depuis le modèle de devis

 

Le calcul des sous-totaux par catégorie peut être effectué au moyen du code suivant à ajouter dans le module :
 

Calcul des sous totaux

 

Grâce à l’appel de ces fonctions depuis le modèle de devis, les sous-totaux de chaque catégorie seront calculés puis affichés dans les encadrés jaunes ci-dessous :


Appel du code qui calcule les sous totaux


 

Conception d’un template allégé en code

Le code qui définit les fonctions visant à personnaliser les rapports py3o est à écrire dans le module report_py3o. Dans le modèle définissant la structure du devis, le développeur se contentera d’appeler les fonctions déclarées dans le module au moyen de lignes de code brèves. Cela permet d’alléger le code à inscrire dans le modèle. Certaines informations mineures telles que la monnaie (ici « EUR ») et le format d’affichage des prix (ici « FR ») peuvent être définies directement dans le template.
 

Code du modèle de devis allégé
 

Voici un aperçu du rendu obtenu :
 

Aperçu du document final

 

L’outil de reporting py3o.template est constamment amélioré grâce aux diverses contributions de la communauté Open Source. N’hésitez pas à l’utiliser, à contribuer et/ou à faire appel à nos services pour l’intégrer dans le cadre d’un projet plus global.

 

Contactez-nous !

 

Crédit icône de l’image postée sur les réseaux sociaux : Freepik sur flaticon.com - CC 3.0 BY