|
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 / Geissweb / Euvat / Observer / |
Filename | /home/dev2.destoffenstraat.com/app/code/Geissweb/Euvat/Observer/QuoteAddressSaveBefore.php |
Size | 3.74 kb |
Permission | rwxrwxrwx |
Owner | root : root |
Create time | 17-Aug-2025 10:26 |
Last modified | 09-Jul-2024 08:40 |
Last accessed | 22-Aug-2025 02:07 |
Actions | edit | rename | delete | download (gzip) |
View | text | code | image |
<?php
/**
* ||GEISSWEB| EU VAT Enhanced
*
* NOTICE OF LICENSE
*
* This source file is subject to the GEISSWEB End User License Agreement
* that is available through the world-wide-web at this URL: https://www.geissweb.de/legal-information/eula
*
* DISCLAIMER
*
* Do not edit this file if you wish to update the extension in the future. If you wish to customize the extension
* for your needs please refer to our support for more information.
*
* @copyright Copyright (c) 2015 GEISS Weblösungen (https://www.geissweb.de)
* @license https://www.geissweb.de/legal-information/eula GEISSWEB End User License Agreement
*/
declare(strict_types=1);
namespace Geissweb\Euvat\Observer;
use Geissweb\Euvat\Api\Data\ValidationInterface;
use Geissweb\Euvat\Logger\Logger;
use Geissweb\Euvat\Model\ValidationRepository;
use Magento\Customer\Api\AddressRepositoryInterface;
use Magento\Quote\Model\Quote\Address;
use Magento\Framework\Event\Observer;
use Magento\Framework\Event\ObserverInterface;
/**
* Customer Observer Model
*/
class QuoteAddressSaveBefore implements ObserverInterface
{
/**
* @var ValidationRepository
*/
public ValidationRepository $validationRepository;
/**
* @var Logger
*/
public Logger $logger;
/**
* @var AddressRepositoryInterface
*/
public AddressRepositoryInterface $customerAddressRepository;
/**
* Constructor
*
* @param ValidationRepository $validationRepository
* @param Logger $logger
* @param AddressRepositoryInterface $addressRepository
*/
public function __construct(
ValidationRepository $validationRepository,
Logger $logger,
AddressRepositoryInterface $addressRepository
) {
$this->validationRepository = $validationRepository;
$this->logger = $logger;
$this->customerAddressRepository = $addressRepository;
}
/**
* Address before save event handler
*
* Adds VAT number validation data from table to address
*
* @param Observer $observer
*
* @return void
*/
public function execute(Observer $observer)
{
$this->logger->customLog("[QuoteAddressSaveBeforeObserver] START");
/** @var Address $quoteAddress */
$quoteAddress = $observer->getQuoteAddress();
$vatId = $quoteAddress->getVatId();
if (!empty($vatId)) {
$this->logger->customLog("Searching for validation: $vatId");
/** @var ValidationInterface $validation */
$validation = $this->validationRepository->getByVatId($vatId);
if ($validation instanceof ValidationInterface) {
$this->logger->customLog("Applying validation data to quote address id: " . $quoteAddress->getId());
$quoteAddress->setVatIsValid($validation->getVatIsValid());
$quoteAddress->setVatTraderName($validation->getVatTraderName());
$quoteAddress->setVatTraderAddress($validation->getVatTraderAddress());
$quoteAddress->setVatRequestSuccess($validation->getVatRequestSuccess());
$quoteAddress->setVatRequestDate($validation->getVatRequestDate());
$quoteAddress->setVatRequestId($validation->getVatRequestId());
}
} else {
$this->logger->customLog("No VAT number on quote address id: " . $quoteAddress->getId());
$quoteAddress->setVatIsValid();
$quoteAddress->setVatTraderName();
$quoteAddress->setVatTraderAddress();
$quoteAddress->setVatRequestSuccess();
$quoteAddress->setVatRequestDate();
$quoteAddress->setVatRequestId();
}
$this->logger->customLog("[QuoteAddressSaveBeforeObserver] END");
}
}
/**
* ||GEISSWEB| EU VAT Enhanced
*
* NOTICE OF LICENSE
*
* This source file is subject to the GEISSWEB End User License Agreement
* that is available through the world-wide-web at this URL: https://www.geissweb.de/legal-information/eula
*
* DISCLAIMER
*
* Do not edit this file if you wish to update the extension in the future. If you wish to customize the extension
* for your needs please refer to our support for more information.
*
* @copyright Copyright (c) 2015 GEISS Weblösungen (https://www.geissweb.de)
* @license https://www.geissweb.de/legal-information/eula GEISSWEB End User License Agreement
*/
declare(strict_types=1);
namespace Geissweb\Euvat\Observer;
use Geissweb\Euvat\Api\Data\ValidationInterface;
use Geissweb\Euvat\Logger\Logger;
use Geissweb\Euvat\Model\ValidationRepository;
use Magento\Customer\Api\AddressRepositoryInterface;
use Magento\Quote\Model\Quote\Address;
use Magento\Framework\Event\Observer;
use Magento\Framework\Event\ObserverInterface;
/**
* Customer Observer Model
*/
class QuoteAddressSaveBefore implements ObserverInterface
{
/**
* @var ValidationRepository
*/
public ValidationRepository $validationRepository;
/**
* @var Logger
*/
public Logger $logger;
/**
* @var AddressRepositoryInterface
*/
public AddressRepositoryInterface $customerAddressRepository;
/**
* Constructor
*
* @param ValidationRepository $validationRepository
* @param Logger $logger
* @param AddressRepositoryInterface $addressRepository
*/
public function __construct(
ValidationRepository $validationRepository,
Logger $logger,
AddressRepositoryInterface $addressRepository
) {
$this->validationRepository = $validationRepository;
$this->logger = $logger;
$this->customerAddressRepository = $addressRepository;
}
/**
* Address before save event handler
*
* Adds VAT number validation data from table to address
*
* @param Observer $observer
*
* @return void
*/
public function execute(Observer $observer)
{
$this->logger->customLog("[QuoteAddressSaveBeforeObserver] START");
/** @var Address $quoteAddress */
$quoteAddress = $observer->getQuoteAddress();
$vatId = $quoteAddress->getVatId();
if (!empty($vatId)) {
$this->logger->customLog("Searching for validation: $vatId");
/** @var ValidationInterface $validation */
$validation = $this->validationRepository->getByVatId($vatId);
if ($validation instanceof ValidationInterface) {
$this->logger->customLog("Applying validation data to quote address id: " . $quoteAddress->getId());
$quoteAddress->setVatIsValid($validation->getVatIsValid());
$quoteAddress->setVatTraderName($validation->getVatTraderName());
$quoteAddress->setVatTraderAddress($validation->getVatTraderAddress());
$quoteAddress->setVatRequestSuccess($validation->getVatRequestSuccess());
$quoteAddress->setVatRequestDate($validation->getVatRequestDate());
$quoteAddress->setVatRequestId($validation->getVatRequestId());
}
} else {
$this->logger->customLog("No VAT number on quote address id: " . $quoteAddress->getId());
$quoteAddress->setVatIsValid();
$quoteAddress->setVatTraderName();
$quoteAddress->setVatTraderAddress();
$quoteAddress->setVatRequestSuccess();
$quoteAddress->setVatRequestDate();
$quoteAddress->setVatRequestId();
}
$this->logger->customLog("[QuoteAddressSaveBeforeObserver] END");
}
}