![]() 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/ |
<?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()]); } }