Rapport de projet de fin d'étude - Odoo 8, Android app -

97
Ecole Nationale des Sciences Appliquées de Tétouan 1 Mémoire de fin d’étude Conception et développement d’une plateforme Odoo et d’une application Android destinée à la gestion d’une société spécialisée dans les métiers de l’offshoring ICT Par : ELOUASSINI Oumaima et KHATTABI Ghita Soutenance le 20 Juin 2015 Membres du Jury : - Pr. Youness Tabii Encadrant pédagogique (ENSATE) - Pr. CHRAYAH Mohamed Professeur à lENSATE - Pr. LAZAAR Mohamed Professeur à lENSATE Année universitaire : 2014/2015 Pour l’obtention du diplôme D’Ingénieur d’Etat Génie Informatique

Transcript of Rapport de projet de fin d'étude - Odoo 8, Android app -

Page 1: Rapport de projet de fin d'étude - Odoo 8, Android app -

Ecole Nationale des Sciences Appliquées de Tétouan

1

Mémoire de fin d’étude

Conception et développement d’une plateforme Odoo et d’une application Android destinée à la gestion d’une société spécialisée

dans les métiers de l’offshoring ICT

Par :

ELOUASSINI Oumaima et KHATTABI Ghita

Soutenance le 20 Juin 2015

Membres du Jury :

- Pr. Youness Tabii Encadrant pédagogique (ENSATE)

- Pr. CHRAYAH Mohamed Professeur à l’ENSATE

- Pr. LAZAAR Mohamed Professeur à l’ENSATE

Année universitaire : 2014/2015

Pour l’obtention du diplôme

D’Ingénieur d’Etat

Génie Informatique

Page 2: Rapport de projet de fin d'étude - Odoo 8, Android app -

Ecole Nationale des Sciences Appliquées de Tétouan

2

Dédicace

A la plus belle perle du monde…ma tendre mère

Tout ce que je peux t'offrir ne pourra exprimer l'amour et la reconnaissance que je te

porte,

En témoignage, je t'offre ce modeste travail pour te remercier pour tes sacrifices et pour

l'affection dont tu m'as toujours entourée.

A mes chères sœurs Sajida et Soukaina, vous m'avez toujours soutenue durant toutes

mes études, je vous souhaite une vie pleine de joie, de bonheur et de réussite,

A mes grands-parents, mes proches et à ceux qui me donnent de l'amour et de la vivacité,

A ma chère binôme Ghita,

A tous mes amis,

A tous ceux que j'aime.

Merci !

Oumaima.

Page 3: Rapport de projet de fin d'étude - Odoo 8, Android app -

Ecole Nationale des Sciences Appliquées de Tétouan

3

Dédicace

À mes très chers parents,

Je ne pourrais exprimer l'étendue de ma gratitude en ces quelques lignes. Toutefois

je vous remercie pour votre soutien continuel, pour vos sacrifices et pour l'excellent

modèle que vous avez été pour moi le long de toutes ces années. Je vous dédie ce

travail.

À ma très chère sœur,

Je te remercie pour les encouragements sincères que tu n'as pas manqué de m'offrir

tout au long de mon parcours et pendant les moments où j'en avais le plus besoin.

À ma famille,

Pour leur soutien continuel, leur foi en mes capacités, et leur façon de m'insuffler

leur joie de vivre. Je remercie particulièrement Sara, pour son immanquable vitalité

et sa confiance en mes capacités.

À Oumaima,

Pour avoir été une coéquipière travailleuse, persévérante, mais qui s'est également

révélée être une grande amie.

À tous mes amis, et à tous mes proches,

Je vous remercie.

Ghita.

Page 4: Rapport de projet de fin d'étude - Odoo 8, Android app -

Ecole Nationale des Sciences Appliquées de Tétouan

4

Remerciements

Avant d'entamer ce rapport, nous tenions à exprimer nos remerciements à tous les acteurs du

projet qui, au long de tous ces mois, nous ont apporté une aide précieuse pour la réalisation de

celui-ci.

Ainsi, nous commencerons par manifester notre profonde gratitude à toute l'équipe d'OpenCorp

SA, plus précisément notre encadrant de stage M. Khalid BENTALEB, pour son soutien, sa

générosité et ses conseils prodigués tout au long de la période de notre stage au sein de

l'entreprise.

Ensuite, nous tenons à remercier sincèrement Dr. Youness TABII, notre encadrant à l'École

Nationale des Sciences Appliquées de Tétouan, pour ses directives, ses conseils et son soutien

tout au long du stage. Nous vous remercions pour votre suivi et votre encadrement durant ces

mois-ci.

Nous aimerions également remercier M. Jérémie VANDER MEUTER, pour son soutien, ses

conseils et son encouragement pendant toute la durée de notre stage dans OpenCorp.

Nous saisissons également l'occasion pour remercier le corps professoral de l'ENSATé dans

son intégralité, pour son enseignement le long de ces cinq années.

Enfin, nous remercions les membres du jury pour avoir eu l'amabilité d'accepter de juger notre

travail.

Page 5: Rapport de projet de fin d'étude - Odoo 8, Android app -

Ecole Nationale des Sciences Appliquées de Tétouan

5

Résumé

Le présent rapport est le fruit d'un travail effectué au sein de l'entreprise OpenCorp SA, dans le

cadre de notre projet de fin d'études en vue de l'obtention du diplôme d'ingénieur d'état en

informatique.

De nos jours, l'entreprise a besoin de faire sans cesse évoluer ses activités et ses processus. C'est

effectivement le cas de l'entreprise OpenCorp SA qui souhaite étendre ses activités vers

l'ensemble des pays francophones, et ainsi arrêter de se limiter au territoire belge. Pour réaliser

ce but, l'entreprise a besoin de faire évoluer son progiciel de gestion intégré, d'une nouvelle

interface pour son site web, mieux adaptée aux nouveaux objectifs de l'entreprise, et pour finir,

d'une application mobile, permettant une gestion flexible en tout temps et en toute heures de

différents services.

L'intitulé de notre projet est le suivant : « Conception, développement et mise en ligne d’une

plateforme Odoo destinée à la gestion d’une entreprise spécialisée dans les métiers de

l’offshoring ICT »

Notre projet consiste à mettre en place un nouveau module pour l'ERP, ainsi que le

développement d'une application mobile mettant en place les différentes fonctionnalités

ajoutées en back-end. Le projet s'articule autour de deux modules principaux : le module des

ressources humaines et le module des ventes.

Pour mettre au point ce projet, il a fallu passer par une étape d'analyse des besoins, et d'une

conception détaillée du projet, avant de passer à l'étape de développement. Celle-ci a été

effectuée en sprints, de manière à ce que les résultats du développement soient régulièrement

testés afin de garantir l'intégrité et l'efficacité du produit. Ensuite, une fois que le module à

développer était prêt, il a fallu passer au développement de l'application mobile permettant

l'accès aux fonctionnalités mêmes mises au point précédemment, cette étape a été, bien entendu,

également ponctuée de tests unitaires afin de garantir un produit final « zéro défaut ».

Ce rapport a donc pour but de détailler les étapes par lesquelles est passé le projet afin d'atteindre

la solution actuelle.

Mots-clés : Odoo, ERP, Android, Ressources Humaines, Ventes.

Page 6: Rapport de projet de fin d'étude - Odoo 8, Android app -

Ecole Nationale des Sciences Appliquées de Tétouan

6

Abstract

This report is the result of four months of work carried out within the company OpenCorp SA,

as part of our final project in order to obtain the engineering degree in computer science.

In the present day, the company needs to continually evolve its activities and processes. This is

the case of the company OpenCorp SA that wishes to extend its activities to all French-speaking

countries, and to stop being limited to Belgium only. To achieve this goal, the company needs

to upgrade its ERP system, a new interface for its website that will be more adapted to the new

objectives of the company, and finally, a mobile application, allowing flexible management at

all times and in all hours of different services.

The title of our project is: "Design, development and implementation of an Odoo online

platform for the management of a company specializing in the business of ICT offshoring"

Our project is to implement a new module for the ERP and to develop a mobile application by

implementing various features added in the back-end section. The project consists of two main

modules: the human resources module and the sales module.

To develop this project, we had to go through a stage of requirements analysis, and a detailed

project design, before moving on to the development stage. This was done in sprints, so that

development results are regularly tested to ensure the integrity and effectiveness of the product.

Then, once the module to be developed was ready, we had to move on to the development of

the mobile application which allows access to the same features developed earlier, this step

was, of course, also punctuated by unit tests to ensure a final product with "zero defects".

This report therefore aims to detail the steps that the project went through in order to achieve

the current solution.

Keywords: Odoo, ERP, Android, Human Resources, Sales.

Page 7: Rapport de projet de fin d'étude - Odoo 8, Android app -

Ecole Nationale des Sciences Appliquées de Tétouan

7

Liste des tableaux Tableau 1- Cahier de charges Back-end ................................................................................................ 19

Tableau 2- Cahier de charges mobile .................................................................................................... 21

Tableau 3- Acteurs du système ............................................................................................................. 29

Tableau 4- Description textuelle : Créer Timesheet ............................................................................. 44

Tableau 5- Description textuelle : Soumettre Timesheet .................................................................... 44

Tableau 6- Description textuelle : Approuver Timesheet .................................................................... 45

Tableau 7- Description textuelle : Rejeter Timesheet .......................................................................... 45

Tableau 8- Description textuelle : Créer employé ................................................................................ 46

Tableau 9- Description textuelle : Modifier les informations d'un employé ....................................... 46

Tableau 10- Description textuelle : Créer contrat ................................................................................ 47

Tableau 11- Description textuelle : Modifier contrat ........................................................................... 48

Tableau 12- Description textuelle : Créer Sales Order ......................................................................... 48

Tableau 13- Description textuelle : Modifier Sales Order .................................................................... 49

Tableau 14- Description textuelle : Générer rapports ......................................................................... 49

Tableau 15- Description textuelle : Split les contrats ........................................................................... 50

Tableau 16- Description textuelle : Créer facture ................................................................................ 51

Tableau 17- Tableau détaillé des classes, entités et méthodes ............................................................ 62

Liste des figures Figure 1- Logo d'OpenCorp SA ............................................................................................................... 14

Figure 2- Exemple du développement en Scrum .................................................................................. 22

Figure 3- Aperçu des tâches effectuées ................................................................................................ 23

Figure 4- Diagramme de Gantt équivalent ............................................................................................ 24

Figure 5- Diagramme des paquetages ................................................................................................... 28

Figure 6- Diagramme de contexte ........................................................................................................ 30

Figure 7- Logo d'Odoo ........................................................................................................................... 30

Figure 8- Structure modulaire d'Odoo .................................................................................................. 32

Figure 9- Logo d'Android ....................................................................................................................... 36

Figure 10- Cycle de vie d'une application Android ................................................................................ 37

Figure 11- Logo d'Ubuntu ...................................................................................................................... 38

Figure 12- Logo de PostgreSQL .............................................................................................................. 39

Figure 13- Diagramme de cas d'utilisation : Ressources Humaines ...................................................... 52

Figure 14- Diagramme de cas d'utilisation : Ventes ............................................................................. 52

Figure 15- Diagramme d'activité : Timesheets ...................................................................................... 53

Figure 16- Diagramme d'activité : Ventes ............................................................................................. 55

Figure 17- Diagramme de séquence : Authentification ........................................................................ 56

Figure 18- Diagramme de séquence : Création d'une timesheet.......................................................... 57

Figure 19- Diagramme de séquence : Modifier et/ou approuver une timesheet ................................. 58

Figure 20- Diagramme de séquence : Split un contrat .......................................................................... 59

Figure 21- Diagramme de classe du système ........................................................................................ 60

Figure 22- Diagramme des composants ................................................................................................ 63

Figure 23- Diagramme de déploiement ................................................................................................ 64

Figure 24- Cycle de vie d'un test ........................................................................................................... 66

Page 8: Rapport de projet de fin d'étude - Odoo 8, Android app -

Ecole Nationale des Sciences Appliquées de Tétouan

8

Figure 25- Architecture du système ...................................................................................................... 67

Figure 26- Timesheets : Vue d'ensemble .............................................................................................. 68

Figure 27- Timesheets : Création d'une nouvelle timesheet ................................................................ 69

Figure 28- Timesheets : Insertion des informations .............................................................................. 69

Figure 30- Timesheets : Timesheets à valider ....................................................................................... 70

Figure 31- Timesheets : Vue validation ................................................................................................. 70

Figure 29- Timesheets : Message d'erreur-Description ........................................................................ 70

Figure 32- Contrats : Vue d'ensemble ................................................................................................... 71

Figure 33- Contrats : Vue contrat .......................................................................................................... 71

Figure 34- Contrats : Vue sous-contrat ................................................................................................. 72

Figure 35- Contrats : Split ...................................................................................................................... 73

Figure 36- Contrats : Timesheet concernée par projet ......................................................................... 73

Figure 37- Contrats : Total to invoice avant fonction split .................................................................... 73

Figure 38- Contrats : Total to invoice après fonction split .................................................................... 74

Figure 39- Contrats : Timesheet modifiée après split ........................................................................... 74

Figure 40- Contrats : Aperçu des prix d'achat et de vente après split .................................................. 74

Figure 41- Contrats : Aperçu du sous-contrat à facturer ...................................................................... 75

Figure 42- Contrats : Timesheets à facturer .......................................................................................... 75

Figure 43- Contrats : Facture ................................................................................................................. 76

Figure 44- Emails : Aperçu d'email de rappel ........................................................................................ 76

Figure 45- Reporting : Aperçu de la page des rapports ......................................................................... 77

Figure 46- Reporting : Aperçu du rapport généré ................................................................................. 77

Figure 47- Page de connexion ............................................................................................................... 78

Figure 48- Menus : Employé ordinaire .................................................................................................. 79

Figure 49- Menus : Administrateur ....................................................................................................... 79

Figure 50- Employés : Détails d'un employé ......................................................................................... 79

Figure 51- Employés : Liste des employés ............................................................................................. 79

Figure 52- Timesheets : Nouvelle Timesheet et nouvelle ligne ............................................................ 80

Figure 53- Timesheets : Soumission de la feuille de temps .................................................................. 81

