SlideShare une entreprise Scribd logo
1  sur  84
Télécharger pour lire hors ligne
1
2
Dédicace
A mes très chers parents,
Aucun mot, aucune dédicace ne saurait exprimer mon
respect, ma considération
et l’amour éternel pour les sacrifices que vous avez déployés
pour mon instruction et mon bien être dans les meilleures
conditions.
A mes chères sœurs,
En témoignage de l’attachement,
de l’amour et de l’affection que je leurs porte.
A toute ma famille,
A tous mes chers amis,
A tous ceux qui m’aiment,
Je dédie ce travail…
Aicha OUALLA
3
Remerciements
Je tiens tout d’abord à remercier Dieu le tout puissant et miséricordieux, qui m’a donné
la force et la patience d’accomplir ce Modeste travail.
Je tiens à remercier toutes les personnes qui ont participé de différentes façons à la
réussite de mon stage et plus particulièrement les personnes que je cite ci-dessous.
Monsieur Mohamed EL KHAILI le directeur général de l’entreprise, pour m'avoir
accueilli dans la société Cayley Consulting.
Monsieur Zouhayr RICH mon encadrant de stage, qui m'a accordé de son temps malgré
leur planning chargé, ses efforts pour m’intégrer dans l’environnement de la réalisation
des projets informatiques et son dévouement et ses précieux conseils.
Monsieur Abdellatif N'AIT BOUJEMAA, mon encadrant de stage, pour sa gentillesse,
ses conseils et son orientation afin de mener ce travail jusqu’au bout au long de la
période du stage, qu’est passée dans des très bonnes conditions.
Monsieur Daiif mon encadrant de l’ENSET-Mohammedia pour leur disponibilité, leurs
directives et les conseils pertinents qui m’aprodigués tout au long de ce stage.
L’équipe pédagogique de L’Ecole Normale Supérieure de l’Enseignement Technique
de Mohammedia (ENSET-M), les professeurs du département Mathématiques et
Informatique, pour leur présence, leurs encouragements renouvelés et leurs
contributions tout au long de cette formation.
Je tiens également à exprimer l’honneur que me font les membres du jury pour avoir
accepté à m’encadrer et évaluer mon travail.
Finalement, je remercie tous ceux qui ont contribué de près ou de loin à la réalisation de
ce travail.
4
Résumé
Le présent rapport synthétise le travail effectué dans le cadre du projet de fin d'études
au sein de la société Cayley Consulting group, et qui est constitué de trois parties
principales :
Dans la première partie, je vais présenter le cadre général du projet. Pour
ce faire, je vais présenter, dans un premier lieu, l'entreprise d'accueil. Ensuite, j'introduis
les ERP et le progiciel Odoo utilisé dans cette entreprise, ainsi que la présentation du
projet : la problématique, les objectifs et la méthodologie du travail.
L’objectif de la deuxième partie est de présenter le module WMS (Warehouse
Management Systems) sous Odoo version 8, il permet de gérer le stock et l’entrepôt;
qui servent principalement à déterminer le niveau de stock de l’entreprise, et adresser le
produit reçu ou le produit fini au meilleur emplacement. Pour ce faire, j’ai tout d’abord
procédé à une analyse de l’existent. Ensuite, j’ai développé un module qui permet de
répondre aux différents besoins exprimés.
La troisième partie consiste à présenter l’application mobile pour les appareils Android,
qui permet de scanner le code barre à travers L’appareil photo du téléphone qui lit le
code barre d’un article et l’intègre. Pour cela, tout d’abord j’ai analysé d’une façon
profonde les besoins mentionnés afin de définir le périmètre du projet. Parallèlement,
j’ai procédé à une étude technique. Enfin, je me suis concentré sur la mise en œuvre et
le déploiement de l’ensemble des fonctionnalités.
Mots-clefs :
ERP, ODOO, WMS, inventaire, stock
5
Liste d’abréviations
Tableau 1: liste d'abréviation
Abréviation Désignation
ERP Enterprise Resource Planning
WMS Warehouse management systems
UML Unified Modeling Language
MVC Model Controller View
SGBDOR Système de gestion de base de
données objet-relationnel
XML Extensible Markup Language
2TUP Two Track Unified Process
XML-RPC XML- Remote Procedure Call
NTIC Nouvelles Technologies de
l'Information et de la Communication
BPO Business Process Outsourcing
BU Business Unit
6
Liste des figures
Figure 1: fleur de Lovelock .................................................................................................................... 14
Figure 2: logo de cayley consulting ....................................................................................................... 15
Figure 3: les services de Cayley consulting............................................................................................ 16
Figure 4: logo d'ODOO........................................................................................................................... 16
Figure 5: logo de pentaho ..................................................................................................................... 17
Figure 6: logo d'Alfresco........................................................................................................................ 17
Figure 7: les clients de Cayley Consulting.............................................................................................. 19
Figure 8: les partenaires de Cayley Consulting...................................................................................... 19
Figure 9: L'historique des versions d’Odoo........................................................................................... 21
Figure 10: structure d'un module ODOO .............................................................................................. 22
Figure 11: architecture MVC ................................................................................................................. 23
Figure 12: Cycle de développement en Y.............................................................................................. 26
Figure 13: Diagramme de Gantt............................................................................................................ 28
Figure 14:Les emplacements banalisés ou aléatoires........................................................................... 33
Figure 15:Les emplacements identifiés ou affectés.............................................................................. 33
Figure 16:Plan de l’entrepôt vu de haut................................................................................................ 34
Figure 17:compostion d'une adresse d'un emplacement..................................................................... 35
Figure 18: la fiche d'article .................................................................................................................... 36
Figure 19:Catégorie des produits.......................................................................................................... 37
Figure 20:Type de contenance .............................................................................................................. 37
Figure 21: Type de conditionnement .................................................................................................... 37
Figure 22: diagramme de cas d'utilisation global.................................................................................. 40
Figure 23:Diagramme de cas d’utilisation « Gérer article ».................................................................. 44
Figure 24:Diagramme de cas d’utilisation « Gérer les emplacements »............................................... 44
Figure 25:Diagramme de cas d’utilisation « gérer les opérations »...................................................... 45
Figure 26: Diagramme de séquence « Authentification »..................................................................... 46
Figure 27: Diagramme de séquence « Afficher liste des articles » ....................................................... 47
Figure 28: Diagramme de séquence « Créer un article »...................................................................... 47
Figure 29: diagramme de séquence "La mise à jour d’un article" ........................................................ 48
Figure 30: Diagramme de cas d'utilisation "Générer le code barre" .................................................... 48
Figure 31: diagramme de séquence "Liste des mouvements "............................................................. 49
Figure 32: diagramme de classe de systeme......................................................................................... 50
Figure 33: Logo d'ubuntu ...................................................................................................................... 52
Figure 34: logo de PostgreSQL............................................................................................................... 53
Figure 35: logo de Python...................................................................................................................... 54
Figure 36:Page d’authentification......................................................................................................... 56
Figure 37:Installation des modules ....................................................................................................... 57
Figure 38:Tableau de bord .................................................................................................................... 57
Figure 39:Gestion d’achat ..................................................................................................................... 58
Figure 40: Bon de commande ............................................................................................................... 58
Figure 41:gestion des approvisionnements .......................................................................................... 60
Figure 42: Les mouvements de stock.................................................................................................... 60
Figure 43: Création d’un nouvel article................................................................................................. 61
Figure 44: Variante d’article.................................................................................................................. 61
Figure 45: Créer un entrepôt................................................................................................................. 62
7
Figure 46: Créer une nouvelle zone ...................................................................................................... 62
Figure 47: Créer l'allée........................................................................................................................... 63
Figure 48: Créer et identifier l’emplacement........................................................................................ 63
Figure 49: Diagramme de cas d’utilisation............................................................................................ 66
Figure 50: Diagramme de classe............................................................................................................ 67
Figure 51: Logo d'Android ..................................................................................................................... 68
Figure 52: Logo de java.......................................................................................................................... 69
Figure 53: Les interfaces d’authentification.......................................................................................... 70
Figure 54: Authentification OK.............................................................................................................. 71
Figure 55: lancement de scan................................................................................................................ 71
Figure 56: détection de code barre....................................................................................................... 72
8
Liste des tableaux
Tableau 1: liste d'abréviation.................................................................................................................. 5
Tableau 2: Fiche technique de Cayley Consulting.................................................................................. 18
Tableau 3: Comparaison des méthodes de développement ................................................................ 25
Tableau 4: les acteurs de systéme......................................................................................................... 40
Tableau 5: description de cas d’utilisation « Gérer les utilisateurs ».................................................... 41
Tableau 6:description de cas d’utilisation « Gérer les articles »........................................................... 41
Tableau 7:description de cas d’utilisation « Gérer les emplacements »............................................... 42
Tableau 8: description de cas d’utilisation « Afficher l'historique du mouvement» ............................ 42
Tableau 9: Description de cas d'utilisation "Etiqueter les articles" ...................................................... 42
Tableau 10: Description de cas d’utilisation « Gérer les opérations»................................................... 43
Tableau 11: description de cas d’utilisation « Réorganiser le stock» ................................................... 43
9
Table des matières
Introduction générale...............................................................................................................12
Partie 1 : Contexte général de mon projet de fin d’études ..................................................... 13
I. Présentation de la société............................................................................................. 14
2. Les services de Cayley Consulting Group......................................................................15
3. Fiche technique .........................................................................................................18
4. Les clients de Cayley Consulting Group.....................................................................19
5. Les partenaires de Cayley Consulting Group ............................................................... 19
II. ODOO, un progiciel libre de gestion intégré.................................................................20
1. Présentation générale des ERPs ................................................................................20
2. Vue d’ensemble du progiciel « Odoo » .....................................................................20
3. Architecture modulaire sous Odoo ...........................................................................22
III. Cadre général des projets.......................................................................................... 23
1. L’application mobile sous android « Gestion d’inventaire ».....................................23
2. L’amélioration du module WMS « Gestion d’entrepôt »..........................................24
3. Choix méthodologique .............................................................................................. 24
4. Planification des projets ............................................................................................ 28
Partie 2 : Amélioration du module WMS (Warehouse Management Systems) sous Odoo V8.
.................................................................................................................................................. 29
I. Préambule ..................................................................................................................... 30
II. Etude de l’existant.........................................................................................................30
1. Avantages de l’existant.............................................................................................. 31
2. Inconvénients de l’existant........................................................................................ 31
3. Spécification des besoins........................................................................................... 31
4. Conclusion ................................................................................................................. 31
I. La codification dans un entrepôt.................................................................................. 32
1. L’adressage des emplacements................................................................................. 32
2. La définition des articles............................................................................................ 36
3. La codification des articles ........................................................................................ 36
4. Conclusion ................................................................................................................. 38
I. Conception fonctionnel du système .............................................................................39
1. Les diagrammes de cas d’utilisation..........................................................................39
10
2. Diagramme de séquence........................................................................................... 46
3. Digramme de classes .................................................................................................50
4. Synthèse..................................................................................................................... 51
I. Technologies mises en œuvre....................................................................................... 52
1. Ubuntu....................................................................................................................... 52
2. PostgreSQL................................................................................................................. 53
3. Python........................................................................................................................ 54
4. XML............................................................................................................................ 55
II. Réalisation du système..................................................................................................56
1. Page d’authentification ............................................................................................. 56
2. Installation des modules............................................................................................ 57
3. Tableau de bord.........................................................................................................57
4. Gestion d’achat..........................................................................................................58
5. La gestion des approvisionnements..........................................................................60
6. Les mouvements de stock ......................................................................................... 60
7. Création d’un nouvel article ...................................................................................... 60
8. Variante d’article .......................................................................................................61
9. Créer un entrepôt......................................................................................................62
10. Créer une nouvelle zone........................................................................................ 62
11. Créer l’allée ............................................................................................................63
12. Créer et identifier l’emplacement .........................................................................63
Partie 3 : Réalisation d’une application mobile de gestion d’inventaire .................................64
I. Cahier des charges ........................................................................................................65
1. Présentation du projet............................................................................................... 65
2. Recueil des besoins fonctionnels...............................................................................65
I. Conception fonctionnel du système .............................................................................66
1. Diagramme de cas d’utilisation ................................................................................. 66
2. Diagramme de classe.................................................................................................67
3. Synthèse..................................................................................................................... 67
I. Technologies mises en œuvre....................................................................................... 68
1. Systéme d’exploitation Android................................................................................68
2. Java ............................................................................................................................ 69
II. Réalisation du système..................................................................................................70
11
1. L’interface d’authentification ....................................................................................... 70
3. Scanner article...........................................................................................................71
4. Actions en cours ........................................................................................................72
5. Action à venir.............................................................................................................72
Conclusion générale................................................................................................................. 73
Webographie & Bibliographie..................................................................................................74
Annexes....................................................................................................................................75
12
Introduction générale
La mondialisation consolide indéfiniment la compétition et la coopération entre les
différents acteurs du marché. Ainsi, l’entreprise doit continuellement développer et
améliorer sa méthode de pilotage et optimiser ses processus. Pour ce faire, l’ERP
demeure le choix le plus pertinents et le levier majeur de l’adaptabilité de l’entreprise.
Ce type de logiciel a considérablement évolué et les petites et moyennes entreprises sont
dorénavant des cibles par ce type de solutions.
Pour cette raison, la société Cayley Consulting Group, cherche à répondre aux besoins
et aux attentes des différentes petites et moyennes entreprises, qui visent à avoir une
meilleure solution pour la gestion de leurs processus.
La gestion des stocks est un élément essentiel de bonne gestion de l’entreprise. Il est
donc nécessaire d’utiliser des systèmes d’information assez efficace pour parvenir à
gérer convenablement les fluctuations de ses flux.
A cet égard, Cayley Consulting m’a proposé comme projet de fin d’études,
l’amélioration du module WMS (Warehouse Management Systems) sous Odoo V8.
En effet, un module WMS intelligemment intégré dans un système ERP peut donner des
directives aux collaborateurs logistiques d’une manière organisée et transparente,
cependant le module WMS du système ERP en question (OpenErp/Odoo) n’offre pas
les solutions adéquates à une bonne gestion logistique au niveau d’un entrepôt, il est
donc nécessaire de l’améliorer et de le reconcevoir selon les attentes des clients (PME)
en matière de gestion.
Le présent mémoire décrit donc l’essentiel du travail réalisé lors de mon stage. J’ai jugé
nécessaire de le structurer en 4 parties. Dans le premier, nous définissons le contexte
général de notre stage, à savoir, la présentation de l’organisme d’accueil, ainsi que la
présentation des projets, de leur déroulement et de la méthodologie suivie. Je vais aussi
donner un aperçu sur le progiciel Odoo V8.
13
Partie 1 : Contexte général de mon projet de
fin d’études
__________________________________________________________________________________
Cette première partie présente une vue générale sur mon projet de fin
d’études intitulé « Amélioration du module WMS sous ODOO et la
création d’une application mobile pour la gestion d'inventaire ». Elle se
compose de quatre chapitres :
 Le premier chapitre est consacré à la présentation de l’organisme
d’accueil.
 Le deuxième chapitre présente un aperçu sur le progiciel Odoo V8
 Cadre général des projets
 Le dernier chapitre présente la démarche suivie pour assurer son bon
déroulement dans les délais fixés.
14
I. Présentation de la société
2. Présentation de la société
Crée en janvier 2013, issue d’un concept nouveau de marketing pour commercialiser les services
aux entreprises, Cayley Consulting inspire ses prestations de la théorie de la fleur de Lovelock. En
effet, chaque prestation correspond à un savoir métier à la possession de Cayley Consulting
qu’elle peut griffer dans la chaine de valeur de son client.
En décortiquant la signification des pétales de la fleur de Lovelock et en mettant le client dans une
situation participative au développement du service offert, Cayley Consulting a pu mettre sa
stratégie au tour de quatre axes principaux :
 Conseil juridique et financier
 Dev.Com & BPO
 Conseil Process
 NTIC
Figure 1: fleur de Lovelock
15
2. Les services de Cayley Consulting Group
Les quatre axes sont détaillés sous forme de services rendus aux entreprises comme suit :
Conseil juridique et financier
Juridique entreprise
Tenue de comptabilité
Diagnostics financiers
Audit/Bilan
Valorisation
Dev.Com & BPO
Accompagnement commercial
CRM
Animation de compagnes
Représentation commerciale
Back office
Externalisation des activités
d’entreprise
Qualification de fichiers prospects
Figure 2: logo de cayley consulting
Conseil Process
Ingénierie Industrielle
Audit/Bilan énergétique
Valorisation des rejets et
déchets industriels
NTIC
Location d’applications
Développement d’applications
Web Design
Infogérance
Piloté par un responsable, chaque axe constitue un département géré d’une manière autonome
sous forme d’un Business Unit (BU).
16
2.1. BU BPO de Cayley Consulting
Le BPO permet de :
 Rendre les entreprises plus flexibles et de réduire les coûts d’exploitation;
 Enlever un poids administratif et donner la possibilité à l’entreprise de se concentrer sur
son cœur de métier;
 Céder les process non-stratégiques à un tiers;
 Eviter des investissements importants à la société;
 Réduire ses coûts salariaux;
 Bénéficier d’une expertise qu’elle n’aurait peut-être pas trouvée en interne.
 Apporter plus d’agilité et de réactivité à l’entreprise;
 Favoriser la conduite de changement et l’adoption de nouveaux business modèles
innovants.
2.2. BU NTIC
Cayley consulting offre aux clients des solutions dans les domaines suivants :
Parmi les solutions de Cayley consulting dans le domaine de NTIC :
Gestion Intégré (PGI / ERP) basé sur les dernières
technologies, Odoo est doté d’une flexibilité
unique. L’architecture modulaire d’Odoo permet
de débuter avec des fonctionnalités de base et de
croître en fonction de l’évolution de vos besoins.
Figure 3: les services de Cayley consulting
Figure 4: logo d'ODOO
17
construit le futur de l'analytique en liant
étroitement intégration de données et analytique
sur une plate-forme moderne qui permet au service informatique et aux utilisateurs d'accéder,
de visualiser et d’explorer facilement toutes les données stratégiques de l'entreprise.
Une plateforme Open-Source, évolutive de gestion
de contenu qui s'adapte aux besoins spécifiques de
votre entreprise. Basée sur des standards ouverts,
elle permet aux utilisateurs d'accéder à leurs
contenus depuis Internet, leur poste de travail, leur messagerie électronique, etc. L'accès et la
sécurité sont contrôlés par le serveur.
2.3. BU Conseil Process
Le département CONSEIL PROCESS est géré par un Responsable de Département en tant
que centre de profit de Cayley Consulting avec une autonomie de gestion des ressources
dédiées. Sous la direction d’un chef de projet, des consultants fonctionnels et techniques
assurent la communication avec les clients pour valider les besoins, délimiter le périmètre de
chaque mission et assurer la bonne marche de développement. Agissant en tant que Bureau des
études, le département CONSEIL PROCESS s’occupe aussi des actions R&D pour le compte
de ses clients privés ou publics.
Le BU CONSEIL PROCESS offre à ses clients les prestations de service suivantes :
 Ingénierie Industrielle
 Audit/Bilan énergétique
 Valorisation des rejets et déchets industriels
2.4. BU Dev’Com (Développement Commercial)
Le BU DEV’Com offre à ses clients les prestations de service suivantes :
 La gestion des relations client
 Conseil en stratégie marketing et commerciale
 Accompagnement à la création de marque
 Supervision et suivi commercial
Figure 5: logo de pentaho
Figure 6: logo d'Alfresco
18
 Administration des vents
3. Fiche technique
Le tableau ci-dessous représente la fiche technique de Cayley Consulting :
Raison social Cayley Consulting S.A.R.L
Forme juridique Société anonyme
Activité
* Conseil juridique et financier
* Dev.Com & BPO
* NTIC
* Conseil Process
Effectif
5 permanents et une dizaine de
consultants et freelance
Capital social 10 000,00 DH
Date et lieu de création 2013 à Mohammedia
Adresse
Immeuble Ouflé App. N°5 Bd Farhat
Hachad Mohammedia
Registre de commerce
C.N.S.S
Patente
Identifiant Fiscal
Lignes téléphoniques +212 (05) 23 32 63 69
Téléfax +212 (05) 23 32 60 89
E-mail contact@cayleyconsulting.com
Site web www. cayleyconsulting.com
Tableau 2: Fiche technique de Cayley Consulting
19
4. Les clients de Cayley Consulting Group
5. Les partenaires de Cayley Consulting Group
Figure 7: les clients de Cayley Consulting
Figure 8: les partenaires de Cayley Consulting
20
II. ODOO, un progiciel libre de gestion intégré
1. Présentation générale des ERPs
L’acronyme ERP signifie « Enterprise Ressource Planning » traduit en français par Progiciel
de Gestion Intégré ou PGI. C’est un progiciel qui permet de gérer l’ensemble des processus
d’une entreprise intégrant l’ensemble de ses fonctions comme la gestion des ressources
humaines, la gestion financière et comptable, l’aide à la décision, la vente, la distribution,
l’approvisionnement, la production ou encore le e-Commerce. On distingue deux types d’ERP:
les ERP propriétaires, édités par des sociétés, ce qui implique l’achat d’une licence, et les ERP
open source qui sont « gratuits ». Dans notre projet Nous nous intéressons à la catégorie des
ERP open-source et plus particulièrement à ODOO Version 8.
2. Vue d’ensemble du progiciel « Odoo »
Odoo est un progiciel de gestion d'entreprise (ERP) destiné à intégrer l'ensemble des données
opérationnelles et de gestion de l'entreprise dans une base de données unique, accessible par
une interface web.
Cette base de données centrale est associée à une couche fonctionnelle très innovante qui met
en relation des informations d'origines diverses et assure un déroulement efficace des processus
transversaux de création de valeur ajoutée de l'entreprise. Odoo, anciennement OpenERP et
Tiny ERP, est à la base un progiciel libre de gestion intégré comprenant de très nombreux
modules permettant de simplifier la gestion d’entreprise dans son ensemble. Le logiciel est sous
licence AGPL et est utilisé par plus de 2 millions d’utilisateurs à travers le monde. À l’origine
un ERP, le logiciel s’est vu étendre ses fonctionnalités à des applications de front office (CMS,
e-Commerce, Blogs, Forums, News, Événements, Live Chat, Job offers, etc). Il apporte les
applications métier dont chacun a besoin dans l'entreprise. Cette approche modulaire facilite
l'intégration de nouvelles fonctionnalités sous la forme de modules complémentaires.
2.1.Historique et notes des sorties
Le 20 janvier 2011, OpenERP SA annonçait le lancement de la version 6.0 du logiciel, qui
comprend une version à la demande (SaaS). Son approche modulaire permet aux utilisateurs de
commencer avec une application, puis d'ajouter d'autres modules selon leurs besoins. En
décembre 2012, la version 7.0 d'OpenERP est lancée et peut être testée en ligne, téléchargée ou
21
vue en version de démonstration. Mai 2014: OpenERP change de nom et devient Odoo. Eté
2014, Odoo lance la version 8. Cette version enrichit principalement le logiciel de nouvelles
applications qui font d’Odoo un logiciel allant au-delà d'un ERP. Ces applications sont:
Marketing (gestion d'événements, d'enquêtes de satisfactions, campagnes de mails auprès de la
CRM,...), CMS (construction d'un site internet - front-end lié au back-end - grâce au
déplacement rapide et simple de 'blocs" d'éditions), e-commerce (application pour vente en
ligne),...
 Première version stable : 2004
 Version stable actuelle : 8.0
 Version avancée : 9.0
