SlideShare ist ein Scribd-Unternehmen logo
1 von 74
Downloaden Sie, um offline zu lesen
N° d’Ordre :




ECOLE NATIONALE DES SCIENCES                           UNIVERSITE ABDELMALEK
APPLIQUEES - TANGER                                    ESSAÂDI




                     PROJET DE FIN D’ETUDES
                     Présenté à l’école pour obtenir le diplôme

                              D’INGENIEUR D’ETAT
                           Spécialité: Génie informatique
                     Option: Génie des systèmes d’informations



                                        Titre

                      ANALYSE DE BESOIN, ADAPTATION
                      ET INTEGRATION D’OPENERP POUR
                          LA GESTION D’OFFICINE




                                     Réalisé par
                                   HAMLI Marouane

                                   Encdré par
                          ELKAFIL Abdrahman (NEXTMA)
                           EL ALAMI Mohamed (ENSAT)

                               SOUTENU LE 27 juin 2012
Dédicace

 Au Dieu tout puissant, mon créateur.

 A ma mère, ma raison d’être, ma raison de vivre, la lanterne qui éclaire mon
 chemin et m’illumine de douceur et d’amour.

 A mon père, en signe d’amour, de reconnaissance et de gratitude pour tous les
 soutiens et les sacrifices dont il a fait preuve à mon égard.

 A mes sœurs.


 A mes grands-parents.


 Aux familles EL KHAZRAJI et HAMLI.
 A mes amis, et à tous mes proches.




                                      Page 2
Rapport du projet de fin d’études                                     HAMLI Marouane
Remerciements

         Le présent rapport reflète le fruit des efforts conjugués de plusieurs personnes. Il
 m’est alors agréable d’exprimer ma reconnaissance auprès de toutes ces personnes, dont
 l’intervention au cours de ce projet, a favorisé son aboutissement.

        Aussi je tiens à rendre grâce à mes parents, ma famille et mes amis qui, avec leur
 soutien et encouragement, j’ai pu arriver à terme de ce travail.

        Je souhaite remercier aussi mon encadrant d’entreprise, pour m’avoir accordé cette
 chance de travailler à ses cotés, et qui m’a été d’une aide très utile durant ma période de
 stage, Mr ELKAFIL Abdrahman pour ses directives précieuses et ses conseils judicieux qui
 m’ont été d’un appui considérable dans ma démarche.

          Je remercie particulièrement Mr Mohamed HASSOUN EL ALAMI pour son
 encadrement, son soutien, ainsi que pour ses conseils instructifs durant toute la période de ce
 travail.

        Mes remerciements aussi à Mr ELHADDAD Mohamed, chef de la filière informatique,
 ainsi qu’à l’ensemble des professeurs de l’ENSA-Tanger pour les efforts fournis pour notre
 bonne formation.

        Que les membres de jury trouvent ici l’expression de mes reconnaissances pour avoir
 accepté de juger notre travail. Que tous ceux et celles qui ont contribué de près ou de loin à
 l’accomplissement de ce travail trouvent l’expression de mes remerciements les plus
 chaleureux.




                                          Page 3
Rapport du projet de fin d’études                                               HAMLI Marouane
Résumé


        Les technologies de l’information ont connu une importante évolution durant ces
 dernières années, ce qui a donné comme résultat l’émergence de plusieurs solutions
 informatiques pour remédier aux différentes problématiques réelles.

         Les Progiciels de Gestion Intégré, appelés PGI ou ERP, sont l’une des solutions les
 plus pratiques à ce jour, ils intègrent les principales composantes fonctionnelles de
 l'entreprise: gestion de production, gestion commerciale, logistique, ressources humaines,
 comptabilité, contrôle de gestion.

        A l'aide de ce système unifié, les utilisateurs de différents métiers travaillent dans un
 environnement applicatif identique qui repose sur une base de données unique. Ce modèle
 permet d'assurer l'intégrité des données, la non-redondance de l'information, ainsi que la
 réduction des temps de traitement.

         Le travail présenté dans ce rapport concerne l’analyse du besoin, l’adaptation et
 l’intégration du PGI Open-Source « OpenERP » pour la gestion d’officine pharmaceutique.

         Pour y arriver, il a fallut d’abord se rendre sur les lieux, une pharmacie, pour prendre
 notes des différents processus métier, pour ensuite pouvoir élaborer une liste des différents
 besoins requis. L’étape qui a suivit était de se familiariser avec ce nouvel outil et découvrir les
 options qu’il offre, puis apprendre comment développer un module pour ce progiciel. Ensuite
 faire quelques simulations pour s’assurer que le travail a bien été fait, et corriger les bugs qui
 peuvent arriver, si jamais il y en a.

        Les PGI sont connus pour leur structure « modulaire », ainsi il a fallut développer un
 module spécial pour les officines, lequel fonctionne en relation avec d’autres modules
 existants, comme le module des achats, ou celui du point de vente.




                                            Page 4
Rapport du projet de fin d’études                                                   HAMLI Marouane
Avant-propos




 Nom : HAMLI

 Prénom : Marouane

 Intitulé du travail : Analyse du besoin, adaptation et intégration d’OpenERP pour la gestion
 d’Officine.

 Etablissement d’accueil : Nextma

                              452, Boulevard Mohamed V, Casablanca

                              Tel : +212 (0) 5 22 30 00 55

                              Fax : +212 (0) 5 22 45 17 30

                              Email : info@nextma.com

 Encadrant dans l’établissement d’accueil : M. ELKAFIL Abdrahman

 Encadrant à l’ENSA : M. EL ALAMI Ahmed

 Date de début et de fin du stage : du 5 Mars au 31 Mai 2012.




                                         Page 5
Rapport du projet de fin d’études                                              HAMLI Marouane
Liste des abréviations

        Abréviation                                  Désignation

 PGI                      Progiciel de Gestion Intégré

 ERP                      Enterprise Resource Planning

 SSLL                     Sociétés de Services en Logiciels Libres

 PME                      Petites et Moyennes Entreprises

 CRM                      Client Relationship Management

 UML                      Unified Modeling Language

 RUP                      Rational Unified Process

 XP                       eXtreme Programming

 2TUP                     Two Track Unified Process

 DCI                      Dénomination Commune Internationale

 XML                      eXtended Markup Language

 BSD                      Berkeley Software Distribution

 SGBDRO                   Système de Gestion de Base de Données Relationnelle et Objet

 SQL                      Structured Query Language

 MVC                      Modèle Vue Contrôleur

 GPAO                     Gestion de Production Assistée par Ordinateur

 GTK                      The Gimp ToolKit

 WSGI                     Web Server Gateway Interface

 SGML                     Standard Generalized Markup Language

 GED                      Gestion Electronique Documentaire

 TVA                      Taxe sur la Valeur Ajoutée




                                       Page 6
Rapport du projet de fin d’études                                          HAMLI Marouane
Table des figures

 Figure 1: Logo Nextma ............................................................................................................ 13
 Figure 2: Nextma sur la carte ................................................................................................... 13
 Figure 3: Clients Nextma ......................................................................................................... 15
 Figure 4: Cycle de développement en Y .................................................................................. 21
 Figure 5: Planning du projet ..................................................................................................... 22
 Figure 6: Interface d'Ubuntu 11.10 .......................................................................................... 34
 Figure 7 : Logo PostgreSQL .................................................................................................... 35
 Figure 8 : Interface Web d'OpenERP ....................................................................................... 36
 Figure 9: Architecture d'OpenERP ........................................................................................... 38
 Figure 10 : Dépendences du module officine ........................................................................... 45
 Figure 11: Connexion ............................................................................................................... 47
 Figure 12: Accueil OpenERP - client web ............................................................................... 48
 Figure 13: Liste des modules OpenERP .................................................................................. 48
 Figure 14: Gestion des utilisateurs ........................................................................................... 51
 Figure 15: Gestion des groupes ............................................................................................... 51
 Figure 16: Liste des médecins .................................................................................................. 52
 Figure 17: Formulaire médecin ................................................................................................ 52
 Figure 18:Formulaire patient .................................................................................................... 52
 Figure 19: Bons de commande fournisseur .............................................................................. 53
 Figure 20: Liste des réceptions................................................................................................. 54
 Figure 21: Formulaire client ..................................................................................................... 54
 Figure 22: Gestion des inventaires physiques .......................................................................... 55
 Figure 23: Liste des mouvements de stock ............................................................................. 55
 Figure 24: Liste des règles de stock minimum ......................................................................... 56
 Figure 25: Formulaire produit – I............................................................................................. 56
 Figure 26: Formulaire produit - II ............................................................................................ 57
 Figure 27: Produit en stock d'alerte .......................................................................................... 57
 Figure 28: Analyse des mouvements de stocks ........................................................................ 57
 Figure 29: Liste des factures clients ......................................................................................... 58
 Figure 30: Détails facture client ............................................................................................... 58
 Figure 31: Paiements clients .................................................................................................... 59
 Figure 32: Point de vente ......................................................................................................... 60
 Figure 33: Paiement en espèces ............................................................................................... 60
 Figure 34: Assistant d'ouverture des caisses ............................................................................ 61
 Figure 35: Liste des méthodes de paiement ............................................................................. 61
 Figure 36: Formulaire de création/modification d'une méthode de paiement .......................... 61
 Figure 37: Liste des caisses ...................................................................................................... 62
 Figure 38: Journal des ventes ................................................................................................... 62
 Figure 39: Ordre de vente......................................................................................................... 62
 Figure 40: Renseignement des informations d'ordonnance...................................................... 63



                                                            Page 7
Rapport du projet de fin d’études                                                                                 HAMLI Marouane
Figure 41: Catégories des produits - point de vente ................................................................. 63
 Figure 42: Analyse du point de vente par produit .................................................................... 64
 Figure 43: Analyse des enregistreuses par utilisateur .............................................................. 64




                                                      Diagrammes
 Diagramme 1: Gestion basique ................................................................................................ 26
 Diagramme 2: Vente au comptoir ............................................................................................ 27
 Diagramme 3: Gestion des achats ............................................................................................ 28
 Diagramme 4: Gestion des ventes ............................................................................................ 29
 Diagramme 5 : Gestion du stock .............................................................................................. 30
 Diagramme 6: Cas d'utilisations - Statistiques et alertes.......................................................... 31
 Diagramme 7: Diagramme des classes - fonctionnel ............................................................... 32




                                                          Tableaux

 Tableau 1 : Comparaison des méthodes de développement ..................................................... 20
 Tableau 2: Liste des fonctionnalités requises ........................................................................... 25
 Tableau 3: Description des modules OpenERP en relation avec l'officine .............................. 44
 Tableau 4 : attributs du produit ................................................................................................ 49
 Tableau 5: Attributs de la méthode de paiement ...................................................................... 50




                                                           Page 8
Rapport du projet de fin d’études                                                                               HAMLI Marouane
Table des matières
 Dédicace ..................................................................................................................................... 2
 Remerciements ........................................................................................................................... 3
 Résumé ....................................................................................................................................... 4
 Avant-propos .............................................................................................................................. 5
 Liste des abréviations ................................................................................................................. 6
 Table des figures ........................................................................................................................ 7
 Diagrammes ............................................................................................................................... 8
 Tableaux ..................................................................................................................................... 8
 Introduction générale ................................................................................................................ 11
 Partie I : Contexte général du projet......................................................................................... 12
 1      Chapitre I : Présentation de l’organisme d’accueil .......................................................... 13
     1.1      Présentation de Nextma ............................................................................................. 13
     1.2      Prestations et services ................................................................................................ 14
     1.3      Secteurs d’activité...................................................................................................... 14
     1.4      Références ................................................................................................................. 15
 2      Chapitre II : Cadre général du projet ................................................................................ 16
     2.1      Présentation générale de l’officine ............................................................................ 16
     2.2      Problématique ............................................................................................................ 16
     2.3      Objectifs du projet ..................................................................................................... 17
     2.4      Conduite du projet ..................................................................................................... 19
        2.4.1        Processus du développement .............................................................................. 19
        2.4.2        Planification du projet ........................................................................................ 22
 Partie II : Etude fonctionnelle et technique .............................................................................. 24
 3      Chapitre III : Analyse et Conception du projet ................................................................ 25
     3.1      Analyse du projet ....................................................................................................... 25
     3.2      Conception ................................................................................................................. 26
        3.2.1        Diagramme des cas d’utilisations :..................................................................... 26
        1.        Gestion basique : .................................................................................................... 26
        3.2.2        Diagramme des classes : .................................................................................... 31
 4      Chapitre IV : Technologies mises en œuvre .................................................................... 34
     4.1      Ubuntu ....................................................................................................................... 34
     4.2      PostgreSQL ................................................................................................................ 35




                                                                Page 9
Rapport du projet de fin d’études                                                                                         HAMLI Marouane
4.3      OpenERP ................................................................................................................... 36
     4.4      Python ........................................................................................................................ 40
     4.5      XML .......................................................................................................................... 42
 5      Chapitre IV : Développement du module « officine » ..................................................... 43
     5.1      Analyse fonctionnelle des modules OpenERP .......................................................... 43
     5.2      Module « Officine » .................................................................................................. 46
     5.3      Installation ................................................................................................................. 47
     5.4      Paramétrage ............................................................................................................... 48
        5.4.1        Général ............................................................................................................... 48
        5.4.2        Plan comptable ................................................................................................... 49
        5.4.3        Produit ................................................................................................................ 49
        5.4.4        Méthodes de paiements : .................................................................................... 49
     5.5      Simulation .................................................................................................................. 51
        5.5.1        Gestion de base ................................................................................................... 51
        5.5.2        Gestion des achats .............................................................................................. 53
        5.5.3        Gestion des ventes .............................................................................................. 54
        5.5.4        Gestion du stock ................................................................................................. 55
        5.5.5        Comptabilité ....................................................................................................... 58
        5.5.6        Point de vente ..................................................................................................... 60
     5.6      Problèmes rencontrés ................................................................................................. 64
 Conclusion ................................................................................................................................ 65
 Bibliographie & webographie .................................................................................................. 66
     Bibliographie ........................................................................................................................ 66
     Webographie ........................................................................................................................ 66
 Annexe A.................................................................................................................................. 67




                                                              Page 10
Rapport du projet de fin d’études                                                                                        HAMLI Marouane
Introduction générale

        Le présent rapport est le fruit de mon travail effectué au sein de la société Nextma à
 Casablanca, ce stage de 3 mois est le couronnement de ma formation pour obtenir le diplôme
 d’Ingénieur d’Etat, en génie informatique, à l’ENSA Tanger.

         Durant ces trente dernières années, l’informatique de gestion a subi des
 bouleversements considérables. Les avancées technologiques du traitement de l’information
 ont eu des conséquences capitales sur le rôle de l’outil informatique. Si les premières
 applications ont permis d’automatiser les activités opérationnelles des organisations (gestion
 de production, gestion commerciale et financière, ressources humaines), aujourd’hui les
 systèmes d’information prennent en charge des niveaux de gestion de plus en plus
 stratégiques.

         Les ERP (Enterprise Resource Planning) ou PGI (Progiciels de Gestion Intégrés),
 ont connu leur essor en profitant de l’évolution nécessaire des systèmes d’information pour le
 passage de l’an 2000 puis pour la mise en place de l’euro. En effet, il était séduisant de
 remplacer tous les logiciels de gestion de l’entreprise par un intégré offrant « l’état de l’art »
 plutôt que d’engager des corrections des programmes existants plus ou moins anciens.

         Mon Projet de Fin d’Etudes est autour d’OpenERP, un PGI open-source extrêmement
 modulaire, et a pour but d’adapter puis intégrer cette solution pour permettre la gestion des
 officines pharmaceutiques.

         Le travail consiste à effectuer d’abord une analyse du besoin, afin de bien souligner les
 différentes fonctionnalités requises, ensuite à chercher parmi ces fonctionnalités celles qui
 sont déjà offertes par OpenERP, comme ça je pourrai entamer le développement des
 fonctionnalités restantes qui n’existent pas encore, pour enfin faire des tests de simulation,
 détecter et corriger les bugs si jamais il y en a.

         Ce rapport est scindé en deux grandes parties : la première, composée de deux
 chapitres, définit le contexte général du projet ; Le premier chapitre présente l’organisme
 d’accueil, tandis que le second concerne le cadre général du projet, et la démarche suivie pour
 assurer son bon déroulement. Quant à la seconde partie, composée de trois chapitres, concerne
 à tout ce qui est étude fonctionnelle et technique, ainsi le troisième chapitre est autour de
 l’analyse et la conception du projet, le suivant décrit les choix des technologies mises en
 œuvre, alors que le dernier explique l’étape du développement, ainsi que la simulation et les
 différents problèmes rencontrés.

        En fin, ce rapport est terminé par une conclusion sur l’apport du travail réalisé et des
 perspectives futurs où il peut déboucher.




                                           Page 11
Rapport du projet de fin d’études                                                  HAMLI Marouane
Partie I : Contexte général du projet

                                          Chapitres :

                                              -   Présentation de l’organisme d’accueil
                                              -   Cadre général du projet




                                    Page 12
Rapport du projet de fin d’études                                        HAMLI Marouane
1 Chapitre I : Présentation de l’organisme d’accueil
 1.1 Présentation de Nextma




                                        Figure 1: Logo Nextma

        Nextma est une Société de Services en Logiciels Libres (SSLL) qui accompagne les
 entreprises et institutions dans le choix des solutions open source ainsi que dans l'intégration,
 le développement, l'adaptation aux besoins spécifiques, la maintenance et le support. Afin de
 bénéficier des meilleures solutions libres dans la gestion des systèmes d'information.




                                     Figure 2: Nextma sur la carte

         Nextma a développé une expertise autour d’OpenERP depuis 2006 (premier partenaire
 officiel OpenERP au Maroc en 2007) et a contribué à faire connaître cet ERP open source au
 Maroc à travers plusieurs déploiements réussis dans les PME marocaines et des conférences
 dans les universités et adapte celui-ci à la législation marocaine et aux besoins spécifiques des
 entreprises.




                                           Page 13
Rapport du projet de fin d’études                                                 HAMLI Marouane
1.2 Prestations et services
         Nextma offre une large palette de prestations et de services basés sur des composants
 libres adaptés aux systèmes et aux réseaux des clients. La principale tâche de cette société est
 d’offrir des solutions sur mesure, en matière de formation et d’assistance, concernant les
 problématiques relevant des systèmes d’informations, moyennant des outils libres.

         La gamme de services de Nextma est articulée autour de quatre axes majeurs qui
 permettent d'accompagner les clients durant toutes les phases d'un projet afin d'en assurer sa
 réussite en :

        Formation : L’offre des formations, techniques et fonctionnelles, permet
 d'accompagner les organisations qui disposent d’équipes opérationnelles capables de mener à
 bien des projets. Ces formations peuvent être établies sous forme de transferts de
 compétences, en phases avals des projets.

        Support : En plus des offres de formations, la société propose aux équipes dédiées
 au développement, des prestations de support d’aide à la maintenance, afin de réduire le
 temps de résolution des interrogations ou des difficultés que les entreprises pourraient
 rencontrer lors de la mise en œuvre de certains logiciels.

        Conseil : Nextma possède une équipe formée de consultants techniques et
 fonctionnels qui assure soit dans le cadre de projets, soit en amont, des missions de conseil
 dans les domaines suivants: gestion de contenu, travail collaboratif, dématérialisation des
 procédures, migration vers le libre, architecture et dimensionnement d'applications basées sur
 OpenERP…etc.

        Développement : le cœur métier de Nextma et comprend le développement sur la
 base de logiciels libres, de portails collaboratifs internet ou intranet, avec des composantes de
 publication web, de travail collaboratif, de gestion électronique de documents et de workflow.

 1.3 Secteurs d’activité
        De par les multiples projets que Nextma a mené, elle a acquis un savoir-faire
 susceptible de lui permettre l’implantation de logiciels libres dans les différents secteurs:

      Enterprise Ressource Planning (ERP) : la solution adoptée par Nextma est
 OpenERP, un PGI Open-Source.

     Customer Relationship Management (CRM)                     :   Nextma    propose    l’offre
 SUGARCRM qui permet la gestion de la relation client.

         Intranet des entreprises et gestion des contenus : Création d’identités visuelles et
 sites internet institutionnels et e-Commerce. La solution proposée est Virtuemart, une solution
 libre de e-commerce (Commerce électronique) qui s'appuie sur le système de gestion du
 contenu « Joomla ».




                                          Page 14
Rapport du projet de fin d’études                                                 HAMLI Marouane
Gestion électronique des documents : Il s’agit d’un système informatisé
 d'acquisition, classement, stockage et archivage des documents. La solution proposée est
 Alfresco.

 1.4 Références
         Nextma compte plusieurs déploiements réussît d’OpenERP dans des PME marocaines
 dont je cite quelques références :




                                    Figure 3: Clients Nextma




                                        Page 15
