| Current Path : /home/rtorresani/www/vendor/magento/module-sales/Block/Adminhtml/Order/Create/ |
| Current File : //home/rtorresani/www/vendor/magento/module-sales/Block/Adminhtml/Order/Create/AbstractCreate.php |
<?php
/**
* Copyright © Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
*/
namespace Magento\Sales\Block\Adminhtml\Order\Create;
use Magento\Framework\Pricing\PriceCurrencyInterface;
use Magento\Catalog\Model\Product;
use Magento\Catalog\Pricing\Price\FinalPrice;
/**
* Adminhtml sales order create abstract block
*
* @author Magento Core Team <core@magentocommerce.com>
* @SuppressWarnings(PHPMD.NumberOfChildren)
*/
abstract class AbstractCreate extends \Magento\Backend\Block\Widget
{
/**
* Session quote
*
* @var \Magento\Backend\Model\Session\Quote
*/
protected $_sessionQuote;
/**
* Order create
*
* @var \Magento\Sales\Model\AdminOrder\Create
*/
protected $_orderCreate;
/**
* @var PriceCurrencyInterface
*/
protected $priceCurrency;
/**
* @param \Magento\Backend\Block\Template\Context $context
* @param \Magento\Backend\Model\Session\Quote $sessionQuote
* @param \Magento\Sales\Model\AdminOrder\Create $orderCreate
* @param PriceCurrencyInterface $priceCurrency
* @param array $data
*/
public function __construct(
\Magento\Backend\Block\Template\Context $context,
\Magento\Backend\Model\Session\Quote $sessionQuote,
\Magento\Sales\Model\AdminOrder\Create $orderCreate,
PriceCurrencyInterface $priceCurrency,
array $data = []
) {
$this->priceCurrency = $priceCurrency;
$this->_sessionQuote = $sessionQuote;
$this->_orderCreate = $orderCreate;
parent::__construct($context, $data);
}
/**
* Retrieve create order model object
*
* @return \Magento\Sales\Model\AdminOrder\Create
*/
public function getCreateOrderModel()
{
return $this->_orderCreate;
}
/**
* Retrieve quote session object
*
* @return \Magento\Backend\Model\Session\Quote
*/
protected function _getSession()
{
return $this->_sessionQuote;
}
/**
* Retrieve quote model object
*
* @return \Magento\Quote\Model\Quote
*/
public function getQuote()
{
return $this->_getSession()->getQuote();
}
/**
* Retrieve customer identifier
*
* @return int
*/
public function getCustomerId()
{
return $this->_getSession()->getCustomerId();
}
/**
* Retrieve store model object
*
* @return \Magento\Store\Model\Store
*/
public function getStore()
{
return $this->_getSession()->getStore();
}
/**
* Retrieve store identifier
*
* @return int
*/
public function getStoreId()
{
return $this->_getSession()->getStoreId();
}
/**
* Retrieve formatted price
*
* @param float $value
* @return string
*/
public function formatPrice($value)
{
return $this->priceCurrency->format(
$value,
true,
PriceCurrencyInterface::DEFAULT_PRECISION,
$this->getStore()
);
}
/**
* @param Product $product
* @return string
*/
public function getItemPrice(Product $product)
{
$price = $product->getPriceInfo()->getPrice(FinalPrice::PRICE_CODE)->getValue();
return $this->convertPrice($price);
}
/**
* Convert price
*
* @param int|float $value
* @param bool $format
* @return string|int|float
*/
public function convertPrice($value, $format = true)
{
return $format
? $this->priceCurrency->convertAndFormat(
$value,
true,
PriceCurrencyInterface::DEFAULT_PRECISION,
$this->getStore()
)
: $this->priceCurrency->convert($value, $this->getStore());
}
/**
* If item is quote or wishlist we need to get product from it.
*
* @param $item
*
* @return Product
*/
public function getProduct($item)
{
if ($item instanceof Product) {
$product = $item;
} else {
$product = $item->getProduct();
}
return $product;
}
}