OrdersUpdater.php 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\Paypal\Model\Billing\Agreement;
  7. /**
  8. * Orders grid massaction items updater
  9. */
  10. class OrdersUpdater implements \Magento\Framework\View\Layout\Argument\UpdaterInterface
  11. {
  12. /**
  13. * @var \Magento\Framework\Registry
  14. */
  15. protected $_registryManager;
  16. /**
  17. * @var \Magento\Paypal\Model\ResourceModel\Billing\Agreement
  18. */
  19. protected $_agreementResource;
  20. /**
  21. * @param \Magento\Framework\Registry $coreRegistry
  22. * @param \Magento\Paypal\Model\ResourceModel\Billing\Agreement $agreementResource
  23. * @param array $data
  24. * @throws \InvalidArgumentException
  25. */
  26. public function __construct(
  27. \Magento\Framework\Registry $coreRegistry,
  28. \Magento\Paypal\Model\ResourceModel\Billing\Agreement $agreementResource,
  29. array $data = []
  30. ) {
  31. $this->_registryManager = isset($data['registry']) ? $data['registry'] : $coreRegistry;
  32. $this->_agreementResource = $agreementResource;
  33. if (false === $this->_registryManager instanceof \Magento\Framework\Registry) {
  34. throw new \InvalidArgumentException('registry object has to be an instance of \Magento\Framework\Registry');
  35. }
  36. }
  37. /**
  38. * Add billing agreement filter
  39. *
  40. * @param mixed $argument
  41. * @return mixed
  42. * @throws \DomainException
  43. */
  44. public function update($argument)
  45. {
  46. $billingAgreement = $this->_registryManager->registry('current_billing_agreement');
  47. if (!$billingAgreement) {
  48. throw new \DomainException('Undefined billing agreement object');
  49. }
  50. $this->_agreementResource->addOrdersFilter($argument, $billingAgreement->getId());
  51. return $argument;
  52. }
  53. }