![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/old/vendor/magento/module-multishipping/Block/Checkout/Address/ |
<?php /** * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ namespace Magento\Multishipping\Block\Checkout\Address; use Magento\Framework\Exception\NoSuchEntityException; use Magento\Customer\Helper\Address as CustomerAddressHelper; use Magento\Customer\Api\AddressRepositoryInterface; /** * Class Select * Multishipping checkout select billing address * * @api * @since 100.0.2 */ class Select extends \Magento\Multishipping\Block\Checkout\AbstractMultishipping { /** * @var CustomerAddressHelper */ protected $_customerAddressHelper; /** * @var \Magento\Customer\Model\Address\Mapper */ protected $addressMapper; /** * @var bool */ protected $_isScopePrivate = true; /** * @var \Magento\Framework\Api\FilterBuilder */ protected $filterBuilder; /** * @var \Magento\Framework\Api\SearchCriteriaBuilder */ protected $searchCriteriaBuilder; /** * @var AddressRepositoryInterface */ protected $addressRepository; /** * Initialize dependencies. * * @param \Magento\Framework\View\Element\Template\Context $context * @param \Magento\Multishipping\Model\Checkout\Type\Multishipping $multishipping * @param CustomerAddressHelper $customerAddressHelper * @param \Magento\Customer\Model\Address\Mapper $addressMapper * @param AddressRepositoryInterface $addressRepository * @param \Magento\Framework\Api\SearchCriteriaBuilder $searchCriteriaBuilder * @param \Magento\Framework\Api\FilterBuilder $filterBuilder * @param array $data */ public function __construct( \Magento\Framework\View\Element\Template\Context $context, \Magento\Multishipping\Model\Checkout\Type\Multishipping $multishipping, CustomerAddressHelper $customerAddressHelper, \Magento\Customer\Model\Address\Mapper $addressMapper, AddressRepositoryInterface $addressRepository, \Magento\Framework\Api\SearchCriteriaBuilder $searchCriteriaBuilder, \Magento\Framework\Api\FilterBuilder $filterBuilder, array $data = [] ) { $this->_customerAddressHelper = $customerAddressHelper; $this->addressMapper = $addressMapper; $this->addressRepository = $addressRepository; $this->searchCriteriaBuilder = $searchCriteriaBuilder; $this->filterBuilder = $filterBuilder; parent::__construct($context, $multishipping, $data); } /** * @return $this */ protected function _prepareLayout() { $this->pageConfig->getTitle()->set( __('Change Billing Address') . ' - ' . $this->pageConfig->getTitle()->getDefault() ); return parent::_prepareLayout(); } /** * Get a list of current customer addresses. * * @return \Magento\Customer\Api\Data\AddressInterface[] */ public function getAddress() { $addresses = $this->getData('address_collection'); if ($addresses === null) { try { $filter = $this->filterBuilder->setField('parent_id') ->setValue($this->_multishipping->getCustomer()->getId()) ->setConditionType('eq') ->create(); $addresses = (array)($this->addressRepository->getList( $this->searchCriteriaBuilder->addFilters([$filter])->create() )->getItems()); } catch (NoSuchEntityException $e) { return []; } $this->setData('address_collection', $addresses); } return $addresses; } /** * Represent customer address in HTML format. * * @param \Magento\Customer\Api\Data\AddressInterface $address * @return string */ public function getAddressAsHtml(\Magento\Customer\Api\Data\AddressInterface $address) { $formatTypeRenderer = $this->_customerAddressHelper->getFormatTypeRenderer('html'); $result = ''; if ($formatTypeRenderer) { $result = $formatTypeRenderer->renderArray($this->addressMapper->toFlatArray($address)); } return $result; } /** * Check if provided address is default customer billing address. * * @param \Magento\Customer\Api\Data\AddressInterface $address * @return bool */ public function isAddressDefaultBilling(\Magento\Customer\Api\Data\AddressInterface $address) { return $address->getId() == $this->_multishipping->getCustomer()->getDefaultBilling(); } /** * Check if provided address is default customer shipping address. * * @param \Magento\Customer\Api\Data\AddressInterface $address * @return bool */ public function isAddressDefaultShipping(\Magento\Customer\Api\Data\AddressInterface $address) { return $address->getId() == $this->_multishipping->getCustomer()->getDefaultShipping(); } /** * Get URL of customer address edit page. * * @param \Magento\Customer\Api\Data\AddressInterface $address * @return string */ public function getEditAddressUrl(\Magento\Customer\Api\Data\AddressInterface $address) { return $this->getUrl('*/*/editAddress', ['id' => $address->getId()]); } /** * Get URL of page, at which customer billing address can be set. * * @param \Magento\Customer\Api\Data\AddressInterface $address * @return string */ public function getSetAddressUrl(\Magento\Customer\Api\Data\AddressInterface $address) { return $this->getUrl('*/*/setBilling', ['id' => $address->getId()]); } /** * @return string */ public function getAddNewUrl() { return $this->getUrl('*/*/newBilling'); } /** * @return string */ public function getBackUrl() { return $this->getUrl('*/checkout/billing'); } }