Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Memoire Koust Cqpm.

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 53

MEMOIRE

Chef de projet

( CQPM 96 09 69 0142 )

Stage réalisé chez KOUST

BRELES
Tuteur : Mr JEAN-LUC LE GOFF
MEMOIRE
Chef de projet

Sommaire
REMERCIEMENTS _____________________________________________ 4
1. MON PARCOURS PROFESSIONNEL _____________________________ 5
2. INTRODUCTION ___________________________________________ 6
3. PRESENTATION DE L’ENTREPRISE, DE SON ORGANISATION _________ 7
4. LES MISSIONS ____________________________________________ 8
5. DETAIL DU PROJET TECHNIQUE ______________________________ 19
5.2 5.1 LA DEFINITION DU PROJET ___________________________________ 19
o Traduire une demande en objectifs opérationnels ____________________ 19
o Structurer et planifier tout ou partie des activités liées à un projet ______ 22
5.3 5.2 LE SUIVI DU PROJET _______________________________________ 23
o Réaliser un état d’avancement d’un projet et traiter les écarts __________ 23
o Animer des réunions de travail liées à un projet _____________________ 25
o Effectuer un « Reporting » projet_________________________________ 27
o Communiquer autour de la réalisation d’un projet ___________________ 27
5.4 5.3 REX PROJET ____________________________________________ 29
o Etablir un bilan et retour d’expérience _____________________________ 29
o Bilan _______________________________________________________ 29
6. DOCUMENTS ANNEXES : ____________________________________ 30
6.1 ROADMAP ___________________________________________________ 30
6.2 PROJET EXPORT RECETTE ______________________________________ 30
6.3 PROJET PLANNING DE PRODUCTION ________________________________ 41
Remerciements

Je tiens à exprimer ici mes sincères remerciements à tous ceux qui ont
contribué à la réalisation de ce mémoire et au bon déroulement de ce stage de
fin d’études :

M. Jean-Luc Le Goff, Créateur de l’application Koust, pour m’avoir permis de


réaliser ce stage au sein de l’entreprise Sasu Koust à Brélès, pour ses conseils
et sa grande disponibilité qui ont grandement contribué à la qualité du travail
accompli et au retour d’expérience acquis.

Mme Christine Le Goff et toute l’équipe souriante du restaurant « Le Jardin de


l’Aber » pour leur accueil chaleureux et fort sympathique au quotidien.

Je terminerai en remerciant toute l’équipe enseignante de la formation


Code.bzh à l’ISEN, qui pendant huit mois nous ont formé et inculqué le
développement Web :

Mme Tatiana Kusberg, pour l’enseignement au web marketing.


Mr Thierry Le Pors pour l’enseignement au développement Web.
Mr Mickaël Cabon pour l’enseignement à la connaissance de soi.
1. Mon parcours professionnel

Après 15 années passées dans le commerce en tant que responsable de


magasins, ma situation a nécessité une reconversion professionnelle. Cette
remise en question m’a poussé à prendre du recul sur mes capacités et mes
futures attentes en termes d’activité professionnelle au travers d’un bilan de
compétences.
Cette introspection a mis en avant mon côté relationnel, ma capacité à travailler
en équipe et mon sens de l’organisation. Mon fort attrait pour les nouvelles
technologies, m’a ensuite naturellement poussé à m’orienter vers le métier de
développeur informatique.

C’est en juin 2017 que paraît un article dans le Télégramme annonçant


l’ouverture au mois de septembre suivant de la formation « Code.bzh ».
Cette formation expérimentale, labellisée Grande Ecole Du Numérique, nous a
enseigné pendant 9 mois le métier de développeur web.

➢ 3 mois de tronc commun (Web marketing, Front-end,


Back-end)
➢ 6 mois sur une des spécialisations web

En lien avec les entreprises locales nous avons travaillés individuellement et


collaborativement sur des projets concrets qui ont servi de support aux cours.
Cette formation a aussi inclus des périodes de professionnalisation.

Aujourd’hui grâce à cette formation j’ai beaucoup appris, validé mon projet
professionnel et acquis une vision globale de plusieurs langages de
programmation. J’ai aussi pu mettre en application l’apprentissage fait à l’ISEN
au cours de mon dernier stage de 3 mois chez Koust.
Enfin, en prévision de mon entrée au CESI en septembre, je prévois également
de poursuivre mon apprentissage en autoformation sur les langages Python et
Java notamment.
2. Introduction

Le développement informatique est une activité qui prend de plus en plus


