Module Stock (developer)
Stock | |
---|---|
Numero/ID of module | 52 |
User doc. of module | Module Stock |
Developer doc. of module | This page |
Feature
The stock module manages a list of warehouses (or any other "container") and list at any time, list and quantity of the products it contains. When a product is delivered, the choice of the source warehouse is realized and the quantity is automatically decremented. It is possible to adjust the content of these warehouses after inventory.
The inventory module is configurable in the administration of Dolibarr to choose if the decrement of stock is during the delivery of a shipment, invoicing or ordering.
The management of stock in this way do not, in the present state, increment the stock on the supplier delivery.
Entity Warehouse
The PHP class to use to manipulate such object is file htdocs/product/stock/class/entrepot.class.php.
It contains CRUD methods to create (C), read (R), update (U) and delete (D) this object.
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
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)