![]() 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/Cnc/SerialNumber/Block/Adminhtml/Catalog/Product/Tab/ |
<?php /** * Copyright (c) 2020 Kaliop Digital Commerce (https://digitalcommerce.kaliop.com) All Rights Reserved. * https://opensource.org/licenses/OSL-3.0 Open Software License (OSL 3.0) * Krzysztof Majkowski <[email protected]> */ declare(strict_types=1); namespace Cnc\SerialNumber\Block\Adminhtml\Catalog\Product\Tab; use Cnc\SerialNumber\Block\Adminhtml\Widget\Grid\Column\Renderer\SourceCode; use Cnc\SerialNumber\Model\ResourceModel\SerialNumber\CollectionFactory; use Cnc\SerialNumber\Model\Source\SerialNumber\Status; use Exception; use Magento\Backend\Block\Template\Context; use Magento\Backend\Block\Widget\Grid\Column\Renderer\Datetime; use Magento\Backend\Block\Widget\Grid\Extended; use Magento\Backend\Helper\Data; use Magento\Catalog\Model\Product; use Magento\Framework\Registry; class SerialNumber extends Extended { /** * @var Registry */ protected $coreRegistry; /** * @var CollectionFactory */ protected $collection; /** * History constructor. * @param Context $context * @param Data $backendHelper * @param Registry $coreRegistry * @param CollectionFactory $collection * @param array $data */ public function __construct( Context $context, Data $backendHelper, Registry $coreRegistry, CollectionFactory $collection, array $data = [] ) { parent::__construct($context, $backendHelper, $data); $this->coreRegistry = $coreRegistry; $this->collection = $collection; } /** * @return Product|null */ public function getProduct(): ?Product { return $this->coreRegistry->registry('product'); } /** * @return SerialNumber */ protected function _prepareCollection(): SerialNumber { $collection = $this->collection->create() ->addFieldToFilter('sku', ['in' => $this->getProduct()->getSku()]) ->addFieldToFilter('status', Status::AVAILABLE) ->setOrder('created_at', 'DESC'); $this->setCollection($collection); return parent::_prepareCollection(); } /** * @return Extended * @throws Exception */ protected function _prepareColumns(): Extended { $this->addColumn( 'entity_id', [ 'header' => __('ID'), 'sortable' => true, 'index' => 'entity_id', 'header_css_class' => 'col-id', 'column_css_class' => 'col-id' ] ); $this->addColumn( 'source_code', [ 'header' => __('Source code'), 'index' => 'source_code', 'renderer' => SourceCode::class ] ); $this->addColumn('serial_number', ['header' => __('Serial Number'), 'index' => 'serial_number']); $this->addColumn('origin', ['header' => __('Origin'), 'index' => 'origin']); $this->addColumn( 'created_at', [ 'header' => __('Created at'), 'index' => 'created_at', 'renderer' => Datetime::class ] ); $this->addColumn( 'is_exported', [ 'header' => __('Is exported'), 'index' => 'is_exported', 'options' => [0 => __('No'), 1 => __('Yes')], 'type' => 'options' ] ); return parent::_prepareColumns(); } }