Spamworldpro Mini Shell
Spamworldpro


Server : Apache
System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64
User : corals ( 1002)
PHP Version : 7.4.33
Disable Function : exec,passthru,shell_exec,system
Directory :  /home/corals/old/app/code/Chronopost/Chronorelais/Controller/Ajax/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : //home/corals/old/app/code/Chronopost/Chronorelais/Controller/Ajax/GetSaturdayOption.php
<?php
/**
 * Chronopost
 *
 * DISCLAIMER
 *
 * Do not edit or add to this file if you wish to upgrade this extension to newer
 * version in the future.
 *
 * @category  Chronopost
 * @package   Chronopost_Chronorelais
 * @copyright Copyright (c) 2021 Chronopost
 */
declare(strict_types=1);

namespace Chronopost\Chronorelais\Controller\Ajax;

use Chronopost\Chronorelais\Helper\Data;
use Exception;
use Magento\Framework\App\Action\Action;
use Magento\Framework\App\Action\Context;
use Magento\Framework\Controller\Result\Json;
use Magento\Framework\Controller\Result\JsonFactory;
use Magento\Framework\Pricing\PriceCurrencyInterface;
use Magento\Framework\View\Element\Template;
use Magento\Framework\View\LayoutFactory;
use Magento\Shipping\Model\CarrierFactory;

/**
 * Class GetSaturdayOption
 *
 * @package Chronopost\Chronorelais\Controller\Ajax
 */
class GetSaturdayOption extends Action
{

    /**
     * @var CarrierFactory
     */
    private $carrierFactory;

    /**
     * @var Data
     */
    private $helper;

    /**
     * @var JsonFactory
     */
    private $jsonFactory;

    /**
     * @var LayoutFactory
     */
    private $layoutFactory;

    /**
     * @var PriceCurrencyInterface
     */
    private $currency;

    /**
     * GetSaturdayOption constructor.
     *
     * @param Context                $context
     * @param CarrierFactory         $carrierFactory
     * @param Data                   $helper
     * @param JsonFactory            $jsonFactory
     * @param LayoutFactory          $layoutFactory
     * @param PriceCurrencyInterface $currency
     */
    public function __construct(
        Context $context,
        CarrierFactory $carrierFactory,
        Data $helper,
        JsonFactory $jsonFactory,
        LayoutFactory $layoutFactory,
        PriceCurrencyInterface $currency
    ) {
        parent::__construct($context);
        $this->carrierFactory = $carrierFactory;
        $this->helper = $helper;
        $this->jsonFactory = $jsonFactory;
        $this->layoutFactory = $layoutFactory;
        $this->currency = $currency;
    }

    /**
     * Display saturday options
     *
     * @return Json
     * @throws Exception
     */
    public function execute()
    {
        $resultData = [];
        $result = $this->jsonFactory->create();
        $shippingMethodCode = $this->getRequest()->getParam('method_code');
        if ($this->helper->isChronoMethod($shippingMethodCode)) {
            $carrier = $this->carrierFactory->get($shippingMethodCode);
            $shippingDeliverOnSaturday = $carrier->getConfigData('deliver_on_saturday');
            $customerChoiceEnabled = $this->helper->displaySaturdayOption();
            $isSendingDay = $this->helper->isSendingDay();
            $saturdayAmount = $this->helper->getSaturdayShippingAmount();
            $currencySymbol = $this->currency->getCurrencySymbol();

            if ($customerChoiceEnabled && $isSendingDay && $shippingDeliverOnSaturday) {
                $layout = $this->layoutFactory->create();
                $content = $layout->createBlock(Template::class)
                    ->setMethodCode($shippingMethodCode)
                    ->setSaturdayAmount($saturdayAmount)
                    ->setCurrencySymbol($currencySymbol)
                    ->setTemplate('Chronopost_Chronorelais::saturday_option.phtml')
                    ->toHtml();

                $resultData['method_code'] = $shippingMethodCode;
                $resultData['content'] = $content;
            }
        }

        $result->setData($resultData);

        return $result;
    }
}

Spamworldpro Mini