refactor class structure
This commit is contained in:
parent
4154111cc6
commit
d5027d5526
74
Application/Model/AbstractClasses/pdfDocuments_generic.php
Normal file
74
Application/Model/AbstractClasses/pdfDocuments_generic.php
Normal file
@ -0,0 +1,74 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* This Software is the property of Data Development and is protected
|
||||
* by copyright law - it is NOT Freeware.
|
||||
*
|
||||
* Any unauthorized use of this software without a valid license
|
||||
* is a violation of the license agreement and will be prosecuted by
|
||||
* civil and criminal law.
|
||||
*
|
||||
* http://www.shopmodule.com
|
||||
*
|
||||
* @copyright (C) D3 Data Development (Inh. Thomas Dartsch)
|
||||
* @author D3 Data Development - Max Buhe <support@shopmodule.com>
|
||||
* @link http://www.oxidmodule.com
|
||||
*/
|
||||
|
||||
namespace D3\PdfDocuments\Application\Model\AbstractClasses;
|
||||
|
||||
use D3\PdfDocuments\Application\Model\Interfaces\pdfdocuments_generic as genericInterface;
|
||||
use \OxidEsales\Eshop\Application\Model\Order;
|
||||
use OxidEsales\Eshop\Application\Model\Payment;
|
||||
use OxidEsales\Eshop\Application\Model\User;
|
||||
use OxidEsales\Eshop\Core\Base;
|
||||
use OxidEsales\Eshop\Core\Registry;
|
||||
use Spipu\Html2Pdf\Html2Pdf;
|
||||
|
||||
abstract class pdfDocuments_generic implements genericInterface
|
||||
{
|
||||
public function genPdf($sFilename, $iSelLang = 0, $target = 'I')
|
||||
{
|
||||
$oSmarty = Registry::getUtilsView()->getSmarty();
|
||||
|
||||
$oSmarty = $this->setSmartyVars($oSmarty);
|
||||
|
||||
$this->setInvoiceNumber();
|
||||
$this->setInvoiceDate();
|
||||
$this->saveOrderOnChanges();
|
||||
|
||||
$sContent = $oSmarty->fetch($this->getTemplate());
|
||||
$this->setFilename($sContent, $target, $sFilename);
|
||||
}
|
||||
|
||||
public function setSmartyVars($smarty)
|
||||
{
|
||||
$smarty->assign('oConfig', Registry::getSession()->getConfig());
|
||||
$smarty->assign('oViewConf', Registry::getSession()->getConfig()->getActiveView()->getViewConfig());
|
||||
$smarty->assign('order', $this->getOrder());
|
||||
$smarty->assign('shop', Registry::getSession()->getConfig()->getActiveShop());
|
||||
$smarty->assign('lang', Registry::getLang());
|
||||
|
||||
$oUser = oxNew(User::Class);
|
||||
$oUser->load($this->getOrder()->getFieldData('oxuserid'));
|
||||
$smarty->assign('user', $oUser);
|
||||
|
||||
$oPayment = oxNew(Payment::class);
|
||||
$oPayment->load($this->getOrder()->getFieldData('oxpaymenttype'));
|
||||
$smarty->assign('payment', $oPayment);
|
||||
|
||||
return $smarty;
|
||||
}
|
||||
|
||||
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);
|
||||
}
|
||||
}
|
42
Application/Model/AbstractClasses/pdfDocuments_order.php
Normal file
42
Application/Model/AbstractClasses/pdfDocuments_order.php
Normal file
@ -0,0 +1,42 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* This Software is the property of Data Development and is protected
|
||||
* by copyright law - it is NOT Freeware.
|
||||
*
|
||||
* Any unauthorized use of this software without a valid license
|
||||
* is a violation of the license agreement and will be prosecuted by
|
||||
* civil and criminal law.
|
||||
*
|
||||
* http://www.shopmodule.com
|
||||
*
|
||||
* @copyright (C) D3 Data Development (Inh. Thomas Dartsch)
|
||||
* @author D3 Data Development - Max Buhe <support@shopmodule.com>
|
||||
* @link http://www.oxidmodule.com
|
||||
*/
|
||||
|
||||
namespace D3\PdfDocuments\Application\Model\AbstractClasses;
|
||||
|
||||
use D3\PdfDocuments\Application\Model\Interfaces\pdfdocuments_order as orderInterface;
|
||||
use \OxidEsales\Eshop\Application\Model\Order;
|
||||
|
||||
abstract class pdfDocuments_order extends pdfDocuments_generic implements orderInterface
|
||||
{
|
||||
public $oOrder;
|
||||
|
||||
/**
|
||||
* @param Order $order
|
||||
*/
|
||||
public function setOrder(Order $order)
|
||||
{
|
||||
$this->oOrder = $order;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return Order
|
||||
*/
|
||||
public function getOrder()
|
||||
{
|
||||
return $this->oOrder;
|
||||
}
|
||||
}
|
@ -15,13 +15,42 @@
|
||||
* @link http://www.oxidmodule.com
|
||||
*/
|
||||
|
||||
namespace D3\PdfDocuments\Modules\Application\Model;
|
||||
namespace D3\PdfDocuments\Modules\Application\Model\Documents;
|
||||
|
||||
use D3\PdfDocuments\Application\Model\AbstractClasses\pdfDocuments_order;
|
||||
use D3\PdfDocuments\Application\Model\Interfaces\pdfdocuments_orderinvoice;
|
||||
use D3\PdfDocuments\Application\Model\pdfDocuments_abstract;
|
||||
|
||||
class invoicePdf extends pdfDocuments_abstract implements pdfdocuments_orderinvoice
|
||||
class invoicePdf extends pdfDocuments_order implements pdfdocuments_orderinvoice
|
||||
{
|
||||
protected $blIsNewOrder = false;
|
||||
|
||||
public function setInvoiceNumber()
|
||||
{
|
||||
$this->blIsNewOrder = false;
|
||||
|
||||
if (!$this->getOrder()->getFieldData('oxbillnr')) {
|
||||
$this->getOrder()->assign(['oxbillnr' => $this->getOrder()->getNextBillNum()]);
|
||||
|
||||
$this->blIsNewOrder = true;
|
||||
}
|
||||
}
|
||||
|
||||
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 = true;
|
||||
}
|
||||
}
|
||||
|
||||
public function saveOrderOnChanges()
|
||||
{
|
||||
if ($this->blIsNewOrder) {
|
||||
$this->getOrder()->save();
|
||||
}
|
||||
}
|
||||
|
||||
public function getTemplate(){
|
||||
return 'invoice.tpl';
|
||||
}
|
||||
|
@ -17,6 +17,8 @@
|
||||
|
||||
namespace D3\PdfDocuments\Application\Model\Interfaces;
|
||||
|
||||
use OxidEsales\Eshop\Application\Model\Order;
|
||||
|
||||
interface pdfdocuments_order extends pdfdocuments_generic
|
||||
{
|
||||
public function setOrder(Order $order);
|
||||
|
@ -1,112 +0,0 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* This Software is the property of Data Development and is protected
|
||||
* by copyright law - it is NOT Freeware.
|
||||
*
|
||||
* Any unauthorized use of this software without a valid license
|
||||
* is a violation of the license agreement and will be prosecuted by
|
||||
* civil and criminal law.
|
||||
*
|
||||
* http://www.shopmodule.com
|
||||
*
|
||||
* @copyright (C) D3 Data Development (Inh. Thomas Dartsch)
|
||||
* @author D3 Data Development - Max Buhe <support@shopmodule.com>
|
||||
* @link http://www.oxidmodule.com
|
||||
*/
|
||||
|
||||
namespace D3\PdfDocuments\Application\Model;
|
||||
|
||||
use D3\PdfDocuments\Application\Model\Interfaces\pdfdocuments_generic;
|
||||
use \OxidEsales\Eshop\Application\Model\Order;
|
||||
use OxidEsales\Eshop\Application\Model\Payment;
|
||||
use OxidEsales\Eshop\Application\Model\User;
|
||||
use OxidEsales\Eshop\Core\Base;
|
||||
use OxidEsales\Eshop\Core\Registry;
|
||||
use Spipu\Html2Pdf\Html2Pdf;
|
||||
|
||||
abstract class pdfDocuments_abstract implements pdfdocuments_generic
|
||||
{
|
||||
public $oOrder;
|
||||
protected $blIsNewOrder;
|
||||
|
||||
public function genPdf($sFilename, $iSelLang = 0, $target = 'I')
|
||||
{
|
||||
$oSmarty = Registry::getUtilsView()->getSmarty();
|
||||
$oSmarty->assign('oConfig', Registry::getSession()->getConfig());
|
||||
$oSmarty->assign('oViewConf', Registry::getSession()->getConfig()->getActiveView()->getViewConfig());
|
||||
$oSmarty->assign('order', $this->getOrder());
|
||||
$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();
|
||||
|
||||
$sContent = $oSmarty->fetch($this->getTemplate());
|
||||
$this->setFilename($sContent, $target, $sFilename);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param Order $order
|
||||
*/
|
||||
public function setOrder(Order $order)
|
||||
{
|
||||
$this->oOrder = $order;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return Order
|
||||
*/
|
||||
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();
|
||||
}
|
||||
}
|
||||
}
|
@ -17,12 +17,10 @@
|
||||
|
||||
namespace D3\PdfDocuments\Modules\Application\Model;
|
||||
|
||||
use D3\PdfDocuments\Modules\Application\Model\deliverynotePdf;
|
||||
use OxidEsales\EshopCommunity\Application\Model\User;
|
||||
use OxidEsales\EshopCommunity\Application\Model\Payment;
|
||||
use D3\PdfDocuments\Application\Model\Interfaces\pdfdocuments_generic;
|
||||
use D3\PdfDocuments\Modules\Application\Model\Documents\invoicePdf;
|
||||
use OxidEsales\Eshop\Core\Registry;
|
||||
use Spipu\Html2Pdf\Exception\Html2PdfException;
|
||||
use Spipu\Html2Pdf\Html2Pdf;
|
||||
|
||||
class d3_Order_PdfDocuments extends d3_Order_PdfDocuments_parent
|
||||
{
|
||||
@ -57,7 +55,7 @@ class d3_Order_PdfDocuments extends d3_Order_PdfDocuments_parent
|
||||
}
|
||||
|
||||
/**
|
||||
* @return albatros
|
||||
* @return pdfdocuments_generic
|
||||
* @throws \OxidEsales\Eshop\Core\Exception\SystemComponentException
|
||||
* @throws \oxSystemComponentException
|
||||
*/
|
||||
@ -65,6 +63,7 @@ class d3_Order_PdfDocuments extends d3_Order_PdfDocuments_parent
|
||||
{
|
||||
$pdfInvoice= oxNew(invoicePdf::class);
|
||||
$pdfInvoice->setOrder($this);
|
||||
|
||||
return $pdfInvoice;
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user