Multi-société dans Dolibarr

Bonjour à tous,

J’ai une petite remarque par rapport à la gestion des entités dans Dolibarr.
ça fait un ans qu’on utilise Dolibarr pour la gestion des activités de notre entreprise (entre 25 et 30 personnes) et vue qu’on a plusieurs entités (point de vue juridique) on a installé le module Multi-comapny (Auteur Mr. Régis houssine) pour répondre à ce besoin.
Dans la configuration de ce module on peut partagé des tiers (client, prospect ou fournisseur) entre les différents entités, dans ce cas là les entités vont partagé seulement la fiche du client (nom, adresse, mail, téléphone …) mais ils partagent pas les objets métier rattaché à ce tiers comme (Les propositions, les commandes, les fiches d’interventions …) !
La question qui se pose, est-ce que c’est intéressant de partagé un client entre plusieurs entités sans partagé les données rattaché à ce tiers (proposition, commande …) ? ? ?

De point de vue personnel je pense qu’il faut forcer le partage des objets métiers rattaché à un tiers lorsqu’on partage le fiche du tiers !
parce que tout simplement ça sert a rien de partagé un numéro de téléphone, adresse …

Et pour mettre ceci en place il faut qu’on utilise toujours la fonction getEntity(‹ societe ›, ’ ') à la place de $conf->entity dans les objets (Propal, commande …) !

Merci pour vos remarques.

Tout a fait d’accord. C’est bien getEntity(‹ societe ›, ’ ') qu’il faudrait utiliser. Y a plus qu’a faire les pull request

1 « J'aime »

Oh ! cool je suis content :smiley:

Merci @FHenry

Bonjour,

En partant du principe que si deux entités partage un tiers alors il doivent partagé tous les objets (proposition, commande…) rattaché a ce tiers, donc on a dit qu’il faut utiliser toujours la fonction getEntity(‹ societe ›, 1) a la place de $conf->entity. Mais je pense que cela présente une autre problématique, voici en exemple pour mieux expliquer:

Nous avons 3 entités Entity_1, Entity_2 et Entity_3, on suppose que Entity_1 et Entity_2 partage les tiers (partage dans les deux sens, Entity_1 voir les tiers de Entity_2 et vise versa ) et aussi Entity_1 et Entity_3 partage les tiers MAIS Entity_2 et Entity_3 NE PARTAGE PAS les tiers.
Supposant qu’on a crée une proposition (Réf: PR-EN1-001) à partir de Entity_1 sur l’un des tiers de Entity_2, donc tous a fait logique que l’ Entity_1 et Entity_2 peuvent accéder à cette proposition parce qu’il partage les tiers. MAIS le problème ce que Entity_1 et Entity_3 partage les tiers c’est a dire que n’importe quel utilisateurs de Entity_3 peut accéder a n’importe quel objet si $object->entity = 1 ou 3. Et donc comme la proposition (Réf: PR-EN1-001) est enregistré avec $entity = 1 (car cette proposition est crée à partir de Entity_1) donc les utilisateurs de l’ Entity_3 peuvent voir cette proposition malgré que cette proposition est pour un tiers sur Entity_2 et cette entité ne partage pas les tiers avec Entity_3.

Donc je pense que pour résoudre cette problème il faut que tous les objets métiers (commande, proposition…) rattaché à un tiers ont la même entité que ce tiers même si ces objets (commande, proposition…) sont crée à partir d’une autre entité.
Pour crée $Propal->create($entity = $soc->entiy) et pour lire la condition ce que $entity IN ‹ ( › . getEntity(‹ societe ›, 1) . ‹ ) ›;

Merci pour vos remarques.

1 « J'aime »

C’est juste.
Le problème viens de l’interprétation dont fonctionne le module multicompany.
Il ne permet pas de partager les éléments en fonction de l’entité tiers, mais il permet de partager « ce qui est créé dans une instance ». Donc si vous faite votre saisie en étant logué sous l’instance 1, elle sera visible par 3. Peu importe que le tiers soit un tiers de l’instance 2 ou pas.
D’un manière générale, je recommande que pour la saisie chacun la face sur son entitié. Et que l’entité la plus haute (ici 1), ne soit pas utilisé pour de la saisie mais uniquement de la vision en consultation.

Une évolution devrait etre faite dans le module multicompany pour que quand on crée dans une instance 1, l’entity prise pour la propal d’un tiers soit celle du tiers et non celle sur laquelle on est connecté.

1 « J'aime »