Skip to content

Commit

Permalink
MAGETWO-56349: [GITHUB] Newsletter Queue doesn't set to local time #5943
Browse files Browse the repository at this point in the history
  • Loading branch information
serhii-balko committed Aug 21, 2017
1 parent d00a950 commit f746b83
Showing 1 changed file with 13 additions and 2 deletions.
15 changes: 13 additions & 2 deletions app/code/Magento/Newsletter/Model/Queue.php
Original file line number Diff line number Diff line change
Expand Up @@ -109,6 +109,13 @@ class Queue extends \Magento\Framework\Model\AbstractModel implements TemplateTy
*/
protected $_transportBuilder;

/**
* Timezone library.
*
* @var \Magento\Framework\Stdlib\DateTime\Timezone
*/
private $timezone;

/**
* @param \Magento\Framework\Model\Context $context
* @param \Magento\Framework\Registry $registry
Expand All @@ -120,6 +127,7 @@ class Queue extends \Magento\Framework\Model\AbstractModel implements TemplateTy
* @param \Magento\Newsletter\Model\Queue\TransportBuilder $transportBuilder
* @param \Magento\Framework\Model\ResourceModel\AbstractResource $resource
* @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection
* @param \Magento\Framework\Stdlib\DateTime\Timezone $timezone
* @param array $data
* @SuppressWarnings(PHPMD.ExcessiveParameterList)
*/
Expand All @@ -134,6 +142,7 @@ public function __construct(
\Magento\Newsletter\Model\Queue\TransportBuilder $transportBuilder,
\Magento\Framework\Model\ResourceModel\AbstractResource $resource = null,
\Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null,
\Magento\Framework\Stdlib\DateTime\Timezone $timezone = null,
array $data = []
) {
parent::__construct(
Expand All @@ -149,6 +158,9 @@ public function __construct(
$this->_problemFactory = $problemFactory;
$this->_subscribersCollection = $subscriberCollectionFactory->create();
$this->_transportBuilder = $transportBuilder;
$this->timezone = $timezone ?: \Magento\Framework\App\ObjectManager::getInstance()->get(
\Magento\Framework\Stdlib\DateTime\Timezone::class
);
}

/**
Expand Down Expand Up @@ -183,8 +195,7 @@ public function setQueueStartAtByString($startAt)
if ($startAt === null || $startAt == '') {
$this->setQueueStartAt(null);
} else {
$time = (new \DateTime($startAt))->getTimestamp();
$this->setQueueStartAt($this->_date->gmtDate(null, $time));
$this->setQueueStartAt($this->timezone->convertConfigTimeToUtc($startAt));
}
return $this;
}
Expand Down

0 comments on commit f746b83

Please sign in to comment.