2020-05-15 15:36:43 +02:00
|
|
|
<?php
|
2020-05-19 16:06:32 +02:00
|
|
|
namespace D3\PdfDocuments\Modules\Application\Model;
|
2020-05-15 15:36:43 +02:00
|
|
|
|
|
|
|
use \OxidEsales\Eshop\Application\Model\Order;
|
|
|
|
|
2020-05-19 16:06:32 +02:00
|
|
|
abstract class pdfDocuments implements albatros
|
2020-05-15 15:36:43 +02:00
|
|
|
{
|
|
|
|
|
|
|
|
public function genPdf($sFilename, $iSelLang = 0, $target = 'I')
|
|
|
|
{
|
|
|
|
self::$_blIsAdmin = 0;
|
|
|
|
|
|
|
|
$oSmarty = Registry::getUtilsView()->getSmarty();
|
|
|
|
$oSmarty->assign('oConfig', Registry::getSession()->getConfig());
|
|
|
|
$oSmarty->assign('oViewConf', Registry::getSession()->getConfig()->getActiveView()->getViewConfig());
|
|
|
|
$oSmarty->assign('order', $this);
|
|
|
|
$oSmarty->assign('shop', Registry::getSession()->getConfig()->getActiveShop());
|
|
|
|
$oSmarty->assign('lang', Registry::getLang());
|
|
|
|
|
|
|
|
$oUser = oxNew(User::Class);
|
|
|
|
$oUser->load($this->getOrder()->getFieldData('oxuserid'));
|
|
|
|
$oSmarty->assign('user', $oUser);
|
|
|
|
|
|
|
|
$oPayment = oxNew(Payment::class);
|
|
|
|
$oPayment->load($this->getOrder()->getFieldData('oxpaymenttype'));
|
|
|
|
$oSmarty->assign('payment', $oPayment);
|
|
|
|
|
|
|
|
$this->setInvoiceNumber();
|
|
|
|
$this->setInvoiceDate();
|
|
|
|
$this->saveOrderOnChanges();
|
|
|
|
|
|
|
|
switch (Registry::getRequest()->getRequestParameter('pdftype')) {
|
|
|
|
case ('dnote'):
|
|
|
|
case ('dnote_without_logo'):
|
2020-05-19 16:06:32 +02:00
|
|
|
$sContent = $oSmarty->fetch($this->getTemplate());
|
2020-05-15 15:36:43 +02:00
|
|
|
break;
|
|
|
|
default:
|
2020-05-19 16:06:32 +02:00
|
|
|
$sContent = $oSmarty->fetch($this->getTemplate());
|
2020-05-15 15:36:43 +02:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @param Order $order
|
|
|
|
*/
|
|
|
|
public function setOrder(Order $order)
|
|
|
|
{
|
|
|
|
$this->oOrder = $order;
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @return OrderModel
|
|
|
|
*/
|
|
|
|
public function getOrder()
|
|
|
|
{
|
|
|
|
return $this->oOrder;
|
|
|
|
}
|
|
|
|
|
|
|
|
public function setFilename($sContent, $target, $sFilename)
|
|
|
|
{
|
|
|
|
$ordernr = $this->getOrder()->getFieldData('oxordernr');
|
|
|
|
$billnr = $this->getOrder()->getFieldData('oxbillnr');;
|
|
|
|
|
|
|
|
$sFilename = str_replace($ordernr, $billnr, $sFilename);
|
|
|
|
|
|
|
|
$oPdf = oxNew(Html2Pdf::class, 'P', 'A4', 'de');
|
|
|
|
$oPdf->writeHTML($sContent);
|
|
|
|
$oPdf->output($sFilename, $target);
|
|
|
|
}
|
|
|
|
|
|
|
|
public function setInvoiceNumber()
|
|
|
|
{
|
|
|
|
$this->blIsNewOrder = 0;
|
|
|
|
|
|
|
|
if (!$this->getOrder()->getFieldData('oxbillnr')) {
|
|
|
|
$this->getOrder()->assign(['oxbillnr' => $this->getOrder()->getNextBillNum()]);
|
|
|
|
|
|
|
|
$this->blIsNewOrder = 1;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
public function setInvoiceDate()
|
|
|
|
{
|
|
|
|
if ($this->getOrder()->getFieldData('oxbilldate') == '0000-00-00') {
|
|
|
|
$this->getOrder()->assign([date('Y-m-d', mktime(0, 0, 0, date('m'), date('d'), date('Y')))]);
|
|
|
|
|
|
|
|
$this->blIsNewOrder = 1;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
public function saveOrderOnChanges()
|
|
|
|
{
|
|
|
|
if ($this->blIsNewOrder) {
|
|
|
|
$this->getOrder()->save();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|