d’importance au sein des entreprises. Un très bon moyen aujourd’hui pour elles
de se faire connaitre, est d’avoir un site internet ou encore une application
utilisable sur smartphone ou PC. Il faut donc des personnes qualifiées aussi
bien pour la création de ces sites que pour la gestion des données qui vont y
transiter.

Durant ces trois mois de stage en entreprise, mon travail a été de répondre à
ce besoin. Au travers ce stage et de ce mémoire, c’était l’occasion pour moi de
mettre en valeur toutes les compétences acquises en matière de
développement web et d’acquérir une réelle expérience dans la gestion de
projets. Ce sont d’ailleurs tous les outils liés à la gestion de projet qui ont
permis de répondre de manière efficace aux différentes tâches qui m’ont été
confiées. Dans ce mémoire sera abordé le cheminement qui a permis de
répondre aux projets « Export des recettes » et « Planning de production ».

Ce document comporte trois grandes parties : la première partie n’est autre


que la présentation de l’entreprise d’accueil. La deuxième concerne mes
missions et la dernière partie est celle liée à la gestion de projet.
3. Présentation de l’entreprise, de son
organisation

Koust est une start-up créée le 01-09-2016. Elle a pu voir le jour grâce à Jean-
Luc Le Goff, restaurateur et ancien ingénieur « Chef de projet informatique »
chez Naval Group.

- Sa principale activité aujourd’hui est la vente par abonnement d’un


logiciel en ligne.

Koust est un service SAAS (Software As A Service – modèle de


distribution d’un logiciel via le Cloud) dédié aux restaurateurs et métier
de bouches. Il permet aux professionnels de gérer leurs recettes de
cuisine.

o Recenser les ingrédients, recettes et menus


o Comparer les prix des fournisseurs
o Calculer les prix de revient des recettes
o Préparer les mercuriales (listes de produits pour commandes
fournisseurs)
o Aider les restaurateurs à la construction de la carte

Au-delà de la gestion, il est possible de planifier ses menus sur plusieurs


semaines, de les éditer ainsi que de créer des fiches techniques et une
liste des allergènes consultables pour chaque recette.

Le principal concurrent de Koust est FoodmeUp


