Bouton "Générer" - Modèles de documents

Dolibarr : 12.0.5

Bonjour,

J’ai créé un module via le module builder. J’ai eu de nombreux soucis concernant la génération de PDF.
Même en ayant « ‹ models › => 1 » dans le fichier descripteur de mon module, il m’était impossible de générer un PDF. Il m’a fallut créer un champ « last_main_doc » mais également importer la class « Facture » dans mon PDF. J’avais également supprimé le champ « status » car je n’en avais pas besoin, or le pdf se génère à la validation de l’objet…

Maintenant je rencontre un autre soucis. Sur la card de mon objet le bouton « générer » pour générer un pdf, n’apparaît pas.

Ma question est simple : Comment faire pour générer un PDF sur un objet, sans statut, grâce au bouton « Générer » (présent par exemple sur les factures) ?

Merci :slight_smile:

1/ A la création de l’objet : cocher l’option « Je veux générer des documents à partir de l’objet »

2/ Normalement vous aurez un fichier php avec le nom « pdf_standard_monobjet.modules.php » (si ce n’est pas le cas vous pouvez le créer en copiant un modèle pdf existant dans Dolibarr)

3/ Ajoutez à la table « llx_document_model » votre modèle. Pour remplir les champ il faut mettre dans la colonne « nom » le nom de votre modèle de pdf. Ici c’est « standard_monobjet ». Puis dans le champ « type » le nom de votre objet. Ici : « monobjet ». J’ai mis entity à 1 et les autres champs à NULL, je ne sais pas à quoi ça sert.

Pour ce qui est des statuts je suis en train de supprimer tout le code généré par le module builder, on verra bien.

Edit : J’en profite pour rajouter que le code est déjà prévu pour ajouter automatiquement le model du pdf dans la table « llx_document_model » mais il ne fonctionne pas. Pour le faire fonctionner j’ai modifié l’array « $myTmpObjects » pour mettre « includerefgeneration » et « includedocgeneration » à 1.

Ensuite, c’est la ligne « ($myTmpObjectKey == ‹ MyObject ›) continue; » qui foire (je ne sais pas pourquoi). J’ai simplement mis le reste du code dans un if classique sans l’instruction « continue » et tout fonctionne parfaitement.

1 « J'aime »