|
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/VatValidationAfter.php |
Size | 5.14 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\Api\Data\ValidationInterfaceFactory;
use Geissweb\Euvat\Api\Data\ValidationResultInterface;
use Geissweb\Euvat\Logger\Logger;
use Geissweb\Euvat\Model\ValidationRepository;
use Magento\Framework\Api\SearchCriteriaBuilder;
use Magento\Framework\Event\Observer;
use Magento\Framework\Event\ObserverInterface;
use Magento\Framework\Exception\LocalizedException;
/**
* Class VatValidationAfter
* Creates or updates VAT number validation data
*/
class VatValidationAfter implements ObserverInterface
{
/**
* @var \Geissweb\Euvat\Api\Data\ValidationInterfaceFactory
*/
public $validationInterfaceFactory;
/**
* @var ValidationRepository
*/
public $validationRepository;
/**
* @var SearchCriteriaBuilder
*/
public $search;
/**
* @var Logger
*/
private $logger;
/**
* Constructor
*
* @param ValidationInterfaceFactory $validationInterfaceFactory
* @param ValidationRepository $validationRepository
* @param Logger $logger
* @param SearchCriteriaBuilder $searchCriteriaBuilder
*/
public function __construct(
ValidationInterfaceFactory $validationInterfaceFactory,
ValidationRepository $validationRepository,
Logger $logger,
SearchCriteriaBuilder $searchCriteriaBuilder
) {
$this->validationInterfaceFactory = $validationInterfaceFactory;
$this->validationRepository = $validationRepository;
$this->search = $searchCriteriaBuilder;
$this->logger = $logger;
}
/**
* Do the job
*
* @param Observer $observer
*
* @return void
* @throws LocalizedException
*/
public function execute(Observer $observer)
{
$this->logger->customLog("VatValidationAfter Start");
/** @var \Geissweb\Euvat\Model\Validation\Result $result */
$result = $observer->getEvent()->getValidationResult();
if ($result->getVatId() === '') {
// Do not persist senseless validation result
return;
}
$searchCriteria = $this->search->addFilter(
'vat_id',
$result->getVatRequestCountryCode() . $result->getVatId(),
'eq'
)->create();
$validationList = $this->validationRepository->getList($searchCriteria);
/** @var ValidationInterface[] $items */
$items = $validationList->getItems();
$this->logger->customLog("VatValidationAfter checking VAT number: "
. $result->getVatRequestCountryCode() . $result->getVatId());
if ($validationList->getTotalCount() > 0) {
$this->logger->customLog("VatValidationAfter updating validation information.");
foreach ($items as $item) {
$this->setValidationData($item, $result);
try {
$this->validationRepository->save($item);
} catch (LocalizedException $exc) {
$this->logger->critical($exc);
}
}
} else {
$this->logger->customLog("VatValidationAfter creating validation information.");
$validation = $this->validationInterfaceFactory->create();
$this->setValidationData($validation, $result);
try {
$this->validationRepository->save($validation);
} catch (LocalizedException $exc) {
$this->logger->critical($exc);
}
}
$this->logger->customLog("VatValidationAfter End");
}
/**
* Sets ValidationResult data to Validation
*
* @param \Geissweb\Euvat\Api\Data\ValidationInterface $item
* @param \Geissweb\Euvat\Api\Data\ValidationResultInterface $result
*
* @return void
*/
private function setValidationData(ValidationInterface $item, ValidationResultInterface $result): void
{
$item->setHandle($result->getHandle());
$item->setVatId($result->getVatRequestCountryCode().$result->getVatId());
$item->setVatIsValid($result->getVatIsValid());
$item->setVatRequestDate($result->getVatRequestDate());
$item->setVatRequestId($result->getVatRequestId());
$item->setVatRequestSuccess($result->getVatRequestSuccess());
$item->setVatTraderName($result->getVatTraderName());
$item->setVatTraderAddress($result->getVatTraderAddress());
$item->setRequestMessage($result->getRequestMessage());
}
}
/**
* ||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\Api\Data\ValidationInterfaceFactory;
use Geissweb\Euvat\Api\Data\ValidationResultInterface;
use Geissweb\Euvat\Logger\Logger;
use Geissweb\Euvat\Model\ValidationRepository;
use Magento\Framework\Api\SearchCriteriaBuilder;
use Magento\Framework\Event\Observer;
use Magento\Framework\Event\ObserverInterface;
use Magento\Framework\Exception\LocalizedException;
/**
* Class VatValidationAfter
* Creates or updates VAT number validation data
*/
class VatValidationAfter implements ObserverInterface
{
/**
* @var \Geissweb\Euvat\Api\Data\ValidationInterfaceFactory
*/
public $validationInterfaceFactory;
/**
* @var ValidationRepository
*/
public $validationRepository;
/**
* @var SearchCriteriaBuilder
*/
public $search;
/**
* @var Logger
*/
private $logger;
/**
* Constructor
*
* @param ValidationInterfaceFactory $validationInterfaceFactory
* @param ValidationRepository $validationRepository
* @param Logger $logger
* @param SearchCriteriaBuilder $searchCriteriaBuilder
*/
public function __construct(
ValidationInterfaceFactory $validationInterfaceFactory,
ValidationRepository $validationRepository,
Logger $logger,
SearchCriteriaBuilder $searchCriteriaBuilder
) {
$this->validationInterfaceFactory = $validationInterfaceFactory;
$this->validationRepository = $validationRepository;
$this->search = $searchCriteriaBuilder;
$this->logger = $logger;
}
/**
* Do the job
*
* @param Observer $observer
*
* @return void
* @throws LocalizedException
*/
public function execute(Observer $observer)
{
$this->logger->customLog("VatValidationAfter Start");
/** @var \Geissweb\Euvat\Model\Validation\Result $result */
$result = $observer->getEvent()->getValidationResult();
if ($result->getVatId() === '') {
// Do not persist senseless validation result
return;
}
$searchCriteria = $this->search->addFilter(
'vat_id',
$result->getVatRequestCountryCode() . $result->getVatId(),
'eq'
)->create();
$validationList = $this->validationRepository->getList($searchCriteria);
/** @var ValidationInterface[] $items */
$items = $validationList->getItems();
$this->logger->customLog("VatValidationAfter checking VAT number: "
. $result->getVatRequestCountryCode() . $result->getVatId());
if ($validationList->getTotalCount() > 0) {
$this->logger->customLog("VatValidationAfter updating validation information.");
foreach ($items as $item) {
$this->setValidationData($item, $result);
try {
$this->validationRepository->save($item);
} catch (LocalizedException $exc) {
$this->logger->critical($exc);
}
}
} else {
$this->logger->customLog("VatValidationAfter creating validation information.");
$validation = $this->validationInterfaceFactory->create();
$this->setValidationData($validation, $result);
try {
$this->validationRepository->save($validation);
} catch (LocalizedException $exc) {
$this->logger->critical($exc);
}
}
$this->logger->customLog("VatValidationAfter End");
}
/**
* Sets ValidationResult data to Validation
*
* @param \Geissweb\Euvat\Api\Data\ValidationInterface $item
* @param \Geissweb\Euvat\Api\Data\ValidationResultInterface $result
*
* @return void
*/
private function setValidationData(ValidationInterface $item, ValidationResultInterface $result): void
{
$item->setHandle($result->getHandle());
$item->setVatId($result->getVatRequestCountryCode().$result->getVatId());
$item->setVatIsValid($result->getVatIsValid());
$item->setVatRequestDate($result->getVatRequestDate());
$item->setVatRequestId($result->getVatRequestId());
$item->setVatRequestSuccess($result->getVatRequestSuccess());
$item->setVatTraderName($result->getVatTraderName());
$item->setVatTraderAddress($result->getVatTraderAddress());
$item->setRequestMessage($result->getRequestMessage());
}
}