Extrafields sur les PDF

celles ci:
Parse error: syntax error, unexpected ‹ $extralabelsline_product › (T_VARIABLE) in /var/www/html/dolibarr/htdocs/core/modules/propale/doc/pdf_azur.modules.php on line 488

Visiblement vous avez un probléme mais pas dans le code que j’ai transmit

Il n’y a pas de variable extralabelsline_product dans mon code

Edit : J’ai compris il manque le ; dans la ligne du dessus :cheer:

parfait encore un fois merci Ksar! :wink:

Par contre ensuite je n’arrive toujours pas à afficher l’extrafields.

c’est bien cela qu’il faut que je mette?
$pdf->MultiCell (0,5, $outputlangs->convToOutputCharset($product->array_options [‹ options_XXX ›]),0,‹ L ›);

[code]
$pdf->MultiCell (0,5, $outputlangs->convToOutputCharset($product->array_options[‹ options_mon_super_extrafield ›] ),0,‹ L ›);[/code

Parfait ! Merci Ksar :happy:

Bonjour,
Je suis nouveau avec Dolibarr et j’aimerai essayé d’ajouter un ou plusieurs extrafields sur ma facture crabe PDF. J’ai suivi le tuto Wiki concernant les Extrafields mais lorsque je génère la facture je reçois le message d’erreur suivant:

Fatal error* : Call to a member function query() on a non-object in C:\dolibarr\www\dolibarr\htdocs\core\class\extrafields.class.php on line *880

Je fais de la programmation software ou web, donc je connais le développement. Il y a un problème avec cette ligne de code

$extrafields = new ExtraFields($db);

en fait l’objet $db est vide, comment cela est-il possible? J’ai suivi les étapes indiquée (ajout du require mais c’est pas lui qui fait le job). Il y a une autre configuration à réaliser avant?

merci pour votre support.

Bonne journée

Bonjour,

Non il n’y a pas de configuration à faire avant.
Si vous suivez ça, ça devrait marcher : https://wiki.dolibarr.org/index.php/Add_Extrafields_on_PDF_Models

Sinon partagez votre modèle.

Bonjour, merci pour la réponse rapide. Alors c’est peut-être parce que je n’ai pas crée d’attribut supplémentaire dans la partie facture mais dans la partie Tiers. Selon le code de la classe ExtraFields ça devrait fonctionner également non? Il va aussi chercher des infos dans ce module non?

Merci.

Pour les extrafield de type tiers ils sont normalement déjà chargé.
On peu les apeler directement avec un

$object->thirdparty->array_options['options_my_third_party_extra']

A lire ici : https://wiki.dolibarr.org/index.php/Add_Extrafields_on_PDF_Models#Special_Case_for_Third_party_extrafields

Merci beaucoup Ksar!!

1 « J'aime »

Bonjour,

Je suis encore débutant sur dolibarr j aimerai savoir faire comment modifications pour personnaliser la génération de PDF

Bonjour
Le module ultimatepdf permet de gérer de nombreuses fonctionnalités sur les modèles de document et d’en créer à l’image de sa société

@+
Philippe

Merci pour votre réponse, mais ultimatePDF c est pas free, est ce qu il y a une autre solution free et facile a utilise ? si non comment je peu modifier le code PHP pour personnalise l affichage de PDF?

Bonjour,
Vous pouvez commencez par lire le wiki, lire le forum etc… et revenir avec une question précise. Si vous ne maîtrisez pas PHP préférez les modules tout faits. Ce n’est pas gratuit c’est sur mais il faut payer les développeurs. Meme les passionnés ont des factures a payer.
@+

Bonjour,
J’ai cherché sur le forum mais pas trouvé comment ajouter le nom d’un projet dans le pdf d’une facture de ce même projet.
J’ai créé un modèle sur lequel j’ai fais des essais mais je patauge:
Je souhaite l’intégrer à la suite de la description produit ?
Quelqu’un peut il me donner un coup de pouce?

Bonjour,

Je pense qu’il faut d’abord charger le projet dans l’objet facture :

$object->fetch_projet();

Et du coup les informations du projet devraient être dispos dans :

$object->projet->title;

Cdlt,

Je ne suis pas un pro du php:
voila ma démarche
j’ai d’abord ajouter

require_once(DOL_DOCUMENT_ROOT."/core/modules/project/modules_project.php");
require_once(DOL_DOCUMENT_ROOT."/projet/class/project.class.php");
require_once(DOL_DOCUMENT_ROOT."/projet/class/task.class.php");
require_once(DOL_DOCUMENT_ROOT."/core/lib/company.lib.php");
require_once(DOL_DOCUMENT_ROOT.’/core/lib/pdf.lib.php’);

au début du fichier pdf_agence.modules.php (fichier modèle pdf copié et modifié à partir du modèle crabe)
J’ai ensuite l’intention de modifier cette partie du code (ligne 270):

// Description of product line
$pdf->SetFont(’’,’’, $default_font_size - 1); // Into loop to work with multipage
$curX = $this->posxdesc-1; pdf_writelinedesc($pdf,$object,$i,$outputlangs,$this->posxtva-$curX,3,$curX,$curY,$hideref,$hidedesc,0,$hookmanager);
$pdf->SetFont(’’,’’, $default_font_size - 1); // On repositionne la police par defaut
$nexY = $pdf->GetY();

Et la je suis perdu.

Je suis parti du modèle crabe, pas eu besoin d’ajouter de require pour avoir les infos du projet.

Il faut que vous expliquiez ce que vous voulez faire plus précisément. Une facture ne peut être associée qu’à un seul projet. Vous voulez ajouter le nom du projet après chaque descriptif de ligne ? Répéter X fois le nom du projet ?

Mon objectif est d’associer le nom du projet (projet associé à la commande précédant cette facturation) à la description de ligne : Cela pour chaque ligne.

Ajoutez « $object->fetch_projet(); » au dessus de :

// Loop on each lines
for ($i = 0 ; $i < $nblignes ; $i++)
{

Et ensuite "$object->lines[$i]->desc .= " Projet : « .$object->projet->title; » en dessous de :

$curY = $nexY;

Aucune autre modification nécessaire de mon côté

Cdlt,