Figure 54- Timesheets : Vérification par le responsable ....................................................................... 81

Figure 55- Contrats : Détails d'un contrat ............................................................................................. 82

Figure 56- Rapports : Aperçu des rapports par projet .......................................................................... 83

Figure 57- Rapports : Aperçu d'un rapport ........................................................................................... 83

Figure 58- Notifications : Aperçu d'une notification de validation ....................................................... 84

Figure 59- Page d'accueil ....................................................................................................................... 92

Figure 60- Créer timesheet .................................................................................................................... 92

Figure 61- Validation de la création ...................................................................................................... 93

Figure 62- Liste et détails des timesheets ............................................................................................. 93

Figure 63- Modifier Saved timesheet .................................................................................................... 94

Figure 64- Liste et détails des contrats .................................................................................................. 95

Figure 65- Nouvelle activité ................................................................................................................... 95

Figure 66- Ajouter un Sous-contrat ....................................................................................................... 96

Figure 67- Liste et détails des factures .................................................................................................. 96

Figure 68- Reporting: Vue par utilisateur .............................................................................................. 97

Page 9: Rapport de projet de fin d'étude - Odoo 8, Android app -

Ecole Nationale des Sciences Appliquées de Tétouan

9

Table des matières

Dédicace .............................................................................................................................................. 2

Dédicace .............................................................................................................................................. 3

Remerciements ................................................................................................................................... 4

Résumé ................................................................................................................................................ 5

Abstract ............................................................................................................................................... 6

Liste des tableaux ................................................................................................................................ 7

Liste des figures ................................................................................................................................... 7

Table des matières .............................................................................................................................. 9

Introduction générale ........................................................................................................................ 12

Chapitre 1 .............................................................................................................................................. 13

1- Présentation de l’organisme d’accueil ....................................................................................... 14

1.1 Présentation d'OpenCorp .................................................................................................. 14

1.2 Prestations et services ....................................................................................................... 15

1.3 Clients ................................................................................................................................ 16

2- Présentation générale du projet ............................................................................................... 17

2.1 Étude de l'existant ............................................................................................................. 17

2.2 Problématique ................................................................................................................... 17

2.3 Présentation du projet OpenCorp Offshore ...................................................................... 18

3- Démarche et planification ......................................................................................................... 22

3.1 Méthodologie de travail : .................................................................................................. 22

3.2 Planification du projet : ..................................................................................................... 23

Conclusion ......................................................................................................................................... 26

Chapitre 2 .............................................................................................................................................. 27

1- Étude fonctionnelle ................................................................................................................... 28

1.1 Diagramme des paquetages .............................................................................................. 28

1.2 Diagramme de contexte .................................................................................................... 29

2- Étude technique ........................................................................................................................ 30

2.1 Odoo .................................................................................................................................. 30

2.2 Proxmox VE ........................................................................................................................ 33

2.3 SSH (Secure Shell) .............................................................................................................. 33

2.4 SSL (couche de sockets sécurisée) ..................................................................................... 33

2.5 Service Web ...................................................................................................................... 34

Page 10: Rapport de projet de fin d'étude - Odoo 8, Android app -

Ecole Nationale des Sciences Appliquées de Tétouan

10

2.6 Android .............................................................................................................................. 36

3- Outils et technologies utilisés.................................................................................................... 38

3.1 Système d'exploitation Ubuntu : ....................................................................................... 38

3.2 Environnements de développement ................................................................................. 38

3.3 Système de gestion de base de données PostgreSQL ....................................................... 39

3.4 Visual Paradigm ................................................................................................................. 40

3.5 Les langages de développement utilisés ........................................................................... 40

Conclusion ......................................................................................................................................... 41

Chapitre 3 .............................................................................................................................................. 42

1- Conception détaillée du projet .................................................................................................. 43

1.1 Cas d’utilisation ................................................................................................................. 43

1.2 Diagrammes d'activité ....................................................................................................... 53

1.2 Diagrammes de séquence ................................................................................................. 55

1.4 Diagramme de classe ......................................................................................................... 59

1.5 Diagramme de composants ............................................................................................... 62

1.6 Diagramme de déploiement .............................................................................................. 63

Conclusion ......................................................................................................................................... 64

Chapitre 4 .............................................................................................................................................. 65

1- Tests........................................................................................................................................... 66

2- Architecture du système ........................................................................................................... 67

3- Réalisation du module opencorp_timesheet : .......................................................................... 68

3.1 Gestion des timesheets ..................................................................................................... 68

3.2 Gestion des contrats .......................................................................................................... 71

3.3 Facturation sur la base des contrats clients ...................................................................... 75

3.4 Service email ...................................................................................................................... 76

3.5 Reporting ........................................................................................................................... 76

4- Réalisation de l'Application OpenCorp mobile pour Android: .................................................. 78

4.1 Présentation de l'application : ........................................................................................... 78

4.2 Gestion des timesheets : ................................................................................................... 80

4.3 Gestion des contrats et factures: ...................................................................................... 81

4.4 Reporting ........................................................................................................................... 82

....................................................................................................................................................... 83

Notifications .................................................................................................................................. 83

Conclusion ......................................................................................................................................... 84

Page 11: Rapport de projet de fin d'étude - Odoo 8, Android app -

Ecole Nationale des Sciences Appliquées de Tétouan

11

Conclusion générale .......................................................................................................................... 85

Webographie ..................................................................................................................................... 86

Annexe ............................................................................................................................................... 87

Installation du serveur sur Proxmox ............................................................................................. 87

Captures de l'application mobile (Android) .................................................................................. 92

Page 12: Rapport de projet de fin d'étude - Odoo 8, Android app -

Ecole Nationale des Sciences Appliquées de Tétouan

12

Introduction générale

Compte tenu de l'évolution rapide des besoins du marché ainsi que l'ascension fulgurante des

moyens technologiques, une entreprise se doit de gérer ses flux de manière à rester à jour avec

le monde qui l'entoure. Pour se faire, celle-ci est prête à déployer d'importants moyens pour

garantir sa compétitivité et son évolutivité. Cela se fait surtout à l'aide de l'implantation de

technologies logicielles, dont les plus répandues dernièrement ont connues sous le nom d'ERP

ou Progiciel de Gestion Intégré (PGI)

Les flux de la société OpenCorp sont gérés à travers le progiciel de gestion intégré Open Source

Odoo, cependant, vu les aspirations d'expansion de celle-ci, les fonctionnalités proposée par la

plateforme lambda ne sont plus suffisantes. La société souhaite cependant gérer l'ensemble de

ses activités sur cette même plateforme.

C'est dans ce cadre que s'inscrit notre projet, il vise à doter la société de l'ERP souhaité en

développant des modules supplémentaires, notamment pour la gestion des timesheets, des

contrats et de la facturation, ainsi que de mettre en place une application mobile (basée sur

Android) permettant l'accès à ces fonctionnalités par l'employé ou le manager afin d'élargir la

marge de manœuvre de ceux-ci, enfin, la mise en place d'une partie front-end destinée au

commerce Business-to-Business.

Ce rapport comporte donc plusieurs chapitres. Un premier chapitre destiné à cerner le contexte

du projet, contenant une présentation de l’organisme d’accueil, une présentation générale du

projet et la planification de celui-ci, afin de permettre une vision optimale de l’environnement

de celui-ci. Ensuite, un second chapitre est composé de l’étude fonctionnelle, suivie de l’étude

technique. Ce chapitre contient des diagrammes, des présentations des plateformes et

technologies utilisées. Un troisième chapitre est entièrement consacré à la conception du projet.

De ce fait, il contient l’ensemble des diagrammes nécessaires à la bonne compréhension et

cohésion du système, du diagramme de cas d’utilisation au diagramme de classe. Le tout

accompagné des scénarios et descriptions nécessaires. Un dernier chapitre, pour finir, détaille

la réalisation des applications, et propose des aperçus de celles-ci.

Page 13: Rapport de projet de fin d'étude - Odoo 8, Android app -

Ecole Nationale des Sciences Appliquées de Tétouan

13

Chapitre 1 Contexte général du projet

Dans ce chapitre, nous présenterons le contexte général du projet. Nous allons commencer

par présenter l’organisme d’accueil et ses prestations, pour passer ensuite à une

présentation générale du projet contenant une étude de l’existant, la problématique et la

présentation du projet, pour détailler la planification de celui-ci et sa méthode de

développement.

Page 14: Rapport de projet de fin d'étude - Odoo 8, Android app -

Ecole Nationale des Sciences Appliquées de Tétouan

14

1- Présentation de l’organisme d’accueil Nous procéderons à la présentation de l’organisme d’accueil, à savoir, OpenCorp SA, ainsi

que ses prestations, ses services et ses clients.

1.1 Présentation d'OpenCorp

Figure 1- Logo d'OpenCorp SA

OpenCorp est une société de services IT spécialisée dans l’intégration de solutions open source

hébergées dans le cloud à destination des PME, TPE, startups et des professions libérales.

Au vu des avancées technologiques qui ont modifié en profondeur les attentes des utilisateurs

et des pressions toujours plus importantes sur les budgets, OpenCorp a pour but d'atteindre le

niveau d'exigence de ses clients, qui n'a jamais été aussi élevé.

Fort de plus de 20 années d’expérience dans les systèmes d'informations, les fondateurs

d'OpenCorp se sont donné comme mission de bousculer le marché en s'appuyant sur un

catalogue de solutions efficaces, stables et abordables afin de permettre à ses clients de gagner

en compétitivité.

C'est dans cette optique qu'OpenCorp est aujourd'hui un des premiers revendeurs de la solution

OpenERP 7.0 en mode SaaS.

L'objectif d'OpenCorp est d'améliorer la vie des entreprises grâce à la mise en place d'un

système s'adaptant parfaitement à leur processus ou à la transformation de leur système existant.

L'entreprise travaille sur la solution Odoo afin d'améliorer les problématiques business de ses

clients.

Les services d'OpenCorp sont destinés aux sociétés souhaitant optimiser leurs performances.

L'entreprise a pour programme élargi d’assistance technologique aux PME qui a pour objectif

de faire évoluer l'entreprise en profitant des dernières révolutions technologiques en se basant

sur 3 axes :

- Diagnostic technologique de l'entreprise

- Implémentation sur mesure du projet

- Suivi et conseil

Page 15: Rapport de projet de fin d'étude - Odoo 8, Android app -

Ecole Nationale des Sciences Appliquées de Tétouan

15

1.2 Prestations et services

OPENCORP revendique son expertise dans trois secteurs d'activités: la Communication, la

Distribution et les Ressources Humaines.

- Communication :

OpenCorp propose à ses clients des outils afin de gérer leurs activités liées à la communication.

Grâce à un système totalement intégré, toutes les informations sont partagées d'une manière

efficace en interne. De plus, les personnes qui doivent se déplacer régulièrement pourront

profiter du fait que le système est web-based et accessible depuis n'importe quel support.

Toutes les informations sur les contacts, les évènements, les projets, les newsletters et les

enquêtes sont en ligne. Enfin, la sécurisation de la base de données est de mise.

- Distribution :

Pour les entreprises de distribution, une solution puissante regroupe les fonctionnalités

nécessaires à la gestion efficace des opérations, quel que soit la nature du produit ou sa zone

géographique de distribution.

Le but est de diminuer votre temps d’entrée de données. De nombreuses fonctions permettent

de simplifier la gestion des produits : les multi unités, l’achat en série, les seuils minimums et

maximums, l’inventaire matriciel, la gestion de la limite de crédit par client, etc.

- Ressources Humaines :

Grâce à l'ajout d'un module ressources humaines, les dirigeants d’une société ont une meilleure

visibilité sur le suivi de leurs salariés et des tâches qui leur sont affectées.

Le module RH propose un compte-rendu des notes de frais, en permettant à chaque salarié

d’accéder à un espace personnel qui lui permettra de transmettre rapidement ses factures à la

comptabilité tout en permettant aux ressources humaines de fixer des barèmes et des plafonds.

Il est possible par exemple de gérer les congés et les absences de chaque collaborateur avec des

fonctionnalités qui permettent à chacun de connaître son solde de congés. La direction peut,

quant à elle, valider rapidement une demande de congés ou gérer les heures supplémentaires ou

encore le nombre de tickets restaurants à commander, par exemple.

Enfin, dernier point à aborder, c’est le suivi RH, toutes les données des dossiers salariés peuvent

être très facilement dématérialisées pour être accessibles rapidement via le web : contrats de

travail, avenants, entretiens annuels, visites médicales… Toutes les données d’un salarié

peuvent se retrouver très rapidement pour un meilleur suivi par les équipes de ressources

humaines.

Page 16: Rapport de projet de fin d'étude - Odoo 8, Android app -

Ecole Nationale des Sciences Appliquées de Tétouan

16

1.3 Clients Parmi les clients de la société OpenCorp SA, on peut citer :

Page 17: Rapport de projet de fin d'étude - Odoo 8, Android app -

Ecole Nationale des Sciences Appliquées de Tétouan

17

2- Présentation générale du projet Nous procédons maintenant à une présentation générale du projet : elle contiendra une étude

de l’existant, qui nous permettra de cerner la problématique et de présenter le projet. Une

présentation de la planification suivra.

2.1 Étude de l'existant La société OpenCorp SA est basée sur Bruxelles, et propose donc la quasi-totalité de ses

services à des petites et moyennes entreprises sur tout le territoire belge. Cependant, OpenCorp

travaille régulièrement avec des développeurs de Tétouan au Maroc, vu la présence de son

centre de développement dans la ville.

L'entreprise OpenCorp SA a pour progiciel de gestion intégré une version standard de l'ERP

Odoo (anciennement OpenERP), celui-ci est utilisé pour gérer les fonctionnalités générales de

l'entreprise. On peut citer par exemple : l'utilisation d'un module de ressources humaines

permettant une gestion simplifiée des feuilles de temps, l'utilisation d'un module de ventes

permettant la gestion également simplifiée des projets et de la facturation.

D'un autre côté, l'insertion et l'utilisation des modules de l'ERP est limitée à celle disponible à

travers l'interface web du serveur, c'est-à-dire sur ordinateur à travers un explorateur web

quelconque.

