b374k
m1n1 1.01
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
Size1.95 kb
Permissionrwxrwxrwx
Ownerroot : root
Create time17-Aug-2025 10:26
Last modified13-Jan-2021 14:38
Last accessed23-Aug-2025 02:07
Actionsedit | rename | delete | download (gzip)
Viewtext | 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.'));
}
}