US_4_stock - MMichotte/SLG_APP GitHub Wiki
En tant qu'utilisateur j'aimerais avoir un onglet
Stock
afin de pouvoir y gérer tout ce qui concerne mes articles.
-
Technique :
- Une barre de navigation doit être implémentée.
-
Logique :
- /
En tant qu'utilisateur j'aimerais pouvoir consulter une liste des articles dans mon stock sous forme d'un tableau afin d'avoir un résumé des informations de chaque article.
-
Technique :
- table
Product
doit exister
- table
-
Logique :
- /
Quand l'utilisateur clique sur l'onglet Stock
de la barre des menus, une requête GET
est envoyée à l'API afin de récupérer les 25 premiers produits:
method : GET
url : /api/products?show=0-24
En attendant la réponse du serveur, la page est chargée avec :
- la structure du tableau (les headers)
- un spinner à la place des données
✅ Si la requête abouti avec succès: les données sont chargées dans le tableau
❌ Si la requête échoue: un message d'erreur est affiché
S'il existe plus de 25 produits, des petites flèches en dessous du tableau permettent de charger les 25 produits suivants et ensuite remplacer les lignes du tableau existant par les "nouveaux" produits. Un compteur se trouvant à gauche des deux flêches permet de savoir la plage de produits actuellement affichée.
exemple :
- Un utilisateur peut consulter une table reprenant tous les produits, chaque ligne de la table correspond à un produit.
- Si aucun produit existe, l'utilisateur voit un message indiquant qu'aucun produit n'a été trouvée et ce à la place du contenu de la table.
En tant qu'utilisateur j'aimerais pouvoir ajouter un nouvel article afin pouvoir agrandir mon inventaire.
-
Technique :
- table
Product
doit exister
- table
-
Logique :
- /
Quand l'utilisateur clique sur le bouton new article
un formulaire contenant les champs ci-dessous s'ouvre :
- référence article:
Text
required
- désignation:
Text
required
- dernier prix d'achat (HT):
Number
- prix vente (HT):
Number
- prix vente (TTC):
Number
- marge:
Number
- Quantité stock:
Number
- Quantité réservée:
Number
- Quantité disponible:
Number
- Note:
Text
- Add :
Button
- Cancel :
Button
Tous les champs de type Number
sont initialisé à 0 par défaut.
A noter que l'utilisateur peut soit encoder le prix d'achat HT ainsi que le prix de vente HT afin que la marge soit calculée, soit encoder le prix d'achat HT ainsi que la marge afin que le prix de vente HT soit calculé.
Quand l'utilisateur clique sur le bouton Add une requête POST
est envoyé à l'API afin de tenter d'ajouter l'article au stock :
method : POST
url : /api/products
body :
{
"reference": "...ref...",
"name": "...designation...",
"purchase_price_HT": 0,
"sale_price_HT": 0,
"sale_price_TTC": 0,
"quantity": 0,
"note": "...note..."
}
✅ Si aucun produit n'existe avec la même référence alors:
- L'article est ajouté dans la base de données.
- Un message de couleur vert indiquant la réussite de l'ajout apparaît sous les boutons.
- Après une courte durée (1-2sec) le formulaire est fermé.
❌ Si l'article existe déjà ou si une autre erreur survient:
- L'article n'est pas ajouté dans la base de données!
- un message d'erreur de couleur rouge spécifiant le problème, apparaÎt sous les boutons.
- Un utilisateur peut ajouter un nouvel article avec au minimum un numéro de référence et un nom.
- Un article ne peut être ajouté s'il existe déjà.
En tant qu'utilisateur j'aimerais pouvoir cliquer sur un article afin de pouvoir consulter et modifier toutes ses informations.
- Modifier manuellement la quantité d'un article implique d'ajouter une facture fictive uniquement dans le tableau d'entrées/sorties.
En tant qu'utilisateur j'aimerais pouvoir consulter toutes les fiches de travail contenant cet article. Éléments devant apparaître dans la synthèse:
- ???#TODO
En tant qu'utilisateur j'aimerais pouvoir consulter un récapitulatif des entrées/sorties de stock de cet article.
Pour chaque ligne, les éléments suivant doivent apparaître:
- Quantité (+ ou - en fonction de si c'est une entrée ou une sortie)
- n° de la facture (client ou fournisseur) associée
- Prix d'achat/vente
- Date de l'ajout
En tant qu'utilisateur j'aimerais pouvoir rechercher un article sur base de critères tel que le nom de le référence de l'article ou sa désignation afin de pouvoir retrouver plus facilement un article en particulier.
En tant qu'utilisateur j'aimerais pouvoir calculer la valeur de mon stock à tout moment afin de de connaître la valeur de celui-ci.
En tant qu'utilisateur j'aimerais pouvoir supprimer un article de manière définitive afin de ne pas encombrer la liste des articles avec des articles dont je n'ai plus besoin de garder une trâce ou qui n'existent plus.