Figure 9: L'historique des versions d’Odoo
2.2. Principales applications logicielles front office
 Créateur de site web et système de gestion de son contenu, CMS
 Vente en ligne, Ecommerce
 Interface de point de vente (PDV)
2.3.Principales applications logicielles back office
 Gestion de relation clients (CRM & SRM)
 Gestion des ventes
 Gestion de production
 Gestion de projets
 Gestion des stocks
 Gestion des ressources humaines
 Gestion des achats
22
 Gestion logistique
 Gestion de manufactures
 Gestion comptable
 Gestion des dépenses
 Gestion des documents
 Générateur de factures
 Gestion et outils marketing
3. Architecture modulaire sous Odoo
3.1.Structure d’un module d’Odoo
Tous les modules d’Odoo sont créés au-dessous du répertoire « odoo/odoo-server/addons »
Figure 10: structure d'un module ODOO
Un module sous odoo contient des fichiers obligatoires pour sa création et des fichiers optionnels
suivants
23
La conception d'Odoo est orientée par une architecture MVC qui est une architecture de
modèles utilisée en génie logiciel. Dans des applications complexes qui présentent des lots de
données aux utilisateurs, on souhaite souvent séparer les données (modèle) et l'interface
utilisateur (vue), de sorte que les changements à l'interface utilisateur n'affectent pas le
traitement des données, et que les données peuvent être réorganisées sans changer l'interface
utilisateur. Le MVC résout ce genre de problème en découplant l'accès des données et la logique
des applications de la présentation des données et de l'interaction utilisateur, en introduisant un
composant intermédiaire: « le contrôleur ». Sous Odoo, on peut appliquer cette sémantique de
Model View Controller avec :
 Model : les modèles sont les objets déclarés sous Odoo. Ils sont également des tables
PostgreSQL.
 View : les vues sont définies en fichiers XML dans Odoo.
 Controller : le contrôleur est les classes Python qui contrôle OpenERP.
III. Cadre général des projets
Le contexte de chaque projet est un point très important à prendre en considération lors de son
étude. La façon de gérer et de conduire un projet joue un grand rôle dans la détermination de
son résultat final. Dans cette partie, je présente les deux projets réalisés, ainsi que la
méthodologie de gestion et de conduite du projet suivies.
1. L’application mobile sous android « Gestion d’inventaire »
C’est une application mobile pour les appareils Android, dédiée à toutes les entreprises pour la
bonne gestion de stock qui facilite la réalisation des inventaires physique, cette application est
basée sur les codes-barres qui restent à ce jour une technologie la plus simple et la plus
économique. L’application permet de scanner de nombreux type de codes barre à travers
Figure 11: architecture MVC
24
L’appareil photo du téléphone qui lit le code barre d’un article et l’intègre. Pour cela, tout
d’abord j’ai analysé d’une façon profonde les besoins mentionnés afin de définir le périmètre
du projet. Parallèlement, j’ai procédé à une étude technique. Enfin, je me suis concentré sur la
mise en œuvre et le déploiement de l’ensemble des fonctionnalités.
2. L’amélioration du module WMS « Gestion d’entrepôt »
La gestion des stocks est un élément essentiel de bonne gestion de l’entreprise. Il est donc
nécessaire d’utiliser des systèmes d’information assez efficace pour parvenir à gérer
convenablement les fluctuations de ses flux.
Pour les besoins des clients j’ai développé des modules complémentaires Odoo-
OpenERP pour la gestion avancée d’entrepôt (WMS), et s’est tracé à atteindre les objectifs
suivants:
 Mettre en place des algorithmes de gestion d’inventaire et de stock permettant de
savoir précisément l’état des stocks et la localisation des produits.
 Concevoir une application mobile pour le scan des articles entreposés et des
emplacements.
 Prévoir un algorithme qui génère des codes à barre pour les articles et les
emplacements.
 Améliorer la traçabilité.
3. Choix méthodologique
3.1.Processus du développement
Pour bien mener notre mission, il est judicieux de suivre une démarche à la fois pragmatique
et structurée. En effet, cela mènera à produire des solutions informatiques de qualité
répondant aux besoins des utilisateurs, tout en respectant les délais, et en maitrisant les coûts
prévues. Avant d’adopter une méthode, il faut d’abord faire une comparaison entre les
différentes méthodes existantes, voir les points forts et les points faibles de chacune, puis
déterminer celle qui va mieux dans le contexte du projet.
25
Ci-dessous un tableau qui résume cette comparaison :
Description Points forts Points faibles
Rational
Unified Process
(RUP)
-Méthodologie centrée
sur l’architecture et
couplée aux diagrammes
UML
-Concerne des projets de
+10 personnes
-Processus complet
assisté par des outils
exhaustifs
-Itératif
-Spécifie le dialogue
entre les différents
intervenants du
projet : les livrables,
plannings et
prototypes…
-propose des
modèles de
documents, et des
canevas pour des
projets types
-Rôles bien définis,
modélisation
-Coûteux à personnaliser
-très axé processus, au
détriment du développement
-Lourd, largement étendu, il
peut être difficile à mettre en
œuvre de façon spécifique
-Convient pour les grands
projets qui génèrent beaucoup
de documentation
eXtreme
Programming
(XP)
-Développement guidé
par les besoins du client
-Equipes réduites,
centrées sur les
développeurs
-Itératif
-Simple à mettre en
œuvre
-Laisse une large
place aux aspects
techniques
-Builds journaliers
-Amélioration
constante adaptation
aux modifications
-Ne couvre pas les phases en
amont et en aval du
développement
-Assez flou dans sa mise en
œuvre : quels intervenants ?
quels livrable ?
-Focalisé sur l’aspect
individuel du développement,
ai détriment d’une vue
globale et des pratiques de
management ou de
formalisation.
Two Track
Unified Process
(2TUP)
- Articulé autour de
l'architecture
-Cycle de développement
en Y
-Convient aux projets de
toutes tailles
-Itératif, laisse une
large partie à la
technologie et à la
gestion du risque
-Définit les profils
des intervenants, les
livrables, les
prototypes
-Superficiel sur les phases en
amont et en aval du
développement
-Aucune proposition de
document type
Tableau 3: Comparaison des méthodes de développement
26
Pour le cas de mon projet, je me suis basé sur la méthodologie 2TUP, qui se base sur cinq
principes fondamentaux :
 Séparer les aspects fonctionnels et les aspects techniques.
 Travailler selon deux points de vue qui se complètent et s’enrichissent mutuellement ;
celui de l’entreprise, celui des applications.
 Modéliser l’activité de l’entreprise et des applications aux moyens d’objets en utilisant
UML.
 Faire des maquettes et des prototypes pour affiner les besoins fonctionnels et les
aspects techniques.
 Effectuer la réingénierie des applications dans le sens de la réutilisation.
Le schéma suivant montre bien le cycle en « Y » caractéristique de 2TUP.
Figure 12: Cycle de développement en Y
27
3.2.Langage de modélisation : UML
Une des phases clés dans le développement d'une application est sans doute la phase
de conception. Durant cette phase, nous allons essayer de présenter les principales
fonctionnalités à implanter, de réfléchir sur l'aspect structurel de l'application et de concevoir
les scénarios d'utilisation de l'application. Le but est de réduire la complexité du développement
et d'avoir une vision des différents angles de vues du système d'information.
Pour ce projet, on opte pour la notation UML.
UML est la forme contractée d'Unified Modeling Language, qui peut se traduire en
français par langage unié pour la modélisation. UML représente l'état de l'art des langages de
modélisation objet. Il fournit les fondements pour spécifier, construire, visualiser
et décrire un système. Pour cela, UML se base sur une sémantique précise et sur une
notation graphique expressive. Il définit des concepts de base et offre également des mé-
canismes d'extension de ces concepts.
UML n'est pas un langage propriétaire : il est accessible à tous les fabriquant d'outils, aussi les
entreprises peuvent en faire usage. La volonté d'ouverture, la richesse et la
notation de la définition sémantique précise des éléments de modélisation font d'UML un
langage général et simple, sans être simpliste pour autant.
Dans UML chaque diagramme permet d'exprimer certains points de vue d'un même
problème. La combinaison de plusieurs diagrammes permettra donc d'avoir une vue complète
du système. Ainsi en fonction du problème à résoudre, il convient de choisir les
diagrammes adéquats à utiliser. UML définit neuf types de diagrammes dont nous dé-
taillerons ceux que nous utiliserons dans la suite :
Diagramme de cas d'utilisation : Les cas d'utilisation décrivent le comportement
du système du point de vue utilisateur sous la forme d'actions et de réaction. Un cas
d'utilisation indique une fonctionnalité du système déclenchée par un acteur externe au
système. Ce genre de diagramme permet de mettre en place et de comprendre les besoins
du client. Dans le diagramme, interviennent trois éléments : les acteurs, le système et les
cas d'utilisations. L'acteur représente un rôle joué par une personne ou un autre système
qui interagit avec système en cours de modélisation. Un cas d'utilisation regroupe plusieurs
scénarios d'utilisation du système.
28
Diagramme de séquence : Les diagrammes de séquence permettent de représenter
des collaborations entre objet selon un point de vue temporel, on y met l'accent sur la
chronologie des envois de messages. Les diagrammes de séquences peuvent servir à illustrer
un cas d'utilisation.
Diagramme de classe : Le diagramme de classe est le point central du développement
orienté objet. En analyse, il a pour objectif de décrire la structure des entités manipulées
par les utilisateurs. En conception, le diagramme de classe représente la structure d'un
code orienté objet ou, à un niveau de travail plus important, les modules du langage de
développement.
4. Planification des projets
La planification du projet fait partie des phases d’avant-projet. Son rôle est de donner une
prévision du déroulement des tâches tout au long des phases constituant le cycle de
développement. J’ai procédé à une planification détaillée pour définir les tâches à réaliser, fixer
les objectifs et suivre l’état d’avancement des projets grâce aux réunions tenues avec
l’encadrant interne, j’ai été capable alors d’élaborer un planning bien ficelé. Ce planning était
sous forme d’un diagramme de Gantt et présente le planning prévisionnel du projet :
Figure 13: Diagramme de Gantt
Tout au long de la période de stage j’étais constamment assistée et suivie par mes encadrants
qui m’ont étaient d’une grande aide à chaque fois qu’un blocage ou ambigüité se présentait.
29
Partie 2 : Amélioration du module WMS (Warehouse
Management Systems) sous Odoo V8.
__________________________________________________________________________________
La deuxième partie de ce rapport est consacrée à l’étude fonctionnelle et
technique. Elle s’articule autour de quatre chapitres :
 Le premier chapitre présente une étude préliminaire visant à donner
une vue sur l’existant.
 Le deuxième chapitre présente l’étude fonctionnelle, à travers la
capture des besoins fonctionnels.
 Le troisième chapitre présente la conception du projet.
 Et le dernier chapitre présente la mise en œuvre.
 .
30
Etude préliminaire
I. Préambule
L’étude de l’existant est une étape clé dans la réalisation de n’importe quelle application
informatique, quel que soit le domaine concerné. Il s’agit d’une étude permettant de comprendre
la problématique du projet.
II. Etude de l’existant
La gestion des stocks est un élément essentiel de bonne gestion de l’entreprise. Il est donc
nécessaire d’utiliser des systèmes d’information assez efficace pour parvenir à gérer
convenablement les fluctuations de ses flux.
De nos jours, les PME Marocaines ont tendance à travailler avec des logiciels en mode SaaS
afin de centraliser, piloter et consolider les données. Dans ce cadre Cayley Consulting fournit
aux PME des solutions informatiques d’aide à la gestion en implantant un progiciel open-source
de gestion intégrée ERP qui inclut des modules WMS de gestion de stock et d’entrepôt; qui
servent principalement à déterminer le niveau de stock de l’entreprise, et adresser le produit
reçu ou le produit fini au meilleur emplacement.
En effet, un module WMS intelligemment intégré dans un système ERP peut donner des
directives aux collaborateurs logistiques d’une manière organisée et transparente, cependant le
module WMS du système ERP en question (OpenErp/Odoo) n’offre pas les solutions adéquates
à une bonne gestion logistique au niveau d’un entrepôt, il est donc nécessaire de l’améliorer et
de le reconcevoir selon les attentes des clients (PME) en matière de gestion.
Dans ce chapitre je présente une étude préliminaire sur le projet en
commençant par l’étude de l’existant, la problématique et enfin une
synthèse.
31
1. Avantages de l’existant
Les fonctionnalités qui existent en l’occurrence dans le WMS :
 La gestion du stock pour préparer et expédier les commandes clients.
 L’enregistrement des flux physiques (entrées, sorties)
 La mise à disposition des documents administratifs.
 La saisie et l’historisation des articles.
 Facturation entreposage et prestations logistiques (la saisie, l’exécution et la mise à jour)
2. Inconvénients de l’existant
Si le module WMS standard fournisse certains avantages mais Il renferme néanmoins plusieurs
manques au niveau de fonctionnalités de ce module dont la critique ne peut qu’être bénéfique
pour notre projet.
3. Spécification des besoins
 Mettre en place des algorithmes de gestion d’inventaire et de stock permettant de savoir
précisément l’état des stocks et la localisation des produits.
 Concevoir une application mobile pour le scan des articles entreposés et des
emplacements.
 Prévoir un algorithme qui génère des codes à barre pour les articles et les emplacements.
 Améliorer la traçabilité.
4. Conclusion
La description détaillée du système existant qui ouvre ce chapitre a permis de délimiter les
problèmes à résoudre dans le contexte actuel. Quant à la partie critique de l’existant, elle a
permis de dégager et de formaliser les besoins des futurs utilisateurs de l’application. Le
chapitre suivant est consacré à l’établissement d’une étude fonctionnelle qui est une étape
indispensable afin d’élaborer une bonne conception.
32
Étude Fonctionnelle
Le module WMS doit être amélioré pour permettre de :
 Connaître quantitativement et qualitativement l’activité des stocks en temps réel.
 Réduire et éviter les erreurs de préparation.
 Améliorer l’exploitation des moyens et des emplacements.
 Améliorer la traçabilité.
I. La codification dans un entrepôt
1. L’adressage des emplacements
L’adressage des emplacements consiste à déterminer des règles permettant au magasinier
de se repérer dans l’espace de stockage et de repérer plus particulièrement les produits qu’il
doit prélever et manutentionner dans la structure de stockage.
Un bon adressage doit donc être clair, précis et efficace.
Dans la pratique, les entrepôts utilisent deux grands systèmes de repérage des emplacements.
 Les emplacements banalisés ou aléatoires
 Les emplacements identifiés ou affectés
 Premier système : les emplacements banalisés ou aléatoires :
Les produits/colis sont placés par famille ou/et par critère (critère de rentabilité, de rotation…)
dans des grandes zones de l‘entrepôt. Dans chaque zone, les produits sont stockés dans les
emplacements disponibles de façon aléatoire. La structure de stockage accueille ainsi le plus
grand nombre de colis possible car ceux-ci n’ont pas d’emplacement réservé. Ce principe rend
difficile le repérage des marchandises lorsque l‘entrepôt a une grande superficie et lorsqu’ il y
a un grand nombre de références.
Dans ce chapitre, je présente une étude fonctionnelle susceptible
de nous fournir une connaissance du métier.
La connaissance du métier est indispensable pour mener une bonne
conception, et par la suite aborder la réalisation de l’application
33
 Second système : Les emplacements identifiés ou affectés :
Les produits/colis ont ici un emplacement affecté dans la structure de stockage. Ils sont localisés
par une adresse de stockage. L’adresse représente un code qui dirige le magasinier à sa
destination de prélèvement ou stockage.
Ce principe consiste à donner à un emplacement un code composé de chiffres (numérique) ou
encore de chiffres et de lettres (alphanumériques). L’adresse est à la fois repérable sur le produit
(étiquette, code barre…), sur la fiche de stock et sur l’emplacement de stockage, facilitant ainsi
les tâches quotidiennes du magasinier.
Le déchiffrage du cde permet d’identifier :
 La zone ou l’allée de stockage.
 Le niveau de stockage.
 L’emplacement sur le niveau.
Les produits/colis ont ici un emplacement affecté dans la structure de stockage, ils sont localisés
par une adresse de stockage.
Figure 15:Les emplacements identifiés ou affectés
Figure 14:Les emplacements banalisés ou aléatoires
34
1. Exemple de la localisation des emplacements :
Une entreprise a mis en place un adressage alphanumérique pour localiser ces produits.
Les principes suivants sont les règles propres à l’entreprise pour gérer le stock :
 L’aire de stockage est composée de 3 zones :
 Zone A : famille téléphonie.
 Zone B : famille audio-vidéo.
 Zone C : famille informatique.
 Chaque zone est composée de 4 allées.
 Chaque palettier comporte 3 travées et 4 niveaux (avec celui du picking au sol).
 Sur chaque niveau de la travée, on positionne 3 palettes.
Ci-dessous un plan de l’entrepôt de l’entreprise
Figure 16:Plan de l’entrepôt vu de haut
35
Dans l’entrepôt chaque emplacement doit être identifié par un code à barre comportant les
caractéristiques suivant :
Figure 17:compostion d'une adresse d'un emplacement
36
2. La définition des articles
Le module WMS permet de saisir et d’enregistrer les caractéristiques qui figurent sur la fiche article :
3. La codification des articles
Bien connaître les produits est essentiel pour faciliter le travail du magasinier et pour
l’organisation d’un magasin de stockage.
Il est donc nécessaire de :
 Identifier les produits,
 Les localiser,
Figure 18: la fiche d'article
37
 Les classer,
Afin que les activités logistiques, administratives et commerciales soient optimisées.
Le problème est donc d’identifier un très grand nombre de produits dans une surface de
stockage.
La codification est une solution appropriée.
Ce code doit être facilement identifiable par les utilisateurs et exploitable informatiquement.
 Une codification peut être établie par le responsable du magasin :
Soit en créant son propre système de codage: le code article sera défini en fonction des
caractéristiques techniques et commerciales du produit. Il devra être reconnu par tous
les utilisateurs.
 Soit en utilisant un code standard: Il sera reconnu par les membres de l’entreprise et
aussi par les partenaires du secteur d’activité. Il peut s’agir, par exemple, de code à
barres.
La codification permet de gagner de la place sur les supports d’information, de gagner du
temps lors de l‘enregistrement de ces derniers et de les présenter de manière claire et
homogène en évitant les erreurs.
A l’aide des tableaux ci-dessous, on peut retrouver les différents codes pour chaque article.
Dans un premier temps, on classe ces produits par catégorie. Les
catégories d’articles sont proposées dans le tableau ci-dessous.
Figure 19:Catégorie des
produits
Figure 21: Type de conditionnement Figure 20:Type de contenance
38
On peut désormais coder les articles suivant le plan de codification proposé, par exemple :
Méthode pour calculer la clé de contrôle : Additionner les 6 premiers chiffres du code de la
référence. Soustraire la somme à la dizaine supérieure. Le résultat devient la clé de contrôle.
Par exemple : 0 + 5 + 1 + 8 + 8 + 1 = 23
30 – 23 = 7 Ce résultat devient la clé de contrôle
La référence devient : 05 18 81 7
4. Conclusion
Certes, l’étude fonctionnelle est une étape incontournable pour entamer la phase de
conception. Elle m’a permis de comprendre les démarches à suivre pour mener d’une façon
adéquate les traitements qu’exige la gestion de l’entrepôt. Le chapitre suivant est consacré à
l’élaboration du dossier de conception.
39
Conception du projet
I. Conception fonctionnel du système
L’étape de conception est très importante pour la réussite d’un projet informatique car elle
permet de rendre le développement plus fidèle aux besoins du client ainsi elle vise à définir
une feuille de route du projet, le concevoir et le valider avant de passer au développement du
système. Elle permet aussi d’avoir une bonne réflexion avant de passer à l’action, une bonne
organisation du travail et une bonne communication entre les différents intervenants dans le
projet.
Nous avons utilisé des diagrammes UML pour cette étape, vu qu’il est le plus approprié pour
les projets informatiques orientés objet, et aussi car ses diagrammes facilitent la lisibilité et la
compréhension des modèles même pour les ceux qui sont loin du domaine informatique. Le
principal avantage d'UML est qu'il est devenu le standard en termes de modélisation objet,
son caractère polyvalent et performant et sa souplesse en fait un langage universel.
1. Les diagrammes de cas d’utilisation
Les cas d’utilisation ont pour objectif l’illustration du fonctionnement du système vis-à-vis de
l’utilisateur, il représente donc une vue du système en question dans son environnement externe.
1.1. Identification des acteurs
L'analyse dans la démarche d'UML débute par la recherche des acteurs du système.
En eet, un acteur est toute entité qui joue un rôle, actif ou passif, vis-à-vis le système.
Un acteur peut être un utilisateur direct du système, un administrateur (assure la maintenance)
Ce chapitre est consacré à la partie conception de l’application. Il
présente les diagrammes de conception adoptés lors de la phase
d’élaboration.
40
du système ou tout autre système externe avec lequel le système interagit. À ce
stade nous allons déterminer les trois acteurs principaux interagissant avec le système.
Acteur Rôle
Administrateur Accède de manière sécurisée au système, et attribue
les droits d’accès aux utilisateurs, gère les
utilisateurs (ajout, modification, suppression d’un
utilisateur), ainsi que le contenue et l’arborescence
d’ODOO.
Gestionnaire de stock Accède de manière sécurisée au système, et il gère
les articles de stock (créer, modifier, supprimer).
Réceptionne et livre les articles.
Opérateur Accède de manière sécurisée au système, et il le
responsable sur la charge et la décharge des
véhicules.
Tableau 4: les acteurs de systéme
1.2.Diagramme de cas d'utilisation global
Je présente le diagramme de cas d'utilisation global et je détaillerai par
la suite les cas d'utilisation nécessitant une description plus approfondie.
Figure 22: diagramme de cas d'utilisation global
41
 Le cas d’utilisation « Gérer les utilisateurs »
