123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163 |
- <?php
- /**
- * Copyright © Magento, Inc. All rights reserved.
- * See COPYING.txt for license details.
- */
- namespace Magento\OfflineShipping\Block\Adminhtml\Carrier\Tablerate;
- /**
- * Shipping carrier table rate grid block
- * WARNING: This grid used for export table rates
- *
- * @author Magento Core Team <core@magentocommerce.com>
- */
- class Grid extends \Magento\Backend\Block\Widget\Grid\Extended
- {
- /**
- * Website filter
- *
- * @var int
- */
- protected $_websiteId;
- /**
- * Condition filter
- *
- * @var string
- */
- protected $_conditionName;
- /**
- * @var \Magento\OfflineShipping\Model\Carrier\Tablerate
- */
- protected $_tablerate;
- /**
- * @var \Magento\OfflineShipping\Model\ResourceModel\Carrier\Tablerate\CollectionFactory
- */
- protected $_collectionFactory;
- /**
- * @param \Magento\Backend\Block\Template\Context $context
- * @param \Magento\Backend\Helper\Data $backendHelper
- * @param \Magento\OfflineShipping\Model\ResourceModel\Carrier\Tablerate\CollectionFactory $collectionFactory
- * @param \Magento\OfflineShipping\Model\Carrier\Tablerate $tablerate
- * @param array $data
- */
- public function __construct(
- \Magento\Backend\Block\Template\Context $context,
- \Magento\Backend\Helper\Data $backendHelper,
- \Magento\OfflineShipping\Model\ResourceModel\Carrier\Tablerate\CollectionFactory $collectionFactory,
- \Magento\OfflineShipping\Model\Carrier\Tablerate $tablerate,
- array $data = []
- ) {
- $this->_collectionFactory = $collectionFactory;
- $this->_tablerate = $tablerate;
- parent::__construct($context, $backendHelper, $data);
- }
- /**
- * Define grid properties
- *
- * @return void
- */
- protected function _construct()
- {
- parent::_construct();
- $this->setId('shippingTablerateGrid');
- $this->_exportPageSize = 10000;
- }
- /**
- * Set current website
- *
- * @param int $websiteId
- * @return $this
- */
- public function setWebsiteId($websiteId)
- {
- $this->_websiteId = $this->_storeManager->getWebsite($websiteId)->getId();
- return $this;
- }
- /**
- * Retrieve current website id
- *
- * @return int
- */
- public function getWebsiteId()
- {
- if ($this->_websiteId === null) {
- $this->_websiteId = $this->_storeManager->getWebsite()->getId();
- }
- return $this->_websiteId;
- }
- /**
- * Set current website
- *
- * @param string $name
- * @return $this
- */
- public function setConditionName($name)
- {
- $this->_conditionName = $name;
- return $this;
- }
- /**
- * Retrieve current website id
- *
- * @return int
- */
- public function getConditionName()
- {
- return $this->_conditionName;
- }
- /**
- * Prepare shipping table rate collection
- *
- * @return \Magento\OfflineShipping\Block\Adminhtml\Carrier\Tablerate\Grid
- */
- protected function _prepareCollection()
- {
- /** @var $collection \Magento\OfflineShipping\Model\ResourceModel\Carrier\Tablerate\Collection */
- $collection = $this->_collectionFactory->create();
- $collection->setConditionFilter($this->getConditionName())->setWebsiteFilter($this->getWebsiteId());
- $this->setCollection($collection);
- return parent::_prepareCollection();
- }
- /**
- * Prepare table columns
- *
- * @return \Magento\Backend\Block\Widget\Grid\Extended
- */
- protected function _prepareColumns()
- {
- $this->addColumn(
- 'dest_country',
- ['header' => __('Country'), 'index' => 'dest_country', 'default' => '*']
- );
- $this->addColumn(
- 'dest_region',
- ['header' => __('Region/State'), 'index' => 'dest_region', 'default' => '*']
- );
- $this->addColumn(
- 'dest_zip',
- ['header' => __('Zip/Postal Code'), 'index' => 'dest_zip', 'default' => '*']
- );
- $label = $this->_tablerate->getCode('condition_name_short', $this->getConditionName());
- $this->addColumn('condition_value', ['header' => $label, 'index' => 'condition_value']);
- $this->addColumn('price', ['header' => __('Shipping Price'), 'index' => 'price']);
- return parent::_prepareColumns();
- }
- }
|