Your IP : 127.0.0.1
<?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\Block;
use Geissweb\Euvat\Helper\Configuration;
use Geissweb\Euvat\Logger\Logger;
use Magento\Framework\Serialize\Serializer\Json as JsonSerializer;
use Magento\Framework\View\Element\Template;
use Magento\Framework\View\Element\Template\Context;
use Magento\Framework\Stdlib\ArrayManager;
class Vatfield extends Template
{
protected Configuration $config;
private JsonSerializer $serializer;
private ArrayManager $arrayManager;
private Logger $logger;
/**
* Constructor
*
* @param Context $context
* @param Configuration $config
* @param array $data
*/
public function __construct(
Context $context,
Configuration $config,
JsonSerializer $serializer,
ArrayManager $arrayManager,
Logger $logger,
array $data = []
) {
parent::__construct($context, $data);
$this->config = $config;
$this->serializer = $serializer;
$this->arrayManager = $arrayManager;
$this->logger = $logger;
}
public function getJsLayout()
{
$jsLayout = parent::getJsLayout();
$jsLayoutArray = $this->serializer->unserialize($jsLayout);
$vatIdSections = $this->arrayManager->findPaths('vat-id-input', $jsLayoutArray);
foreach ($vatIdSections as $vatIdSectionPath) {
$sectionData = $this->arrayManager->get($vatIdSectionPath, $jsLayoutArray);
if (is_array($sectionData) && isset($sectionData['config'])) {
$jsLayoutArray = $this->arrayManager->replace(
$vatIdSectionPath,
$jsLayoutArray,
array_merge(
$sectionData,
$this->config->getFrontendVatFieldConfig()
)
);
}
}
$this->logger->customLog('jsLayoutArray', $jsLayoutArray);
return $this->serializer->serialize($jsLayoutArray);
}
/**
* Gets system config 'euvat/interface_settings/validate_vatid' value
*/
public function isValidationEnabled(): bool
{
return $this->config->isValidationEnabled();
}
}