Newer
Older
<?php
namespace QUI\ERP\Output;
use QUI;
use QUI\Package\Package;
use QUI\ERP\Accounting\Invoice\Exception;
use QUI\ERP\Accounting\Invoice\Handler;
use QUI\ERP\Accounting\Invoice\Invoice;
use QUI\ERP\Accounting\Invoice\InvoiceTemporary;
/**
* Class OutputTemplate
*/
class OutputTemplate
{
/**
* @var OutputTemplateProviderInterface
protected $TemplateProvider;
/**
* @var string
*/
protected $template;
/**
* @var QUI\Interfaces\Template\EngineInterface
*/
protected $Engine;
/**
/**
* Template constructor.
*
* @param string $TemplateProvider - Template provider class
* @param string $entityType
* @param string $template (optional) - Template identifier (from template provider)
public function __construct(
string $TemplateProvider,
string $entityType,
string $template = null
) {
$this->Engine = QUI::getTemplateManager()->getEngine();
$this->TemplateProvider = $TemplateProvider;
if (empty($template)) {
$templates = $this->TemplateProvider::getTemplates($entityType);
$template = $templates[0];
$this->template = $template;
$this->entityType = $entityType;
}
/**
* Render the html
*
* @return string
*/
public function render()
{
return $this->getHTMLHeader().
$this->getHTMLBody().
$this->getHTMLFooter();
}
/**
* @return QUI\Interfaces\Template\EngineInterface
*/
public function getEngine()
{
return $this->Engine;
}
//region Template Output Helper
/**
* Return the html header
*
* @return string
*/
public function getHTMLHeader()
{
return $this->TemplateProvider::getHeaderHtml($this->template, $this->entityType, $this->Engine);
}
/**
* Return the html body
*
* @return string
*/
public function getHTMLBody()
{
return $this->TemplateProvider::getBodyHtml($this->template, $this->entityType, $this->Engine);
}
/**
* Return the html body
*
* @return string
*/
public function getHTMLFooter()
{
return $this->TemplateProvider::getFooterHtml($this->template, $this->entityType, $this->Engine);