private function apply(UserSubscription $subscription, SubscriptionData $data) { if ($data->userId) { $user = $this->em->getRepository('Newscoop\\Entity\\User')->getOneActiveUser($data->userId, false)->getOneOrNullResult(); if ($user) { $subscription->setUser($user); } } if ($data->publicationId) { $publication = $this->em->getRepository('Newscoop\\Entity\\Publication')->findOneBy(array('id' => $data->publicationId)); if ($publication) { $subscription->setPublication($publication); } } if ($data->toPay) { $subscription->setToPay($data->toPay); } if ($data->subscriptionId) { $subscription->setSubscription($data->subscriptionId); } if ($data->currency) { $subscription->setCurrency($data->currency); } if ($data->active) { $subscription->setActive($data->active); } if ($data->type) { $subscription->setType($data->type); } return $subscription; }
/** * Sets notify sent flag for given user subscription. * Level two of the notifications, for instance, * sends notifications 3 days before expiration. * * @param UserSubscription $subscription User subscription * @param \DateTime $datetime Date time when notify has been sent */ public function setSentDateTimeOnLevelTwo(UserSubscription $subscription, $datetime = null) { $subscription->setNotifySentLevelTwo($datetime ?: new \DateTime('now')); $this->em->flush(); }