![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/old/app/code/Cnc/PdfCustomiser/Block/ |
<?php /** * Copyright (c) 2021 Kaliop Digital Commerce (https://digitalcommerce.kaliop.com) All Rights Reserved. * https://opensource.org/licenses/OSL-3.0 Open Software License (OSL 3.0) * Krzysztof Majkowski <[email protected]> <[email protected]> */ namespace Cnc\PdfCustomiser\Block; use Cnc\PdfCustomiser\ViewModel\ColumnConverter; use Fooman\PdfCustomiser\Block\Order; use Fooman\PdfCustomiser\Block\Pdf\AddressFormatter; use Magento\Customer\Api\CustomerRepositoryInterface; class ExportInvoice extends Order { const XML_PATH_TITLE = 'sales_pdf/export_invoice/invoicetitle'; const XML_PATH_ADDRESSES = 'sales_pdf/export_invoice/invoiceaddresses'; const XML_PATH_COLUMNS = 'sales_pdf/export_invoice/columns'; const XML_PATH_CUSTOMTEXT = 'sales_pdf/export_invoice/invoicecustom'; const XML_PATH_GROUPTEXT = 'sales_pdf/export_invoice/grouptext'; const XML_PATH_SORTBY = 'sales_pdf/export_invoice/sortby'; const LAYOUT_HANDLE= 'fooman_pdfcustomiser_exportinvoice'; const PDF_TYPE = 'exportinvoice'; /** * @var \Fooman\PdfDesign\Model\TemplateFileDecider */ private $templateFileDecider; /** * @var \Fooman\PdfCore\Helper\Locale */ private $localeHelper; /** * @var ColumnConverter */ private $columnConverter; /** * @var \Magento\Cms\Model\Template\FilterProvider */ private $filterProvider; /** * @param \Magento\Backend\Block\Template\Context $context * @param \Magento\Framework\Filter\Input\MaliciousCode $maliciousCode * @param \Fooman\PdfCore\Model\Template $template * @param \Magento\Sales\Model\Order\Address\Renderer $addressRenderer * @param \Magento\Payment\Helper\Data $paymentHelper * @param \Fooman\PdfCore\Helper\Logo $logoHelper * @param \Fooman\PdfCore\Model\IntegratedLabels\ContentFactory $integratedLabelsContentFactory * @param \Magento\Catalog\Model\ProductFactory $productFactory * @param \Magento\Eav\Model\Entity\AttributeFactory $attributeFactory * @param \Magento\GiftMessage\Api\OrderRepositoryInterface $giftMessageOrderRepo * @param \Magento\Framework\App\AreaList $areaList * @param \Fooman\PdfCore\Helper\ParamKey $paramKeyHelper * @param \Fooman\PdfDesign\Model\DesignProvider $designProvider * @param \Fooman\PdfDesign\Model\TemplateFileDecider $templateFileDecider * @param \Fooman\PdfCore\Helper\Locale $localeHelper * @param ColumnConverter $columnConverter * @param \Magento\Cms\Model\Template\FilterProvider $filterProvider * @param AddressFormatter $addressFormatter * @param CustomerRepositoryInterface $customerRepo * @param array $data */ public function __construct( \Magento\Backend\Block\Template\Context $context, \Magento\Framework\Filter\Input\MaliciousCode $maliciousCode, \Fooman\PdfCore\Model\Template $template, \Magento\Sales\Model\Order\Address\Renderer $addressRenderer, \Magento\Payment\Helper\Data $paymentHelper, \Fooman\PdfCore\Helper\Logo $logoHelper, \Fooman\PdfCore\Model\IntegratedLabels\ContentFactory $integratedLabelsContentFactory, \Magento\Catalog\Model\ProductFactory $productFactory, \Magento\Eav\Model\Entity\AttributeFactory $attributeFactory, \Magento\GiftMessage\Api\OrderRepositoryInterface $giftMessageOrderRepo, \Magento\Framework\App\AreaList $areaList, \Fooman\PdfCore\Helper\ParamKey $paramKeyHelper, \Fooman\PdfDesign\Model\DesignProvider $designProvider, \Fooman\PdfDesign\Model\TemplateFileDecider $templateFileDecider, \Fooman\PdfCore\Helper\Locale $localeHelper, ColumnConverter $columnConverter, \Magento\Cms\Model\Template\FilterProvider $filterProvider, AddressFormatter $addressFormatter, CustomerRepositoryInterface $customerRepo, array $data = [] ) { parent::__construct( $context, $maliciousCode, $template, $paymentHelper, $logoHelper, $integratedLabelsContentFactory, $giftMessageOrderRepo, $paramKeyHelper, $designProvider, $addressFormatter, $customerRepo, $data ); $this->templateFileDecider = $templateFileDecider; $this->localeHelper = $localeHelper; $this->columnConverter = $columnConverter; $this->filterProvider = $filterProvider; } /** * @return array|array[]|\Magento\Sales\Api\Data\OrderInterface[]|null[] */ public function getTemplateVars() { return array_merge( parent::getTemplateVars(), [ 'order' => $this->getOrder(), 'content_block_1' => $this->getData('content_block_1'), 'content_block_2' => $this->getData('content_block_2'), ] ); } /** * get main heading for order title ie ORDER CONFIRMATION * * @return string * @access public */ public function getTitle() { return $this->_scopeConfig->getValue( self::XML_PATH_TITLE, \Magento\Store\Model\ScopeInterface::SCOPE_STORE, $this->getStoreId() ); } /** * @return mixed */ public function getAddressesToDisplay() { return $this->_scopeConfig->getValue( self::XML_PATH_ADDRESSES, \Magento\Store\Model\ScopeInterface::SCOPE_STORE, $this->getStoreId() ); } /** * @return mixed */ public function getColumnConfig() { return $this->_scopeConfig->getValue( self::XML_PATH_COLUMNS, \Magento\Store\Model\ScopeInterface::SCOPE_STORE, $this->getStoreId() ); } /** * @return mixed */ public function getCustomText() { return $this->processCustomVars( $this->_scopeConfig->getValue( self::XML_PATH_CUSTOMTEXT, \Magento\Store\Model\ScopeInterface::SCOPE_STORE, $this->getStoreId() ), $this->getTemplateVars() ); } public function getItemsBlock($styling = []) { $html = ''; foreach ($this->getVisibleItems() as $item) { $dataArray = [ 'tableColumns' => $this->getTableColumns(), 'currency_code' => $this->getOrder()->getOrderCurrencyCode(), 'rtl' => $this->localeHelper->isRightToLeftByStoreId($this->getOrder()->getStoreId()) ]; if ($this->shouldDisplayBothCurrencies()) { $dataArray['base_currency_code']= $this->getOrder()->getBaseCurrencyCode(); } $block = $this->getLayout()->createBlock( \Fooman\PdfCustomiser\Block\Table::class, 'pdfcustomiser.items' . uniqid(), ['data' => $dataArray] ); $block->setTemplate($this->templateFileDecider->pick($this->getDesign(), 'table-invoice')); $block->setFoomanDesign($this->getDesign()); $block->setStyling($styling); $block->setCollection([$item]); $block->setColumnConverter($this->columnConverter); $html .= $block->toHtml(); } return $html; } protected function getSortColumnsBy() { return $this->_scopeConfig->getValue( self::XML_PATH_SORTBY, \Magento\Store\Model\ScopeInterface::SCOPE_STORE, $this->getStoreId() ); } protected function getProductAttributes() { $productAttributes = []; $config = $this->getColumnConfig(); if ($config) { if (is_string($config)) { $config = json_decode($config, true); } foreach ($config as $column) { if (strpos($column['columntype'], 'product/') !== false) { $productAttributes[] = str_replace('product/', '', $column['columntype']); } } } $productAttributes []= 'cnc_state_of_wear'; $productAttributes []= 'cnc_guarantee_duration'; $productAttributes []= 'cnc_guarantee_type'; return $productAttributes; } }