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