| Current Path : /home/rtorresani/www/vendor/magento/module-catalog/Ui/Component/Listing/Columns/ |
| Current File : //home/rtorresani/www/vendor/magento/module-catalog/Ui/Component/Listing/Columns/Price.php |
<?php
/**
* Copyright © Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
*/
namespace Magento\Catalog\Ui\Component\Listing\Columns;
use Magento\Framework\App\ObjectManager;
use Magento\Framework\Pricing\PriceCurrencyInterface;
use Magento\Framework\View\Element\UiComponentFactory;
use Magento\Framework\View\Element\UiComponent\ContextInterface;
/**
* @api
* @since 100.0.2
*/
class Price extends \Magento\Ui\Component\Listing\Columns\Column
{
/**
* Column name
*/
public const NAME = 'column.price';
/**
* @var \Magento\Framework\Locale\CurrencyInterface
*/
protected $localeCurrency;
/**
* @var \Magento\Store\Model\StoreManagerInterface
*/
private $storeManager;
/**
* @var PriceCurrencyInterface
*/
private $priceCurrency;
/**
* @param ContextInterface $context
* @param UiComponentFactory $uiComponentFactory
* @param \Magento\Framework\Locale\CurrencyInterface $localeCurrency
* @param \Magento\Store\Model\StoreManagerInterface $storeManager
* @param array $components
* @param array $data
* @param PriceCurrencyInterface|null $priceCurrency
*/
public function __construct(
ContextInterface $context,
UiComponentFactory $uiComponentFactory,
\Magento\Framework\Locale\CurrencyInterface $localeCurrency,
\Magento\Store\Model\StoreManagerInterface $storeManager,
array $components = [],
array $data = [],
?PriceCurrencyInterface $priceCurrency = null
) {
parent::__construct($context, $uiComponentFactory, $components, $data);
$this->localeCurrency = $localeCurrency;
$this->storeManager = $storeManager;
$this->priceCurrency = $priceCurrency ?? ObjectManager::getInstance()->get(PriceCurrencyInterface::class);
}
/**
* Prepare Data Source
*
* @param array $dataSource
* @return array
*/
public function prepareDataSource(array $dataSource)
{
if (isset($dataSource['data']['items'])) {
$store = $this->storeManager->getStore(
$this->context->getFilterParam('store_id', \Magento\Store\Model\Store::DEFAULT_STORE_ID)
);
$fieldName = $this->getData('name');
foreach ($dataSource['data']['items'] as & $item) {
if (isset($item[$fieldName])) {
$item[$fieldName] = $this->priceCurrency->format(
sprintf("%F", $item[$fieldName]),
false,
PriceCurrencyInterface::DEFAULT_PRECISION,
$store
);
}
}
}
return $dataSource;
}
}