| 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/Form.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;
/**
* Adminhtml sales order create form block
*
* @api
* @since 100.0.2
*/
class Form extends \Magento\Sales\Block\Adminhtml\Order\Create\AbstractCreate
{
/**
* Customer form factory
*
* @var \Magento\Customer\Model\Metadata\FormFactory
*/
protected $_customerFormFactory;
/**
* Json encoder
*
* @var \Magento\Framework\Json\EncoderInterface
*/
protected $_jsonEncoder;
/**
* Address service
*
* @var \Magento\Customer\Api\CustomerRepositoryInterface
*/
protected $customerRepository;
/**
* @var \Magento\Framework\Locale\CurrencyInterface
*/
protected $_localeCurrency;
/**
* @var \Magento\Customer\Model\Address\Mapper
*/
protected $addressMapper;
/**
* Initialize dependencies.
*
* @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 \Magento\Framework\Json\EncoderInterface $jsonEncoder
* @param \Magento\Customer\Model\Metadata\FormFactory $customerFormFactory
* @param \Magento\Customer\Api\CustomerRepositoryInterface $customerRepository
* @param \Magento\Framework\Locale\CurrencyInterface $localeCurrency
* @param \Magento\Customer\Model\Address\Mapper $addressMapper
* @param array $data
* @SuppressWarnings(PHPMD.ExcessiveParameterList)
*/
public function __construct(
\Magento\Backend\Block\Template\Context $context,
\Magento\Backend\Model\Session\Quote $sessionQuote,
\Magento\Sales\Model\AdminOrder\Create $orderCreate,
PriceCurrencyInterface $priceCurrency,
\Magento\Framework\Json\EncoderInterface $jsonEncoder,
\Magento\Customer\Model\Metadata\FormFactory $customerFormFactory,
\Magento\Customer\Api\CustomerRepositoryInterface $customerRepository,
\Magento\Framework\Locale\CurrencyInterface $localeCurrency,
\Magento\Customer\Model\Address\Mapper $addressMapper,
array $data = []
) {
$this->_jsonEncoder = $jsonEncoder;
$this->_customerFormFactory = $customerFormFactory;
$this->customerRepository = $customerRepository;
$this->_localeCurrency = $localeCurrency;
$this->addressMapper = $addressMapper;
parent::__construct($context, $sessionQuote, $orderCreate, $priceCurrency, $data);
}
/**
* Constructor
*
* @return void
*/
protected function _construct()
{
parent::_construct();
$this->setId('sales_order_create_form');
}
/**
* Retrieve url for loading blocks
*
* @return string
*/
public function getLoadBlockUrl()
{
return $this->getUrl('sales/*/loadBlock');
}
/**
* Retrieve url for form submitting
*
* @return string
*/
public function getSaveUrl()
{
return $this->getUrl('sales/*/save');
}
/**
* Get customer selector display
*
* @return string
*/
public function getCustomerSelectorDisplay()
{
$customerId = $this->getCustomerId();
if ($customerId === null) {
return 'block';
}
return 'none';
}
/**
* Get store selector display
*
* @return string
*/
public function getStoreSelectorDisplay()
{
$storeId = $this->getStoreId();
$customerId = $this->getCustomerId();
if ($customerId !== null && !$storeId) {
return 'block';
}
return 'none';
}
/**
* Get data selector display
*
* @return string
*/
public function getDataSelectorDisplay()
{
$storeId = $this->getStoreId();
$customerId = $this->getCustomerId();
if ($customerId !== null && $storeId) {
return 'block';
}
return 'none';
}
/**
* Get order data jason
*
* @return string
*/
public function getOrderDataJson()
{
$data = [];
$this->_storeManager->setCurrentStore($this->getStoreId());
if ($this->getCustomerId()) {
$data['customer_id'] = $this->getCustomerId();
$data['addresses'] = [];
$addresses = $this->customerRepository->getById($this->getCustomerId())->getAddresses();
foreach ($addresses as $address) {
$addressForm = $this->_customerFormFactory->create(
'customer_address',
'adminhtml_customer_address',
$this->addressMapper->toFlatArray($address)
);
$data['addresses'][$address->getId()] = $addressForm->outputData(
\Magento\Eav\Model\AttributeDataFactory::OUTPUT_FORMAT_JSON
);
}
}
if ($this->getStoreId() !== null) {
$data['store_id'] = $this->getStoreId();
$currency = $this->_localeCurrency->getCurrency($this->getStore()->getCurrentCurrencyCode());
$symbol = $currency->getSymbol() ? $currency->getSymbol() : $currency->getShortName();
$data['currency_symbol'] = $symbol;
$data['shipping_method_reseted'] = !(bool)$this->getQuote()->getShippingAddress()->getShippingMethod();
$data['payment_method'] = $this->getQuote()->getPayment()->getMethod();
}
$data['quote_id'] = $this->_sessionQuote->getQuoteId();
return $this->_jsonEncoder->encode($data);
}
}