Mention complémentaire adresse

Bonjour à tous
On utilise dolibarr 9

Nous avons un besoin un peu particulier qui est d’ajouter une ligne en dessous de l’adresse du client en fonction de ce que l’on envoi.
Mais uniquement sur les factures pas sur les autres documents.

Nous avons pratiquement réussi il ne me manque qu’un tout petit coup de pouce pour identifier si un objet est une facture.

Voici comment nous avons précédé.

1/ajout d’un extrafield sur la facture « typeofgood »
2/dans pdf.lib.php
au niveau de la fonction :
function pdf_build_address($outputlangs,$sourcecompany,$targetcompany=’’,$targetcontact=’’,$usecontact=0,$mode=‹ source ›,$object=null,)

On récupère $object->array_options[‹ options_typeofgood ›]
et en fonction de sa valeur on vient ajouter du texte
$stringaddress.="\n\n texte à ajouter";

Mais bien sure comme la fonction build adresse est appelé par tout les modèlesforcément le texte s’affiche aussi sur les commande et devis etc…

Question dans la variable $object transmise à la fonction, est ce que le type d’objet n’est pas spécifier quelques part ?

Sinon l’autre solution serait de dupliquer la fonction et d’appeler la nouvelle dans crabe mais j’aurais aimé faire plus simple.

Merci d’avance si vous pouvez m’aider.

Cordialement

Bonjour,

Peut-etre en testant si le champ fk_facture existe dans $objet ?

Bonjour :happy:

une manière assez simple est de créer un extrafield unique pour le document facture
par exemple un champ calculé renvoyant l’id de la facture

de ce fait la variable recherché dans array_options sera affectée seulement pour les factures
et vous devriez obtenir le résultat escompté

Bonne continuation

Bonjour

Effectivement ça fonctionne et c’est relativement simple.

Merci de votre aide.

Cdt

Bonjour,

Je pense qu’il est plus simple de faire ce test : $object->element == ‹ facture ›

Tous les objets ont une variable « element » contenant le type d’objet. Et même sans cela, un autre test serait get_class($object) == ‹ Facture ›

Bonne journée.

Bonjour
Dans la mesure ou de toute façon mon extrafield n’est que dans les factures et que je fois forcément le tester pour mettre le texte additionnel.

autant ne pas m’embêter ça m’évitera de faire if facture && if extrafield

mais je garde cette infos sous le coude elle pourra m’être utile dans d’autre cas.

Merci