Surcharger une classe dans Dolibarr sans modifier le coeur

Parallèlement au post Remplacer / surcharger un script sans modifier le script d'origne - Une méthode plus efficace?,
Je souhaite aussi surcharger une classe. La méthode pour surcharger une page ne fonctionne pas.

Voici comment j’ai procédé :

Surcharger une classe avec un module :

  1. Faire un hook qui remplace l’objet dont on veut modifier le comportement, à partir d’un executehook bien choisi. L’objet est à passer par référence pour qu’il retourne les modifications.
  2. Dans le hook on recréé l’objet avec la nouvelle classe (qui est une extension de la classe à surcharger). Puis on le recharge à partir des bons paramètres. Ne pas oublier les extrafields. On met la classe surchargeante dans son module bien sûr.

Evidemment, cela n’aura d’effet que via les appels hook concernés.

Dans mon cas je voulais que quand on valide une réception la commande liée soit marquée comme « reçue » même si les lignes reçues ne coïncident pas avec les lignes de la commande. Et oui, dans la vraie vie il est rare qu’une livraison corresponde exactement avec la commande fournisseur. Pour autant, il faut quand même classer la commande à « reçue » pour pouvoir la traiter.

Ajouter une fonction Override à la manière de Joomla ?

Comme dans l’autre post sur la surcharge d’une page, je me demande s’il n’y a pas une autre méthode, et je suggère d’intégrer dans Dolibarr une fonction override à la manière de Joomla (voir le post). Ce serait tellement plus simple !

Bonsoir,
dans ce cas l’approche dolibarr aurait été plutôt d’implémenter le trigger ad-hoc, sans chercher trop je propose de regarder si l’un de ceux ci serait adapté ?

RECEPTION_BILLED
RECEPTION_CLOSED
RECEPTION_CREATE
RECEPTION_DELETE
RECEPTION_MODIFY
RECEPTION_REOPEN
RECEPTION_UNVALIDATE
RECEPTION_VALIDATE

mais il saoule avec ses overide joomla

Bonjour Madame,

Enchanté de faire votre connaissance.

En effet, mais là j’ai conservé la modif d’origine. Mais bon c’était surtout pour évoquer une façon de surcharger une classe.

Bonjour,

Et tout simplement cliquer sur le bouton « classer reçu ou partiellement reçu » c’est pas plus simple que de développer des choses ? :thinking:

1 « J'aime »

Merci de votre remarque, mais cela ne fonctionne pas justement. Je parle d’une expérience quotidienne d’utilisation avec des bénévoles

Cela ne fonctionnait pas dans le flux de travail, la gestion comptable devait voir facilement les commandes à classer et les factures à payer