Stock application report addition

This commit is contained in:
guillaume-renaud 2017-01-11 15:26:54 +01:00 committed by Skia
parent 9083dfb224
commit 2ed566b75c
1 changed files with 73 additions and 4 deletions

View File

@ -60,6 +60,13 @@ Lo-J (Guillaume Renaud)}
\tableofcontents
\chapter{Remerciements}
\section{Lo-J (Guillaume RENAUD)}
\par Je remercie tout dabord Monsieur Frédéric Lassabe qui nous a permis deffectuer cette TO52 lors de notre cursus à lUTBM, nous permettant ainsi de mêler nôtre travail scolaire à nôtre envie de participer à lamélioration de la vie associative de lUTBM.
\par Je tiens aussi à remercier Florent Jacquet qui ma aidé tout au long de ce travail et à qui jai pu poser mes différentes questions pour apprendre et comprendre plus rapidement que si javais été seul.
\chapter{Introduction}
\chapter{Eboutic}
@ -139,12 +146,62 @@ Lo-J (Guillaume Renaud)}
\chapter{Les stocks}
\label{sub:les_stocks}
\par Développeur principal: Lo-J
\par Cette application soccupe de la gestion des stocks des comptoirs de type « BAR ». Elle permet de suivre les quantités restantes afin de pouvoir déterminer de manière automatisée quels sont les produits quil faut acheter et en quelle quantité.
\section{But}
\label{sec:but}
\section{Liste des modèles}
\label{sec:liste_des_modeles}
\section{Principaux problèmes}
\label{sec:principaux_problemes}
\subsection{Stock}
\par Un Stock possède un nom et est lié à la classe Counter. Ainsi, chaque Comptoir peut avoir son propre Stock.
\subsection{StockItem}
\par Un StockItem possède un nom, une quantité unitaire, une quantité effective, une quantité minimale et est lié à la classe Stock ainsi quà la classe ProductType. De cette manière, chaque élément appartient à un Stock et il est catégorisé de la même manière que les Products (qui sont les objets utilisés pour la vente dans les comptoirs).
\subsection{ShoppingList}
\par Une ShoppingList possède un nom, une date, un booléen (fait ou à faire), un commentaire et est liée à un Stock. Chaque ShoppingList est donc liée à un Stock ce qui permet davoir des listes de courses spécifique à chaque comptoir.
\subsection{ShoppingListItem}
\par Un ShoppingListItem possède un nom, une quantité demandée, une quantité achetée et est lié à la classe StockItem, à la classe ShoppingList et à la classe ProductType. Cela permet de pouvoir faire plusieurs listes de courses différentes en même temps et den garder un historique.
\section{Fonctionnement}
\label{sec:fonctionnement}
\par Au départ, si le comptoir de type « BAR » na pas de stock, la seule chose quil est possible de faire est den créer un. Ensuite, il va falloir créer les objets StockItem en indiquant pour chacun les quantités quil y a dans le stock.
\par De plus, la personne (généralement le Responsable du lieu de vie) qui aura la responsabilité dinformatiser les stocks devra aussi définir la quantité unitaire, effective et minimale.
\par Par exemple, les Cheeseburger vendus aux différents comptoirs sont achetés par boite de 6, la quantité unitaire sera donc 6, la quantité effective correspondra au nombre de boites restantes dans le stock (cest à dire dans la réserve du lieu de vie, une boite sortie du stock est considérée comme consommée) et enfin, la quantité minimale servira de valeur seuil.
\par Une fois létat de la réserve retranscrit dans le site, il reste encore gérer les stocks de manière quotidienne. Pour ce faire, lapplication se décompose en 3 parties :
\begin{itemize}
\item Création automatique des listes de courses
\item Approvisionnement du stock
\item Prise déléments dans le stock
\end{itemize}
\par Lorsque lon accède à la partie qui soccupe de la gestion des listes de courses, il y a un bouton permettant de créer une liste de courses en fonction de létat des stocks à cet instant, puis un premier tableau contenant les listes de courses quil faut faire et enfin un second tableau servant dhistorique des listes de courses déjà effectuées.
\par Pour chaque liste de course ainsi créée, quelle soit « faite » ou « à faire », il est possible de cliquer sur son nom pour voir le détail de ce quelle comprend.
\subsection{Création automatique des listes de courses}
\par En cliquant sur le bouton permettant de créer une nouvelle liste de courses, il faut remplir un formulaire. Les informations à donner dans ce formulaire sont le nom de la liste de course (par exemple, une liste spéciale pour Leclerc), ensuite, apparaissent tous les StockItem ayant une quantité effective inférieure au seuil fixé par leur quantité minimale. Il faut donc donner pour chacun de ces éléments une quantité à acheter. Enfin, un dernier champ de commentaire peut être compléter, il sert à demander lachat déléments qui napparaissent pas dans le Stock, par exemple, des couteaux, fourchettes ou encore tasses …
\par Lors de la validation de ce formulaire, la liste de courses est créée et est ajoutée au tableau contenant les listes de courses à faire.
\subsection{Approvisionnement du stock}
\par Au retour des courses, il faut ranger les produits achetés dans la réserve. À ce moment-là, il faut aussi mettre à jour le stock. Une opération « Mettre à jour le stock » est disponible pour chaque liste de courses du tableau « À faire ».
\par En effectuant cette action, il va falloir indiquer les quantités effectivement achetées. En effet, les quantités demandées ne sont pas forcément celles achetées, cest donc les quantités effectives quil faut ajouter au stock. Une fois ce formulaire validé, la liste de couses passera de létat « à faire » à létat « faite ».
\subsection{Prise déléments dans le stock}
\par La réserve étant accessible aux barmen afin quils puissent réapprovisionner les réfrigérateurs à tout moment, linterface permettant de prendre des éléments dans le stock a été ajoutée dans les onglets de linterface des ventes (là où le barman inscrit le code du compte du client qui souhaite commander quelque chose). Ainsi, en revenant de la réserve, le barman doit indiquer le nombre de chaque produit quil a rapporté.
\par Dans un souci de simplicité pour le gérant du lieu de vie, ce formulaire de prise des éléments dans le stock est aussi accessible depuis son interface de gestion.
\section{Améliorations à apporter}
\label{sec:amelioration_a_apporter}
\begin{itemize}
\item Il nest pas encore possible de modifier les quantités demandées pour un ou plusieurs des produits dune liste de course. Il faudrait rendre cela possible car actuellement, il faut supprimer la liste de courses et la refaire en changeant les quantités souhaitées.
\item Il faudrait améliorer la manière dont on ajoute les éléments non définis en tant que StockItem dans la liste de course. Un objet ShoppingListItem avec une référence « Null » vers la classe StockItem pourrait être créé à la place de compléter le champ de commentaires.
\item Dans les améliorations sur le long terme, il faudrait que la décrémentation des quantités de chaque élément dans le stock soit automatique. En repensant une partie de larchitecture de lapplication, on pourrait faire en sorte que chaque vente faite au comptoir face diminuer les quantités restantes (cela remplacerait le formulaire de « Prise déléments dans le stock », mais cela ne serait pas applicable à tous les produits mis en vente. Par exemple, pour les cacahuètes que nous vendons au bol et non par paquet)
\item Avec le système de notifications qui a été mis en place sur le site, on pourrait faire en sorte que le ou les responsables des lieux de vie reçoivent une notification lorsque la liste de courses contient plus de 5 éléments
\end{itemize}
\chapter{La laverie}
@ -211,7 +268,19 @@ et de gestion des permissions sur les différentes branches.
\section{Lo-J}
\label{sec:lo_j}
\par Je suis très heureux davoir pu participer à ce projet de TO52 sur le développement de modules sur le site de lAssociation des Étudiants. Jai pu apprendre à travailler avec un nouvel environnement informatique tout en contribuant au développement doutils pour lassociation dont je suis Président, le Bureau des Festivités.
\subsection{Django}
\par Ayant déjà travaillé avec le framework Spring et Java durant mon stage ST40, jai pu mappuyer sur des notions générales afin dapprendre et de comprendre le fonctionnement du Python et de Django que je ne connaissais pas du tout.
\par Mon apprentissage a été assez long au départ, car il y avait beaucoup dinformations à intégrer. Django est un framework très pratique qui permet deffectuer de nombreuses tâches assez rébarbatives de manière automatique certes, mais encore faut-il comprendre ce quil se passe en arrière-plan. Cest cet apprentissage qui ma pris le plus de temps.
\par Mon deuxième point de difficulté a été les formulaires. Là encore, Django est très pratique dès lors quil sagit de faire un formulaire avec tous les champs dun même Model. Cependant, il ma fallu de laide et du temps pour comprendre comment faire pour ajouter dautres champs en plus de ceux du Model au formulaire et pour comprendre comment récupérer les valeurs associées à chacun deux.
\subsection{Git}
\par Jai eu aussi à apprendre le fonctionnement de Git que javais déjà pu manipuler quelque peu mais il me manquait quand même beaucoup déléments.
\par Aujourdhui, je pense pouvoir dire que jai progressé dans ce domaine mais il me reste encore bien des choses à apprendre pour être capable de lutiliser de manière efficace.
\end{document}