Titre Gérer les utilisateurs
Description L’administrateur de système peut ajouter, modifier ou supprimer un utilisateur de système
Acteur Administrateur système
Pré-condition L’administrateur de système est authentifié
Scénario  L’administrateur de système accède au menu des utilisateurs.
 L’administrateur de système choisit l’opération à traiter.
 L’administrateur de système confirme la mise à jour.
 Le système enregistre les modifications relatives à l’utilisateur concerné.
Post-condition La mise à jour sur un utilisateur est terminée.
Tableau 5: description de cas d’utilisation « Gérer les utilisateurs »
 Le cas d’utilisation « Gérer les articles »
Titre Gérer les utilisateurs
Description le gestionnaire de stock possède le privilège d'effectuer des tâches de
gestion sur les articles. Il peut ajouter, modifier, consulter ou supprimer des articles.
Acteur Gestionnaire de stock
Pré-condition le gestionnaire de stock est authentifié.
Scénario  Le gestionnaire de stock accède au menu de gestion des articles.
 Le gestionnaire de stock choisit l'opération qu'il désire effectuer sur l'article.
 Le système vérifie les contraintes relatives à cette opération.
 Le système enregistre les modifications relatives à l'article.
 Le système affiche l'écran de l'article en mode affichage seul pour renseigner
l'utilisateur de succès de l'enregistrement
Post-condition l'article est modifié suivant l'opération effectuée par le gestionnaire de stock
Tableau 6:description de cas d’utilisation « Gérer les articles »
 Le cas d’utilisation « Gérer les emplacements »
Titre Gérer les emplacements
Description le gestionnaire de stock possède le privilège d'effectuer des tâches de
gestion sur les emplacements. Il peut générer les codes des emplacements.
Acteur Gestionnaire de stock
Pré-condition le gestionnaire de stock est authentifié.
Scénario  Le gestionnaire de stock accède au menu de gestion des emplacements.
 Le gestionnaire de stock remplit les champs nécessaires.
42
 Le système vérifie les contraintes relatives à cette opération.
 Le système génère le code de l’emplacement.
 Le système enregistre les modifications relatives à l’emplacement.
 Le système affiche l'écran de l’emplacement en mode affichage seul pour
renseigner l'utilisateur de succès de l'enregistrement
Post-condition L’emplacement est modifié/crée suivant l'opération effectuée par le gestionnaire de stock
Tableau 7:description de cas d’utilisation « Gérer les emplacements »
 Le cas d’utilisation « Afficher l'historique du mouvement»
Titre Afficher l'historique du mouvement
Description le gestionnaire de stock possède le privilège d’afficher l’historique des mouvements dans
le stock.
Acteur Gestionnaire de stock
Pré-condition le gestionnaire de stock est authentifié.
Scénario  Le gestionnaire de stock accède au menu de mouvement de stock.
 Le gestionnaire de stock affiche la liste des mouvements effectués.
 Le gestionnaire de stock peut vérifier l’état d’une opération.
 Le gestionnaire de stock peut faire des opérations sur une opération.
Post-condition L’opération est modifiée suivant l'opération effectuée par le gestionnaire de stock
Tableau 8: description de cas d’utilisation « Afficher l'historique du mouvement»
 Le cas d’utilisation « Etiqueter les articles»
Titre Etiqueter les articles
Description le gestionnaire de stock possède le privilège d’étiqueter les articles
Acteur Gestionnaire de stock
Pré-condition le gestionnaire de stock est authentifié.
Scénario  Le gestionnaire de stock accède au menu de « Articles ».
 Le gestionnaire de stock remplit les champs nécessaires.
 Le système vérifie les contraintes relatives à cette opération.
 Le système génère le code de l’article.
 Le système enregistre les modifications relatives à l’emplacement.
Post-condition Le code de l’article est créé suivant l'opération effectuée par le gestionnaire de stock
Tableau 9: Description de cas d'utilisation "Etiqueter les articles"
43
 Le cas d’utilisation « Gérer les opérations»
Titre Gérer les opérations
Description le gestionnaire de stock possède le privilège d’afficher, effectuer, modifier ou supprimer
une opération (réception, transfert interne ou livraison) dans le stock.
Acteur Gestionnaire de stock
Pré-condition le gestionnaire de stock est authentifié.
Scénario  Le gestionnaire de stock accède au tableau de bord des opérations logistique.
 Le gestionnaire de stock peut traiter une opération.
 Le système vérifie les contraintes relatives à cette opération
 Le système enregistre les modifications relatives à l’opération.
Post-condition L’opération est modifiée suivant l'opération effectuée par le gestionnaire de stock
Tableau 10: Description de cas d’utilisation « Gérer les opérations»
 Le cas d’utilisation « Réorganiser le stock»
Titre Réorganiser le stock
Description L’opérateur possède le privilège d’effectuer les travaux d’inventaire à l’aide d’une
application mobile.
Acteur L’opérateur
Pré-condition L’opérateur est authentifié.
Scénario  L’opérateur scan le code de l’emplacement.
 L’opérateur scan le code des articles existe dans le stock.
 L’opérateur transfert les données de scan vers le serveur odoo
Post-condition Réaliser les travaux d’inventaire physique.
Tableau 11: description de cas d’utilisation « Réorganiser le stock»
44
1.3.Diagramme de cas d’utilisation « Gérer article »
Cette figure représente le diagramme de cas d’utilisation « Gérer l’article »:
Figure 23:Diagramme de cas d’utilisation « Gérer article »
Afin de gérer les articles, le gestionnaire de stock peut ajouter des nouveaux articles au
stock, comme il peut consulter la liste des articles pour modifier, supprimer ou pour
consulter les mouvements d’un article.
1.4. Diagramme de cas d’utilisation « gérer les emplacements »
Cette figure représente le diagramme de cas d’utilisation « Gérer les emplacements »:
Figure 24:Diagramme de cas d’utilisation « Gérer les emplacements »
45
Afin de gérer les emplacements, le gestionnaire de stock peut créer des nouveaux
emplacements pour cela il faut identifier le code de la zone, le numéro de la travée, le
numéro de l’allée et d’autre informations, comme il peut consulter la liste des articles pour
modifier, supprimer ou pour filtrer à la base de ses attributs.
1.5.Diagramme de cas d’utilisation « gérer les opérations »
Cette figure représente le diagramme de cas d’utilisation « Gérer les opérations»:
La gestion des achats permet au gestionnaire de stock de créer des devis, convertir ces devis
en bons de commande, choisir la méthode de facturation de ces derniers, et les valider. Une
fois ces bons validés, des réceptions de produits, correspondants chacune à un bon de
commande, sont générées automatiquement et passent au statut « en attente de traitement ».
Le traitement des réceptions peut être partiel ou total, c’est-à-dire que lors d’une réception
l’agent peut recevoir la totalité des produits commandés, traiter la réception et passer à la
facturation, ou recevoir une partie des produits seulement, dans ce cas il ne renseigne que
la quantité reçue et valide la réception, cette dernière est dupliquée, et le duplicata est une
nouvelle réception contenant le reste des produits à recevoir, en statut « en attente de
traitement ».
Figure 25:Diagramme de cas d’utilisation « gérer les opérations »
46
2. Diagramme de séquence
Dans les diagrammes de séquence, nous allons utiliser pour les requêtes traitant les
objets persistais les noms des méthodes ORM :
 Search : offre les fonctionnalités d'une requête de sélection, elle retourne les
identificateurs
 Browse : permet de charger un tous les données d'un enregistrement.
 Unlink : permet de supprimer un enregistrement.
 Create : permet d'insérer un nouvel enregistrement.
 Write : permet de modifier un enregistrement.
2.1.Diagramme de séquence « Authentification »
La figure décrit le déroulement du cas d'utilisation « Authentifier », qui apparaît dans la figure
du diagramme de cas d’utilisation global : 3.5. Le gestionnaire de stock, démarre le serveur
ODOO, ensuite la page d’authentification s’affiche pour entrer le login et le mot de passe, si
l’authentification est passée avec succès, la page d’accueil s’affiche. Dans le cas où le login ou
mot de passe est incorrecte, on relance la même page (page d’authentification).
Figure 26: Diagramme de séquence « Authentification »
47
2.2.Diagramme de séquence « Afficher liste des articles »
2.3.Diagramme de séquence « Créer un article »
Figure 27: Diagramme de séquence « Afficher liste des articles »
Figure 28: Diagramme de séquence « Créer un article »
48
2.4.La mise à jour d’un article
2.5.Générer le code barre
Figure 29: diagramme de séquence "La mise à jour d’un article"
Figure 30: Diagramme de cas d'utilisation "Générer le code barre"
49
2.6.Liste des mouvements
Figure 31: diagramme de séquence "Liste des mouvements "
50
3. Digramme de classes
Ce diagramme représente les classes relatives à la conception de notre module, Ainsi que les modifications apportées sur les tables d'Odoo.
Remarque : les classes en bleu présentent la conception d'Odoo déjà existan
Figure 32: diagramme de classe de systeme
51
4. Synthèse
Dans ce chapitre nous avons présenté l’étude conceptuelle du projet en se basant sur les
diagrammes de cas d’utilisation, le diagramme de séquence et le diagramme de classes. Le
chapitre suivant est dédié à l’étape de la réalisation de notre système.
52
Mise en œuvre
I. Technologies mises en œuvre
Dans cette partie je présente les différentes technologies adoptées par Cayley Consulting, et
utilisées pour la réalisation de mon projet, à commencer par le système d’exploitation Ubuntu,
tout en passant par le système de gestion de bases de données PostgreSQL, et en fin les langages
nécessaires pour le développement, à savoir le langage Python et XML.
1. Ubuntu
Ubuntu est un système d’exploitation libre commandité par la
société Canonical et une marque déposée par cette même
société. Fondé sur la distribution Linux Debian et utilisant le
bureau Unity, Ubuntu se veut « convivial, intuitif et sûr ». Il
est constitué de logiciels libres, est disponible gratuitement y
compris pour les entreprises, et bénéficie d'une nouvelle
version (appelée « mise à niveau ») tous les six mois.
Avec une utilisation globale estimée à plus de 25 millions d'utilisateurs, il est principalement
conçu pour une utilisation sur des ordinateurs personnels (portables et fixes), bien que d'autres
versions consacrées aux netbooks et aux serveurs existent aussi. Depuis Ubuntu 11.04, la
version Netbook a fusionné avec la version Desktop. Cette dernière étant passée à l'interface
Unity, il n'y avait plus de raison de maintenir deux branches distinctes.
La version d’Ubuntu utilisée pour ce projet est la 15.04, ayant pour nom de code «Vivid
Vervet». Sa date de publication en tant que version stable était le 23 avril 2015.
Je présente dans ce chapitre, les différentes technologies et outils utilisés
pour la réalisation. Ensuite, je décris quelques interfaces de notre
système.
Figure 33: Logo d'ubuntu
53
2. PostgreSQL
PostgreSQL est un système de gestion de base de données relationnelle et objet (SGBDRO).
C’est un outil libre disponible selon les termes d'une licence de type BSD (Berkeley Software
Distribution). Ce système est concurrent d'autres systèmes de gestion de base de données, qu'ils
soient libres (comme MySQL et Firebird), ou propriétaires (comme Oracle, Sybase, DB2,
Informix et Microsoft SQL Server). Comme les projets libres Apache et Linux, PostgreSQL
n'est pas contrôlé par une seule entreprise, mais est fondé sur une communauté mondiale de
développeurs et d'entreprises.
 PostgreSQL peut stocker plus de types de données que les types traditionnels entiers,
caractères, etc. L’utilisateur peut créer des types, des fonctions, utiliser l’héritage de
type etc.
 PostgreSQL est pratiquement conforme (de plus en plus conforme) aux normes ANSI
SQL 89, SQL 92 (SQL 2), SQL 99 (SQL 3), SQL:2003 et SQL:2008. Il fonctionne sur
diverses plates-formes matérielles et sous différents systèmes d'exploitation.
 PostgreSQL fonctionne sur Solaris, SunOS, Mac OS X, HP-UX, AIX, Linux, IRIX,
Digital Unix, BSD, NetBSD, FreeBSD, OpenBSD, SCO unix, NeXTSTEP, UnixWare
et toutes sortes d'Unix. Depuis la version 8.0, PostgreSQL fonctionne également
nativement sur Windows. Avant la version 8, il fallait un émulateur de type cygwin pour
faire fonctionner PostgreSQL sur ce système d'exploitation.
 PostgreSQL est largement reconnu pour son comportement stable, proche d’Oracle.
Mais aussi pour ses possibilités de programmation étendues, directement dans le moteur
de la base de données, via PL/SQL. Le traitement interne des données peut aussi être
couplé à d'autres modules externes compilés dans d'autres langages.
Figure 34: logo de PostgreSQL
54
3. Python
Python est un langage de programmation multi-paradigme. Il favorise la programmation
impérative structurée, et orientée objet. Il est doté d'un typage dynamique fort, d'une gestion
automatique de la mémoire par ramasse-miettes et d'un système de gestion d'exceptions, il est
ainsi similaire à Perl, Ruby, Scheme, Smalltalk et Tcl. Le langage Python est placé sous une
licence libre proche de la licence BSD et fonctionne sur la plupart des plates-formes
informatiques, des supercalculateurs aux ordinateurs centraux, de Windows à Unix en passant
par Linux et Mac OS, avec Java ou encore .NET. Il est conçu pour optimiser la productivité des
programmeurs en offrant des outils de haut niveau et une syntaxe simple à utiliser. Il est
également apprécié par les pédagogues qui y trouvent un langage où la syntaxe, clairement
séparée des mécanismes de bas niveau, permet une initiation plus aisée aux concepts de base
de la programmation.
Python est un langage :
 Conçu pour produire du code de qualité, portable et facile à intégrer : grâce à sa
syntaxe claire, cohérente et concise, Python permet aux développeurs de produire du
code de qualité, lisible et maintenable. Écrire du code Python est un exercice agréable,
même en respectant les conventions de codage. Fourni dès le départ avec des modules
de tests, Python est un langage agile. Le terme agile est originellement issu de la
méthodologie de programmation agile (Beck et Al.), très proche de la programmation
itérative. Cette méthodologie, qui réduit les risques liés à la conception de logiciels,
introduit entre autres des principes de tests continus du code.
 De haut niveau, orienté objet et totalement libre : même si elle n’est pas imposée,
Python permet la programmation orientée objet. Tous les mécanismes objet essentiels
sont implémentés et toutes les données manipulées sont des instances de classes, comme
pour les langages SmallTalk ou Ruby. Enfin, le code peut être structuré en modules
Figure 35: logo de Python
55
(fichiers) qui sont ensuite importables dans l’interpréteur. Ce découpage, permet
d’organiser le code et son utilisation par des espaces de noms, et aussi de faciliter
l’extension du langage par des bibliothèques tierces compilées dans d’autres langages.
 Hautement productif : La conception d’applications en Python est très rapide car
certains aspects de programmation sont gérés automatiquement, comme la gestion des
ressources mémoire et le typage des données. Grâce à des types de base très puissants
et des primitives de haut niveau, un programme Python est simple à concevoir et concis.
Un programme Python est en général 3 à 5 fois plus court qu’un programme C++
équivalent. Ces qualités font de Python un langage idéal dans beaucoup de domaines.
Enfin, la bibliothèque standard de Python est très complète, et permet de répondre aux
besoins communs de programmation. Grâce au modèle Open Source, la communauté
des développeurs Python est en outre très productive et de nombreuses extensions
gravitent autour du langage.
 Dynamique : dans la plupart des implémentations, le code source n’est pas compilé
contrairement à des langages comme C ou Pascal, mais exécuté à la volée. On parle
alors de langage interprété. Ce mode de fonctionnement rend la programmation
beaucoup plus souple puisqu’il est possible de changer un programme en cours
d’exécution, ou de tester du code en mode interactif sans disposition particulière.
L’interprétation rend aussi l’exécution plus lente, mais ce défaut est surmontable grâce
à de bonnes pratiques de programmation et des techniques d’optimisation.
4. XML
XML (eXtensible Markup Language et en Français Langage à balises étendu, ou Langage à
balises extensible) était lancé en 1997 par la communauté SGML (Standard Generalized
Markup Language). XML est un langage simple et puissant de description et d’échange de
documents structurés de n’importe quel domaine de données grâce à son extensibilité, il décrit
cette structure à l’aide d’un système de balises.
Quelques points remarquables d’XML :
 Il apparaît comme un format d’échange de données universel ;
 Il a la possibilité de créer des nouvelles balises contrairement à HTML qui définit un
nombre limité ;
 Il garantit à ses utilisateurs l’indépendance de leurs documents de toute technologie
propriétaire ;
 Il unifie le monde du traitement de document et celui du Web.
56
Tout document XML se compose :
 D’un prologue qui peut contenir une déclaration XML, des instructions de traitement et
une déclaration de type de document, dont la présence est facultative mais conseillée. Il
contiendra un certain nombre de déclarations ;
 D’un arbre d’éléments, on parle d’élément père et d’élément fils. En fait la partie
essentielle d’un document XML sera toujours formée d’une hiérarchie d’éléments qui
dénote la sémantique de son contenu ;
 De commentaires et d’instructions de traitement, dont la présence est facultative. Ils
pourront, moyennant certaines restrictions, apparaître aussi bien dans le prologue que
dans l’arbre d’éléments.
Un document XML valide est forcément un document bien formé mais il obéit en plus à une
structure type définie dans une DTD (Document Type Definition).Une DTD peut contenir
 des déclarations d'entités générales ;
 des déclarations d'entités paramètres ;
 des déclarations de notations ;
 des déclarations d'éléments ;
 des déclarations de listes d'attributs ;
 des commentaires
II. Réalisation du système
Après avoir dégagé les fonctionnalités auxquelles doit répondre notre système, et après avoir
formalisé ces fonctionnalités par des diagrammes UML. Dans cette partie, je présente le travail
réalisé à travers quelques exemples d’illustrations.
1. Page d’authentification
C’est la première page qui s’affiche, elle permet aux utilisateurs de se connecter au système.
Figure 36:Page d’authentification
57
2. Installation des modules
Cette interface représente la page d’installation du module de gestion des entrepôts.
3. Tableau de bord
Cette interface représente le tableau de bord principal dont le but de donner une vision très
claire de l’ensemble des opérations logistique par entrepôt.
Figure 37:Installation des modules
Figure 38:Tableau de bord
58
4. Gestion d’achat
La gestion des achats permet à l’agent d’assurance de se procurer des produits auprès de ses
fournisseurs.
Il lui est possible de créer des devis
Puis convertir ces devis en bons de commande, choisir la méthode de facturation de ces
derniers, et les valider.
Figure 39:Gestion d’achat
Figure 40: Bon de commande
59
Une fois ces bons validés, des réceptions de produits, correspondants chacune à un bon de
commande, sont générées automatiquement et passent au statut « en attente de traitement ». Le
traitement des réceptions peut être partiel ou total, c’est-à-dire que lors d’une réception l’agent
peut recevoir la totalité des produits commandés, traiter la réception et passer à la facturation,
ou recevoir une partie des produits seulement, dans ce cas il ne renseigne que la quantité reçue
et valide la réception, cette dernière est dupliquée, et le duplicata est une nouvelle réception
contenant le reste des produits à recevoir, en statut « en attente de traitement ».
60
5. La gestion des approvisionnements
Cette interface représente la page des approvisionnements
6. Les mouvements de stock
Cette interface représente la page de l’ensemble des mouvements effectués dans l’entrepôt.
7. Création d’un nouvel article
En cliquant sur le bouton ‘Créer’ s’affiche l’interface permettant de créer un nouvel article et
pour générer le code de l’article à travers le code de conditionnement, de contenance et du code
de catégorie.
Figure 41:gestion des approvisionnements
Figure 42: Les mouvements de stock
61
8. Variante d’article
Cette interface permet de créer des variantes d’article.
Figure 43: Création d’un nouvel article
Figure 44: Variante d’article
62
9. Créer un entrepôt
Pour créer un nouveau entrepôt il faut entrer les informations nécessaire tel que le nom,
description, l’adresse, etc. mais aussi il faut affecter les zones, et le nombre d’allées.
Figure 45: Créer un entrepôt
10. Créer une nouvelle zone
Cette page permet de créer une nouvelle zone.
Figure 46: Créer une nouvelle zone
63
11. Créer l’allée
Cette page permet de créer et identifier les allées d’un entrepôt.
Figure 47: Créer l'allée
12. Créer et identifier l’emplacement
Pour créer un nouvel emplacement il faut entrer les informations nécessaire tel que le nom,
description, type d’emplacement, etc. mais aussi il faut identifier le code de la zone, de l’allée,
le cotée de l’allée droit ou gauche, le numéro de la travée, le niveau dans le travée et le numéro
de l’emplacement à fin de générer le code de l’emplacement.
Figure 48: Créer et identifier l’emplacement
64
Partie 3 : Réalisation d’une application mobile de gestion
d’inventaire
__________________________________________________________________________________
Dans ce chapitre, je vais présenter le projet « L’application mobile pour la
gestion d’inventaire» que j’ai réalisée. Dans la première partie, je vais
présenter brièvement une étude préliminaire sur le projet en commençant par
l’étude de l’existant, la problématique et enfin une synthèse.
Dans la seconde partie, je vais exposer l’étude fonctionnelle du projet qui
comprend la capture des besoins fonctionnels et la formalisation de ces
besoins en cas d’utilisation UML.
.
65
Etude préliminaire
L’inventaire est un outil obligatoire pour les entreprises à but lucratif, il doit être fait de façon
régulière afin d’établir un bilan fiable de l’entreprise.
De là est nait le besoin de mettre en place un environnement d’intégration continue.
I. Cahier des charges
1. Présentation du projet
Le but du projet est la mise en place d’une application mobile sous Android en mode synchrone
et asynchrone qui communiquera avec le serveur ODOO, permettant de :
 fixer la valeur du stock présent au sein de l’entreprise.
 Vérifier si aucune marchandise ne manque, en d'autres termes de constater si il y a eu
perte ou vol.
 Vérifier une éventuelle erreur de gestion.