Rapport du projet de fin d’études                                         HAMLI Marouane
2 Chapitre II : Cadre général du projet

 2.1 Présentation générale de l’officine


         La pharmacie d'officine est la branche la plus connue de la pharmacie. C'est la branche
 regroupant les pharmaciens qui travaillent dans les pharmacies de ville, appelées aussi
 officines, où les médicaments sont délivrés au public.

        Le rôle du pharmacien d'officine est la délivrance des ordonnances prescrites par les
 médecins, les conseils associés à la prise des médicaments, à l'hygiène, à la nutrition ou, plus
 globalement, à la santé publique.

         Le travail du pharmacien d'officine est aussi l'analyse de l'ordonnance, la vérification
 des posologies, des interactions médicamenteuses et des contre-indications existantes en
 fonction de l'état du patient. Le pharmacien, étant au bout de la chaîne de la prescription
 médicale, est responsable des médicaments délivrés, même en cas d'erreur ou négligence de la
 part du médecin prescripteur.

          À ce titre, il peut refuser de délivrer l'ordonnance, ou bien modifier les posologies ou
 médicaments, le plus souvent après accord avec le médecin prescripteur. Il peut également
 faire le suivi du traitement et aider à l'établissement d'un plan pharmacothérapique.

        Le pharmacien d'officine a aussi un rôle social, il est en mesure d'indiquer aux
 personnes en difficulté les organismes ou les structures compétentes en matière de Santé
 Publique et d'aides sociales.



 2.2 Problématique


          Les officines marocaines souhaitent s’ouvrir sur les nouvelles technologies et les
 utiliser pour avoir un meilleur rendement, et ainsi intégrer des solutions de gestion complètes,
 paramétrables et flexibles pour la gestion de tout ce qui se rapporte au domaine de la
 pharmacie.

         Certes il existe des solutions sur le marché, mais elles sont payantes, en plus du fait
 qu’il est difficile de communiquer entre ces applications avec d’autres solutions « externes »
 (le cas d’automatiser les commandes de médicaments), et leur support est bien limité vu
 qu’elles ont été codées à la demande, à noter aussi qu’elles ne sont pas flexibles.

        Avec ces outils, le pharmacien se retrouve obligé d’effectuer lui-même un bon nombre
 de tâches qui normalement, avec ces solutions, doivent être automatisées, je cite comme
 exemple envoyer des bons de commande vers le grossiste (fournisseur) : le pharmacien (agent
 ou administrateur) crée un bon de commande avec une liste des produits demandés ainsi que



                                          Page 16
Rapport du projet de fin d’études                                                 HAMLI Marouane
leur quantités, ce bon devra être transmis automatiquement vers un fournisseur parmi ceux
 enregistrés dans la liste, après sa validation, cette option était opérationnelle avant, mais
 nécessitait une installation matérielle particulière (modems 56k..etc) qui n’était pas disponible
 chez tous les partenaires, et a été abandonnée plus tard, donc le pharmacien est obligé de
 passer par la méthode classique qui est passer sa commande par téléphone. Les bons de
 commande sont donc temporaires, et se trouvent dans la plupart des cas supprimés après avoir
 effectué la réception des produits.

         Autre problème que le pharmacien rencontre, est quand l’application plante, et qu’il
 n’a plus accès à certaines données, comme ce cas dont j’étais témoin lors de ma visite à
 l’officine du client, la liste des fournisseurs a été endommagée et n’était plus accessible, ce
 qui empêchait d’établir des bons de commande ou effectuer des réceptions dans le logiciel,
 ainsi les bons de livraisons des grossistes s’entassaient les uns sur les autres, en attendant que
 la service support du logiciel envoie un technicien pour rétablir la base de données. Ceci avait
 d’autres conséquences, le pharmacien était habitué à faire une sauvegarde quotidienne de ses
 transactions, cette sauvegarde n’était plus possible depuis que la liste des fournisseurs est
 perdue, ce qui représente un grand risque pour ces données, surtout qu’il était en période de
 garde et avait effectué plusieurs ventes et réceptions. En plus, les quantités des produits au
 stock sont devenues toutes fausses.

         L’éditeur du logiciel proposait une assistance instantanée, via un logiciel d’assistance
 à distance, qui n’a pas été fourni à tous ses clients, et la seule solution pratique était d’envoyer
 les techniciens réparer les machines ne fonctionnant plus.

        Résultat : près de 5 jours d’attente, sans aucune sauvegarde, avec des données
 erronées, et encore faut-il du temps pour saisir toutes ces réceptions effectuées pendant la
 panne, après la réparation du logiciel.



 2.3 Objectifs du projet


         Le travail demandé est d’adapter un progiciel libre, OpenERP, aux besoins des
 officines, en essayant de rajouter de nouvelles fonctionnalités que les autres solutions ne
 peuvent offrir.

        Afin de garantir une modernisation des services des officines, il est indispensable
 d’adopter les nouvelles technologies et les exploiter pour en tirer le meilleur profit.

        Les PGI sont connus pour leur intégration des principales fonctions nécessaires à la
 gestion des flux et procédures de l’entreprise (comptabilité, achats, ventes…), tous ces outils
 accèdent à des ressources communes, en particulier des bases de données.

        Parmi les autres avantages des PGI, c’est qu’ils sont conçus de telle sorte qu'un
 "simple" paramétrage suffit à les adapter à l'organisation de l'entreprise. Il n'est normalement
 pas nécessaire d'effectuer des développements spécifiques, sauf en cas de nécessité, lorsque ce



                                            Page 17
Rapport du projet de fin d’études                                                    HAMLI Marouane
paramétrage ne permet pas de prendre en compte des particularités liées au métier des
 officines.

         Donc, le système d’information à développer aura pour objectifs :

     -   Objectifs globaux :
           o Disposer d’un outil de gestion complet, qui contribuera à l’évolution des
               officines
           o Disposer d’un outil dont le support ne nécessite pas trop de ressources, et qui
               pourra communiquer avec d’autres applications sans complication
     -   Objectifs spécifiques :
           o Permettre une gestion des éléments de bases, comme les clients, patients,
               médecins et fournisseurs
           o Permettre une « vente au comptoir » aisée, avec une interface ergonomique qui
               facilite la recherche des produits, et supporte plus qu’une méthode de
               paiement.
           o Permettre d’effectuer des achats auprès des fournisseurs, où il est possible
               d’éditer des devis, de créer des bons de commande et de recevoir les produits
           o Permettre une gestion de stock efficace, avec la possibilité de faire des
               inventaires physiques et de voir l’état des stocks n’importe quand.
           o Permettre le suivi des clients, voir leur situation en tout moment, et régler leur
               crédit s’ils en ont.
           o Enfin, avoir des statistiques concernant ces points cités auparavant




                                          Page 18
Rapport du projet de fin d’études                                               HAMLI Marouane
2.4 Conduite du projet

 2.4.1 Processus du développement


 Introduction

         La complexité croissante des systèmes informatiques a conduit les concepteurs à
 s’intéresser aux méthodes. On a comptabilisé en 1994 jusqu’à 50 méthodes. Chaque méthode
 se définit par une notation et un processus spécifique. UML a ouvert le terrain en fusionnant
 la notation. Il reste cependant à définir le processus pour réellement capitaliser des règles dans
 le domaine du développement logiciel. Les groupes de travail UML ont donc travaillé à
 unifier non pas les processus, mais plus exactement les meilleures pratiques de
 développement objet. Ces processus ce distingueront par le générique « UNIFIED
 PROCESS ».
         Un processus définit une séquence d’étapes, en partie ordonné, qui concoure à
 l’obtention d’un système logiciel ou à l’évolution d’un système existant. Pour produire des
 logiciels de qualité, qui répondent aux besoins des utilisateurs dans des temps et des coûts
 prévisibles. On découpe le processus en deux axes :
     - L’axe de développement technique, qui de concentre principalement sur la qualité de
         production.
     - L’axe de gestion du développement, qui permet la mesure et la prévision des coûts et
         des délais.


 Choix de la méthodologie de conception

     Avant d’adopter une méthode, il faut d’abord faire une comparaison entre les différentes
 méthodes existantes, voir les points forts et les points faibles de chacune, puis déterminer
 celle qui va mieux dans le contexte du projet.

    Ci-dessous un tableau qui résume cette comparaison (la liste est non exhaustive, voir la
 page suivante)




                                           Page 19
Rapport du projet de fin d’études                                                  HAMLI Marouane
Description                   Points forts                  Points faibles
     Rational        -Méthodologie centrée        -Itératif                    -Coûteux à personnaliser
  Unified Process    sur l’architecture et        -Spécifie le dialogue        -Très axé processus, au
      (RUP)          couplée           aux        entre les différents         détriment                 du
                     diagrammes UML               intervenants du projet :     développement
                     -Concerne des projets        les livrables, plannings     -Lourd, largement étendu, il
                     de +10 personnes             et prototypes…               peut être difficile à mettre
                     -Processus     complet       -Propose des modèles         en    œuvre      de    façon
                     assisté par des outils       de documents, et des         spécifique
                     exhaustifs                   canevas     pour     des     -Convient pour les grands
                                                  projets types                projets     qui     générent
                                                  -Rôles bien définis,         beaucoup de documentation
                                                  modélisation
    eXtreme         -Développement guidé          -Itératif                    -Ne couvre pas les phases
  Programming       par les besoins du client     -Simple à mettre en          en amont et en aval du
      (XP)          -Equipes         réduites,    œuvre                        développement
                    centrées      sur      les    -Laisse une large place      -Assez flou dans sa mise en
                    développeurs                  aux aspects techniques       œuvre : quels intervenants ?
                                                  -Builds journaliers          Quels livrables ?
                                                  -Amélioration                -Focalisé    sur    l’aspect
                                                  constante     adaptation     individuel               du
                                                  aux modifications            développement,            au
                                                                               détriment d’une vue globale
                                                                               et    des    pratiques    de
                                                                               management        ou      de
                                                                               formalisation.
    Two Track       -Articulé autour de           -Itératif, laisse une        -Superficiel sur les phases
  Unified Process   l’architecture                large partie à la            en amont et en aval du
      (2TUP)        -Cycle                de      technologie et à la          développement
                    développement en Y            gestion du risque            -Aucune proposition de
                    -Convient aux projets de      -Définit les profils des     document type
                    toutes tailles                intervenants,          les
                                                  livrables, les prototypes
                           Tableau 1 : Comparaison des méthodes de développement




     Pour atteindre les objectifs, j’ai suivi la méthode 2TUP (2Track Unified Process), qui sera
 plus détaillée dans ce qui suit.




                                                 Page 20
Rapport du projet de fin d’études                                                          HAMLI Marouane
Cycle de vie du modèle 2TUP

        Le modèle 2TUP repose sur cinq principes fondamentaux :

     o Séparer les aspects fonctionnels et les aspects techniques
     o Travailler selon deux points de vue qui se complètent et s’enrichissent mutuellement ;
       celui de l’entreprise, celui des applications.
     o Modéliser l’activité de l’entreprise et des applications aux moyens d’objets en utilisant
       UML.
     o Faire des maquettes et des prototypes pour affiner les besoins fonctionnels et les
       aspects techniques.
     o Effectuer la réingénierie des applications dans le sens de la réutilisation.

     Le schéma suivant montre bien le cycle en « Y » caractéristique de 2TUP.




                                Figure 4: Cycle de développement en Y




                                          Page 21
Rapport du projet de fin d’études                                               HAMLI Marouane
2.4.2   Planification du projet
         Le diagramme de GANT ci-dessous présente les différentes tâches nécessaires pour réaliser le projet :




                                                               Figure 5: Planning du projet




                                          Page 22
Rapport du projet de fin d’études                                                   HAMLI Marouane
Pour bien mener ce projet, je me suis déplacé, dans un premier temps, à l’officine du
 client, afin de découvrir les différentes activités et processus métier de ce domaine, des notes
 concernant ceci ont été prises, et des explications ont été fournies pour chaque question
 concernant un processus plus ou moins compliqué.

         Après cette visite des lieux, je suis passé à l’étape suivante qui est de reformuler les
 différents points pour bien limiter les besoins requis et ensuite élaborer un cahier des charges
 que le client devra consulter, et validera si tous les points cités correspondent à ceux qu’il
 cherche.

         Les PGI sont un nouveau monde pour moi, il est donc évident de prendre un peu de
 temps pour se familiariser avec, comprendre leur coté technique d’abord, puis comprendre
 leur coté fonctionnel. Et comme OpenERP est écrit en Python, combiné à XML pour générer
 les différentes vues, j’ai eu à lire quelques livres sur le développement avec python, et aussi
 avec le framework « Open Object », dédié au développement sous OpenERP.

        Une fois familiarisé un peu avec l’outil, je suis passé à écrire quelques modules
 simples pour s’assurer que j’ai bien assimilé sa technique de développement, comme ça je
 pourrais me lancer dans la découverte fonctionnelle du PGI, car c’est à travers elle que je
 déterminerai les modules déjà existants et qui répondent en partie aux exigences du client.
 Cette découverte m’a permis de fixer les fonctionnalités non existantes et qui devront être
 ajoutées, en plus du paramétrage à mettre en place.

        Après avoir créé les objets manquants, et après avoir paramétré l’application, j’ai
 commencé à faire des simulations, afin de s’assurer que le paramétrage suivi est le bon, et
 aussi chercher si il y a des bugs dans le module que je viens de créer, ou dans les autres
 modules auxquels il est lié, puis je suis parti à la recherche de solutions pour les différentes
 anomalies détectées.




                                          Page 23
Rapport du projet de fin d’études                                                HAMLI Marouane
Partie II : Etude fonctionnelle et technique

                                          Chapitres :

                                              -   Analyse et conception du projet
                                              -   Technologies mises en œuvre
                                              -   Développement du module « officine »




                                    Page 24
Rapport du projet de fin d’études                                       HAMLI Marouane
3 Chapitre III : Analyse et Conception du projet
 3.1 Analyse du projet
       Le but du projet est d’adapter OpenERP pour qu’il puisse permettre une gestion
 d’officine. Il est donc nécessaire de faire une visite des lieux, une pharmacie, afin de bien
 cadrer son contexte, et de faire une liste des différentes fonctionnalités requises pour une telle
 gestion, avant de développer cette liste en un cahier des charges pour le valider avec le client.

       Les fonctionnalités requises sont présentées dans le tableau ci-dessous :

        Objectif                                           Fonctionnalités
 Gestion de base              -      Gestion des médicaments
                              -      Gestion des clients
                              -      Gestion des fournisseurs
                              -      Gestion des patients
                              -      Gestion des médecins
                              -      Gérer les DCIs
 Vente au comptoir            -      Recherche de produits multicritère (nom, code ou code à barre)
                              -      Paiement supportant différentes méthodes de paiement (espèces,
                                     chèques, crédit, ou carte de crédit)
                              -      Impression du ticket de vente
                              -      Gestion de l’ordonnancier (vente sur ordonnance)
                              -      Consulter le journal du comptoir
 Gestion des achats           -      Consulter la liste des fournisseurs
                              -      Créer des devis de fournisseurs
                              -      Créer des bons de commandes
                              -      Effectuer des réceptions de médicaments
                              -      Suivi des règlements fournisseurs
 Gestion des ventes           -      Consulter la liste des clients
                              -      Gestion des avoirs clients
                              -      Suivi des règlements clients
                              -      Consulter le journal des ventes
                              -      Edition des devis
 Gestion de stock             -      Consulter la liste de produit
                              -      Effectuer des inventaires physiques
                              -      Voir les mouvements de stock
                              -      Calcul des écarts entre stock initial et stock actuel
                              -      Afficher le stock réel
 Statistiques                 -      Consulter les produits en stock d’alerte (quantité insuffisante)
                              -      Distribution mensuelle des ventes par client
                              -      Distribution mensuelle des achats par fournisseur
                              -      Distribution détaillée des achats par produit / fournisseur
                              -      Distribution détaillée des ventes par produit / client
                                  Tableau 2: Liste des fonctionnalités requises




                                                Page 25
Rapport du projet de fin d’études                                                     HAMLI Marouane
3.2 Conception
        L’étape de conception est très importante pour la réussite d’un projet informatique car
 elle vise à définir une feuille de route du projet, le concevoir et le valider avant de passer au
 développement du système. Elle permet aussi d’avoir une bonne réflexion avant de passer à
 l’action, une bonne organisation du travail et une bonne communication entre les différents
 intervenants dans le projet.

       J’ai utilisé des diagrammes UML pour cette étape, vu qu’il est le plus approprié pour les
 projets informatiques orientés objet, et aussi car ses diagrammes facilitent la lisibilité et la
 compréhension des modèles même pour les ceux qui sont loin du domaine informatique.

       Le principal avantage d'UML est qu'il est devenu le standard en termes de modélisation
 objet, son caractère polyvalent et performant et sa souplesse en fait un langage universel.

 3.2.1 Diagramme des cas d’utilisations :
     Dans ce projet, j’ai six grands cas d’utilisations, ces cas sont détaillés dans les
 diagrammes suivants :

     1. Gestion basique :




                                    Diagramme 1: Gestion basique

       La gestion basique veut dire l’ajout, modification et suppression des objets
 élémentaires dans une officine, à savoir les médicaments, les fournisseurs, les clients, les
 médecins, les patients, les DCI (Dénomination Commune Internationale, nom du composant
 chimique principal d’un médicament), les utilisateurs et leurs groupes.

        Cette gestion est limitée aux administrateurs, qui n’auront la main pour effectuer leurs
 modifications qu’après s’être connecté.




                                          Page 26
Rapport du projet de fin d’études                                                 HAMLI Marouane
2. Vente au comptoir :




                                    Diagramme 2: Vente au comptoir

     La vente au comptoir est l’activité principale dans une officine, dans ce cas, un simple
 agent, reçoit la demande du client, ensuite recherche les médicaments demandées, puis
 renseigne les quantités de chaque produit, les ajoute à la liste, comme il peut retirer des
 produits de la liste, selon la demande du client, après il calcule le total du ticket, applique une
 remise s’il y en a et informe le client du montant.

      Vient ensuite l’étape du paiement, là le client déclare la méthode de paiement qu’il
 souhaite, et l’agent la choisit parmi sa liste de méthodes disponibles, si le client opte pour un
 crédit, alors l’ordre de vente se transforme en facture ouverte au client jusqu’à son paiement.
 Une fois payé, l’agent livre les médicaments au client, et peut lui imprimer le ticket de vente
 et le lui remettre.

      Si le client amène une ordonnance, l’agent suit une procédure similaire à celle décrite ci-
 dessus, avec la particularité qu’il doit renseigner dans cette vente le nom du médecin l’ayant
 établi, en plus du patient à qui elle est destinée. Il est possible que dans cette vente se trouvent
 des produits n’ayant pas de relations avec l’ordonnance, ce cas est connu comme « vente
 libre ».




                                            Page 27
Rapport du projet de fin d’études                                                    HAMLI Marouane
3. Gestion des achats :




                                    Diagramme 3: Gestion des achats

         La gestion des achats permet au pharmacien de se procurer des médicaments auprès de
 ses fournisseurs. Il lui est possible de créer des devis des grossistes, convertir ces devis en
 bons de commande, choisir la méthode de facturation de ces derniers, et les valider. Une fois
 ces bons validés, des réceptions de produits, correspondants chacune à un bon de commande,
 sont générées automatiquement et passent au statut « en attente de traitement ». Le traitement
 des réceptions peut être partiel ou total, c’est-à-dire que lors d’une réception le pharmacien
 peut recevoir la totalité des produits commandés, traiter la réception et passer à la facturation,
 ou recevoir une partie des produits seulement, dans ce cas il ne renseigne que la quantité reçue
 et valide la réception, cette dernière est dupliquée, et le duplicata est une nouvelle réception
 contenant le reste des produits à recevoir, en statut « en attente de traitement ».

         Après la réception des produits, le pharmacien passe à la facturation des produits
 reçus, pour payer le fournisseur. Il pourra par la suite consulter les factures établies et voir
 leurs situations. Les factures payées sont écrites dans le journal des achats.




                                            Page 28
Rapport du projet de fin d’études                                                  HAMLI Marouane
4. Gestion des ventes :




                                    Diagramme 4: Gestion des ventes

         Les ventes se font toutes au niveau du point de vente, la gestion des ventes ici
 concerne le suivi des clients qui se procurent des produits par crédit, car dans cette partie
 l’agent peut consulter les factures des clients et voir celle qui sont toujours ouvertes, aussi il
 pourra consulter la liste de ses clients et voir le montant des crédits de chacun.

         Cette gestion permet aussi de gérer les avoirs, produits retournés par les clients pour
 différentes raisons, une mauvaise commande par exemple.

        A travers ce volet, le pharmacien peut aussi éditer des devis pour des clients qui
 viennent se renseigner sur les prix de certains médicaments.

         Enfin, le pharmacien a la possibilité de consulter le journal des ventes, où se trouvent
 les écritures comptables des ventes par crédit.




                                            Page 29
Rapport du projet de fin d’études                                                  HAMLI Marouane
5. Gestion du stock :




                                    Diagramme 5 : Gestion du stock

        La gestion du stock concerne la gestion des produits, où il est possible de voir la liste
 de produits, voir les mouvements du stock, effectuer des inventaires physiques, voir l’état réel
 du stock, et même voir les écarts entre stock actuel et stock initial.



     6. Statistiques et alertes :




                                           Page 30
