Tablerate.php 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\OfflineShipping\Model\Config\Backend;
  7. use Magento\Framework\Model\AbstractModel;
  8. /**
  9. * Backend model for shipping table rates CSV importing
  10. *
  11. * @author Magento Core Team <core@magentocommerce.com>
  12. */
  13. class Tablerate extends \Magento\Framework\App\Config\Value
  14. {
  15. /**
  16. * @var \Magento\OfflineShipping\Model\ResourceModel\Carrier\TablerateFactory
  17. */
  18. protected $_tablerateFactory;
  19. /**
  20. * @param \Magento\Framework\Model\Context $context
  21. * @param \Magento\Framework\Registry $registry
  22. * @param \Magento\Framework\App\Config\ScopeConfigInterface $config
  23. * @param \Magento\Framework\App\Cache\TypeListInterface $cacheTypeList
  24. * @param \Magento\OfflineShipping\Model\ResourceModel\Carrier\TablerateFactory $tablerateFactory
  25. * @param \Magento\Framework\Model\ResourceModel\AbstractResource|null $resource
  26. * @param \Magento\Framework\Data\Collection\AbstractDb|null $resourceCollection
  27. * @param array $data
  28. */
  29. public function __construct(
  30. \Magento\Framework\Model\Context $context,
  31. \Magento\Framework\Registry $registry,
  32. \Magento\Framework\App\Config\ScopeConfigInterface $config,
  33. \Magento\Framework\App\Cache\TypeListInterface $cacheTypeList,
  34. \Magento\OfflineShipping\Model\ResourceModel\Carrier\TablerateFactory $tablerateFactory,
  35. \Magento\Framework\Model\ResourceModel\AbstractResource $resource = null,
  36. \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null,
  37. array $data = []
  38. ) {
  39. $this->_tablerateFactory = $tablerateFactory;
  40. parent::__construct($context, $registry, $config, $cacheTypeList, $resource, $resourceCollection, $data);
  41. }
  42. /**
  43. * @return $this
  44. */
  45. public function afterSave()
  46. {
  47. /** @var \Magento\OfflineShipping\Model\ResourceModel\Carrier\Tablerate $tableRate */
  48. $tableRate = $this->_tablerateFactory->create();
  49. $tableRate->uploadAndImport($this);
  50. return parent::afterSave();
  51. }
  52. }