2. Recueil des besoins fonctionnels
2.1.Scanner produits
Transformer l’appareil photo du téléphone pour lire le code barre.
2.2.Intégrer les données d’inventaire en mode synchrone
Créer plusieurs inventaires Envoyer les données d’inventaire vers le serveur ODOO via le web
service XMLRPC
2.3.Intégrer les données d’inventaire en mode asynchrone
Exporter les inventaires dans un fichier excel puis envoyer les résultats via mail au responsable
de stock, aussi mettre l’inventaire sur Dropbox et Google Drive (partager avec d'autres
utilisateurs et de sauvegarde à Dropbox et Google Drive).
Dans ce chapitre je présente une étude préliminaire sur le projet en
commençant par présenter le cahier des charges.
66
Conception du projet
I. Conception fonctionnel du système
1. Diagramme de cas d’utilisation
Ce chapitre est consacré à la partie conception de l’application. Il
présente les diagrammes de conception adoptés lors de la phase
d’élaboration.
Figure 49: Diagramme de cas d’utilisation
67
2. Diagramme de classe
3. Synthèse
Dans ce chapitre nous avons présenté l’étude conceptuelle du projet en se basant sur les
diagrammes de cas d’utilisation et le diagramme de classes. Le chapitre suivant est dédié à
l’étape de la réalisation de notre système.
Figure 50: Diagramme de classe
68
Mise en œuvre
I. Technologies mises en œuvre
Dans cette partie je présente les différentes technologies utilisées pour la réalisation de mon projet, à
commencer par le système d’exploitation ANDROID et les langages nécessaires pour le développement.
1. Système d’exploitation Android
Android est un système d'exploitation édité par Google pour appareils embarqués et/ou mobiles,
comme les smartphones ou les tablettes. On le retrouve aussi dans certains GPS, ordinateurs de
bord de voitures, dans des télévisions, autoradios, et même des montres.
De plus, de nombreux prototypes d'appareils électroménagers, comme des réfrigérateurs ou des
machines à laver, fonctionnant sous Android ont été présentés ces derniers temps, permettant
ainsi de lancer une machine à l'aide de téléphone, ou encore d'être prévenu par son frigo lorsqu'il
manque certaines choses.
Je présente dans ce chapitre, les différentes technologies et outils utilisés
pour la réalisation. Ensuite, je décris quelques interfaces de notre
système.
Figure 51: Logo d'Android
69
Le système Android est basé sur un fork du noyau de Linux. Ce dernier a été modifié pour être
plus adapté aux terminaux mobiles ayant peu de puissance de calcul, de mémoire et de batterie.
De fait, certaines librairies standards ne sont pas supportées par le système, et des améliorations
ont été apportées sur la gestion de l'énergie.
Les applications sont écrites en Java, et fonctionnent au sein d'une machine virtuelle Dalvik.
Cette machine virtuelle a elle aussi été modifiée pour être le plus adapté possible aux appareils
de faible puissance. Ainsi, beaucoup d'efforts ont été fait sur la consommation de mémoire, qui
a été largement diminuée par rapport à la machine virtuelle java classique.
2. Java
Java est un langage typé et orienté objet. Il est compilé et basé sur une architecture logicielle
très particulière nécessitant une machine virtuelle Java. Il utilise les notions usuelles de la
programmation orientée
objet : la notion de
classe, d'encapsulation,
d'héritage, d'interface,
de virtualité, de
généricité, … Il est
accompagné d'un
ensemble énorme de
bibliothèques standard
couvrant de très
nombreux domaines, notamment des bibliothèques graphiques. C'est un langage qui présente
d'excellentes propriétés de portabilité du code. Son gros point faible est une relative lenteur,
surtout si on le compare à des langages comme le C++. Cependant, ce défaut a été résolu en
grande partie par l'introduction de la technologie JIT (compilateur Just-In-Time, en anglais «
juste à temps »), qui compile le code à la première exécution, permettant une exécution
quasiment aussi rapide qu'en C/C++.
Figure 52: Logo de java
70
II. Réalisation du système
Après avoir dégagé les fonctionnalités auxquelles doit répondre notre système, et après avoir
formalisé ces fonctionnalités par des diagrammes UML. Dans cette partie, je présente le travail
réalisé à travers quelques exemples d’illustrations.
1. L’interface d’authentification
Si l’authentification est passée avec succès, une page s’affiche avec un bouton pour scanner le
code à barre de l’article.
Figure 53: Les interfaces d’authentification
71
3. Scanner article
L’utilisateur peut transformer l’appareil photo du téléphone pour lire le code barre.
Figure 54: Authentification OK
Figure 55: lancement de scan
72
Cette page représente la détection de code barre par l’appareil de téléphone.
Après la détection du code-barres on retourne le numéro du code, le type et la quantité
scannée de même article.
4. Actions en cours
 L’interaction entre l’application mobile avec le serveur odoo via XMLRPC pour
envoyer les résultats de scan
5. Action à venir
 Enregistrer les résultats de scan dans un fichier Excel et l’envoyer par mail
