Jump to content

Pdf qui se génère pas


Recommended Posts

Posted (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 by Bllidz (see edit history)

Share this post


Link to post
Share on other sites

  • Bllidz changed the title to Pdf qui se génère pas
  • 3 weeks later...

@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 

Share this post


Link to post
Share on other sites

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é 

Share this post


Link to post
Share on other sites

Posted (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 by Alexandre Carette (see edit history)

Share this post


Link to post
Share on other sites

Posted (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 by Bllidz (see edit history)

Share this post


Link to post
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

Cookies ensure the smooth running of our services. Using these, you accept the use of cookies. Learn More