Skip to main content

[tech] Présentation générale Odoo Transfo

Voici toutes fonctionnalités ajoutées à Odoo concernant les métiers de transformation alimentaire et artisanale dans Odoo.
Tous nos développements sont en licence libre, réutilisable, modifiable, améliorable à votre convenance.

📋 Les Nomenclatures deviennent des Fiches Techniques alimentaires

Dans l'alimentation, on parle pas de nomenclature (plutôt réservé à l'industrie) mais de Recettes ou encore de Fiches Techniques. C'est ce dernier terme qui a été retenu car il est utilisé par les professionnel·les.

Voici à quoi ressemble actuellement une Nomenclature/Fiche technique à Grap.

image.png

L'assemblage final de la vue de la Fiche Technique est géré dans le module custom de Grap dans ce fichier.


Référence unique de recette ✨

Un article peut être lié à plusieurs Fiches Techniques. On voulait avoir une référence unique pour retrouver de façon précise une recette.

À la création de la fiche technique, l'utisateur·rice appuie sur le bouton Définir la référence. En fonction du nom de l'article et du nombre de fiches techniques déjà liées, Odoo propose une référence unique composée du trigramme de l'activité - d'un trigramme du produit et du chiffre adéquate.
Exemple "MAT-AMA-1" : MAT car l'activité s'appelle Matisserie, AMA pour Amande et 1 car c'est la première fiche technique du produit.

Peek 12-04-2023 11-50.gif

Les Fiches Techniques nommés en XXX sont celles où l'utilisateur·rice n'a pas appuyé sur "Définir la référence"

image.png

Nouveaux champs code dans mrp.bom ,et tla dans product.product dans le modèle fourre-tout mrp_business


Tags colorés sur les fiches techniques 🎨

Nouveau modèle dans Odoo mrp.bom.tag  lié à mrp.bom qui permet de créer des tags à la volée sur une fiche technique.

Cela peut permettre retrouver plus rapidement et visuellement une information image.png
Ou de classer des articles en catégories car les tags peuvent être classés en arborescence. image.png

Module dédié mrp_bom_tag disponible ici https://github.com/grap/grap-odoo-custom/tree/12.0/mrp_bom_tag


Descriptions, gestion du poids et du temps 🌸

Ajout de plusieurs champs sur mrp.bom

Descriptions

Ajout de champ de Description description_short, Description longue description_long , Description de conditionnement description_packaging

Gestion du poids

Affichage du poids de chaque produit sur chaque ligne de fiche technique line_weight  et sa part dans la Fiche Technique - permettant de répondre à la question "quelle pourcentage de matière grasse" par exemple line_weight_percentage.
Le poids total de la recette est aussi affiché bom_components_total_weight.

Gestion du temps

Actuellement très simple, un champ libre pour écrire le temps nécessaire à la recette time_to_produce

Tous ces nouveaux champs sont dans le module temporaire fourre-tout mrp_business.


Saisonnalités, allergènes et labels ☀️

image.png

Saisonnalités

Nouveau modèle dans Odoo seasonality (lié à des seasonality.line)  qui permet de configurer des saisons classiques (printemps, été etc.) ou des saisons marchandes (Pâques, Noël) ou dire que c'est un produit de toute saison.

Modèle lié aux Fiches Techniques mrp.bom et aux Articles product.product pour faciliter des jeux de filtres, mettre un avertissement pour indiquer que "cette fiche technique n'est pas de saison" etc.

Selon la date du jour, Odoo affiche si l'Article ou la Fiche Technique est alors de saison ou non.

Exemple ici, nous sommes en avril et les framboises ne sont pas de saison, le reste oui

image.png

Allergènes

Ajout de champs d'allergènes (modèle product.allergen crée dans le module de Grap product_food) sur les lignes de fiche technique (composants) et sur la fiche technique elle-même.
Les allergènes de la fiche technique sont construits par concaténation des allergènes des composants et de l'article lié à la Fiche Technique.

Labels