Figure 56: détection de code barre
73
Conclusion générale
Ce projet de fin d’étude que j’ai effectué au sein de l’entreprise Cayley Consulting avait
pour but la mise en place d’une solution de gestion intégré pour l’entrepôt.
Dans un premier lieu j’ai commencé par comprendre le contexte général de mon projet
à savoir le métier de gestion des entrepôts. Ensuite j’ai mené une étude technique pour
étudier et analyser le progiciel odoo, ainsi qu’une étude fonctionnelle afin de déterminer
les besoins fonctionnelles de notre système. Par la suite j’ai fait une étude conceptuelle
pour présenter tous les cas d’utilisation de notre système d’une part et pour réaliser le
diagramme de classes d’autre part, qui par la suite m’a permis d’entamer la phase de la
réalisation qui n’est pas encore totalement finie. Je souhaite donc continuer à
implémenter les fonctionnalités manquantes.
Le travail au sein de la société Cayley Consulting, était sans doute une expérience très
enrichissante malgré les difficultés rencontrées au début à causes des technologies
utilisées qui nous étaient totalement nouvelles, mais avec l’aide de nos encadrants nous
avons pu les surmontées.
Ce stage a été pour moi un grand pas vers le milieu professionnel, où j’ai bénéficié d’une
excellente expérience qui m’a permis de concrétiser mes connaissances informatiques
acquises au cours des années d’études lors de la période de ma formation à l’Ecole
Normale Supérieure de l'Enseignement Technique de Mohammedia.
Aussi, ce projet m’a permis d’acquérir des valeurs indispensables pour le métier d’un
analyste développeur telles que la responsabilité, le travail d’équipe, l’adaptabilité à
l’environnement de l’entreprise et le sens d’analyse. Ces valeurs sont sans aucun doute
les bases de réussite dans le milieu professionnel.
Finalement, j'exprime mon énorme satisfaction de cette expérience au sein de la société
Cayley consulting, et j'espère que ce n’est que le premier pas dans le monde
professionnel.
74
Webographie & Bibliographie
[1] Vincent Le Goff, Apprenez à programmer en PYTHON.
[2] OpenERP s.a, OpenERP Server Developers Documentation.
[3] Thierry Godin, Mémento technique OpenERP en français.
[4] http://useopenerp.com/v8.
[5] https://www.odoo.com/documentation/8.0/
[6] https://www.odoo.com/fr_FR/forum/help-1
[7] https://apps.openerp.com/apps
[8] https://www.getopenerp.com/easy-odoo8-installation/.
[9] http://www.developpez.com.
[10] http://www.alistek.com/wiki/index.php/Your_first_report.
[11] http://www.theopensourcerer.com/.
[12] https://openclassrooms.com
[13] https://github.com/android
75
Annexes
Annexe 1 : Installation d’Odoo V8 sous ubuntu
1. Installation de l’environnement
1.1. Mettre à jour « source list »
D’abord, il faut mettre à jour le fichier source list avec la commande suivante :
1.2. Installer Updates
1.3. Configurer l’utilisateur Linux
Créer un nouvel utilisateur appelé Odoo avec home directory /opt/Odoo et le groupe
est Odoo. Vous pouvez le faire avec cette commande:
Et de créer un nouveau répertoire pour Odoo dans le répertoire /var/lib/odoo.
1.4. Installation et configuration de PostgreSQL
Installez postgreSQL avec la commande suivante :
Et se connecter au shell PostgreSQL avec la commande suivante:
Maintenant, il faut créez un rôle pour l’utilisateur Odoo. Cela permettra de se connecter au
serveur PostgreSQL pour créer, supprimer ou modifier la base de données.
Finalement, tapez exit pour vous déconnecter du shell PostgreSQL.
1.5. Installer les dépendances nécessaires
sudo apt-get update
sudo apt-get upgrade
sudo adduser --system --home=/opt/odoo --group odoo
mkdir -p /var/lib/odoo
sudo apt-get install postgresql
su - postgres
createuser --createdb --username postgres --no-createrole --no-superuser --
pwprompt odoo
76
Odoo a besoin de nombreux modules python :
smmsmsmsmmsms
1.6. Récupérer le code source d’odoo depuis github
1.7. Exécuter le serveur
Maintenant si tout se passe bien notre application sera disponible à l’url suivant
http://localhost:8069
sudo apt-get install python-cups python-dateutil python-décorateur python-
docutils python-feedparser 
python-gdata python-geoip python-gevent python-imaging python-jinja2 python-
ldap python-libxslt1 
python-lxml python-mako python -mock python-openid python-passlib python-psutil
python-psycopg2 
python-pybabel python-pychart python-pydot python-pyparsing python-pypdf
python-reportlab python-requests 
python-simplejson python-tz python-unicodecsv python-unittest2 python -
vatnumber python-vobject 
python-werkzeug python-xlwt python-yaml wkhtmltopdf
wget -O- https://raw.githubusercontent.com/odoo/odoo/8.0/odoo.py | python
cd /var/lib/odoo/odoo-server
./openerp-server
77
Annexe 2 : Introduction au développement des modules sous
ODOO
1. Introduction aux objets
Toutes les données d'odoo sont accessibles par les objets : c’est à dire pour la création d'un
module, on ne manipule pas les données directement car les objets sont eux qui créent les tables
de base de données contenant les données d'odoo via « ORM » (Object Relational Mapping).
Par exemple : il existe dans le module de base d'odoo, l'objet ‘res.partner’ qui permet d'accéder
aux informations concernant les partenaires. Aussi il y'a dans le module de base account, l'objet
d'odoo ‘account.invoice’ pour accéder aux données relatives à la facture. Tous ces objets se
trouvent dans des fichiers d'extension ‘.py’.
On signale qu'il y'a un objet pour chaque type de ressource et non un objet pour une ressource,
ainsi un il y'a un unique objet ‘res.partner’ pour manipuler tous les partenaires et on ne peut pas
avoir l'objet ‘res.partner’ pour chaque partenaire.
Parlons aux termes d'orienté objet pour bien assimiler cette notion, on peut dire que l'objet
d'odoo est considéré comme la classe et les ressources sont les instances de cette classe c’est à
dire les objets. Et si on parle du côté de la base de données les objets d'odoo sont les tables de
la BD et les lignes des tables sont les ressources. Donc une table (un objet d'odoo) comprend
plusieurs lignes (Ressources d'odoo).
Une conséquence directe de cette notion objet-ressources est que toutes les méthodes des objets
ont un paramètre commun : le paramètre ids. Il spécifie sur quelles ressources la méthode
s’appliquera : précisément ce paramètre contient une liste des identificateurs des ressources
(ids) sur laquelle la méthode s'appliquera.
Par exemple, si on a deux ressources partenaires avec les identificateurs 1et 2 (les identificateurs
de ressources sont les id des lignes de la table qui correspond à l'objet qui manipule ces
ressources) et aussi si nous voulons appeler la méthode d'objet ‘res.partner’ qui est
‘send_email’, nous procédons comme suit :
res_partner.send_email(..., [1, 2], ...)
Ultérieurement dans ce support, nous verrons comment appeler les méthodes d'objets et les
quelques méthodes propres d'odoo.
Un rappel important pour les programmeurs :
 Les objets d'odoo sont appelés classes si on parle au terme de la programmation orientée
objet.
 Une ressource est appelée objet, l'instance de la classe.
2. Définition des objets en odoo
Pour définir un nouvel objet, on définit une nouvelle classe et après on l'instancie, cette classe
doit hériter de la classe OSV du module OSV d'odoo. Ainsi, la première ligne de la définition
de l'objet sera toujours comme suivant :
78
class nom_objet(osv.osv):
_name = 'nom de l'objet'
_columns = {...}
…
nom_objet()
Donc, l'objet se définit en déclarant quelques attributs avec des noms prédéfinis dans la classe,
deux de ces attributs sont obligatoires à savoir _columns et _name, les autres sont optionnels.
Les attributs prédéfinis sont :
_auto : Prend True /False et détermine si la table correspondante dans postgresql doit se générer
automatiquement à partir de cet objet. Mettre _auto=False pourra être utile dans les cas où on
veut créer les objets basés sur des vues de postgresql sans créer des tables.
_columns (obligatoire): on y définit les champs(les attributs de la classe si on parle au terme
d'orienté objet) de l'objet.
_constraints : on y détermine des restrictions sur l'objet (on en parlera ultérieurement)
_defaults : on définit les valeurs par défaut pour quelques champs de l'objet.
_inherit : on met l'objet père que l'actuel objet hérite. On va le détailler dans deux types :
 ORM - Object Declaration - _inherit (1) : Réalise un héritage d'un objet existant, ajoute
des caractéristiques à l'objet dont nous héritons, exemple :
79
class res_partner_add_langs(osv.osv):
_name = 'res.partner'
_inherit = 'res.partner'
_columns = {
'lang_ids' : fields.many2many('res.lang','res_lang_partner_rel',
'partner_id', 'lang_id', 'Languages')}
res_partner_add_langs()
 ORM - Object Declaration - _inherit (2) : Réalise un héritage d'un objet existant, mais
crée un nouvel objet, exemple :
Class formateur(osv.osv):
_inherit = 'res.partner'
_columns = {
_name = 'formateur'
'lang_ids' : fields.many2many('res.lang',
'res_lang_partner_rel',
'partner_id', 'lang_id', 'Languages')}
formateur()
_name (obligatoire) : le nom de l'objet, la valeur par défaut est None
_order : on met le nom du champ de l'objet actuel qui sera comme critère de tri des résultats
des méthodes search et read. Sa valeur par défaut est 'id'
_sql : on met le code sql pour l'exécuter dans la création de l'objet (seulement si _auto=True)
_table : nom de la table sql correspondante a cet objet, sa valeur par défaut est celle de _name
en remplaçant les points (.) par des tirets (_)
3. Les champs des objets
Les objets peuvent contenir différents types de champs. Ces types s'articulent dans trois
catégories : types simples, types relationnelles et champs fonctionnels.
Les types simples englobent les entiers, les réels, les booléens et les chaines de caractère…,
les champs de type relationnel permettent de représenter les relations entre les objets
(one2one, many2one, many2many). Les champs fonctionnels sont des champs spéciaux parce
qu'ils ne sont pas enregistrés dans la base de données mais plutôt sont calculables à partir
d'autres champs dans le temps réel.
La signature de la méthode d'initialisation de la classe dont hérite tout champ déclaré dans
odoo ( ..... /osv/fields.py).
Mémoire de Projet de Fin d’Etudes
Mémoire de Projet de Fin d’Etudes
Mémoire de Projet de Fin d’Etudes
Mémoire de Projet de Fin d’Etudes
Mémoire de Projet de Fin d’Etudes

Contenu connexe

Tendances

PFE :Conception, développement et mise en ligne d’une plateforme Odoo destiné...
PFE :Conception, développement et mise en ligne d’une plateforme Odoo destiné...PFE :Conception, développement et mise en ligne d’une plateforme Odoo destiné...
PFE :Conception, développement et mise en ligne d’une plateforme Odoo destiné...Nabil EL Moudden
 
Rapport PFE faten_chalbi
Rapport PFE faten_chalbiRapport PFE faten_chalbi
Rapport PFE faten_chalbiFaten Chalbi
 
Rapport de projet de fin d'étude licence informatique et multimédia
Rapport de projet de fin d'étude licence informatique et multimédiaRapport de projet de fin d'étude licence informatique et multimédia
Rapport de projet de fin d'étude licence informatique et multimédiaNazih Heni
 
Rapport Projet De Fin D'étude Développent d'une application web avec Symfony2
Rapport Projet De Fin D'étude Développent d'une application web avec Symfony2Rapport Projet De Fin D'étude Développent d'une application web avec Symfony2
Rapport Projet De Fin D'étude Développent d'une application web avec Symfony2Sofien Benrhouma
 
Contribution a la_realisation_dune_plate_forme_de_suivi_de_colis (1)
Contribution a la_realisation_dune_plate_forme_de_suivi_de_colis (1)Contribution a la_realisation_dune_plate_forme_de_suivi_de_colis (1)
Contribution a la_realisation_dune_plate_forme_de_suivi_de_colis (1)zakia saadaoui
 
Rapport du Projet de Fin d'année Génie informatique
Rapport du Projet de Fin d'année Génie informatique Rapport du Projet de Fin d'année Génie informatique
Rapport du Projet de Fin d'année Génie informatique ayoub daoudi
 
Rapport de stage PFE - Mémoire master: Développement d'une application Android
Rapport de stage PFE - Mémoire master: Développement d'une application AndroidRapport de stage PFE - Mémoire master: Développement d'une application Android
Rapport de stage PFE - Mémoire master: Développement d'une application AndroidBadrElattaoui
 
Rapport Projet de fin d'etude sur le parc informatique
Rapport Projet  de fin d'etude sur le parc informatiqueRapport Projet  de fin d'etude sur le parc informatique
Rapport Projet de fin d'etude sur le parc informatiqueHicham Ben
 
Ma présentation PFE
Ma présentation PFEMa présentation PFE
Ma présentation PFELouati Aicha
 
Projet de fin d'etude gestion informatique
Projet de fin d'etude gestion informatiqueProjet de fin d'etude gestion informatique
Projet de fin d'etude gestion informatiquejihene Ab
 
Rapport pfe Conceptionet Developpement d'une Application web et Mobile
Rapport pfe Conceptionet Developpement d'une Application web et  Mobile Rapport pfe Conceptionet Developpement d'une Application web et  Mobile
Rapport pfe Conceptionet Developpement d'une Application web et Mobile Raoua Bennasr
 
Rapport pfe-ayoub mkharbach
Rapport pfe-ayoub mkharbachRapport pfe-ayoub mkharbach
Rapport pfe-ayoub mkharbachAyoub Mkharbach
 
Rapport- Conception et réalisation d'une plateforme social learning
Rapport- Conception et réalisation d'une plateforme social learningRapport- Conception et réalisation d'une plateforme social learning
Rapport- Conception et réalisation d'une plateforme social learningRouâa Ben Hammouda
 
Rapport de stage de fin d'études ISI 2015
Rapport de stage de fin d'études ISI 2015Rapport de stage de fin d'études ISI 2015
Rapport de stage de fin d'études ISI 2015Anouar Kacem
 
RapportPFE_IngenieurInformatique_ESPRIT
RapportPFE_IngenieurInformatique_ESPRITRapportPFE_IngenieurInformatique_ESPRIT
RapportPFE_IngenieurInformatique_ESPRITLina Meddeb
 
Conception et Réalisation Application Web Laravel PFE BTS
Conception et Réalisation Application Web Laravel PFE BTSConception et Réalisation Application Web Laravel PFE BTS
Conception et Réalisation Application Web Laravel PFE BTSFaissoilMkavavo
 
Gestion de la_production_agricole_avec_openerp
Gestion de la_production_agricole_avec_openerpGestion de la_production_agricole_avec_openerp
Gestion de la_production_agricole_avec_openerpHORIYASOFT
 
Conception et réalisation d'une application web et mobile de e-commerce
Conception et réalisation d'une application web et mobile de e-commerceConception et réalisation d'une application web et mobile de e-commerce
Conception et réalisation d'une application web et mobile de e-commerceAHMEDBELGHITH4
 
Soutenance PFE ingénieur génie logiciel
Soutenance PFE ingénieur génie logicielSoutenance PFE ingénieur génie logiciel
Soutenance PFE ingénieur génie logicielSiwar GUEMRI
 
Rapport de projet Odoo - gestion de projet et gestion de ressources humaines
Rapport de projet Odoo - gestion de projet et gestion de ressources humainesRapport de projet Odoo - gestion de projet et gestion de ressources humaines
Rapport de projet Odoo - gestion de projet et gestion de ressources humainesAyoub Ayyoub
 

Tendances (20)

PFE :Conception, développement et mise en ligne d’une plateforme Odoo destiné...
PFE :Conception, développement et mise en ligne d’une plateforme Odoo destiné...PFE :Conception, développement et mise en ligne d’une plateforme Odoo destiné...
PFE :Conception, développement et mise en ligne d’une plateforme Odoo destiné...
 
Rapport PFE faten_chalbi
Rapport PFE faten_chalbiRapport PFE faten_chalbi
Rapport PFE faten_chalbi
 
Rapport de projet de fin d'étude licence informatique et multimédia
Rapport de projet de fin d'étude licence informatique et multimédiaRapport de projet de fin d'étude licence informatique et multimédia
Rapport de projet de fin d'étude licence informatique et multimédia
 
Rapport Projet De Fin D'étude Développent d'une application web avec Symfony2
Rapport Projet De Fin D'étude Développent d'une application web avec Symfony2Rapport Projet De Fin D'étude Développent d'une application web avec Symfony2
Rapport Projet De Fin D'étude Développent d'une application web avec Symfony2
 
Contribution a la_realisation_dune_plate_forme_de_suivi_de_colis (1)
Contribution a la_realisation_dune_plate_forme_de_suivi_de_colis (1)Contribution a la_realisation_dune_plate_forme_de_suivi_de_colis (1)
Contribution a la_realisation_dune_plate_forme_de_suivi_de_colis (1)
 
Rapport du Projet de Fin d'année Génie informatique
Rapport du Projet de Fin d'année Génie informatique Rapport du Projet de Fin d'année Génie informatique
Rapport du Projet de Fin d'année Génie informatique
 
Rapport de stage PFE - Mémoire master: Développement d'une application Android
Rapport de stage PFE - Mémoire master: Développement d'une application AndroidRapport de stage PFE - Mémoire master: Développement d'une application Android
Rapport de stage PFE - Mémoire master: Développement d'une application Android
 
Rapport Projet de fin d'etude sur le parc informatique
Rapport Projet  de fin d'etude sur le parc informatiqueRapport Projet  de fin d'etude sur le parc informatique
Rapport Projet de fin d'etude sur le parc informatique
 
Ma présentation PFE
Ma présentation PFEMa présentation PFE
Ma présentation PFE
 
Projet de fin d'etude gestion informatique
Projet de fin d'etude gestion informatiqueProjet de fin d'etude gestion informatique
Projet de fin d'etude gestion informatique
 
Rapport pfe Conceptionet Developpement d'une Application web et Mobile
Rapport pfe Conceptionet Developpement d'une Application web et  Mobile Rapport pfe Conceptionet Developpement d'une Application web et  Mobile
Rapport pfe Conceptionet Developpement d'une Application web et Mobile
 
Rapport pfe-ayoub mkharbach
Rapport pfe-ayoub mkharbachRapport pfe-ayoub mkharbach
Rapport pfe-ayoub mkharbach
 
Rapport- Conception et réalisation d'une plateforme social learning
Rapport- Conception et réalisation d'une plateforme social learningRapport- Conception et réalisation d'une plateforme social learning
Rapport- Conception et réalisation d'une plateforme social learning
 
Rapport de stage de fin d'études ISI 2015
Rapport de stage de fin d'études ISI 2015Rapport de stage de fin d'études ISI 2015
Rapport de stage de fin d'études ISI 2015
 
RapportPFE_IngenieurInformatique_ESPRIT
RapportPFE_IngenieurInformatique_ESPRITRapportPFE_IngenieurInformatique_ESPRIT
RapportPFE_IngenieurInformatique_ESPRIT
 
Conception et Réalisation Application Web Laravel PFE BTS
Conception et Réalisation Application Web Laravel PFE BTSConception et Réalisation Application Web Laravel PFE BTS
Conception et Réalisation Application Web Laravel PFE BTS
 
Gestion de la_production_agricole_avec_openerp
Gestion de la_production_agricole_avec_openerpGestion de la_production_agricole_avec_openerp
Gestion de la_production_agricole_avec_openerp
 
Conception et réalisation d'une application web et mobile de e-commerce
Conception et réalisation d'une application web et mobile de e-commerceConception et réalisation d'une application web et mobile de e-commerce
Conception et réalisation d'une application web et mobile de e-commerce
 
Soutenance PFE ingénieur génie logiciel
Soutenance PFE ingénieur génie logicielSoutenance PFE ingénieur génie logiciel
Soutenance PFE ingénieur génie logiciel
 
Rapport de projet Odoo - gestion de projet et gestion de ressources humaines
Rapport de projet Odoo - gestion de projet et gestion de ressources humainesRapport de projet Odoo - gestion de projet et gestion de ressources humaines
Rapport de projet Odoo - gestion de projet et gestion de ressources humaines
 

Similaire à Mémoire de Projet de Fin d’Etudes

Openerp à la poste maroc
Openerp à la poste marocOpenerp à la poste maroc
Openerp à la poste marocHORIYASOFT
 
Rapport de pfe format doc 2013
Rapport de pfe format doc 2013Rapport de pfe format doc 2013
Rapport de pfe format doc 2013Addi Ait-Mlouk
 
Rapport-PfA-ACHKAOU-SARA.pdf
Rapport-PfA-ACHKAOU-SARA.pdfRapport-PfA-ACHKAOU-SARA.pdf
Rapport-PfA-ACHKAOU-SARA.pdfsaraachkaou
 
Rapport de stage d'initiation 2015 Mahmoudi Mohamed Amine
Rapport de stage d'initiation 2015 Mahmoudi Mohamed AmineRapport de stage d'initiation 2015 Mahmoudi Mohamed Amine
Rapport de stage d'initiation 2015 Mahmoudi Mohamed AmineMohamed Amine Mahmoudi
 
Rapport PFE ISMAGI SQLI Microsoft
Rapport PFE ISMAGI SQLI MicrosoftRapport PFE ISMAGI SQLI Microsoft
Rapport PFE ISMAGI SQLI MicrosoftOussama BAHLOULI
 
Mémoire_SciencesPo_Alexis-Legrand_L’INTERNET-DES-OBJETS,-UN-PAS-VERS-LA-TRAN...
Mémoire_SciencesPo_Alexis-Legrand_L’INTERNET-DES-OBJETS,-UN-PAS-VERS-LA-TRAN...Mémoire_SciencesPo_Alexis-Legrand_L’INTERNET-DES-OBJETS,-UN-PAS-VERS-LA-TRAN...
Mémoire_SciencesPo_Alexis-Legrand_L’INTERNET-DES-OBJETS,-UN-PAS-VERS-LA-TRAN...Alexis Legrand
 
Plonegov projet egov
Plonegov projet egov Plonegov projet egov
Plonegov projet egov HORIYASOFT
 
Rapport-de-perfectionnement-Jasser-Degani.pdf
Rapport-de-perfectionnement-Jasser-Degani.pdfRapport-de-perfectionnement-Jasser-Degani.pdf
Rapport-de-perfectionnement-Jasser-Degani.pdfAlaChihaoui1
 
Rapport de stage PFE ( DUT) chez Synthèse Conseil - Jaiti Mohammed
Rapport de stage PFE ( DUT) chez Synthèse Conseil  - Jaiti MohammedRapport de stage PFE ( DUT) chez Synthèse Conseil  - Jaiti Mohammed
Rapport de stage PFE ( DUT) chez Synthèse Conseil - Jaiti MohammedMohammed JAITI
 
Conception d'un module de gestion de la paie adapté au contexte marocain pour...
Conception d'un module de gestion de la paie adapté au contexte marocain pour...Conception d'un module de gestion de la paie adapté au contexte marocain pour...
Conception d'un module de gestion de la paie adapté au contexte marocain pour...HORIYASOFT
 
Hamdaoui abdelilah
Hamdaoui abdelilahHamdaoui abdelilah
Hamdaoui abdelilahMoez Moezm
 
PFE::Conception et développement du Back Office d'une application mobile de g...
PFE::Conception et développement du Back Office d'une application mobile de g...PFE::Conception et développement du Back Office d'une application mobile de g...
PFE::Conception et développement du Back Office d'une application mobile de g...Rami Raddaoui
 
Rapport projet: relisation d'une app desktop
Rapport projet: relisation d'une app desktop Rapport projet: relisation d'une app desktop
Rapport projet: relisation d'une app desktop amat samiâ boualil
 
portail_captif.pdf
portail_captif.pdfportail_captif.pdf
portail_captif.pdfnabila201151
 
Gestion de la paie maroc avec openerp 7
Gestion de la paie maroc avec openerp 7 Gestion de la paie maroc avec openerp 7
Gestion de la paie maroc avec openerp 7 HORIYASOFT
 
Rapport de stage societe commerciale
Rapport de stage societe commercialeRapport de stage societe commerciale
Rapport de stage societe commercialesalek abdeljabar
 
458008733-Rapport-de-projet-de-fin-d-etudes.pdf
458008733-Rapport-de-projet-de-fin-d-etudes.pdf458008733-Rapport-de-projet-de-fin-d-etudes.pdf
458008733-Rapport-de-projet-de-fin-d-etudes.pdfsoyedmohamed
 
Platform freelance ASP .NET / C#
Platform freelance ASP .NET / C# Platform freelance ASP .NET / C#
Platform freelance ASP .NET / C# Saâd Zerhouni
 

Similaire à Mémoire de Projet de Fin d’Etudes (20)

Openerp à la poste maroc
Openerp à la poste marocOpenerp à la poste maroc
Openerp à la poste maroc
 
Rapport de pfe format doc 2013
Rapport de pfe format doc 2013Rapport de pfe format doc 2013
Rapport de pfe format doc 2013
 
Rapport-PfA-ACHKAOU-SARA.pdf
Rapport-PfA-ACHKAOU-SARA.pdfRapport-PfA-ACHKAOU-SARA.pdf
Rapport-PfA-ACHKAOU-SARA.pdf
 
Rapport de stage d'initiation 2015 Mahmoudi Mohamed Amine
Rapport de stage d'initiation 2015 Mahmoudi Mohamed AmineRapport de stage d'initiation 2015 Mahmoudi Mohamed Amine
Rapport de stage d'initiation 2015 Mahmoudi Mohamed Amine
 
Rapport PFE ISMAGI SQLI Microsoft
Rapport PFE ISMAGI SQLI MicrosoftRapport PFE ISMAGI SQLI Microsoft
Rapport PFE ISMAGI SQLI Microsoft
 
Mémoire_SciencesPo_Alexis-Legrand_L’INTERNET-DES-OBJETS,-UN-PAS-VERS-LA-TRAN...
Mémoire_SciencesPo_Alexis-Legrand_L’INTERNET-DES-OBJETS,-UN-PAS-VERS-LA-TRAN...Mémoire_SciencesPo_Alexis-Legrand_L’INTERNET-DES-OBJETS,-UN-PAS-VERS-LA-TRAN...
Mémoire_SciencesPo_Alexis-Legrand_L’INTERNET-DES-OBJETS,-UN-PAS-VERS-LA-TRAN...
 
Plonegov projet egov
Plonegov projet egov Plonegov projet egov
Plonegov projet egov
 
Rapport-de-perfectionnement-Jasser-Degani.pdf
Rapport-de-perfectionnement-Jasser-Degani.pdfRapport-de-perfectionnement-Jasser-Degani.pdf
Rapport-de-perfectionnement-Jasser-Degani.pdf
 
Rapport de stage PFE ( DUT) chez Synthèse Conseil - Jaiti Mohammed
Rapport de stage PFE ( DUT) chez Synthèse Conseil  - Jaiti MohammedRapport de stage PFE ( DUT) chez Synthèse Conseil  - Jaiti Mohammed
Rapport de stage PFE ( DUT) chez Synthèse Conseil - Jaiti Mohammed
 
Conception d'un module de gestion de la paie adapté au contexte marocain pour...
Conception d'un module de gestion de la paie adapté au contexte marocain pour...Conception d'un module de gestion de la paie adapté au contexte marocain pour...
Conception d'un module de gestion de la paie adapté au contexte marocain pour...
 
Hamdaoui abdelilah
Hamdaoui abdelilahHamdaoui abdelilah
Hamdaoui abdelilah
 
PFE::Conception et développement du Back Office d'une application mobile de g...
PFE::Conception et développement du Back Office d'une application mobile de g...PFE::Conception et développement du Back Office d'une application mobile de g...
PFE::Conception et développement du Back Office d'une application mobile de g...
 
Rapport projet: relisation d'une app desktop
Rapport projet: relisation d'une app desktop Rapport projet: relisation d'une app desktop
Rapport projet: relisation d'une app desktop
 
portail_captif.pdf
portail_captif.pdfportail_captif.pdf
portail_captif.pdf
 
rapport
rapportrapport
rapport
 
Gestion de la paie maroc avec openerp 7
Gestion de la paie maroc avec openerp 7 Gestion de la paie maroc avec openerp 7
Gestion de la paie maroc avec openerp 7
 
Rapport de stage societe commerciale
Rapport de stage societe commercialeRapport de stage societe commerciale
Rapport de stage societe commerciale
 
458008733-Rapport-de-projet-de-fin-d-etudes.pdf
458008733-Rapport-de-projet-de-fin-d-etudes.pdf458008733-Rapport-de-projet-de-fin-d-etudes.pdf
458008733-Rapport-de-projet-de-fin-d-etudes.pdf
 
Platform freelance ASP .NET / C#
Platform freelance ASP .NET / C# Platform freelance ASP .NET / C#
Platform freelance ASP .NET / C#
 
Rapport stage
Rapport stageRapport stage
Rapport stage
 

Mémoire de Projet de Fin d’Etudes

  • 1. 1
  • 2. 2 Dédicace A mes très chers parents, Aucun mot, aucune dédicace ne saurait exprimer mon respect, ma considération et l’amour éternel pour les sacrifices que vous avez déployés pour mon instruction et mon bien être dans les meilleures conditions. A mes chères sœurs, En témoignage de l’attachement, de l’amour et de l’affection que je leurs porte. A toute ma famille, A tous mes chers amis, A tous ceux qui m’aiment, Je dédie ce travail… Aicha OUALLA
  • 3. 3 Remerciements Je tiens tout d’abord à remercier Dieu le tout puissant et miséricordieux, qui m’a donné la force et la patience d’accomplir ce Modeste travail. Je tiens à remercier toutes les personnes qui ont participé de différentes façons à la réussite de mon stage et plus particulièrement les personnes que je cite ci-dessous. Monsieur Mohamed EL KHAILI le directeur général de l’entreprise, pour m'avoir accueilli dans la société Cayley Consulting. Monsieur Zouhayr RICH mon encadrant de stage, qui m'a accordé de son temps malgré leur planning chargé, ses efforts pour m’intégrer dans l’environnement de la réalisation des projets informatiques et son dévouement et ses précieux conseils. Monsieur Abdellatif N'AIT BOUJEMAA, mon encadrant de stage, pour sa gentillesse, ses conseils et son orientation afin de mener ce travail jusqu’au bout au long de la période du stage, qu’est passée dans des très bonnes conditions. Monsieur Daiif mon encadrant de l’ENSET-Mohammedia pour leur disponibilité, leurs directives et les conseils pertinents qui m’aprodigués tout au long de ce stage. L’équipe pédagogique de L’Ecole Normale Supérieure de l’Enseignement Technique de Mohammedia (ENSET-M), les professeurs du département Mathématiques et Informatique, pour leur présence, leurs encouragements renouvelés et leurs contributions tout au long de cette formation. Je tiens également à exprimer l’honneur que me font les membres du jury pour avoir accepté à m’encadrer et évaluer mon travail. Finalement, je remercie tous ceux qui ont contribué de près ou de loin à la réalisation de ce travail.
  • 4. 4 Résumé Le présent rapport synthétise le travail effectué dans le cadre du projet de fin d'études au sein de la société Cayley Consulting group, et qui est constitué de trois parties principales : Dans la première partie, je vais présenter le cadre général du projet. Pour ce faire, je vais présenter, dans un premier lieu, l'entreprise d'accueil. Ensuite, j'introduis les ERP et le progiciel Odoo utilisé dans cette entreprise, ainsi que la présentation du projet : la problématique, les objectifs et la méthodologie du travail. L’objectif de la deuxième partie est de présenter le module WMS (Warehouse Management Systems) sous Odoo version 8, il permet de gérer le stock et l’entrepôt; qui servent principalement à déterminer le niveau de stock de l’entreprise, et adresser le produit reçu ou le produit fini au meilleur emplacement. Pour ce faire, j’ai tout d’abord procédé à une analyse de l’existent. Ensuite, j’ai développé un module qui permet de répondre aux différents besoins exprimés. La troisième partie consiste à présenter l’application mobile pour les appareils Android, qui permet de scanner le code barre à travers L’appareil photo du téléphone qui lit le code barre d’un article et l’intègre. Pour cela, tout d’abord j’ai analysé d’une façon profonde les besoins mentionnés afin de définir le périmètre du projet. Parallèlement, j’ai procédé à une étude technique. Enfin, je me suis concentré sur la mise en œuvre et le déploiement de l’ensemble des fonctionnalités. Mots-clefs : ERP, ODOO, WMS, inventaire, stock
  • 5. 5 Liste d’abréviations Tableau 1: liste d'abréviation Abréviation Désignation ERP Enterprise Resource Planning WMS Warehouse management systems UML Unified Modeling Language MVC Model Controller View SGBDOR Système de gestion de base de données objet-relationnel XML Extensible Markup Language 2TUP Two Track Unified Process XML-RPC XML- Remote Procedure Call NTIC Nouvelles Technologies de l'Information et de la Communication BPO Business Process Outsourcing BU Business Unit
  • 6. 6 Liste des figures Figure 1: fleur de Lovelock .................................................................................................................... 14 Figure 2: logo de cayley consulting ....................................................................................................... 15 Figure 3: les services de Cayley consulting............................................................................................ 16 Figure 4: logo d'ODOO........................................................................................................................... 16 Figure 5: logo de pentaho ..................................................................................................................... 17 Figure 6: logo d'Alfresco........................................................................................................................ 17 Figure 7: les clients de Cayley Consulting.............................................................................................. 19 Figure 8: les partenaires de Cayley Consulting...................................................................................... 19 Figure 9: L'historique des versions d’Odoo........................................................................................... 21 Figure 10: structure d'un module ODOO .............................................................................................. 22 Figure 11: architecture MVC ................................................................................................................. 23 Figure 12: Cycle de développement en Y.............................................................................................. 26 Figure 13: Diagramme de Gantt............................................................................................................ 28 Figure 14:Les emplacements banalisés ou aléatoires........................................................................... 33 Figure 15:Les emplacements identifiés ou affectés.............................................................................. 33 Figure 16:Plan de l’entrepôt vu de haut................................................................................................ 34 Figure 17:compostion d'une adresse d'un emplacement..................................................................... 35 Figure 18: la fiche d'article .................................................................................................................... 36 Figure 19:Catégorie des produits.......................................................................................................... 37 Figure 20:Type de contenance .............................................................................................................. 37 Figure 21: Type de conditionnement .................................................................................................... 37 Figure 22: diagramme de cas d'utilisation global.................................................................................. 40 Figure 23:Diagramme de cas d’utilisation « Gérer article ».................................................................. 44 Figure 24:Diagramme de cas d’utilisation « Gérer les emplacements »............................................... 44 Figure 25:Diagramme de cas d’utilisation « gérer les opérations »...................................................... 45 Figure 26: Diagramme de séquence « Authentification »..................................................................... 46 Figure 27: Diagramme de séquence « Afficher liste des articles » ....................................................... 47 Figure 28: Diagramme de séquence « Créer un article »...................................................................... 47 Figure 29: diagramme de séquence "La mise à jour d’un article" ........................................................ 48 Figure 30: Diagramme de cas d'utilisation "Générer le code barre" .................................................... 48 Figure 31: diagramme de séquence "Liste des mouvements "............................................................. 49 Figure 32: diagramme de classe de systeme......................................................................................... 50 Figure 33: Logo d'ubuntu ...................................................................................................................... 52 Figure 34: logo de PostgreSQL............................................................................................................... 53 Figure 35: logo de Python...................................................................................................................... 54 Figure 36:Page d’authentification......................................................................................................... 56 Figure 37:Installation des modules ....................................................................................................... 57 Figure 38:Tableau de bord .................................................................................................................... 57 Figure 39:Gestion d’achat ..................................................................................................................... 58 Figure 40: Bon de commande ............................................................................................................... 58 Figure 41:gestion des approvisionnements .......................................................................................... 60 Figure 42: Les mouvements de stock.................................................................................................... 60 Figure 43: Création d’un nouvel article................................................................................................. 61 Figure 44: Variante d’article.................................................................................................................. 61 Figure 45: Créer un entrepôt................................................................................................................. 62
  • 7. 7 Figure 46: Créer une nouvelle zone ...................................................................................................... 62 Figure 47: Créer l'allée........................................................................................................................... 63 Figure 48: Créer et identifier l’emplacement........................................................................................ 63 Figure 49: Diagramme de cas d’utilisation............................................................................................ 66 Figure 50: Diagramme de classe............................................................................................................ 67 Figure 51: Logo d'Android ..................................................................................................................... 68 Figure 52: Logo de java.......................................................................................................................... 69 Figure 53: Les interfaces d’authentification.......................................................................................... 70 Figure 54: Authentification OK.............................................................................................................. 71 Figure 55: lancement de scan................................................................................................................ 71 Figure 56: détection de code barre....................................................................................................... 72
  • 8. 8 Liste des tableaux Tableau 1: liste d'abréviation.................................................................................................................. 5 Tableau 2: Fiche technique de Cayley Consulting.................................................................................. 18 Tableau 3: Comparaison des méthodes de développement ................................................................ 25 Tableau 4: les acteurs de systéme......................................................................................................... 40 Tableau 5: description de cas d’utilisation « Gérer les utilisateurs ».................................................... 41 Tableau 6:description de cas d’utilisation « Gérer les articles »........................................................... 41 Tableau 7:description de cas d’utilisation « Gérer les emplacements »............................................... 42 Tableau 8: description de cas d’utilisation « Afficher l'historique du mouvement» ............................ 42 Tableau 9: Description de cas d'utilisation "Etiqueter les articles" ...................................................... 42 Tableau 10: Description de cas d’utilisation « Gérer les opérations»................................................... 43 Tableau 11: description de cas d’utilisation « Réorganiser le stock» ................................................... 43
  • 9. 9 Table des matières Introduction générale...............................................................................................................12 Partie 1 : Contexte général de mon projet de fin d’études ..................................................... 13 I. Présentation de la société............................................................................................. 14 2. Les services de Cayley Consulting Group......................................................................15 3. Fiche technique .........................................................................................................18 4. Les clients de Cayley Consulting Group.....................................................................19 5. Les partenaires de Cayley Consulting Group ............................................................... 19 II. ODOO, un progiciel libre de gestion intégré.................................................................20 1. Présentation générale des ERPs ................................................................................20 2. Vue d’ensemble du progiciel « Odoo » .....................................................................20 3. Architecture modulaire sous Odoo ...........................................................................22 III. Cadre général des projets.......................................................................................... 23 1. L’application mobile sous android « Gestion d’inventaire ».....................................23 2. L’amélioration du module WMS « Gestion d’entrepôt »..........................................24 3. Choix méthodologique .............................................................................................. 24 4. Planification des projets ............................................................................................ 28 Partie 2 : Amélioration du module WMS (Warehouse Management Systems) sous Odoo V8. .................................................................................................................................................. 29 I. Préambule ..................................................................................................................... 30 II. Etude de l’existant.........................................................................................................30 1. Avantages de l’existant.............................................................................................. 31 2. Inconvénients de l’existant........................................................................................ 31 3. Spécification des besoins........................................................................................... 31 4. Conclusion ................................................................................................................. 31 I. La codification dans un entrepôt.................................................................................. 32 1. L’adressage des emplacements................................................................................. 32 2. La définition des articles............................................................................................ 36 3. La codification des articles ........................................................................................ 36 4. Conclusion ................................................................................................................. 38 I. Conception fonctionnel du système .............................................................................39 1. Les diagrammes de cas d’utilisation..........................................................................39
  • 10. 10 2. Diagramme de séquence........................................................................................... 46 3. Digramme de classes .................................................................................................50 4. Synthèse..................................................................................................................... 51 I. Technologies mises en œuvre....................................................................................... 52 1. Ubuntu....................................................................................................................... 52 2. PostgreSQL................................................................................................................. 53 3. Python........................................................................................................................ 54 4. XML............................................................................................................................ 55 II. Réalisation du système..................................................................................................56 1. Page d’authentification ............................................................................................. 56 2. Installation des modules............................................................................................ 57 3. Tableau de bord.........................................................................................................57 4. Gestion d’achat..........................................................................................................58 5. La gestion des approvisionnements..........................................................................60 6. Les mouvements de stock ......................................................................................... 60 7. Création d’un nouvel article ...................................................................................... 60 8. Variante d’article .......................................................................................................61 9. Créer un entrepôt......................................................................................................62 10. Créer une nouvelle zone........................................................................................ 62 11. Créer l’allée ............................................................................................................63 12. Créer et identifier l’emplacement .........................................................................63 Partie 3 : Réalisation d’une application mobile de gestion d’inventaire .................................64 I. Cahier des charges ........................................................................................................65 1. Présentation du projet............................................................................................... 65 2. Recueil des besoins fonctionnels...............................................................................65 I. Conception fonctionnel du système .............................................................................66 1. Diagramme de cas d’utilisation ................................................................................. 66 2. Diagramme de classe.................................................................................................67 3. Synthèse..................................................................................................................... 67 I. Technologies mises en œuvre....................................................................................... 68 1. Systéme d’exploitation Android................................................................................68 2. Java ............................................................................................................................ 69 II. Réalisation du système..................................................................................................70
  • 11. 11 1. L’interface d’authentification ....................................................................................... 70 3. Scanner article...........................................................................................................71 4. Actions en cours ........................................................................................................72 5. Action à venir.............................................................................................................72 Conclusion générale................................................................................................................. 73 Webographie & Bibliographie..................................................................................................74 Annexes....................................................................................................................................75
  • 12. 12 Introduction générale La mondialisation consolide indéfiniment la compétition et la coopération entre les différents acteurs du marché. Ainsi, l’entreprise doit continuellement développer et améliorer sa méthode de pilotage et optimiser ses processus. Pour ce faire, l’ERP demeure le choix le plus pertinents et le levier majeur de l’adaptabilité de l’entreprise. Ce type de logiciel a considérablement évolué et les petites et moyennes entreprises sont dorénavant des cibles par ce type de solutions. Pour cette raison, la société Cayley Consulting Group, cherche à répondre aux besoins et aux attentes des différentes petites et moyennes entreprises, qui visent à avoir une meilleure solution pour la gestion de leurs processus. La gestion des stocks est un élément essentiel de bonne gestion de l’entreprise. Il est donc nécessaire d’utiliser des systèmes d’information assez efficace pour parvenir à gérer convenablement les fluctuations de ses flux. A cet égard, Cayley Consulting m’a proposé comme projet de fin d’études, l’amélioration du module WMS (Warehouse Management Systems) sous Odoo V8. En effet, un module WMS intelligemment intégré dans un système ERP peut donner des directives aux collaborateurs logistiques d’une manière organisée et transparente, cependant le module WMS du système ERP en question (OpenErp/Odoo) n’offre pas les solutions adéquates à une bonne gestion logistique au niveau d’un entrepôt, il est donc nécessaire de l’améliorer et de le reconcevoir selon les attentes des clients (PME) en matière de gestion. Le présent mémoire décrit donc l’essentiel du travail réalisé lors de mon stage. J’ai jugé nécessaire de le structurer en 4 parties. Dans le premier, nous définissons le contexte général de notre stage, à savoir, la présentation de l’organisme d’accueil, ainsi que la présentation des projets, de leur déroulement et de la méthodologie suivie. Je vais aussi donner un aperçu sur le progiciel Odoo V8.
  • 13. 13 Partie 1 : Contexte général de mon projet de fin d’études __________________________________________________________________________________ Cette première partie présente une vue générale sur mon projet de fin d’études intitulé « Amélioration du module WMS sous ODOO et la création d’une application mobile pour la gestion d'inventaire ». Elle se compose de quatre chapitres :  Le premier chapitre est consacré à la présentation de l’organisme d’accueil.  Le deuxième chapitre présente un aperçu sur le progiciel Odoo V8  Cadre général des projets  Le dernier chapitre présente la démarche suivie pour assurer son bon déroulement dans les délais fixés.
  • 14. 14 I. Présentation de la société 2. Présentation de la société Crée en janvier 2013, issue d’un concept nouveau de marketing pour commercialiser les services aux entreprises, Cayley Consulting inspire ses prestations de la théorie de la fleur de Lovelock. En effet, chaque prestation correspond à un savoir métier à la possession de Cayley Consulting qu’elle peut griffer dans la chaine de valeur de son client. En décortiquant la signification des pétales de la fleur de Lovelock et en mettant le client dans une situation participative au développement du service offert, Cayley Consulting a pu mettre sa stratégie au tour de quatre axes principaux :  Conseil juridique et financier  Dev.Com & BPO  Conseil Process  NTIC Figure 1: fleur de Lovelock
  • 15. 15 2. Les services de Cayley Consulting Group Les quatre axes sont détaillés sous forme de services rendus aux entreprises comme suit : Conseil juridique et financier Juridique entreprise Tenue de comptabilité Diagnostics financiers Audit/Bilan Valorisation Dev.Com & BPO Accompagnement commercial CRM Animation de compagnes Représentation commerciale Back office Externalisation des activités d’entreprise Qualification de fichiers prospects Figure 2: logo de cayley consulting Conseil Process Ingénierie Industrielle Audit/Bilan énergétique Valorisation des rejets et déchets industriels NTIC Location d’applications Développement d’applications Web Design Infogérance Piloté par un responsable, chaque axe constitue un département géré d’une manière autonome sous forme d’un Business Unit (BU).
  • 16. 16 2.1. BU BPO de Cayley Consulting Le BPO permet de :  Rendre les entreprises plus flexibles et de réduire les coûts d’exploitation;  Enlever un poids administratif et donner la possibilité à l’entreprise de se concentrer sur son cœur de métier;  Céder les process non-stratégiques à un tiers;  Eviter des investissements importants à la société;  Réduire ses coûts salariaux;  Bénéficier d’une expertise qu’elle n’aurait peut-être pas trouvée en interne.  Apporter plus d’agilité et de réactivité à l’entreprise;  Favoriser la conduite de changement et l’adoption de nouveaux business modèles innovants. 2.2. BU NTIC Cayley consulting offre aux clients des solutions dans les domaines suivants : Parmi les solutions de Cayley consulting dans le domaine de NTIC : Gestion Intégré (PGI / ERP) basé sur les dernières technologies, Odoo est doté d’une flexibilité unique. L’architecture modulaire d’Odoo permet de débuter avec des fonctionnalités de base et de croître en fonction de l’évolution de vos besoins. Figure 3: les services de Cayley consulting Figure 4: logo d'ODOO
  • 17. 17 construit le futur de l'analytique en liant étroitement intégration de données et analytique sur une plate-forme moderne qui permet au service informatique et aux utilisateurs d'accéder, de visualiser et d’explorer facilement toutes les données stratégiques de l'entreprise. Une plateforme Open-Source, évolutive de gestion de contenu qui s'adapte aux besoins spécifiques de votre entreprise. Basée sur des standards ouverts, elle permet aux utilisateurs d'accéder à leurs contenus depuis Internet, leur poste de travail, leur messagerie électronique, etc. L'accès et la sécurité sont contrôlés par le serveur. 2.3. BU Conseil Process Le département CONSEIL PROCESS est géré par un Responsable de Département en tant que centre de profit de Cayley Consulting avec une autonomie de gestion des ressources dédiées. Sous la direction d’un chef de projet, des consultants fonctionnels et techniques assurent la communication avec les clients pour valider les besoins, délimiter le périmètre de chaque mission et assurer la bonne marche de développement. Agissant en tant que Bureau des études, le département CONSEIL PROCESS s’occupe aussi des actions R&D pour le compte de ses clients privés ou publics. Le BU CONSEIL PROCESS offre à ses clients les prestations de service suivantes :  Ingénierie Industrielle  Audit/Bilan énergétique  Valorisation des rejets et déchets industriels 2.4. BU Dev’Com (Développement Commercial) Le BU DEV’Com offre à ses clients les prestations de service suivantes :  La gestion des relations client  Conseil en stratégie marketing et commerciale  Accompagnement à la création de marque  Supervision et suivi commercial Figure 5: logo de pentaho Figure 6: logo d'Alfresco
  • 18. 18  Administration des vents 3. Fiche technique Le tableau ci-dessous représente la fiche technique de Cayley Consulting : Raison social Cayley Consulting S.A.R.L Forme juridique Société anonyme Activité * Conseil juridique et financier * Dev.Com & BPO * NTIC * Conseil Process Effectif 5 permanents et une dizaine de consultants et freelance Capital social 10 000,00 DH Date et lieu de création 2013 à Mohammedia Adresse Immeuble Ouflé App. N°5 Bd Farhat Hachad Mohammedia Registre de commerce C.N.S.S Patente Identifiant Fiscal Lignes téléphoniques +212 (05) 23 32 63 69 Téléfax +212 (05) 23 32 60 89 E-mail contact@cayleyconsulting.com Site web www. cayleyconsulting.com Tableau 2: Fiche technique de Cayley Consulting
  • 19. 19 4. Les clients de Cayley Consulting Group 5. Les partenaires de Cayley Consulting Group Figure 7: les clients de Cayley Consulting Figure 8: les partenaires de Cayley Consulting
  • 20. 20 II. ODOO, un progiciel libre de gestion intégré 1. Présentation générale des ERPs L’acronyme ERP signifie « Enterprise Ressource Planning » traduit en français par Progiciel de Gestion Intégré ou PGI. C’est un progiciel qui permet de gérer l’ensemble des processus d’une entreprise intégrant l’ensemble de ses fonctions comme la gestion des ressources humaines, la gestion financière et comptable, l’aide à la décision, la vente, la distribution, l’approvisionnement, la production ou encore le e-Commerce. On distingue deux types d’ERP: les ERP propriétaires, édités par des sociétés, ce qui implique l’achat d’une licence, et les ERP open source qui sont « gratuits ». Dans notre projet Nous nous intéressons à la catégorie des ERP open-source et plus particulièrement à ODOO Version 8. 2. Vue d’ensemble du progiciel « Odoo » Odoo est un progiciel de gestion d'entreprise (ERP) destiné à intégrer l'ensemble des données opérationnelles et de gestion de l'entreprise dans une base de données unique, accessible par une interface web. Cette base de données centrale est associée à une couche fonctionnelle très innovante qui met en relation des informations d'origines diverses et assure un déroulement efficace des processus transversaux de création de valeur ajoutée de l'entreprise. Odoo, anciennement OpenERP et Tiny ERP, est à la base un progiciel libre de gestion intégré comprenant de très nombreux modules permettant de simplifier la gestion d’entreprise dans son ensemble. Le logiciel est sous licence AGPL et est utilisé par plus de 2 millions d’utilisateurs à travers le monde. À l’origine un ERP, le logiciel s’est vu étendre ses fonctionnalités à des applications de front office (CMS, e-Commerce, Blogs, Forums, News, Événements, Live Chat, Job offers, etc). Il apporte les applications métier dont chacun a besoin dans l'entreprise. Cette approche modulaire facilite l'intégration de nouvelles fonctionnalités sous la forme de modules complémentaires. 2.1.Historique et notes des sorties Le 20 janvier 2011, OpenERP SA annonçait le lancement de la version 6.0 du logiciel, qui comprend une version à la demande (SaaS). Son approche modulaire permet aux utilisateurs de commencer avec une application, puis d'ajouter d'autres modules selon leurs besoins. En décembre 2012, la version 7.0 d'OpenERP est lancée et peut être testée en ligne, téléchargée ou
  • 21. 21 vue en version de démonstration. Mai 2014: OpenERP change de nom et devient Odoo. Eté 2014, Odoo lance la version 8. Cette version enrichit principalement le logiciel de nouvelles applications qui font d’Odoo un logiciel allant au-delà d'un ERP. Ces applications sont: Marketing (gestion d'événements, d'enquêtes de satisfactions, campagnes de mails auprès de la CRM,...), CMS (construction d'un site internet - front-end lié au back-end - grâce au déplacement rapide et simple de 'blocs" d'éditions), e-commerce (application pour vente en ligne),...  Première version stable : 2004  Version stable actuelle : 8.0  Version avancée : 9.0 Figure 9: L'historique des versions d’Odoo 2.2. Principales applications logicielles front office  Créateur de site web et système de gestion de son contenu, CMS  Vente en ligne, Ecommerce  Interface de point de vente (PDV) 2.3.Principales applications logicielles back office  Gestion de relation clients (CRM & SRM)  Gestion des ventes  Gestion de production  Gestion de projets  Gestion des stocks  Gestion des ressources humaines  Gestion des achats
  • 22. 22  Gestion logistique  Gestion de manufactures  Gestion comptable  Gestion des dépenses  Gestion des documents  Générateur de factures  Gestion et outils marketing 3. Architecture modulaire sous Odoo 3.1.Structure d’un module d’Odoo Tous les modules d’Odoo sont créés au-dessous du répertoire « odoo/odoo-server/addons » Figure 10: structure d'un module ODOO Un module sous odoo contient des fichiers obligatoires pour sa création et des fichiers optionnels suivants
  • 23. 23 La conception d'Odoo est orientée par une architecture MVC qui est une architecture de modèles utilisée en génie logiciel. Dans des applications complexes qui présentent des lots de données aux utilisateurs, on souhaite souvent séparer les données (modèle) et l'interface utilisateur (vue), de sorte que les changements à l'interface utilisateur n'affectent pas le traitement des données, et que les données peuvent être réorganisées sans changer l'interface utilisateur. Le MVC résout ce genre de problème en découplant l'accès des données et la logique des applications de la présentation des données et de l'interaction utilisateur, en introduisant un composant intermédiaire: « le contrôleur ». Sous Odoo, on peut appliquer cette sémantique de Model View Controller avec :  Model : les modèles sont les objets déclarés sous Odoo. Ils sont également des tables PostgreSQL.  View : les vues sont définies en fichiers XML dans Odoo.  Controller : le contrôleur est les classes Python qui contrôle OpenERP. III. Cadre général des projets Le contexte de chaque projet est un point très important à prendre en considération lors de son étude. La façon de gérer et de conduire un projet joue un grand rôle dans la détermination de son résultat final. Dans cette partie, je présente les deux projets réalisés, ainsi que la méthodologie de gestion et de conduite du projet suivies. 1. L’application mobile sous android « Gestion d’inventaire » C’est une application mobile pour les appareils Android, dédiée à toutes les entreprises pour la bonne gestion de stock qui facilite la réalisation des inventaires physique, cette application est basée sur les codes-barres qui restent à ce jour une technologie la plus simple et la plus économique. L’application permet de scanner de nombreux type de codes barre à travers Figure 11: architecture MVC
  • 24. 24 L’appareil photo du téléphone qui lit le code barre d’un article et l’intègre. Pour cela, tout d’abord j’ai analysé d’une façon profonde les besoins mentionnés afin de définir le périmètre du projet. Parallèlement, j’ai procédé à une étude technique. Enfin, je me suis concentré sur la mise en œuvre et le déploiement de l’ensemble des fonctionnalités. 2. L’amélioration du module WMS « Gestion d’entrepôt » La gestion des stocks est un élément essentiel de bonne gestion de l’entreprise. Il est donc nécessaire d’utiliser des systèmes d’information assez efficace pour parvenir à gérer convenablement les fluctuations de ses flux. Pour les besoins des clients j’ai développé des modules complémentaires Odoo- OpenERP pour la gestion avancée d’entrepôt (WMS), et s’est tracé à atteindre les objectifs suivants:  Mettre en place des algorithmes de gestion d’inventaire et de stock permettant de savoir précisément l’état des stocks et la localisation des produits.  Concevoir une application mobile pour le scan des articles entreposés et des emplacements.  Prévoir un algorithme qui génère des codes à barre pour les articles et les emplacements.  Améliorer la traçabilité. 3. Choix méthodologique 3.1.Processus du développement Pour bien mener notre mission, il est judicieux de suivre une démarche à la fois pragmatique et structurée. En effet, cela mènera à produire des solutions informatiques de qualité répondant aux besoins des utilisateurs, tout en respectant les délais, et en maitrisant les coûts prévues. Avant d’adopter une méthode, il faut d’abord faire une comparaison entre les différentes méthodes existantes, voir les points forts et les points faibles de chacune, puis déterminer celle qui va mieux dans le contexte du projet.
  • 25. 25 Ci-dessous un tableau qui résume cette comparaison : Description Points forts Points faibles Rational Unified Process (RUP) -Méthodologie centrée sur l’architecture et couplée aux diagrammes UML -Concerne des projets de +10 personnes -Processus complet assisté par des outils exhaustifs -Itératif -Spécifie le dialogue entre les différents intervenants du projet : les livrables, plannings et prototypes… -propose des modèles de documents, et des canevas pour des projets types -Rôles bien définis, modélisation -Coûteux à personnaliser -très axé processus, au détriment du développement -Lourd, largement étendu, il peut être difficile à mettre en œuvre de façon spécifique -Convient pour les grands projets qui génèrent beaucoup de documentation eXtreme Programming (XP) -Développement guidé par les besoins du client -Equipes réduites, centrées sur les développeurs -Itératif -Simple à mettre en œuvre -Laisse une large place aux aspects techniques -Builds journaliers -Amélioration constante adaptation aux modifications -Ne couvre pas les phases en amont et en aval du développement -Assez flou dans sa mise en œuvre : quels intervenants ? quels livrable ? -Focalisé sur l’aspect individuel du développement, ai détriment d’une vue globale et des pratiques de management ou de formalisation. Two Track Unified Process (2TUP) - Articulé autour de l'architecture -Cycle de développement en Y -Convient aux projets de toutes tailles -Itératif, laisse une large partie à la technologie et à la gestion du risque -Définit les profils des intervenants, les livrables, les prototypes -Superficiel sur les phases en amont et en aval du développement -Aucune proposition de document type Tableau 3: Comparaison des méthodes de développement
  • 26. 26 Pour le cas de mon projet, je me suis basé sur la méthodologie 2TUP, qui se base sur cinq principes fondamentaux :  Séparer les aspects fonctionnels et les aspects techniques.  Travailler selon deux points de vue qui se complètent et s’enrichissent mutuellement ; celui de l’entreprise, celui des applications.  Modéliser l’activité de l’entreprise et des applications aux moyens d’objets en utilisant UML.  Faire des maquettes et des prototypes pour affiner les besoins fonctionnels et les aspects techniques.  Effectuer la réingénierie des applications dans le sens de la réutilisation. Le schéma suivant montre bien le cycle en « Y » caractéristique de 2TUP. Figure 12: Cycle de développement en Y
  • 27. 27 3.2.Langage de modélisation : UML Une des phases clés dans le développement d'une application est sans doute la phase de conception. Durant cette phase, nous allons essayer de présenter les principales fonctionnalités à implanter, de réfléchir sur l'aspect structurel de l'application et de concevoir les scénarios d'utilisation de l'application. Le but est de réduire la complexité du développement et d'avoir une vision des différents angles de vues du système d'information. Pour ce projet, on opte pour la notation UML. UML est la forme contractée d'Unified Modeling Language, qui peut se traduire en français par langage unié pour la modélisation. UML représente l'état de l'art des langages de modélisation objet. Il fournit les fondements pour spécifier, construire, visualiser et décrire un système. Pour cela, UML se base sur une sémantique précise et sur une notation graphique expressive. Il définit des concepts de base et offre également des mé- canismes d'extension de ces concepts. UML n'est pas un langage propriétaire : il est accessible à tous les fabriquant d'outils, aussi les entreprises peuvent en faire usage. La volonté d'ouverture, la richesse et la notation de la définition sémantique précise des éléments de modélisation font d'UML un langage général et simple, sans être simpliste pour autant. Dans UML chaque diagramme permet d'exprimer certains points de vue d'un même problème. La combinaison de plusieurs diagrammes permettra donc d'avoir une vue complète du système. Ainsi en fonction du problème à résoudre, il convient de choisir les diagrammes adéquats à utiliser. UML définit neuf types de diagrammes dont nous dé- taillerons ceux que nous utiliserons dans la suite : Diagramme de cas d'utilisation : Les cas d'utilisation décrivent le comportement du système du point de vue utilisateur sous la forme d'actions et de réaction. Un cas d'utilisation indique une fonctionnalité du système déclenchée par un acteur externe au système. Ce genre de diagramme permet de mettre en place et de comprendre les besoins du client. Dans le diagramme, interviennent trois éléments : les acteurs, le système et les cas d'utilisations. L'acteur représente un rôle joué par une personne ou un autre système qui interagit avec système en cours de modélisation. Un cas d'utilisation regroupe plusieurs scénarios d'utilisation du système.
  • 28. 28 Diagramme de séquence : Les diagrammes de séquence permettent de représenter des collaborations entre objet selon un point de vue temporel, on y met l'accent sur la chronologie des envois de messages. Les diagrammes de séquences peuvent servir à illustrer un cas d'utilisation. Diagramme de classe : Le diagramme de classe est le point central du développement orienté objet. En analyse, il a pour objectif de décrire la structure des entités manipulées par les utilisateurs. En conception, le diagramme de classe représente la structure d'un code orienté objet ou, à un niveau de travail plus important, les modules du langage de développement. 4. Planification des projets La planification du projet fait partie des phases d’avant-projet. Son rôle est de donner une prévision du déroulement des tâches tout au long des phases constituant le cycle de développement. J’ai procédé à une planification détaillée pour définir les tâches à réaliser, fixer les objectifs et suivre l’état d’avancement des projets grâce aux réunions tenues avec l’encadrant interne, j’ai été capable alors d’élaborer un planning bien ficelé. Ce planning était sous forme d’un diagramme de Gantt et présente le planning prévisionnel du projet : Figure 13: Diagramme de Gantt Tout au long de la période de stage j’étais constamment assistée et suivie par mes encadrants qui m’ont étaient d’une grande aide à chaque fois qu’un blocage ou ambigüité se présentait.
  • 29. 29 Partie 2 : Amélioration du module WMS (Warehouse Management Systems) sous Odoo V8. __________________________________________________________________________________ La deuxième partie de ce rapport est consacrée à l’étude fonctionnelle et technique. Elle s’articule autour de quatre chapitres :  Le premier chapitre présente une étude préliminaire visant à donner une vue sur l’existant.  Le deuxième chapitre présente l’étude fonctionnelle, à travers la capture des besoins fonctionnels.  Le troisième chapitre présente la conception du projet.  Et le dernier chapitre présente la mise en œuvre.  .
  • 30. 30 Etude préliminaire I. Préambule L’étude de l’existant est une étape clé dans la réalisation de n’importe quelle application informatique, quel que soit le domaine concerné. Il s’agit d’une étude permettant de comprendre la problématique du projet. II. Etude de l’existant La gestion des stocks est un élément essentiel de bonne gestion de l’entreprise. Il est donc nécessaire d’utiliser des systèmes d’information assez efficace pour parvenir à gérer convenablement les fluctuations de ses flux. De nos jours, les PME Marocaines ont tendance à travailler avec des logiciels en mode SaaS afin de centraliser, piloter et consolider les données. Dans ce cadre Cayley Consulting fournit aux PME des solutions informatiques d’aide à la gestion en implantant un progiciel open-source de gestion intégrée ERP qui inclut des modules WMS de gestion de stock et d’entrepôt; qui servent principalement à déterminer le niveau de stock de l’entreprise, et adresser le produit reçu ou le produit fini au meilleur emplacement. En effet, un module WMS intelligemment intégré dans un système ERP peut donner des directives aux collaborateurs logistiques d’une manière organisée et transparente, cependant le module WMS du système ERP en question (OpenErp/Odoo) n’offre pas les solutions adéquates à une bonne gestion logistique au niveau d’un entrepôt, il est donc nécessaire de l’améliorer et de le reconcevoir selon les attentes des clients (PME) en matière de gestion. Dans ce chapitre je présente une étude préliminaire sur le projet en commençant par l’étude de l’existant, la problématique et enfin une synthèse.
  • 31. 31 1. Avantages de l’existant Les fonctionnalités qui existent en l’occurrence dans le WMS :  La gestion du stock pour préparer et expédier les commandes clients.  L’enregistrement des flux physiques (entrées, sorties)  La mise à disposition des documents administratifs.  La saisie et l’historisation des articles.  Facturation entreposage et prestations logistiques (la saisie, l’exécution et la mise à jour) 2. Inconvénients de l’existant Si le module WMS standard fournisse certains avantages mais Il renferme néanmoins plusieurs manques au niveau de fonctionnalités de ce module dont la critique ne peut qu’être bénéfique pour notre projet. 3. Spécification des besoins  Mettre en place des algorithmes de gestion d’inventaire et de stock permettant de savoir précisément l’état des stocks et la localisation des produits.  Concevoir une application mobile pour le scan des articles entreposés et des emplacements.  Prévoir un algorithme qui génère des codes à barre pour les articles et les emplacements.  Améliorer la traçabilité. 4. Conclusion La description détaillée du système existant qui ouvre ce chapitre a permis de délimiter les problèmes à résoudre dans le contexte actuel. Quant à la partie critique de l’existant, elle a permis de dégager et de formaliser les besoins des futurs utilisateurs de l’application. Le chapitre suivant est consacré à l’établissement d’une étude fonctionnelle qui est une étape indispensable afin d’élaborer une bonne conception.
  • 32. 32 Étude Fonctionnelle Le module WMS doit être amélioré pour permettre de :  Connaître quantitativement et qualitativement l’activité des stocks en temps réel.  Réduire et éviter les erreurs de préparation.  Améliorer l’exploitation des moyens et des emplacements.  Améliorer la traçabilité. I. La codification dans un entrepôt 1. L’adressage des emplacements L’adressage des emplacements consiste à déterminer des règles permettant au magasinier de se repérer dans l’espace de stockage et de repérer plus particulièrement les produits qu’il doit prélever et manutentionner dans la structure de stockage. Un bon adressage doit donc être clair, précis et efficace. Dans la pratique, les entrepôts utilisent deux grands systèmes de repérage des emplacements.  Les emplacements banalisés ou aléatoires  Les emplacements identifiés ou affectés  Premier système : les emplacements banalisés ou aléatoires : Les produits/colis sont placés par famille ou/et par critère (critère de rentabilité, de rotation…) dans des grandes zones de l‘entrepôt. Dans chaque zone, les produits sont stockés dans les emplacements disponibles de façon aléatoire. La structure de stockage accueille ainsi le plus grand nombre de colis possible car ceux-ci n’ont pas d’emplacement réservé. Ce principe rend difficile le repérage des marchandises lorsque l‘entrepôt a une grande superficie et lorsqu’ il y a un grand nombre de références. Dans ce chapitre, je présente une étude fonctionnelle susceptible de nous fournir une connaissance du métier. La connaissance du métier est indispensable pour mener une bonne conception, et par la suite aborder la réalisation de l’application
  • 33. 33  Second système : Les emplacements identifiés ou affectés : Les produits/colis ont ici un emplacement affecté dans la structure de stockage. Ils sont localisés par une adresse de stockage. L’adresse représente un code qui dirige le magasinier à sa destination de prélèvement ou stockage. Ce principe consiste à donner à un emplacement un code composé de chiffres (numérique) ou encore de chiffres et de lettres (alphanumériques). L’adresse est à la fois repérable sur le produit (étiquette, code barre…), sur la fiche de stock et sur l’emplacement de stockage, facilitant ainsi les tâches quotidiennes du magasinier. Le déchiffrage du cde permet d’identifier :  La zone ou l’allée de stockage.  Le niveau de stockage.  L’emplacement sur le niveau. Les produits/colis ont ici un emplacement affecté dans la structure de stockage, ils sont localisés par une adresse de stockage. Figure 15:Les emplacements identifiés ou affectés Figure 14:Les emplacements banalisés ou aléatoires
  • 34. 34 1. Exemple de la localisation des emplacements : Une entreprise a mis en place un adressage alphanumérique pour localiser ces produits. Les principes suivants sont les règles propres à l’entreprise pour gérer le stock :  L’aire de stockage est composée de 3 zones :  Zone A : famille téléphonie.  Zone B : famille audio-vidéo.  Zone C : famille informatique.  Chaque zone est composée de 4 allées.  Chaque palettier comporte 3 travées et 4 niveaux (avec celui du picking au sol).  Sur chaque niveau de la travée, on positionne 3 palettes. Ci-dessous un plan de l’entrepôt de l’entreprise Figure 16:Plan de l’entrepôt vu de haut
  • 35. 35 Dans l’entrepôt chaque emplacement doit être identifié par un code à barre comportant les caractéristiques suivant : Figure 17:compostion d'une adresse d'un emplacement
  • 36. 36 2. La définition des articles Le module WMS permet de saisir et d’enregistrer les caractéristiques qui figurent sur la fiche article : 3. La codification des articles Bien connaître les produits est essentiel pour faciliter le travail du magasinier et pour l’organisation d’un magasin de stockage. Il est donc nécessaire de :  Identifier les produits,  Les localiser, Figure 18: la fiche d'article
  • 37. 37  Les classer, Afin que les activités logistiques, administratives et commerciales soient optimisées. Le problème est donc d’identifier un très grand nombre de produits dans une surface de stockage. La codification est une solution appropriée. Ce code doit être facilement identifiable par les utilisateurs et exploitable informatiquement.  Une codification peut être établie par le responsable du magasin : Soit en créant son propre système de codage: le code article sera défini en fonction des caractéristiques techniques et commerciales du produit. Il devra être reconnu par tous les utilisateurs.  Soit en utilisant un code standard: Il sera reconnu par les membres de l’entreprise et aussi par les partenaires du secteur d’activité. Il peut s’agir, par exemple, de code à barres. La codification permet de gagner de la place sur les supports d’information, de gagner du temps lors de l‘enregistrement de ces derniers et de les présenter de manière claire et homogène en évitant les erreurs. A l’aide des tableaux ci-dessous, on peut retrouver les différents codes pour chaque article. Dans un premier temps, on classe ces produits par catégorie. Les catégories d’articles sont proposées dans le tableau ci-dessous. Figure 19:Catégorie des produits Figure 21: Type de conditionnement Figure 20:Type de contenance
  • 38. 38 On peut désormais coder les articles suivant le plan de codification proposé, par exemple : Méthode pour calculer la clé de contrôle : Additionner les 6 premiers chiffres du code de la référence. Soustraire la somme à la dizaine supérieure. Le résultat devient la clé de contrôle. Par exemple : 0 + 5 + 1 + 8 + 8 + 1 = 23 30 – 23 = 7 Ce résultat devient la clé de contrôle La référence devient : 05 18 81 7 4. Conclusion Certes, l’étude fonctionnelle est une étape incontournable pour entamer la phase de conception. Elle m’a permis de comprendre les démarches à suivre pour mener d’une façon adéquate les traitements qu’exige la gestion de l’entrepôt. Le chapitre suivant est consacré à l’élaboration du dossier de conception.
  • 39. 39 Conception du projet I. Conception fonctionnel du système L’étape de conception est très importante pour la réussite d’un projet informatique car elle permet de rendre le développement plus fidèle aux besoins du client ainsi elle vise à définir une feuille de route du projet, le concevoir et le valider avant de passer au développement du système. Elle permet aussi d’avoir une bonne réflexion avant de passer à l’action, une bonne organisation du travail et une bonne communication entre les différents intervenants dans le projet. Nous avons utilisé des diagrammes UML pour cette étape, vu qu’il est le plus approprié pour les projets informatiques orientés objet, et aussi car ses diagrammes facilitent la lisibilité et la compréhension des modèles même pour les ceux qui sont loin du domaine informatique. Le principal avantage d'UML est qu'il est devenu le standard en termes de modélisation objet, son caractère polyvalent et performant et sa souplesse en fait un langage universel. 1. Les diagrammes de cas d’utilisation Les cas d’utilisation ont pour objectif l’illustration du fonctionnement du système vis-à-vis de l’utilisateur, il représente donc une vue du système en question dans son environnement externe. 1.1. Identification des acteurs L'analyse dans la démarche d'UML débute par la recherche des acteurs du système. En eet, un acteur est toute entité qui joue un rôle, actif ou passif, vis-à-vis le système. Un acteur peut être un utilisateur direct du système, un administrateur (assure la maintenance) Ce chapitre est consacré à la partie conception de l’application. Il présente les diagrammes de conception adoptés lors de la phase d’élaboration.
  • 40. 40 du système ou tout autre système externe avec lequel le système interagit. À ce stade nous allons déterminer les trois acteurs principaux interagissant avec le système. Acteur Rôle Administrateur Accède de manière sécurisée au système, et attribue les droits d’accès aux utilisateurs, gère les utilisateurs (ajout, modification, suppression d’un utilisateur), ainsi que le contenue et l’arborescence d’ODOO. Gestionnaire de stock Accède de manière sécurisée au système, et il gère les articles de stock (créer, modifier, supprimer). Réceptionne et livre les articles. Opérateur Accède de manière sécurisée au système, et il le responsable sur la charge et la décharge des véhicules. Tableau 4: les acteurs de systéme 1.2.Diagramme de cas d'utilisation global Je présente le diagramme de cas d'utilisation global et je détaillerai par la suite les cas d'utilisation nécessitant une description plus approfondie. Figure 22: diagramme de cas d'utilisation global
  • 41. 41  Le cas d’utilisation « Gérer les utilisateurs » Titre Gérer les utilisateurs Description L’administrateur de système peut ajouter, modifier ou supprimer un utilisateur de système Acteur Administrateur système Pré-condition L’administrateur de système est authentifié Scénario  L’administrateur de système accède au menu des utilisateurs.  L’administrateur de système choisit l’opération à traiter.  L’administrateur de système confirme la mise à jour.  Le système enregistre les modifications relatives à l’utilisateur concerné. Post-condition La mise à jour sur un utilisateur est terminée. Tableau 5: description de cas d’utilisation « Gérer les utilisateurs »  Le cas d’utilisation « Gérer les articles » Titre Gérer les utilisateurs Description le gestionnaire de stock possède le privilège d'effectuer des tâches de gestion sur les articles. Il peut ajouter, modifier, consulter ou supprimer des articles. Acteur Gestionnaire de stock Pré-condition le gestionnaire de stock est authentifié. Scénario  Le gestionnaire de stock accède au menu de gestion des articles.  Le gestionnaire de stock choisit l'opération qu'il désire effectuer sur l'article.  Le système vérifie les contraintes relatives à cette opération.  Le système enregistre les modifications relatives à l'article.  Le système affiche l'écran de l'article en mode affichage seul pour renseigner l'utilisateur de succès de l'enregistrement Post-condition l'article est modifié suivant l'opération effectuée par le gestionnaire de stock Tableau 6:description de cas d’utilisation « Gérer les articles »  Le cas d’utilisation « Gérer les emplacements » Titre Gérer les emplacements Description le gestionnaire de stock possède le privilège d'effectuer des tâches de gestion sur les emplacements. Il peut générer les codes des emplacements. Acteur Gestionnaire de stock Pré-condition le gestionnaire de stock est authentifié. Scénario  Le gestionnaire de stock accède au menu de gestion des emplacements.  Le gestionnaire de stock remplit les champs nécessaires.
  • 42. 42  Le système vérifie les contraintes relatives à cette opération.  Le système génère le code de l’emplacement.  Le système enregistre les modifications relatives à l’emplacement.  Le système affiche l'écran de l’emplacement en mode affichage seul pour renseigner l'utilisateur de succès de l'enregistrement Post-condition L’emplacement est modifié/crée suivant l'opération effectuée par le gestionnaire de stock Tableau 7:description de cas d’utilisation « Gérer les emplacements »  Le cas d’utilisation « Afficher l'historique du mouvement» Titre Afficher l'historique du mouvement Description le gestionnaire de stock possède le privilège d’afficher l’historique des mouvements dans le stock. Acteur Gestionnaire de stock Pré-condition le gestionnaire de stock est authentifié. Scénario  Le gestionnaire de stock accède au menu de mouvement de stock.  Le gestionnaire de stock affiche la liste des mouvements effectués.  Le gestionnaire de stock peut vérifier l’état d’une opération.  Le gestionnaire de stock peut faire des opérations sur une opération. Post-condition L’opération est modifiée suivant l'opération effectuée par le gestionnaire de stock Tableau 8: description de cas d’utilisation « Afficher l'historique du mouvement»  Le cas d’utilisation « Etiqueter les articles» Titre Etiqueter les articles Description le gestionnaire de stock possède le privilège d’étiqueter les articles Acteur Gestionnaire de stock Pré-condition le gestionnaire de stock est authentifié. Scénario  Le gestionnaire de stock accède au menu de « Articles ».  Le gestionnaire de stock remplit les champs nécessaires.  Le système vérifie les contraintes relatives à cette opération.  Le système génère le code de l’article.  Le système enregistre les modifications relatives à l’emplacement. Post-condition Le code de l’article est créé suivant l'opération effectuée par le gestionnaire de stock Tableau 9: Description de cas d'utilisation "Etiqueter les articles"
  • 43. 43  Le cas d’utilisation « Gérer les opérations» Titre Gérer les opérations Description le gestionnaire de stock possède le privilège d’afficher, effectuer, modifier ou supprimer une opération (réception, transfert interne ou livraison) dans le stock. Acteur Gestionnaire de stock Pré-condition le gestionnaire de stock est authentifié. Scénario  Le gestionnaire de stock accède au tableau de bord des opérations logistique.  Le gestionnaire de stock peut traiter une opération.  Le système vérifie les contraintes relatives à cette opération  Le système enregistre les modifications relatives à l’opération. Post-condition L’opération est modifiée suivant l'opération effectuée par le gestionnaire de stock Tableau 10: Description de cas d’utilisation « Gérer les opérations»  Le cas d’utilisation « Réorganiser le stock» Titre Réorganiser le stock Description L’opérateur possède le privilège d’effectuer les travaux d’inventaire à l’aide d’une application mobile. Acteur L’opérateur Pré-condition L’opérateur est authentifié. Scénario  L’opérateur scan le code de l’emplacement.  L’opérateur scan le code des articles existe dans le stock.  L’opérateur transfert les données de scan vers le serveur odoo Post-condition Réaliser les travaux d’inventaire physique. Tableau 11: description de cas d’utilisation « Réorganiser le stock»
  • 44. 44 1.3.Diagramme de cas d’utilisation « Gérer article » Cette figure représente le diagramme de cas d’utilisation « Gérer l’article »: Figure 23:Diagramme de cas d’utilisation « Gérer article » Afin de gérer les articles, le gestionnaire de stock peut ajouter des nouveaux articles au stock, comme il peut consulter la liste des articles pour modifier, supprimer ou pour consulter les mouvements d’un article. 1.4. Diagramme de cas d’utilisation « gérer les emplacements » Cette figure représente le diagramme de cas d’utilisation « Gérer les emplacements »: Figure 24:Diagramme de cas d’utilisation « Gérer les emplacements »
  • 45. 45 Afin de gérer les emplacements, le gestionnaire de stock peut créer des nouveaux emplacements pour cela il faut identifier le code de la zone, le numéro de la travée, le numéro de l’allée et d’autre informations, comme il peut consulter la liste des articles pour modifier, supprimer ou pour filtrer à la base de ses attributs. 1.5.Diagramme de cas d’utilisation « gérer les opérations » Cette figure représente le diagramme de cas d’utilisation « Gérer les opérations»: La gestion des achats permet au gestionnaire de stock de créer des devis, convertir ces devis en bons de commande, choisir la méthode de facturation de ces derniers, et les valider. Une fois ces bons validés, des réceptions de produits, correspondants chacune à un bon de commande, sont générées automatiquement et passent au statut « en attente de traitement ». Le traitement des réceptions peut être partiel ou total, c’est-à-dire que lors d’une réception l’agent peut recevoir la totalité des produits commandés, traiter la réception et passer à la facturation, ou recevoir une partie des produits seulement, dans ce cas il ne renseigne que la quantité reçue et valide la réception, cette dernière est dupliquée, et le duplicata est une nouvelle réception contenant le reste des produits à recevoir, en statut « en attente de traitement ». Figure 25:Diagramme de cas d’utilisation « gérer les opérations »
  • 46. 46 2. Diagramme de séquence Dans les diagrammes de séquence, nous allons utiliser pour les requêtes traitant les objets persistais les noms des méthodes ORM :  Search : offre les fonctionnalités d'une requête de sélection, elle retourne les identificateurs  Browse : permet de charger un tous les données d'un enregistrement.  Unlink : permet de supprimer un enregistrement.  Create : permet d'insérer un nouvel enregistrement.  Write : permet de modifier un enregistrement. 2.1.Diagramme de séquence « Authentification » La figure décrit le déroulement du cas d'utilisation « Authentifier », qui apparaît dans la figure du diagramme de cas d’utilisation global : 3.5. Le gestionnaire de stock, démarre le serveur ODOO, ensuite la page d’authentification s’affiche pour entrer le login et le mot de passe, si l’authentification est passée avec succès, la page d’accueil s’affiche. Dans le cas où le login ou mot de passe est incorrecte, on relance la même page (page d’authentification). Figure 26: Diagramme de séquence « Authentification »
  • 47. 47 2.2.Diagramme de séquence « Afficher liste des articles » 2.3.Diagramme de séquence « Créer un article » Figure 27: Diagramme de séquence « Afficher liste des articles » Figure 28: Diagramme de séquence « Créer un article »
  • 48. 48 2.4.La mise à jour d’un article 2.5.Générer le code barre Figure 29: diagramme de séquence "La mise à jour d’un article" Figure 30: Diagramme de cas d'utilisation "Générer le code barre"
  • 49. 49 2.6.Liste des mouvements Figure 31: diagramme de séquence "Liste des mouvements "
  • 50. 50 3. Digramme de classes Ce diagramme représente les classes relatives à la conception de notre module, Ainsi que les modifications apportées sur les tables d'Odoo. Remarque : les classes en bleu présentent la conception d'Odoo déjà existan Figure 32: diagramme de classe de systeme
  • 51. 51 4. Synthèse Dans ce chapitre nous avons présenté l’étude conceptuelle du projet en se basant sur les diagrammes de cas d’utilisation, le diagramme de séquence et le diagramme de classes. Le chapitre suivant est dédié à l’étape de la réalisation de notre système.
  • 52. 52 Mise en œuvre I. Technologies mises en œuvre Dans cette partie je présente les différentes technologies adoptées par Cayley Consulting, et utilisées pour la réalisation de mon projet, à commencer par le système d’exploitation Ubuntu, tout en passant par le système de gestion de bases de données PostgreSQL, et en fin les langages nécessaires pour le développement, à savoir le langage Python et XML. 1. Ubuntu Ubuntu est un système d’exploitation libre commandité par la société Canonical et une marque déposée par cette même société. Fondé sur la distribution Linux Debian et utilisant le bureau Unity, Ubuntu se veut « convivial, intuitif et sûr ». Il est constitué de logiciels libres, est disponible gratuitement y compris pour les entreprises, et bénéficie d'une nouvelle version (appelée « mise à niveau ») tous les six mois. Avec une utilisation globale estimée à plus de 25 millions d'utilisateurs, il est principalement conçu pour une utilisation sur des ordinateurs personnels (portables et fixes), bien que d'autres versions consacrées aux netbooks et aux serveurs existent aussi. Depuis Ubuntu 11.04, la version Netbook a fusionné avec la version Desktop. Cette dernière étant passée à l'interface Unity, il n'y avait plus de raison de maintenir deux branches distinctes. La version d’Ubuntu utilisée pour ce projet est la 15.04, ayant pour nom de code «Vivid Vervet». Sa date de publication en tant que version stable était le 23 avril 2015. Je présente dans ce chapitre, les différentes technologies et outils utilisés pour la réalisation. Ensuite, je décris quelques interfaces de notre système. Figure 33: Logo d'ubuntu
  • 53. 53 2. PostgreSQL PostgreSQL est un système de gestion de base de données relationnelle et objet (SGBDRO). C’est un outil libre disponible selon les termes d'une licence de type BSD (Berkeley Software Distribution). Ce système est concurrent d'autres systèmes de gestion de base de données, qu'ils soient libres (comme MySQL et Firebird), ou propriétaires (comme Oracle, Sybase, DB2, Informix et Microsoft SQL Server). Comme les projets libres Apache et Linux, PostgreSQL n'est pas contrôlé par une seule entreprise, mais est fondé sur une communauté mondiale de développeurs et d'entreprises.  PostgreSQL peut stocker plus de types de données que les types traditionnels entiers, caractères, etc. L’utilisateur peut créer des types, des fonctions, utiliser l’héritage de type etc.  PostgreSQL est pratiquement conforme (de plus en plus conforme) aux normes ANSI SQL 89, SQL 92 (SQL 2), SQL 99 (SQL 3), SQL:2003 et SQL:2008. Il fonctionne sur diverses plates-formes matérielles et sous différents systèmes d'exploitation.  PostgreSQL fonctionne sur Solaris, SunOS, Mac OS X, HP-UX, AIX, Linux, IRIX, Digital Unix, BSD, NetBSD, FreeBSD, OpenBSD, SCO unix, NeXTSTEP, UnixWare et toutes sortes d'Unix. Depuis la version 8.0, PostgreSQL fonctionne également nativement sur Windows. Avant la version 8, il fallait un émulateur de type cygwin pour faire fonctionner PostgreSQL sur ce système d'exploitation.  PostgreSQL est largement reconnu pour son comportement stable, proche d’Oracle. Mais aussi pour ses possibilités de programmation étendues, directement dans le moteur de la base de données, via PL/SQL. Le traitement interne des données peut aussi être couplé à d'autres modules externes compilés dans d'autres langages. Figure 34: logo de PostgreSQL
  • 54. 54 3. Python Python est un langage de programmation multi-paradigme. Il favorise la programmation impérative structurée, et orientée objet. Il est doté d'un typage dynamique fort, d'une gestion automatique de la mémoire par ramasse-miettes et d'un système de gestion d'exceptions, il est ainsi similaire à Perl, Ruby, Scheme, Smalltalk et Tcl. Le langage Python est placé sous une licence libre proche de la licence BSD et fonctionne sur la plupart des plates-formes informatiques, des supercalculateurs aux ordinateurs centraux, de Windows à Unix en passant par Linux et Mac OS, avec Java ou encore .NET. Il est conçu pour optimiser la productivité des programmeurs en offrant des outils de haut niveau et une syntaxe simple à utiliser. Il est également apprécié par les pédagogues qui y trouvent un langage où la syntaxe, clairement séparée des mécanismes de bas niveau, permet une initiation plus aisée aux concepts de base de la programmation. Python est un langage :  Conçu pour produire du code de qualité, portable et facile à intégrer : grâce à sa syntaxe claire, cohérente et concise, Python permet aux développeurs de produire du code de qualité, lisible et maintenable. Écrire du code Python est un exercice agréable, même en respectant les conventions de codage. Fourni dès le départ avec des modules de tests, Python est un langage agile. Le terme agile est originellement issu de la méthodologie de programmation agile (Beck et Al.), très proche de la programmation itérative. Cette méthodologie, qui réduit les risques liés à la conception de logiciels, introduit entre autres des principes de tests continus du code.  De haut niveau, orienté objet et totalement libre : même si elle n’est pas imposée, Python permet la programmation orientée objet. Tous les mécanismes objet essentiels sont implémentés et toutes les données manipulées sont des instances de classes, comme pour les langages SmallTalk ou Ruby. Enfin, le code peut être structuré en modules Figure 35: logo de Python
  • 55. 55 (fichiers) qui sont ensuite importables dans l’interpréteur. Ce découpage, permet d’organiser le code et son utilisation par des espaces de noms, et aussi de faciliter l’extension du langage par des bibliothèques tierces compilées dans d’autres langages.  Hautement productif : La conception d’applications en Python est très rapide car certains aspects de programmation sont gérés automatiquement, comme la gestion des ressources mémoire et le typage des données. Grâce à des types de base très puissants et des primitives de haut niveau, un programme Python est simple à concevoir et concis. Un programme Python est en général 3 à 5 fois plus court qu’un programme C++ équivalent. Ces qualités font de Python un langage idéal dans beaucoup de domaines. Enfin, la bibliothèque standard de Python est très complète, et permet de répondre aux besoins communs de programmation. Grâce au modèle Open Source, la communauté des développeurs Python est en outre très productive et de nombreuses extensions gravitent autour du langage.  Dynamique : dans la plupart des implémentations, le code source n’est pas compilé contrairement à des langages comme C ou Pascal, mais exécuté à la volée. On parle alors de langage interprété. Ce mode de fonctionnement rend la programmation beaucoup plus souple puisqu’il est possible de changer un programme en cours d’exécution, ou de tester du code en mode interactif sans disposition particulière. L’interprétation rend aussi l’exécution plus lente, mais ce défaut est surmontable grâce à de bonnes pratiques de programmation et des techniques d’optimisation. 4. XML XML (eXtensible Markup Language et en Français Langage à balises étendu, ou Langage à balises extensible) était lancé en 1997 par la communauté SGML (Standard Generalized Markup Language). XML est un langage simple et puissant de description et d’échange de documents structurés de n’importe quel domaine de données grâce à son extensibilité, il décrit cette structure à l’aide d’un système de balises. Quelques points remarquables d’XML :  Il apparaît comme un format d’échange de données universel ;  Il a la possibilité de créer des nouvelles balises contrairement à HTML qui définit un nombre limité ;  Il garantit à ses utilisateurs l’indépendance de leurs documents de toute technologie propriétaire ;  Il unifie le monde du traitement de document et celui du Web.
  • 56. 56 Tout document XML se compose :  D’un prologue qui peut contenir une déclaration XML, des instructions de traitement et une déclaration de type de document, dont la présence est facultative mais conseillée. Il contiendra un certain nombre de déclarations ;  D’un arbre d’éléments, on parle d’élément père et d’élément fils. En fait la partie essentielle d’un document XML sera toujours formée d’une hiérarchie d’éléments qui dénote la sémantique de son contenu ;  De commentaires et d’instructions de traitement, dont la présence est facultative. Ils pourront, moyennant certaines restrictions, apparaître aussi bien dans le prologue que dans l’arbre d’éléments. Un document XML valide est forcément un document bien formé mais il obéit en plus à une structure type définie dans une DTD (Document Type Definition).Une DTD peut contenir  des déclarations d'entités générales ;  des déclarations d'entités paramètres ;  des déclarations de notations ;  des déclarations d'éléments ;  des déclarations de listes d'attributs ;  des commentaires II. Réalisation du système Après avoir dégagé les fonctionnalités auxquelles doit répondre notre système, et après avoir formalisé ces fonctionnalités par des diagrammes UML. Dans cette partie, je présente le travail réalisé à travers quelques exemples d’illustrations. 1. Page d’authentification C’est la première page qui s’affiche, elle permet aux utilisateurs de se connecter au système. Figure 36:Page d’authentification
  • 57. 57 2. Installation des modules Cette interface représente la page d’installation du module de gestion des entrepôts. 3. Tableau de bord Cette interface représente le tableau de bord principal dont le but de donner une vision très claire de l’ensemble des opérations logistique par entrepôt. Figure 37:Installation des modules Figure 38:Tableau de bord
  • 58. 58 4. Gestion d’achat La gestion des achats permet à l’agent d’assurance de se procurer des produits auprès de ses fournisseurs. Il lui est possible de créer des devis Puis convertir ces devis en bons de commande, choisir la méthode de facturation de ces derniers, et les valider. Figure 39:Gestion d’achat Figure 40: Bon de commande
  • 59. 59 Une fois ces bons validés, des réceptions de produits, correspondants chacune à un bon de commande, sont générées automatiquement et passent au statut « en attente de traitement ». Le traitement des réceptions peut être partiel ou total, c’est-à-dire que lors d’une réception l’agent peut recevoir la totalité des produits commandés, traiter la réception et passer à la facturation, ou recevoir une partie des produits seulement, dans ce cas il ne renseigne que la quantité reçue et valide la réception, cette dernière est dupliquée, et le duplicata est une nouvelle réception contenant le reste des produits à recevoir, en statut « en attente de traitement ».
  • 60. 60 5. La gestion des approvisionnements Cette interface représente la page des approvisionnements 6. Les mouvements de stock Cette interface représente la page de l’ensemble des mouvements effectués dans l’entrepôt. 7. Création d’un nouvel article En cliquant sur le bouton ‘Créer’ s’affiche l’interface permettant de créer un nouvel article et pour générer le code de l’article à travers le code de conditionnement, de contenance et du code de catégorie. Figure 41:gestion des approvisionnements Figure 42: Les mouvements de stock
  • 61. 61 8. Variante d’article Cette interface permet de créer des variantes d’article. Figure 43: Création d’un nouvel article Figure 44: Variante d’article
  • 62. 62 9. Créer un entrepôt Pour créer un nouveau entrepôt il faut entrer les informations nécessaire tel que le nom, description, l’adresse, etc. mais aussi il faut affecter les zones, et le nombre d’allées. Figure 45: Créer un entrepôt 10. Créer une nouvelle zone Cette page permet de créer une nouvelle zone. Figure 46: Créer une nouvelle zone
  • 63. 63 11. Créer l’allée Cette page permet de créer et identifier les allées d’un entrepôt. Figure 47: Créer l'allée 12. Créer et identifier l’emplacement Pour créer un nouvel emplacement il faut entrer les informations nécessaire tel que le nom, description, type d’emplacement, etc. mais aussi il faut identifier le code de la zone, de l’allée, le cotée de l’allée droit ou gauche, le numéro de la travée, le niveau dans le travée et le numéro de l’emplacement à fin de générer le code de l’emplacement. Figure 48: Créer et identifier l’emplacement
  • 64. 64 Partie 3 : Réalisation d’une application mobile de gestion d’inventaire __________________________________________________________________________________ Dans ce chapitre, je vais présenter le projet « L’application mobile pour la gestion d’inventaire» que j’ai réalisée. Dans la première partie, je vais présenter brièvement une étude préliminaire sur le projet en commençant par l’étude de l’existant, la problématique et enfin une synthèse. Dans la seconde partie, je vais exposer l’étude fonctionnelle du projet qui comprend la capture des besoins fonctionnels et la formalisation de ces besoins en cas d’utilisation UML. .
  • 65. 65 Etude préliminaire L’inventaire est un outil obligatoire pour les entreprises à but lucratif, il doit être fait de façon régulière afin d’établir un bilan fiable de l’entreprise. De là est nait le besoin de mettre en place un environnement d’intégration continue. I. Cahier des charges 1. Présentation du projet Le but du projet est la mise en place d’une application mobile sous Android en mode synchrone et asynchrone qui communiquera avec le serveur ODOO, permettant de :  fixer la valeur du stock présent au sein de l’entreprise.  Vérifier si aucune marchandise ne manque, en d'autres termes de constater si il y a eu perte ou vol.  Vérifier une éventuelle erreur de gestion. 2. Recueil des besoins fonctionnels 2.1.Scanner produits Transformer l’appareil photo du téléphone pour lire le code barre. 2.2.Intégrer les données d’inventaire en mode synchrone Créer plusieurs inventaires Envoyer les données d’inventaire vers le serveur ODOO via le web service XMLRPC 2.3.Intégrer les données d’inventaire en mode asynchrone Exporter les inventaires dans un fichier excel puis envoyer les résultats via mail au responsable de stock, aussi mettre l’inventaire sur Dropbox et Google Drive (partager avec d'autres utilisateurs et de sauvegarde à Dropbox et Google Drive). Dans ce chapitre je présente une étude préliminaire sur le projet en commençant par présenter le cahier des charges.
  • 66. 66 Conception du projet I. Conception fonctionnel du système 1. Diagramme de cas d’utilisation Ce chapitre est consacré à la partie conception de l’application. Il présente les diagrammes de conception adoptés lors de la phase d’élaboration. Figure 49: Diagramme de cas d’utilisation
  • 67. 67 2. Diagramme de classe 3. Synthèse Dans ce chapitre nous avons présenté l’étude conceptuelle du projet en se basant sur les diagrammes de cas d’utilisation et le diagramme de classes. Le chapitre suivant est dédié à l’étape de la réalisation de notre système. Figure 50: Diagramme de classe
  • 68. 68 Mise en œuvre I. Technologies mises en œuvre Dans cette partie je présente les différentes technologies utilisées pour la réalisation de mon projet, à commencer par le système d’exploitation ANDROID et les langages nécessaires pour le développement. 1. Système d’exploitation Android Android est un système d'exploitation édité par Google pour appareils embarqués et/ou mobiles, comme les smartphones ou les tablettes. On le retrouve aussi dans certains GPS, ordinateurs de bord de voitures, dans des télévisions, autoradios, et même des montres. De plus, de nombreux prototypes d'appareils électroménagers, comme des réfrigérateurs ou des machines à laver, fonctionnant sous Android ont été présentés ces derniers temps, permettant ainsi de lancer une machine à l'aide de téléphone, ou encore d'être prévenu par son frigo lorsqu'il manque certaines choses. Je présente dans ce chapitre, les différentes technologies et outils utilisés pour la réalisation. Ensuite, je décris quelques interfaces de notre système. Figure 51: Logo d'Android
  • 69. 69 Le système Android est basé sur un fork du noyau de Linux. Ce dernier a été modifié pour être plus adapté aux terminaux mobiles ayant peu de puissance de calcul, de mémoire et de batterie. De fait, certaines librairies standards ne sont pas supportées par le système, et des améliorations ont été apportées sur la gestion de l'énergie. Les applications sont écrites en Java, et fonctionnent au sein d'une machine virtuelle Dalvik. Cette machine virtuelle a elle aussi été modifiée pour être le plus adapté possible aux appareils de faible puissance. Ainsi, beaucoup d'efforts ont été fait sur la consommation de mémoire, qui a été largement diminuée par rapport à la machine virtuelle java classique. 2. Java Java est un langage typé et orienté objet. Il est compilé et basé sur une architecture logicielle très particulière nécessitant une machine virtuelle Java. Il utilise les notions usuelles de la programmation orientée objet : la notion de classe, d'encapsulation, d'héritage, d'interface, de virtualité, de généricité, … Il est accompagné d'un ensemble énorme de bibliothèques standard couvrant de très nombreux domaines, notamment des bibliothèques graphiques. C'est un langage qui présente d'excellentes propriétés de portabilité du code. Son gros point faible est une relative lenteur, surtout si on le compare à des langages comme le C++. Cependant, ce défaut a été résolu en grande partie par l'introduction de la technologie JIT (compilateur Just-In-Time, en anglais « juste à temps »), qui compile le code à la première exécution, permettant une exécution quasiment aussi rapide qu'en C/C++. Figure 52: Logo de java
  • 70. 70 II. Réalisation du système Après avoir dégagé les fonctionnalités auxquelles doit répondre notre système, et après avoir formalisé ces fonctionnalités par des diagrammes UML. Dans cette partie, je présente le travail réalisé à travers quelques exemples d’illustrations. 1. L’interface d’authentification Si l’authentification est passée avec succès, une page s’affiche avec un bouton pour scanner le code à barre de l’article. Figure 53: Les interfaces d’authentification
  • 71. 71 3. Scanner article L’utilisateur peut transformer l’appareil photo du téléphone pour lire le code barre. Figure 54: Authentification OK Figure 55: lancement de scan
  • 72. 72 Cette page représente la détection de code barre par l’appareil de téléphone. Après la détection du code-barres on retourne le numéro du code, le type et la quantité scannée de même article. 4. Actions en cours  L’interaction entre l’application mobile avec le serveur odoo via XMLRPC pour envoyer les résultats de scan 5. Action à venir  Enregistrer les résultats de scan dans un fichier Excel et l’envoyer par mail Figure 56: détection de code barre
  • 73. 73 Conclusion générale Ce projet de fin d’étude que j’ai effectué au sein de l’entreprise Cayley Consulting avait pour but la mise en place d’une solution de gestion intégré pour l’entrepôt. Dans un premier lieu j’ai commencé par comprendre le contexte général de mon projet à savoir le métier de gestion des entrepôts. Ensuite j’ai mené une étude technique pour étudier et analyser le progiciel odoo, ainsi qu’une étude fonctionnelle afin de déterminer les besoins fonctionnelles de notre système. Par la suite j’ai fait une étude conceptuelle pour présenter tous les cas d’utilisation de notre système d’une part et pour réaliser le diagramme de classes d’autre part, qui par la suite m’a permis d’entamer la phase de la réalisation qui n’est pas encore totalement finie. Je souhaite donc continuer à implémenter les fonctionnalités manquantes. Le travail au sein de la société Cayley Consulting, était sans doute une expérience très enrichissante malgré les difficultés rencontrées au début à causes des technologies utilisées qui nous étaient totalement nouvelles, mais avec l’aide de nos encadrants nous avons pu les surmontées. Ce stage a été pour moi un grand pas vers le milieu professionnel, où j’ai bénéficié d’une excellente expérience qui m’a permis de concrétiser mes connaissances informatiques acquises au cours des années d’études lors de la période de ma formation à l’Ecole Normale Supérieure de l'Enseignement Technique de Mohammedia. Aussi, ce projet m’a permis d’acquérir des valeurs indispensables pour le métier d’un analyste développeur telles que la responsabilité, le travail d’équipe, l’adaptabilité à l’environnement de l’entreprise et le sens d’analyse. Ces valeurs sont sans aucun doute les bases de réussite dans le milieu professionnel. Finalement, j'exprime mon énorme satisfaction de cette expérience au sein de la société Cayley consulting, et j'espère que ce n’est que le premier pas dans le monde professionnel.
  • 74. 74 Webographie & Bibliographie [1] Vincent Le Goff, Apprenez à programmer en PYTHON. [2] OpenERP s.a, OpenERP Server Developers Documentation. [3] Thierry Godin, Mémento technique OpenERP en français. [4] http://useopenerp.com/v8. [5] https://www.odoo.com/documentation/8.0/ [6] https://www.odoo.com/fr_FR/forum/help-1 [7] https://apps.openerp.com/apps [8] https://www.getopenerp.com/easy-odoo8-installation/. [9] http://www.developpez.com. [10] http://www.alistek.com/wiki/index.php/Your_first_report. [11] http://www.theopensourcerer.com/. [12] https://openclassrooms.com [13] https://github.com/android
  • 75. 75 Annexes Annexe 1 : Installation d’Odoo V8 sous ubuntu 1. Installation de l’environnement 1.1. Mettre à jour « source list » D’abord, il faut mettre à jour le fichier source list avec la commande suivante : 1.2. Installer Updates 1.3. Configurer l’utilisateur Linux Créer un nouvel utilisateur appelé Odoo avec home directory /opt/Odoo et le groupe est Odoo. Vous pouvez le faire avec cette commande: Et de créer un nouveau répertoire pour Odoo dans le répertoire /var/lib/odoo. 1.4. Installation et configuration de PostgreSQL Installez postgreSQL avec la commande suivante : Et se connecter au shell PostgreSQL avec la commande suivante: Maintenant, il faut créez un rôle pour l’utilisateur Odoo. Cela permettra de se connecter au serveur PostgreSQL pour créer, supprimer ou modifier la base de données. Finalement, tapez exit pour vous déconnecter du shell PostgreSQL. 1.5. Installer les dépendances nécessaires sudo apt-get update sudo apt-get upgrade sudo adduser --system --home=/opt/odoo --group odoo mkdir -p /var/lib/odoo sudo apt-get install postgresql su - postgres createuser --createdb --username postgres --no-createrole --no-superuser -- pwprompt odoo
  • 76. 76 Odoo a besoin de nombreux modules python : smmsmsmsmmsms 1.6. Récupérer le code source d’odoo depuis github 1.7. Exécuter le serveur Maintenant si tout se passe bien notre application sera disponible à l’url suivant http://localhost:8069 sudo apt-get install python-cups python-dateutil python-décorateur python- docutils python-feedparser python-gdata python-geoip python-gevent python-imaging python-jinja2 python- ldap python-libxslt1 python-lxml python-mako python -mock python-openid python-passlib python-psutil python-psycopg2 python-pybabel python-pychart python-pydot python-pyparsing python-pypdf python-reportlab python-requests python-simplejson python-tz python-unicodecsv python-unittest2 python - vatnumber python-vobject python-werkzeug python-xlwt python-yaml wkhtmltopdf wget -O- https://raw.githubusercontent.com/odoo/odoo/8.0/odoo.py | python cd /var/lib/odoo/odoo-server ./openerp-server
  • 77. 77 Annexe 2 : Introduction au développement des modules sous ODOO 1. Introduction aux objets Toutes les données d'odoo sont accessibles par les objets : c’est à dire pour la création d'un module, on ne manipule pas les données directement car les objets sont eux qui créent les tables de base de données contenant les données d'odoo via « ORM » (Object Relational Mapping). Par exemple : il existe dans le module de base d'odoo, l'objet ‘res.partner’ qui permet d'accéder aux informations concernant les partenaires. Aussi il y'a dans le module de base account, l'objet d'odoo ‘account.invoice’ pour accéder aux données relatives à la facture. Tous ces objets se trouvent dans des fichiers d'extension ‘.py’. On signale qu'il y'a un objet pour chaque type de ressource et non un objet pour une ressource, ainsi un il y'a un unique objet ‘res.partner’ pour manipuler tous les partenaires et on ne peut pas avoir l'objet ‘res.partner’ pour chaque partenaire. Parlons aux termes d'orienté objet pour bien assimiler cette notion, on peut dire que l'objet d'odoo est considéré comme la classe et les ressources sont les instances de cette classe c’est à dire les objets. Et si on parle du côté de la base de données les objets d'odoo sont les tables de la BD et les lignes des tables sont les ressources. Donc une table (un objet d'odoo) comprend plusieurs lignes (Ressources d'odoo). Une conséquence directe de cette notion objet-ressources est que toutes les méthodes des objets ont un paramètre commun : le paramètre ids. Il spécifie sur quelles ressources la méthode s’appliquera : précisément ce paramètre contient une liste des identificateurs des ressources (ids) sur laquelle la méthode s'appliquera. Par exemple, si on a deux ressources partenaires avec les identificateurs 1et 2 (les identificateurs de ressources sont les id des lignes de la table qui correspond à l'objet qui manipule ces ressources) et aussi si nous voulons appeler la méthode d'objet ‘res.partner’ qui est ‘send_email’, nous procédons comme suit : res_partner.send_email(..., [1, 2], ...) Ultérieurement dans ce support, nous verrons comment appeler les méthodes d'objets et les quelques méthodes propres d'odoo. Un rappel important pour les programmeurs :  Les objets d'odoo sont appelés classes si on parle au terme de la programmation orientée objet.  Une ressource est appelée objet, l'instance de la classe. 2. Définition des objets en odoo Pour définir un nouvel objet, on définit une nouvelle classe et après on l'instancie, cette classe doit hériter de la classe OSV du module OSV d'odoo. Ainsi, la première ligne de la définition de l'objet sera toujours comme suivant :
  • 78. 78 class nom_objet(osv.osv): _name = 'nom de l'objet' _columns = {...} … nom_objet() Donc, l'objet se définit en déclarant quelques attributs avec des noms prédéfinis dans la classe, deux de ces attributs sont obligatoires à savoir _columns et _name, les autres sont optionnels. Les attributs prédéfinis sont : _auto : Prend True /False et détermine si la table correspondante dans postgresql doit se générer automatiquement à partir de cet objet. Mettre _auto=False pourra être utile dans les cas où on veut créer les objets basés sur des vues de postgresql sans créer des tables. _columns (obligatoire): on y définit les champs(les attributs de la classe si on parle au terme d'orienté objet) de l'objet. _constraints : on y détermine des restrictions sur l'objet (on en parlera ultérieurement) _defaults : on définit les valeurs par défaut pour quelques champs de l'objet. _inherit : on met l'objet père que l'actuel objet hérite. On va le détailler dans deux types :  ORM - Object Declaration - _inherit (1) : Réalise un héritage d'un objet existant, ajoute des caractéristiques à l'objet dont nous héritons, exemple :
  • 79. 79 class res_partner_add_langs(osv.osv): _name = 'res.partner' _inherit = 'res.partner' _columns = { 'lang_ids' : fields.many2many('res.lang','res_lang_partner_rel', 'partner_id', 'lang_id', 'Languages')} res_partner_add_langs()  ORM - Object Declaration - _inherit (2) : Réalise un héritage d'un objet existant, mais crée un nouvel objet, exemple : Class formateur(osv.osv): _inherit = 'res.partner' _columns = { _name = 'formateur' 'lang_ids' : fields.many2many('res.lang', 'res_lang_partner_rel', 'partner_id', 'lang_id', 'Languages')} formateur() _name (obligatoire) : le nom de l'objet, la valeur par défaut est None _order : on met le nom du champ de l'objet actuel qui sera comme critère de tri des résultats des méthodes search et read. Sa valeur par défaut est 'id' _sql : on met le code sql pour l'exécuter dans la création de l'objet (seulement si _auto=True) _table : nom de la table sql correspondante a cet objet, sa valeur par défaut est celle de _name en remplaçant les points (.) par des tirets (_) 3. Les champs des objets Les objets peuvent contenir différents types de champs. Ces types s'articulent dans trois catégories : types simples, types relationnelles et champs fonctionnels. Les types simples englobent les entiers, les réels, les booléens et les chaines de caractère…, les champs de type relationnel permettent de représenter les relations entre les objets (one2one, many2one, many2many). Les champs fonctionnels sont des champs spéciaux parce qu'ils ne sont pas enregistrés dans la base de données mais plutôt sont calculables à partir d'autres champs dans le temps réel. La signature de la méthode d'initialisation de la classe dont hérite tout champ déclaré dans odoo ( ..... /osv/fields.py).