Rapport du projet de fin d’études                                                HAMLI Marouane
Diagramme 6: Cas d'utilisations - Statistiques et alertes

         Ce volet est autour de tout ce qui est statistiques utiles pour le pharmacien, afin d’avoir
 une idée claire de ses ventes et ses achats, comme la distribution des ventes par produit ou par
 client, la distribution des achats par produit ou par fournisseur, la distribution détaillée des
 ventes ou achats.

      Le pharmacien pourra consulter les produits en stock d’alerte afin de pouvoir les
 commander à nouveau.

 3.2.2 Diagramme des classes :
        Le diagramme suivant est le diagramme de classes « fonctionnel » que j’ai réalisé
 avant de me lancer dans le développement.




                                               Page 31
Rapport du projet de fin d’études                                                      HAMLI Marouane
Diagramme 7: Diagramme des classes - fonctionnel

      Ce diagramme représente les classes nécessaires pour assurer un bon fonctionnement du
 système à mettre en œuvre, les utilisateurs de l’application sont regroupés dans des groupes,
 chaque groupe possédant des privilèges qui permettent à ses utilisateurs inscrits d’accéder à
 certaines fonctionnalités.

     Les utilisateurs peuvent effectuer des achats de produits auprès des fournisseurs, chaque
 achat se compose des lignes d’achat, chacune de ces lignes contient un médicament désigné,
 avec la quantité à acheter.

      Un médicament est lié à la classe DCI de deux façons : la première concerne sa
 composition, car un médicament est composé d’une ou plusieurs DCI, avec en général une
 seule DCI connue, qui est sa composante principale. La deuxième liaison concerne les contre-
 indications d’un médicament, qui ne sont autres que des DCI qui risquent de causer des
 complications si elles sont combinées ensemble.

      Les médicaments sont ensuite vendus au public, chaque vente, liée à un utilisateur,
 comporte des lignes de ventes, qui regroupent le médicament vendu, sa quantité, sa remise, et
 indique si elle fait partie d’une ordonnance ou non. Si la ligne fait partie d’une ordonnance
 alors l’utilisateur devra renseigner le nom du médecin qui a écrit cette dernière, en plus du
 nom du patient concerné.

      Si le client souhaite payer par crédit, le vendeur devra renseigner dans ce cas le nom de
 ce client, afin que le montant de cette vente s’ajoute à son crédit.




                                           Page 32
Rapport du projet de fin d’études                                               HAMLI Marouane
Evidemment, des changements ont eu lieu sur ce diagramme, surtout après la recherche
 des modules OpenERP existants qui répondent en partie aux besoins du cahier des charges, ce
 qui a imposé ces modifications.




                                        Page 33
Rapport du projet de fin d’études                                            HAMLI Marouane
4 Chapitre IV : Technologies mises en œuvre

         Ce chapitre décrit les différentes technologies adoptées par Nextma, et utilisées pour la
 réalisation de ce projet, à commencer par le système d’exploitation Ubuntu, tout en passant
 par le PGI OpenERP, le système de gestion de bases de données PostgreSQL, et en fin les
 langages nécessaires pour le développement, à savoir le langage Python et XML.

 4.1 Ubuntu
       Ubuntu est un système d’exploitation libre commandité par la société Canonical et une
 marque déposée par cette même société.

         Fondé sur la distribution Linux Debian et utilisant le bureau Unity, Ubuntu se veut
 « convivial, intuitif et sûr ». Il est constitué de logiciels libres, est disponible gratuitement y
 compris pour les entreprises, et bénéficie d'une nouvelle version (appelée « mise à niveau »)
 tous les six mois.

        Avec une utilisation globale estimée à plus de 25 millions d'utilisateurs, il est
 principalement conçu pour une utilisation sur des ordinateurs personnels (portables et fixes),
 bien que d'autres versions consacrées aux netbooks et aux serveurs existent aussi. Depuis
 Ubuntu 11.04, la version Netbook a fusionné avec la version Desktop. Cette dernière étant
 passée à l'interface Unity, il n'y avait plus de raison de maintenir deux branches distinctes.




                                   Figure 6: Interface d'Ubuntu 11.10

        La version d’Ubuntu utilisée pour ce projet est la 11.10, ayant pour nom de code « The
 Oneiric Ocelot », cette version est la quinzième version d'Ubuntu. Son développement s'est
 échelonné sur six mois, jusqu'à sa publication en tant que version stable le 13 octobre 2011.




                                            Page 34
Rapport du projet de fin d’études                                                   HAMLI Marouane
Elle profitera des mises à jour de sécurité pendant une durée de 18 mois, soit jusqu'en avril
 2013.

 4.2 PostgreSQL
      PostgreSQL est un système de gestion de base de données relationnelle et objet
 (SGBDRO). C'est un outil libre disponible selon les termes d'une licence de type BSD.

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




                                       Figure 7 : Logo PostgreSQL

         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 de Oracle.
 Mais aussi pour ses possibilités de programmation étendues, directement dans le moteur de la
 base de données, via PL/pgSQL. Le traitement interne des données peut aussi être couplé à
 d'autres modules externes compilés dans d'autres langages.




                                            Page 35
Rapport du projet de fin d’études                                                    HAMLI Marouane
4.3 OpenERP
          Anciennement connu sous le nom Tiny ERP, signifiant la fourmi de l’Enterprise
 resource planning) est un progiciel intégré de gestion ouvert, libre de droits comprenant les
 ventes, la gestion de relation client (CRM), la gestion de projet, la gestion d'entrepôt, la
 production, la comptabilité et les ressources humaines. OpenERP a trois composants séparés :
 le serveur openerp-server qui stocke ses données dans une base postgresql, le client openerp-
 client qui s'installe sur le poste de l'utilisateur et le serveur web openerp-web qui permet une
 utilisation depuis un navigateur. Ces trois composants communiquent par les protocoles xml-
 rpc et net-rpc.




                                  Figure 8 : Interface Web d'OpenERP

         Le logiciel est basé sur une forte architecture MVC, des flux de travail flexibles, une
 interface-utilisateur graphique dynamique, une interface XML-RPC, et un système
 personnalisable de comptes-rendus avec une intégration pratique d'OpenOffice.org.

        Dans la classification des logiciels, OpenERP, comme tout autre PGI sur le marché est
 un package destiné, a priori, à tous les secteurs, à toutes les fonctions, les adaptations
 nécessaires se faisant par paramétrage.

         Il dispose de forts arguments commerciaux pour séduire les dirigeants (il propose de
 mettre un terme au désordre du système d’information, et aussi de régler des problèmes
 d’organisation sans effort politique). Cette offre séduisante par sa qualité et sa cohérence se
 révèle à l’usage plus risquée que l’on avait pu l’imaginer : elle ne peut être efficace que si l’on
 accepte les contraintes qu’elle impose. Sa mise en œuvre comporte des difficultés et des
 pièges.

        Implanter un PGI a ses avantages, parmi lesquels je cite :

            o Optimisation des processus de gestion
            o Cohérence et homogénéité des informations
            o Intégrité et unicité du Système d’information




                                           Page 36
Rapport du projet de fin d’études                                                   HAMLI Marouane
o Mise à disposition d’un outil multilingue et multidevises (très adapté aux
              multi-nationales)
            o Communication interne et externe facilitée par le partage du même système
              d’information
            o Meilleure coordination des services et donc meilleur suivi des processus
              (meilleur suivi de commande ou meilleure maîtrise des stocks par exemple)
            o Normalisation de la gestion des ressources humaines (pour les entreprises
              gérant de nombreuses entités parfois géographiquement dispersées)
            o Minimisation des coûts (formation et maintenance)
            o Maîtrise des coûts et des délais de mise en œuvre et de déploiement
            o Mise à disposition, des cadres supérieurs, d’indicateurs nettement plus fiables
              que lorsqu’ils étaient extraits de plusieurs systèmes différents

        Toutefois, cela peut avoir quelques inconvénients, comme la lourdeur et la rigidité de
 la mise en œuvre, ou encore les difficultés d’appropriation par le personnel de l’entreprise.

        OpenERP comporte plusieurs modules fonctionnels, je cite les exemples suivants :

            o   CRM ; gestion de la relation client
            o   Comptabilité analytique et financière (Conforme aux exigences françaises)
            o   Gestion des stocks
            o   Gestion de production (GPAO)
            o   Gestion de projets et des activités de services
            o   Norme qualité : ISO 9001 version 2000
            o   Gestion des ventes
            o   Gestion des achats
            o   Marketing
            o   Logistique
            o   Ressources humaines
            o   Gestion documentaire

        Coté architecture, OpenERP est basé sur une architecture 3 tiers:

           1. Un serveur de base de données PostgreSQL (qui peut contenir plusieurs bases
              de données)
           2. Un serveur d'applications (contenant les objets de gestion, le moteur de
              workflow, le générateur d'édition, etc.)
           3. Un serveur de présentation (appelé OpenERP Web) qui permet à l'utilisateur de
              se connecter à OpenERP avec n'importe quel navigateur internet (avec le
              lecteur Flash installé pour l'affichage des graphiques). Ce serveur n'est pas
              nécessaire si l'utilisateur utilise le client lourd mais qui nécessitera une
              installation physique sur le poste de l'utilisateur (cette application se nomme
              Client GTK).




                                         Page 37
Rapport du projet de fin d’études                                              HAMLI Marouane
Figure 9: Architecture d'OpenERP

         Ses fonctions de veille économique intégrées permettent à des utilisateurs multiples de
 traiter tous les aspects du logiciel. Ainsi, les rapports et les flux de travail peuvent être
 personnalisés.

        La partie serveur est écrite en langage Python. Les différentes briques sont organisées
 en «modules». Un module est un dossier avec une structure pré-définie contenant du code
 Python et des fichiers XML. Un module définit la structure de données, formulaires, rapports,
 menus, procédures, flux de travail, etc.

        Le client est léger car il ne contient pas de logique d'entreprise (l'ensemble est
 embarqué dans le serveur d'application). Ainsi, l'ajout de nouveaux objets, comme les menus
 ou formulaires, le rend accessible à tout type de client graphique (GTK+, Web, Qt, ou Texte).

         Le client GTK+ est par défaut et est basé sur la plateforme PyGTK (Python).

         Le client-web est écrit en langage Python. Il utilisait la plate-forme turboGears jusqu'à
 la version 5.0.1. Bien que concernant le contenu, les clients GTK + et -web soient équivalents,
 il existe certaines différences dans la fonctionnalité de l'interface. Par exemple le client-web
 peut avoir un lien de personnalisation sur chaque formulaire, mais le client GTK+ n'a pas de
 fonction comparable.

        Pour ce projet, la version d’OpenERP qui m’a été conseillée pour l’utiliser est la 6.1,
 parue en février 2012, cette version comporte plusieurs nouveautés :

     -   Un meilleur partage des informations : Des fonctionnalités de partage des
         informations à des tiers ont été ajoutées. Il est par exemple possible de permettre
         l'accès aux données d'un projet en cours à un sous-traitant ou de permettre à un client
         de consulter les factures qui lui correspondent et de les imprimer. La refonte de
         l'interface Web riche en javascript permet en outre d'intégrer n'importe quelle partie de
         l'interface d'OpenERP à site Web tiers.


                                           Page 38
Rapport du projet de fin d’études                                                 HAMLI Marouane
-   Fonctions d'échanges EDI : Des fonctions d'Échange de données informatisé font leur
         apparition, permettant à un partenaire d'importer des données (par exemple une
         facture) le concernant dans son propre système OpenERP ou progiciel tiers (au format
         JSON), et même d'effectuer le paiement en ligne.
     -   Une interface mobile : Une nouvelle interface conçue pour l'utilisation sur les
         terminaux mobiles de type smartphone fait son apparition. Basée sur le framework
         JQuery Mobile, elle ne permet pour l'instant que la consultation en lecture seule des
         informations.
     -   Une interface destinée aux points de ventes : Une nouvelle interface dédiée aux points
         de ventes à écran tactiles, tablettes et autre dispositifs de caisse interactifs est
         inaugurée dans cette version d'OpenERP. Cette fonctionnalité très demandée permet
         d'utliser un lecteur de codes à barres, de sélectionner des produits par catégorie/sous
         catégorie, la recherche par nom de produits et peut fonctionner hors-ligne et se
         synchroniser automatiquement lorsque la connexion avec le serveur est rétablie.

    Et ce ne sont pas que les nouveautés qu’a apporté cette version, mais aussi des
 améliorations :

            o Une configuration plus simple : De nouveaux boutons de raccourcis font leur
              apparition, permettant de créer plus intuitivement de nouveaux documents et
              de nouveaux enregistrements directement à partir de leur saisie dans les
              champs de données. De même, une installation fraîche d'OpenERP inclut
              dorénavant une configuration minimale des modules, basée sur les bonnes
              pratiques et les utilisations les plus courantes observées chez les utilisateurs.
            o Un effort sur l'utilisabilité : L'installateur et l'assistant de configuration ont été
              repensés afin de faciliter la compréhension par les nouveaux utilisateurs, en
              demandant moins de détails sur la société à gérer et en se focalisant sur les
              informations absolument nécessaires. La page d'installation des modules
              propose par défaut une installation sous forme de « thèmes ». Par exemple, un
              clic sur le thème « Ventes » installera tous les modules nécessaires à la gestion
              des ventes, et vous dirigera ensuite automatiquement vers ce module configuré
              et prêt à l'emploi.
            o Importation des données facilitée : L'importation des données dans OpenERP à
              partir de sources tierces a été améliorée. En effet, un assistant fait son
              apparition permettant de facilement faire correspondre un fichier de données
              au format csv au schéma de données OpenERP. À noter aussi l’existence de
              fonctions d'importation automatisée des données depuis SugarCRM et Google
              Calendar.
            o Sous-système de courriels unifié : La configuration des paramètres de
              connexions pour l'envoi et la réception de courriels est maintenant unifiée, ce
              qui met fin à la duplication des configurations pour les modules tirant partie de
              ces fonctions de courriels.




                                           Page 39
Rapport du projet de fin d’études                                                   HAMLI Marouane
o Refonte du module de paie : Le module de gestion de paie a été repensé, afin
              d'être plus flexible et s'adapter ainsi plus aisément aux spécificités de chaque
              pays et de chaque entreprise.
            o Ré-écriture de l'interface Web : L'interface Web d'OpenERP a été entièrement
              ré-écrite et fait dorénavant la part belle à la technologie Javascript, sans non
              plus bouleverser son apparence et l'expérience utilisateur. Parmi les
              conséquences, on peut noter qu'elle offre plus de fonctionnalités avec moins de
              code, et est plus rapide que l'ancienne implémentation de la 6.0. Au niveau des
              améliorations se trouve aussi la possibilité de personnaliser les tableaux de
              bord directement depuis l'interface avec de simples glisser-déposer, ainsi que
              l'arrivée d'une nouvelle forme de présentation des données, la vue « kanban ».
            o Compatibilité WSGI : De gros efforts ont été fait afin de rendre OpenERP
              compatible avec Web Server Gateway Interface qui permet de recourir à des
              serveurs d'application python tels que Gunicorn et uWSGI facilitant une
              implémentation extrêmement robuste d'OpenERP sur les serveurs, un bien
              meilleur contrôle de l'assignation des ressources matérielles et une
              simplification de la mise en place de mécanismes de réplication et de
              répartition de charge (les serveurs d'applications proposant souvent de telles
              fonctionnalités).



 4.4 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 :




                                          Page 40
Rapport du projet de fin d’études                                               HAMLI Marouane
o conçu pour produire du code de qualité, portable et facile à intégrer : grâce à
             sa syntaxe claire, cohérente et concise, Python permet aux développeurs de
             produire du code de qualité, lisible et maintenable. Écrire du code Python est
             un exercice agréable, même en respectant les conventions de codage.
             Fourni dès le départ avec des modules de tests, Python est un langage agile. Le
             terme agile est originellement issu de la méthodologie de programmation agile
             (Beck et Al.), très proche de la programmation itérative. Cette méthodologie,
             qui réduit les risques liés à la conception de logiciels, introduit entre autres des
             principes de tests continus du code.
           o De haut niveau, orienté objet et totalement libre : même si elle n’est pas
             imposée, Python permet la programmation orientée objet. Tous les mécanismes
             objet essentiels sont implémentés et toutes les données manipulées sont des
             instances de classes, comme pour les langages SmallTalk ou Ruby.
             Enfin, le code peut être structuré en modules (fichiers) qui sont ensuite
             importables dans l’interpréteur. Ce découpage, permet d’organiser le code et
             son utilisation par des espaces de noms, et aussi de faciliter l’extension du
             langage par des bibliothèques tierces compilées dans d’autres langages.
           o Hautement productif : La conception d’applications en Python est très rapide
             car certains aspects de programmation sont gérés automatiquement, comme la
             gestion des ressources mémoire et le typage des données.
             Grâce à des types de base très puissants et des primitives de haut niveau, un
             programme Python est simple à concevoir et concis. Un programme Python est
             en général 3 à 5 fois plus court qu’un programme C++ équivalent. Ces qualités
             font de Python un langage idéal dans beaucoup de domaines.
             Enfin, la bibliothèque standard de Python est très complète, et permet de
             répondre aux besoins communs de programmation.
             Grâce au modèle Open Source, la communauté des développeurs Python est en
             outre très productive et de nombreuses extensions gravitent autour du langage.
           o Dynamique : dans la plupart des implémentations, le code source n’est pas
             compilé contrairement à des langages comme C ou Pascal, mais exécuté à la
             volée. On parle alors de langage interprété.
             Ce mode de fonctionnement rend la programmation beaucoup plus souple
             puisqu’il est possible de changer un programme en cours d’exécution, ou de
             tester du code en mode interactif sans disposition particulière.
             L’interprétation rend aussi l’exécution plus lente, mais ce défaut est
             surmontable grâce à de bonnes pratiques de programmation et des techniques
             d’optimisation.




                                         Page 41
