AggregateSalesReportInvoicedData.php 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  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. /**
  8. * Class AggregateSalesReportInvoicedData
  9. */
  10. class AggregateSalesReportInvoicedData
  11. {
  12. /**
  13. * @var \Magento\Framework\Locale\ResolverInterface
  14. */
  15. protected $localeResolver;
  16. /**
  17. * @var \Magento\Framework\Stdlib\DateTime\TimezoneInterface
  18. */
  19. protected $localeDate;
  20. /**
  21. * @var \Magento\Sales\Model\ResourceModel\Report\InvoicedFactory
  22. */
  23. protected $invoicedFactory;
  24. /**
  25. * @param \Magento\Framework\Locale\ResolverInterface $localeResolver
  26. * @param \Magento\Framework\Stdlib\DateTime\TimezoneInterface $timezone
  27. * @param \Magento\Sales\Model\ResourceModel\Report\InvoicedFactory $invoicedFactory
  28. */
  29. public function __construct(
  30. \Magento\Framework\Locale\ResolverInterface $localeResolver,
  31. \Magento\Framework\Stdlib\DateTime\TimezoneInterface $timezone,
  32. \Magento\Sales\Model\ResourceModel\Report\InvoicedFactory $invoicedFactory
  33. ) {
  34. $this->localeResolver = $localeResolver;
  35. $this->localeDate = $timezone;
  36. $this->invoicedFactory = $invoicedFactory;
  37. }
  38. /**
  39. * Refresh sales invoiced report statistics for last day
  40. *
  41. * @return void
  42. */
  43. public function execute()
  44. {
  45. $this->localeResolver->emulate(0);
  46. $currentDate = $this->localeDate->date();
  47. $date = $currentDate->sub(new \DateInterval('PT25H'));
  48. $this->invoicedFactory->create()->aggregate($date);
  49. $this->localeResolver->revert();
  50. }
  51. }