(https://www.foodmeup.io). Les 2 outils gèrent des recettes de cuisine.
Koust est une solution orientée vers la vente et la rentabilité alors que
FoodmeUp cible la gestion de production.

Le rôle du site internet est de présenter l’outil, les tarifs, les


fonctionnalités ainsi qu’un blog et un centre d’aide permettant de
publier des articles (texte et vidéo) sur la bonne gestion d’un restaurant
ou autre commerce, des tutoriels d’utilisation …

Un site a été créé avec le CMS Wordpress. http://www.koust.fr/

L’application est proposée en formule d’abonnement mensuel, un


« start », un « pro » et un « premium » proposant chacun des options
plus évoluées.

KOUST n’a qu’un seul salarié, son créateur.


4. Les missions

Durant ce stage Mr Le Goff m’a confié différentes missions, classifiables en 4


parties :

➢ Maintenance logicielle

La maintenance logicielle consiste à corriger certains problèmes survenus ou


signalés lors de l’utilisation de Koust par ses utilisateurs. On peut retrouver

o Des messages d’erreurs systèmes, liés à la base de données.

➢ Amélioration de l’application

L’amélioration de l’application consiste à surveiller et à apprécier différents


facteurs possibles d’évolutions sur le plan ergonomique et de l’expérience
utilisateur. C’est une veille permanente basée sur la complétude des
fonctionnalités (comme l’ajout de plugins, …), ou encore envisager de changer
la disposition des menus, des pages et boutons pour une meilleure intuitivité
de Koust.

Ex : Le client souhaiterait visualiser ses mercuriales différemment, par


catégories, fournisseurs ou produits du moins cher au plus cher.

o La création de documents personnalisés et l’ajout de boutons sur une


page

Ex : Une chaîne de restaurants aimerait interagir avec ces points de vente sur
Koust.

o Participation au développement des pages, boutons de liaison entre


points de vente du même client.

➢ Besoins utilisateurs / Roadmap de l’application

De suivre un plan de développement traduit en objectifs par le créateur.

o Ex : Roadmap de Jean-Luc sur TRELLO

➢ Réalisation des documentations utilisateurs

L’écriture de documents techniques ou informatifs liés à l’utilisation de Koust


et Kalander, sur le centre d’aide ou le blog.

o Centre d'assistance : https://kousthelp.zendesk.com/hc/fr


o Documents techniques interne, spécifications techniques
o Création d’une aide en ligne sur Koust
X
5. Détail du projet technique

5.1 La définition du projet

Durant ces quelques semaines de stages il m’a été confié plusieurs tâches
en lien avec le développement de l’application Koust et ses fonctionnalités.
La rédaction de documents techniques interne recensant les étapes de
travail réalisé sur Koust et des articles d’aide dédiés aux utilisateurs, visibles
sur le centre d’aide en ligne : Koust support.

Koust est en ligne depuis 2017 et est hébergée chez MaxApex, un hébergeur
de choix pour les applications Oracle. L’application est entièrement
opérationnelle et utilisable par le client, cependant des petits ajustements
sont encore nécessaires afin de l’améliorer.

Mon premier parcours professionnel dans le commerce m’a appris à mieux


cerner les attentes des utilisateurs, et nous avons pu avec Jean-Luc Le Goff
en discuter régulièrement, ce qui m’a permis de proposer et parfois de
rajouter certains éléments dans l’application.
C’est donc à travers le logiciel propriétaire d’Apex d’Oracle, que j’ai pu
découvrir jour après jour, la méthodologie de travail employée par mon
tuteur.

Disséquons maintenant les différentes étapes des projets concernant


« l’export des recettes » et « impression des calendriers » :

o Traduire une demande en objectifs opérationnels

Koust au départ a été développé pour la gestion de restaurants


indépendants. Grâce à sa popularité, des chaînes de restaurants se sont
intéressé à l’application et le mode de fonctionnement de Koust a dû être
adapté. C’est cette partie « amélioration » que nous allons détailler. La
partie légale a également dû être prise en compte avec la nouvelle loi RGPD.

Mon tuteur a donc souhaité répondre aux attentes de ces clients multisites
qui rencontraient le besoin de transférer leurs recettes entre points de vente
mais aussi d’imprimer des mercuriales plus précises.

Mon travail a consisté à :

➢ M’imprégner de l’application en utilisant un compte « TEST » créé à


cet effet.
➢ Collecter les premiers avis clients par intercom, retours de mails et
téléphone.
➢ Les recenser afin de comprendre au mieux les besoins.
19
➢ Repérer des améliorations significatives à proposer et leur faisabilité.
(Définir et réadapter de meilleures options d’accès)
➢ Proposer des solutions (prises de notes et propositions Word).

Tout cela en gardant à l’esprit une mise en page plus pratique et plus
intuitive qui répond aux attentes des clients.

Intercom :
Intercom est une solution très complète pour communiquer avec les clients,
avec les utilisateurs du logiciel ou avec les visiteurs du site Web dans toutes
les étapes de leur expérience et selon le contexte dans lequel ils se trouvent.

(Ecran : tableau de bord)

Ici mes propositions par Screenshots et séquençage des améliorations à


faire dans des documents internes. (CF. « Export recettes », « Planning de
production »)

(Ecran P.325)

20
(Ecran P.900/901)

(Ecran P.900)

21
o Structurer et planifier tout ou partie des activités liées à un
projet

Premièrement avec Mr Le Goff nous avons échangé sur la méthode de


travail à adopter. Pour sa bonne mise en place, nous avons structuré et
planifié un cadre de travail :

➢ Etudier le réel fondement des demandes et de ce fait la mise en œuvre


des tâches à réaliser au cours d’une réunion.
➢ Remplir un nouveau cahier des charges (CF : document technique
interne à la disposition des développeurs chez Koust).
➢ Comparer l’existant et déterminer les changements à effectuer.
➢ Elaborer un plan des nouveautés (sous menu, plugins, Documents
PDF, boutons export)
➢ Schématiser l’organisation de la tâche (CF. photos)
➢ Attribution des tâches via le gestionnaire de projet Trello

(Organisation de la tâche)

22
5.2 Le suivi du projet

o Réaliser un état d’avancement d’un projet et traiter les


écarts

Pendant l’exécution des tâches j’ai dû rendre compte de l’avancement


de mes actions de manière journalière.
C’est donc trois fois par jour que nous débriefions (matin, midi et soir)
autour des actions menées, pour vérifier l’état d’avancement des projets.
Si besoin, certaines étapes étaient modifiées notamment en cas de
complications, toujours dans le but d‘assurer une meilleure réponse
ergonomique aux clients.
Chaque réunion donnait lieu à des prises de notes et une mise à jour du
logiciel Trello, pour mieux détailler les tâches.
Ce logiciel m’a d’ailleurs permis de suivre ma propre progression grâce
aux étiquettes et d’informer mon tuteur sur leurs avancées « planifié »,
« en cours », « terminé ».

Trello :
Trello est un outil de gestion de projet en ligne, lancé en septembre 2011, et
inspiré par la méthode Kanban de Toyota. Il est basé sur une organisation des
projets en planches listant des cartes, chacune représentant des tâches. Les
cartes sont assignables à des utilisateurs et sont mobiles d'une planche à
l'autre, traduisant leur avancement.

Eclatement du projet sur Trello en plusieurs petites tâches de dimension plus


abordable.

23
(*Utilisation de codes couleurs pour prioriser les tâches)
L’entreprise s’est agrandie pendant mon stage et nous avons dû
déménager. Cela nous a donné l’occasion d’utiliser d’autres outils de
communications à distance, tels que Slack, puisque les réunions
quotidiennes n’étaient pas toutes possibles.
Slack :
Plateforme de communication collaborative propriétaire (SaaS) ainsi qu'un
logiciel de gestion de projets créé par Stewart Butterfield.

(Ecran : Slack)

24
o Animer des réunions de travail liées à un projet

Chaque réunion démarrait par un rappel de la tâche en cours. Nous


constations l’avancée des étapes directement sur le logiciel Apex ou
Ireport pour les documents et le rendu sur l’application Koust. Nous
vérifions si les changements étaient opérationnels et n’amenaient pas de
problèmes techniques dans l’utilisation.

(PHOTO REUNION)

Le cas échéant nous réfléchissions à des techniques de contournement du


problème, une réflexion était souvent faite en se mettant à la place du
client et ainsi s’assurer du bon fonctionnement de l’application.

Sur Jasper :
- Modification inattendue des documents de vente sur le logiciel
Jasper suite à l’insertion de l’option devises dans le panel
administrateur : Devise à 3 caractères au lieu de 2 (CFA)

25
Sur l’application :
- Messages d’erreurs systèmes, liés à la base de données
- Insertion de nouveaux icones sur plusieurs pages

(Erreur en BDD)

26
o Effectuer un « Reporting » projet

Concernant le reporting projet, il n’y avait pas de Dead-line aux différents


projets, chaque évolution était faite au fur et à mesure.
Nous utilisions Trello pour faire évoluer, soit le statut de ma tâche en
cours vers le statut « terminé », soit pour nous TAGUER pour spécifier des
changements sur le projet.
Le passage au statut final de « approuvé » était décidé lors de la réunion
suivante.

o Communiquer autour de la réalisation d’un projet


A l’attention des clients restaurateurs qui ne connaissent pas toutes les
fonctionnalités de Koust, un centre d’aide a été créé.
Mon rôle sur ce centre d’aide a été de le rendre accessible depuis
l’application dans différents menus et de rédiger les articles connexes sur
les mises à jour que nous avons faites.

27
Le centre d'aide

A l’attention des futurs développeurs de l’application, j’ai aussi participé à


l’élaboration de documents techniques internes, recensant toutes les étapes
des tâches qui m’ont été confiées au cours de ce stage.
Requêtes informatiques, modifications apportées au modèle de données et
à l’application.

• Document interne « Export recettes »


• Document interne « Planning production »

28
5.3 REX projet

o Etablir un bilan et retour d’expérience

Le but de mon stage était d’améliorer l’application et de la rendre plus


praticable pour un néophyte. Pour cela j’ai amélioré l’aide, j’ai rajouté des
options aux recettes, j’ai modifié le calendrier.
Certains ont déjà fait part de leurs satisfactions de voir leurs requêtes
répondues.
Toutes mes tâches sont consultables par les clients et les développeurs qui
me succèderont.
L’entreprise Sasu Koust se développe, le nombre de clients augmente et
avec eux le nombre des retours qui permettront de perfectionner encore
l’application.

o Bilan

La formation @Code.bzh m’a permis de découvrir un univers beaucoup plus


important que je ne le pensais, grâce aux rencontres avec des intervenants
et des professionnels locaux, et surtout d’acquérir les bases du métier de
développeur.
Des bases que j’ai pu utiliser pendant mes différents projets de l’année,
notamment le site Sea Test Base, le Village by CA, et mon stage de fin de
formation chez Koust.
En effet les langages informatiques découverts comme le HTML, Bootstrap,
Javascript et le SQL m’ont permis de mieux appréhender mon travail sur
l’application Koust.
Mais au-delà de ça, Jean-Luc Le Goff et son expérience de « Chef de projet
», m’a donné une vision plus concrète des problématiques métier tout en
m’aidant à poursuivre mon apprentissage de développeur.
En avril 2018, j’ai passé avec succès les tests d’entrée à l’école du CESI
pour la formation « Chef de projet DevOps ». Je suis persuadé que cette
formation en alternance m’apportera les clefs nécessaires à ma nouvelle
carrière.

29
6 Documents annexes :

6.1 Roadmap

30
6.2 Projet Export Recette

Projet
Export des
recettes

Sommaire
NOUVELLES FONCTIONNALITES ______________________________ 32
QUELS SONT LES BESOINS ___________________________________________ 32
L’EXISTANT ______________________________________________ 32
La page et ses documents ______________________________________ 32
PLAN ___________________________________________________ 34
1/ NOUVELLE STRUCTURE DE LA PAGE ___________________________________ 34
2/ SOUS-MENUS _________________________________________________ 34
3/ CREATION DES EXPORTS PDF VERS CSV _______________________________ 35
Export CSV : Recette simple _____________________________________ 35
Export CSV : liste recettes ______________________________________ 35
MODIFICATIONS DU MCD (MODELE DE DONNEES) : _______________ 36
PLAN DE DEVELOPPEMENT : _________________________________ 36
CREATION DE L’EXPORT - RECETTE SIMPLE : CSV ___________________________ 38
CREATION DE L’EXPORT - LISTE RECETTES : CSV ___________________________ 39
CREER LES BOUTONS ______________________________________________ 40
_____________________________________________________________ 40
ENCHAINEMENTS DES PAGES ET RESULTATS _______________________________ 40

31
1. Nouvelles fonctionnalités
Koust au départ a été développé pour la gestion de restaurants
indépendants. Grâce à sa popularité, des chaines de restaurants se sont
intéressées à l’application et le mode de fonctionnement de Koust a dû
être adapté. La partie législative a également dû être prise en compte
avec la nouvelle loi RGPD.

Quels sont les besoins


Au quotidien Koust réfléchit à une utilisation plus intuitive de l’utilisateur.

• Pour les chaines de restaurants > transfert de recettes entre restaurants


• Un export de recette simple > pour la sauvegarde en CSV et l’impression
en PDF
• Liste des recettes pour export vers CRM (type Evolys)
• Respect de la nouvelle loi RGPD

2. L’existant
o La page et ses documents

- PDF pour le détail de la recette (fiche recette)


- PDF pour liste des recettes ave (libelle, prix, marge, TVA, cout) voir ECRAN 1

ÉCRAN 1 (P325 – P39)

1/ Zone 1 :
Actuellement il n’y a pas de boutons permettant l’impression ou
l’export sur cette partie.

2/ Zone 2 :
Le bouton « imprimer » permet d’accéder par une Modal Dialog à la
liste des fonctionnalités concernant une recette + la liste totale des
recettes.

32
Capture état Jasper (fiche recette) PDF

33
CAPTURE ETAT JASPER (LISTE RECETTES) PDF

3. Plan
3.1 Nouvelle structure de la page

Intégration à la zone 1 de Koust :

• D’un bouton icone « réglages » de façon liste déroulante.


• D’un bouton icone : « imprimer » de façon liste déroulante.
• Ajout des fonctions : Gérer les catégories, Export recette, Liste complète.

ÉCRAN 2 (P325 ET P39)

3.2 Sous-menus

Apex ne permet pas de faire des sous-menus par défaut

34
- Recherche plugin
- Développement fonction : dropdown button
- Mise en place de 2 boutons avec des sous-menus

3.3 Création de 2 exports en CSV

2 exports correspondent équivalent aux 2 PDF existants

1 Création de la P320 qui hébergera nos exports CSV et nos requêtes.


a. Appelé de la P325 liste-recettes
b. Appelé de la P39 Recette simple

o Export CSV : Recette simple

Dénomination des champs présents :

|Nom recette |Catégorie| Ingrédient | Quantité | Unité| Nbre portions|


|Sous-recette| Sous ingrédients|

o Export CSV : Liste recettes

Dénomination des champs présents :

|Catégorie |Nom recette |Unité Portions| Prix TTC| Prix HT |TVA | Coût |
Ratio| Marge |

35
4.Modifications du MCD (modèle de données) :
Il ne sera pas nécessaire de modifier la structure des tables pour appeler
nos données.
Nous allons nous appuyer sur les tables présentes et utiliser les requêtes
existantes dans l’édition liste-recettes.jrxml dans Jasper.

Tables

5.Plan de développement :

Liste des étapes :

1. Recherche plugin liste déroulante


2. Install plugin : Contextual Toolbar
3. Essais
4. Verdict : non concluant visuellement
5. Création et positionnement des icônes « Imprimer & Télécharger »
P325 dans le header et redirection vers les « listes recettes » CSV et PDF
(P320)
6. Ajout « Export CSV » (P39) et redirection vers « liste simple » (P320)

P325 et P39: Avant projet :

36
ÉCRAN 4 (P3205ET P39)

P325 et P39 : Après projet :

ÉCRAN 5 (P325 ET 39)

P320 : Stockage de nos exports en CSV, en « HIDDEN » pour l’utilisateur

ÉCRAN 6 (P320)
37
5.1 Création de l’export - Recette simple : CSV

1. Template PDF et requête SQL JASPER : Recette simple

SELECT
p.plat_name,
(select libelle from type_recette where type_recette_id = p.type_recette_id) PLAT_TYPE,
p.PLAT_DESCRIPTION,
p.PLAT_IMAGE,nvl(PORT,1) portion,
nvl(UNITE_PORT,'portion(s)') unite,
to_char(
(select sum(distinct quantity * unit_price/nvl(contenance,1))/nvl(p.port,1) from plat_items aa, demo_product_items ab
where aa.product_id = ab.product_id and ab.unit_price/nvl(ab.contenance,1)=(select min(unit_price/nvl(contenance,1))
from demo_product_items ac where ac.product_id =ab.product_id and ac.valide='Y') and PLAT_ID=p.plat_id)
+
nvl((select sum(distinct SS.quantity * aa.quantity * (ab.unit_price/nvl(ab.contenance,1))/nvl(az.port,1)) from plat az,
plat_items aa, demo_product_items ab, plat_recipe SS
where az.plat_id=aa.plat_id and aa.product_id = ab.product_id and ab.unit_price/nvl(ab.contenance,1)=(select
min(unit_price/nvl(contenance,1))
from demo_product_items ac where ac.product_id =ab.product_id and ac.valide='Y')
and aa.PLAT_ID= SS.ss_plat_id and ss.plat_id= p.plat_id),0)/nvl(p.port,1),'999G999G999G999G990D00')||'€ HT' prix,
to_number(nvl($P{Q_SAISIE},1)) quantite,(select 1 from plat_recipe where plat_id= p.plat_id and rownum=1) sousrecette
FROM
PLAT p
WHERE
p.PLAT_ID = $P{IDPLAT}

1 Nouveau SELECT SQL :


Dénomination des nouveaux champs

NOM| CATEGORIE | DECRIPTION PLAT |PRIX HT|TVA|NBRE


PORTIONS|DLC JOUR|QTE
INGREDIENTS|UNITE|INGREDIENTS|ETAPE|DECRIPTION ETAPE|QTE
SOUS RECETTE|SOUS RECETTE|

SELECT
p.plat_name as NOM,
(select libelle from type_recette where type_recette_id = p.type_recette_id) as CATEGORIE,
p.PLAT_DESCRIPTION as DESCRIPTION_PLAT,
plat_price as PRIX_HT,
nvl(plat_tva,0) *100 ||'%' as TVA,
nvl(port,1)||' '||unite_port as NBRE_PORTIONS,
DLC as DLC_JOUR,
null as QTE_INGREDIENTS,
null as UNITE,
null as INGREDIENT,
null as ETAPE,
null as DESCR_ETAPE,
null as Q_SOUSMENU,
null as SSRECETTE
FROM PLAT p
WHERE p.PLAT_ID = :P39_ID
union
SELECT
p.plat_name as NOM,
NULL as CATEGORIE,
null as DESCRIPTION_PLAT,
null as PRIX_HT,
null as TVA,
null as NBRE_PORTIONS,
null as DLC_JOUR,
pi.quantity as QTE_INGREDIENTS,
di.unite as UNITE,

38
product_name as INGREDIENT ,
null as ETAPE,
null as DESCR_ETAPE,
null as Q_SOUSMENU,
null as SSRECETTE
FROM PLAT p, PLAT_ITEMS pi, demo_product_info di
WHERE p.PLAT_ID = :P39_ID AND p.plat_id = pi.plat_id AND di.product_id = pi.product_id
union
SELECT
p.plat_name as NOM,
NULL as CATEGORIE,
null as DESCRIPTION_PLAT,
null as PRIX_HT,
null as TVA,
null as NBRE_PORTIONS,
null as DLC_JOUR,
null as QTE_INGREDIENTS,
null as UNITE,
null as INGREDIENT,
etape_plat as ETAPE,
etape_description as DESCR_ETAPE,
null as Q_SOUSMENU,
null as SSRECETTE
FROM PLAT p, PLAT_ETAPE pe
WHERE p.PLAT_ID = :P39_ID AND p.plat_id = pe.plat_id
UNION
SELECT
p.plat_name as NOM,
NULL as CATEGORIE,
null as DESCRIPTION_PLAT,
null as PRIX_HT,
null as TVA,
null as NBRE_PORTIONS,
null as DLC_JOUR,
null as QTE_INGREDIENTS,
null as UNITE,
null as INGREDIENT ,
null as ETAPE,
null as DESCR_ETAPE,
quantity as Q_SOUSMENU,
( select plat_name from PLAT where plat_id = ss_plat_id ) as SSRECETTE
FROM PLAT_RECIPE pr, PLAT p
WHERE p.PLAT_ID = :P39_ID AND p.plat_id = pr.plat_id

order by nbre_portions,ingredient,etape

5.2 Création de l’export - Liste recettes : CSV

Template PDF et requête SQL JASPER : liste-recettes

2. Dénomination des nouveaux champs : Nom | Prix TTC | Coût | Marge


3. Le select

SELECT PLAT_NAME
as NOM_RECETTE,
(select libelle from type_recette where type_recette_id=p.type_recette_id)
as CATEGORIE,
PLAT_PRICE
as PRIX_TTC,

round(nvl((select sum(distinct quantity * unit_price/nvl(contenance,1))/nvl(p.port,1) from


plat_items aa, demo_product_items ab
where aa.product_id = ab.product_id and ab.unit_price/nvl(ab.contenance,1)=(select
min(unit_price/nvl(contenance,1))
from demo_product_items ac where ac.product_id =ab.product_id and ac.valide='Y') and
PLAT_ID=p.plat_id),0),3)
39
+
round(nvl((select sum(distinct SS.quantity * aa.quantity *
(ab.unit_price/nvl(ab.contenance,1))/nvl(az.port,1))
from plat az, plat_items aa, demo_product_items ab, plat_recipe SS
where az.plat_id=aa.plat_id and aa.product_id = ab.product_id and
ab.unit_price/nvl(ab.contenance,1)=(select min(unit_price/nvl(contenance,1))
from demo_product_items ac where ac.product_id =ab.product_id and ac.valide='Y')
and aa.PLAT_ID= SS.ss_plat_id and ss.plat_id= p.plat_id),0)/nvl(p.port,1),3)

as PRIX_REVIENT,
port||' '||unite_port nombre_portion_avec_unite,
nvl(plat_tva,0) * 100 ||'%'
as TVA,
DLC
FROM PLAT p
WHERE GROUPID = :USER_GROUPID
ORDER BY CATEGORIE, NOM_RECETTE

5.3 Créer les boutons

Avec Express : Choix de l’icône CSS classe « fa-print » et « fa-


download » ( partie « FRONT » )

5.4 Enchainements des pages et résultats

P325 et P39 ( Modal Dialog )

Choix des options Imprimer ou Exporter via les icônes pour « liste
recettes »
Choix de l’option Export CSV pour « fiche recette » via la modal page

40
ÉCRAN 7 (P325 ET P320)

Export liste recettes CSV:

41
Export fiche recette CSV:

42
5.1 Projet planning de production

Projet
PLANNING DE
PRODUCTION

Sommaire
NOUVELLES FONCTIONNALITES ______________________________ 44
QUELS SONT LES BESOINS ___________________________________________ 44
L’EXISTANT ______________________________________________ 44
La page et ses documents ______________________________________ 44
PLAN ___________________________________________________ 47
1/ NOUVELLE STRUCTURE DE LA PAGE ___________________________________ 47
MODIFICATIONS DU MCD (MODELE DE DONNEES) : _______________ 48
PLAN DE DEVELOPPEMENT : _________________________________ 49
1/ PRINCIPES DE PRECAUTIONS _______________________________________ 49
2/ CREATION DU BOUTON « IMPRIMER » ET SUPPRESSION DU LIEN « PDF » EN BAS DE
PAGE (P.900) ___________________________________________________ 49
Création du bouton « imprimer » P.900 ____________________________ 49
Suppression de l’attribut PDF en bas de P.900 _______________________ 50
P.900 : Résultat après projet ____________________________________ 50
3/ CREATION D’UN BOUTON « COMMANDER » ET DE SA REQUETE PL/SQL (P.901) ___ 51
_____________________________________________________________ 51
La contrainte ici est de pouvoir utiliser le bouton « Commander » en UPDATE
et en CREATE ________________________________________________ 51
La requête en base sera effectuée pour les 2 cas, dans la partie Processing :
___________________________________________________________ 51
ENCHAINEMENTS DES PAGES ET RESULTATS _______________________________ 52
_____________________________________________________________ 52
Les états : ___________________________________________________ 53
_____________________________________________________________ 53
LA GENERATION DES COMMANDES : ___________________________________ 53

43
1 Nouvelles fonctionnalités
Koust au départ a été développé pour la gestion de restaurants
indépendants. Grâce à sa popularité, des chaines de restaurants se sont
intéressées à l’application et le mode de fonctionnement de Koust a dû
être adapté. La partie législative a également dû être prise en compte
avec la nouvelle loi RGPD.

1.1 Quels sont les besoins


Au quotidien Koust réfléchit à une utilisation plus intuitive de l’utilisateur.

• Ajout d’un bouton « Commander » P.901


• Créer les commandes sur le planning
• Générer les commandes vers Commande - Facture
• Un export du planning > pour la sauvegarde en CSV ou l’impression en
PDF P.900
• Créer un nouveau modèle pour le calendrier de production, JASPER

2 L’existant
o La page et ses documents

P.900 :
- Deux boutons CSV & PDF
- Planning PDF d’origine d’Apex Builder
- Un export planning vers CSV

P.901 :
- Une modal page permettant le Create ou Update de recettes

44
ÉCRAN 1 (P900 – P901)

45
Le PDF d’origine :

CAPTURE ETAT PLANNING (PAR DEFAUT) PDF

46
3 Plan
Nouvelle structure de la page

Intégration à la P.900 de Koust :

• D’un bouton icône « imprimer » à gauche de « Ajouter recette planning ».


• D’un nouveau Planning de production PDF via JASPER.
• Suppression du lien PDF en bas de page.

ÉCRAN 2 (P900)

Intégration à la P.901 de Koust :

• D’un bouton « Commander »


• D’une requête PL/SQL et d’un Flag commande

47
4Modifications du MCD (modèle de données) :
Il ne sera pas nécessaire de modifier la structure des tables pour appeler
nos données.
Nous allons nous appuyer sur les tables et les variables présentes sur la
page.

Tables

48
4 Plan de développement :

Liste d’étapes :

5 Principes de précautions
6 Création du bouton « Imprimer » et Suppression du lien « PDF » en bas
de page (P.900)
7 Création d’un bouton « Commander » et de sa requête PL/SQL (P.901)

5.1 Principes de précautions

Nous allons définir un « Server-Side Condition » afin que notre


développement ne soit pas vu de tous les utilisateurs.
Pour cela utilisons une requête SQL de type « No Row Returns »

Select 1 FROM dual WHERE Groupid = 1

5.2 Création du bouton « Imprimer » et Suppression du lien


« PDF » en bas de page (P.900)

o Création du bouton « imprimer » P.900

Avec Express : Choix de l’icône CSS classe « fa-print » (partie « FRONT »


)

Création d’une Dynamic Action :

- La Dynamic Action permet l’utilisation de code JavaScript sur le bouton


« Imprimer »

ÉCRAN 4 (P3205ET P39)

49
o Suppression de l’attribut PDF en bas de P.900

Modification des attributs du type calendar :

o P.900 : Résultat après projet

ÉCRAN 5 (P325 ET 39)

50
5.3 Création d’un bouton « Commander » et de sa requête
PL/SQL (P.901)

o La contrainte ici est de pouvoir utiliser le bouton


« Commander » en UPDATE et en CREATE
Cette possibilité sera assurée par la fonction Server-Side
Condition et par la création de 2 boutons sur Apex Builder:

o La requête en base sera effectuée pour les 2 cas, dans la


partie Processing :

L’état de la commande est déterminé par la colonne Flag de la Table


GESPRO, lors de la requête.

51
5.4 Enchainements des pages et résultats

52
o Les états :

- Bleu : Date passée


- Orange : A commander
- Vert : Commandé

5.5 La génération des commandes :

53

Vous aimerez peut-être aussi