Rapport du projet de fin d’études                                                HAMLI Marouane
4.5 XML
        XML (eXtensible Markup Language) 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érer 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 décrire la
 présentation d'un texte (Qui n'a jamais désiré une balise qui n'existait pas ?).
 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. (Tous les
 documents liés à la norme XML sont consultables et téléchargeables sur le site web du
 W3C, http://www.w3.org/XML/)

        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.




                                          Page 42
Rapport du projet de fin d’études                                                HAMLI Marouane
5 Chapitre IV : Développement du module
   « officine »
         Dans ce chapitre, je présente les modules existants dans OpenERP et qui répondent
 partiellement aux besoins requis dans le cahier des charges, pour ensuite limiter les
 fonctionnalités restantes à mettre en œuvre.

        Une fois le développement terminé, il ne reste que le paramétrage à faire, pour assurer
 un bon fonctionnement du système.

 5.1 Analyse fonctionnelle des modules OpenERP
        Avant de commencer l’étape du développement, il m’a fallut d’abord chercher parmi
 les modules existants sous OpenERP, ceux qui offrent des fonctionnalités exigées
 précédemment dans le cahier des charges fonctionnel. Après une analyse des différents
 modules, je peux décrire les modules utiles à mon système comme suit :

    Module           Nom                   Description                        Fonctionnalités
                  technique
 Gestion de     base            Ce module est en fait le noyau Gestion des :
 base                           d’OpenERP, il est nécessaire pour      - Clients
                                toute installation de nouveau          - Workflow
                                module.                                - Devises de monnaie
                                En effet, dans ce module sont          - Langues
                                définis les objets de base, qui sont   - Pays
                                essentiels     pour      le     bon    - Sécurité de base
                                fonctionnement du PGI
 Gestion de     stock           Ce module sert de base pour la         - Gestion d'entrepôt
 Stock                          gestion de/des entrepôt(s) d’une       - Les bons de livraison
                                entreprise dans OpenERP                - Traçabilité
                                                                       - Produits
                                                                       - Règles du Stock
                                                                       - Reporting
 Gestion des    sale            Permet la gestion des ventes et -       Gestion     et     suivi     des
 ventes                         leur facturation.                       achats/ventes pour produits
                                                                        stockable/services.
                                                                     -  Relances.
                                                                     -  Gestion des listes de prix.
                                                                     -  Création automatique des
                                                                        bons de livraison.
                                                                     -  Facturation à partir des
                                                                        livraisons.
                                                                     -  Calcul automatique des prix
                                                                        en fonction des quantités et
                                                                        des délais de livraison.
                                                                     -  Proposition automatique de
                                                                        réapprovisionnement.
                                                                     -  Gestion des ristournes et
                                                                        promotions.
                                                                     -  Gestion      des      livraisons
                                                                        partielles      et       retours
                                                                        fournisseurs.




                                         Page 43
Rapport du projet de fin d’études                                                 HAMLI Marouane
-    Gestion des incoterms.

 Gestion des      purchase          Ce module concerne tout ce qui est         -    Demande de devis
 achats                             en relation avec l’achat de                -    Les commandes d'achat
                                    produits                                   -    Carnet d'adresses
                                                                               -    Contrôle des stocks
                                                                               -    Contrôle de facture
 Comptabilité     account           Ce    module        concerne         la         - Ecritures dans journaux
                                    comptabilité dans l’entreprise.            avec       automatisation         des
                                                                               contreparties.
                                                                                    - Génération       automatique
                                                                               des pièces comptables.
                                                                                    - Automatisation complète :
                                                                               calculs de TVA, date d'échéance,
                                                                               équilibrage.
                                                                                    - Gestion des conditions de
                                                                               paiement.
                                                                                    - Rapprochement manuel ou
                                                                               automatique        des      écritures
                                                                               bancaires, avec gestion des
                                                                               ajustements.
                                                                                    - Edition des documents :
                                                                               balance, grand livre, bilan, compte
                                                                               de résultat, déclaration TVA…
                                                                                    - Gestion budgétaire.
 Comptabilité     Account_acco      Ce       module         permet      à            - Gestion des journaux
 & finance        untant            l’administrateur d’accéder à toutes              - Gestion des registres de
                                    les options de la comptabilité              caisse
                                    comme les journaux et le plan
                                    comptable
 Paiement         Account_vouc      Ce module est utilisé pour Rajoute le bouton « paiement »
                  her               effectuer     le     paiement     des aux factures des clients et des
                                    différentes factures établies         fournisseurs pour pouvoir effectuer
                                                                          les paiements
 Point de vente   Point_of_sale     Ce     module,        qui    a    été       - Gestion des ventes
                                    complètement rénové, permet                 - Analyse des caisses
                                    d’avoir un point de vente et de             - Analyse du point de vente
                                    vendre des produits dans une                - Configuration           des
                                    approche plus sociale que la vente méthodes de paiement
                                    des produits classiques dans                - Configuration des caisses
                                    OpenERP.                                    - Inscription des ventes dans
                                    Le point de vente tactile OpenERP les journaux…
                                    permet de gérer les ventes dans
                                    une boutique très facilement. Il est
                                    entièrement basé sur le Web et ne
                                    nécessite aucune installation ou
                                    déploiement de logiciel tiers et
                                    tous les commerces de vente
                                    peuvent         être       facilement
                                    consolidés. Il fonctionne en mode
                                    connecté et déconnecté de sorte
                                    qu’on puisse continuer à vendre si
                                    on n’est plus connecté à Internet.
                    Tableau 3: Description des modules OpenERP en relation avec l'officine




                                               Page 44
Rapport du projet de fin d’études                                                            HAMLI Marouane
Malgré la variété de fonctionnalités satisfaites par ces modules, il reste à créer certains
 objets qui n’existent pas encore sur OpenERP, en créant un nouveau module qui les
 regroupera, le schéma suivant montre comment seront intégrés ces modules listés ci-dessus et
 comment ils seront liés avec le nouveau module que je vais créer :




                                              Point_of_sale


                                                                        Account_ac
                      Purchase
                                                                         countant




                                                                                Account_vo
               Base                           Officine                             ucher




                        Sale                                              Account


                                                  Stock




                                 Figure 10 : Dépendences du module officine




                                              Page 45
Rapport du projet de fin d’études                                                     HAMLI Marouane
5.2 Module « Officine »
     Après avoir analysé les différents modules, j’ai constaté qu’il faut créer les objets
 suivants :

            -   Médecin : cet objet est nécessaire dans le cas d’une vente par ordonnance, car
                il faut renseigner le nom du médecin qui l’a établit
            -   Patient
            -   DCI : « Dénomination Commune Internationale », représente le nom du
                composant chimique d’un médicament, ici au Maroc la DCI joue un rôle
                secondaire pour déterminer les produits car on se base sur leur nom
                commercial.

     Ces nouveaux objets sont regroupés dans un nouveau module à ajouter, qui n’est autre
 que « officine ». Le module est un dossier composé de fichiers python (.py) contenants les
 définitions des classes et d’autres XML contenants les détails des vues de ces dernières, en
 plus de certains dossiers comme les wizards (assistants se lançant dans certaines conditions)
 ou report (contient les modèles de rapport du module).

     En plus j’ai eu à étendre certains objets déjà créés pour qu’ils répondent aux besoins, ces
 objets sont :

            -   Produit : ajout des attributs propres au médicament à la classe produit, comme
                la posologie, la/les DCIs composant le produit (un médicament peut se
                composer de plusieurs DCI, mais seul une est considérée principale), ainsi que
                les DCIs listées comme contre indication.
            -   Ligne de vente : ajout d’un attribut « ordonnance » afin de préciser si la ligne
                fait partie d’une ordonnance ou non, car après discussion avec le client, il s’est
                avéré qu’il est possible de faire une vente sur ordonnance en plus d’autres
                produits non prescrits dans cette dernière, tout ceci en une seule vente.
            -   Ordre de vente : cette classe déjà créée par le module point de vente, nécessite
                d’avoir des liens avec un médecin et un patient, lorsqu’on souhaite réaliser une
                vente sur ordonnance, car il faudra dans ce cas renseigner le nom du médecin
                ayant établi l’ordonnance, et le patient à laquelle elle est destinée. Je lui ai
                ajouté aussi un champ qui calcul le montant total des produits achetés sur
                ordonnance.

       Après avoir créé et étendu les classes citées ci-dessus (voir l’annexe A qui contient des
 détails quant au développement de classes avec le framework « Open Object »), il fallait
 passer à créer les vues pour les représenter graphiquement et les utiliser, les vues sont des
 fichiers XML dans lesquelles on définit la structure d’affichage des nouveaux objets créés, et
 on peut aussi hériter des vues déjà existantes, et soit les modifier, ou y ajouter de nouveaux
 champs à afficher.

        L’avantage de coder ces nouveaux objets sous « Open Object » réside dans le fait qu’il
 suffit de renseigner une nouvelle classe, mentionner ses attributs, pour qu’ensuite Open
 Object lui crée une table dans la base de données et lui associe ses méthodes élémentaires



                                          Page 46
Rapport du projet de fin d’études                                                 HAMLI Marouane
ADAPTATION ET INTEGRATION D’OPENERP POUR LA GESTION D’OFFICINE
ADAPTATION ET INTEGRATION D’OPENERP POUR LA GESTION D’OFFICINE
ADAPTATION ET INTEGRATION D’OPENERP POUR LA GESTION D’OFFICINE
ADAPTATION ET INTEGRATION D’OPENERP POUR LA GESTION D’OFFICINE
ADAPTATION ET INTEGRATION D’OPENERP POUR LA GESTION D’OFFICINE
ADAPTATION ET INTEGRATION D’OPENERP POUR LA GESTION D’OFFICINE
ADAPTATION ET INTEGRATION D’OPENERP POUR LA GESTION D’OFFICINE
ADAPTATION ET INTEGRATION D’OPENERP POUR LA GESTION D’OFFICINE
ADAPTATION ET INTEGRATION D’OPENERP POUR LA GESTION D’OFFICINE
ADAPTATION ET INTEGRATION D’OPENERP POUR LA GESTION D’OFFICINE
ADAPTATION ET INTEGRATION D’OPENERP POUR LA GESTION D’OFFICINE
ADAPTATION ET INTEGRATION D’OPENERP POUR LA GESTION D’OFFICINE
ADAPTATION ET INTEGRATION D’OPENERP POUR LA GESTION D’OFFICINE
ADAPTATION ET INTEGRATION D’OPENERP POUR LA GESTION D’OFFICINE
ADAPTATION ET INTEGRATION D’OPENERP POUR LA GESTION D’OFFICINE
ADAPTATION ET INTEGRATION D’OPENERP POUR LA GESTION D’OFFICINE
ADAPTATION ET INTEGRATION D’OPENERP POUR LA GESTION D’OFFICINE
ADAPTATION ET INTEGRATION D’OPENERP POUR LA GESTION D’OFFICINE
ADAPTATION ET INTEGRATION D’OPENERP POUR LA GESTION D’OFFICINE
ADAPTATION ET INTEGRATION D’OPENERP POUR LA GESTION D’OFFICINE
ADAPTATION ET INTEGRATION D’OPENERP POUR LA GESTION D’OFFICINE
ADAPTATION ET INTEGRATION D’OPENERP POUR LA GESTION D’OFFICINE
ADAPTATION ET INTEGRATION D’OPENERP POUR LA GESTION D’OFFICINE
ADAPTATION ET INTEGRATION D’OPENERP POUR LA GESTION D’OFFICINE
ADAPTATION ET INTEGRATION D’OPENERP POUR LA GESTION D’OFFICINE
ADAPTATION ET INTEGRATION D’OPENERP POUR LA GESTION D’OFFICINE
ADAPTATION ET INTEGRATION D’OPENERP POUR LA GESTION D’OFFICINE
ADAPTATION ET INTEGRATION D’OPENERP POUR LA GESTION D’OFFICINE

Weitere ähnliche Inhalte

Was ist angesagt?

Présentation PFE: Système de gestion des réclamations et interventions clients
Présentation PFE: Système de gestion des réclamations et interventions clientsPrésentation PFE: Système de gestion des réclamations et interventions clients
Présentation PFE: Système de gestion des réclamations et interventions clientsMohamed Ayoub OUERTATANI
 
Présentation PFE (Conception et développement d'une application web && mobile...
Présentation PFE (Conception et développement d'une application web && mobile...Présentation PFE (Conception et développement d'une application web && mobile...
Présentation PFE (Conception et développement d'une application web && mobile...Ramzi Noumairi
 
Rapport PFE : Réalisation d'une application web back-office de gestion pédago...
Rapport PFE : Réalisation d'une application web back-office de gestion pédago...Rapport PFE : Réalisation d'une application web back-office de gestion pédago...
Rapport PFE : Réalisation d'une application web back-office de gestion pédago...Anas Riahi
 
Rapport final pfe_systeme_de_gestion _de_cabinet_de_formation_mobile_web
Rapport final pfe_systeme_de_gestion _de_cabinet_de_formation_mobile_webRapport final pfe_systeme_de_gestion _de_cabinet_de_formation_mobile_web
Rapport final pfe_systeme_de_gestion _de_cabinet_de_formation_mobile_webSalma Gouia
 
Projet de fin d'etude sur le parc informatique
Projet  de fin d'etude sur le parc informatiqueProjet  de fin d'etude sur le parc informatique
Projet de fin d'etude sur le parc informatiqueHicham Ben
 
Rapport PFE : Développement D'une application de gestion des cartes de fidéli...
Rapport PFE : Développement D'une application de gestion des cartes de fidéli...Rapport PFE : Développement D'une application de gestion des cartes de fidéli...
Rapport PFE : Développement D'une application de gestion des cartes de fidéli...Riadh K.
 
Rapport Projet de fin d'etude sur le parc informatique
Rapport Projet  de fin d'etude sur le parc informatiqueRapport Projet  de fin d'etude sur le parc informatique
Rapport Projet de fin d'etude sur le parc informatiqueHicham Ben
 
Conception et réalisation d'une application de gestion intégrée au sein de la...
Conception et réalisation d'une application de gestion intégrée au sein de la...Conception et réalisation d'une application de gestion intégrée au sein de la...
Conception et réalisation d'une application de gestion intégrée au sein de la...Addi Ait-Mlouk
 
Rapport de stage boite à idées innovantes avec dashboard
Rapport de stage boite à idées innovantes avec dashboardRapport de stage boite à idées innovantes avec dashboard
Rapport de stage boite à idées innovantes avec dashboardSiwar GUEMRI
 
Rapport du Projet de Fin d'année Génie informatique
Rapport du Projet de Fin d'année Génie informatique Rapport du Projet de Fin d'année Génie informatique
Rapport du Projet de Fin d'année Génie informatique ayoub daoudi
 
Rapport de projet de fin d"études
Rapport de projet de fin d"étudesRapport de projet de fin d"études
Rapport de projet de fin d"étudesMohamed Boubaya
 
Rapport pfe Conceptionet Developpement d'une Application web et Mobile
Rapport pfe Conceptionet Developpement d'une Application web et  Mobile Rapport pfe Conceptionet Developpement d'une Application web et  Mobile
Rapport pfe Conceptionet Developpement d'une Application web et Mobile Raoua Bennasr
 
Rapport PFE faten_chalbi
Rapport PFE faten_chalbiRapport PFE faten_chalbi
Rapport PFE faten_chalbiFaten Chalbi
 
Conception et developpement d'une application mobile Android e-location
Conception et developpement d'une application mobile Android e-locationConception et developpement d'une application mobile Android e-location
Conception et developpement d'une application mobile Android e-locationALALSYSE
 
Conception et développement d'une application Android pour TUNISAIR
Conception et développement d'une application Android pour TUNISAIRConception et développement d'une application Android pour TUNISAIR
Conception et développement d'une application Android pour TUNISAIRSkander Driss
 
Pfe rapport rabiaa hind 04 06 2012
Pfe rapport   rabiaa hind 04 06 2012Pfe rapport   rabiaa hind 04 06 2012
Pfe rapport rabiaa hind 04 06 2012Olaya Hoyame
 
Etude d'une application de gestion d'une bibliothèque numérique
Etude d'une application de gestion d'une bibliothèque numérique Etude d'une application de gestion d'une bibliothèque numérique
Etude d'une application de gestion d'une bibliothèque numérique Georges Amichia
 
Rapport Projet de Fin d'Etudes
Rapport Projet de Fin d'EtudesRapport Projet de Fin d'Etudes
Rapport Projet de Fin d'EtudesHosni Mansour
 

Was ist angesagt? (20)

Présentation PFE: Système de gestion des réclamations et interventions clients
Présentation PFE: Système de gestion des réclamations et interventions clientsPrésentation PFE: Système de gestion des réclamations et interventions clients
Présentation PFE: Système de gestion des réclamations et interventions clients
 
Présentation PFE (Conception et développement d'une application web && mobile...
Présentation PFE (Conception et développement d'une application web && mobile...Présentation PFE (Conception et développement d'une application web && mobile...
Présentation PFE (Conception et développement d'une application web && mobile...
 
Rapport PFE : Réalisation d'une application web back-office de gestion pédago...
Rapport PFE : Réalisation d'une application web back-office de gestion pédago...Rapport PFE : Réalisation d'une application web back-office de gestion pédago...
Rapport PFE : Réalisation d'une application web back-office de gestion pédago...
 
Rapport final pfe_systeme_de_gestion _de_cabinet_de_formation_mobile_web
Rapport final pfe_systeme_de_gestion _de_cabinet_de_formation_mobile_webRapport final pfe_systeme_de_gestion _de_cabinet_de_formation_mobile_web
Rapport final pfe_systeme_de_gestion _de_cabinet_de_formation_mobile_web
 
Projet de fin d'etude sur le parc informatique
Projet  de fin d'etude sur le parc informatiqueProjet  de fin d'etude sur le parc informatique
Projet de fin d'etude sur le parc informatique
 
Rapport pfe
Rapport pfeRapport pfe
Rapport pfe
 
Rapport PFE : Développement D'une application de gestion des cartes de fidéli...
Rapport PFE : Développement D'une application de gestion des cartes de fidéli...Rapport PFE : Développement D'une application de gestion des cartes de fidéli...
Rapport PFE : Développement D'une application de gestion des cartes de fidéli...
 
Rapport Projet de fin d'etude sur le parc informatique
Rapport Projet  de fin d'etude sur le parc informatiqueRapport Projet  de fin d'etude sur le parc informatique
Rapport Projet de fin d'etude sur le parc informatique
 
Conception et réalisation d'une application de gestion intégrée au sein de la...
Conception et réalisation d'une application de gestion intégrée au sein de la...Conception et réalisation d'une application de gestion intégrée au sein de la...
Conception et réalisation d'une application de gestion intégrée au sein de la...
 
Rapport de stage boite à idées innovantes avec dashboard
Rapport de stage boite à idées innovantes avec dashboardRapport de stage boite à idées innovantes avec dashboard
Rapport de stage boite à idées innovantes avec dashboard
 
Rapport de stage du fin d'étude
Rapport de stage du fin d'étudeRapport de stage du fin d'étude
Rapport de stage du fin d'étude
 
Rapport du Projet de Fin d'année Génie informatique
Rapport du Projet de Fin d'année Génie informatique Rapport du Projet de Fin d'année Génie informatique
Rapport du Projet de Fin d'année Génie informatique
 
Rapport de projet de fin d"études
Rapport de projet de fin d"étudesRapport de projet de fin d"études
Rapport de projet de fin d"études
 
Rapport pfe Conceptionet Developpement d'une Application web et Mobile
Rapport pfe Conceptionet Developpement d'une Application web et  Mobile Rapport pfe Conceptionet Developpement d'une Application web et  Mobile
Rapport pfe Conceptionet Developpement d'une Application web et Mobile
 
Rapport PFE faten_chalbi
Rapport PFE faten_chalbiRapport PFE faten_chalbi
Rapport PFE faten_chalbi
 
Conception et developpement d'une application mobile Android e-location
Conception et developpement d'une application mobile Android e-locationConception et developpement d'une application mobile Android e-location
Conception et developpement d'une application mobile Android e-location
 
Conception et développement d'une application Android pour TUNISAIR
Conception et développement d'une application Android pour TUNISAIRConception et développement d'une application Android pour TUNISAIR
Conception et développement d'une application Android pour TUNISAIR
 
Pfe rapport rabiaa hind 04 06 2012
Pfe rapport   rabiaa hind 04 06 2012Pfe rapport   rabiaa hind 04 06 2012
Pfe rapport rabiaa hind 04 06 2012
 
Etude d'une application de gestion d'une bibliothèque numérique
Etude d'une application de gestion d'une bibliothèque numérique Etude d'une application de gestion d'une bibliothèque numérique
Etude d'une application de gestion d'une bibliothèque numérique
 
Rapport Projet de Fin d'Etudes
Rapport Projet de Fin d'EtudesRapport Projet de Fin d'Etudes
Rapport Projet de Fin d'Etudes
 

Andere mochten auch

Openerp pour les grossistes de médicament
Openerp pour les grossistes de médicamentOpenerp pour les grossistes de médicament
Openerp pour les grossistes de médicamentHORIYASOFT
 
Gestion programme moussanada avec openerp
Gestion programme moussanada avec openerpGestion programme moussanada avec openerp
Gestion programme moussanada avec openerpHORIYASOFT
 
Paramétrage et développement spécifique des modules odoo(OpenERP) Partie 1
Paramétrage et développement spécifique des modules odoo(OpenERP) Partie 1Paramétrage et développement spécifique des modules odoo(OpenERP) Partie 1
Paramétrage et développement spécifique des modules odoo(OpenERP) Partie 1Addi Ait-Mlouk
 
Intégration et personnalisation d’OpenERP au sein de l’entreprise ISATIS
Intégration et personnalisation d’OpenERP au sein de l’entreprise ISATISIntégration et personnalisation d’OpenERP au sein de l’entreprise ISATIS
Intégration et personnalisation d’OpenERP au sein de l’entreprise ISATIScelia maouche
 
Mise en place d’un Système d’Information pour la gestion des collectivités l...
Mise en place d’un Système d’Information pour la gestion  des collectivités l...Mise en place d’un Système d’Information pour la gestion  des collectivités l...
Mise en place d’un Système d’Information pour la gestion des collectivités l...Mohammed OMARI
 
Gestion de la paie maroc avec openerp 7
Gestion de la paie maroc avec openerp 7 Gestion de la paie maroc avec openerp 7
Gestion de la paie maroc avec openerp 7 HORIYASOFT
 
Python et son intégration avec Odoo
Python et son intégration avec OdooPython et son intégration avec Odoo
Python et son intégration avec OdooHassan WAHSISS
 
Plateforme de gestion des projets de fin d'études
Plateforme de gestion des projets de fin d'étudesPlateforme de gestion des projets de fin d'études
Plateforme de gestion des projets de fin d'étudesMajdi SAIBI
 
Présentation PFE : Mise en place d’une solution de gestion intégrée (OpenERP...
Présentation PFE :  Mise en place d’une solution de gestion intégrée (OpenERP...Présentation PFE :  Mise en place d’une solution de gestion intégrée (OpenERP...
Présentation PFE : Mise en place d’une solution de gestion intégrée (OpenERP...Mohamed Cherkaoui
 
Soutenance mémoire de fin d'études
Soutenance mémoire de fin d'étudesSoutenance mémoire de fin d'études
Soutenance mémoire de fin d'étudesFabrice HAUHOUOT
 
Eolien Industriel Ecolo Gadget En Or V3 (1)
Eolien Industriel Ecolo Gadget En Or V3 (1)Eolien Industriel Ecolo Gadget En Or V3 (1)
Eolien Industriel Ecolo Gadget En Or V3 (1)Patrick GILLES
 
Comment exploiter l'énergie solaire de façon optimale _ MERABTI soufiane
Comment exploiter l'énergie solaire de façon optimale _ MERABTI soufianeComment exploiter l'énergie solaire de façon optimale _ MERABTI soufiane
Comment exploiter l'énergie solaire de façon optimale _ MERABTI soufianesoufiane merabti
 
Le module ISO 9001 pour OpenERP
Le module ISO 9001 pour OpenERPLe module ISO 9001 pour OpenERP
Le module ISO 9001 pour OpenERPPCSol SA
 
Audaxis : BI Project for an Association of Pharmacists
Audaxis : BI Project for an Association of PharmacistsAudaxis : BI Project for an Association of Pharmacists
Audaxis : BI Project for an Association of PharmacistsAudaxis
 
Rapport de projet odoo
Rapport de projet odooRapport de projet odoo
Rapport de projet odooayoub damir
 
ISO (and other standard) Management Systems with OpenERP
ISO (and other standard) Management Systems with OpenERPISO (and other standard) Management Systems with OpenERP
ISO (and other standard) Management Systems with OpenERPMaxime Chambreuil
 
Diaporama energie solaire
Diaporama energie solaireDiaporama energie solaire
Diaporama energie solairemath29122000
 
Why and how to develop OpenERP test scenarios (in python and using OERPScenar...
Why and how to develop OpenERP test scenarios (in python and using OERPScenar...Why and how to develop OpenERP test scenarios (in python and using OERPScenar...
Why and how to develop OpenERP test scenarios (in python and using OERPScenar...Odoo
 

Andere mochten auch (20)

Openerp pour les grossistes de médicament
Openerp pour les grossistes de médicamentOpenerp pour les grossistes de médicament
Openerp pour les grossistes de médicament
 
Gestion programme moussanada avec openerp
Gestion programme moussanada avec openerpGestion programme moussanada avec openerp
Gestion programme moussanada avec openerp
 
Paramétrage et développement spécifique des modules odoo(OpenERP) Partie 1
Paramétrage et développement spécifique des modules odoo(OpenERP) Partie 1Paramétrage et développement spécifique des modules odoo(OpenERP) Partie 1
Paramétrage et développement spécifique des modules odoo(OpenERP) Partie 1
 
Intégration et personnalisation d’OpenERP au sein de l’entreprise ISATIS
Intégration et personnalisation d’OpenERP au sein de l’entreprise ISATISIntégration et personnalisation d’OpenERP au sein de l’entreprise ISATIS
Intégration et personnalisation d’OpenERP au sein de l’entreprise ISATIS
 
Mise en place d’un Système d’Information pour la gestion des collectivités l...
Mise en place d’un Système d’Information pour la gestion  des collectivités l...Mise en place d’un Système d’Information pour la gestion  des collectivités l...
Mise en place d’un Système d’Information pour la gestion des collectivités l...
 
Gestion de la paie maroc avec openerp 7
Gestion de la paie maroc avec openerp 7 Gestion de la paie maroc avec openerp 7
Gestion de la paie maroc avec openerp 7
 
Python et son intégration avec Odoo
Python et son intégration avec OdooPython et son intégration avec Odoo
Python et son intégration avec Odoo
 
Plateforme de gestion des projets de fin d'études
Plateforme de gestion des projets de fin d'étudesPlateforme de gestion des projets de fin d'études
Plateforme de gestion des projets de fin d'études
 
Présentation PFE : Mise en place d’une solution de gestion intégrée (OpenERP...
Présentation PFE :  Mise en place d’une solution de gestion intégrée (OpenERP...Présentation PFE :  Mise en place d’une solution de gestion intégrée (OpenERP...
Présentation PFE : Mise en place d’une solution de gestion intégrée (OpenERP...
 
Soutenance mémoire de fin d'études
Soutenance mémoire de fin d'étudesSoutenance mémoire de fin d'études
Soutenance mémoire de fin d'études
 
Eolien Industriel Ecolo Gadget En Or V3 (1)
Eolien Industriel Ecolo Gadget En Or V3 (1)Eolien Industriel Ecolo Gadget En Or V3 (1)
Eolien Industriel Ecolo Gadget En Or V3 (1)
 
Comment exploiter l'énergie solaire de façon optimale _ MERABTI soufiane
Comment exploiter l'énergie solaire de façon optimale _ MERABTI soufianeComment exploiter l'énergie solaire de façon optimale _ MERABTI soufiane
Comment exploiter l'énergie solaire de façon optimale _ MERABTI soufiane
 
4.Lafon_Matériaux_et_procédés_:_de_l’expérimentation_à_la_modélisation.
4.Lafon_Matériaux_et_procédés_:_de_l’expérimentation_à_la_modélisation.4.Lafon_Matériaux_et_procédés_:_de_l’expérimentation_à_la_modélisation.
4.Lafon_Matériaux_et_procédés_:_de_l’expérimentation_à_la_modélisation.
 
Le module ISO 9001 pour OpenERP
Le module ISO 9001 pour OpenERPLe module ISO 9001 pour OpenERP
Le module ISO 9001 pour OpenERP
 
Audaxis : BI Project for an Association of Pharmacists
Audaxis : BI Project for an Association of PharmacistsAudaxis : BI Project for an Association of Pharmacists
Audaxis : BI Project for an Association of Pharmacists
 
Etude BrandZ - Focus sur le secteur Automobile
Etude BrandZ - Focus sur le secteur AutomobileEtude BrandZ - Focus sur le secteur Automobile
Etude BrandZ - Focus sur le secteur Automobile
 
Rapport de projet odoo
Rapport de projet odooRapport de projet odoo
Rapport de projet odoo
 
ISO (and other standard) Management Systems with OpenERP
ISO (and other standard) Management Systems with OpenERPISO (and other standard) Management Systems with OpenERP
ISO (and other standard) Management Systems with OpenERP
 
Diaporama energie solaire
Diaporama energie solaireDiaporama energie solaire
Diaporama energie solaire
 
Why and how to develop OpenERP test scenarios (in python and using OERPScenar...
Why and how to develop OpenERP test scenarios (in python and using OERPScenar...Why and how to develop OpenERP test scenarios (in python and using OERPScenar...
Why and how to develop OpenERP test scenarios (in python and using OERPScenar...
 

Ähnlich wie ADAPTATION ET INTEGRATION D’OPENERP POUR LA GESTION D’OFFICINE

Rapport de pfe format doc 2013
Rapport de pfe format doc 2013Rapport de pfe format doc 2013
Rapport de pfe format doc 2013Addi Ait-Mlouk
 
Gestion d"une société de transit avec openerp
Gestion d"une société de transit avec openerpGestion d"une société de transit avec openerp
Gestion d"une société de transit avec openerpHORIYASOFT
 
Conception d'un module de gestion de la paie adapté au contexte marocain pour...
Conception d'un module de gestion de la paie adapté au contexte marocain pour...Conception d'un module de gestion de la paie adapté au contexte marocain pour...
Conception d'un module de gestion de la paie adapté au contexte marocain pour...HORIYASOFT
 
Migration des données et portage du module GMAO de OpenERP 6.1 vers Odoo 8
Migration des données et portage du module GMAO de OpenERP 6.1 vers Odoo 8Migration des données et portage du module GMAO de OpenERP 6.1 vers Odoo 8
Migration des données et portage du module GMAO de OpenERP 6.1 vers Odoo 8Fouad ELOUAD
 
Conception, développement et mise en ligne d’une plateforme Odoo destinée à l...
Conception, développement et mise en ligne d’une plateforme Odoo destinée à l...Conception, développement et mise en ligne d’une plateforme Odoo destinée à l...
Conception, développement et mise en ligne d’une plateforme Odoo destinée à l...Nabil EL Moudden
 
PFE :Conception, développement et mise en ligne d’une plateforme Odoo destiné...
PFE :Conception, développement et mise en ligne d’une plateforme Odoo destiné...PFE :Conception, développement et mise en ligne d’une plateforme Odoo destiné...
PFE :Conception, développement et mise en ligne d’une plateforme Odoo destiné...Nabil EL Moudden
 
OURIREM-SALAH.pdf
OURIREM-SALAH.pdfOURIREM-SALAH.pdf
OURIREM-SALAH.pdfGhezza
 
Rapport de stage gsi djinta michelle hendrid encadreur kamleu noumi emeric
Rapport de stage gsi djinta michelle hendrid encadreur   kamleu noumi emericRapport de stage gsi djinta michelle hendrid encadreur   kamleu noumi emeric
Rapport de stage gsi djinta michelle hendrid encadreur kamleu noumi emericEmeric Kamleu Noumi
 
Rapport-PfA-ACHKAOU-SARA.pdf
Rapport-PfA-ACHKAOU-SARA.pdfRapport-PfA-ACHKAOU-SARA.pdf
Rapport-PfA-ACHKAOU-SARA.pdfsaraachkaou
 
Rapport med wahabi hamdi jan 2010
Rapport med wahabi hamdi jan 2010Rapport med wahabi hamdi jan 2010
Rapport med wahabi hamdi jan 2010Jihene Zahouna
 
Rapport de stage PFA AMELIORATION DES PERFORMANCES DE LA LIGNE DE PRODUCTION.pdf
Rapport de stage PFA AMELIORATION DES PERFORMANCES DE LA LIGNE DE PRODUCTION.pdfRapport de stage PFA AMELIORATION DES PERFORMANCES DE LA LIGNE DE PRODUCTION.pdf
Rapport de stage PFA AMELIORATION DES PERFORMANCES DE LA LIGNE DE PRODUCTION.pdfwassimhnaien
 
Rapport de stage d'initiation 2015 Mahmoudi Mohamed Amine
Rapport de stage d'initiation 2015 Mahmoudi Mohamed AmineRapport de stage d'initiation 2015 Mahmoudi Mohamed Amine
Rapport de stage d'initiation 2015 Mahmoudi Mohamed AmineMohamed Amine Mahmoudi
 
rapport MobiResto
rapport MobiResto rapport MobiResto
rapport MobiResto Slim Hammami
 
Plonegov projet egov
Plonegov projet egov Plonegov projet egov
Plonegov projet egov HORIYASOFT
 
Application web Gestion RH ASP.NET MVC5
Application web Gestion RH ASP.NET MVC5Application web Gestion RH ASP.NET MVC5
Application web Gestion RH ASP.NET MVC5YounessLaaouane
 

Ähnlich wie ADAPTATION ET INTEGRATION D’OPENERP POUR LA GESTION D’OFFICINE (20)

Rapport de pfe format doc 2013
Rapport de pfe format doc 2013Rapport de pfe format doc 2013
Rapport de pfe format doc 2013
 
Gestion d"une société de transit avec openerp
Gestion d"une société de transit avec openerpGestion d"une société de transit avec openerp
Gestion d"une société de transit avec openerp
 
Conception d'un module de gestion de la paie adapté au contexte marocain pour...
Conception d'un module de gestion de la paie adapté au contexte marocain pour...Conception d'un module de gestion de la paie adapté au contexte marocain pour...
Conception d'un module de gestion de la paie adapté au contexte marocain pour...
 
ERP
ERPERP
ERP
 
Migration des données et portage du module GMAO de OpenERP 6.1 vers Odoo 8
Migration des données et portage du module GMAO de OpenERP 6.1 vers Odoo 8Migration des données et portage du module GMAO de OpenERP 6.1 vers Odoo 8
Migration des données et portage du module GMAO de OpenERP 6.1 vers Odoo 8
 
Conception, développement et mise en ligne d’une plateforme Odoo destinée à l...
Conception, développement et mise en ligne d’une plateforme Odoo destinée à l...Conception, développement et mise en ligne d’une plateforme Odoo destinée à l...
Conception, développement et mise en ligne d’une plateforme Odoo destinée à l...
 
PFE :Conception, développement et mise en ligne d’une plateforme Odoo destiné...
PFE :Conception, développement et mise en ligne d’une plateforme Odoo destiné...PFE :Conception, développement et mise en ligne d’une plateforme Odoo destiné...
PFE :Conception, développement et mise en ligne d’une plateforme Odoo destiné...
 
E.R.P
E.R.PE.R.P
E.R.P
 
Openerp
OpenerpOpenerp
Openerp
 
OURIREM-SALAH.pdf
OURIREM-SALAH.pdfOURIREM-SALAH.pdf
OURIREM-SALAH.pdf
 
Rapport de stage gsi djinta michelle hendrid encadreur kamleu noumi emeric
Rapport de stage gsi djinta michelle hendrid encadreur   kamleu noumi emericRapport de stage gsi djinta michelle hendrid encadreur   kamleu noumi emeric
Rapport de stage gsi djinta michelle hendrid encadreur kamleu noumi emeric
 
Rapport-PfA-ACHKAOU-SARA.pdf
Rapport-PfA-ACHKAOU-SARA.pdfRapport-PfA-ACHKAOU-SARA.pdf
Rapport-PfA-ACHKAOU-SARA.pdf
 
Rapport med wahabi hamdi jan 2010
Rapport med wahabi hamdi jan 2010Rapport med wahabi hamdi jan 2010
Rapport med wahabi hamdi jan 2010
 
Présentation ERP
Présentation ERPPrésentation ERP
Présentation ERP
 
Rapport de stage PFA AMELIORATION DES PERFORMANCES DE LA LIGNE DE PRODUCTION.pdf
Rapport de stage PFA AMELIORATION DES PERFORMANCES DE LA LIGNE DE PRODUCTION.pdfRapport de stage PFA AMELIORATION DES PERFORMANCES DE LA LIGNE DE PRODUCTION.pdf
Rapport de stage PFA AMELIORATION DES PERFORMANCES DE LA LIGNE DE PRODUCTION.pdf
 
Rapport de stage d'initiation 2015 Mahmoudi Mohamed Amine
Rapport de stage d'initiation 2015 Mahmoudi Mohamed AmineRapport de stage d'initiation 2015 Mahmoudi Mohamed Amine
Rapport de stage d'initiation 2015 Mahmoudi Mohamed Amine
 
rapport MobiResto
rapport MobiResto rapport MobiResto
rapport MobiResto
 
MEMOIRE DE STAGE
MEMOIRE DE STAGEMEMOIRE DE STAGE
MEMOIRE DE STAGE
 
Plonegov projet egov
Plonegov projet egov Plonegov projet egov
Plonegov projet egov
 
Application web Gestion RH ASP.NET MVC5
Application web Gestion RH ASP.NET MVC5Application web Gestion RH ASP.NET MVC5
Application web Gestion RH ASP.NET MVC5
 

Mehr von HORIYASOFT

gnuhealthcon2022_abdrahman.pdf
gnuhealthcon2022_abdrahman.pdfgnuhealthcon2022_abdrahman.pdf
gnuhealthcon2022_abdrahman.pdfHORIYASOFT
 
Deployed eHealth solutions in Morocco_ ELKAFIL_MOROCCO.pptx
Deployed eHealth solutions in Morocco_ ELKAFIL_MOROCCO.pptxDeployed eHealth solutions in Morocco_ ELKAFIL_MOROCCO.pptx
Deployed eHealth solutions in Morocco_ ELKAFIL_MOROCCO.pptxHORIYASOFT
 
Hackaton euvsvirus-gnuhealth-federation
Hackaton euvsvirus-gnuhealth-federationHackaton euvsvirus-gnuhealth-federation
Hackaton euvsvirus-gnuhealth-federationHORIYASOFT
 
7 Conseils pour mettre en place un ERP dans votre entreprise
7 Conseils pour mettre en place un ERP dans votre entreprise7 Conseils pour mettre en place un ERP dans votre entreprise
7 Conseils pour mettre en place un ERP dans votre entrepriseHORIYASOFT
 
Telemedecine au maroc
Telemedecine au marocTelemedecine au maroc
Telemedecine au marocHORIYASOFT
 
Amélioration du système de gestion de transport avec Open tms
Amélioration du système de gestion de transport avec Open tmsAmélioration du système de gestion de transport avec Open tms
Amélioration du système de gestion de transport avec Open tmsHORIYASOFT
 
Comptabilité SYSCOA avec Odoo V8
Comptabilité SYSCOA avec Odoo V8Comptabilité SYSCOA avec Odoo V8
Comptabilité SYSCOA avec Odoo V8HORIYASOFT
 
Gnuhealth at Software Freedom Day Casablanca 2016
Gnuhealth at Software Freedom Day Casablanca 2016Gnuhealth at Software Freedom Day Casablanca 2016
Gnuhealth at Software Freedom Day Casablanca 2016HORIYASOFT
 
Les Logiciels Libres sont ils plus sécurisés que les Logiciels Propriétaires ?
Les Logiciels Libres sont ils plus sécurisés que les Logiciels Propriétaires ?Les Logiciels Libres sont ils plus sécurisés que les Logiciels Propriétaires ?
Les Logiciels Libres sont ils plus sécurisés que les Logiciels Propriétaires ?HORIYASOFT
 
Openerp à la poste maroc
Openerp à la poste marocOpenerp à la poste maroc
Openerp à la poste marocHORIYASOFT
 
Migration gmao de openerp 6.1 vers odoo 8
Migration gmao de openerp 6.1 vers odoo 8Migration gmao de openerp 6.1 vers odoo 8
Migration gmao de openerp 6.1 vers odoo 8HORIYASOFT
 
Gestion Paie marocaine et RH avec openerp
Gestion Paie marocaine et RH avec openerpGestion Paie marocaine et RH avec openerp
Gestion Paie marocaine et RH avec openerpHORIYASOFT
 
Mise en conformité_module_finance_maroc
Mise en conformité_module_finance_marocMise en conformité_module_finance_maroc
Mise en conformité_module_finance_marocHORIYASOFT
 
Gestion de la_production_agricole_avec_openerp
Gestion de la_production_agricole_avec_openerpGestion de la_production_agricole_avec_openerp
Gestion de la_production_agricole_avec_openerpHORIYASOFT
 
Gestion flotte acheminement_courrier
Gestion flotte acheminement_courrierGestion flotte acheminement_courrier
Gestion flotte acheminement_courrierHORIYASOFT
 
Odoopriting opendays2014
Odoopriting opendays2014Odoopriting opendays2014
Odoopriting opendays2014HORIYASOFT
 
Projet tempus mission openerp
Projet tempus mission openerpProjet tempus mission openerp
Projet tempus mission openerpHORIYASOFT
 
Opentms nextma
Opentms nextmaOpentms nextma
Opentms nextmaHORIYASOFT
 
Strategic dimensions-of-free-and-open source-software-arabic
Strategic dimensions-of-free-and-open source-software-arabicStrategic dimensions-of-free-and-open source-software-arabic
Strategic dimensions-of-free-and-open source-software-arabicHORIYASOFT
 
Methodology for Establishing a System of Free Software in Health in a Morocca...
Methodology for Establishing a System of Free Software in Health in a Morocca...Methodology for Establishing a System of Free Software in Health in a Morocca...
Methodology for Establishing a System of Free Software in Health in a Morocca...HORIYASOFT
 

Mehr von HORIYASOFT (20)

gnuhealthcon2022_abdrahman.pdf
gnuhealthcon2022_abdrahman.pdfgnuhealthcon2022_abdrahman.pdf
gnuhealthcon2022_abdrahman.pdf
 
Deployed eHealth solutions in Morocco_ ELKAFIL_MOROCCO.pptx
Deployed eHealth solutions in Morocco_ ELKAFIL_MOROCCO.pptxDeployed eHealth solutions in Morocco_ ELKAFIL_MOROCCO.pptx
Deployed eHealth solutions in Morocco_ ELKAFIL_MOROCCO.pptx
 
Hackaton euvsvirus-gnuhealth-federation
Hackaton euvsvirus-gnuhealth-federationHackaton euvsvirus-gnuhealth-federation
Hackaton euvsvirus-gnuhealth-federation
 
7 Conseils pour mettre en place un ERP dans votre entreprise
7 Conseils pour mettre en place un ERP dans votre entreprise7 Conseils pour mettre en place un ERP dans votre entreprise
7 Conseils pour mettre en place un ERP dans votre entreprise
 
Telemedecine au maroc
Telemedecine au marocTelemedecine au maroc
Telemedecine au maroc
 
Amélioration du système de gestion de transport avec Open tms
Amélioration du système de gestion de transport avec Open tmsAmélioration du système de gestion de transport avec Open tms
Amélioration du système de gestion de transport avec Open tms
 
Comptabilité SYSCOA avec Odoo V8
Comptabilité SYSCOA avec Odoo V8Comptabilité SYSCOA avec Odoo V8
Comptabilité SYSCOA avec Odoo V8
 
Gnuhealth at Software Freedom Day Casablanca 2016
Gnuhealth at Software Freedom Day Casablanca 2016Gnuhealth at Software Freedom Day Casablanca 2016
Gnuhealth at Software Freedom Day Casablanca 2016
 
Les Logiciels Libres sont ils plus sécurisés que les Logiciels Propriétaires ?
Les Logiciels Libres sont ils plus sécurisés que les Logiciels Propriétaires ?Les Logiciels Libres sont ils plus sécurisés que les Logiciels Propriétaires ?
Les Logiciels Libres sont ils plus sécurisés que les Logiciels Propriétaires ?
 
Openerp à la poste maroc
Openerp à la poste marocOpenerp à la poste maroc
Openerp à la poste maroc
 
Migration gmao de openerp 6.1 vers odoo 8
Migration gmao de openerp 6.1 vers odoo 8Migration gmao de openerp 6.1 vers odoo 8
Migration gmao de openerp 6.1 vers odoo 8
 
Gestion Paie marocaine et RH avec openerp
Gestion Paie marocaine et RH avec openerpGestion Paie marocaine et RH avec openerp
Gestion Paie marocaine et RH avec openerp
 
Mise en conformité_module_finance_maroc
Mise en conformité_module_finance_marocMise en conformité_module_finance_maroc
Mise en conformité_module_finance_maroc
 
Gestion de la_production_agricole_avec_openerp
Gestion de la_production_agricole_avec_openerpGestion de la_production_agricole_avec_openerp
Gestion de la_production_agricole_avec_openerp
 
Gestion flotte acheminement_courrier
Gestion flotte acheminement_courrierGestion flotte acheminement_courrier
Gestion flotte acheminement_courrier
 
Odoopriting opendays2014
Odoopriting opendays2014Odoopriting opendays2014
Odoopriting opendays2014
 
Projet tempus mission openerp
Projet tempus mission openerpProjet tempus mission openerp
Projet tempus mission openerp
 
Opentms nextma
Opentms nextmaOpentms nextma
Opentms nextma
 
Strategic dimensions-of-free-and-open source-software-arabic
Strategic dimensions-of-free-and-open source-software-arabicStrategic dimensions-of-free-and-open source-software-arabic
Strategic dimensions-of-free-and-open source-software-arabic
 
Methodology for Establishing a System of Free Software in Health in a Morocca...
Methodology for Establishing a System of Free Software in Health in a Morocca...Methodology for Establishing a System of Free Software in Health in a Morocca...
Methodology for Establishing a System of Free Software in Health in a Morocca...
 

ADAPTATION ET INTEGRATION D’OPENERP POUR LA GESTION D’OFFICINE

  • 1. N° d’Ordre : ECOLE NATIONALE DES SCIENCES UNIVERSITE ABDELMALEK APPLIQUEES - TANGER ESSAÂDI PROJET DE FIN D’ETUDES Présenté à l’école pour obtenir le diplôme D’INGENIEUR D’ETAT Spécialité: Génie informatique Option: Génie des systèmes d’informations Titre ANALYSE DE BESOIN, ADAPTATION ET INTEGRATION D’OPENERP POUR LA GESTION D’OFFICINE Réalisé par HAMLI Marouane Encdré par ELKAFIL Abdrahman (NEXTMA) EL ALAMI Mohamed (ENSAT) SOUTENU LE 27 juin 2012
  • 2. Dédicace Au Dieu tout puissant, mon créateur. A ma mère, ma raison d’être, ma raison de vivre, la lanterne qui éclaire mon chemin et m’illumine de douceur et d’amour. A mon père, en signe d’amour, de reconnaissance et de gratitude pour tous les soutiens et les sacrifices dont il a fait preuve à mon égard. A mes sœurs. A mes grands-parents. Aux familles EL KHAZRAJI et HAMLI. A mes amis, et à tous mes proches. Page 2 Rapport du projet de fin d’études HAMLI Marouane
  • 3. Remerciements Le présent rapport reflète le fruit des efforts conjugués de plusieurs personnes. Il m’est alors agréable d’exprimer ma reconnaissance auprès de toutes ces personnes, dont l’intervention au cours de ce projet, a favorisé son aboutissement. Aussi je tiens à rendre grâce à mes parents, ma famille et mes amis qui, avec leur soutien et encouragement, j’ai pu arriver à terme de ce travail. Je souhaite remercier aussi mon encadrant d’entreprise, pour m’avoir accordé cette chance de travailler à ses cotés, et qui m’a été d’une aide très utile durant ma période de stage, Mr ELKAFIL Abdrahman pour ses directives précieuses et ses conseils judicieux qui m’ont été d’un appui considérable dans ma démarche. Je remercie particulièrement Mr Mohamed HASSOUN EL ALAMI pour son encadrement, son soutien, ainsi que pour ses conseils instructifs durant toute la période de ce travail. Mes remerciements aussi à Mr ELHADDAD Mohamed, chef de la filière informatique, ainsi qu’à l’ensemble des professeurs de l’ENSA-Tanger pour les efforts fournis pour notre bonne formation. Que les membres de jury trouvent ici l’expression de mes reconnaissances pour avoir accepté de juger notre travail. Que tous ceux et celles qui ont contribué de près ou de loin à l’accomplissement de ce travail trouvent l’expression de mes remerciements les plus chaleureux. Page 3 Rapport du projet de fin d’études HAMLI Marouane
  • 4. Résumé Les technologies de l’information ont connu une importante évolution durant ces dernières années, ce qui a donné comme résultat l’émergence de plusieurs solutions informatiques pour remédier aux différentes problématiques réelles. Les Progiciels de Gestion Intégré, appelés PGI ou ERP, sont l’une des solutions les plus pratiques à ce jour, ils intègrent les principales composantes fonctionnelles de l'entreprise: gestion de production, gestion commerciale, logistique, ressources humaines, comptabilité, contrôle de gestion. A l'aide de ce système unifié, les utilisateurs de différents métiers travaillent dans un environnement applicatif identique qui repose sur une base de données unique. Ce modèle permet d'assurer l'intégrité des données, la non-redondance de l'information, ainsi que la réduction des temps de traitement. Le travail présenté dans ce rapport concerne l’analyse du besoin, l’adaptation et l’intégration du PGI Open-Source « OpenERP » pour la gestion d’officine pharmaceutique. Pour y arriver, il a fallut d’abord se rendre sur les lieux, une pharmacie, pour prendre notes des différents processus métier, pour ensuite pouvoir élaborer une liste des différents besoins requis. L’étape qui a suivit était de se familiariser avec ce nouvel outil et découvrir les options qu’il offre, puis apprendre comment développer un module pour ce progiciel. Ensuite faire quelques simulations pour s’assurer que le travail a bien été fait, et corriger les bugs qui peuvent arriver, si jamais il y en a. Les PGI sont connus pour leur structure « modulaire », ainsi il a fallut développer un module spécial pour les officines, lequel fonctionne en relation avec d’autres modules existants, comme le module des achats, ou celui du point de vente. Page 4 Rapport du projet de fin d’études HAMLI Marouane
  • 5. Avant-propos Nom : HAMLI Prénom : Marouane Intitulé du travail : Analyse du besoin, adaptation et intégration d’OpenERP pour la gestion d’Officine. Etablissement d’accueil : Nextma 452, Boulevard Mohamed V, Casablanca Tel : +212 (0) 5 22 30 00 55 Fax : +212 (0) 5 22 45 17 30 Email : info@nextma.com Encadrant dans l’établissement d’accueil : M. ELKAFIL Abdrahman Encadrant à l’ENSA : M. EL ALAMI Ahmed Date de début et de fin du stage : du 5 Mars au 31 Mai 2012. Page 5 Rapport du projet de fin d’études HAMLI Marouane
  • 6. Liste des abréviations Abréviation Désignation PGI Progiciel de Gestion Intégré ERP Enterprise Resource Planning SSLL Sociétés de Services en Logiciels Libres PME Petites et Moyennes Entreprises CRM Client Relationship Management UML Unified Modeling Language RUP Rational Unified Process XP eXtreme Programming 2TUP Two Track Unified Process DCI Dénomination Commune Internationale XML eXtended Markup Language BSD Berkeley Software Distribution SGBDRO Système de Gestion de Base de Données Relationnelle et Objet SQL Structured Query Language MVC Modèle Vue Contrôleur GPAO Gestion de Production Assistée par Ordinateur GTK The Gimp ToolKit WSGI Web Server Gateway Interface SGML Standard Generalized Markup Language GED Gestion Electronique Documentaire TVA Taxe sur la Valeur Ajoutée Page 6 Rapport du projet de fin d’études HAMLI Marouane
  • 7. Table des figures Figure 1: Logo Nextma ............................................................................................................ 13 Figure 2: Nextma sur la carte ................................................................................................... 13 Figure 3: Clients Nextma ......................................................................................................... 15 Figure 4: Cycle de développement en Y .................................................................................. 21 Figure 5: Planning du projet ..................................................................................................... 22 Figure 6: Interface d'Ubuntu 11.10 .......................................................................................... 34 Figure 7 : Logo PostgreSQL .................................................................................................... 35 Figure 8 : Interface Web d'OpenERP ....................................................................................... 36 Figure 9: Architecture d'OpenERP ........................................................................................... 38 Figure 10 : Dépendences du module officine ........................................................................... 45 Figure 11: Connexion ............................................................................................................... 47 Figure 12: Accueil OpenERP - client web ............................................................................... 48 Figure 13: Liste des modules OpenERP .................................................................................. 48 Figure 14: Gestion des utilisateurs ........................................................................................... 51 Figure 15: Gestion des groupes ............................................................................................... 51 Figure 16: Liste des médecins .................................................................................................. 52 Figure 17: Formulaire médecin ................................................................................................ 52 Figure 18:Formulaire patient .................................................................................................... 52 Figure 19: Bons de commande fournisseur .............................................................................. 53 Figure 20: Liste des réceptions................................................................................................. 54 Figure 21: Formulaire client ..................................................................................................... 54 Figure 22: Gestion des inventaires physiques .......................................................................... 55 Figure 23: Liste des mouvements de stock ............................................................................. 55 Figure 24: Liste des règles de stock minimum ......................................................................... 56 Figure 25: Formulaire produit – I............................................................................................. 56 Figure 26: Formulaire produit - II ............................................................................................ 57 Figure 27: Produit en stock d'alerte .......................................................................................... 57 Figure 28: Analyse des mouvements de stocks ........................................................................ 57 Figure 29: Liste des factures clients ......................................................................................... 58 Figure 30: Détails facture client ............................................................................................... 58 Figure 31: Paiements clients .................................................................................................... 59 Figure 32: Point de vente ......................................................................................................... 60 Figure 33: Paiement en espèces ............................................................................................... 60 Figure 34: Assistant d'ouverture des caisses ............................................................................ 61 Figure 35: Liste des méthodes de paiement ............................................................................. 61 Figure 36: Formulaire de création/modification d'une méthode de paiement .......................... 61 Figure 37: Liste des caisses ...................................................................................................... 62 Figure 38: Journal des ventes ................................................................................................... 62 Figure 39: Ordre de vente......................................................................................................... 62 Figure 40: Renseignement des informations d'ordonnance...................................................... 63 Page 7 Rapport du projet de fin d’études HAMLI Marouane
  • 8. Figure 41: Catégories des produits - point de vente ................................................................. 63 Figure 42: Analyse du point de vente par produit .................................................................... 64 Figure 43: Analyse des enregistreuses par utilisateur .............................................................. 64 Diagrammes Diagramme 1: Gestion basique ................................................................................................ 26 Diagramme 2: Vente au comptoir ............................................................................................ 27 Diagramme 3: Gestion des achats ............................................................................................ 28 Diagramme 4: Gestion des ventes ............................................................................................ 29 Diagramme 5 : Gestion du stock .............................................................................................. 30 Diagramme 6: Cas d'utilisations - Statistiques et alertes.......................................................... 31 Diagramme 7: Diagramme des classes - fonctionnel ............................................................... 32 Tableaux Tableau 1 : Comparaison des méthodes de développement ..................................................... 20 Tableau 2: Liste des fonctionnalités requises ........................................................................... 25 Tableau 3: Description des modules OpenERP en relation avec l'officine .............................. 44 Tableau 4 : attributs du produit ................................................................................................ 49 Tableau 5: Attributs de la méthode de paiement ...................................................................... 50 Page 8 Rapport du projet de fin d’études HAMLI Marouane
  • 9. Table des matières Dédicace ..................................................................................................................................... 2 Remerciements ........................................................................................................................... 3 Résumé ....................................................................................................................................... 4 Avant-propos .............................................................................................................................. 5 Liste des abréviations ................................................................................................................. 6 Table des figures ........................................................................................................................ 7 Diagrammes ............................................................................................................................... 8 Tableaux ..................................................................................................................................... 8 Introduction générale ................................................................................................................ 11 Partie I : Contexte général du projet......................................................................................... 12 1 Chapitre I : Présentation de l’organisme d’accueil .......................................................... 13 1.1 Présentation de Nextma ............................................................................................. 13 1.2 Prestations et services ................................................................................................ 14 1.3 Secteurs d’activité...................................................................................................... 14 1.4 Références ................................................................................................................. 15 2 Chapitre II : Cadre général du projet ................................................................................ 16 2.1 Présentation générale de l’officine ............................................................................ 16 2.2 Problématique ............................................................................................................ 16 2.3 Objectifs du projet ..................................................................................................... 17 2.4 Conduite du projet ..................................................................................................... 19 2.4.1 Processus du développement .............................................................................. 19 2.4.2 Planification du projet ........................................................................................ 22 Partie II : Etude fonctionnelle et technique .............................................................................. 24 3 Chapitre III : Analyse et Conception du projet ................................................................ 25 3.1 Analyse du projet ....................................................................................................... 25 3.2 Conception ................................................................................................................. 26 3.2.1 Diagramme des cas d’utilisations :..................................................................... 26 1. Gestion basique : .................................................................................................... 26 3.2.2 Diagramme des classes : .................................................................................... 31 4 Chapitre IV : Technologies mises en œuvre .................................................................... 34 4.1 Ubuntu ....................................................................................................................... 34 4.2 PostgreSQL ................................................................................................................ 35 Page 9 Rapport du projet de fin d’études HAMLI Marouane
  • 10. 4.3 OpenERP ................................................................................................................... 36 4.4 Python ........................................................................................................................ 40 4.5 XML .......................................................................................................................... 42 5 Chapitre IV : Développement du module « officine » ..................................................... 43 5.1 Analyse fonctionnelle des modules OpenERP .......................................................... 43 5.2 Module « Officine » .................................................................................................. 46 5.3 Installation ................................................................................................................. 47 5.4 Paramétrage ............................................................................................................... 48 5.4.1 Général ............................................................................................................... 48 5.4.2 Plan comptable ................................................................................................... 49 5.4.3 Produit ................................................................................................................ 49 5.4.4 Méthodes de paiements : .................................................................................... 49 5.5 Simulation .................................................................................................................. 51 5.5.1 Gestion de base ................................................................................................... 51 5.5.2 Gestion des achats .............................................................................................. 53 5.5.3 Gestion des ventes .............................................................................................. 54 5.5.4 Gestion du stock ................................................................................................. 55 5.5.5 Comptabilité ....................................................................................................... 58 5.5.6 Point de vente ..................................................................................................... 60 5.6 Problèmes rencontrés ................................................................................................. 64 Conclusion ................................................................................................................................ 65 Bibliographie & webographie .................................................................................................. 66 Bibliographie ........................................................................................................................ 66 Webographie ........................................................................................................................ 66 Annexe A.................................................................................................................................. 67 Page 10 Rapport du projet de fin d’études HAMLI Marouane
  • 11. Introduction générale Le présent rapport est le fruit de mon travail effectué au sein de la société Nextma à Casablanca, ce stage de 3 mois est le couronnement de ma formation pour obtenir le diplôme d’Ingénieur d’Etat, en génie informatique, à l’ENSA Tanger. Durant ces trente dernières années, l’informatique de gestion a subi des bouleversements considérables. Les avancées technologiques du traitement de l’information ont eu des conséquences capitales sur le rôle de l’outil informatique. Si les premières applications ont permis d’automatiser les activités opérationnelles des organisations (gestion de production, gestion commerciale et financière, ressources humaines), aujourd’hui les systèmes d’information prennent en charge des niveaux de gestion de plus en plus stratégiques. Les ERP (Enterprise Resource Planning) ou PGI (Progiciels de Gestion Intégrés), ont connu leur essor en profitant de l’évolution nécessaire des systèmes d’information pour le passage de l’an 2000 puis pour la mise en place de l’euro. En effet, il était séduisant de remplacer tous les logiciels de gestion de l’entreprise par un intégré offrant « l’état de l’art » plutôt que d’engager des corrections des programmes existants plus ou moins anciens. Mon Projet de Fin d’Etudes est autour d’OpenERP, un PGI open-source extrêmement modulaire, et a pour but d’adapter puis intégrer cette solution pour permettre la gestion des officines pharmaceutiques. Le travail consiste à effectuer d’abord une analyse du besoin, afin de bien souligner les différentes fonctionnalités requises, ensuite à chercher parmi ces fonctionnalités celles qui sont déjà offertes par OpenERP, comme ça je pourrai entamer le développement des fonctionnalités restantes qui n’existent pas encore, pour enfin faire des tests de simulation, détecter et corriger les bugs si jamais il y en a. Ce rapport est scindé en deux grandes parties : la première, composée de deux chapitres, définit le contexte général du projet ; Le premier chapitre présente l’organisme d’accueil, tandis que le second concerne le cadre général du projet, et la démarche suivie pour assurer son bon déroulement. Quant à la seconde partie, composée de trois chapitres, concerne à tout ce qui est étude fonctionnelle et technique, ainsi le troisième chapitre est autour de l’analyse et la conception du projet, le suivant décrit les choix des technologies mises en œuvre, alors que le dernier explique l’étape du développement, ainsi que la simulation et les différents problèmes rencontrés. En fin, ce rapport est terminé par une conclusion sur l’apport du travail réalisé et des perspectives futurs où il peut déboucher. Page 11 Rapport du projet de fin d’études HAMLI Marouane
  • 12. Partie I : Contexte général du projet Chapitres : - Présentation de l’organisme d’accueil - Cadre général du projet Page 12 Rapport du projet de fin d’études HAMLI Marouane
  • 13. 1 Chapitre I : Présentation de l’organisme d’accueil 1.1 Présentation de Nextma Figure 1: Logo Nextma Nextma est une Société de Services en Logiciels Libres (SSLL) qui accompagne les entreprises et institutions dans le choix des solutions open source ainsi que dans l'intégration, le développement, l'adaptation aux besoins spécifiques, la maintenance et le support. Afin de bénéficier des meilleures solutions libres dans la gestion des systèmes d'information. Figure 2: Nextma sur la carte Nextma a développé une expertise autour d’OpenERP depuis 2006 (premier partenaire officiel OpenERP au Maroc en 2007) et a contribué à faire connaître cet ERP open source au Maroc à travers plusieurs déploiements réussis dans les PME marocaines et des conférences dans les universités et adapte celui-ci à la législation marocaine et aux besoins spécifiques des entreprises. Page 13 Rapport du projet de fin d’études HAMLI Marouane
  • 14. 1.2 Prestations et services Nextma offre une large palette de prestations et de services basés sur des composants libres adaptés aux systèmes et aux réseaux des clients. La principale tâche de cette société est d’offrir des solutions sur mesure, en matière de formation et d’assistance, concernant les problématiques relevant des systèmes d’informations, moyennant des outils libres. La gamme de services de Nextma est articulée autour de quatre axes majeurs qui permettent d'accompagner les clients durant toutes les phases d'un projet afin d'en assurer sa réussite en : Formation : L’offre des formations, techniques et fonctionnelles, permet d'accompagner les organisations qui disposent d’équipes opérationnelles capables de mener à bien des projets. Ces formations peuvent être établies sous forme de transferts de compétences, en phases avals des projets. Support : En plus des offres de formations, la société propose aux équipes dédiées au développement, des prestations de support d’aide à la maintenance, afin de réduire le temps de résolution des interrogations ou des difficultés que les entreprises pourraient rencontrer lors de la mise en œuvre de certains logiciels. Conseil : Nextma possède une équipe formée de consultants techniques et fonctionnels qui assure soit dans le cadre de projets, soit en amont, des missions de conseil dans les domaines suivants: gestion de contenu, travail collaboratif, dématérialisation des procédures, migration vers le libre, architecture et dimensionnement d'applications basées sur OpenERP…etc. Développement : le cœur métier de Nextma et comprend le développement sur la base de logiciels libres, de portails collaboratifs internet ou intranet, avec des composantes de publication web, de travail collaboratif, de gestion électronique de documents et de workflow. 1.3 Secteurs d’activité De par les multiples projets que Nextma a mené, elle a acquis un savoir-faire susceptible de lui permettre l’implantation de logiciels libres dans les différents secteurs: Enterprise Ressource Planning (ERP) : la solution adoptée par Nextma est OpenERP, un PGI Open-Source. Customer Relationship Management (CRM) : Nextma propose l’offre SUGARCRM qui permet la gestion de la relation client. Intranet des entreprises et gestion des contenus : Création d’identités visuelles et sites internet institutionnels et e-Commerce. La solution proposée est Virtuemart, une solution libre de e-commerce (Commerce électronique) qui s'appuie sur le système de gestion du contenu « Joomla ». Page 14 Rapport du projet de fin d’études HAMLI Marouane
  • 15. Gestion électronique des documents : Il s’agit d’un système informatisé d'acquisition, classement, stockage et archivage des documents. La solution proposée est Alfresco. 1.4 Références Nextma compte plusieurs déploiements réussît d’OpenERP dans des PME marocaines dont je cite quelques références : Figure 3: Clients Nextma Page 15 Rapport du projet de fin d’études HAMLI Marouane
  • 16. 2 Chapitre II : Cadre général du projet 2.1 Présentation générale de l’officine La pharmacie d'officine est la branche la plus connue de la pharmacie. C'est la branche regroupant les pharmaciens qui travaillent dans les pharmacies de ville, appelées aussi officines, où les médicaments sont délivrés au public. Le rôle du pharmacien d'officine est la délivrance des ordonnances prescrites par les médecins, les conseils associés à la prise des médicaments, à l'hygiène, à la nutrition ou, plus globalement, à la santé publique. Le travail du pharmacien d'officine est aussi l'analyse de l'ordonnance, la vérification des posologies, des interactions médicamenteuses et des contre-indications existantes en fonction de l'état du patient. Le pharmacien, étant au bout de la chaîne de la prescription médicale, est responsable des médicaments délivrés, même en cas d'erreur ou négligence de la part du médecin prescripteur. À ce titre, il peut refuser de délivrer l'ordonnance, ou bien modifier les posologies ou médicaments, le plus souvent après accord avec le médecin prescripteur. Il peut également faire le suivi du traitement et aider à l'établissement d'un plan pharmacothérapique. Le pharmacien d'officine a aussi un rôle social, il est en mesure d'indiquer aux personnes en difficulté les organismes ou les structures compétentes en matière de Santé Publique et d'aides sociales. 2.2 Problématique Les officines marocaines souhaitent s’ouvrir sur les nouvelles technologies et les utiliser pour avoir un meilleur rendement, et ainsi intégrer des solutions de gestion complètes, paramétrables et flexibles pour la gestion de tout ce qui se rapporte au domaine de la pharmacie. Certes il existe des solutions sur le marché, mais elles sont payantes, en plus du fait qu’il est difficile de communiquer entre ces applications avec d’autres solutions « externes » (le cas d’automatiser les commandes de médicaments), et leur support est bien limité vu qu’elles ont été codées à la demande, à noter aussi qu’elles ne sont pas flexibles. Avec ces outils, le pharmacien se retrouve obligé d’effectuer lui-même un bon nombre de tâches qui normalement, avec ces solutions, doivent être automatisées, je cite comme exemple envoyer des bons de commande vers le grossiste (fournisseur) : le pharmacien (agent ou administrateur) crée un bon de commande avec une liste des produits demandés ainsi que Page 16 Rapport du projet de fin d’études HAMLI Marouane
  • 17. leur quantités, ce bon devra être transmis automatiquement vers un fournisseur parmi ceux enregistrés dans la liste, après sa validation, cette option était opérationnelle avant, mais nécessitait une installation matérielle particulière (modems 56k..etc) qui n’était pas disponible chez tous les partenaires, et a été abandonnée plus tard, donc le pharmacien est obligé de passer par la méthode classique qui est passer sa commande par téléphone. Les bons de commande sont donc temporaires, et se trouvent dans la plupart des cas supprimés après avoir effectué la réception des produits. Autre problème que le pharmacien rencontre, est quand l’application plante, et qu’il n’a plus accès à certaines données, comme ce cas dont j’étais témoin lors de ma visite à l’officine du client, la liste des fournisseurs a été endommagée et n’était plus accessible, ce qui empêchait d’établir des bons de commande ou effectuer des réceptions dans le logiciel, ainsi les bons de livraisons des grossistes s’entassaient les uns sur les autres, en attendant que la service support du logiciel envoie un technicien pour rétablir la base de données. Ceci avait d’autres conséquences, le pharmacien était habitué à faire une sauvegarde quotidienne de ses transactions, cette sauvegarde n’était plus possible depuis que la liste des fournisseurs est perdue, ce qui représente un grand risque pour ces données, surtout qu’il était en période de garde et avait effectué plusieurs ventes et réceptions. En plus, les quantités des produits au stock sont devenues toutes fausses. L’éditeur du logiciel proposait une assistance instantanée, via un logiciel d’assistance à distance, qui n’a pas été fourni à tous ses clients, et la seule solution pratique était d’envoyer les techniciens réparer les machines ne fonctionnant plus. Résultat : près de 5 jours d’attente, sans aucune sauvegarde, avec des données erronées, et encore faut-il du temps pour saisir toutes ces réceptions effectuées pendant la panne, après la réparation du logiciel. 2.3 Objectifs du projet Le travail demandé est d’adapter un progiciel libre, OpenERP, aux besoins des officines, en essayant de rajouter de nouvelles fonctionnalités que les autres solutions ne peuvent offrir. Afin de garantir une modernisation des services des officines, il est indispensable d’adopter les nouvelles technologies et les exploiter pour en tirer le meilleur profit. Les PGI sont connus pour leur intégration des principales fonctions nécessaires à la gestion des flux et procédures de l’entreprise (comptabilité, achats, ventes…), tous ces outils accèdent à des ressources communes, en particulier des bases de données. Parmi les autres avantages des PGI, c’est qu’ils sont conçus de telle sorte qu'un "simple" paramétrage suffit à les adapter à l'organisation de l'entreprise. Il n'est normalement pas nécessaire d'effectuer des développements spécifiques, sauf en cas de nécessité, lorsque ce Page 17 Rapport du projet de fin d’études HAMLI Marouane
  • 18. paramétrage ne permet pas de prendre en compte des particularités liées au métier des officines. Donc, le système d’information à développer aura pour objectifs : - Objectifs globaux : o Disposer d’un outil de gestion complet, qui contribuera à l’évolution des officines o Disposer d’un outil dont le support ne nécessite pas trop de ressources, et qui pourra communiquer avec d’autres applications sans complication - Objectifs spécifiques : o Permettre une gestion des éléments de bases, comme les clients, patients, médecins et fournisseurs o Permettre une « vente au comptoir » aisée, avec une interface ergonomique qui facilite la recherche des produits, et supporte plus qu’une méthode de paiement. o Permettre d’effectuer des achats auprès des fournisseurs, où il est possible d’éditer des devis, de créer des bons de commande et de recevoir les produits o Permettre une gestion de stock efficace, avec la possibilité de faire des inventaires physiques et de voir l’état des stocks n’importe quand. o Permettre le suivi des clients, voir leur situation en tout moment, et régler leur crédit s’ils en ont. o Enfin, avoir des statistiques concernant ces points cités auparavant Page 18 Rapport du projet de fin d’études HAMLI Marouane
  • 19. 2.4 Conduite du projet 2.4.1 Processus du développement Introduction La complexité croissante des systèmes informatiques a conduit les concepteurs à s’intéresser aux méthodes. On a comptabilisé en 1994 jusqu’à 50 méthodes. Chaque méthode se définit par une notation et un processus spécifique. UML a ouvert le terrain en fusionnant la notation. Il reste cependant à définir le processus pour réellement capitaliser des règles dans le domaine du développement logiciel. Les groupes de travail UML ont donc travaillé à unifier non pas les processus, mais plus exactement les meilleures pratiques de développement objet. Ces processus ce distingueront par le générique « UNIFIED PROCESS ». Un processus définit une séquence d’étapes, en partie ordonné, qui concoure à l’obtention d’un système logiciel ou à l’évolution d’un système existant. Pour produire des logiciels de qualité, qui répondent aux besoins des utilisateurs dans des temps et des coûts prévisibles. On découpe le processus en deux axes : - L’axe de développement technique, qui de concentre principalement sur la qualité de production. - L’axe de gestion du développement, qui permet la mesure et la prévision des coûts et des délais. Choix de la méthodologie de conception Avant d’adopter une méthode, il faut d’abord faire une comparaison entre les différentes méthodes existantes, voir les points forts et les points faibles de chacune, puis déterminer celle qui va mieux dans le contexte du projet. Ci-dessous un tableau qui résume cette comparaison (la liste est non exhaustive, voir la page suivante) Page 19 Rapport du projet de fin d’études HAMLI Marouane
  • 20. Description Points forts Points faibles Rational -Méthodologie centrée -Itératif -Coûteux à personnaliser Unified Process sur l’architecture et -Spécifie le dialogue -Très axé processus, au (RUP) couplée aux entre les différents détriment du diagrammes UML intervenants du projet : développement -Concerne des projets les livrables, plannings -Lourd, largement étendu, il de +10 personnes et prototypes… peut être difficile à mettre -Processus complet -Propose des modèles en œuvre de façon assisté par des outils de documents, et des spécifique exhaustifs canevas pour des -Convient pour les grands projets types projets qui générent -Rôles bien définis, beaucoup de documentation modélisation eXtreme -Développement guidé -Itératif -Ne couvre pas les phases Programming par les besoins du client -Simple à mettre en en amont et en aval du (XP) -Equipes réduites, œuvre développement centrées sur les -Laisse une large place -Assez flou dans sa mise en développeurs aux aspects techniques œuvre : quels intervenants ? -Builds journaliers Quels livrables ? -Amélioration -Focalisé sur l’aspect constante adaptation individuel du aux modifications développement, au détriment d’une vue globale et des pratiques de management ou de formalisation. Two Track -Articulé autour de -Itératif, laisse une -Superficiel sur les phases Unified Process l’architecture large partie à la en amont et en aval du (2TUP) -Cycle de technologie et à la développement développement en Y gestion du risque -Aucune proposition de -Convient aux projets de -Définit les profils des document type toutes tailles intervenants, les livrables, les prototypes Tableau 1 : Comparaison des méthodes de développement Pour atteindre les objectifs, j’ai suivi la méthode 2TUP (2Track Unified Process), qui sera plus détaillée dans ce qui suit. Page 20 Rapport du projet de fin d’études HAMLI Marouane
  • 21. Cycle de vie du modèle 2TUP Le modèle 2TUP repose sur cinq principes fondamentaux : o Séparer les aspects fonctionnels et les aspects techniques o Travailler selon deux points de vue qui se complètent et s’enrichissent mutuellement ; celui de l’entreprise, celui des applications. o Modéliser l’activité de l’entreprise et des applications aux moyens d’objets en utilisant UML. o Faire des maquettes et des prototypes pour affiner les besoins fonctionnels et les aspects techniques. o Effectuer la réingénierie des applications dans le sens de la réutilisation. Le schéma suivant montre bien le cycle en « Y » caractéristique de 2TUP. Figure 4: Cycle de développement en Y Page 21 Rapport du projet de fin d’études HAMLI Marouane
  • 22. 2.4.2 Planification du projet Le diagramme de GANT ci-dessous présente les différentes tâches nécessaires pour réaliser le projet : Figure 5: Planning du projet Page 22 Rapport du projet de fin d’études HAMLI Marouane
  • 23. Pour bien mener ce projet, je me suis déplacé, dans un premier temps, à l’officine du client, afin de découvrir les différentes activités et processus métier de ce domaine, des notes concernant ceci ont été prises, et des explications ont été fournies pour chaque question concernant un processus plus ou moins compliqué. Après cette visite des lieux, je suis passé à l’étape suivante qui est de reformuler les différents points pour bien limiter les besoins requis et ensuite élaborer un cahier des charges que le client devra consulter, et validera si tous les points cités correspondent à ceux qu’il cherche. Les PGI sont un nouveau monde pour moi, il est donc évident de prendre un peu de temps pour se familiariser avec, comprendre leur coté technique d’abord, puis comprendre leur coté fonctionnel. Et comme OpenERP est écrit en Python, combiné à XML pour générer les différentes vues, j’ai eu à lire quelques livres sur le développement avec python, et aussi avec le framework « Open Object », dédié au développement sous OpenERP. Une fois familiarisé un peu avec l’outil, je suis passé à écrire quelques modules simples pour s’assurer que j’ai bien assimilé sa technique de développement, comme ça je pourrais me lancer dans la découverte fonctionnelle du PGI, car c’est à travers elle que je déterminerai les modules déjà existants et qui répondent en partie aux exigences du client. Cette découverte m’a permis de fixer les fonctionnalités non existantes et qui devront être ajoutées, en plus du paramétrage à mettre en place. Après avoir créé les objets manquants, et après avoir paramétré l’application, j’ai commencé à faire des simulations, afin de s’assurer que le paramétrage suivi est le bon, et aussi chercher si il y a des bugs dans le module que je viens de créer, ou dans les autres modules auxquels il est lié, puis je suis parti à la recherche de solutions pour les différentes anomalies détectées. Page 23 Rapport du projet de fin d’études HAMLI Marouane
  • 24. Partie II : Etude fonctionnelle et technique Chapitres : - Analyse et conception du projet - Technologies mises en œuvre - Développement du module « officine » Page 24 Rapport du projet de fin d’études HAMLI Marouane
  • 25. 3 Chapitre III : Analyse et Conception du projet 3.1 Analyse du projet Le but du projet est d’adapter OpenERP pour qu’il puisse permettre une gestion d’officine. Il est donc nécessaire de faire une visite des lieux, une pharmacie, afin de bien cadrer son contexte, et de faire une liste des différentes fonctionnalités requises pour une telle gestion, avant de développer cette liste en un cahier des charges pour le valider avec le client. Les fonctionnalités requises sont présentées dans le tableau ci-dessous : Objectif Fonctionnalités Gestion de base - Gestion des médicaments - Gestion des clients - Gestion des fournisseurs - Gestion des patients - Gestion des médecins - Gérer les DCIs Vente au comptoir - Recherche de produits multicritère (nom, code ou code à barre) - Paiement supportant différentes méthodes de paiement (espèces, chèques, crédit, ou carte de crédit) - Impression du ticket de vente - Gestion de l’ordonnancier (vente sur ordonnance) - Consulter le journal du comptoir Gestion des achats - Consulter la liste des fournisseurs - Créer des devis de fournisseurs - Créer des bons de commandes - Effectuer des réceptions de médicaments - Suivi des règlements fournisseurs Gestion des ventes - Consulter la liste des clients - Gestion des avoirs clients - Suivi des règlements clients - Consulter le journal des ventes - Edition des devis Gestion de stock - Consulter la liste de produit - Effectuer des inventaires physiques - Voir les mouvements de stock - Calcul des écarts entre stock initial et stock actuel - Afficher le stock réel Statistiques - Consulter les produits en stock d’alerte (quantité insuffisante) - Distribution mensuelle des ventes par client - Distribution mensuelle des achats par fournisseur - Distribution détaillée des achats par produit / fournisseur - Distribution détaillée des ventes par produit / client Tableau 2: Liste des fonctionnalités requises Page 25 Rapport du projet de fin d’études HAMLI Marouane
  • 26. 3.2 Conception L’étape de conception est très importante pour la réussite d’un projet informatique car elle vise à définir une feuille de route du projet, le concevoir et le valider avant de passer au développement du système. Elle permet aussi d’avoir une bonne réflexion avant de passer à l’action, une bonne organisation du travail et une bonne communication entre les différents intervenants dans le projet. J’ai utilisé des diagrammes UML pour cette étape, vu qu’il est le plus approprié pour les projets informatiques orientés objet, et aussi car ses diagrammes facilitent la lisibilité et la compréhension des modèles même pour les ceux qui sont loin du domaine informatique. Le principal avantage d'UML est qu'il est devenu le standard en termes de modélisation objet, son caractère polyvalent et performant et sa souplesse en fait un langage universel. 3.2.1 Diagramme des cas d’utilisations : Dans ce projet, j’ai six grands cas d’utilisations, ces cas sont détaillés dans les diagrammes suivants : 1. Gestion basique : Diagramme 1: Gestion basique La gestion basique veut dire l’ajout, modification et suppression des objets élémentaires dans une officine, à savoir les médicaments, les fournisseurs, les clients, les médecins, les patients, les DCI (Dénomination Commune Internationale, nom du composant chimique principal d’un médicament), les utilisateurs et leurs groupes. Cette gestion est limitée aux administrateurs, qui n’auront la main pour effectuer leurs modifications qu’après s’être connecté. Page 26 Rapport du projet de fin d’études HAMLI Marouane
  • 27. 2. Vente au comptoir : Diagramme 2: Vente au comptoir La vente au comptoir est l’activité principale dans une officine, dans ce cas, un simple agent, reçoit la demande du client, ensuite recherche les médicaments demandées, puis renseigne les quantités de chaque produit, les ajoute à la liste, comme il peut retirer des produits de la liste, selon la demande du client, après il calcule le total du ticket, applique une remise s’il y en a et informe le client du montant. Vient ensuite l’étape du paiement, là le client déclare la méthode de paiement qu’il souhaite, et l’agent la choisit parmi sa liste de méthodes disponibles, si le client opte pour un crédit, alors l’ordre de vente se transforme en facture ouverte au client jusqu’à son paiement. Une fois payé, l’agent livre les médicaments au client, et peut lui imprimer le ticket de vente et le lui remettre. Si le client amène une ordonnance, l’agent suit une procédure similaire à celle décrite ci- dessus, avec la particularité qu’il doit renseigner dans cette vente le nom du médecin l’ayant établi, en plus du patient à qui elle est destinée. Il est possible que dans cette vente se trouvent des produits n’ayant pas de relations avec l’ordonnance, ce cas est connu comme « vente libre ». Page 27 Rapport du projet de fin d’études HAMLI Marouane
  • 28. 3. Gestion des achats : Diagramme 3: Gestion des achats La gestion des achats permet au pharmacien de se procurer des médicaments auprès de ses fournisseurs. Il lui est possible de créer des devis des grossistes, convertir ces devis en bons de commande, choisir la méthode de facturation de ces derniers, et les valider. Une fois ces bons validés, des réceptions de produits, correspondants chacune à un bon de commande, sont générées automatiquement et passent au statut « en attente de traitement ». Le traitement des réceptions peut être partiel ou total, c’est-à-dire que lors d’une réception le pharmacien peut recevoir la totalité des produits commandés, traiter la réception et passer à la facturation, ou recevoir une partie des produits seulement, dans ce cas il ne renseigne que la quantité reçue et valide la réception, cette dernière est dupliquée, et le duplicata est une nouvelle réception contenant le reste des produits à recevoir, en statut « en attente de traitement ». Après la réception des produits, le pharmacien passe à la facturation des produits reçus, pour payer le fournisseur. Il pourra par la suite consulter les factures établies et voir leurs situations. Les factures payées sont écrites dans le journal des achats. Page 28 Rapport du projet de fin d’études HAMLI Marouane
  • 29. 4. Gestion des ventes : Diagramme 4: Gestion des ventes Les ventes se font toutes au niveau du point de vente, la gestion des ventes ici concerne le suivi des clients qui se procurent des produits par crédit, car dans cette partie l’agent peut consulter les factures des clients et voir celle qui sont toujours ouvertes, aussi il pourra consulter la liste de ses clients et voir le montant des crédits de chacun. Cette gestion permet aussi de gérer les avoirs, produits retournés par les clients pour différentes raisons, une mauvaise commande par exemple. A travers ce volet, le pharmacien peut aussi éditer des devis pour des clients qui viennent se renseigner sur les prix de certains médicaments. Enfin, le pharmacien a la possibilité de consulter le journal des ventes, où se trouvent les écritures comptables des ventes par crédit. Page 29 Rapport du projet de fin d’études HAMLI Marouane
  • 30. 5. Gestion du stock : Diagramme 5 : Gestion du stock La gestion du stock concerne la gestion des produits, où il est possible de voir la liste de produits, voir les mouvements du stock, effectuer des inventaires physiques, voir l’état réel du stock, et même voir les écarts entre stock actuel et stock initial. 6. Statistiques et alertes : Page 30 Rapport du projet de fin d’études HAMLI Marouane
  • 31. Diagramme 6: Cas d'utilisations - Statistiques et alertes Ce volet est autour de tout ce qui est statistiques utiles pour le pharmacien, afin d’avoir une idée claire de ses ventes et ses achats, comme la distribution des ventes par produit ou par client, la distribution des achats par produit ou par fournisseur, la distribution détaillée des ventes ou achats. Le pharmacien pourra consulter les produits en stock d’alerte afin de pouvoir les commander à nouveau. 3.2.2 Diagramme des classes : Le diagramme suivant est le diagramme de classes « fonctionnel » que j’ai réalisé avant de me lancer dans le développement. Page 31 Rapport du projet de fin d’études HAMLI Marouane
  • 32. Diagramme 7: Diagramme des classes - fonctionnel Ce diagramme représente les classes nécessaires pour assurer un bon fonctionnement du système à mettre en œuvre, les utilisateurs de l’application sont regroupés dans des groupes, chaque groupe possédant des privilèges qui permettent à ses utilisateurs inscrits d’accéder à certaines fonctionnalités. Les utilisateurs peuvent effectuer des achats de produits auprès des fournisseurs, chaque achat se compose des lignes d’achat, chacune de ces lignes contient un médicament désigné, avec la quantité à acheter. Un médicament est lié à la classe DCI de deux façons : la première concerne sa composition, car un médicament est composé d’une ou plusieurs DCI, avec en général une seule DCI connue, qui est sa composante principale. La deuxième liaison concerne les contre- indications d’un médicament, qui ne sont autres que des DCI qui risquent de causer des complications si elles sont combinées ensemble. Les médicaments sont ensuite vendus au public, chaque vente, liée à un utilisateur, comporte des lignes de ventes, qui regroupent le médicament vendu, sa quantité, sa remise, et indique si elle fait partie d’une ordonnance ou non. Si la ligne fait partie d’une ordonnance alors l’utilisateur devra renseigner le nom du médecin qui a écrit cette dernière, en plus du nom du patient concerné. Si le client souhaite payer par crédit, le vendeur devra renseigner dans ce cas le nom de ce client, afin que le montant de cette vente s’ajoute à son crédit. Page 32 Rapport du projet de fin d’études HAMLI Marouane
  • 33. Evidemment, des changements ont eu lieu sur ce diagramme, surtout après la recherche des modules OpenERP existants qui répondent en partie aux besoins du cahier des charges, ce qui a imposé ces modifications. Page 33 Rapport du projet de fin d’études HAMLI Marouane
  • 34. 4 Chapitre IV : Technologies mises en œuvre Ce chapitre décrit les différentes technologies adoptées par Nextma, et utilisées pour la réalisation de ce projet, à commencer par le système d’exploitation Ubuntu, tout en passant par le PGI OpenERP, le système de gestion de bases de données PostgreSQL, et en fin les langages nécessaires pour le développement, à savoir le langage Python et XML. 4.1 Ubuntu Ubuntu est un système d’exploitation libre commandité par la société Canonical et une marque déposée par cette même société. Fondé sur la distribution Linux Debian et utilisant le bureau Unity, Ubuntu se veut « convivial, intuitif et sûr ». Il est constitué de logiciels libres, est disponible gratuitement y compris pour les entreprises, et bénéficie d'une nouvelle version (appelée « mise à niveau ») tous les six mois. Avec une utilisation globale estimée à plus de 25 millions d'utilisateurs, il est principalement conçu pour une utilisation sur des ordinateurs personnels (portables et fixes), bien que d'autres versions consacrées aux netbooks et aux serveurs existent aussi. Depuis Ubuntu 11.04, la version Netbook a fusionné avec la version Desktop. Cette dernière étant passée à l'interface Unity, il n'y avait plus de raison de maintenir deux branches distinctes. Figure 6: Interface d'Ubuntu 11.10 La version d’Ubuntu utilisée pour ce projet est la 11.10, ayant pour nom de code « The Oneiric Ocelot », cette version est la quinzième version d'Ubuntu. Son développement s'est échelonné sur six mois, jusqu'à sa publication en tant que version stable le 13 octobre 2011. Page 34 Rapport du projet de fin d’études HAMLI Marouane
  • 35. Elle profitera des mises à jour de sécurité pendant une durée de 18 mois, soit jusqu'en avril 2013. 4.2 PostgreSQL PostgreSQL est un système de gestion de base de données relationnelle et objet (SGBDRO). C'est un outil libre disponible selon les termes d'une licence de type BSD. 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 entier, 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. Figure 7 : Logo PostgreSQL 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 de Oracle. Mais aussi pour ses possibilités de programmation étendues, directement dans le moteur de la base de données, via PL/pgSQL. Le traitement interne des données peut aussi être couplé à d'autres modules externes compilés dans d'autres langages. Page 35 Rapport du projet de fin d’études HAMLI Marouane
  • 36. 4.3 OpenERP Anciennement connu sous le nom Tiny ERP, signifiant la fourmi de l’Enterprise resource planning) est un progiciel intégré de gestion ouvert, libre de droits comprenant les ventes, la gestion de relation client (CRM), la gestion de projet, la gestion d'entrepôt, la production, la comptabilité et les ressources humaines. OpenERP a trois composants séparés : le serveur openerp-server qui stocke ses données dans une base postgresql, le client openerp- client qui s'installe sur le poste de l'utilisateur et le serveur web openerp-web qui permet une utilisation depuis un navigateur. Ces trois composants communiquent par les protocoles xml- rpc et net-rpc. Figure 8 : Interface Web d'OpenERP Le logiciel est basé sur une forte architecture MVC, des flux de travail flexibles, une interface-utilisateur graphique dynamique, une interface XML-RPC, et un système personnalisable de comptes-rendus avec une intégration pratique d'OpenOffice.org. Dans la classification des logiciels, OpenERP, comme tout autre PGI sur le marché est un package destiné, a priori, à tous les secteurs, à toutes les fonctions, les adaptations nécessaires se faisant par paramétrage. Il dispose de forts arguments commerciaux pour séduire les dirigeants (il propose de mettre un terme au désordre du système d’information, et aussi de régler des problèmes d’organisation sans effort politique). Cette offre séduisante par sa qualité et sa cohérence se révèle à l’usage plus risquée que l’on avait pu l’imaginer : elle ne peut être efficace que si l’on accepte les contraintes qu’elle impose. Sa mise en œuvre comporte des difficultés et des pièges. Implanter un PGI a ses avantages, parmi lesquels je cite : o Optimisation des processus de gestion o Cohérence et homogénéité des informations o Intégrité et unicité du Système d’information Page 36 Rapport du projet de fin d’études HAMLI Marouane
  • 37. o Mise à disposition d’un outil multilingue et multidevises (très adapté aux multi-nationales) o Communication interne et externe facilitée par le partage du même système d’information o Meilleure coordination des services et donc meilleur suivi des processus (meilleur suivi de commande ou meilleure maîtrise des stocks par exemple) o Normalisation de la gestion des ressources humaines (pour les entreprises gérant de nombreuses entités parfois géographiquement dispersées) o Minimisation des coûts (formation et maintenance) o Maîtrise des coûts et des délais de mise en œuvre et de déploiement o Mise à disposition, des cadres supérieurs, d’indicateurs nettement plus fiables que lorsqu’ils étaient extraits de plusieurs systèmes différents Toutefois, cela peut avoir quelques inconvénients, comme la lourdeur et la rigidité de la mise en œuvre, ou encore les difficultés d’appropriation par le personnel de l’entreprise. OpenERP comporte plusieurs modules fonctionnels, je cite les exemples suivants : o CRM ; gestion de la relation client o Comptabilité analytique et financière (Conforme aux exigences françaises) o Gestion des stocks o Gestion de production (GPAO) o Gestion de projets et des activités de services o Norme qualité : ISO 9001 version 2000 o Gestion des ventes o Gestion des achats o Marketing o Logistique o Ressources humaines o Gestion documentaire Coté architecture, OpenERP est basé sur une architecture 3 tiers: 1. Un serveur de base de données PostgreSQL (qui peut contenir plusieurs bases de données) 2. Un serveur d'applications (contenant les objets de gestion, le moteur de workflow, le générateur d'édition, etc.) 3. Un serveur de présentation (appelé OpenERP Web) qui permet à l'utilisateur de se connecter à OpenERP avec n'importe quel navigateur internet (avec le lecteur Flash installé pour l'affichage des graphiques). Ce serveur n'est pas nécessaire si l'utilisateur utilise le client lourd mais qui nécessitera une installation physique sur le poste de l'utilisateur (cette application se nomme Client GTK). Page 37 Rapport du projet de fin d’études HAMLI Marouane
  • 38. Figure 9: Architecture d'OpenERP Ses fonctions de veille économique intégrées permettent à des utilisateurs multiples de traiter tous les aspects du logiciel. Ainsi, les rapports et les flux de travail peuvent être personnalisés. La partie serveur est écrite en langage Python. Les différentes briques sont organisées en «modules». Un module est un dossier avec une structure pré-définie contenant du code Python et des fichiers XML. Un module définit la structure de données, formulaires, rapports, menus, procédures, flux de travail, etc. Le client est léger car il ne contient pas de logique d'entreprise (l'ensemble est embarqué dans le serveur d'application). Ainsi, l'ajout de nouveaux objets, comme les menus ou formulaires, le rend accessible à tout type de client graphique (GTK+, Web, Qt, ou Texte). Le client GTK+ est par défaut et est basé sur la plateforme PyGTK (Python). Le client-web est écrit en langage Python. Il utilisait la plate-forme turboGears jusqu'à la version 5.0.1. Bien que concernant le contenu, les clients GTK + et -web soient équivalents, il existe certaines différences dans la fonctionnalité de l'interface. Par exemple le client-web peut avoir un lien de personnalisation sur chaque formulaire, mais le client GTK+ n'a pas de fonction comparable. Pour ce projet, la version d’OpenERP qui m’a été conseillée pour l’utiliser est la 6.1, parue en février 2012, cette version comporte plusieurs nouveautés : - Un meilleur partage des informations : Des fonctionnalités de partage des informations à des tiers ont été ajoutées. Il est par exemple possible de permettre l'accès aux données d'un projet en cours à un sous-traitant ou de permettre à un client de consulter les factures qui lui correspondent et de les imprimer. La refonte de l'interface Web riche en javascript permet en outre d'intégrer n'importe quelle partie de l'interface d'OpenERP à site Web tiers. Page 38 Rapport du projet de fin d’études HAMLI Marouane
  • 39. - Fonctions d'échanges EDI : Des fonctions d'Échange de données informatisé font leur apparition, permettant à un partenaire d'importer des données (par exemple une facture) le concernant dans son propre système OpenERP ou progiciel tiers (au format JSON), et même d'effectuer le paiement en ligne. - Une interface mobile : Une nouvelle interface conçue pour l'utilisation sur les terminaux mobiles de type smartphone fait son apparition. Basée sur le framework JQuery Mobile, elle ne permet pour l'instant que la consultation en lecture seule des informations. - Une interface destinée aux points de ventes : Une nouvelle interface dédiée aux points de ventes à écran tactiles, tablettes et autre dispositifs de caisse interactifs est inaugurée dans cette version d'OpenERP. Cette fonctionnalité très demandée permet d'utliser un lecteur de codes à barres, de sélectionner des produits par catégorie/sous catégorie, la recherche par nom de produits et peut fonctionner hors-ligne et se synchroniser automatiquement lorsque la connexion avec le serveur est rétablie. Et ce ne sont pas que les nouveautés qu’a apporté cette version, mais aussi des améliorations : o Une configuration plus simple : De nouveaux boutons de raccourcis font leur apparition, permettant de créer plus intuitivement de nouveaux documents et de nouveaux enregistrements directement à partir de leur saisie dans les champs de données. De même, une installation fraîche d'OpenERP inclut dorénavant une configuration minimale des modules, basée sur les bonnes pratiques et les utilisations les plus courantes observées chez les utilisateurs. o Un effort sur l'utilisabilité : L'installateur et l'assistant de configuration ont été repensés afin de faciliter la compréhension par les nouveaux utilisateurs, en demandant moins de détails sur la société à gérer et en se focalisant sur les informations absolument nécessaires. La page d'installation des modules propose par défaut une installation sous forme de « thèmes ». Par exemple, un clic sur le thème « Ventes » installera tous les modules nécessaires à la gestion des ventes, et vous dirigera ensuite automatiquement vers ce module configuré et prêt à l'emploi. o Importation des données facilitée : L'importation des données dans OpenERP à partir de sources tierces a été améliorée. En effet, un assistant fait son apparition permettant de facilement faire correspondre un fichier de données au format csv au schéma de données OpenERP. À noter aussi l’existence de fonctions d'importation automatisée des données depuis SugarCRM et Google Calendar. o Sous-système de courriels unifié : La configuration des paramètres de connexions pour l'envoi et la réception de courriels est maintenant unifiée, ce qui met fin à la duplication des configurations pour les modules tirant partie de ces fonctions de courriels. Page 39 Rapport du projet de fin d’études HAMLI Marouane
  • 40. o Refonte du module de paie : Le module de gestion de paie a été repensé, afin d'être plus flexible et s'adapter ainsi plus aisément aux spécificités de chaque pays et de chaque entreprise. o Ré-écriture de l'interface Web : L'interface Web d'OpenERP a été entièrement ré-écrite et fait dorénavant la part belle à la technologie Javascript, sans non plus bouleverser son apparence et l'expérience utilisateur. Parmi les conséquences, on peut noter qu'elle offre plus de fonctionnalités avec moins de code, et est plus rapide que l'ancienne implémentation de la 6.0. Au niveau des améliorations se trouve aussi la possibilité de personnaliser les tableaux de bord directement depuis l'interface avec de simples glisser-déposer, ainsi que l'arrivée d'une nouvelle forme de présentation des données, la vue « kanban ». o Compatibilité WSGI : De gros efforts ont été fait afin de rendre OpenERP compatible avec Web Server Gateway Interface qui permet de recourir à des serveurs d'application python tels que Gunicorn et uWSGI facilitant une implémentation extrêmement robuste d'OpenERP sur les serveurs, un bien meilleur contrôle de l'assignation des ressources matérielles et une simplification de la mise en place de mécanismes de réplication et de répartition de charge (les serveurs d'applications proposant souvent de telles fonctionnalités). 4.4 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 : Page 40 Rapport du projet de fin d’études HAMLI Marouane
  • 41. o conçu pour produire du code de qualité, portable et facile à intégrer : grâce à sa syntaxe claire, cohérente et concise, Python permet aux développeurs de produire du code de qualité, lisible et maintenable. Écrire du code Python est un exercice agréable, même en respectant les conventions de codage. Fourni dès le départ avec des modules de tests, Python est un langage agile. Le terme agile est originellement issu de la méthodologie de programmation agile (Beck et Al.), très proche de la programmation itérative. Cette méthodologie, qui réduit les risques liés à la conception de logiciels, introduit entre autres des principes de tests continus du code. o De haut niveau, orienté objet et totalement libre : même si elle n’est pas imposée, Python permet la programmation orientée objet. Tous les mécanismes objet essentiels sont implémentés et toutes les données manipulées sont des instances de classes, comme pour les langages SmallTalk ou Ruby. Enfin, le code peut être structuré en modules (fichiers) qui sont ensuite importables dans l’interpréteur. Ce découpage, permet d’organiser le code et son utilisation par des espaces de noms, et aussi de faciliter l’extension du langage par des bibliothèques tierces compilées dans d’autres langages. o Hautement productif : La conception d’applications en Python est très rapide car certains aspects de programmation sont gérés automatiquement, comme la gestion des ressources mémoire et le typage des données. Grâce à des types de base très puissants et des primitives de haut niveau, un programme Python est simple à concevoir et concis. Un programme Python est en général 3 à 5 fois plus court qu’un programme C++ équivalent. Ces qualités font de Python un langage idéal dans beaucoup de domaines. Enfin, la bibliothèque standard de Python est très complète, et permet de répondre aux besoins communs de programmation. Grâce au modèle Open Source, la communauté des développeurs Python est en outre très productive et de nombreuses extensions gravitent autour du langage. o Dynamique : dans la plupart des implémentations, le code source n’est pas compilé contrairement à des langages comme C ou Pascal, mais exécuté à la volée. On parle alors de langage interprété. Ce mode de fonctionnement rend la programmation beaucoup plus souple puisqu’il est possible de changer un programme en cours d’exécution, ou de tester du code en mode interactif sans disposition particulière. L’interprétation rend aussi l’exécution plus lente, mais ce défaut est surmontable grâce à de bonnes pratiques de programmation et des techniques d’optimisation. Page 41 Rapport du projet de fin d’études HAMLI Marouane
  • 42. 4.5 XML XML (eXtensible Markup Language) 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érer 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 décrire la présentation d'un texte (Qui n'a jamais désiré une balise qui n'existait pas ?). 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. (Tous les documents liés à la norme XML sont consultables et téléchargeables sur le site web du W3C, http://www.w3.org/XML/) 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. Page 42 Rapport du projet de fin d’études HAMLI Marouane
  • 43. 5 Chapitre IV : Développement du module « officine » Dans ce chapitre, je présente les modules existants dans OpenERP et qui répondent partiellement aux besoins requis dans le cahier des charges, pour ensuite limiter les fonctionnalités restantes à mettre en œuvre. Une fois le développement terminé, il ne reste que le paramétrage à faire, pour assurer un bon fonctionnement du système. 5.1 Analyse fonctionnelle des modules OpenERP Avant de commencer l’étape du développement, il m’a fallut d’abord chercher parmi les modules existants sous OpenERP, ceux qui offrent des fonctionnalités exigées précédemment dans le cahier des charges fonctionnel. Après une analyse des différents modules, je peux décrire les modules utiles à mon système comme suit : Module Nom Description Fonctionnalités technique Gestion de base Ce module est en fait le noyau Gestion des : base d’OpenERP, il est nécessaire pour - Clients toute installation de nouveau - Workflow module. - Devises de monnaie En effet, dans ce module sont - Langues définis les objets de base, qui sont - Pays essentiels pour le bon - Sécurité de base fonctionnement du PGI Gestion de stock Ce module sert de base pour la - Gestion d'entrepôt Stock gestion de/des entrepôt(s) d’une - Les bons de livraison entreprise dans OpenERP - Traçabilité - Produits - Règles du Stock - Reporting Gestion des sale Permet la gestion des ventes et - Gestion et suivi des ventes leur facturation. achats/ventes pour produits stockable/services. - Relances. - Gestion des listes de prix. - Création automatique des bons de livraison. - Facturation à partir des livraisons. - Calcul automatique des prix en fonction des quantités et des délais de livraison. - Proposition automatique de réapprovisionnement. - Gestion des ristournes et promotions. - Gestion des livraisons partielles et retours fournisseurs. Page 43 Rapport du projet de fin d’études HAMLI Marouane
  • 44. - Gestion des incoterms. Gestion des purchase Ce module concerne tout ce qui est - Demande de devis achats en relation avec l’achat de - Les commandes d'achat produits - Carnet d'adresses - Contrôle des stocks - Contrôle de facture Comptabilité account Ce module concerne la - Ecritures dans journaux comptabilité dans l’entreprise. avec automatisation des contreparties. - Génération automatique des pièces comptables. - Automatisation complète : calculs de TVA, date d'échéance, équilibrage. - Gestion des conditions de paiement. - Rapprochement manuel ou automatique des écritures bancaires, avec gestion des ajustements. - Edition des documents : balance, grand livre, bilan, compte de résultat, déclaration TVA… - Gestion budgétaire. Comptabilité Account_acco Ce module permet à - Gestion des journaux & finance untant l’administrateur d’accéder à toutes - Gestion des registres de les options de la comptabilité caisse comme les journaux et le plan comptable Paiement Account_vouc Ce module est utilisé pour Rajoute le bouton « paiement » her effectuer le paiement des aux factures des clients et des différentes factures établies fournisseurs pour pouvoir effectuer les paiements Point de vente Point_of_sale Ce module, qui a été - Gestion des ventes complètement rénové, permet - Analyse des caisses d’avoir un point de vente et de - Analyse du point de vente vendre des produits dans une - Configuration des approche plus sociale que la vente méthodes de paiement des produits classiques dans - Configuration des caisses OpenERP. - Inscription des ventes dans Le point de vente tactile OpenERP les journaux… permet de gérer les ventes dans une boutique très facilement. Il est entièrement basé sur le Web et ne nécessite aucune installation ou déploiement de logiciel tiers et tous les commerces de vente peuvent être facilement consolidés. Il fonctionne en mode connecté et déconnecté de sorte qu’on puisse continuer à vendre si on n’est plus connecté à Internet. Tableau 3: Description des modules OpenERP en relation avec l'officine Page 44 Rapport du projet de fin d’études HAMLI Marouane
  • 45. Malgré la variété de fonctionnalités satisfaites par ces modules, il reste à créer certains objets qui n’existent pas encore sur OpenERP, en créant un nouveau module qui les regroupera, le schéma suivant montre comment seront intégrés ces modules listés ci-dessus et comment ils seront liés avec le nouveau module que je vais créer : Point_of_sale Account_ac Purchase countant Account_vo Base Officine ucher Sale Account Stock Figure 10 : Dépendences du module officine Page 45 Rapport du projet de fin d’études HAMLI Marouane
  • 46. 5.2 Module « Officine » Après avoir analysé les différents modules, j’ai constaté qu’il faut créer les objets suivants : - Médecin : cet objet est nécessaire dans le cas d’une vente par ordonnance, car il faut renseigner le nom du médecin qui l’a établit - Patient - DCI : « Dénomination Commune Internationale », représente le nom du composant chimique d’un médicament, ici au Maroc la DCI joue un rôle secondaire pour déterminer les produits car on se base sur leur nom commercial. Ces nouveaux objets sont regroupés dans un nouveau module à ajouter, qui n’est autre que « officine ». Le module est un dossier composé de fichiers python (.py) contenants les définitions des classes et d’autres XML contenants les détails des vues de ces dernières, en plus de certains dossiers comme les wizards (assistants se lançant dans certaines conditions) ou report (contient les modèles de rapport du module). En plus j’ai eu à étendre certains objets déjà créés pour qu’ils répondent aux besoins, ces objets sont : - Produit : ajout des attributs propres au médicament à la classe produit, comme la posologie, la/les DCIs composant le produit (un médicament peut se composer de plusieurs DCI, mais seul une est considérée principale), ainsi que les DCIs listées comme contre indication. - Ligne de vente : ajout d’un attribut « ordonnance » afin de préciser si la ligne fait partie d’une ordonnance ou non, car après discussion avec le client, il s’est avéré qu’il est possible de faire une vente sur ordonnance en plus d’autres produits non prescrits dans cette dernière, tout ceci en une seule vente. - Ordre de vente : cette classe déjà créée par le module point de vente, nécessite d’avoir des liens avec un médecin et un patient, lorsqu’on souhaite réaliser une vente sur ordonnance, car il faudra dans ce cas renseigner le nom du médecin ayant établi l’ordonnance, et le patient à laquelle elle est destinée. Je lui ai ajouté aussi un champ qui calcul le montant total des produits achetés sur ordonnance. Après avoir créé et étendu les classes citées ci-dessus (voir l’annexe A qui contient des détails quant au développement de classes avec le framework « Open Object »), il fallait passer à créer les vues pour les représenter graphiquement et les utiliser, les vues sont des fichiers XML dans lesquelles on définit la structure d’affichage des nouveaux objets créés, et on peut aussi hériter des vues déjà existantes, et soit les modifier, ou y ajouter de nouveaux champs à afficher. L’avantage de coder ces nouveaux objets sous « Open Object » réside dans le fait qu’il suffit de renseigner une nouvelle classe, mentionner ses attributs, pour qu’ensuite Open Object lui crée une table dans la base de données et lui associe ses méthodes élémentaires Page 46 Rapport du projet de fin d’études HAMLI Marouane