|
Apache/2.4.41 (Ubuntu) Linux vmi616275.contaboserver.net 5.4.0-84-generic #94-Ubuntu SMP Thu Aug 26 20:27:37 UTC 2021 x86_64 uid=33(www-data) gid=33(www-data) groups=33(www-data) server ip : 62.171.164.128 | your ip : 127.0.0.1 safemode OFF > / home / dev2.destoffenstraat.com / app / code / Swissup / Taxvat / Plugin / Model / |
Filename | /home/dev2.destoffenstraat.com/app/code/Swissup/Taxvat/Plugin/Model/MultishippingState.php |
Size | 1.95 kb |
Permission | rwxrwxrwx |
Owner | root : root |
Create time | 17-Aug-2025 10:26 |
Last modified | 13-Jan-2021 14:38 |
Last accessed | 23-Aug-2025 02:07 |
Actions | edit | rename | delete | download (gzip) |
View | text | code | image |
<?php
namespace Swissup\Taxvat\Plugin\Model;
use Magento\Framework\Exception\ValidatorException;
use Magento\Multishipping\Model\Checkout\Type\Multishipping\State;
class MultishippingState
{
/**
* @var \Swissup\Taxvat\Helper\Data
*/
private $helper;
/**
* @var \Magento\Checkout\Model\Session
*/
private $checkoutSession;
/**
* @var \Magento\Customer\Api\AddressRepositoryInterface
*/
private $addressRepository;
/**
* @param \Swissup\Taxvat\Helper\Data $helper
* @param \Magento\Checkout\Model\Session $checkoutSession
* @param \Magento\Customer\Api\AddressRepositoryInterface $addressRepository
*/
public function __construct(
\Swissup\Taxvat\Helper\Data $helper,
\Magento\Checkout\Model\Session $checkoutSession,
\Magento\Customer\Api\AddressRepositoryInterface $addressRepository
) {
$this->helper = $helper;
$this->checkoutSession = $checkoutSession;
$this->addressRepository = $addressRepository;
}
/**
* @param State $subject
* @param string $step
* @return void
* @throws ValidatorException
*/
public function beforeSetCompleteStep(
State $subject,
$step
) {
if ($step === State::STEP_BILLING) {
$this->validateBillingAddress();
}
}
private function validateBillingAddress()
{
if (!$this->helper->canValidateVat()) {
return;
}
$address = $this->checkoutSession->getQuote()->getBillingAddress();
if ($addressId = $address->getCustomerAddressId()) {
try {
$address = $this->addressRepository->getById($addressId);
} catch (\Exception $e) {
return;
}
}
if ($this->helper->validateAddress($address)) {
return;
}
throw new ValidatorException(__('Please enter a valid VAT number.'));
}
}
namespace Swissup\Taxvat\Plugin\Model;
use Magento\Framework\Exception\ValidatorException;
use Magento\Multishipping\Model\Checkout\Type\Multishipping\State;
class MultishippingState
{
/**
* @var \Swissup\Taxvat\Helper\Data
*/
private $helper;
/**
* @var \Magento\Checkout\Model\Session
*/
private $checkoutSession;
/**
* @var \Magento\Customer\Api\AddressRepositoryInterface
*/
private $addressRepository;
/**
* @param \Swissup\Taxvat\Helper\Data $helper
* @param \Magento\Checkout\Model\Session $checkoutSession
* @param \Magento\Customer\Api\AddressRepositoryInterface $addressRepository
*/
public function __construct(
\Swissup\Taxvat\Helper\Data $helper,
\Magento\Checkout\Model\Session $checkoutSession,
\Magento\Customer\Api\AddressRepositoryInterface $addressRepository
) {
$this->helper = $helper;
$this->checkoutSession = $checkoutSession;
$this->addressRepository = $addressRepository;
}
/**
* @param State $subject
* @param string $step
* @return void
* @throws ValidatorException
*/
public function beforeSetCompleteStep(
State $subject,
$step
) {
if ($step === State::STEP_BILLING) {
$this->validateBillingAddress();
}
}
private function validateBillingAddress()
{
if (!$this->helper->canValidateVat()) {
return;
}
$address = $this->checkoutSession->getQuote()->getBillingAddress();
if ($addressId = $address->getCustomerAddressId()) {
try {
$address = $this->addressRepository->getById($addressId);
} catch (\Exception $e) {
return;
}
}
if ($this->helper->validateAddress($address)) {
return;
}
throw new ValidatorException(__('Please enter a valid VAT number.'));
}
}