AggregateSalesReportRefundedData.php 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\Sales\Model\CronJob;
  7. use Magento\Framework\Locale\ResolverInterface;
  8. use Magento\Framework\Stdlib\DateTime\TimezoneInterface;
  9. /**
  10. * Class AggregateSalesReportRefundedData
  11. */
  12. class AggregateSalesReportRefundedData
  13. {
  14. /**
  15. * @var ResolverInterface
  16. */
  17. protected $localeResolver;
  18. /**
  19. * @var TimezoneInterface
  20. */
  21. protected $localeDate;
  22. /**
  23. * @var \Magento\Sales\Model\ResourceModel\Report\RefundedFactory
  24. */
  25. protected $refundedFactory;
  26. /**
  27. * @param ResolverInterface $localeResolver
  28. * @param TimezoneInterface $timezone
  29. * @param \Magento\Sales\Model\ResourceModel\Report\RefundedFactory $refundedFactory
  30. */
  31. public function __construct(
  32. ResolverInterface $localeResolver,
  33. TimezoneInterface $timezone,
  34. \Magento\Sales\Model\ResourceModel\Report\RefundedFactory $refundedFactory
  35. ) {
  36. $this->localeResolver = $localeResolver;
  37. $this->localeDate = $timezone;
  38. $this->refundedFactory = $refundedFactory;
  39. }
  40. /**
  41. * Refresh sales refunded report statistics for last day
  42. *
  43. * @return void
  44. */
  45. public function execute()
  46. {
  47. $this->localeResolver->emulate(0);
  48. $currentDate = $this->localeDate->date();
  49. $date = $currentDate->sub(new \DateInterval('PT25H'));
  50. $this->refundedFactory->create()->aggregate($date);
  51. $this->localeResolver->revert();
  52. }
  53. }