Module Stock (développeur)
Stock | |
---|---|
Numéro/ID du module | 52 |
Doc utilisateur du module | Module Stock |
Doc développeur du module | Cette page |
Fonction
Le module stock permet de gérer une liste d'entrepôts (ou tout autre "contenant") et de répertorier, à tout moment, la liste et quantité des produits qu'il contient. Quand un produit est livré, le choix de l'entrepôt source est réalisé est la quantité est automatiquement décrémentée. Il est possible de réajuster le contenu de ces entrepôts suite à des inventaires.
Le module stock est paramétrable dans l'administration de Dolibarr pour choisir si la décrémentation du stock se fait à la livraison d'une expédition, à la facturation ou à la commande.
La gestion du stock de cette façon ne permet pas, à l'état actuel, d'incrémenter le stock sur une livraison fournisseur.
Entité Entrepot
La classe PHP pour manipuler ces objets est le fichier htdocs/product/stock/class/entrepot.class.php.
Elle contient les méthodes principales CRUD pour créer (C), lire (R), mettre à jour (U) et effacer (D) un enregistrement.
Implémentation
Expéditions
La modification du stock sur expédition se fait dans le script htdocs/expedition/commandes.php et utilise la classe expedition.class.php (méthode valid()). La vérification avant modification du stock se fait comme suit:
if ($conf->stock->enabled && $this->entrepot_id && $conf->global->STOCK_CALCULATE_ON_SHIPMENT == 1)
Commandes/Livraison
Lorsque l'option d'incrémenter le stock sur commandes est activée, du côté des commandes fournisseurs, c'est la classe htdocs/fourn/fournisseur.commande.class.php qui prend en charge l'incrémentation du stock au travers de sa méthode DispatchProduct(). L'activation de cette commande n'est possible qu'à l'état 3 et 4 de la commande fournisseur, ce qui veut dire qu'il ne faut pas rater son coup au moment d'encoder la commande. Une fois la commande "envoyée", il est possible de placer les produits dans le stock en cliquant sur l'onglet Dispatch (Ventilation).
Améliorations possibles
La gestion du stock devrait pouvoir incorporer une intégration des livraisons fournisseurs directement dans un stock au choix. De même, une livraison d'un produit composé de plusieurs sous-produits devrait pouvoir être intégrée au stock sous forme des différents constituants plutôt que du tout. Cette intégration peut être faite de façon simple en ajoutant un checkbox dans fourn/commande/dispatch.php, une méthode donnant la liste détaillée des composants d'un produit (incluant les quantités), et une nouvelle méthode commandeFournisseur::DispatchProductAsComponents() qui va chercher la liste des enfants et les place un à un dans le stock.
Permissions
Tables SQL
- Table llx_entrepot Contient la liste des entrepots
- Table llx_stock_mouvement Contient l'historique des mouvements de stock (entrée ou sortie)