123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197 |
- <?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);
- }
- }
|