Triggers ou hook sur Notes

Bonjour,

Je souhaite externaliser les données de dolibarr vers une autre BDD. (Pour le moment, je m’intéresse aux propales.) J’arrive à mes fins lors de la modification d’une propale pour les champs de l’onglet card. (Via un trigger sur PROPALE_MODIFY). Jusque là, tout va bien !

Par contre, si je fais une modification sur l’onglet Notes, le trigger n’est pas appelé. (Effectivement, il n’est pas appelé dans le code). Je me dis que je vais tenter ma chance avec un hook… Mais je n’y arrive pas…

J’ai pu constater que :

  • l’onglet « Notes » est géré dans /htdocs/comm/propale/note.php (qui renvoie vers /htdocs/core/tpl/notes.php) pour l’affichage
  • et que l’enregistrement est géré au chargement de la page via /htdocs/core/actions_setnote.php, qui lui-même appelle la méthode update_note() définie dans /htdocs/core/class/commonobjet.class.php

Aucun de ces fichier ne contient de hook… Y a-t-il une solution à mon problème ?

Merci de vos retours ou idées !

Bonjour

Ici il y a une modif pour que les pdf soient régénérés lors de la modification de la note. Si ça peut t’inspirer…
Sinon il y a une constante pour faire revenir les notes dans la fiches et faire disparaitre l’onglet.

Fred

1 « J'aime »

Merci mais…
Quand tu dis « ici », tu veux dire où exactement ?
Je ne trouve pas la constante dont tu parles… mais cela pourrait être une bonne idée.

Bonjour
Le code sur github permet de générer automatiquement les pdf sur modification de la note depuis l’onglet.

Autre solution la constante est MAIN_DISABLE_NOTES_TAB

Fred

Merci infiniment !

Et à la chasse au trésor, le gagnant est… Frédéric !
Alors, pas tout-à-fait. Je viens de tester, l’onglet notes disparaît, un intitulé Notes apparaît sur la fiche avec un bouton de sens de tri. Mais je ne vois pas de note, ni de moyen de l’éditer.
J’ai mis une valeur à 1 pour la variable.
Je suis en 7.0.2

1 « J'aime »

Bonjour

C’est cassé sur la propale apparemment… ça fonctionne sur la fiche produit par exemple…

Fred

Oui, c’est sur la propale que j’ai essayé.
En examinant le code source de la page, la note est là. C’est le javascript pour révéler ce qui est caché qui ne fonctionne pas complètement.
Yves

Bonjour

Si tu clique sur la petite flèche pour l’avoir vers le haut et que tu rafraichis, la note apparait… le js est effectivement buggé

Fred

Bonjour à vous,

Tout d’abord, merci Frédéric, parce que j’ai réussi à le faire fonctionner (sur la 8.0).

Le javascript est effectivement bugué. La seule solution (transitoire) que j’ai trouvé, consiste à créer un vrai bug dans le JS pour obliger le plantage de javascript, puis à supprimer mon « vrai bug » (le script redevient identique à son original) et recharger la page. Et le javascript fonctionne. Au passage, cela pose une autre question (qui n’a rien à voir avec le sujet initial) : comment forcer le rechargement du JS dans Dolibarr ?

Pour ce qui est de ce sujet « Notes », avce la solution préconisée, je peux ensuite créer une action dans la méthode doActions, appélée sur le contexte propalcard, et sur l’action setnote_public.

Bonjour,
J’ai ouvert un rapport de bogue pour l’absence de fonctionnement de l’option MAIN_DISABLE_NOTES_TAB :
https://github.com/Dolibarr/dolibarr/issues/9611

:tongue: www.dolibarr.fr/forum/t/main-disable-contacts-tab-notes-issue-9611-bug-closed/26882/1

Bonjour
Regardez si ça corrige le truc:
https://github.com/Dolibarr/dolibarr/pull/9613

Fred

1 « J'aime »

Salut Frédéric,
Pour moi, ça marche, en V7.0.2 et en v8.0.1, pour les notes et les contacts
\o/