Bonjour.
Pour les stocks et ta question Faut-il avoir un champ stock courant, la répons est "ça dépend".
Ma première réponse est "Non", il te suffit d'une table des mouvements de stock et de faire la somme des entrées moins les sorties à une date données pour obtenir le résultat.
Cette solution est la meilleur car il est fortement recommandé de NE PAS ENREGISTRER le résultat d'un calcul dans une table.
Une fois enregistré, ce résultat est "gelé" et si tu changes les termes qui y ont mené, lui ne bouge pas. Tu peux donc assez facilement obtenir des incohérences.
Maintenant, ce calcul (à chaque fois) peut prendre un temps non négligeable et paraître. Dans ce cas là, il faut malheureusement se résoudre à enregistrer le résultat et s'assurer que si il y a des modifs en amont, il soit ajusté en conséquence.
Si tu as peu de mouvements, commence par la 1ère solution qui est BEAUCOUP plus simple à mettre en œuvre.
Pour la table des mouvements, je te recommande de ne pas avoir un champ pour les entrées et champ pour les sorties mais un champ "quantité" et un champ "SensVariation" ou "TypeMouvement".
tblMouvemnet
ClefMouvement
DateMouvement
QteMouvement
PoidsMouvment
SensMouvement (+/-) ou TypeMouvement
Le type Mouvement pourrait être :
- Entrée (+Qte)
- Vente (-Qte)
- Perte (-Qte)
- Perte sur stock (-Qte) (ou alors un nouveau stock initial avec une nouvelle date mais il faut faire attention lors des cumuls), Genre je croyais en avoir 10 mais il n'en reste plus que 5, perte sur stock -5
- Gain sur stock (+Qte) (ou alors un nouveau stock initial avec une nouvelle date mais il faut faire attention lors des cumuls), Genre je croyais en avoir 15 mais en reste 35, gain sur stock +20
- Stock Initial (+Qte)
Après tu peux utiliser une requête de regroupement pour avoir le total des mouvements à une date donnée.
Pour présenter un résulat tel que celui-ci :
Réf(Produit) | Qtité Initiale | Qtité Entrée | Qtité Sortie | Qtité Actuelle |
Il te faut :
- une requête qui te donne le total initial (somme des mouvements < AAAA-01-01) par article.
- une requête qui te donne les entrées (somme des mouvements >= AAAA-01-01 et <= AAAA-12-31 et ce qui correspond à une entrée) par article.
- une requête qui te donne les sorties (somme des mouvements >= AAAA-01-01 et <= AAAA-12-31 et ce qui correspond à une sortie) par article.
- une requête qui te donne les entrées et les sorties (somme des mouvements >= AAAA-01-01 et <= AAAA-12-31) par article.
- et une requête qui va te présenter le résultat, basé sur ta table des articles en jointure (à gauche, sur la référence de l'article) avec les 4 autres décrites précédemment.
On est obligé d'ajouter celle-ci car il se pourrait qu'il y ai des articles sans mouvement de stock (ex : des articles que tu ne tiens pas habituellement en inventaire mais que tu pourrais vendre à la demande expresse du client).
A+
Partager