Enfin, le site web dédié de l'entreprise ne permet pas une grande interaction entre le client

potentiel et OpenCorp SA.

On peut donc déduire que la marge d'activité de l'entreprise se trouve réduite à cause du manque

de réactivité de son système d'information, et que celui-ci est efficace mais insuffisant pour une

gestion optimale des processus métiers, notamment ceux reliés aux ressources humaines et aux

ventes. L'entreprise rencontrera également des difficultés à contacter ou intéresser des clients

potentiels étrangers.

2.2 Problématique

Comme nous l'avons spécifié précédemment, le domaine d'activité de la société OpenCorp SA

se limite au territoire belge. Ce qui nous amène à la problématique suivante :

La société OpenCorp SA souhaite élargir ses activités et sa clientèle en visant les marchés

francophones en général (c'est-à-dire : la France, le Canada francophone et certains pays

africains). Cependant, la structure du PGI et du site web actuels n'est pas propice à l'expansion

de ces activités.

Pour ce qui est du PGI (aussi connu sous le nom d'ERP), celui-ci n'est pas compatible, d'un

côté, avec les réalités économiques des autres pays visés. Il présente également quelques

lacunes au niveau du module ressources humaines, le remplissage des timesheets n'est pas

optimisé, et les tarifs selon le consultant travaillant sur le projet ne sont pas spécifiés.

Page 18: Rapport de projet de fin d'étude - Odoo 8, Android app -

Ecole Nationale des Sciences Appliquées de Tétouan

18

Il n'existe également aucune liaison entre le contrat et le bon de commande afin de permettre la

facturation de celui-ci.

D'un autre côté, le site web est essentiellement orienté vers une clientèle se situant sur le

territoire belge. De ce fait, un client potentiel visitant d'un autre pays peut négliger de faire

appel aux services d'OpenCorp SA.

Pour finir, l'employé ne pouvant accéder au système d'information que depuis un poste

ordinateur, et l'interface de celui-ci n'étant pas adaptée au mobile, il reste difficile, sinon très

peu pratique, la consultation ou gestion d'affaires sur mobile.

Ainsi, il s'avère important de trouver une solution pour le problème se présentant.

2.3 Présentation du projet OpenCorp Offshore

OpenCorp a décidé de créer un centre offshore dédié où les développeurs pourront se rassembler

et se former afin qu’OpenCorp utilise ses services ou les propose à d’autres entreprises.

Afin de mener cette mission à bien, l'entreprise aura besoin de mener à bien 3 projets semi-

indépendants :

- Une partie back-end,

- Une partie front-end,

- Une partie mobile.

La partie back-end permettra de remédier aux problèmes cités précédemment. On procédera à

l'optimisation du procédé des timesheets, de la facturation et des sale orders.

La partie front-end permettra de mettre au point un site B2B permettant de mettre à la

disposition des clients potentiels un site à la manière d'un site d'e-commerce leur laissant la

liberté de choisir le consultant à travailler sur leur projet, son tarif, sa disponibilité et ainsi de

suite.

Enfin, la partie mobile sera une implémentation des éléments de la partie back-end rectifiés en

première partie du projet. Elle permettra à un employé de consulter, modifier, confirmer ses

feuilles de temps, ainsi que d'afficher les contrats, etc.

Page 19: Rapport de projet de fin d'étude - Odoo 8, Android app -

Ecole Nationale des Sciences Appliquées de Tétouan

19

Cahier de charges : Back-end

Objectif Fonctionnalités

Gestion des ventes - Consulter la liste des clients,

- Gérer les projets,

- Gérer les sous-contrats,

- Gérer les bons de commande,

- Gérer les paiements,

- Gérer les produits,

- Gérer les devis,

- Gérer les opportunités,

- Gérer les activités,

- Suivre des prix des feuilles de temps validées.

Gestion des ressources

humaines

- Gérer les employés,

- Gérer les timesheets.

Gestion des factures - Gérer les factures.

Service de messagerie - Envoi des emails.

Reporting - Imprimer les rapports (factures),

- Imprimer les rapports (timesheets).

Tableau 1- Cahier de charges Back-end

Ensemble des tâches demandées :

Pour ce qui est de la gestion des timesheets (ou feuilles de temps), il est nécessaire de créer les

menus des éléments : Saved Timesheets, Submitted Timesheets, Approved Timesheets,

Rejected Timesheets. Par la suite, il faut bien évidemment créer les vues correspondantes à ces

menus. Pour ce qui est de l’encodage par semaine, lors du remplissage des timesheets, il faut

définir celui-ci de samedi à vendredi, et ce au lieu de lundi à dimanche. Il faut également mettre

au point plusieurs garde-fous, un employé ne doit pas travailler moi de huit heures par jour (sauf

samedi et dimanche), ne doit pas travailler moins de cinq jours par semaine également, enfin,

il doit nécessairement renseigner une description lors du remplissage des lignes. Il faut

Page 20: Rapport de projet de fin d'étude - Odoo 8, Android app -

Ecole Nationale des Sciences Appliquées de Tétouan

20

également ajouter un onglet « project activity », celui-ci permet de spécifier l’activité effectuée

lorsque l’employé a travaillé sur un contrat donné (par exemple : développement, conception,

etc.) celle-ci est également nécessairement liée au contrat sélectionné. Ensuite, lors de la

soumission de la feuille de temps, celle-ci doit être validée par le supérieur hiérarchique défini

dans la fiche de l’employé, ce supérieur peut également modifier ces timesheets s’il le juge

nécessaire.

Pour les ressources humaines, on doit pouvoir assigner un supérieur hiérarchique à un employé

donné.

Pour les contrats clients, il faut non seulement imputer les timesheets aux contrats parents

correspondants mais également pouvoir ajouter des sous-contrats non associés au timesheets. Il

faut également ajouter l’onglet « project activity » des activités correspondantes au contrat. La

facturation doit se faire à l'aide du Sales Order. Le Sales Order est relié au sous-contrat

correspondant. Le sous-contrat prend le nom du contrat parent suivi du numéro du Sale Order

correspondant. La modification du prix d’achat et du prix de vente à déduire des timesheets

selon la valeur Start Cost (qui spécifie la date de début de l'application du tarif du service)

disponibles dans le sous-contrat correspondant. Egalement, la mise en place d’une fonction split

: elle permet d'attribuer les timesheets imputés à un contrat parent à un sous-contrat donné selon

la disponibilité de la quantité à facturer. Elle permet également le passage du Sales Order depuis

un état de brouillon à un état de confirmé. Enfin, il faut ajouter un champ No Description, il

permet de spécifier si le contrat n'a pas de description par défaut. Si oui, l'employé n'est pas

tenu de remplir une description lors de la création de la feuille de temps.

Pour la facturation, il faut passer de l'état du Sales Order de confirmé à terminé lors de la

facturation. Et pour le reporting, il faut pouvoir afficher des rapports relatifs aux timesheets

selon la date, les employés et les contrats, et la mise au point de filtres permettant l'affichage

des contrats dont le montant à facturer est supérieur à zéro, les contrats à splitter, etc. Il faut

également pouvoir imprimer les rapports générés. Pour finir, le service e-mail doit se charger

de l'envoi d'un e-mail à chaque employé, afin de les rappeler à remplir la timesheets, de manière

hebdomadaire.

Cahier de charges : Mobile (Android)

Objectif Fonctionnalités

Gestion des ventes - Gérer les projets,

- Gérer les sous-contrats,

- Gérer les activités,

- Suivre les prix des timesheets approuvées.

Page 21: Rapport de projet de fin d'étude - Odoo 8, Android app -

Ecole Nationale des Sciences Appliquées de Tétouan

21

Gestion des ressources

humaines

- Gérer les timesheets,

- Consulter et contacter les employés.

Gestion des factures - Consulter les factures.

Service de notification - Envoyer notification lors de validation de timesheet.

Reporting - Générer les rapports (timesheets)

Tableau 2- Cahier de charges mobile

Le travail qui nous a été demandé a été de développer une application mobile sous Android,

permettant une gestion efficace des différents services.

La principale fonctionnalité étant de gérer les timesheets : l'affichage de l'ensemble des

timesheets de l'employé connecté, regroupées par état (timesheet enregistrée, soumise à

validation, approuvée, etc.), la création, l'enregistrement, la modification et la soumission de

timesheets également soumises aux contraintes spécifiées dans le cahier de charges de la partie

back-end. Pour le manager, permettre la validation, ou la modification suivie de validation des

timesheets soumises par les employés, ainsi de recevoir des notifications lors de la validation

de sa feuille de temps par le manager.

La gestion des employés : l'affichage de la liste des employés et la disponibilité des

informations de base, telle que le département, le titre, le manager et le supérieur hiérarchique,

aussi la possibilité de contacter un employé donné par téléphone ou par email, si ces

coordonnées sont présentes.

La gestion des ventes (pour l'administrateur/manager) : l'affichage des projets sous forme de

liste. Parmi les informations à afficher : le nom du projet, le client concerné, le responsable

chargé du contrat, et le montant à facturer. L'affichage des détails du projet : Contenant les

informations citées précédemment, en plus de la date de signature du contrat, la référence, le

temps restant. Également consultables : les sous-contrats et les activités de projet.

La création des sous contrats, et des activités reliées aux projets, l'ajout du prix pour chaque

utilisateur dans les sous-contrats, le manager doit avoir aussi la possibilité de la consultation

des rapports et leur génération sous format PDF à partir de l'application mobile.

La gestion des factures : La consultation des détails des factures.

Page 22: Rapport de projet de fin d'étude - Odoo 8, Android app -

Ecole Nationale des Sciences Appliquées de Tétouan

22

3- Démarche et planification

3.1 Méthodologie de travail : La nature du projet incite à suivre une méthode agile et plus précisément la méthode Scrum. En

effet les spécifications du projet n’ont pas cessé d’être modifiées tout au long du projet et les

outils et les technologies n’ont pas été explicitées depuis le départ. Scrum permet d’entamer le

projet avec un minimum d’informations sur les travaux à faire et qui seront ajustées

régulièrement au cours du projet. Le cycle de vie de la méthode Scrum se décompose en

plusieurs Sprint successifs :

- Product Backlog ou « Le carnet de commandes » Scrum est une liste des caractéristiques

jugées prioritaires, contenant de courtes descriptions de toutes les fonctions désirées dans le

produit. Lorsque l'on suit le processus Scrum, il n'est pas nécessaire de démarrer un projet avec

une longue liste de toutes les exigences. Typiquement, une équipe Scrum et son propriétaire

commencent par écrire tout ce qu'ils peuvent penser pour spécifier les priorités. Ce backlog de

produit agile est presque toujours plus que suffisant pour un premier sprint. Le backlog de

produit Scrum est alors autorisé à grandir et à changer plus on apprend sur le produit et ses

clients.

- Sprint Backlog est une liste des tâches identifiées par l'équipe Scrum devant être achevée à la

fin du sprint. Au cours de la réunion de planification de sprint, l'équipe sélectionne un certain

nombre d'éléments produits du carnet de commandes, et identifie les tâches nécessaires pour

compléter chacune. La plupart des équipes estiment également combien d'heures chaque tâche

aura chaque membre de l'équipe pour terminer.

- Le Sprint dure au maximum 4 semaines, et pendant ce cycle des réunions quotidiennes sont

menées pour faire le point sur le travail accompli et les obstacles rencontrés depuis la dernière

réunion. Des livraisons fréquentes sont attendues à la fin du Sprint.

Figure 2- Exemple du développement en Scrum

Page 23: Rapport de projet de fin d'étude - Odoo 8, Android app -

Ecole Nationale des Sciences Appliquées de Tétouan

23

- Working increment of the software : L'incrément (ou incrément potentiellement livrable,

potentially shippable increment, PSI) est la somme de tous les articles produits du carnet de

commandes réalisées au cours d'un sprint et tous les sprints précédents. À la fin d'un sprint, la

tâche doit être complète, et dans un état utilisable indépendamment du fait que le propriétaire

du produit décide de réellement la livrer.

3.2 Planification du projet :

Diagramme de Gantt :

Le diagramme de GANTT est un outil permettant de modéliser la planification de tâches

nécessaires à la réalisation du projet, il visualise dans le temps les diverses tâches liées

composant le projet en fournissant une représentation graphique de son avancement.

Figure 3- Aperçu des tâches effectuées

Page 24: Rapport de projet de fin d'étude - Odoo 8, Android app -

Ecole Nationale des Sciences Appliquées de Tétouan

24

Figure 4- Diagramme de Gantt équivalent

Page 25: Rapport de projet de fin d'étude - Odoo 8, Android app -

Ecole Nationale des Sciences Appliquées de Tétouan

25

- Formation Back-end : Le but de cette phase est de garantir un savoir optimal sur la

manière de développer des modules sur la plateforme Odoo. Elle permet ainsi de débuter

le projet sur un rythme soutenu.

- Conception et développement, Back-end : L'objectif de cette phase est d'obtenir le

service back-end cible, et les tâches associées à cette étape sont :

Mise au point de la gestion des Timesheets,

Mise au point de la gestion des contrats et des factures,

Gestion du reporting.

- Formation Android : Le but de cette phase est de se préparer au développement sur

Android, ainsi que de maitriser les outils concernés.

- Conception et développement, Android : L'objectif de cette phase est d'implémenter les

fonctionnalités développées et celles utiles disponibles dans la back-end, et de les rendre

disponibles sur mobile, les tâches qui y sont associées sont les suivantes :

Gestion des timesheets,

Gestion des contrats, des employés et des factures,

Reporting,

Différenciation entre application destinée à l'employé et celle destinée au

manager.

Page 26: Rapport de projet de fin d'étude - Odoo 8, Android app -

Ecole Nationale des Sciences Appliquées de Tétouan

26

Conclusion

Dans ce chapitre, nous avons présenté le contexte général du projet, en introduisant l’organisme

d’accueil : OpenCorp. Nous avons ensuite effectué une étude de l'existant, grâce à laquelle nous

avons pu cerner les problématiques se présentant. Par la suite, nous avons présenté les cahiers

de charge fonctionnels, et nous avons parlé de la méthode de développement suivie, qui est

Scrum. Pour finir, nous avons donné un aperçu de la planification du projet à l'aide d'un

diagramme de Gantt.

Page 27: Rapport de projet de fin d'étude - Odoo 8, Android app -

Ecole Nationale des Sciences Appliquées de Tétouan

27

Chapitre 2 Etude fonctionnelle et technique

Dans ce chapitre, nous présenterons l’étude fonctionnelle et technique du projet. Pour la

première, nous allons présenter un diagramme des paquetages du système, ainsi qu’un

diagramme de contexte. Pour la seconde, nous allons parler de la plateforme Odoo, de la

plateforme Android et des outils et techniques utilisés.

Page 28: Rapport de projet de fin d'étude - Odoo 8, Android app -

Ecole Nationale des Sciences Appliquées de Tétouan

28

1- Étude fonctionnelle L’étude fonctionnelle regroupera quelques diagrammes : un diagramme de paquetages et un

diagramme de contexte.

1.1 Diagramme des paquetages Les diagrammes de paquetages sont la représentation graphique des relations existant entre les

paquetages (ou espaces de noms) composant un système, dans le langage Unified Modeling

Language (UML).

Le diagramme suivant représente le diagramme de paquetage de notre système. Celui-ci est

constitué des paquets principaux suivants :

- Gestion des ventes,

- Gestion des achats,

- Gestion comptable,

- Gestion de la relation clientèle,

- Gestion des ressources humaines.

Figure 5- Diagramme des paquetages

Page 29: Rapport de projet de fin d'étude - Odoo 8, Android app -

Ecole Nationale des Sciences Appliquées de Tétouan

29

1.2 Diagramme de contexte

Le domaine étudié est le suivant :

Conception, développement et mise en ligne d’une plateforme Odoo destinée à la gestion d’une

entreprise spécialisée dans les métiers de l’offshoring ICT

Les activités internes de la plateforme :

- Gestion des employés,

- Gestion des feuilles de temps,

- Gestion des contrats,

- Gestion de la facturation.

Les acteurs du système

Acteur Description

Employé Peut créer et soumettre des timesheets ainsi que

visualiser celles le concernant. Peut également

consulter les employés.

Manager Peut effectuer les tâches citées précédemment, en

plus de la validation et de la modification des

timesheets soumises pour validation.

Administrateur Peut effectuer les tâches citées précédemment, en

plus de la création des contrats, des factures et des

bons de commandes.

Client Peut signer des contrats, peut choisir un employé

à associer au contrat.

Tableau 3- Acteurs du système

Page 30: Rapport de projet de fin d'étude - Odoo 8, Android app -

Ecole Nationale des Sciences Appliquées de Tétouan

30

Figure 6- Diagramme de contexte

2- Étude technique L’étude technique mettra en relief les principales plates-formes utilisées, et parlera également

des différentes techniques utilisées pour la sécurisation lors du déploiement.

2.1 Odoo

Fondé en 2005 en Belgique par Fabien Pinckaers, Odoo

(anciennement OpenERP) 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.

Des centaines de modules fonctionnels sont assis sur cette fondation technique robuste et

performante. Ils apportent 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.

L’ERP Odoo gère toutes les grandes fonctions de l’entreprise. Il propose aussi plus de 500

applications spécialisées qui facilitent la gestion et améliorent la productivité.

Gestion et création de site web: Odoo V8 est à ce jour le seul ERP qui propose un CMS

intégré. Cette solution est particulièrement efficace pour les projets d’e-boutique, de

portail clients, de site d’annonces spécialisées.

Gestion Commerciale : Odoo V8 couvre toutes les fonctions de la gestion commerciale

(CRM – Devis – Commande – Facturation - Comptabilité).

Figure 7- Logo d'Odoo

Page 31: Rapport de projet de fin d'étude - Odoo 8, Android app -

Ecole Nationale des Sciences Appliquées de Tétouan

31

Marketing : Permet la gestion des campagnes de prospection et le suivi de portefeuille

de sondage clients ...

Ressources Humaines : Odoo V8 assure la gestion du recrutement via le site web jusqu’à

la gestion administrative des employés. Il permet à chaque collaborateur de s’abonner à

un événement et d’être notifié. Le chat et le réseau social d’entreprise sont autant de

fonctionnalités qui facilitent le travail quotidien des utilisateurs.

Historique et notes de sorties :

Le 20 janvier 2011, OpenERP SA annonçait le lancement de la version 6.0 du logiciel. 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 vue en version de démonstration. Mai 2014: OpenERP change de nom et devient Odoo.

Été 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),...

