Accéder au contenu principal

Mise en place des fonctions d'acquisition de livres: gestion des dépendances, des variantes de produits et établissement de liens entre deux modèles

Bonjour et bienvenue!

Dernièrement je vous présentais comment implémenter les fonctionnalités de consultation des livres. En gros, il s'agissait d'écrire un modèle qui enregistre des livres et sur lequel on peut faire des éditions et des suppressions. Vous pouvez consulter l'article en question ici!

Si vous êtes débutant et venez tous juste de nous rejoindre, je vous invite plutôt à commencer ici!

OK! Aujourd'hui nous allons commencer la mise en place des fonctions d'acquisitions des livres. Pour vous permettre de comprendre, mettez-vous à la place d'un libraire qui, après avoir enregistrer les livres qu'il va vendre dans sa bibliothèque, décide maintenant de les acquérir. Pour ce faire, il doit enregistrer ses produits ou articles (livres), puis ses fournisseurs. Ensuite, il devra passez par un bon de commande pour passer sa commande auprès du fournisseur avant de les recevoir dans son stock.

Maintenant, et si je vous disais qu'actuellement, Odoo me permet de faire cette opération, sans aucune difficulté, comme ça de manière native? Et oui! c'est vrai. Rien qu'en installant les modules Achats (purchase) et Inventaire (stock), je peux le faire.

Vous allez me demander: mais pourquoi dois-je alors développer une telle fonctionnalité?

Et à moi de vous répondre:
  1. Vous faites un module personnalité de gestion de bibliothèque, votre client ne doit faire aucune autre action. Il doit ouvrir son logiciel, aller sur son module et faire ses manipulations.
  2. Vous faites une intégration ERP; et qui dit intégration ERP dit respect des procédures clients. Votre client vous demande de l'aider à exécuter les tâches qu'il fait tous les jours via son poste de travail.
  3. L'ergonomie et la personalisation. Odoo fait tout et vous devrez le personnaliser selon les besoins de votre client, rien de plus!
J'en profite alors pour vous dire ce qu'on fera dans ce tutoriel

  1. Permettre l'installation des modules Achats (purchase) et Inventaire (stock) lors de l'installation du module de gestion de librairie (oo_library)
  2. Joindre les  livres qui ont été enregistré aux articles (product.product). J'en profiterai pour vous expliquer la différence qu'il y'a entre les modèles product.product et product.template
Passons maintenant aux choses sérieuses

1. Comment installer les modules Achats (purchase) et Inventaire (stock) lors de l'installation de notre module?


C'est simple. Ouvrez le fichier __manifest__.py qui présente les caractéristiques du module (dans un dictionnaire Python). Vous verez qu'au niveau de la clé depends il y'a une liste comme ceci:

'depends': ['base', 'sale_management', 'purchase', 'stock'],

Cette liste est la liste des modules dont dépends notre module personnalisé. Par conséquent, tous ces modules sont installés lors de l'installation du module oo_library. Ici, vous verez les modules suivant:
  • base: le noyau d'odoo comportant les modèles avec res (res.users, res.partners, etc...), ainsi que plusieurs autres fonctionnalités (suppression, création, modification, import, export, impression, etc...) et l'affichage.
  • sale_management: pour la gestion des ventes
  • purchase: gestion des achats
  • stock: gestion de stock

2. Nous allons maintenant établir un lien entre les articles et les livres qui ont été enregistrés


Avant de continuer, notez d'abord cette différence entre les modèles product.product et product.template


  • le modèle product.product contient tous les articles stockables qu'on peut manipuler. Ces articles peuvent être attribués à des variantes: on dit qu'il liste les variantes du produit.
  • le modèle product.template lui, permet de contenir les informations qui sont identiques aux variantes.

En effet, il est possible sur Odoo de créer des variantes de produits. Par exemple le produit stylo contient des variantes stylo rouge et stylo bleu. Du coup, si vous créez un produit (Stylo) en utilisant la modèle product.template, le même produit (Stylo) sera créé au niveau du modèle product.product, vous permettant ainsi d'enregistrer les variantes rouges et bleues.


Comment activer les variantes de produits sur Odoo?

C'est simple: vous pouvez utiliser les variantes de produit dans Odoo en activant "Attributs et variantes" dans le menu Ventes / Configuration.




