/** * @return boolean */ protected function isWeeklySendDay($dateFrom) { $weeklyDay = $this->accountSettings->get(Pap_Settings::NOTIFICATION_WEEKLY_REPORT_SENT_ON); if (!$this->wasCronStopped($dateFrom)) { return date('w', $this->time) == $weeklyDay; } $dateFromTimestamp = Gpf_Common_DateUtils::getTimestamp($dateFrom); $dateStart = new Gpf_DateTime($dateFromTimestamp); $dateStart->addWeek(-1); $dateEnd = new Gpf_DateTime($dateFromTimestamp); $lastWeek = Gpf_Common_DateUtils::addDateUnitToTimestamp($this->time, -1, Gpf_Common_DateUtils::WEEK); if ($lastWeek < $dateStart->getWeekStart()->toDateTime() || $lastWeek > $dateEnd->getWeekEnd()->toDateTime()) { return false; } if ($lastWeek >= $dateStart->getWeekStart()->toDateTime() && $lastWeek <= $dateStart->getWeekEnd()->toDateTime() && date('w', $dateFromTimestamp) >= $weeklyDay) { return false; } if (date('w', $this->time) < $weeklyDay) { return false; } return true; }