Hardlink vs Softlink : lien entre ticket et contrat

Bonjour
Dans le cadre de mon développement je suis confrontée à un cas d’école que l’on retrouve un peu partout dans dolibarr, à savoir le fait de lier un élément avec un autre et la manière dont se lien opère.
J’ai pris un exemple précis mais il y en a d’autres à savoir entre un ticket et un contrat, je précise que testé cela dans un environnement 22béta et maintenant allons y

Tout d’abord le « softLink » à savoir passer par la table llx_element_element pour deux élément entre eux, dans ce cas on est dans une relation N-M (pour ceux qui se rappellent le cours de MCD.
il est donc possible d’avoir un contrat avec plusieurs ticket associé (ca c’est logique fonctionnellement) et un ticket lié à plusieurs contrat (là j’ai un peu de mal à en comprendre la logique fonctionnelle mais soit).

Ensuite le « hardLink » qui consiste à avoir un lien champs dans la table de départ vers la table de destination, dans notre exemple un champs fk_contract dans la table llx_ticket. et d’associer des ticket à un contrat ou pas (relation 0-N) ce qui a il me semble du sens.

soucis, le hardlink ne s’affiche pas au niveau de la page du ticket, mais au niveau de la liste et de la page de notification et création
il y a un paramètre d’activation de l’affichage avec un commentaire indiquant que la fonction des déprécier ce qui ne me semble pas logique car fonctionnellement on doit savoir qu’un ticket est associé à un contrat (et meme idéalement connaitre le nombre ticket associé à un contrat…)

Je précise :

  • que l’on a aussi un hardLink vers les contrat au niveau des interventions.
  • Que les projets sont toujours en HardLink et qu’il n’est pas possible de faire un hardlink/softLink (meme si il y a une box pour lister les éléments) sur une tache.
  • Qu’il est toujours possible de créer un Hardlink avec les extrafields.

Ce qui me gène dans tous cela c’est le manque de cohérence dans l’emploie des liaisons, sachant que les deux ont des avantages et des inconvénients (pas d’affichage des softlink dans les listes)

Bref, en attendant je vais poster un correctif pour ajouter l’affichage du contrat au niveau du ticket, histoire de ne pas avoir un interface incohérent et en discuter lors du prochain devcamp et qui sait pousser un giff sur le sujet qui me semble important.

2 « J'aime »