Jump to content

Edit History

Bllidz

Bllidz

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 

Bllidz

Bllidz

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 

Bllidz

Bllidz

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 

×
×
  • Create New...