AbstractItems.php 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\Downloadable\Model\Sales\Order\Pdf\Items;
  7. /**
  8. * Order Downloadable Pdf Items renderer
  9. * @SuppressWarnings(PHPMD.CouplingBetweenObjects)
  10. */
  11. abstract class AbstractItems extends \Magento\Sales\Model\Order\Pdf\Items\AbstractItems
  12. {
  13. /**
  14. * Downloadable links purchased model
  15. *
  16. * @var \Magento\Downloadable\Model\Link\Purchased
  17. */
  18. protected $_purchasedLinks = null;
  19. /**
  20. * Core store config
  21. *
  22. * @var \Magento\Framework\App\Config\ScopeConfigInterface
  23. */
  24. protected $_scopeConfig;
  25. /**
  26. * @var \Magento\Downloadable\Model\Link\PurchasedFactory
  27. */
  28. protected $_purchasedFactory;
  29. /**
  30. * @var \Magento\Downloadable\Model\ResourceModel\Link\Purchased\Item\CollectionFactory
  31. */
  32. protected $_itemsFactory;
  33. /**
  34. * @param \Magento\Framework\Model\Context $context
  35. * @param \Magento\Framework\Registry $registry
  36. * @param \Magento\Tax\Helper\Data $taxData
  37. * @param \Magento\Framework\Filesystem $filesystem
  38. * @param \Magento\Framework\Filter\FilterManager $filterManager
  39. * @param \Magento\Framework\App\Config\ScopeConfigInterface $scopeConfig
  40. * @param \Magento\Downloadable\Model\Link\PurchasedFactory $purchasedFactory
  41. * @param \Magento\Downloadable\Model\ResourceModel\Link\Purchased\Item\CollectionFactory $itemsFactory
  42. * @param \Magento\Framework\Model\ResourceModel\AbstractResource $resource
  43. * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection
  44. * @param array $data
  45. * @SuppressWarnings(PHPMD.ExcessiveParameterList)
  46. */
  47. public function __construct(
  48. \Magento\Framework\Model\Context $context,
  49. \Magento\Framework\Registry $registry,
  50. \Magento\Tax\Helper\Data $taxData,
  51. \Magento\Framework\Filesystem $filesystem,
  52. \Magento\Framework\Filter\FilterManager $filterManager,
  53. \Magento\Framework\App\Config\ScopeConfigInterface $scopeConfig,
  54. \Magento\Downloadable\Model\Link\PurchasedFactory $purchasedFactory,
  55. \Magento\Downloadable\Model\ResourceModel\Link\Purchased\Item\CollectionFactory $itemsFactory,
  56. \Magento\Framework\Model\ResourceModel\AbstractResource $resource = null,
  57. \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null,
  58. array $data = []
  59. ) {
  60. $this->_scopeConfig = $scopeConfig;
  61. $this->_purchasedFactory = $purchasedFactory;
  62. $this->_itemsFactory = $itemsFactory;
  63. parent::__construct(
  64. $context,
  65. $registry,
  66. $taxData,
  67. $filesystem,
  68. $filterManager,
  69. $resource,
  70. $resourceCollection,
  71. $data
  72. );
  73. }
  74. /**
  75. * Return Purchased link for order item
  76. *
  77. * @return \Magento\Downloadable\Model\Link\Purchased
  78. */
  79. public function getLinks()
  80. {
  81. $this->_purchasedLinks = $this->_purchasedFactory->create()->load($this->getOrder()->getId(), 'order_id');
  82. $purchasedItems = $this->_itemsFactory->create()->addFieldToFilter(
  83. 'order_item_id',
  84. $this->getItem()->getOrderItem()->getId()
  85. );
  86. $this->_purchasedLinks->setPurchasedItems($purchasedItems);
  87. return $this->_purchasedLinks;
  88. }
  89. /**
  90. * Return Links Section Title for order item
  91. *
  92. * @return string
  93. */
  94. public function getLinksTitle()
  95. {
  96. if ($this->_purchasedLinks->getLinkSectionTitle()) {
  97. return $this->_purchasedLinks->getLinkSectionTitle();
  98. }
  99. return $this->_scopeConfig->getValue(
  100. \Magento\Downloadable\Model\Link::XML_PATH_LINKS_TITLE,
  101. \Magento\Store\Model\ScopeInterface::SCOPE_STORE
  102. );
  103. }
  104. }