Extrafields sur les PDF

Bonjour

vous devriez utiliser « $project->id » au lieu de « $project->rowid »
car dans le source project.class.php (version 11.0.3), c’est bien le champ id qui est affecté
image
Bonne continuation

Merci @pcbleu,
Je suis allée voir dans project.class.php et en effet « rowid » est devenu « id » j’en ai profité pour mettre Dolibarr à jour vers la version 11.0.3.

Par contre, j’ai beau retourner le code dans tous les sens, je m’y pers entre « project » et « projet ». J’ai ausi essayé d’apres le tuto de Patas Monkey mais rien à faire… Je sens que je vais abandonner mon idée et faire plus simple car mes connaissances en PHP sont largement insuffisantes.

Merci à vous deux @ksar et @pcbleu.

Bonjour :smiley:

avez-vous essayé d’afficher ou de faire un dump dans le fichier des logs
je n’avais pas remarqué l’anomalie de votre source
$project = new Project($this->db);
$object->fetch($project->rowid);
$object->fetch_optionals($project->rowid, $extralabels_project);

le fetch que vous faites est sur un valeur égale à zéro - ça ne peut rien donner en résultat
l’id que vous passez à la fonction fetch doit avoir une valeur qui dépend de ce que vous avez à faire présenter dans le pdf

Bonne continuation

Bonjour,

Tel que vous le faites cela ne peut pas marcher.
Essayez un :

$project = new Project($this->db);
$project ->fetch($object->project_id);
$object->fetch_optionals($project->rowid, $extralabels_project);

$extrafields_project  = new ExtraFields($this->db);
$extrafields_project  = $extrafields_project  ->fetch_name_optionals_label($project ->table_element);

$project->fetch_optionals($project->rowid, $extralabels_project);

Il faut au préalable verifier que

$object->project_id 

Existe.

Pour cela faire un test en faisant un

var_dump($object);

Bonjour

J’ai suivi le tutoriel Add Extrafields on PDF Models - Dolibarr ERP CRM Wiki mais il n’y a rien de mentionné a propos d’une modification à apporter à ce niveau-là. Je me doute qu’il y a un soucis au niveau du chargement de la table mais je ne sais pas où ni comment corriger.
Je vais continuer à chercher. Merci encore à vous deux :smiley:

Voilà ce que ça donne :

[…]
Modules/Applications: user, syslog, categorie, agenda, facture, fournisseur, societe, service, blockedlog, debugbar, propal, expensereport, comptabilite, banque, prelevement, product, mailing, fckeditor, projet
Type gestionnaire de base de données: mysqli
Requête dernier accès en base en erreur: SELECT rowid, modele, immat, circulation, vin FROM llx_projet_extrafields WHERE fk_object =
Code retour dernier accès en base en erreur: DB_ERROR_SYNTAX
Information sur le dernier accès en base en erreur: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‹  › at line 1
[…]

Donc mes ExtraFields « modele », « immat », « circulation », « vin » sont bien récupérés mais contiennent une erreur. J’ai essayé de les supprimer et d’en créer d’autres avec d’autres noms (au cas où il y aurait un conflit avec une commande existante) mais le message d’erreur est le même.
Je vais continuer à potasser…
:thinking: :open_book: :books:

Bonjour,

Je pense que la question doit être assez récurrente pas je ne trouve pas la solution.
Je souhaite intégrer dans mes pdf de propals, commandes et factures les extrafields des produits. J’utilise déjà ODT2PDF mais je cherche à passer sur les pdf directement.

Pour le tuto de Patatas Monkeys aucun problème, mais c’est uniquement les extrafields de la propal, de la commande ou de la facture.

https://patas-monkey.com/index.php/en/guides-utilisateur-2/tutoriels-divers/Ajouter-un-extrafield-sur-un-pdf/

J’ai essayer d’utiliser ce code de Ksar
if ($object->lines[$i]->fk_product)
{
require_once (DOL_DOCUMENT_ROOT."/product/class/product.class.php");
$product = new Product($this->db);
$product->fetch($object->lines[$i]->fk_product);

$extrafields_product = new ExtraFields($this-\>db)
$extralabels_product = $extrafields_product-\>fetch_name_optionals_label($product-\>table_element);
$product-\>fetch_optionals($product-\>rowid, $extralabels_product);

//On devrait pouvoir utiliser les extrafields produit comme cela 
$product-\>array_options['options_xxxxxxxxx'];

}

Mais j’ai une erreur sur la ligne $extralabels_product = $extrafields_product->fetch_name_optionals_label($product->table_element);

Un solution à me proposer?

Quelle est l’erreur ?

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