Bllidz Posted July 29, 2021 Share Posted July 29, 2021 (edited) Bonjour je suis entrain de créer un module qui doit imprimer un pdf qui affichera un tableau des numéros de facture impayé de chaque client. Je me suis aider de https://belvg.com/blog/pdf-in-prestashop.html pour mon module. Le soucis que j'ai actuellement c'est que quand j'appuie sur le bouton ça ne génère aucun document rien du tout et dans la console aucune erreur. la fonction pour générer le pdf : dans modules/jv_pdf.php public function lafonctionpdf($id_c){ $order = new Order((int)$id_c); $custom_object = $order -> getInvoicesCollection(); require_once _PS_MODULE_DIR_ . 'jv_pdf/classes/HTMLTemplateCustomPdf.php'; $pdf = new PDF($custom_object, 'CustomPdf', Context::getContext()->smarty); $pdf->render(); } le fichier HTMLTemplateCustomPdf.php class HTMLTemplateCustomPdf extends HTMLTemplate { public $custom_model; public function __construct($custom_object, $smarty) { $this->custom_model = $custom_object; $this->smarty = $smarty; // header informations $id_lang = Context::getContext()->language->id; $this->title = HTMLTemplateCustomPdf::l('Custom Title'); // footer informations $this->shop = new Shop(Context::getContext()->shop->id); } /** * Returns the template's HTML content * @return string HTML content */ public function getContent() { $this->smarty->assign(array( 'custom_model' => $this->custom_model, )); return $this->smarty->fetch(_PS_MODULE_DIR_ . 'jv_pdf/pdf/custom_template_content.tpl'); } /** * Returns the template filename * @return string filename */ public function getFilename() { return 'custom_pdf.pdf'; } /** * Returns the template filename when using bulk rendering * @return string filename */ public function getBulkFilename() { return 'custom_pdf.pdf'; } } Mon tpl ou il y'a le bouton: <h4>PDF: </h4> <button type="button" class="submitPdf" style="display : inline-block; width:80%; margin-left: 2%;" > <i class="icon-ok"></i> {l s='Télécharger' d='Module.Jv_Pdf.Admin'} </button> le fichier ajax_jv_pdf.php $j = new Jv_PDF(); if (Tools::getValue('action') == 'sendPdf') { $id_order = Tools::getValue('id_order'); echo $j->lafonctionpdf($id_order); } et le fichier js $(document).ready(function() { /*Modif Jérémy*/ $('button.submitPdf').unbind('click').click(function(e) { e.preventDefault(); query = 'ajax=1&token='+token+'&action=sendPdf&id_order='+id_order+'&'; $.ajax({ type:'POST', //Methode POST url: "../modules/jv_pdf/ajax_jv_pdf.php", cache: false, dataType: 'json', data : query, success: function(data) { if (data.result) { console.log('ok'); } else jAlert(data.error); } }); return false; }); }); Est ce que quelqu'un aurait une idée de comment je pourrais générer mon pdf ? Il est possible que j'oublie quelques chose ou que je me sois trompé Ma version prestashop 1.7.6.9 Merci de tout aide Edited July 29, 2021 by Bllidz (see edit history) Link to comment Share on other sites More sharing options...
Bllidz Posted July 30, 2021 Author Share Posted July 30, 2021 UP ! Link to comment Share on other sites More sharing options...
Bllidz Posted August 16, 2021 Author Share Posted August 16, 2021 Un petit UP Link to comment Share on other sites More sharing options...
Alexandre Carette Posted August 16, 2021 Share Posted August 16, 2021 (edited) Salut, si cela peut t'aider un petit module de ma conception tu pourras look le code, cdt baba_createdoc.zip Edited August 16, 2021 by Alexandre Carette (see edit history) Link to comment Share on other sites More sharing options...
Bllidz Posted August 16, 2021 Author Share Posted August 16, 2021 @Alexandre Carette Super merci je regarde ça Link to comment Share on other sites More sharing options...
Bllidz Posted August 16, 2021 Author Share Posted August 16, 2021 @Alexandre Carette Update: Du coup j'ai regardé ton code du module que tu as partagé. Fin plus précisément ton controller la ou se fait ta génération. Mais du coup je m'y prends mal ? Car moi techniquement j'essai d'appelé la génération via une fonction qui se trouve directement dans le module est non pas dans un controller. De plus quand j'appui sur mon bouton j'ai pas d'erreur mais dans la réponse j'ai du texte un peu bizarre. Je sais pas si tu vois ou je veux en venir ? Si t'as besoin je peux mettre mon module en pièce jointe si tu peux y jeter un coup d'oeil ce serait volontiers ? Merci de ta réponse CDT Link to comment Share on other sites More sharing options...
Bllidz Posted August 17, 2021 Author Share Posted August 17, 2021 Du coup j'ai rajouté en pièce jointe si tu peux y jeter un oeil. et j'ai cette réponse quand je clique sur mon bouton. jv_pdf.zip Link to comment Share on other sites More sharing options...
Alexandre Carette Posted August 17, 2021 Share Posted August 17, 2021 ca avance, es tu obligé de faire de l ajax ? as tu essayé la fonction jsondecode Link to comment Share on other sites More sharing options...
Bllidz Posted August 17, 2021 Author Share Posted August 17, 2021 3 minutes ago, Alexandre Carette said: ca avance, es tu obligé de faire de l ajax ? as tu essayé la fonction jsondecode Hmmm l'ajax me permettait de récupérer l'id de la commande ainsi que l'id du customer avec que je puisse ensuite faire mes requête afin d'avoir mes données. Mais si j'ai l'id de la commande, je peux retrouver l'id client donc en soit, je ne pense pas être obligé de faire de l'ajax. Mais je ne vois pas comment partir autrement. Et oui j'ai testé json_decode mais ça n'a rien changé Link to comment Share on other sites More sharing options...
Alexandre Carette Posted August 17, 2021 Share Posted August 17, 2021 (edited) 4 minutes ago, Bllidz said: Hmmm l'ajax me permettait de récupérer l'id de la commande ainsi que l'id du customer avec que je puisse ensuite faire mes requête afin d'avoir mes données. ca tu n'es pas obligé de faire de l'ajax, tu peux tres bien mettre id_order dans l url ou dans un form et la recup apres Edited August 17, 2021 by Alexandre Carette (see edit history) Link to comment Share on other sites More sharing options...
Bllidz Posted August 17, 2021 Author Share Posted August 17, 2021 (edited) Je voyais ça plus simple et plus rapide avec de l'ajax,justement. Je vais donc repartir au propre et penser différemment fin en form je devrais y arriver. Je reviendrai si je rencontre un souci Merci de ton aide Edited August 17, 2021 by Bllidz (see edit history) Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now