Labels Extrafields bon de commande

Bonjour,

J’utilise dolibarr V11 et j’ai avec mes petites connaissances, personnalisé certains fichiers notamment les bons de commandes fournisseurs.
Or je coince sur un point, j’ai un extrafields (une liste déroulante) quand je l’ajoute a mon code, n’affiche que l’ID et pas le label associé.

J’ai essayé de faire comme ce qui est indiqué ici mais j’ai soit une erreur fatal, soit la variable ne s’affiche pas.

Sur l’image le champs correspond au « Code NACRE » comme vous voyez, sur le premier j’ai que l’ID et j’aimerai donc que ça s’affiche comme le second.

Je vous joint le code complet pour la génération du PDF, je vous remercie par avance pour l’aide moi je coince donc toute aide sera à prendre avec joie.

pdf_margaux.modules.php.txt (53,3 Ko)

Bonjour,

Tout est écrit ici : https://wiki.dolibarr.org/index.php/Add_Extrafields_on_PDF_Models

Voir Special Case for Extrafields type « Select list »

Oui j’ai lu, j’ai essayé mais je pense que j’ai raté un truc, parce que quand je remplace la section indiqué ça met un champ vide… :joy: Il y a forcément un truc mais j’arrive pas à trouver quoi :pensive: je reprendrai demain pour essayer de trouver ce qui va pas merci quand même

Je comprend pas… Je suis repartie de zéro pour éviter les conflits, quand je suis ce qui est indiqué dans le wiki et que je place mon code avec :

$outputlangs->convToOutputCharset($object->array_options['options_cnacre'])

J’obtient le numéro dans la liste donc ca fonctionne parce que la valeurs est récupéré, mais si je change comme expliqué dans le wiki par :

$extrafields->showOutputField('cnacre', $object->array_options['options_cnacre'])

J’ai plus rien… :sob: je suis perdu

Sinon j’ai vue que la v12 était sortie et que l’intégration des extrafields semblait plus facile, j’ai donc fait un petit test sur un doliwamp, ca semble marcher beaucoup mieux mais je ne trouve pas comment customizer la ligne (par exemple mettre en italique et ou gras, réduire la police, mettre un fond gris)

Bonjour,

Au vu de votre capture d’écran vous semblez utiliser un extrafield de type ligne.
Et pourtant dans le code vous utilisez un extrafiled objet et non ligne.

$extrafields->showOutputField('cnacre', $object->array_options['options_cnacre'])

devrait être

$extrafields_line->showOutputField('cnacre', $object->lines[$i]->array_options['options_cnacre'])

non ?

Super merci ça fonctionne par contre par rapport au wiki, il y a des trucs a changer.

Après

$object->fetch_thirdparty();

Le code a mettre est :

    $extrafields_line = new ExtraFields($this->db);
    $extralabels_line=$extrafields_line->fetch_name_optionals_label($object->table_element_line);

le new ExtraFields($db);cause une erreur donc il faut remplacer par new ExtraFields($this->db);

Et il faut bien mettre les tirets _ entre extra… et line, cela n’est pas indiqué.

Puis comme tu as indiqué, dans l’espace dédié à l’affichage (avant $nexY = $pdf->GetY();)

j’ai mis :

$pdf->MultiCell(115, 3, '<i><b>Code NACRE : </b>'.$extrafields_line->showOutputField('cnacre', $object->lines[$i]->array_options['options_cnacre']).'</i>',0 , 'L', 1, 1, '', '', true, 0, true, true, 0);

J’espère que cela aidera d’autres personnes.

Encore merci @ksar

1 « J'aime »

Exact j’ai modifié le wiki, merci :

Normalement ce n’est pas nécessaire.

1 « J'aime »