15/04/2019

GSB – PHP MVC

CONTEXTE

Entreprise

GSB (Galaxy Swiss Bourdin) est un laboratoire pharmaceutique. Il développe (R&D) , produit et vend des médicaments. Son principal canal de vente repose sur les visiteurs médicaux employés, qui démarchent les médecins. L’informatique intervient en support dans le processus de vente.

Projet

Les visiteurs médicaux, en effectuant leurs missions, engendrent des frais qui doivent être pris en charge par la comptabilité. Le site actuel de GSB est fonctionnel uniquement pour la parties concernant les visiteurs médicaux (voir diagramme des cas d’utilisation). Afin de gérer ces frais, l’application doit maintenant proposer un menu comptable.

La base de données, le CSS ainsi que la structure de base du site (cas d’utilisation visiteur médical) sont fournis.

Mission

Développer la partie comptable d’une application de gestion de frais de visiteurs médicaux en respectant le cahier des charges (téléchargeable ici).

RÉALISATION

Diagramme des cas d’utilisation

Se connecter

En rentrant un identifiant (login) et un mot de passe (mdp) correct, tous les visiteurs médicaux peuvent se connecter mais pour pouvoir différencier un comptable d’un visiteur médical nous avons ajouter la colonne « role » à la table « Visiteur ».

Nous avons donc ensuite ajouté le comptable « Bobby Cooper » à la base de données. Pour la démonstration du projet nous observerons les fiches du visiteur médical « David Andre« .

Une fois connecté, le comptable accède à un menu différent de celui d’un visiteur médical et affiche son rôle.



Schéma conceptuel de la base de données

Valider les fiches de frais

Afin de valider des fiches de frais, le comptable doit d’abord saisir un visiteur médical, puis un mois (sur les six derniers proposés par rapport au mois actuel).

Les fiches proposées sont à l’état « clôturée ».

Le comptable peut modifier les quantités des éléments forfaitisés.

Il rentre également le nombre de justificatifs reçus pour les éléments hors forfais. Il peut refuser ces derniers en les supprimant ou les reporter au mois suivant.

Un élément supprimé apparaît en rouge avec la mention « REFUSE : » devant.

Le comptable peut alors valider la fiche, ce qui la fera passer à l’état « validée et mise en paiement ».

Suivre le paiement des fiches de frais

Le comptable doit sélectionner un visiteur associé à son mois.

Les fiches proposées sont à l’état « validée et mise en paiement » et ne sont plus modifiable.

Le comptable peut alors procéder au remboursement du montant indiqué. La fiche passe ensuite à l’état « remboursée ». L’application ne l’a présente alors plus au comptable (dans le cadre de cette application).

COMPÉTENCES DU RÉFÉRENTIEL

  • A1.1.1 Analyse du cahier des charges d’un service à produire
    • Besoins particuliers pour le traitement des fiches de frais forfaits, hors forfait et leur suivi par le comptable
  • A1.2.5 Définition des niveaux d’habilitation associés à un service
    • Les visiteurs médicaux n’ont pas les mêmes accès que le comptable
  • A1.4.1 Participation à un projet
    • Organisation du temps entre les séances
  • A4.1.2 Conception ou adaptation de l’interface utilisateur d’une solution applicative
    • Développement de l’application
  • A4.1.3 Conception ou adaptation d’une base de données
    • Ajout d’une colonne « fonction » dans la table « utilisateur »
  • A4.1.6 Gestion d’environnements de développement et de test
    • Netbeans
  • A4.1.7 Développement, utilisation ou adaptation de composants logiciels
    • Développement de l’application
  • A5.1.1 Mise en place d’une gestion de configuration
    • Mise en place d’un gestionnaire de version : Git sur Netbeans et SourceForge
  • A5.1.3 Suivi d’une configuration et de ses éléments
    • Git
  • A5.2.1 Exploitation des référentiels, normes et standards adoptés par le prestataire informatique
    • Contrainte de nommage des pages (v_ pour les vues, c_ pour les controlers)
Top
Fatal error: Uncaught Error: Class 'Elementor\Plugin' not found in /home/myleqfrx/public_html/wp-content/plugins/essential-addons-for-elementor-lite/includes/Traits/Elements.php:465 Stack trace: #0 /home/myleqfrx/public_html/wp-includes/class-wp-hook.php(324): Essential_Addons_Elementor\Classes\Bootstrap->render_global_html('') #1 /home/myleqfrx/public_html/wp-includes/class-wp-hook.php(348): WP_Hook->apply_filters(NULL, Array) #2 /home/myleqfrx/public_html/wp-includes/plugin.php(517): WP_Hook->do_action(Array) #3 /home/myleqfrx/public_html/wp-includes/general-template.php(3208): do_action('wp_footer') #4 /home/myleqfrx/public_html/wp-content/themes/zerif-lite/footer.php(263): wp_footer() #5 /home/myleqfrx/public_html/wp-includes/template.php(810): require_once('/home/myleqfrx/...') #6 /home/myleqfrx/public_html/wp-includes/template.php(745): load_template('/home/myleqfrx/...', true, Array) #7 /home/myleqfrx/public_html/wp-includes/general-template.php(92): locate_template(Array, true, true, Array) #8 /home/myleqfrx/publi in /home/myleqfrx/public_html/wp-content/plugins/essential-addons-for-elementor-lite/includes/Traits/Elements.php on line 465