Architecture modulaire :

Outre le fait que la solution est Open Source, la grande force d'Odoo (OpenERP) réside dans

son architecture modulaire permettant de s’adapter à l’évolution des besoins dans le temps.

Il s'agit de la faculté de construire des applications informatiques de manière modulaire

(modules indépendants entre eux) tout en partageant une base de données unique, ceci élimine

les saisies multiples et élimine l’ambiguïté des données de même nature

Page 32: Rapport de projet de fin d'étude - Odoo 8, Android app -

Ecole Nationale des Sciences Appliquées de Tétouan

32

Structure modulaire

Figure 8- Structure modulaire d'Odoo

Un module Odoo est composé des éléments principaux suivants :

- Les vues, sous forme de fichiers XML. Ces vues sont sous forme de formulaires, listes,

graphes, calendriers, ou de diagrammes. La partie vue inclut également ce qu'on appelle les

actions et les éléments de menus.

- Les objets, sous forme de code python pour la plupart, contiennent les business objects et se

chargent des traitements effectués par le module. Les objets peuvent également être sous la

forme de fichiers XML, pour les données par exemples mais aussi pour des besoins de

démonstration.

- Les workflows, sont des fichiers XML, permettant de modéliser les flux d'un état à l'autre.

(Par exemple : passage d'un contrat de l'état en cours à l'état terminé, etc.)

- Les wizards, permettent l'affichage de fenêtres de dialogues, elles-mêmes contenant des vues

ou des objets.

- Les rapports, quant à eux sont composés de fichiers XML pour la partie statique, de code

python pour la partie dynamique et la mise en page se fait, pour sa part, à l'aide d'OpenOffice.

Pour finir le module a un fichier nécessaire : __openerp__.py qui définit les dépendances du

module.

Modèle vue contrôleur :

Un système Odoo est basé sur une architecture 3 tiers:

1. Un serveur de base de données PostgreSQL (qui peut contenir plusieurs bases de

données),

Page 33: Rapport de projet de fin d'étude - Odoo 8, Android app -

Ecole Nationale des Sciences Appliquées de Tétouan

33

2. Un serveur d'applications (contenant les objets de gestion, le moteur de workflow, le

générateur d'édition, etc.), développées en langage Python, qui accède au SGBD via un

ORM (couche de mapping objet-relationnel)

3. Un serveur de présentation (appelé Odoo WEB), qui communique avec le serveur

d'applications grâce à une interface XML-RPC

Gestion électronique des processus métier(Workflow)

Un Workflow est la représentation sous forme de flux des opérations à réaliser pour accomplir

l'ensemble des tâches ou activités regroupées en un même processus métier. Le workflow

permet la modélisation des processus métier dans le cadre d'une démarche plus globale BPM

Business Process Management.

Buts :

Description de l’évolution du document dans le temps

Déclenchement automatique d'actions si certaines conditions sont remplies

Gestion des rôles de l'entreprise et les étapes de validation

Gestion des interactions entre les différents objets/modules

2.2 Proxmox VE

Proxmox VE (Virtual Environment) est un logiciel libre de gestion de la virtualisation de

serveur dédié.

L'outil Proxmox permet de virtualiser un serveur sans avoir besoin d'installer un système

d'exploitation auparavant. Cet outil gère les machines virtuelles, le stockage, et les réseaux

virtualisés.

Proxmox a été créé en 2008 par la société Proxmox Server Solutions Gmbh, il est disponible

pour Linux et Windows.

2.3 SSH (Secure Shell)

C'est un protocole qui permet de se connecter à une machine distante avec une liaison

sécurisée. Les données sont cryptées entre machines. Il permet d’exécuter des commandes sur

un serveur distant.

Nous avons utilisé le programme OpenSSH, qui est la version libre du client et du serveur

SSH.

2.4 SSL (couche de sockets sécurisée)

C'est un système qui permet d'échanger des informations entre 2 ordinateurs de façon sûre.

SSL assure 3 choses:

Page 34: Rapport de projet de fin d'étude - Odoo 8, Android app -

Ecole Nationale des Sciences Appliquées de Tétouan

34

Confidentialité: Il est impossible d'espionner les informations échangées. Intégrité: Il est impossible de truquer les informations échangées. Authentification: Il permet de s'assurer de l'identité du programme, de la personne ou

de l'entreprise avec laquelle on communique.

Il repose sur un procédé de cryptographie par clef publique afin de garantir la sécurité de la

transmission de données sur internet. Son principe consiste à établir un canal de communication

sécurisé (chiffré) entre deux machines (un client et un serveur) après une étape

d'authentification.

Une fois le certificat SSL installé sur un site, les visiteurs pourront accéder à celui-ci à travers

une connexion « https » où le "s" signifie bien évidemment secured (sécurisée).Qui indique au

serveur qu'il doit établir une connexion sécurisée avec le navigateur.

Pourquoi SSL ?

SSL est standardisé. Il existe une version libre OpenSSL que vous pouvez utiliser dans vos

programmes sans payer de droits d’auteur.

SSL a été cryptanalysé : SSL a été passé en revue par de nombreux spécialistes en

cryptographie. On peut donc le considérer comme sûr.

Il est répandu: on peut facilement créer des programmes qui dialogueront avec d'autres

programmes utilisant SSL.

2.5 Service Web

Un Web service est une interface d’échange de données entre deux applications (API) qui

s’effectue par le biais d’inter ou intra Net. Il transfère les données vers les applications clientes

via des fichiers XML. Le dialogue à distance entre ces applications se fait indépendamment des

plateformes et des langages sur lesquelles elles reposent. Pour ce faire, les services web

s’appuient sur un ensemble de protocoles internet très répandus (SOAP, REST), afin de

communiquer. Cette communication est basée sur le principe de demandes et réponses. Les

services web s’appuient sur un ensemble de protocoles standardisant les modes d’invocation

mutuels de composants applicatifs.

XML-RPC vs. SOAP

Présentons les deux API :

Informations générales :

XML-RPC :

XML-RPC est "... un ensemble d'implémentations qui permettent aux logiciels fonctionnant sur les

systèmes d'exploitation disparates, d’être exécuté dans des environnements différents pour faire les

appels de procédure sur Internet. C’est une procédure distante appelée en utilisant HTTP comme

transport et XML comme encodage. XML-RPC est conçu pour être aussi simple que possible, tout en

Page 35: Rapport de projet de fin d'étude - Odoo 8, Android app -

Ecole Nationale des Sciences Appliquées de Tétouan

35

permettant des structures de données complexes d'être transmises, traitées et renvoyées ". -

xmlrpc.com

Objectifs de XML-RPC :

« Nous voulions un format propre, extensible et très simple. Il devrait être possible pour un codeur de

HTML pour être en mesure de regarder un fichier contenant un appel de procédure XML-RPC, de

comprendre ce qu'il fait, et être en mesure de le modifier et de le faire travailler sur le premier ou le

deuxième essai ... Nous voulions aussi que le protocole soit facile à mettre en œuvre et rapide à

adapter pour fonctionner dans d'autres environnements ou sur d'autres systèmes d'exploitation. » -

xmlrpc.com

La spécification elle-même contient à peu près sept pages, y compris des exemples et une FAQ, et est

extrêmement facile à comprendre. Tout programmeur compétent ne devrait trouver aucune difficulté

dans l'application de XML-RPC dans leur logiciel après avoir lu ses spécifications.

SOAP :

"SOAP est un protocole léger d'échange d'informations dans un environnement décentralisé et

distribué. C'est un protocole basé sur XML qui se compose de trois parties: Une enveloppe qui définit

un cadre pour décrire ce qui est dans un message et comment le traiter, un ensemble des règles de

codage pour exprimer des instances de types de données définis par l'application, et une convention

pour représenter les appels et les réponses de procédure à distance ". - La spécification SOAP.

Objectifs de SOAP :

SOAP tente de reprendre là où XML-RPC est arrêté par la mise en œuvre des types de données définis

par l'utilisateur, la possibilité de spécifier le destinataire, un message de contrôle de traitement

spécifique, et d'autres caractéristiques.

À plus de 40 pages la spécification SOAP est complexe et rejette la caractéristique la plus

importante de XML-RPC, sa facilité d'utilisation.

Caractéristiques et avantages

XML-RPC :

Structures: XML-RPC permet de définir un ensemble anonyme de paires nom-valeur. "A

contient s et chacun contient a et a." La valeur (s) peut être de tout type de données

Tableaux: Tableaux dans XML-RPC définissent un groupe anonyme d'éléments sans limitation

de mélange des types de données comme les entiers et les chaînes dans le même tableau. "A

contient un seul élément, qui peut contenir un nombre quelconque de s"

Stabilité : Bien que XML-RPC ne soit pas maintenu par un comité de normalisation, il est stable

et ouvert à la participation de la communauté.

Simplicité : La simplicité de XML-RPC est sa plus grande caractéristique. Il est extrêmement

facile à comprendre, mettre en œuvre, et à déboguer. La syntaxe est si simple qu'il est très facile

de trouver, et d'éviter, des erreurs.

Page 36: Rapport de projet de fin d'étude - Odoo 8, Android app -

Ecole Nationale des Sciences Appliquées de Tétouan

36

SOAP :

Structures: SOAP définit un ensemble de paires nom-valeur. Les structures peuvent être

nommées.

Tableaux: les tableaux SOAP définissent un regroupement d'éléments sans limitation de

mélange des types de données comme les entiers et les chaînes dans le même tableau. Les

tableaux peuvent être nommés.

Tableau d'octets: Un tableau d'octets peut être codé comme une référence unique ou une valeur

multi-référence. Les règles pour un tableau d'octets sont semblables à ceux d'une chaîne de

caractères.

En particulier, l'élément contenant du tableau de la valeur des octets peut avoir un attribut "id".

Des éléments accesseurs supplémentaires peut alors avoir correspondant attributs "href" ".

Types de données définies par l'utilisateur : les développeurs peuvent définir leurs propres types

de données simples ou complexes.

2.6 Android

Android est un système d'exploitation mobile, développé par Google. Celui-ci

met à disposition un kit de développement (SDK) basé sur le langage Java.

C'est un gros programme qui gère le matériel sur lequel il s'exécute

(smartphone, tablette, ordinateur ou d'autres) de manière à pouvoir exécuter

des logiciels. Android a pris une place importante dans la vie quotidienne de

millions de personnes, au point qu'il s'agit du système d'exploitation mobile

avec le plus d'applications en circulation.

Figure 9- Logo

d'Android

Page 37: Rapport de projet de fin d'étude - Odoo 8, Android app -

Ecole Nationale des Sciences Appliquées de Tétouan

37

onCreate() : cette méthode est appelée à la création d’une activité. Elle permet de l’initialiser.

C’est ici que l’interface graphique est spécifiée.

onStart() : Cette méthode est appelée quand l’application est démarrée.

onResume() : Cette méthode est appelée quand l’application passe (ou repasse) en avant-

plan.

Figure 10- Cycle de vie d'une application Android

Page 38: Rapport de projet de fin d'étude - Odoo 8, Android app -

Ecole Nationale des Sciences Appliquées de Tétouan

38

onPause() : Appelée quand l’application passe en arrière-plan et qu’une autre application se

met devant.

onStop() : Appelée quand l’application n’est plus visible.

onRestart() : Appelée quand l’application redevient visible.

onDestroy() : Appelée quand l’application est fermée par le système à cause d’un manque de

ressources, ou par l’utilisateur à l’utilisation d’un finish().

3- Outils et technologies utilisés

Ce chapitre décrit les différentes technologies adoptées et utilisées pour la réalisation de ce

projet, à commencer par le système d’exploitation Linux, tout en passant le système de gestion

de bases de données PostgreSQL, les langages nécessaires pour le développement, à savoir le

langage Python et XML et Java Android pour la version mobile et enfin les environnements

de développement Eclipse et Android Studio.

3.1 Système d'exploitation 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.

3.2 Environnements de développement Nous avons utilisé les environnements de développement suivants :

Eclipse

Eclipse est un projet de la Fondation Eclipse visant à développer un environnement de

développement intégré libre, extensible, universel et polyvalent. Son objectif est de produire et

fournir des outils pour la réalisation de logiciels, englobant les activités de programmation

(notamment au moyen d’un environnement de développement intégré) mais aussi de

modélisation, de conception, de test et de reporting. Son environnement de développement

intégré vise à supporter tout langage de programmation. Dans notre projet l’utilité d’Eclipse

Figure 11- Logo

d'Ubuntu

Page 39: Rapport de projet de fin d'étude - Odoo 8, Android app -

Ecole Nationale des Sciences Appliquées de Tétouan

39

consiste à développer certaines tâches en utilisant le plugin python développement (pydev) et

XML.

Android Studio

Android Studio est l'environnement de développement que Google propose à ses développeurs

pour créer des applications Android.

Android Studio permet principalement d'éditer les fichiers Java et les fichiers de configuration

d'une application Android.

Il propose entre autres des outils pour gérer le développement d'applications multilingues et

permet de visualiser la mise en page des écrans sur des écrans de résolutions variées

simultanément

3.3 Système de gestion de base de données 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. 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 12- Logo de

PostgreSQL

Page 40: Rapport de projet de fin d'étude - Odoo 8, Android app -

Ecole Nationale des Sciences Appliquées de Tétouan

40

3.4 Visual Paradigm Visual Paradigm pour UML (VP-UML) est un outil de support UML 2, SysML et Business

Process Modeling Notation (BPMN) à partir de l'Object Management Group (OMG). En plus

du support de la modélisation, il permet la génération de rapports et des capacités d'ingénierie

de code, y compris la génération de code. Il peut inverser les schémas de code, et de fournir des

générations de code pour différents langages de programmation.

3.5 Les langages de développement utilisés Pour ce qui est des langages, nous avons utilisé les langages suivants :

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.

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, 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. Python

est également 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.

XML (eXtensibleMarkupLanguage)

XML est en quelque sorte un langage HTML amélioré permettant de définir de nouvelles

balises. Il s'agit effectivement d'un langage permettant de mettre en forme des documents grâce

à des balises (markup). Contrairement à HTML, qui est considéré comme un langage défini et

figé (avec un nombre de balises limité), XML peut être considéré comme un métalangage

permettant de définir d'autres langages, c'est-à-dire définir de nouvelles balises permettant de

Page 41: Rapport de projet de fin d'étude - Odoo 8, Android app -

Ecole Nationale des Sciences Appliquées de Tétouan

41

décrire la présentation d'un texte. La force de XML réside dans sa capacité à pouvoir décrire

n'importe quel domaine de données grâce à son extensibilité. Il va permettre de structurer, poser

le vocabulaire et la syntaxe des données qu'il va contenir. En réalité les balises XML décrivent

le contenu plutôt que la présentation (contrairement à HTML). Ainsi, XML permet de séparer

le contenu de la présentation, ce qui permet par exemple d'afficher un même document sur des

applications ou des périphériques différents sans pour autant nécessiter de créer autant de

versions du document que l'on nécessite de représentations. XML a été mis au point par le XML

Working Group sous l'égide du World Wide Web Consortium (W3C) dès 1996. Depuis le 10

février 1998, les spécifications XML 1.0 ont été reconnues comme recommandations par le

W3C, ce qui en fait un langage reconnu. XML est un sous ensemble de SGML (Standard

Generalized Markup Language), défini par le standard ISO8879 en 1986, utilisé dans le milieu

de la Gestion Electronique Documentaire (GED). XML reprend la majeure partie des

fonctionnalités de SGML, il s'agit donc d'une simplification de SGML afin de le rendre

utilisable sur le web, XML fait partie du code des modules composants OpenERP, les vues par

lesquelles sont représentés les différents objets sont écrites en XML, ainsi nous y trouvons la

description détaillée de l’affichage des arbres, formulaires, menus et autres actions.

Java Android

Le langage Java est un langage de programmation informatique orienté objet, créé par James

Gosling et Patrick Naughton.

Le langage reprend en grande partie la syntaxe du langage C++, très utilisé par les

informaticiens. Néanmoins, Java a été épurée des concepts les plus subtils du C++ et à la fois

les plus déroutants, tels que l'héritage multiple remplacé par l'implémentation des interfaces.

Les concepteurs ont privilégié l'approche orientée objet de sorte qu'en Java, tout est objet à

l'exception des types primitifs (nombres entiers, nombres à virgule flottante, etc.).

Conclusion Au cours de ce chapitre, nous avons pu nous familiariser d’un côté avec le système est ses

paquets, mais également d’avoir plus d’informations sur les technologies utilisées (ici, Odoo et

Android) en plus de l’ensemble des environnements de développement utilisés, et des langages

à maîtriser.

Page 42: Rapport de projet de fin d'étude - Odoo 8, Android app -

Ecole Nationale des Sciences Appliquées de Tétouan

42

Chapitre 3 Conception détaillée du projet

Dans ce chapitre, nous présenterons la conception détaillée du projet. Nous commencerons

par spécifier les cas d’utilisation, ensuite les diagrammes d’activité et de séquence, et

enfin, un diagramme de composants et un diagramme de déploiement.

Page 43: Rapport de projet de fin d'étude - Odoo 8, Android app -

Ecole Nationale des Sciences Appliquées de Tétouan

43

1- Conception détaillée du projet Nous procéderons maintenant à une conception détaillée du projet.

1.1 Cas d’utilisation Commençons par les cas d’utilisation. Nous allons d’abord identifier les acteurs, puis les cas

d’utilisation pour finir avec des diagrammes.

Identification des acteurs

Un acteur représente une entité externe qui interagit avec le système (fournir, recevoir, échanger

de l’information). En observant les utilisateurs directs du système ainsi que les autres systèmes

qui interagissent avec le système que nous tentons de définir, nous trouvons ces acteurs qui

opèrent avec le système : Employé, Manager, Administrateur.

- Employé : Utilisateur aux rôles et permissions restreints, n’a pas beaucoup de privilèges

au sein de l’application,

- Manager : Utilisateur également, ayant plus de privilèges et une plus grande marge

d’action,

- Administrateur : Utilisateur ayant tous les privilèges, pouvant se charger du paramétrage

et de l’ensemble de la gestion de l’application.

Identification des cas d’utilisation

Un cas d’utilisation définit une manière d’utiliser le système et permet d’en décrire les

exigences fonctionnelles. Chaque cas d’utilisation contient un ou plusieurs scénarios qui

définissent comment le système devrait interagir avec les utilisateurs (appelés acteurs) pour

atteindre un but ou une fonction spécifique d’un travail. Un acteur d’un cas d’utilisation peut

être un humain ou un autre système externe à celui que l’on tente de définir. Les cas d’utilisation

tentent d’éviter tout jargon technique et essayent au contraire d’adopter le langage de

l’utilisateur final ou de l’expert du domaine.

Cas d’utilisation « Créer Timesheet »

Acteurs Administrateur, Manager, Employé

Pré-conditions L’utilisateur doit avoir accès au serveur,

L’utilisateur doit s’authentifier.

Scénarios Étapes Règles de Gestion

1. Choisir la date de début et la

date de fin

1. La date de début et la date de fin

de chaque timesheet reliée à un

utilisateur ne doivent pas

chevaucher celle d’une timesheet

précédente.

Page 44: Rapport de projet de fin d'étude - Odoo 8, Android app -

Ecole Nationale des Sciences Appliquées de Tétouan

44

2. Choisir le/les projet(s)

concernés

3. Choisir la date et le nombre

d’heures passés sur le projet

4. Insérer la description du

projet ainsi que l’activité

concernée

5. Enregistrer la feuille de

temps

Post-conditions Une fois que l’utilisateur a ajouté sa feuille de temps, il peut y

accéder à nouveau, la modifier ou la soumettre au manager pour la

valider.

Tableau 4- Description textuelle : Créer Timesheet

Cas d’utilisation « Soumettre Timesheet »

Acteurs Administrateur, Manager, Employé

Pré-conditions L’utilisateur doit avoir accès au serveur,

L’utilisateur doit s’authentifier,

L’utilisateur doit avoir préalablement enregistré une timesheet sur le

serveur.

Scénarios Étapes Règles de Gestion

1. Effectuer des modifications

si nécessaire

2. Soumettre la feuille de temps 1. Le nombre d’heures où

l’employé a travaillé par jour doit

être supérieur ou égal à 8,

2. La description du projet est

nécessaire,

3. L’activité du projet doit être

renseignée.

Post-conditions Une fois que l’utilisateur a soumis sa feuille de temps, il peut la

consulter sans la modifier.

Tableau 5- Description textuelle : Soumettre Timesheet

Page 45: Rapport de projet de fin d'étude - Odoo 8, Android app -

Ecole Nationale des Sciences Appliquées de Tétouan

45

Cas d’utilisation « Approuver Timesheet »

Acteurs Administrateur, Manager

Pré-conditions L’utilisateur doit avoir accès au serveur,

L’utilisateur doit s’authentifier,

L’utilisateur doit consulter les timesheets à valider

Scénarios Étapes Règles de Gestion

1. Vérifier les informations de

la feuille de temps

2. Effectuer des modifications

si nécessaire

3. Approuver la feuille de

temps

Post-conditions Une fois que l'utilisateur a approuvé la feuille de temps, il peut

approuver d'autres feuilles de temps et l'employé concerné par la

validation peut consulter sa feuille dans le menu des timesheets

approuvées.

Tableau 6- Description textuelle : Approuver Timesheet

Cas d'utilisation « Rejeter Timesheet »

Acteurs Administrateur, Manager

Pré-conditions L'utilisateur doit avoir accès au serveur,

L'utilisateur doit s'authentifier,

L'utilisateur doit consulter les timesheets à valider

Scénarios Étapes Règles de Gestion

1. Vérifier les informations de

la feuille de temps

2. Rejeter

Post-conditions Une fois que le manager a rejeté la feuille de temps, il peut approuver

ou rejeter d'autres feuilles de temps

Tableau 7- Description textuelle : Rejeter Timesheet

Page 46: Rapport de projet de fin d'étude - Odoo 8, Android app -

Ecole Nationale des Sciences Appliquées de Tétouan

46

Cas d'utilisation « Créer employé »

Acteurs Administrateur, Manager

Pré-conditions L'utilisateur doit avoir accès au serveur,

L'utilisateur doit s'authentifier,

L'utilisateur doit consulter la liste des employés

Scénarios Étapes Règles de Gestion

1. Remplir les informations sur

l'employé

1. L'utilisateur doit obligatoirement

renseigner le nom de l'employé

modifié

2. Valider les informations

Post-conditions L'employé peut créer des feuilles de temps

Tableau 8- Description textuelle : Créer employé

Cas d'utilisation « Modifier les informations d'un employé »

Acteurs Administrateur, Manager

Pré-conditions L'utilisateur doit avoir accès au serveur,

L'utilisateur doit s'authentifier,

L'utilisateur doit consulter la liste des employés

Scénarios Étapes Règles de Gestion

1. Choisir un employé parmi

ceux de la liste

2. Effectuer les modifications

sur les informations souhaitées

1. L'utilisateur doit

obligatoirement renseigner le nom

de l'employé modifié

3. Enregistrer les

modifications

Post-conditions Les nouveaux rôles sont appliqués à l'employé.

Tableau 9- Description textuelle : Modifier les informations d'un employé

Page 47: Rapport de projet de fin d'étude - Odoo 8, Android app -

Ecole Nationale des Sciences Appliquées de Tétouan

47

Cas d'utilisation « Créer contrat »

Acteurs Administrateur

Pré-conditions L'utilisateur doit avoir accès au serveur,

L'utilisateur doit s'authentifier,

L'utilisateur doit avoir les privilèges nécessaires pour la gestion des

contrats

Scénarios Étapes Règles de Gestion

1. Renseigner les informations

nécessaires

1. L'utilisateur doit obligatoirement

renseigner le nom du contrat

2. Ajouter les sous-contrats 2. L'utilisateur doit obligatoirement

renseigner le nom du sous-contrat,

3. L'utilisateur doit obligatoirement

renseigner le numéro du SO relatif

à la facturation

3. Ajouter les activités du

projet

4. Enregistrer le nouveau

contrat

Post-conditions Une fois que le contrat est créé, il est possible de commencer à créer

des feuilles de temps relatives à celui-ci.

Tableau 10- Description textuelle : Créer contrat

Cas d'utilisation « Modifier contrat »

Acteurs Administrateur

Pré-conditions L'utilisateur doit avoir accès au serveur,

L'utilisateur doit s'authentifier,

L'utilisateur doit avoir les privilèges nécessaires pour la gestion des

contrats

Scénarios Étapes Règles de Gestion

1. Consulter les contrats

Page 48: Rapport de projet de fin d'étude - Odoo 8, Android app -

Ecole Nationale des Sciences Appliquées de Tétouan

48

2. Effectuer les modifications

nécessaires

1. L'utilisateur doit

obligatoirement renseigner le nom

du contrat

3. Valider les modifications

Post-conditions Une fois que le contrat est modifié, les informations altérées

impactant les feuilles de temps sont validées.

Tableau 11- Description textuelle : Modifier contrat

Cas d'utilisation « Créer sales order »

Acteurs Administrateur

Pré-conditions L'utilisateur doit avoir accès au serveur,

L'utilisateur doit s'authentifier,

L'utilisateur doit avoir les privilèges nécessaires pour la gestion des

SO

Scénarios Étapes Règles de Gestion

1. Renseigner les informations

nécessaires

1. L'utilisateur doit obligatoirement

spécifier le client,

2. L'utilisateur doit obligatoirement

renseigner la date

3. L'utilisateur doit obligatoirement

renseigner les lignes du SO

2. Enregistrer le sale order

Post-conditions Une fois que le sale order est créé, il est possible de le relier à un

sous-contrat.

Tableau 12- Description textuelle : Créer Sales Order

Cas d'utilisation « Modifier sales order »

Acteurs Administrateur

Pré-conditions L'utilisateur doit avoir accès au serveur,

L'utilisateur doit s'authentifier,

L'utilisateur doit avoir les privilèges nécessaires pour la gestion des

SO

Page 49: Rapport de projet de fin d'étude - Odoo 8, Android app -

Ecole Nationale des Sciences Appliquées de Tétouan

49

Scénarios Étapes Règles de Gestion

1. Choisir un SO parmi les SO

disponibles

1. Le SO ne doit pas être relié à un

sous-contrat.

2. Effectuer les modifications

nécessaires

2. L'utilisateur doit

obligatoirement spécifier le client,

3. L'utilisateur doit

obligatoirement renseigner la date

4. L'utilisateur doit

obligatoirement renseigner les

lignes du SO

3. Enregistrer les

modifications

Post-conditions Une fois que le sale order est modifié, il reste possible de le relier au

sous-contrat

Tableau 13- Description textuelle : Modifier Sales Order

Cas d'utilisation « Générer rapports »

Acteurs Administrateur

Pré-conditions L'utilisateur doit avoir accès au serveur,

L'utilisateur doit s'authentifier,

L'utilisateur doit avoir les privilèges nécessaires pour la gestion des

SO

Scénarios Étapes Règles de Gestion

1. Consulter le menu

timesheets approuvées

2. Choisir la/les feuille(s) de

temps souhaitée

3. Générer le rapport

Post-conditions Une fois que le rapport est généré, il est possible d'imprimer ce

dernier.

Tableau 14- Description textuelle : Générer rapports

Page 50: Rapport de projet de fin d'étude - Odoo 8, Android app -

Ecole Nationale des Sciences Appliquées de Tétouan

50

Cas d'utilisation «Diviser (split) les contrats »

Acteurs Administrateur

Pré-conditions L'utilisateur doit avoir accès au serveur,

L'utilisateur doit s'authentifier,

L'utilisateur doit avoir les privilèges nécessaires pour la gestion des

contrats

Scénarios Étapes Règles de Gestion

1. Consulter les contrats

2. Choisir le contrat à diviser 1. Le contrat doit obligatoirement

avoir un/des sous-contrat(s)

2. Le contrat doit être relié à au

moins une feuille de temps validée,

3. Choisir le sous-contrat 3. La valeur du champ 'Expected'

doit être supérieure à la valeur du

champ 'To Invoice'

4. Diviser le contrat 4. La division se fait de la date la

plus ancienne à la plus récente.

Post-conditions Une fois que le contrat est divisé, la valeur du projet des feuilles de

temps concernées par le split prennent le nom du sous-contrat choisi.

Tableau 15- Description textuelle : Split les contrats

Cas d'utilisation « Créer Facture »

Acteurs Administrateur

Pré-conditions L'utilisateur doit avoir accès au serveur,

L'utilisateur doit s'authentifier,

L'utilisateur doit avoir les privilèges nécessaires pour la gestion des

contrats

Scénarios Étapes Règles de Gestion

1. Consulter les contrats

Page 51: Rapport de projet de fin d'étude - Odoo 8, Android app -

Ecole Nationale des Sciences Appliquées de Tétouan

51

2. Choisir le contrat à facturer 1. Le contrat doit obligatoirement

avoir un/des sous-contrat(s)

2. Le contrat doit être relié à au

moins une feuille de temps validée,

3. Le contrat doit être relié à un SO

3. Choisir 'Invoice'

4. Choisir les feuilles de temps

à facturer

4. Il faut choisir au moins une

feuille de temps

5. Renseigner les informations

de la facture

5. Il faut absolument renseigner la

description,

6. Il faut absolument renseigner le

contrat concerné,

7. Il faut absolument renseigner la

date.

Post-conditions Une fois que la facture est créée, il est possible de l'imprimer.

Tableau 16- Description textuelle : Créer facture

Diagramme de cas d’utilisation : Ressources Humaines

Pour ce qui est du diagramme suivant : il présente les cas d’utilisation du module ressources

humaines, les deux acteurs principaux sont l’employé et le manager. Un employé peut consulter

les employés, créer une feuille de temps, la soumettre, et consulter celles déjà enregistrées. Pour

un manager, celui-ci consulte les timesheets à valider, les approuve ou les rejette, et il peut

également modifier les informations des employés. Toutes ces activités nécessitent

l’authentification de l’utilisateur.

Page 52: Rapport de projet de fin d'étude - Odoo 8, Android app -

Ecole Nationale des Sciences Appliquées de Tétouan

52

Figure 13- Diagramme de cas d'utilisation : Ressources Humaines

Diagramme de cas d’utilisation : Ventes

Pour ce qui est du module de ventes, l’administrateur est l’acteur principal.

Il peut créer un contrat, avec ses sous-contrats, ses activités etc. Il peut également modifier

ceux-ci, les consulter, et les splitter.

Il peut également créer des factures, consulter les bons de commande, les créer et les modifier.

Enfin, il peut consulter les rapports (Approved Timesheets). Toutes les activités citées

nécessitent l’authentification de l’administrateur.

Figure 14- Diagramme de cas d'utilisation : Ventes

Page 53: Rapport de projet de fin d'étude - Odoo 8, Android app -

Ecole Nationale des Sciences Appliquées de Tétouan

53

1.2 Diagrammes d'activité

Le diagramme d’activité est un moyen graphique pour donner cette vision d’ensemble des cas

d’utilisation de l’application, voici deux diagrammes d’activité du déroulement des différentes

utilisations de l’application, le premier dans le module timesheets, le second dans le module

ventes.

Diagramme d'activité du module des Timesheets

Le diagramme suivant est représentatif de ce qui se passe au sein du module des timesheets :

L'employé remplit un timesheet avec les informations qui lui paraissent pertinentes. Ensuite, si

les informations sont correctes (c'est-à-dire qu'elles ne se heurtent à aucune des contraintes

mentionnées précédemment), il peut par la suite modifier le brouillon obtenu ou le soumettre

au responsable.

Une fois que le responsable consulte la feuille de temps, il se trouve face à deux possibilités :

les informations insérées sont correctes, il peut donc valider la feuille de temps. Si elles sont

incorrectes, le responsable peut rejeter ou modifier et ensuite valider la timesheet.

Si la timesheet est rejetée, elle est renvoyée à l'employé qui doit effectuer les modifications

nécessaires, et la soumettre à nouveau.

Figure 15- Diagramme d'activité : Timesheets

Diagramme d'activité du module des ventes

Le diagramme suivant est représentatif d'un scénario lambda au sein du module des ventes :

On commence par la création d'un contrat. Par la suite, il faut non seulement créer un ou

plusieurs sous contrats, mais également approuver les feuilles de temps relatives à celui-ci afin

de pouvoir accéder à la fonctionnalité split.

Page 54: Rapport de projet de fin d'étude - Odoo 8, Android app -

Ecole Nationale des Sciences Appliquées de Tétouan

54

Si les deux conditions sont avérées, la fonction split confie au système la mission de vérifier le

montant attendu des sous-contrats, spécifié lors de la création de ceux-ci, il affiche ensuite les

sous-contrats dont le montant attendu est supérieur à zéro.

Le manager choisit ensuite un contrat parmi ceux que le système retourne. Ce dernier compare

la date des timesheets avec celles les lignes spécifiant le prix d'achat et de vente des services

(également insérés lors de la création des sous-contrats.), le système calcule ensuite le prix

d'achat et de vente des heures insérées dans les feuilles de temps et calcule le montant attendu

dans le sous-contrat à celui à facturer depuis la feuille de temps.

Si la soustraction de ceux-ci est nulle, l'on procède directement à la modification des feuilles

de temps concernant le contrat à splitter, en replaçant le contrat en cours au sous-contrat

sélectionné, ainsi qu'en remplaçant les valeurs de prix d'achat et de vente par celles calculées.

Si elle est, par contre, supérieur à 0, la boucle recommence et effectue les calculs pour la ligne

de la timesheet suivante.

Enfin, si elle est inférieure à zéro, le système calcule le reste obtenu ainsi que le prix d'achat et

de vente. Il modifie ensuite la timesheet, en remplaçant la ligne concernée par deux lignes, l'une

contenant l'activité reliée au contrat courant, l'autre reliée au sous-contrat choisi, le nombre

d'heures travaillées coïncidant avec le montant nécessaire pour faire coïncider le montant

attendu et facturé.

Après modification des timesheets, le bon de commande concerné par le sous-contrat choisi

passe de l'état brouillon à l'état « Sales Order »

Pour finir, l'on procède à la création de la facture, si le montant est le même que le sale order

relié au sous contrat, ce dernier passe à l'état « done ».

Page 55: Rapport de projet de fin d'étude - Odoo 8, Android app -

Ecole Nationale des Sciences Appliquées de Tétouan

55

1.2 Diagrammes de séquence Les diagrammes de séquence suivant détailleront quatre scénarios principaux :

L’authentification, la création d’une feuille de temps, la modification et/ou l’approbation d’une

feuille de temps, et le split d’un contrat.

Figure 16- Diagramme d'activité : Ventes

Page 56: Rapport de projet de fin d'étude - Odoo 8, Android app -

Ecole Nationale des Sciences Appliquées de Tétouan

56

Diagramme de séquence du scénario « Authentification »

Le diagramme qui suit présente le scénario d'authentification de l'utilisateur à l'application.

Figure 17- Diagramme de séquence : Authentification

Détails du scénario :

1- L'utilisateur insère son login ainsi que son mot de passe,

1.1- Le système procède à la comparaison des identifiant et mot de passe soumis à ceux

stockés dans la base de données.

1.1.1, 1.1.1.1- Si les identifiants sont équivalents à ceux présents dans la base de

données, l'utilisateur accède à la page d'accueil.

1.1.2, 2- Sinon, l'utilisateur reçoit un message d'erreur.

Page 57: Rapport de projet de fin d'étude - Odoo 8, Android app -

Ecole Nationale des Sciences Appliquées de Tétouan

57

Diagramme de séquence du scénario « Création d'une feuille de temps »

Le diagramme qui suit présente le scénario de création d'une feuille de temps (ou timesheet.)

Figure 18- Diagramme de séquence : Création d'une timesheet

Détails du scénario :

1- L'utilisateur insère les données dans la feuille de temps,

1.1- Le système procède à la vérification de l'existence de chevauchement de la date de

début et de la date de fin,

1.1.1- Si les dates ne se chevauchent pas, les données sont enregistrées dans la base de

données,

2- L'utilisateur soumet les données pour leur vérification et leur validation par le

supérieur hiérarchique,

2.1, 2.2, 2.3- Le système vérifie que les descriptions du projet sont bien présentes, que

l'employé travaille au moins huit heures par jour (sauf samedi et dimanche) et que les

activités du projet sont renseignées,

2.3.1- Si toutes les conditions sont vérifiées, la modification se fait dans la base de

données, et la feuille de temps passe de l'état de brouillon à l'état de soumis.

2.3.2- Si au moins une des conditions n'est pas vérifiée, l'utilisateur reçoit un message

d'erreur et es invité à rectifier ses données.

2.3.3- Si les date de début et date de fin se chevauchent, l'utilisateur reçoit un message

d'erreur et est invité à les modifier.

Page 58: Rapport de projet de fin d'étude - Odoo 8, Android app -

Ecole Nationale des Sciences Appliquées de Tétouan

58

Diagramme de séquence du scénario « Modifier et/ou approuver une timesheet »

Le diagramme qui suit présente le scénario de modification et/ou d'approbation d'une feuille de

temps (ou timesheet)

Figure 19- Diagramme de séquence : Modifier et/ou approuver une timesheet

Détails du scénario :

1- Le manager choisit une timesheet à valider parmi les feuilles de temps présentes dans

la vue « Timesheets to Validate »

2- Si besoin est, le manager effectue des modifications sur la timesheet,

2.1- Le manager enregistre ensuite les modifications,

3- Le manager valide ensuite la feuille de temps,

3.1- La modification se fait ensuite dans la base de données, où elle passe de l'état de

« Submitted » à l'état « Approved »

Page 59: Rapport de projet de fin d'étude - Odoo 8, Android app -

Ecole Nationale des Sciences Appliquées de Tétouan

59

Diagramme de séquence du scénario « Split un contrat »

Le diagramme qui suit présente le scénario de « division » d'un contrat.

Figure 20- Diagramme de séquence : Split un contrat

Détails du scénario :

1- L'administrateur choisit un contrat à diviser parmi les contrats présents dans la vue

Contrats, ce contrat doit être relié à au moins une feuille de temps validée,

1.1- L'administrateur choisit la fonction split du contrat,

1.1.1- Le système cherche les sous-contrats existant, dont la valeur « Expected » est

supérieur à zéro et contenant un prix d'achat et de vente pour les services à effectuer,

1.1.1.1- Le système retourne la liste des sous-contrats remplissant ces conditions.

1.1.1.2- Si aucun sous-contrat ne remplit ces conditions, le système retourne une liste

vide,

2- Si la liste n'est pas vide, l'administrateur choisir le sous-contrat souhaité,

2.1- Le système procède à la modification des timesheets reliées au contrat concerné :

passage du titre du contrat au titre du sous-contrat choisi, calcul des nouveaux prix selon

les valeurs spécifiées dans le sous-contrat,

2.1.1- L'enregistrement des modifications se fait dans la base de données.

1.4 Diagramme de classe Le diagramme de classes permet d’appréhender la structure statique du système en indiquant la

structure des objets composant le système et les liens structurels entre ces objets. A partir de

l’analyse lors de la partie analyse du projet et des diagrammes de séquence présentés, nous

avons extrait un ensemble d'entités et de dépendances, cela a été traduit par UML en un

diagramme de classes qui sera ensuite décrit par un tableau détaillant le rôle de chaque entité et

ainsi de suite.

Page 60: Rapport de projet de fin d'étude - Odoo 8, Android app -

Ecole Nationale des Sciences Appliquées de Tétouan

60

Figure 21- Diagramme de classe du systèm

Page 61: Rapport de projet de fin d'étude - Odoo 8, Android app -

Ecole Nationale des Sciences Appliquées de Tétouan

61

Classe Description

Utilisateur Classe contenant les informations sur l'utilisateur

Elle contient notamment les attributs suivants : l'adresse email (email),

et si l'utilisateur est actif (active)

Elle contient notamment les méthodes suivantes : seConnecter(),

creerUtilisateur(), seDeconnecter().

Employe Classe contenant les informations sur l'employé

Elle contient notamment les attributs suivants : le nom (name)

Elle contient notamment les méthodes suivantes : creerEmploye()

Timesheet Classe contenant les informations sur la feuille de temps (timesheet)

Elle contient notamment les attributs suivants : la date de début

(dateFrom), la date de fin (dateTo) et l'état de la timesheet, c'est à dire

brouillon, approuvée, etc. (state)

Elle contient notamment les méthodes suivantes : creerTimesheet(),

soumettreTimesheet(), validerTimesheet()

ligneTimesheet Classe contenant les informations sur les lignes d'une feuille de temps

donnée

Elle contient notamment les attributs suivants : la date (date), le nombre

d'heures travaillées (amount), et la description de la tâche effectuée

(description)

Projet Classe contenant les informations sur un projet

Elle contient notamment les attributs suivants : le nom du projet

(name), sa date de début (date) et le montant à facturer (totalToInvoice)

Activity Classe contenant les informations sur les activités d'un projet

Elle contient notamment les attributs suivants : le nom de l'activité

(name) et une brève description (description)

sousContrat Classe contenant les informations sur un sous-contrat

Elle contient notamment les attributs suivants : le montant attendu

(expected) et le montant à facturer (toInvoice)

Page 62: Rapport de projet de fin d'étude - Odoo 8, Android app -

Ecole Nationale des Sciences Appliquées de Tétouan

62

client Classe contenant les informations sur le client

Elle contient notamment les attributs suivants : le nom du client

(name), son adresse (address) et son email (email)

saleOrder Classe contenant les informations sur les sale orders

Elle contient notamment les attributs suivants : son nom (name) et son

montant (montant)

facture Classe contenant les informations sur les factures

Elle contient notamment les attributs suivants : le numéro de la facture

(number), le total à payer (total), et la date d'émission de la facture

(dateInvoice)

pricePerUser Classe contenant les informations sur les prix d'achat et de vente d'un

utilisateur/employé donné

Elle contient notamment les attributs suivants : le prix d'achat (price),

le prix de vente (cost), et la date de début de tarification (startDate)

produit Classe contenant les informations sur les produits

Elle contient notamment les attributs suivants : le nom (name), le prix

d'achat (price), le prix de vente (cost) et s'il est à vendre (toSell)

Tableau 17- Tableau détaillé des classes, entités et méthodes

1.5 Diagramme de composants

Le diagramme de composants décrit l'organisation du système du point de vue des éléments

logiciels comme les modules (paquetages, fichiers sources, bibliothèques, exécutables), des

données (fichiers, bases de données) ou encore d'éléments de configuration (paramètres, scripts,

fichiers de commandes). Ce diagramme permet de mettre en évidence les dépendances entre les

composants (qui utilise quoi).

Le diagramme de composants de notre système est composé de :

-La couche présentation : joue le rôle de la vue dans le model MVC, il décrit tous ce qui est

interface, fenêtres et les actions. Dans notre cas les vues sont développées en XML

- La couche logique métier : joue le rôle de contrôleur de model MVC il permet de décrire les

objets les classes du projet via le Framework open Object qui assure la persistance des objets,

via le langage de programmation python.

- La couche persistance : concerne la persistance des donnes (ORM) dans un serveur

PostgreSQL.

Le diagramme est le suivant :

Page 63: Rapport de projet de fin d'étude - Odoo 8, Android app -

Ecole Nationale des Sciences Appliquées de Tétouan

63

Figure 22- Diagramme des composants

1.6 Diagramme de déploiement

En UML, un diagramme de déploiement est une vue statique qui sert à représenter l'utilisation

de l'infrastructure physique par le système et la manière dont les composants du système sont

répartis ainsi que leurs relations entre eux. Les éléments utilisés par un diagramme de

déploiement sont principalement les nœuds, les composants, les associations et les artefacts.

Les caractéristiques des ressources matérielles physiques et des supports de communication

peuvent être précisées par stéréotype.

Page 64: Rapport de projet de fin d'étude - Odoo 8, Android app -

Ecole Nationale des Sciences Appliquées de Tétouan

64

Figure 23- Diagramme de déploiement

Conclusion Ce chapitre a permis de donner une image claire et nette du système. Nous avons non seulement

spécifié les cas d’utilisation du système, ses diagrammes d’activité et de séquence, mais nous

avons également présenté un diagramme de composants permettant d’avoir une idée précise du

système du point de vue de ses composants, et un diagramme de déploiement spécifiant

l’infrastructure physique du système.

Page 65: Rapport de projet de fin d'étude - Odoo 8, Android app -

Ecole Nationale des Sciences Appliquées de Tétouan

65

Chapitre 4 Réalisation du module OpenCorp_timesheet

Réalisation de l’application Android

Dans ce chapitre, nous présenterons tout d’abord le déroulement des tests que nous avons

effectué tout au long du développement du projet, l’architecture du système, ensuite, nous

passerons à la description, accompagnée de captures de l’application côté serveur, puis

nous ferons de même du côté mobile (Android).

Page 66: Rapport de projet de fin d'étude - Odoo 8, Android app -

Ecole Nationale des Sciences Appliquées de Tétouan

66

1- Tests

En informatique, un test désigne une procédure de vérification partielle d'un système. Son

objectif principal est d'identifier un nombre maximum de comportements problématiques du

logiciel afin d'en augmenter la qualité (si les problèmes identifiés lors des tests sont corrigés).

Les tests de vérification ou de validation visent ainsi à vérifier que ce système réagit de la façon

prévue par ses développeurs (spécifications) ou est conforme aux besoins du client,

respectivement.

Un test ressemble à une expérience scientifique. Il examine une hypothèse exprimée en fonction

de trois éléments : les données en entrée, l'objet à tester et les observations attendues. Cet

examen est effectué sous conditions contrôlées pour pouvoir tirer des conclusions. Un bon test

respecte également l'exigence de répétabilité.

Le but de cette activité est de tendre vers un produit « zéro défaut »

Dans notre cas, des tests étaient effectués à la fin de chaque sprint, bouclés par un fichier

détaillant les erreurs rencontrées et les solutions proposées pour les réparer, suite auxquelles

nous réparions les problèmes avant de passer au sprint suivant.

Spécification du test

Exécution du test

Comparaison des résultats

Archivage du test Analyse des résultats

Modification du code/test

Objectif du test

Scénario de test

Résultat du test

Correcte Incorrecte

Résultat attendu

Figure 24- Cycle de vie d'un test

Page 67: Rapport de projet de fin d'étude - Odoo 8, Android app -

Ecole Nationale des Sciences Appliquées de Tétouan

67

2- Architecture du système Le schéma suivant représente l’architecture générale de notre système, dans lequel on possède

un serveur SGBD, et un serveur d’application Odoo qui contient tous les modules concernés,

en interaction avec un interpréteur des scripts python, puis le service web, qui permet de relier

l’utilisateur de l’application mobile au serveur Odoo.

Figure 25- Architecture du système

Page 68: Rapport de projet de fin d'étude - Odoo 8, Android app -

Ecole Nationale des Sciences Appliquées de Tétouan

68

3- Réalisation du module opencorp_timesheet : Nous avons décidé de diviser la présentation du module suivant ce qu’il gère, par exemple, la

gestion des timesheets, des contrats, de la facturation etc.

3.1 Gestion des timesheets L'interface relative aux timesheets se présente comme suit :

Nous remarquons la présence de menu latéral contenant les principales fonctionnalités de ces

timesheets, on nommera : My Current Timesheet, permettant la création et modification de la

feuille de temps de la semaine en cours. Timesheets to Validate, visible uniquement par le

manager et lui permettant de consulter, modifier et valider les timesheets soumises. Saved

timesheets contenant les timesheets enregistrées, à l'état 'Brouillon'. Submitted Timesheets,

contenant les timesheets soumises en attente de validation. Approved et Rejected timesheets,

respectivement les timesheets approuvées et rejetées de l'employé connecté.

Commençons donc par la création des timesheets. Elle se fait en deux étapes : le remplissage

du contrat et du nombre d'heures effectuée par journée dans la vue suivante :

Figure 26- Timesheets : Vue d'ensemble

Page 69: Rapport de projet de fin d'étude - Odoo 8, Android app -

Ecole Nationale des Sciences Appliquées de Tétouan

69

Ensuite, l'insertion de la description, l'activité du projet (ou project activity) dans chaque ligne.

Chaque ligne représente le nombre d'heures travaillé par contrat et par jour.

Nous remarquons que lors de la création de la feuille de ton, l'état de celle-ci se trouve dans

« New »

Parmi les messages d'erreur que l'on peut rencontrer, nous vous montrons le suivant : Lorsque

l'employé décide de soumettre la timesheet pour sa validation et s'il n'a pas rempli de

description, il reçoit le message d'erreur comme vu sur la figure qui suit. Nous rappelons que

l'application a d'autres garde-fous, notamment celui spécifiant qu'il faut travailler plus de 8

heures par jours, plus de 5 jours par semaines et celui spécifiant qu'il est obligatoire de

renseigner un project activity.

Figure 27- Timesheets : Création d'une nouvelle timesheet

Figure 28- Timesheets : Insertion des informations

Page 70: Rapport de projet de fin d'étude - Odoo 8, Android app -

Ecole Nationale des Sciences Appliquées de Tétouan

70

Après soumission de la feuille de temps, le manager se connecte à son tour à l'application.

Celui-ci peut consulter les timesheets à valider en cliquant sur le menu « Timesheets to

Validate »

On aperçoit par la suite la fenêtre suivante :

Figure 30- Timesheets : Timesheets à valider

Le manager peut choisir de modifier ou de valider directement la feuille de temps après sa

consultation :

Figure 31- Timesheets : Vue validation

Figure 29- Timesheets : Message d'erreur-Description

Page 71: Rapport de projet de fin d'étude - Odoo 8, Android app -

Ecole Nationale des Sciences Appliquées de Tétouan

71

Nous remarquons qu'une fois que la feuille de temps est en attente de validation, son état est

passé à « Waiting Approval »

Enfin, lorsque celle-ci est validée, l'état passe à « Approved »

3.2 Gestion des contrats

La vue générale de la gestion des contrats est représentée dans la figure qui suit.

Figure 32- Contrats : Vue d'ensemble

Le menu latéral a pour éléments principaux « Contracts », « Subcontracts », « Sales Orders »,

et « Quotations »

Pour les lignes en bleu sont les contrats qui ont un montant à facturer supérieur à 0.

Par la suite nous avons la vue d'un contrat :

Figure 33- Contrats : Vue contrat

Page 72: Rapport de projet de fin d'étude - Odoo 8, Android app -

Ecole Nationale des Sciences Appliquées de Tétouan

72

Nous remarquons la présence des informations basiques sur le contrat ainsi que trois onglets :

« Contract information », « Children » et « Project Activities »

- Contract information contient la date de début et de fin,

- Children contient les informations sur les sous-contrats reliés au contrat sélectionné,

- Project activites contient les activités reliées au projet.

Pour ce qui est des sous-contrats, ils se présentent comme suit :

Figure 34- Contrats : Vue sous-contrat

Le sous-contrat contient notamment des informations sur le contrat parent, le montant attendu

(Expected), le montant facturé (To Invoice) et les lignes représentant les prix d'achat et de vente

d'un service effectué par un employé donné.

Prenons le contrat Trends par exemple. Nous souhaitons 'splitter' celui-ci. Le wizard nous

permet de choisir le sous-contrat, nous choisissons Trends SO01.

Page 73: Rapport de projet de fin d'étude - Odoo 8, Android app -

Ecole Nationale des Sciences Appliquées de Tétouan

73

Figure 35- Contrats : Split

Et voici par exemple, une timesheet dont l'employé a travaillé sur le projet Trends :

Figure 36- Contrats : Timesheet concernée par projet

En appuyant sur Confirm, on obtient :

Le passage de « Total to Invoice » de :

Figure 37- Contrats : Total to invoice avant fonction split

Page 74: Rapport de projet de fin d'étude - Odoo 8, Android app -

Ecole Nationale des Sciences Appliquées de Tétouan

74

À :

Figure 38- Contrats : Total to invoice après fonction split

Et pour la feuille de temps, le nom du contrat prend le nom du sous-contrat :

Figure 39- Contrats : Timesheet modifiée après split

Nous remarquons également que le price et le cost ont été modifiés selon les valeurs de prix

d'achat et de vente spécifiés dans le sous-contrat :

Figure 40- Contrats : Aperçu des prix d'achat et de vente après split

Page 75: Rapport de projet de fin d'étude - Odoo 8, Android app -

Ecole Nationale des Sciences Appliquées de Tétouan

75

3.3 Facturation sur la base des contrats clients

Afin de passer à la facturation, nous choisissons un contrat et cliquons sur 'Invoice'

Figure 41- Contrats : Aperçu du sous-contrat à facturer

Nous choisissons les détails à afficher et les timesheets à facturer :

Figure 42- Contrats : Timesheets à facturer

Page 76: Rapport de projet de fin d'étude - Odoo 8, Android app -

Ecole Nationale des Sciences Appliquées de Tétouan

76

Et nous obtenons la facture suivante :

Figure 43- Contrats : Facture

3.4 Service email Nous avons configuré le serveur de manière à ce qu’il procède à l’envoi d’un email de rappel

hebdomadaire, demandant à chaque employé de remplir sa feuille de temps de la semaine en cours.

L’email est présenté dans l’aperçu suivant :

Figure 44- Emails : Aperçu d'email de rappel

3.5 Reporting Nous avons également mis au point une fonction de génération de rapports PDF, permettant la

consultation des informations générales relatives à une ou plusieurs lignes de timesheets validées à

sélectionner.

Page 77: Rapport de projet de fin d'étude - Odoo 8, Android app -

Ecole Nationale des Sciences Appliquées de Tétouan

77

Figure 45- Reporting : Aperçu de la page des rapports

Le rapport généré contient les informations suivantes :

Figure 46- Reporting : Aperçu du rapport généré

Page 78: Rapport de projet de fin d'étude - Odoo 8, Android app -

Ecole Nationale des Sciences Appliquées de Tétouan

78

4- Réalisation de l'Application OpenCorp mobile pour Android: Pour ce qui est de la présentation de l’application mobile, nous avons décidé de la présenté en

séparant ses fonctionnalités principales. L’ensemble des captures d’écran peut être trouvé dans

l’annexe.

4.1 Présentation de l'application : Au premier lancement de l'application, il faut se connecter au serveur Odoo,

Après la vérification du login et mot de passe, l'utilisateur peut accéder aux différentes

fonctionnalités de l’application grâce au menu ;

Nous avons adopté un menu de type « navigation drawer » qui correspondait plus à

l’application. En effet, étant donné le nombre de fonctionnalités qui peuvent être proposées aux

utilisateurs, ce menu nous semblait plus pertinent d’un point de vue « ergonomique ». Ci-

dessous un aperçu en image :

Figure 47- Page de connexion

Page 79: Rapport de projet de fin d'étude - Odoo 8, Android app -

Ecole Nationale des Sciences Appliquées de Tétouan

79

Le menu « Employee » permet d’accéder à la liste des employés et leurs détails, l'utilisateur

peut appeler ou envoyer un mail à l'employé directement à partir de l'application

Figure 48- Menus : Employé ordinaire Figure 49- Menus : Administrateur

Figure 51- Employés : Liste des

employés Figure 50- Employés : Détails d'un

employé

Page 80: Rapport de projet de fin d'étude - Odoo 8, Android app -

Ecole Nationale des Sciences Appliquées de Tétouan

80

4.2 Gestion des timesheets :

Créer une feuille de temps :

L'employé peut créer une nouvelle feuille de temps à partir du bouton qui se trouve sur la page

d'accueil ou le menu « Add timesheet », l'employé précise la date de début et la date de fin et

pour l'ajout des lignes il suffit de cliquer sur le bouton « + » en orange. Ensuite il précise le

jour et choisit le projet sur lequel il travail, l'activité associée au projet s'il existe, la description

et le nombre d'heures travaillées, s'il veut ajouter une nouvelle ligne, il clique sur le bouton

« next » sinon sur le bouton « Create »

Figure 52- Timesheets : Nouvelle Timesheet et nouvelle ligne

Modifier ou soumettre au responsable :

Le menu « Saved timesheets » contient les timesheets en état brouillon, l'employé peut modifier

les informations des timesheets, ou soumettre sa timesheet au responsable, si les informations

sont correctes.

Page 81: Rapport de projet de fin d'étude - Odoo 8, Android app -

Ecole Nationale des Sciences Appliquées de Tétouan

81

La modification et la validation par le responsable :

A partir du menu «To Validate », le manager peut consulter et vérifier toutes les timesheets à

approuver, ensuite il modifie ou valide la feuille de temps.

4.3 Gestion des contrats et factures: Le menu Contract permet au manager de consulter la liste des projets, et voir les détails : le

nom du projet, le client, le total à facturer les activités et les détails des sous-contrats …

Figure 53- Timesheets : Soumission de

la feuille de temps

Figure 54- Timesheets : Vérification

par le responsable

Page 82: Rapport de projet de fin d'étude - Odoo 8, Android app -

Ecole Nationale des Sciences Appliquées de Tétouan

82

Pour chaque projet il peut créer des activités, des sous-contrats et préciser le prix pour chaque

utilisateur au niveau du sous-contrat

Le manager peut aussi consulter les information qui concernent les factures a partir du menu

«Invoices », parmi ces informations : Le numéro, le client, l'état de la facture, la date de création

ainsi que le montant, etc.

4.4 Reporting Le manager peut voir les filtres des timesheets pour chaque utilisateur ou projet, l'autre

fonctionnalité est la possibilité de générer des rapports en format PDF contenant les détails de

chaque ligne de la timesheet : la date l’employé, le projet, le nombre d'heures, le prix de vente

et le prix d’achat.

Figure 55- Contrats : Détails d'un

contrat

Page 83: Rapport de projet de fin d'étude - Odoo 8, Android app -

Ecole Nationale des Sciences Appliquées de Tétouan

83

Le manager choisit la ligne à imprimer, et obtient le rapport suivant :

Notifications L’utilisateur de l’application reçoit une notification dès qu’une des feuilles de temps qu’il a

soumises est validée.

Figure 56- Rapports : Aperçu des

rapports par projet

Figure 57- Rapports : Aperçu d'un

rapport

Page 84: Rapport de projet de fin d'étude - Odoo 8, Android app -

Ecole Nationale des Sciences Appliquées de Tétouan

84

Figure 58- Notifications : Aperçu d'une notification de validation

Conclusion Dans ce chapitre, nous avons effectué une brève présentation du processus de test, suivie par

des captures d'écran des applications finales, du côté serveur mais également du côté mobile.

Celui-ci a permis d’avoir une meilleure idée sur les processus de tests et l’objectif de ceux-ci,

ainsi que d’avoir un aperçu clair de l’apparence et des fonctionnalités du module et de

l’application Android développés.

Page 85: Rapport de projet de fin d'étude - Odoo 8, Android app -

Ecole Nationale des Sciences Appliquées de Tétouan

85

Conclusion générale

Ce stage a été une occasion pour nous pour côtoyer le monde des ERP et des entreprises.

Dans notre projet de fin d'étude le travail a été réalisé au profit de la société OpenCorp SA.

Durant ce projet, la mission suivante nous a été confiée : la conception et le développement

d'un module au sein d'un système de gestion intégré, ainsi que le développement d'une

application mobile mettant en place les différentes fonctionnalités de ce module.

Pour ce faire nous avons commencé par une formation générale sur l'ERP Odoo. Ensuite, une

étude détaillée du cahier de charges afin de comprendre les besoins des futurs utilisateurs du

système, et par la suite nous avons commencé à développer les différentes vues et objets.

Finalement nous avons implémenté le module au sein d'Odoo afin d'avoir un système spécifique

à la société OpenCorp SA qui assure sa gestion globale.

La deuxième partie du projet a été de développer une application mobile pour Android,

permettant à chaque utilisateur d'accéder et d’interagir avec les différentes fonctionnalités du

système.

Le travail que nous avons réalisé peut être complété et poursuivi sous ses différents aspects,

notamment :

Ajouter d'autres fonctionnalités a l'application mobile : La gestion des clients, des payements,

ainsi que la génération des graphes.

L'élaboration de ce travail nous a permis d'une part d'approfondir les connaissances et le savoir-

faire acquis durant les années de notre formation au sein de l'ENSA de Tétouan, d'autre part de

préparer notre intégration à la vie professionnel et de mieux nous familiariser avec le marché

des ERP et de développement mobile.

Page 86: Rapport de projet de fin d'étude - Odoo 8, Android app -

Ecole Nationale des Sciences Appliquées de Tétouan

86

Webographie [Wikipédia – 2015] http://fr.wikipedia.org/wiki/Odoo

Informations sur Odoo,

[Odoo – 2015] https://www.odoo.com/documentation/8.0/howtos/backend.html

Comment créer un module Odoo,

[Odoo – 2015] https://doc.odoo.com/install/

Comment installer Odoo,

[Odoo – 2015] https://doc.odoo.com/6.0/developer/6_22_XML-RPC_web_services/

XML-RPC sur Odoo,

[XML-RPC – 2003] http://xmlrpc.scripting.com/spec.html

Documentation XML-RPC,

[SOAP – 2007] http://www.w3.org/TR/soap/

Documentation SOAP,

[Android – 2015] https://developer.android.com/guide/index.html

Documentation Android,

[Wikipédia – 2015] http://fr.wikipedia.org/wiki/SOAP

Informations sur SOAP,

[Wikipédia – 2014] http://fr.wikipedia.org/wiki/XML-RPC

Informations sur XML-RPC,

[Wikipédia – 2015] http://fr.wikipedia.org/wiki/Android

Informations sur Android,

[Sebsauvage – 2014] http://www.sebsauvage.net/comprendre/ssl/

Informations sur SSL,

[OpenSSL–2014] http://www.openssl.org/docs/

Documentation OpenSSL.

Page 87: Rapport de projet de fin d'étude - Odoo 8, Android app -

Ecole Nationale des Sciences Appliquées de Tétouan

87

Annexe

Installation du serveur sur Proxmox

Installation d'Ubuntu server sur Proxmox

Pour commencer l'installation d'Ubuntu Server, il faut accéder au lien Proxmox, nous

choisissons la langue puis nous cliquons sur installer Ubuntu Server.

Nous choisissons un nom pour la machine, un nom d'utilisateur et un mot de passe. Ensuite

nous partitionnons le disque et choisissons l'espace nécessaire pour le partitionnement assisté :

Page 88: Rapport de projet de fin d'étude - Odoo 8, Android app -

Ecole Nationale des Sciences Appliquées de Tétouan

88

Ensuite, nous choisissons les logiciels à installer, et optionnellement, le programme de

démarrage GRUB, une fois l'installation terminée, nous pouvons nous connecter au serveur

Ubuntu.

Après l'installation du serveur on passe à l'affectation de l'adresse IP, il faut éditer ou créer le

fichier suivant : /etc/network/interfaces. Pour attribuer l’adresse IP 37.59.xx.xx avec le

masque et la passerelle 37.187.xx.xx à l'interface eth0

Page 89: Rapport de projet de fin d'étude - Odoo 8, Android app -

Ecole Nationale des Sciences Appliquées de Tétouan

89

Le serveur permet d'accepter les connexions de type SSH depuis des machines distantes. Cela

permet donc de laisser une machine munie d'un serveur SSH dans un coin, et de la contrôler à

distance, sans pour autant s’alourdir d'un écran et d'un clavier pour la dite machine

Les cas ou cette utilisation peut être utile :

- Un serveur web perso

- Un serveur de données pour la maison / le bureau

- Une passerelle internet

- Un serveur mail

Installation du serveur OpenSSH (debian)

- Mettez à jour la liste des paquets disponibles

sudo apt-get update

- Installez le serveur OpenSSH

sudo apt-get install openssh-server

Nous installons ensuite le serveur PostgreSQL et le serveur Odoo de la même façon que

précédemment, l'interface pgAdmin non incluse.

Par la suite, nous modifions les fichiers de configuration d'Odoo :

Page 90: Rapport de projet de fin d'étude - Odoo 8, Android app -

Ecole Nationale des Sciences Appliquées de Tétouan

90

Nous modifions ensuite le fichier init.d

Nous pouvons par la suite lancer le serveur.

Configuration de clé SSL pour avoir un accès https à Odoo

Nous installons apache2 et nous générons le certificat.

Page 91: Rapport de projet de fin d'étude - Odoo 8, Android app -

Ecole Nationale des Sciences Appliquées de Tétouan

91

Page 92: Rapport de projet de fin d'étude - Odoo 8, Android app -

Ecole Nationale des Sciences Appliquées de Tétouan

92

Captures de l'application mobile (Android)

Menu

Figure 59- Page d'accueil

Gestion des timesheets

Création d'une timesheet

Figure 60- Créer timesheet

Page 93: Rapport de projet de fin d'étude - Odoo 8, Android app -

Ecole Nationale des Sciences Appliquées de Tétouan

93

Figure 61- Validation de la création

Aperçus des timesheets

Figure 62- Liste et détails des timesheets

Page 94: Rapport de projet de fin d'étude - Odoo 8, Android app -

Ecole Nationale des Sciences Appliquées de Tétouan

94

Figure 63- Modifier Saved timesheet

Page 95: Rapport de projet de fin d'étude - Odoo 8, Android app -

Ecole Nationale des Sciences Appliquées de Tétouan

95

Gestion des contrats

Figure 64- Liste et détails des contrats

Figure 65- Nouvelle activité

Page 96: Rapport de projet de fin d'étude - Odoo 8, Android app -

Ecole Nationale des Sciences Appliquées de Tétouan

96

Figure 66- Ajouter un Sous-contrat

Gestion des factures

Figure 67- Liste et détails des factures

Page 97: Rapport de projet de fin d'étude - Odoo 8, Android app -

Ecole Nationale des Sciences Appliquées de Tétouan

97

Gestion des rapports

Figure 68- Reporting: Vue par utilisateur