Module Stock (developer)

= Feature =

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.

= Entity Warehouse =

= 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