Ainsi, comme on peut avoir plusieurs versions (tome) d'un même livre, nous allons plutôt créer un product.template.

Dans le dossier views, créer le fichier oo_product_template.xml. Ici, oo représente les initiales de mon module et product_template représente le modèle sur lequel je vais travailler. 

Pour que votre code soit propre et facile à maintenir, optez toujours pour la méthode un modèle pour un fichier.

Le but de cette section est de faire apparaître le menu Articles présent dans Achats au niveau de MaLibrairie. Pour celà, nous allons faire un héritage de vues.

Comment hériter d'une vue sur Odoo?


Il faut tout d'abord être capable repérer le xml_id 


En effet, le xml_id est l'élément qui identifie un composant (action, menu, vue, etc...) sur Odoo. Par exemple, pour repérer le xml_id de l'action qui va ouvrir la formulaire des Articles, voici la procédure à suivre et il en est de même ou presque pour tous les autres composants.
  1. Activer le mode développeur
  2. Cliquer sur le menu en question (Menu Articles dans le modules Achats)
  3. Cliquer sur Ouvrir les outils de développement (il s'agit du petit insecte situé tout juste à côté de votre nom de profil à l'extrême droite)
  4. Cliquer sur modifier l'action et noter la valeur de ID Externe (c'est le xml_id de l'action: purchase.product_normal_action_puchased)


Maintenant on va récupérer le xml_id de la vue (l'ID de la vue formulaire du menu Articles)
  1. Cliquer sur le bouton create
  2. Cliquer sur Ouvrir les outils de développement 
  3. Cliquer sur Modifier la vue formulaire et noter la valeur de l'ID externe (product.product_template_only_form_view



On peut alors passer au code

Nous allons surcharger le modèle product.template (par héritage et faire le lien avec nos livres présents dans le modèle oo.consultation)



N'oubliez pas d'importer ce nouveau fichier dans le dossier models/__init__.py

from . import oo_product_template

Ensuite, nous allons surcharger la vue proprement dite et afficher le livre après le champs Catégorie




N'oubliez pas d'inclure le fichier dans __manifest__.py

'data': [
        'data/menu.xml',
        'views/oo_consultation_view.xml',
        'views/oo_product_template.xml'
    ],

Je vais m'arrêter ici pour aujourd'hui. Prenez la peine de mieux assimiler tout ce qui a été dis jusqu’à aujourd'hui et la prochaine fois nous allons continuez sur la gestion du processus d'achat et l'entrée des produits en stocks.

Découvrez le code source de ce module ainsi que d'autres modules ici

Sur ce, 
A+!

Commentaires

Posts les plus consultés de ce blog

Tout savoir sur les modèles et les vues

Hello! Aujourd'hui nous allons passer aux choses sérieuses. Il s'agit ici d'un  article très important qui fera de vous une personne capable de tout modifier sur Odoo.  Oui oui! J'ai bien dit tout modifier car mettez bien dans votre tête qu'avec Odoo on peut tout  faire (Yvan Yelizariev)! Je vous prie de vous concentrer, et de  faire les manipulations que je vais vous montrer! En ce moment, ce que vous allez faire c'est créer un module Odoo puis démarrer votre instance. Ensuite, installez le module point_of_sale et cliquez sur le menu Products. Le reste, on le fera ensemble!

Présentation d'un module Odoo de gestion de bibliothèque: comment développer un tel module?

Hello! Aujourd'hui nous allons continuer notre apprentissage d'Odoo en passant par la phase pratique. Nous allons ensemble développer un module de gestion de bibliothèque et donc le code source sera disponible sur un serveur Git. Le module que nous mettrons en place fera intervenir les modules de gestion de stocks, achats et ventes. Nous implémenterons entre autres des modèles et vues personnalisés, des rapports et des workflows. Bref, ce module vous donnera toutes les techniques et méthodes dont vous aurez besoin pour devenir un développeur Odoo chevronné.

Documentation technique du POS Odoo

Bonjour tout le monde et bienvenue dans la documentation technique du POS Odoo!
Je vais vous proposer ici un ensemble d'articles qui vont permettre d'apprendre à utiliser et personnaliser le module du point de vente sur Odoo. Je souhaite donc savoir concrètement les problèmes que vous rencontrez sur la mise en place du POS afin de vous apporter des réponses pertinentes!
J'attends vos commentaires ci-dessous!