Files
modrefchange_fixed/v6.1.12-modrefchange/modrefchange/override/classes/pdf/PDF.php
T
2026-07-10 11:56:56 +02:00

96 lines
3.5 KiB
PHP

<?php
/**
* Module allow edit existing orders and set rules for automatically generating numbers for orders and other documents
*
* @author Keshva <keshvathakur47@gmail.com>
* @copyright 2021 Keshva
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
*/
if (!defined('_PS_VERSION_'))
exit;
}
require_once(_PS_MODULE_DIR_.'modrefchange/classes/DocumentReferences.php');
class PDF extends PDFCore
{
public function render($display = true)
{
$render = false;
$this->pdf_renderer->setFontForLang(Context::getContext()->language->iso_code);
foreach ($this->objects as $object) {
if (version_compare(_PS_VERSION_, '1.6.1.4', '>'))
$this->pdf_renderer->startPageGroup();
$template = $this->getTemplateObject($object);
if (!$template) {
continue;
}
if (empty($this->filename)) {
$this->filename = $template->getFilename();
if ($template instanceof HTMLTemplateInvoice && $object instanceof OrderInvoice) {
if ($result = DocumentReferences::getReference($object->id, 'invoice')) {
$template->title = $result['reference'];
$this->filename = $result['reference'].'.pdf';
$orderNote = $this->getOrderNote($object->id_order);
$template->order_invoice->note .= ($orderNote['show_on_invoice'] ? $orderNote['note'] : '');
}
} else if ($template instanceof HTMLTemplateDeliverySlip && $object instanceof OrderInvoice) {
if ($result = DocumentReferences::getReference($object->id, 'delivery_slip')) {
$template->title = $result['reference'];
$this->filename = $result['reference'].'.pdf';
}
} else if ($object instanceof OrderSlip) {
if ($result = DocumentReferences::getReference($object->id, 'credit_slip')) {
$template->title = $result['reference'];
$this->filename = $result['reference'].'.pdf';
}
}
if (count($this->objects) > 1) {
$this->filename = $template->getBulkFilename();
}
}
if ($result = DocumentReferences::getReference($object->id, 'credit_slip')) {
$template->title = $result['reference'];
$this->filename = $result['reference'].'.pdf';
}
$template->assignHookData($object);
$this->pdf_renderer->createHeader($template->getHeader());
$this->pdf_renderer->createFooter($template->getFooter());
if (version_compare(_PS_VERSION_, '1.6.1.4', '>'))
$this->pdf_renderer->createPagination($template->getPagination());
$this->pdf_renderer->createContent($template->getContent());
$this->pdf_renderer->writePage();
$render = true;
unset($template);
}
if ($render) {
// clean the output buffer
if (ob_get_level() && ob_get_length() > 0) {
ob_clean();
}
return $this->pdf_renderer->render($this->filename, $display);
}
}
private function getOrderNote($idOrder) {
$orderNote = array(
'note' => '',
'show_on_invoice' => false
);
if ($row = Db::getInstance()->getRow('SELECT * FROM '._DB_PREFIX_.'order_note WHERE id_order = '.(int)$idOrder)) {
$orderNote = array(
'note' => $row['note'],
'show_on_invoice' => ((int)$row['show_on_invoice'] == 1)
);
}
return $orderNote;
}
}