Your IP : 127.0.0.1


Current Path : /home/dev2.destoffenstraat.com/app/code/Geissweb/Euvat/Block/
Upload File :
Current File : /home/dev2.destoffenstraat.com/app/code/Geissweb/Euvat/Block/Vatfield.php

<?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();
    }
}