Ajout de labels (bio par exemple) sur les lignes et la fiche technique elle même. Par contre, le label sur la fiche technique est à rentrer manuellement (pour ne pas rentrer dans la complexification de la labellisation d'une fiche technique).

Dans le module fourre-tout mrp_food : https://github.com/grap/grap-odoo-custom/tree/12.0/mrp_food


🥕 Informations de production sur les Articles

Ajout d'un onglet sur notre fiche article pour gérer les nouveaux champs liés à la production alimentaire.

image.png

Catégorie de repas 🍽️

Nouveau modèle Odoo mrp.meal.category très simple qui permet de catégoriser des articles par exemple en créant des catégories "Entrées", "Plats", "Desserts" . Utile pour imprimer un menu d'allergènes par exemple, ce qu'on verra plus bas

Actuellement dans le module temporaire mrp_business ici : https://github.com/grap/grap-odoo-custom/blob/12.0/mrp_business/models/mrp_meal_category.py

Saisonnalités, allergènes ☀️

Décrit plus haut pour la Fiche Technique.

Mercuriale 📜

Ajout de deux champs Relevé Prix date_last_statement_price et Fin mercuriale end_date_of_market_price_list qui vont avec l'ajout d'une vue Tree éditable.

Quand on modifie le Coût d'un article, le champ Relevé Prix se met à jour avec la date du jour. On peut alors indiquer une date de Fin mercuriale : Odoo indiquera en rouge quand la date sera dépassée, informant l'utilisateur·rice qu'iel doit peut-être revoir le coût de l'article.

Peek 12-04-2023 12-26.gif


🖇️ Impression de document

Tableau des allergènes

Nouveau module mrp_bom_print - au nom générique actuellement - qui permet actuellement d'imprimer un tableau d'allergènes des Fiches Techniques que l'on sélectionne. Quelques options disponibles, et notamment l'ordre des recettes sur le PDF conditionné par la "catégorie de repas" présenté juste en haut.

Nouveau module et visuels disponibles ici mrp_bom_print.


Générer une liste d'achats

Premier pas vers une connexion entre les Fiches Techniques et la gestion d'achats pour les cuisiner : le module permet de sélectionner ces Fiches Techniques, une certaine quantité, et d'avoir un rapport PDF avec les quantités de chaque matières premières. Quelques options sont disponibles.


Nouveau module et visuels disponibles ici mrp_bom_purchase.


💻 Écran, menus et actions simplifiés

Lien Fiche Technique - Article - Marge du prix de vente

Ajouter un modèle (le concept de BoM) pour calculer le coût d'un article n'est pas forcement intuitif et facile à prendre en main.
On a donc chercher à simplifier tout ça : depuis la Fiche Technique, on voit donc désormais des informations du Produit lié :  son Coût, son Prix de Vente, la marge actuelle, et on peut agir sur le Coût - ce qui paraît intuitif car on prend le coût de la Fiche Technique pour l'y appliquer.

1 : La recette est faite pour 100 pièces, mais l'article est bien à la pièce, un coefficient sera donc appliqué


2 : Le coût de cette Fiche Technique pour 1 pièce est de 0,98€


3 : Alors que le Produit lié à un Coût à 0,85€


4 : Et un Prix de Vente à 4,20€


5 :  Le bouton permet d'appliquer le nouveau coût

image.png

Le coût de la Fiche Technique que l'on voit a bien été appliqué au Produit. Reste à modifier le Prix de Vente selon la marge que l'on souhaite appliquer !

image.png

Nouveau module et visuels disponibles ici mrp_bom_sale_product_margin.


Matières premières 🥕 produits intermédiaires 🧩 et finis 🥧

Dans l'alimentaire, on peut avoir pas mal de cas différents. Pour simplifier la recherche de certains produits et Fiches Techniques, nous avons eu besoin de bien séparer les matières premières 🥕 des produits intermédiaires 🧩 des produits finis 🥧.

Matières premières 🥕

Carottes
Produit seulement intermédiaires 🧩

Une pâte à tarte
Produit intermédiaires 🧩 et produits finis 🥧

Légumes lacto-fermentés (que l'on vend en vrac)
Produits seulement finis 🥧
Bocal avec des légumes lacto-fermenté

Nos filtres Produits et Fiches Techniques dans Odoo

Ajout de champs sur
- product_product : is_component et is_intermediate dans mrp_food,
- mrp_bom : champ liés product_intermediate et product_finished liés au product

Filtre sur les produits
Doit respecter toutes ses conditions
Produits finis 🥧

sale_ok = True
bom_line_ids = False

 

Produit intermédiaires 🧩

used_in_bombom_line_ids = 1True and

bom_count > 0

Matières premières 🥕

used_in_bombom_line_ids = 1True and
bom_count = 0

On voit que :

  • matières premières et produits intermédiaires ne se recoupent (la différence est dans le fait d'avoir ou nonune fiche technique qui permet de calculer son coût)
  • produits intermédiaires et produits finis sont des catégories non excluantes :


Un menu "Gérer les prix" ordonnée

Le but est d'indiquer facilement les étapes et dans quel ordre :

  • 📜 1. D'abord on met à jour ces prix de matières premières
    • soit par "Matières Premières" qui permet de modifier directement le Coût d'un article
    • soit par "Prix fournisseur·es" qui permet de modifier une information fournisseur puis de l'appliquer au Coût de l'article
  • 📋 2. Puis on met à jour les coûts des Fiches Techniques
    • d'abord des Produits intermédiaires (exemple la fiche Technique de "pâte à tarte")
    • puis des Produits finis (exemple "Tarte à l'oignon" contenant la "pâte à tarte")
  • 🥧 3. Et enfin on met à jour les prix de vente de l'article vendu, lié à la bonne Fiche Technique

Chaque menu amenant à une vue arbre éditable ou avec des boutons d'actions

image.png

Ce menu est crée dans le module custom de Grap, notamment dans ce fichier.