Gérer les réassorts automatiquement

Bonjour,

Je suis en train de mettre en place dolibarr pour une mini gestion de production.
Il y a quelques contraintes qui, je pense pour l’essentiel, sont prises en charge nativement. En revanche, certaines d’entre elles manquent cruellement, ou alors je ne les ai pas trouvé dans la configuration des modules.

- Localisation des produits et bon de préparation
Si l’on gère la notion d’entrepôt en partant du principe qu’il n’y a qu’un seul entrepôt réel, mais que l’on considère chaque lieu du stock (étagère, rack, position, etc…) comme un entrepôt / lieu de stockage au sens de Dolibarr, lorsque l’on génère la commande client, il serait intéressant de générer de la même manière un bon de préparation qui liste les produits à livrer avec leur localisation dans le stock. On peut bien entendu chercher produit par produit, mais ce serait infiniment plus direct si depuis la commande client cela permettait de sortir directement la liste « localisée ».
Cela pourrait revenir à détourner le bordereau d’expédition (pdf) de manière à modifier les colonnes affichées et ajouter la variable « Entrepôt ».
il conviendrait de passer par la modification du modèle ?

- Gestion améliorée des stocks mini/désiré
Lorsque l’on enregistre une commande client, j’ai choisi de décrémenter les stocks lors de la validation de celle-ci. de la sorte, les produits sont considérés comme étant réservés en quelque sorte. Maintenant, si la commande du client provoque le passage d’une référence en dessous du stock mini ou du stock désiré, nous avons bien l’alerte visuelle mais c’est, j’avoue, très facile de louper.
Je pense comprendre que dans certains cas, il pourrait être dangereux de générer automatiquement une commande fournisseur, soit.
Quoi que, dès l’instant où une commande fournisseur doit être validée pour être réellement lancée, cela limite le risque !
En revanche, serait-il possible au moins de générer automatiquement une alerte par mail à un contact donné pour l’informer du franchissement ? Ou encore mieux, planifier un envoi quotidien ou hebdomadaire de la liste des produits en réassort ?

Je suis ouvert à l’achat de modules existants ou à un développement spécifique, si le prix reste raisonnable :happy:

Merci beaucoup,
Pierre

Bonjour Pierre,

Pour les modules vous pouvez regarder du côté des modules de DEFRANCE pour ce qui concerne les appros.

Par contre je suis surpris que vous décrémetiez vos stocks à la commande. Avez-vous pensé aux incidences lors de votre inventaires avec les commandes non expédiées à la date de l’inventaire ou tout simplement (si c’est votre cas) aux commandes avec une date de livraison +/- lointaines ?

En fait il vous faudrait une notion de stock physique et un stock dispo à la vente sachant que le réassort auto se base sur le stock dispo

Bonjour Stef,

En fait, le système est mis en place pour gérer un stock intermédiaire de produits ultra standards qui doivent toujours être tenus en stock et on souhaite totalement séparer cette ligne de produits. Pour notre cas, une réappro reviendra à une commande interne (fournisseur = nous-même qui fabriquons les produits).

