Contact fournisseur

Bonjour à tous,

Après avoir passer plusieurs heures à chercher un attribut, je me dirige vers vous dans l’espoir d’obtenir une solution. Je m’explique, je modifie actuellement le php générant la page pdf de la commande fournisseur et une information me manque, le contact fournisseur, donc le thirdparty dans mon cas.

Plusieurs possibilités :
- Premièrement, est il possible d’avoir accès au modèle de l’objet thirdparty, afin d’obtenir tous ses attributs et potentiellement y trouver le contact pour pouvoir l’afficher
Deuxième possibilité, dans le cas où l’attribut contact n’existe pas dans thirdparty, est il possible d’effectuer une requête SQL depuis la page générant le PDF ?

Je suis sous Dolibarr 8.0.1 et j’utilise UltimatePDF 5.0.0 pour générer les PDF

Merci à vous

Cordialement

Bonjour,

Que dit le développeur du module ?

Sinon utilisez ‹ $thirdparty = $object->contact; › puis appeler la fonction pdfBuildThirdpartyName($thirdparty, $outputlangs, $includealias)

Cordialement,
Sylvain Legrand.

1 « J'aime »

bonjour,

Merci de votre réponse, le développeur du module ? Vous entendez le développeur du module d’UltimatePDF ?

Hum la fonction pdfBuildThirdparty() ne renvoie que le nom d’une société, or je cherche un contact dans le thirdparty, d’après ce que j’ai pu voir dans la fonction pdfBuildThirdparty() on peut lui donner un objet Société ou Contact mais dans les 2 cas la fonction nous retourne le nom de la société.

Cordialement,
David

Bonsoir,

Excuse moi j’ai été trop vite et il y a trop de temps que j’ai décortiqué cette partie du code.

Je récupère le nom du contact avec :

pdf_build_address($outputlangs,$sourcecompany,$targetcompany,$targetcontact,$usecontact,$mode,$object)

la variable $targetcontact est renseigné par $object->contact

Voici la séquence de code tiré du modèle einstein :

// If CUSTOMER contact defined on order, we use it
$usecontact=false;
$arrayidcontact=$object->getIdContact('external','CUSTOMER');
if (count($arrayidcontact) > 0)
{
	$usecontact=true;
	$result=$object->fetch_contact($arrayidcontact[0]);
}
$carac_client=pdf_build_address($outputlangs,$this->emetteur,$object->thirdparty,($usecontact?$object->contact:''),$usecontact,'target', $object);

Cordialement,
Sylvain Legrand.

1 « J'aime »

Bonjour,

Oui par rapport à cela, j’utilise la méthode pdf_build_new_address() qui s’emploi en mode source par défaut ou target et en effet lorsque je l’utilise en mode source cela m’affiche l’adresse complète et le numéro et le mail et le mode target, l’adresse complète ainsi que le nom du contact mais cela n’affiche pas le numéro et le mail. Donc je ne peux avoir que l’un ou l’autre… J’ai tenté d’obtenir le contact sans passer par la méthode

$arrayidcontact = $object->getIdContact('external', 'BILLING');
        if (count($arrayidcontact) > 0) {
            $result = $object->fetch_contact($arrayidcontact[0]);
        }
$carac_emetteur = pdf_build_new_address($outputlangs, $object->thirdparty);
$carac_emetteur .= $outputlangs->convToOutputCharset(dol_format_address($object->contact));

Mais cela ne retourne rien et oui je suis sur que l’on rentre dans le if… malheureusement

Merci par avance