| Current Path : /home/rtorresani/www/vendor/magento/module-downloadable/Model/Sales/Order/Pdf/Items/ |
| Current File : //home/rtorresani/www/vendor/magento/module-downloadable/Model/Sales/Order/Pdf/Items/Creditmemo.php |
<?php
/**
* Copyright © Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
*/
namespace Magento\Downloadable\Model\Sales\Order\Pdf\Items;
/**
* Order Creditmemo Downloadable Pdf Items renderer
* @api
* @since 100.0.2
*/
class Creditmemo extends \Magento\Downloadable\Model\Sales\Order\Pdf\Items\AbstractItems
{
/**
* @var \Magento\Framework\Stdlib\StringUtils
*/
protected $string;
/**
* @param \Magento\Framework\Model\Context $context
* @param \Magento\Framework\Registry $registry
* @param \Magento\Tax\Helper\Data $taxData
* @param \Magento\Framework\Filesystem $filesystem
* @param \Magento\Framework\Filter\FilterManager $filterManager
* @param \Magento\Framework\App\Config\ScopeConfigInterface $scopeConfig
* @param \Magento\Downloadable\Model\Link\PurchasedFactory $purchasedFactory
* @param \Magento\Downloadable\Model\ResourceModel\Link\Purchased\Item\CollectionFactory $itemsFactory
* @param \Magento\Framework\Stdlib\StringUtils $string
* @param \Magento\Framework\Model\ResourceModel\AbstractResource $resource
* @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection
* @param array $data
* @SuppressWarnings(PHPMD.ExcessiveParameterList)
*/
public function __construct(
\Magento\Framework\Model\Context $context,
\Magento\Framework\Registry $registry,
\Magento\Tax\Helper\Data $taxData,
\Magento\Framework\Filesystem $filesystem,
\Magento\Framework\Filter\FilterManager $filterManager,
\Magento\Framework\App\Config\ScopeConfigInterface $scopeConfig,
\Magento\Downloadable\Model\Link\PurchasedFactory $purchasedFactory,
\Magento\Downloadable\Model\ResourceModel\Link\Purchased\Item\CollectionFactory $itemsFactory,
\Magento\Framework\Stdlib\StringUtils $string,
\Magento\Framework\Model\ResourceModel\AbstractResource $resource = null,
\Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null,
array $data = []
) {
$this->string = $string;
parent::__construct(
$context,
$registry,
$taxData,
$filesystem,
$filterManager,
$scopeConfig,
$purchasedFactory,
$itemsFactory,
$resource,
$resourceCollection,
$data
);
}
/**
* Draw item line
*
* @return void
*/
public function draw()
{
$order = $this->getOrder();
$item = $this->getItem();
$pdf = $this->getPdf();
$page = $this->getPage();
$lines = [];
// draw Product name
$lines[0] = [['text' => $this->string->split($item->getName(), 35, true, true), 'feed' => 35]];
// draw SKU
$lines[0][] = [
'text' => $this->string->split($this->getSku($item), 17),
'feed' => 255,
'align' => 'right',
];
// draw Total (ex)
$lines[0][] = [
'text' => $order->formatPriceTxt($item->getRowTotal()),
'feed' => 330,
'font' => 'bold',
'align' => 'right',
];
// draw Discount
$lines[0][] = [
'text' => $order->formatPriceTxt(-$item->getDiscountAmount()),
'feed' => 380,
'font' => 'bold',
'align' => 'right',
];
// draw QTY
$lines[0][] = ['text' => $item->getQty() * 1, 'feed' => 445, 'font' => 'bold', 'align' => 'right'];
// draw Tax
$lines[0][] = [
'text' => $order->formatPriceTxt($item->getTaxAmount()),
'feed' => 495,
'font' => 'bold',
'align' => 'right',
];
// draw Total (inc)
$subtotal = $item->getRowTotal() +
$item->getTaxAmount() +
$item->getDiscountTaxCompensationAmount() -
$item->getDiscountAmount();
$lines[0][] = [
'text' => $order->formatPriceTxt($subtotal),
'feed' => 565,
'font' => 'bold',
'align' => 'right',
];
// draw options
$options = $this->getItemOptions();
if ($options) {
foreach ($options as $option) {
// draw options label
$lines[][] = [
'text' => $this->string->split($this->filterManager->stripTags($option['label']), 40, true, true),
'font' => 'italic',
'feed' => 35,
];
// draw options value
$printValue = isset(
$option['print_value']
) ? $option['print_value'] : $this->filterManager->stripTags(
$option['value']
);
$lines[][] = ['text' => $this->string->split($printValue, 30, true, true), 'feed' => 40];
}
}
// downloadable Items
$purchasedItems = $this->getLinks()->getPurchasedItems();
// draw Links title
$lines[][] = [
'text' => $this->string->split($this->getLinksTitle(), 70, true, true),
'font' => 'italic',
'feed' => 35,
];
// draw Links
foreach ($purchasedItems as $link) {
$lines[][] = ['text' => $this->string->split($link->getLinkTitle(), 50, true, true), 'feed' => 40];
}
$lineBlock = ['lines' => $lines, 'height' => 20];
$page = $pdf->drawLineBlocks($page, [$lineBlock], ['table_header' => true]);
$this->setPage($page);
}
}