En fait, la gestion de prod actuelle est gérée sous Sage mais c’est une usine à gaz totalement inadaptée à notre souhait de séparer cette petite activité de vente directe très particulière d’une 100aine de références qui doivent toujours être tenues en stock quoi qu’il arrive. Alors que sous Sage, nous ne gérons pas de stock, la production est lancée à la commande et sert à alimenter les points de vente en boutique (les boutiques nous font des commandes internes en fonction de leurs besoins prévisionnels. Pour diverses raisons, la gestion rigoureuse de ce mini stock de 100 ref est prioritaire devant la prod des quelques 30.000 ref qui sont effectivement en fabrication à la commande.

Le stock est considéré décrémenté lors de l’enregistrement de la commande client car il est important qu’une commande client soit honorée de suite (expédiée également), et que les produits commandés par le client déclenchent un réassort quasi automatique (en fonction toutefois du stock mini/désiré).
Il faut donc que l’on arrive à gérer efficacement les réappro « internes », au plus serré, et sans pour autant tenir un stock trop important. En gros, on doit se débrouiller pour qu’une commande client soit livrable aussitôt, et ce sans interférer avec la gestion de prod en amont : ce stock de 100 ref doit être en quelque sorte isolé du reste.

Je suis assez d’accord ceci dit, avec la différenciation possible entre le stock dispo et le stock disponible à la vente, mais pas certain que ce soit justifié compte tenu du délai le plus court possible entre l’enregistrement de la commande et son expédition.

Je ne sais pas si je suis très clair…
Par rapport au besoin, à quels modules de DEFRANCE penses-tu ?

Bienvenue sur Dolibarr je suis content de lire quelqu un avec de gros projets / bonnes idees clairement enoncees! En esperant que Defrance avec le module ReStock te lise, je te conseille d acheter et tester ce module direct car tu peux filrrer les produits a resticker par categorie ET/OU fournisseur selon les devis/commandes/factures en cours :wink: les selectionner en renseignant les qtes et lancer la commande.

Pour le module de localisation ce serait genial mais qu il soit dans le core de Doli direct. Je crois que ATM consulting bosse dessus et Defrance a qque chose en brouillon egalement :wink: mais avant qu ils soient mis dans le core…

Tu n as pas aussi un pblm de gestion des conditionnements toi ?

Pierre

Hehe Bienvenue dans le monde de la Logistique

Pour le module de Defrance :
regarde ici
Par expérience, je ne pense pas qu’il faille jouer sur les notion de stock mini (generalement stock de securité). Il y a souvent débat dans la communauté des logisticiens mais je suis de ceux qui pensent que le stock mini est la pour pouvoir gérer les aleas de la demande.

Dans ton cas vu que ces 100 produits semblent stratégiques pour l’entreprise je travaillerai sur une notion de stock dans le stock (SiS).
Il faut definir la quantité du produit a mettre en SiS et tu arrives sur une formule de calcul de stock dispo :
Stock Physique - SiS-commande Client* - besoin prod = Stock Dispo
Commande
Ensuite on utilise le stock dispo comme base de calcul pour les réappros en tenant compte du stock mini, stock max, délai de réappro frs, moq, …

Ce n’est qu’une piste car je n’ai pas la vue sur vos processus.

Dans les dernières versions de dolibarr il Y a 2 limites de stock :
- stock mini
- stock souhaité

Comme c’est une fonctionnalité récente, restock ne prend pas en compte la valeur souhaiter pour déterminer les quantités de produits à commander
Par contre il est fort probable que d’ici peu, il soit possible de paramétrer le choix entre les deux pour le calcul de détermination des quantités à commander… (en tous cas c’est noté sur ma wish-list)

Edit : @hubz, je doute que localise soit un jour intégré dans le core de dolibarr car les problématiques de localisation de matériel dans un entrepot est quelque chose de trop spécifique … il n’empêche que en fonction des sponsorts qui financent certains de mes développements, je peu proposer ce type de module à un prix le plus modeste possible.

Merci à tous les trois pour vos réponses :happy:

@ Defrance : il est fort probable que la notion de localisation soit souvent spécifique et puisse être vue au cas par cas, en revanche je ne pense pas qu’il soit trop compliqué (mais je ne suis pas développeur !) d’afficher sur le bon de commande client (qui serait détourné en bon de préparation interne) le nom de l’entrepôt duquel dépend le produit.
Ainsi, on peut définir un entrepôt par lieu de stock (Entrepôt A-2-8 = Rack A, étagère 2, boite 8, etc…) et indiquer sur le bon de commande en face ou en dessous de la ref produit ce lieu A-2-8.
Et si dans la fiche produit, produit qui peut théoriquement être rangé dans plusieurs entrepôts, on a un champ de type « entrepôt par défaut », alors faire en sorte que lors de la ventilation en stock, cet entrepôt par défaut soit proposé en premier. De la sorte, lorsque le magasinier ventile ses produits, il sait directement dans quelle boite il doit ranger celui-ci.
Autrement, il est vrai que l’on peut détourner le problème en ajoutant ce lieu de stockage dans le libellé du produit…
Tout cela, c’est du dev, c’est certain. Mais je suis ouvert à une participation ou à un développement spécifique juste pour nous.

@ tous : revenant sur la notion d’alerte mail sur stock mini atteint, dans le module Notifications on peut apparemment recevoir une notification mail lors de différentes étapes du process (validation commande client, approbation commande fournisseur, refus commande fournisseur, validation expédition). Alors pourquoi pas ajouter un code correspondant à Alerte stock mini ? Il y a bien une détection de cette limite puisque le pictogramme est affiché, donc ce serait franchement super que l’on ait la possibilité d’envoyer automatiquement un mail avec la référence du produit en défaut.
Je suis d’ailleurs surpris qu’il n’y ait pas plus de bruit autour de ce sujet.
Autre option, qui touche plus à du graphisme qu’à du core, faire en sorte que lorsqu’il y a un produit en souffrance alors un encart reste affiché sur toutes les pages quoi qu’il arrive, tant qu’on a pas lancé une commande de réassort ou que l’on a pas volontairement quittancé dans un menu bien spécifique. Mais à mon avis c’est plus ardu.

Enfin je donne des idées… :happy:

Merci pour ces remarques,
Dans ma vision de la chose, c’est plus lors de la préparation de l’expédition que je ferais apparaître l’information de localisation car c’est alors que l’on a sélectionné l’entrepôt d’expédition.
L’idée de créer une édition d’une liste de rangement est très bonne je la note aussi
Pour ce qui est de l’enregistrement du lieu de stockage, il est plus logique pour le moment d’ajouter un simple champ supplémentaire pour définir l’emplacement mais dans ce cas on ne peu travailler qu’avec un seul entrepot (ou avoir un champ par entrepot).

Pour ce qui est des alertes sur stock, je travail sur une messagebox d’alerte directement sur la page d’accueil,.
Pour le moment je me suis concentré sur les actions à réaliser dans la journée, mais faire aussi une box pour les produits en stock mini est aussi une piste à explorer… Si vous voulez regarder à quoi cela ressemble vous pouvez aller sur mon site de démonstration http://dlbdemo.benke.fr identifiant admindemo/admindemo

Je viens d’ailleurs d’y installer ma version de développement de localise puisque cela vous intéresse

Merci de tes idees et reponses aussi ! La thematique est souvent abordee et soit avortee faute de devs soit developpee pr des besoins perso soit pas utile pour le commun des dolibarrien :wink:
La localisation peut etre aussi geree sur un odt a generer plutot que sur le pdf de la commande :wink: surtout que les odt fonctionnent sur les expes !
Par contre pr la localisation. L ideal c lors de la mise en stock qu il faut cette info ! Non?

Hello le monde,

Je crois que je vais monter une boite de conseil en Logistique pour les dolibarriens, il semblerait qu’il y est de la demande

Naturellement, la localisation se fait à la réception sinon ca va pas être facile de retrouver le produit lors de l’edition du bon de préparation

Il faut aussi penser que cette notion de localisation peut aussi servir pour les inventaires.

@Defrance,

Je ne comprend pas trop le fonctionnement du module restock sur ta demo

Ex 00A001 - Téléphones Ubuntu
Le stock physique est à 15
J’ai valide une commande sur cette ref avec une quantité de 1000

Quand je clique sur le bouton reapprovisionner, il ne propose rien alors que logiquement je devrai avoir au moins une quantité de 985 en proposition de commande

Je n’ai peut etre pas compris la finalité de ce module

Stef

je viens de voir ton exemple sur l’environnement de démo, j’explique le calcul
1000 de commandé par le client
stock physique à 15
seuil à ne pas dépasser 10
Déjà en commande chez un fournisseur 111
Nombre de produit à commander proposé : 1000 -15 -111 + 10 (pour ne pas passer sous le seuil) = 874

Comme il s’agit d’une version 3.4 de dolibarr, il n’y a pas la notion de stock désiré

Ok je ne n’avais pas vu les 874, il faut que je change de lunette je referai un test.

Par contre je peux d’ores et dèjà te donner une amélioration qui sera fort car je ne pense pas que ce soit le cas :
Avoir ce réappro par fournisseur. Ca permettrait au service appro d’avoir une vue global des produits du fournisseur concerné et de ne pas rater un produit qui devrait être en réappro. Je te donne un exemple j’ai un fournisseur avec 200 références.
si j’avais à balayer les deux cents références ca serait un peu long.

Il n’y a donc pas que le 874 que tu n’avais pas vu…

restockfiltrefournisseur.png

Bon il y a une doc sur module aussi :wink:

DEFRANCE

Merci pour les infos. Je n’avais pas vu Reassort dans le bloc produit.

DeFrance

Désolé de te déranger avec ca mais comme a terme ce module pourrait m’interresser, je cherche à comprendre

restock.jpg

Comment obtient on 555 alors que la demande est au minimum 1075 et le le stock est à 0 ?
Pour moi la quantité devrait être 1075 ou plus si l’on prend en compte les propositions validées et les factures validées

Bon il faut vraiment que tu lises la doc :wink:
http://www.patas-monkey.com/index.php/fr/support/repository/Documentations/Guide-utilisateur-du-module-reStock/

le système utilise une pondération paramétrable selon le type d’élément

Bonjour,

Avec un peu de retard, je viens de commander le module ReStock.
J’ai bien fait la modification du fichier indiqué, mais au clic sur Configuration du module, j’obtiens une page vierge sur
…/htdocs/custom/restock/admin/restock.php

J’ai peut-être loupé quelque chose ?

Voilà le contenu de la fonction ListArray() du fichier /htdocs/fourn/class/fournisseur.class.php :
function ListArray()
{
global $user;
global $conf;

	$arr = array();

	$sql = "SELECT s.rowid, s.nom";
	$sql.= " FROM ".MAIN_DB_PREFIX."societe as s";
	if (!$userrights-\>societe-\>client-\>voir && !$usersociete_id) $sql.= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc";
	$sql.= " WHERE s.fournisseur = 1";
	$sql.= " AND s.entity IN (".getEntity('societe', 1).")";
	if (!$userrights-\>societe-\>client-\>voir && !$usersociete_id) $sql.= " AND s.rowid = sc.fk_soc AND sc.fk_user = " .$userid;

	$resql=$this-\>db-\>query($sql);

	if ($resql)
	{
		while ($obj=$this-\>db-\>fetch_object($resql))
  {
  	$arr[$obj-\>rowid] = stripslashes($obj-\>nom);
  }

	}
	else
	{
		dol_print_error($this-\>db);
		$this-\>error=$this-\>db-\>error();

	}
	return $arr;
}

Merci infiniment :happy:

Quoi que, il est indiqué : remplacer toutes les occurences de « $this->user-> » par « $user »
Ne serait-ce pas plutôt « $this->user-> » par « $user-> » ?

non
la page d’administration vide ce doit être un autre soucis
par hasard, vous ne l’auriez pas installé dans le dossier custom?
le module n’est pas compatible avec ce mode pour le moment

1 J'aime