/** * @param float $cost * @param Event $event * @param User $user * @param DateTime $now * * @return number */ protected function getVariation($cost, Event $event, User $user, DateTime $now) { $variation = $cost * $event->getRegistrationInfo()->getCostVariation() / 100; if (!$this->talkManager->eventHasAnyApprovedTalk($event) || $event->isSpeakerPromotionalPeriod($now) && $this->talkManager->userHasAnyTalk($user, $event)) { return $variation * -1; } if ($event->isLateRegistrationPeriod($now)) { return $variation; } }
/** * @return boolean */ public function isSpeakerAndApprovalIntervalIsNotFinished() { //TODO this method is duplicate from another place return $this->talkService->userHasAnyTalk($this->user, $this->event) && new DateTime() <= $this->event->getTalkEvaluationEnd(); }