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/vendor/extmag/shiplab/Block/Order/CreditMemo/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : /home/corals/old/vendor/extmag/shiplab/Block/Order/CreditMemo/LabelsList.php
<?php
/**
 * Copyright © Extmag. All rights reserved.
 */

namespace Extmag\Shiplab\Block\Order\CreditMemo;

use Extmag\Shiplab\Helper\Manager;
use Extmag\Shiplab\Model\ResourceModel\Label\Collection;
use Extmag\Shiplab\Model\ResourceModel\Label\CollectionFactory as LabelCollection;
use Extmag\Shiplab\Model\Source\CarrierCodes;
use Magento\Framework\View\Element\Template;
use Magento\Framework\View\Element\Template\Context;
use Magento\Sales\Model\Order\Creditmemo;

class LabelsList extends Template
{
    /**
     * @var string
     */
    protected $_template = 'order/creditmemo/labels-list.phtml';

    /**
     * @var Manager
     */
    protected $manager;

    /**
     * @var Creditmemo
     */
    protected $creditMemo = null;

    /**
     * @var LabelCollection
     */
    protected $labelCollection;
    /**
     * @var CarrierCodes
     */
    protected $carrierCodes;

    /**
     * @param Context $context
     * @param LabelCollection $labelCollection
     * @param Manager $manager
     * @param CarrierCodes $carrierCodes
     */
    public function __construct(
        Context         $context,
        LabelCollection $labelCollection,
        Manager         $manager,
        CarrierCodes    $carrierCodes
    ) {
        parent::__construct($context);
        $this->labelCollection = $labelCollection;
        $this->manager = $manager;
        $this->carrierCodes = $carrierCodes;
    }

    public function isAccessible()
    {
        if ($this->creditMemo !== null) {
            /**
             * @var Collection $labelCollection
             */
            $labelCollection = $this->labelCollection->create();
            $labels = $labelCollection
                ->addFieldToFilter('status', 1)
                ->addFieldToFilter('order_sub_type', 'refund')
                ->addFieldToFilter('order_sub_id', $this->creditMemo->getId())
                ->setPageSize(1)->setCurPage(1);

            $carriersCodes = [];
            foreach ($this->carrierCodes->toArray() as $code => $name) {
                if ($this->manager->getConfig(
                        $code . "_refund/customer/allow_print",
                        $this->creditMemo->getStoreId(),
                        'refund',
                        $this->creditMemo->getShippingAddress()->getCountryId()
                    ) == 1
                ) {
                    $carriersCodes[] = $code;
                }
            }

            if (!empty($carriersCodes)) {
                $labels->addFieldToFilter('carrier_code', ['in' => $carriersCodes]);
            } else {
                return false;
            }

            if ($labels->count() > 0) {
                return true;
            }
        }

        return false;
    }

    public function setCreditMemo($creditMemo)
    {
        $this->creditMemo = $creditMemo;
    }

    public function getPrintLabelUrl(): string
    {
        return $this->getUrl('extmag_shiplab/label/printer', ['creditmemo_id' => $this->creditMemo->getId()]);
    }
}

Spamworldpro Mini