Compare commits
160 Commits
Author | SHA1 | Date |
---|---|---|
Daniel Seifert | e9987b5221 | |
Daniel Seifert | 010dda9050 | |
Daniel Seifert | 1e91990a28 | |
MaxBUhe | 93fd76de19 | |
Daniel Seifert | da203be4f9 | |
Daniel Seifert | e0ab753ef2 | |
Daniel Seifert | 34498edfa4 | |
Daniel Seifert | 88e3af9a51 | |
Daniel Seifert | d835b64fe3 | |
Daniel Seifert | 66ff1aa732 | |
Daniel Seifert | 31aa9ac3be | |
Daniel Seifert | 76aa27b843 | |
Daniel Seifert | 57839562f2 | |
Daniel Seifert | 2963aced46 | |
Daniel Seifert | 53048b0189 | |
Daniel Seifert | ad00dfdea8 | |
Daniel Seifert | 694fd9f142 | |
Daniel Seifert | d7b279a4aa | |
Daniel Seifert | 293a8a9427 | |
Daniel Seifert | c82fa1f01f | |
Daniel Seifert | 64c1d3f398 | |
Daniel Seifert | 09f6111c4d | |
Daniel Seifert | a8ef16a4b2 | |
Daniel Seifert | 720a506da3 | |
Daniel Seifert | 850976e386 | |
Daniel Seifert | 7d27e27764 | |
Daniel Seifert | f0eb1423ee | |
Daniel Seifert | 282c7d1a12 | |
Daniel Seifert | f86633a260 | |
Daniel Seifert | c353175701 | |
Daniel Seifert | 883b4b18d3 | |
Daniel Seifert | 5d54fa90b4 | |
Daniel Seifert | 201e713672 | |
Daniel Seifert | e1be86ca6b | |
Daniel Seifert | caad509386 | |
Daniel Seifert | 80df5f14cb | |
Daniel Seifert | 4a02e3fd86 | |
Daniel Seifert | 52f904318e | |
Daniel Seifert | 64ddda7825 | |
Daniel Seifert | 772ccfef19 | |
Daniel Seifert | 5541acaab0 | |
Daniel Seifert | 242610a8cf | |
Daniel Seifert | 9c3a2e5680 | |
Daniel Seifert | 0654ae6e26 | |
Daniel Seifert | 28ad51b5e3 | |
Daniel Seifert | cfc3d8104d | |
Daniel Seifert | a2d5dbf6aa | |
Daniel Seifert | 8d0a9e6fac | |
Daniel Seifert | f8f226914d | |
Daniel Seifert | 7c3608efaf | |
Daniel Seifert | 2cf6ce6f4f | |
Daniel Seifert | 2f1c256779 | |
Daniel Seifert | 9cd96631ad | |
Daniel Seifert | 91dfce774f | |
Daniel Seifert | 71d91b4136 | |
Daniel Seifert | b73219f6b5 | |
Daniel Seifert | 484d85e431 | |
Daniel Seifert | bac56b8c56 | |
Daniel Seifert | c7cf568e89 | |
Daniel Seifert | c6e12da6d4 | |
Daniel Seifert | c7da3e2b91 | |
Daniel Seifert | bb1073b894 | |
MaxBUhe | b850cd11ec | |
Daniel Seifert | 7de9a940cd | |
Daniel Seifert | d06c822126 | |
MaxBUhe | a6b6918827 | |
MaxBUhe | 83f58d806b | |
MaxBUhe | 21e819afea | |
MaxBUhe | 5db3bca501 | |
MaxBUhe | 4c64993f03 | |
MaxBUhe | 59b11667f8 | |
MaxBUhe | b3a8269fcd | |
MaxBUhe | ea290f8bf2 | |
MaxBUhe | 2264fa99ca | |
MaxBUhe | 916e0807b4 | |
MaxBUhe | 007ea1a41f | |
MaxBUhe | b72f5088dd | |
MaxBUhe | 9ca4b5c4ef | |
MaxBUhe | 0ea3f0e201 | |
Daniel Seifert | 46f3285322 | |
Daniel Seifert | adff842b8e | |
MaxBUhe | 56d4d08f89 | |
Daniel Seifert | 7019053b50 | |
Daniel Seifert | d49135f6ee | |
MaxBUhe | f9a0dd11e2 | |
Daniel Seifert | 15f02f45f0 | |
Daniel Seifert | 3d0128ed0e | |
MaxBUhe | b20fb0db72 | |
MaxBUhe | 334122ff3a | |
Daniel Seifert | 03984e39e9 | |
Daniel Seifert | cf2c61078a | |
Daniel Seifert | 4c561976a6 | |
Daniel Seifert | 7eb770440d | |
Daniel Seifert | 5232b1e5a5 | |
Daniel Seifert | 5e0b488ca8 | |
MaxBUhe | 0fedcf4d9f | |
MaxBUhe | c5ef48d2fc | |
MaxBUhe | bdec638f14 | |
MaxBUhe | b37280fcbf | |
MaxBUhe | 5135e63a6b | |
MaxBUhe | 95a73b8ef8 | |
Daniel Seifert | 0edb64153a | |
Daniel Seifert | d13dda978d | |
Daniel Seifert | 015e85c942 | |
Daniel Seifert | 0ccbcd07c6 | |
Daniel Seifert | 157d9540b3 | |
Daniel Seifert | 8affd5e4ae | |
Daniel Seifert | ccb8ffe403 | |
MaxBUhe | 6a931daa70 | |
MaxBUhe | 468339da09 | |
MaxBUhe | 109f248457 | |
Daniel Seifert | e9ae890046 | |
Daniel Seifert | 895ea19f89 | |
Daniel Seifert | efdc63225e | |
Daniel Seifert | fa96df326d | |
Daniel Seifert | 3c2dc2df5f | |
Daniel Seifert | 0ecdc1281b | |
Daniel Seifert | f7cfdccefd | |
Daniel Seifert | 3da3d1e3ab | |
Daniel Seifert | eddef3bbbf | |
Daniel Seifert | 5b43b21df1 | |
Daniel Seifert | 1abce50eda | |
Daniel Seifert | 226f56db2e | |
Daniel Seifert | 0749221899 | |
Daniel Seifert | a6378dabe9 | |
Daniel Seifert | caeaa02aa6 | |
Daniel Seifert | 5ffd071954 | |
Daniel Seifert | aa2072d985 | |
Daniel Seifert | 61f0823051 | |
Daniel Seifert | 85c8d76da3 | |
Daniel Seifert | 8437314019 | |
Daniel Seifert | 02d16f4f5e | |
Daniel Seifert | 7357722a8f | |
Daniel Seifert | ac8498044d | |
Daniel Seifert | 738f5ec772 | |
Daniel Seifert | 5465a7eebd | |
Daniel Seifert | 0c36330610 | |
Daniel Seifert | db13ac943c | |
Daniel Seifert | 3969d3695e | |
Daniel Seifert | 02a6022bb6 | |
MaxBUhe | 4eec91e84b | |
MaxBUhe | 3349b72a57 | |
MaxBUhe | 4351677b6e | |
MaxBUhe | a7026c6b6c | |
MaxBUhe | c9e9f8b8a6 | |
MaxBUhe | af76a9f8f6 | |
MaxBUhe | d1a09fc220 | |
MaxBUhe | bfe16ec517 | |
MaxBUhe | cdaad56455 | |
MaxBUhe | c6d916fedd | |
MaxBUhe | 7258d22df1 | |
MaxBUhe | d8e0bda67e | |
MaxBUhe | 59798d12ec | |
MaxBUhe | 64988576c8 | |
MaxBUhe | 0e8737750c | |
MaxBUhe | 9fdaecb37e | |
MaxBUhe | 3aaa2f8e2c | |
MaxBUhe | 703a75962a | |
MaxBUhe | 59e49490b2 | |
Daniel Seifert | e7ad653268 |
|
@ -10,6 +10,8 @@
|
||||||
|
|
||||||
namespace D3\PdfDocuments\Application\Model\AbstractClasses;
|
namespace D3\PdfDocuments\Application\Model\AbstractClasses;
|
||||||
|
|
||||||
|
use Assert\InvalidArgumentException;
|
||||||
|
use D3\ModCfg\Application\Model\d3filesystem;
|
||||||
use D3\PdfDocuments\Application\Model\Exceptions\pdfGeneratorExceptionAbstract;
|
use D3\PdfDocuments\Application\Model\Exceptions\pdfGeneratorExceptionAbstract;
|
||||||
use D3\PdfDocuments\Application\Model\Interfaces\pdfdocumentsGenericInterface as genericInterface;
|
use D3\PdfDocuments\Application\Model\Interfaces\pdfdocumentsGenericInterface as genericInterface;
|
||||||
use OxidEsales\Eshop\Core\Base;
|
use OxidEsales\Eshop\Core\Base;
|
||||||
|
@ -47,7 +49,7 @@ abstract class pdfdocumentsGeneric extends Base implements genericInterface
|
||||||
parent::__construct();
|
parent::__construct();
|
||||||
|
|
||||||
/** @var Smarty $oSmarty */
|
/** @var Smarty $oSmarty */
|
||||||
$this->oSmarty = Registry::getUtilsView()->getSmarty();
|
$this->oSmarty = Registry::getUtilsView()->getSmarty(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function runPreAction()
|
public function runPreAction()
|
||||||
|
@ -93,6 +95,9 @@ abstract class pdfdocumentsGeneric extends Base implements genericInterface
|
||||||
} catch (pdfGeneratorExceptionAbstract $e) {
|
} catch (pdfGeneratorExceptionAbstract $e) {
|
||||||
Registry::get(UtilsView::class)->addErrorToDisplay($e);
|
Registry::get(UtilsView::class)->addErrorToDisplay($e);
|
||||||
Registry::getLogger()->error($e);
|
Registry::getLogger()->error($e);
|
||||||
|
} catch (InvalidArgumentException $e) {
|
||||||
|
Registry::get(UtilsView::class)->addErrorToDisplay($e);
|
||||||
|
Registry::getLogger()->error($e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -116,6 +121,9 @@ abstract class pdfdocumentsGeneric extends Base implements genericInterface
|
||||||
} catch (pdfGeneratorExceptionAbstract $e) {
|
} catch (pdfGeneratorExceptionAbstract $e) {
|
||||||
Registry::get(UtilsView::class)->addErrorToDisplay($e);
|
Registry::get(UtilsView::class)->addErrorToDisplay($e);
|
||||||
Registry::getLogger()->error($e);
|
Registry::getLogger()->error($e);
|
||||||
|
} catch (InvalidArgumentException $e) {
|
||||||
|
Registry::get(UtilsView::class)->addErrorToDisplay($e);
|
||||||
|
Registry::getLogger()->error($e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -136,6 +144,9 @@ abstract class pdfdocumentsGeneric extends Base implements genericInterface
|
||||||
} catch (pdfGeneratorExceptionAbstract $e) {
|
} catch (pdfGeneratorExceptionAbstract $e) {
|
||||||
Registry::get(UtilsView::class)->addErrorToDisplay($e);
|
Registry::get(UtilsView::class)->addErrorToDisplay($e);
|
||||||
Registry::getLogger()->error($e);
|
Registry::getLogger()->error($e);
|
||||||
|
} catch (InvalidArgumentException $e) {
|
||||||
|
Registry::get(UtilsView::class)->addErrorToDisplay($e);
|
||||||
|
Registry::getLogger()->error($e);
|
||||||
}
|
}
|
||||||
|
|
||||||
return null;
|
return null;
|
||||||
|
@ -158,6 +169,7 @@ abstract class pdfdocumentsGeneric extends Base implements genericInterface
|
||||||
* @param int $iSelLang
|
* @param int $iSelLang
|
||||||
*
|
*
|
||||||
* @return mixed
|
* @return mixed
|
||||||
|
* @throws InvalidArgumentException
|
||||||
*/
|
*/
|
||||||
public function getHTMLContent($iSelLang = 0)
|
public function getHTMLContent($iSelLang = 0)
|
||||||
{
|
{
|
||||||
|
@ -218,15 +230,15 @@ abstract class pdfdocumentsGeneric extends Base implements genericInterface
|
||||||
{
|
{
|
||||||
// forced filename from setFilename()
|
// forced filename from setFilename()
|
||||||
if ($this->filename) {
|
if ($this->filename) {
|
||||||
return $this->addFilenameExtension(
|
return $this->makeValidFileName(
|
||||||
$this->makeValidFileName(
|
$this->addFilenameExtension(
|
||||||
$this->filename
|
$this->filename
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
return $this->addFilenameExtension(
|
return $this->makeValidFileName(
|
||||||
$this->makeValidFileName(
|
$this->addFilenameExtension(
|
||||||
$this->getTypeForFilename()
|
$this->getTypeForFilename()
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
@ -241,7 +253,7 @@ abstract class pdfdocumentsGeneric extends Base implements genericInterface
|
||||||
{
|
{
|
||||||
$extension = $this->filenameExtension;
|
$extension = $this->filenameExtension;
|
||||||
$extensionLength = (strlen($extension) + 1) * -1;
|
$extensionLength = (strlen($extension) + 1) * -1;
|
||||||
if ((bool) strlen($extension) && substr($filename, $extensionLength) != '.'.$extension) {
|
if (strlen($extension) && substr($filename, $extensionLength) != '.'.$extension) {
|
||||||
$filename .= '.'.$extension;
|
$filename .= '.'.$extension;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -257,10 +269,8 @@ abstract class pdfdocumentsGeneric extends Base implements genericInterface
|
||||||
*/
|
*/
|
||||||
public function makeValidFileName($sFilename)
|
public function makeValidFileName($sFilename)
|
||||||
{
|
{
|
||||||
$sFilename = preg_replace('/[\s]+/', '_', $sFilename);
|
$fs = oxNew(d3filesystem::class);
|
||||||
$sFilename = preg_replace('/[^a-zA-Z0-9_\.-]/', '', $sFilename);
|
return $fs->filterFilename($sFilename);
|
||||||
|
|
||||||
return str_replace(' ', '_', $sFilename);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -305,7 +315,7 @@ abstract class pdfdocumentsGeneric extends Base implements genericInterface
|
||||||
if (ob_get_contents()) {
|
if (ob_get_contents()) {
|
||||||
$oPdf->pdf->Error('Some data has already been output, can\'t send PDF file');
|
$oPdf->pdf->Error('Some data has already been output, can\'t send PDF file');
|
||||||
}
|
}
|
||||||
if (php_sapi_name() != 'cli') {
|
if (substr(php_sapi_name(), 0, 3) != 'cli') {
|
||||||
//We send to a browser
|
//We send to a browser
|
||||||
header('Content-Type: text/html');
|
header('Content-Type: text/html');
|
||||||
if (headers_sent()) {
|
if (headers_sent()) {
|
||||||
|
|
|
@ -10,9 +10,10 @@
|
||||||
|
|
||||||
namespace D3\PdfDocuments\Application\Model\AbstractClasses;
|
namespace D3\PdfDocuments\Application\Model\AbstractClasses;
|
||||||
|
|
||||||
use D3\PdfDocuments\Application\Model\Exceptions\noBaseObjectSetException;
|
use Assert\Assert;
|
||||||
|
use Assert\InvalidArgumentException;
|
||||||
use D3\PdfDocuments\Application\Model\Interfaces\pdfdocumentsOrderInterface as orderInterface;
|
use D3\PdfDocuments\Application\Model\Interfaces\pdfdocumentsOrderInterface as orderInterface;
|
||||||
use \OxidEsales\Eshop\Application\Model\Order;
|
use OxidEsales\Eshop\Application\Model\Order;
|
||||||
use OxidEsales\Eshop\Application\Model\Payment;
|
use OxidEsales\Eshop\Application\Model\Payment;
|
||||||
use OxidEsales\Eshop\Application\Model\User;
|
use OxidEsales\Eshop\Application\Model\User;
|
||||||
use OxidEsales\Eshop\Core\Registry;
|
use OxidEsales\Eshop\Core\Registry;
|
||||||
|
@ -22,6 +23,14 @@ abstract class pdfdocumentsOrder extends pdfdocumentsGeneric implements orderInt
|
||||||
/** @var Order */
|
/** @var Order */
|
||||||
public $oOrder;
|
public $oOrder;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* don't use order as constructor argument because of same method interface for all document types
|
||||||
|
*/
|
||||||
|
public function __construct()
|
||||||
|
{
|
||||||
|
parent::__construct();
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param Order $order
|
* @param Order $order
|
||||||
*/
|
*/
|
||||||
|
@ -31,15 +40,22 @@ abstract class pdfdocumentsOrder extends pdfdocumentsGeneric implements orderInt
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
* @throws InvalidArgumentException
|
||||||
* @return Order
|
* @return Order
|
||||||
*/
|
*/
|
||||||
public function getOrder()
|
public function getOrder()
|
||||||
{
|
{
|
||||||
|
Assert::lazy()
|
||||||
|
->that($this->oOrder)->isInstanceOf(Order::class, 'no order for pdf generator set')
|
||||||
|
->that($this->oOrder->isLoaded())->true('given order is not loaded')
|
||||||
|
->verifyNow();
|
||||||
|
|
||||||
return $this->oOrder;
|
return $this->oOrder;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param int $iSelLang
|
* @param int $iSelLang
|
||||||
|
* @throws InvalidArgumentException
|
||||||
*/
|
*/
|
||||||
public function setSmartyVars($iSelLang)
|
public function setSmartyVars($iSelLang)
|
||||||
{
|
{
|
||||||
|
@ -58,13 +74,14 @@ abstract class pdfdocumentsOrder extends pdfdocumentsGeneric implements orderInt
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return string
|
* @return string
|
||||||
|
* @throws InvalidArgumentException
|
||||||
*/
|
*/
|
||||||
public function getFilename()
|
public function getFilename()
|
||||||
{
|
{
|
||||||
// forced filename from setFilename()
|
// forced filename from setFilename()
|
||||||
if ($this->filename) {
|
if ($this->filename) {
|
||||||
return $this->addFilenameExtension(
|
return $this->makeValidFileName(
|
||||||
$this->makeValidFileName(
|
$this->addFilenameExtension(
|
||||||
$this->filename
|
$this->filename
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
@ -72,8 +89,8 @@ abstract class pdfdocumentsOrder extends pdfdocumentsGeneric implements orderInt
|
||||||
|
|
||||||
$sTrimmedBillName = trim($this->getOrder()->getFieldData('oxbilllname'));
|
$sTrimmedBillName = trim($this->getOrder()->getFieldData('oxbilllname'));
|
||||||
|
|
||||||
return $this->addFilenameExtension(
|
return $this->makeValidFileName(
|
||||||
$this->makeValidFileName(
|
$this->addFilenameExtension(
|
||||||
implode(
|
implode(
|
||||||
'_',
|
'_',
|
||||||
[
|
[
|
||||||
|
@ -86,21 +103,6 @@ abstract class pdfdocumentsOrder extends pdfdocumentsGeneric implements orderInt
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* @param $sFilename
|
|
||||||
* @param int $iSelLang
|
|
||||||
* @param string $target
|
|
||||||
* @return mixed|string|null
|
|
||||||
*/
|
|
||||||
public function genPdf($sFilename, $iSelLang = 0, $target = 'I')
|
|
||||||
{
|
|
||||||
if (false == $this->getOrder()) {
|
|
||||||
throw oxNew(noBaseObjectSetException::class);
|
|
||||||
}
|
|
||||||
|
|
||||||
return parent::genPdf($sFilename, $iSelLang, $target);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return int
|
* @return int
|
||||||
*/
|
*/
|
||||||
|
@ -115,6 +117,7 @@ abstract class pdfdocumentsOrder extends pdfdocumentsGeneric implements orderInt
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return false|string
|
* @return false|string
|
||||||
|
* @throws InvalidArgumentException
|
||||||
*/
|
*/
|
||||||
public function getPayableUntilDate()
|
public function getPayableUntilDate()
|
||||||
{
|
{
|
||||||
|
|
|
@ -10,10 +10,9 @@
|
||||||
|
|
||||||
namespace D3\PdfDocuments\Application\Model\Documents;
|
namespace D3\PdfDocuments\Application\Model\Documents;
|
||||||
|
|
||||||
|
use Assert\InvalidArgumentException;
|
||||||
use D3\PdfDocuments\Application\Model\AbstractClasses\pdfdocumentsOrder;
|
use D3\PdfDocuments\Application\Model\AbstractClasses\pdfdocumentsOrder;
|
||||||
use D3\PdfDocuments\Application\Model\Exceptions\noBaseObjectSetException;
|
|
||||||
use D3\PdfDocuments\Application\Model\Interfaces\pdfdocumentsOrderinvoiceInterface;
|
use D3\PdfDocuments\Application\Model\Interfaces\pdfdocumentsOrderinvoiceInterface;
|
||||||
use Spipu\Html2Pdf\Exception\Html2PdfException;
|
|
||||||
|
|
||||||
class invoicePdf extends pdfdocumentsOrder implements pdfdocumentsOrderinvoiceInterface
|
class invoicePdf extends pdfdocumentsOrder implements pdfdocumentsOrderinvoiceInterface
|
||||||
{
|
{
|
||||||
|
@ -43,6 +42,10 @@ class invoicePdf extends pdfdocumentsOrder implements pdfdocumentsOrderinvoiceIn
|
||||||
return 'invoice';
|
return 'invoice';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return void
|
||||||
|
* @throws InvalidArgumentException
|
||||||
|
*/
|
||||||
public function runPreAction()
|
public function runPreAction()
|
||||||
{
|
{
|
||||||
parent::runPreAction();
|
parent::runPreAction();
|
||||||
|
@ -52,10 +55,12 @@ class invoicePdf extends pdfdocumentsOrder implements pdfdocumentsOrderinvoiceIn
|
||||||
$this->saveOrderOnChanges();
|
$this->saveOrderOnChanges();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return void
|
||||||
|
* @throws InvalidArgumentException
|
||||||
|
*/
|
||||||
public function setInvoiceNumber()
|
public function setInvoiceNumber()
|
||||||
{
|
{
|
||||||
$this->blIsNewOrder = false;
|
|
||||||
|
|
||||||
if (!$this->getOrder()->getFieldData('oxbillnr')) {
|
if (!$this->getOrder()->getFieldData('oxbillnr')) {
|
||||||
$this->getOrder()->assign(['oxbillnr' => $this->getOrder()->getNextBillNum()]);
|
$this->getOrder()->assign(['oxbillnr' => $this->getOrder()->getNextBillNum()]);
|
||||||
|
|
||||||
|
@ -63,6 +68,10 @@ class invoicePdf extends pdfdocumentsOrder implements pdfdocumentsOrderinvoiceIn
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return void
|
||||||
|
* @throws InvalidArgumentException
|
||||||
|
*/
|
||||||
public function setInvoiceDate()
|
public function setInvoiceDate()
|
||||||
{
|
{
|
||||||
if ($this->getOrder()->getFieldData('oxbilldate') == '0000-00-00') {
|
if ($this->getOrder()->getFieldData('oxbilldate') == '0000-00-00') {
|
||||||
|
@ -74,6 +83,10 @@ class invoicePdf extends pdfdocumentsOrder implements pdfdocumentsOrderinvoiceIn
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return void
|
||||||
|
* @throws InvalidArgumentException
|
||||||
|
*/
|
||||||
public function saveOrderOnChanges()
|
public function saveOrderOnChanges()
|
||||||
{
|
{
|
||||||
if ($this->blIsNewOrder) {
|
if ($this->blIsNewOrder) {
|
||||||
|
@ -87,6 +100,7 @@ class invoicePdf extends pdfdocumentsOrder implements pdfdocumentsOrderinvoiceIn
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return string
|
* @return string
|
||||||
|
* @throws InvalidArgumentException
|
||||||
*/
|
*/
|
||||||
public function getFilename()
|
public function getFilename()
|
||||||
{
|
{
|
||||||
|
|
|
@ -1,21 +0,0 @@
|
||||||
<?php
|
|
||||||
|
|
||||||
/**
|
|
||||||
* See LICENSE file for license details.
|
|
||||||
*
|
|
||||||
* @copyright (C) D3 Data Development (Inh. Thomas Dartsch)
|
|
||||||
* @author D3 Data Development - Daniel Seifert <support@shopmodule.com>
|
|
||||||
* @link http://www.oxidmodule.com
|
|
||||||
*/
|
|
||||||
|
|
||||||
namespace D3\PdfDocuments\Application\Model\Exceptions;
|
|
||||||
|
|
||||||
use Exception;
|
|
||||||
|
|
||||||
class noBaseObjectSetException extends pdfGeneratorExceptionAbstract
|
|
||||||
{
|
|
||||||
public function __construct( $sMessage = "no base object (e.g. order) for pdf generator set", $iCode = 0, Exception $previous = null )
|
|
||||||
{
|
|
||||||
parent::__construct( $sMessage, $iCode, $previous );
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -10,8 +10,6 @@
|
||||||
|
|
||||||
namespace D3\PdfDocuments\Application\Model\Interfaces;
|
namespace D3\PdfDocuments\Application\Model\Interfaces;
|
||||||
|
|
||||||
use D3\PdfDocuments\Application\Model\Exceptions\noBaseObjectSetException;
|
|
||||||
|
|
||||||
interface pdfdocumentsGenericInterface
|
interface pdfdocumentsGenericInterface
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
|
@ -58,7 +56,6 @@ interface pdfdocumentsGenericInterface
|
||||||
* @param string $target
|
* @param string $target
|
||||||
*
|
*
|
||||||
* @return mixed
|
* @return mixed
|
||||||
* @throws noBaseObjectSetException
|
|
||||||
*/
|
*/
|
||||||
public function genPdf($sFilename, $iSelLang = 0, $target = 'I');
|
public function genPdf($sFilename, $iSelLang = 0, $target = 'I');
|
||||||
|
|
||||||
|
|
|
@ -10,6 +10,7 @@
|
||||||
|
|
||||||
namespace D3\PdfDocuments\Application\Model\Interfaces;
|
namespace D3\PdfDocuments\Application\Model\Interfaces;
|
||||||
|
|
||||||
|
use Assert\InvalidArgumentException;
|
||||||
use OxidEsales\Eshop\Application\Model\Order;
|
use OxidEsales\Eshop\Application\Model\Order;
|
||||||
|
|
||||||
interface pdfdocumentsOrderInterface extends pdfdocumentsGenericInterface
|
interface pdfdocumentsOrderInterface extends pdfdocumentsGenericInterface
|
||||||
|
@ -20,6 +21,7 @@ interface pdfdocumentsOrderInterface extends pdfdocumentsGenericInterface
|
||||||
public function setOrder(Order $order);
|
public function setOrder(Order $order);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
* @throws InvalidArgumentException
|
||||||
* @return Order
|
* @return Order
|
||||||
*/
|
*/
|
||||||
public function getOrder();
|
public function getOrder();
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
[{assign var="defaultPagePadding" value=","|explode:"45,15,25,25"}] [{* top, right, bottom, left *}]
|
[{assign var="defaultPagePadding" value=","|explode:"45,15,25,25"}] [{* top, right, bottom, left *}]
|
||||||
[{assign var="pagePadding" value=$pagePadding|default:$defaultPagePadding}]
|
[{assign var="pagePadding" value=$pagePadding|default:$defaultPagePadding}]
|
||||||
|
|
||||||
<style type="text/css">
|
<style>
|
||||||
.marks {
|
.marks {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
left: [{math equation="left - padding" left=5 padding=$pagePadding.3}]mm ;
|
left: [{math equation="left - padding" left=5 padding=$pagePadding.3}]mm ;
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
[{* rulers *}]
|
[{* rulers *}]
|
||||||
[{* include file="d3pdfrulers.tpl" pagePadding=$pagePadding *}]
|
[{* include file="d3pdfrulers.tpl" pagePadding=$pagePadding *}]
|
||||||
|
|
||||||
<style type="text/css">
|
<style>
|
||||||
.rulerItemHorizontal {
|
.rulerItemHorizontal {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
top: -[{$pagePadding.0}]mm;
|
top: -[{$pagePadding.0}]mm;
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
[{assign var="defaultPagePadding" value=","|explode:"45,15,25,25"}] [{* top, right, bottom, left *}]
|
[{assign var="defaultPagePadding" value=","|explode:"45,15,25,25"}] [{* top, right, bottom, left *}]
|
||||||
[{assign var="pagePadding" value=$pagePadding|default:$defaultPagePadding}]
|
[{assign var="pagePadding" value=$pagePadding|default:$defaultPagePadding}]
|
||||||
|
|
||||||
<style type="text/css">
|
<style>
|
||||||
[{foreach from=$pdfBlock_style item="_block"}]
|
[{foreach from=$pdfBlock_style item="_block"}]
|
||||||
[{$_block}]
|
[{$_block}]
|
||||||
[{/foreach}]
|
[{/foreach}]
|
||||||
|
|
|
@ -11,11 +11,9 @@
|
||||||
namespace D3\PdfDocuments\Modules\Application\Controller;
|
namespace D3\PdfDocuments\Modules\Application\Controller;
|
||||||
|
|
||||||
use D3\PdfDocuments\Application\Controller\orderOverviewPdfGenerator;
|
use D3\PdfDocuments\Application\Controller\orderOverviewPdfGenerator;
|
||||||
use D3\PdfDocuments\Application\Model\Exceptions\noBaseObjectSetException;
|
|
||||||
use D3\PdfDocuments\Application\Model\Exceptions\noPdfHandlerFoundException;
|
use D3\PdfDocuments\Application\Model\Exceptions\noPdfHandlerFoundException;
|
||||||
use D3\PdfDocuments\Application\Model\Exceptions\pdfGeneratorExceptionAbstract;
|
use D3\PdfDocuments\Application\Model\Exceptions\pdfGeneratorExceptionAbstract;
|
||||||
use D3\PdfDocuments\Application\Model\Registries\registryOrderoverview;
|
use D3\PdfDocuments\Application\Model\Registries\registryOrderoverview;
|
||||||
use D3\PdfDocuments\Modules\Application\Model\d3_Order_PdfDocuments;
|
|
||||||
use OxidEsales\Eshop\Application\Controller\Admin\OrderOverview;
|
use OxidEsales\Eshop\Application\Controller\Admin\OrderOverview;
|
||||||
use OxidEsales\Eshop\Application\Model\Order;
|
use OxidEsales\Eshop\Application\Model\Order;
|
||||||
use OxidEsales\Eshop\Core\DatabaseProvider;
|
use OxidEsales\Eshop\Core\DatabaseProvider;
|
||||||
|
@ -45,12 +43,11 @@ class d3_overview_controller_pdfdocuments extends d3_overview_controller_pdfdocu
|
||||||
$viewNameGenerator = Registry::get(TableViewNameGenerator::class);
|
$viewNameGenerator = Registry::get(TableViewNameGenerator::class);
|
||||||
$sTable = $viewNameGenerator->getViewName("oxorderarticles");
|
$sTable = $viewNameGenerator->getViewName("oxorderarticles");
|
||||||
|
|
||||||
$sQ = "select count(oxid) from {$sTable} where oxorderid = " . $masterDb->quote($sOrderId) . " and oxstorno = 0";
|
$sQ = "select count(oxid) from $sTable where oxorderid = " . $masterDb->quote($sOrderId) . " and oxstorno = 0";
|
||||||
return (bool) $masterDb->getOne($sQ);
|
return (bool) $masterDb->getOne($sQ);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @throws noBaseObjectSetException
|
|
||||||
* @throws noPdfHandlerFoundException
|
* @throws noPdfHandlerFoundException
|
||||||
* @throws pdfGeneratorExceptionAbstract
|
* @throws pdfGeneratorExceptionAbstract
|
||||||
*/
|
*/
|
||||||
|
@ -58,7 +55,7 @@ class d3_overview_controller_pdfdocuments extends d3_overview_controller_pdfdocu
|
||||||
{
|
{
|
||||||
$soxId = $this->getEditObjectId();
|
$soxId = $this->getEditObjectId();
|
||||||
if ($soxId != "-1" && isset($soxId)) {
|
if ($soxId != "-1" && isset($soxId)) {
|
||||||
/** @var d3_Order_PdfDocuments $oOrder */
|
/** @var Order $oOrder */
|
||||||
$oOrder = oxNew(Order::class);
|
$oOrder = oxNew(Order::class);
|
||||||
if ($oOrder->load($soxId)) {
|
if ($oOrder->load($soxId)) {
|
||||||
$generator = oxNew( orderOverviewPdfGenerator::class );
|
$generator = oxNew( orderOverviewPdfGenerator::class );
|
||||||
|
|
|
@ -13,7 +13,7 @@ The module can be easily extended to adapt existing documents or add new ones. E
|
||||||
## System requirements:
|
## System requirements:
|
||||||
|
|
||||||
- installed OXID eShop version from 6.1
|
- installed OXID eShop version from 6.1
|
||||||
- PHP version for which installation packages are available (PHP 7)
|
- PHP version for which installation packages are available (PHP 7 + 8)
|
||||||
- Installation via Composer
|
- Installation via Composer
|
||||||
|
|
||||||
## Compatibility:
|
## Compatibility:
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
|
|
||||||
PDF-Dokumentgenerator fĂĽr OXID eShop
|
PDF-Dokumentgenerator fĂĽr OXID eShop
|
||||||
|
|
||||||
Erstellen Sie unterschiedlichste statische oder dynamische PDF-Dokument auf Kopfdruck. Der Dokumentinhalt wird aus Smartytemplates erstellt.
|
Erstellen Sie unterschiedliche statische oder dynamische PDF-Dokumente auf Kopfdruck. Der Dokumentinhalt wird aus Smartytemplates erstellt.
|
||||||
|
|
||||||
An den Bestellungen Ihres OXID-Shops steht Ihnen die Erstellung von Rechnung und Lieferschein zur VerfĂĽgung.
|
An den Bestellungen Ihres OXID-Shops steht Ihnen die Erstellung von Rechnung und Lieferschein zur VerfĂĽgung.
|
||||||
|
|
||||||
|
@ -13,7 +13,7 @@ Das Modul kann einfach erweitert werden, um bestehende Dokumente anzupassen oder
|
||||||
## Systemanforderungen:
|
## Systemanforderungen:
|
||||||
|
|
||||||
- installierter OXID eShop in Version ab 6.1
|
- installierter OXID eShop in Version ab 6.1
|
||||||
- PHP-Version, fĂĽr die Installationspakete verfĂĽgbar sind (PHP 7)
|
- PHP-Version, fĂĽr die Installationspakete verfĂĽgbar sind (PHP 7 + 8)
|
||||||
- Installation via Composer
|
- Installation via Composer
|
||||||
|
|
||||||
## Kompatibilität:
|
## Kompatibilität:
|
||||||
|
|
|
@ -31,9 +31,11 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
"php": "^7.0",
|
"php": "^7.0 || ^8.0",
|
||||||
"oxid-esales/oxideshop-ce": "6.3 - 6.5",
|
"oxid-esales/oxideshop-ce": "6.3 - 6.14",
|
||||||
"spipu/html2pdf": "^5.2"
|
"spipu/html2pdf": "^5.2",
|
||||||
|
"d3/modcfg": "^5.3.6.000 || ^6",
|
||||||
|
"beberlei/assert": "^3.3.2"
|
||||||
},
|
},
|
||||||
"autoload": {
|
"autoload": {
|
||||||
"psr-4": {
|
"psr-4": {
|
||||||
|
|
|
@ -2,15 +2,42 @@
|
||||||
title: Changelog
|
title: Changelog
|
||||||
---
|
---
|
||||||
|
|
||||||
## 1.0.1.0 - (2020-08-20)
|
All notable changes to this project will be documented in this file.
|
||||||
|
|
||||||
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
||||||
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
||||||
|
|
||||||
|
## [Unreleased](https://git.d3data.de/D3Public/pdfdokumente/compare/1.0.4.0...rel_1.x)
|
||||||
|
|
||||||
|
## [1.0.4.0](https://git.d3data.de/D3Public/pdfdokumente/compare/1.0.3.1...1.0.4.0) - 2023-12-22
|
||||||
|
### Added
|
||||||
|
- installierbar in OXID 6.5.2 + 6.5.3 (CE 6.14)
|
||||||
|
- Modullogo
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
- behandelt fehlende Bestellung bei auf Bestellungen basierenden Dokumenten
|
||||||
|
|
||||||
|
## [1.0.3.1](https://git.d3data.de/D3Public/pdfdokumente/compare/1.0.3.0...1.0.3.1) - 2023-05-09
|
||||||
|
### Fixed
|
||||||
|
- kann mehrere Dokumente auf einmal generieren
|
||||||
|
|
||||||
|
## [1.0.3.0](https://git.d3data.de/D3Public/pdfdokumente/compare/1.0.2.0...1.0.3.0) - 2023-01-04
|
||||||
|
### Added
|
||||||
|
- installierbar in OXID 6.4 und 6.5
|
||||||
|
|
||||||
|
## [1.0.2.0](https://git.d3data.de/D3Public/pdfdokumente/compare/1.0.1.0...1.0.2.0) - 2021-04-30
|
||||||
|
### Added
|
||||||
|
- installierbar in OXID 6.2.4 und 6.3.0
|
||||||
|
- Dateinamen werden auf GĂĽltigkeit hin korrigiert
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
- Setzen der Rechnungsnummer setzt den "neue Bestellung"-Status nicht zurĂĽck
|
||||||
|
|
||||||
|
## [1.0.1.0](https://git.d3data.de/D3Public/pdfdokumente/compare/1.0.0.0...1.0.1.0) - 2020-08-20
|
||||||
### Changed
|
### Changed
|
||||||
- Dokumentid fĂĽr "Rechnung ohne Logo" angepasst
|
- Dokumentid fĂĽr "Rechnung ohne Logo" angepasst
|
||||||
|
|
||||||
---
|
## [1.0.1.0](https://git.d3data.de/D3Public/pdfdokumente/tag/1.0.0.0) - 2020-08-13
|
||||||
|
|
||||||
## 1.0.0.0 - (2020-08-13)
|
|
||||||
|
|
||||||
#### Added
|
#### Added
|
||||||
- Framework zur Erstellung unterschiedlichster PDF Dokumente
|
- Framework zur Erstellung unterschiedlichster PDF Dokumente
|
||||||
- ermöglicht Generierung von Rechnungen und Lieferscheinen für Bestellungen aus dem Adminbereich
|
- ermöglicht Generierung von Rechnungen und Lieferscheinen für Bestellungen aus dem Adminbereich
|
||||||
|
|
|
@ -1,9 +1,9 @@
|
||||||
{
|
{
|
||||||
"title": "<i class='fab fa-d3 d3fa-color-blue'></i> PDF Dokumente",
|
"title": "<i class='fab fa-d3 d3fa-color-blue'></i> PDF Dokumente",
|
||||||
"moduleversion": "1.0.1.0",
|
"moduleversion": "1.0.4.0",
|
||||||
"titledesc": "fĂĽr den Oxid eShop",
|
"titledesc": "fĂĽr den Oxid eShop",
|
||||||
"author": "DÂł Data Development",
|
"author": "DÂł Data Development",
|
||||||
"moduledate": "20.08.2020",
|
"moduledate": "22.12.2023",
|
||||||
"editors": "",
|
"editors": "",
|
||||||
"tagline": "",
|
"tagline": "",
|
||||||
"image": "",
|
"image": "",
|
||||||
|
|
|
@ -3,13 +3,17 @@ title: Systemanforderungen
|
||||||
---
|
---
|
||||||
|
|
||||||
* PHP Version
|
* PHP Version
|
||||||
* 7.0.x bis 7.4.x
|
* 7.0.x bis 8.x
|
||||||
* Shopversionen / -editionen
|
* Shopversionen / -editionen
|
||||||
* OXID eShop Community Edition (CE), Professional Edition (PE) oder Enterprise Edition (EE) in Compilation Version
|
* OXID eShop Community Edition (CE), Professional Edition (PE) oder Enterprise Edition (EE) in Compilation Version
|
||||||
* 6.1.x
|
* 6.1.x
|
||||||
* 6.2.x
|
* 6.2.x
|
||||||
|
* 6.3.x
|
||||||
|
* 6.4.x
|
||||||
|
* 6.5.x
|
||||||
* Themes
|
* Themes
|
||||||
* Diese Modul bindet sich nicht in Frontendthemes ein und ist daher davon unabhängig
|
* Diese Modul bindet sich nicht in Frontendthemes ein und ist daher davon unabhängig
|
||||||
|
* (D3) Modul-Connector ([kostenfrei bei D3 erhältlich](https://www.oxidmodule.com/connector/)) ab Version 5.3.6.0
|
||||||
* Template-Engine
|
* Template-Engine
|
||||||
* Smarty
|
* Smarty
|
||||||
* Installation via [Composer](https://getcomposer.org)
|
* Installation via [Composer](https://getcomposer.org)
|
||||||
|
|
|
@ -28,15 +28,16 @@ $aModule = [
|
||||||
'de' => $logo.' PDF-Dokumente',
|
'de' => $logo.' PDF-Dokumente',
|
||||||
'en' => $logo.' PDF documents',
|
'en' => $logo.' PDF documents',
|
||||||
],
|
],
|
||||||
'version' => '1.0.1.0',
|
'version' => '1.0.4.0',
|
||||||
'author' => 'D³ Data Development (Inh.: Thomas Dartsch)',
|
'author' => 'D³ Data Development (Inh.: Thomas Dartsch)',
|
||||||
'email' => 'support@shopmodule.com',
|
'email' => 'support@shopmodule.com',
|
||||||
'url' => 'http://www.oxidmodule.com/',
|
'url' => 'https://www.oxidmodule.com/',
|
||||||
'extend' => [
|
'extend' => [
|
||||||
OrderOverview::class => d3_overview_controller_pdfdocuments::class
|
OrderOverview::class => d3_overview_controller_pdfdocuments::class
|
||||||
],
|
],
|
||||||
'controllers' => [],
|
'controllers' => [],
|
||||||
'templates' => [
|
'thumbnail' => 'picture.svg',
|
||||||
|
'templates' => [
|
||||||
'd3orderoverview_pdfform.tpl' => 'd3/pdfdocuments/Application/views/tpl/admin/orderoverview_pdfform.tpl',
|
'd3orderoverview_pdfform.tpl' => 'd3/pdfdocuments/Application/views/tpl/admin/orderoverview_pdfform.tpl',
|
||||||
|
|
||||||
'd3deliverynote_pdf.tpl' => 'd3/pdfdocuments/Application/views/tpl/documents/deliverynote/deliverynote.tpl',
|
'd3deliverynote_pdf.tpl' => 'd3/pdfdocuments/Application/views/tpl/documents/deliverynote/deliverynote.tpl',
|
||||||
|
|
|
@ -0,0 +1,57 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!-- Generator: Adobe Illustrator 14.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 43363) -->
|
||||||
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||||
|
<svg version="1.1" id="Ebene_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||||
|
width="201px" height="124px" viewBox="0 0 201 124" enable-background="new 0 0 201 124" xml:space="preserve">
|
||||||
|
<g>
|
||||||
|
<linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="47.0591" y1="67.5117" x2="47.0591" y2="54.6143">
|
||||||
|
<stop offset="0.0056" style="stop-color:#3266A9"/>
|
||||||
|
<stop offset="1" style="stop-color:#0099FF"/>
|
||||||
|
</linearGradient>
|
||||||
|
<path fill="url(#SVGID_1_)" d="M50.282,55.502c-0.784-0.592-2.104-0.888-3.961-0.888h-1.376l-2.283,12.898h1.779
|
||||||
|
c3.76,0,6.032-2.245,6.815-6.733c0.134-0.871,0.202-1.642,0.202-2.313C51.457,57.081,51.064,56.093,50.282,55.502z"/>
|
||||||
|
<linearGradient id="SVGID_2_" gradientUnits="userSpaceOnUse" x1="65.9609" y1="49.104" x2="65.9609" y2="36.9434">
|
||||||
|
<stop offset="0.0056" style="stop-color:#3266A9"/>
|
||||||
|
<stop offset="1" style="stop-color:#0099FF"/>
|
||||||
|
</linearGradient>
|
||||||
|
<path fill="url(#SVGID_2_)" d="M65.72,40.482c1.074,0,1.611,0.381,1.611,1.143c0,0.701-0.321,1.201-0.962,1.5
|
||||||
|
c-0.209,0.119-0.366,0.194-0.471,0.224c-0.065,0.019-0.158,0.037-0.271,0.056c1.98,1.621,3.702,3.544,5.097,5.699
|
||||||
|
c0.117-0.321,0.21-0.658,0.277-1.013l0.09-1.008c0-1.223-0.568-2.081-1.701-2.574c0.776-0.402,1.376-0.94,1.801-1.611
|
||||||
|
c0.425-0.672,0.638-1.418,0.638-2.239c0-0.642-0.198-1.265-0.593-1.868c-0.396-0.605-0.98-1.049-1.757-1.333
|
||||||
|
c-0.433-0.193-0.876-0.328-1.332-0.402c-0.456-0.075-1.003-0.113-1.645-0.113c-0.82,0-1.663,0.124-2.529,0.37
|
||||||
|
c-0.865,0.246-1.6,0.563-2.204,0.952s-1.13,0.907-1.578,1.557c-0.036,0.052-0.066,0.109-0.101,0.163
|
||||||
|
c1.196,0.534,2.341,1.163,3.426,1.874C63.947,40.943,64.68,40.482,65.72,40.482z"/>
|
||||||
|
<linearGradient id="SVGID_3_" gradientUnits="userSpaceOnUse" x1="50.0576" y1="87.0566" x2="50.0576" y2="37.8525">
|
||||||
|
<stop offset="0.0056" style="stop-color:#3266A9"/>
|
||||||
|
<stop offset="1" style="stop-color:#0099FF"/>
|
||||||
|
</linearGradient>
|
||||||
|
<path fill="url(#SVGID_3_)" d="M70.725,49.104c-0.433,1.189-1.208,2.147-2.331,2.871c-1.425,0.918-3.182,1.377-5.271,1.377
|
||||||
|
c-1.179,0-2.175-0.176-2.988-0.525c-0.813-0.35-1.444-0.864-1.891-1.543c-0.448-0.678-0.671-1.481-0.671-2.405l0.022-0.694
|
||||||
|
l0.156-0.693h4.367l-0.028,0.179v0.179v0.246c0,1.164,0.628,1.746,1.884,1.746c0.635,0,1.201-0.217,1.696-0.649
|
||||||
|
c0.495-0.434,0.742-0.94,0.742-1.522c0-0.522-0.194-0.887-0.582-1.097c-0.329-0.208-1.007-0.313-2.036-0.313l0.47-2.754
|
||||||
|
l1.141-0.067c0.083-0.011,0.154-0.022,0.221-0.033c-0.674-0.551-1.378-1.067-2.11-1.546c-0.044,0.096-0.087,0.195-0.125,0.302
|
||||||
|
h-4.185c0.192-0.837,0.49-1.56,0.884-2.175c-3.064-1.372-6.46-2.133-10.034-2.133c-13.588,0-24.603,11.014-24.603,24.601
|
||||||
|
c0,13.59,11.015,24.604,24.603,24.604S74.66,76.043,74.66,62.453C74.66,57.532,73.214,52.949,70.725,49.104z M59.413,59.233
|
||||||
|
l-0.168,1.275c-0.538,2.953-1.511,5.404-2.921,7.35c-1.298,1.835-3.016,3.179-5.153,4.028c-2.138,0.851-4.494,1.274-7.067,1.274
|
||||||
|
H33.731l4.264-24.198h10.441c1.141,0,2.204,0.073,3.189,0.218c0.984,0.146,1.868,0.364,2.651,0.655
|
||||||
|
c1.611,0.537,2.887,1.471,3.827,2.802c0.94,1.332,1.41,2.992,1.41,4.984L59.413,59.233z"/>
|
||||||
|
</g>
|
||||||
|
<linearGradient id="SVGID_4_" gradientUnits="userSpaceOnUse" x1="107.3027" y1="105.8555" x2="93.0727" y2="16.0106">
|
||||||
|
<stop offset="0" style="stop-color:#B2B2B2;stop-opacity:0"/>
|
||||||
|
<stop offset="0.2" style="stop-color:#B2B2B2"/>
|
||||||
|
<stop offset="0.8" style="stop-color:#B2B2B2"/>
|
||||||
|
<stop offset="1" style="stop-color:#B2B2B2;stop-opacity:0"/>
|
||||||
|
</linearGradient>
|
||||||
|
<rect x="99.875" y="14.933" fill="url(#SVGID_4_)" width="0.625" height="92"/>
|
||||||
|
<script xmlns=""></script>
|
||||||
|
<path d="M126.531,43.25c0-3.446,2.801-6.25,6.25-6.25h15.624v12.5c0,1.729,1.398,3.125,3.126,3.125h12.5v14.063h-20.313
|
||||||
|
c-3.448,0-6.25,2.801-6.25,6.25V87h-4.688c-3.449,0-6.25-2.801-6.25-6.248V43.25z M164.031,49.5h-12.5V37L164.031,49.5z
|
||||||
|
M143.719,71.375h3.125c3.018,0,5.469,2.451,5.469,5.469s-2.451,5.471-5.469,5.471h-1.563v3.123c0,0.861-0.702,1.563-1.563,1.563
|
||||||
|
c-0.861,0-1.563-0.701-1.563-1.563v-4.686v-7.814C142.156,72.076,142.857,71.375,143.719,71.375z M146.844,79.188
|
||||||
|
c1.3,0,2.343-1.043,2.343-2.344c0-1.299-1.043-2.344-2.343-2.344h-1.563v4.688H146.844z M156.218,71.375h3.125
|
||||||
|
c2.589,0,4.688,2.102,4.688,4.688v6.252c0,2.586-2.1,4.686-4.688,4.686h-3.125c-0.86,0-1.562-0.701-1.562-1.563v-12.5
|
||||||
|
C154.656,72.076,155.357,71.375,156.218,71.375z M159.343,83.875c0.861,0,1.563-0.703,1.563-1.561v-6.252
|
||||||
|
c0-0.861-0.702-1.563-1.563-1.563h-1.563v9.375H159.343z M167.155,72.938c0-0.861,0.703-1.563,1.563-1.563h4.688
|
||||||
|
c0.861,0,1.563,0.701,1.563,1.563s-0.701,1.563-1.563,1.563h-3.124v3.125h3.124c0.861,0,1.563,0.703,1.563,1.563
|
||||||
|
s-0.701,1.564-1.563,1.564h-3.124v4.686c0,0.861-0.703,1.563-1.563,1.563c-0.859,0-1.563-0.701-1.563-1.563v-6.25V72.938z"/>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 4.8 KiB |
Loading…
Reference in New Issue