Beispiel #1
0
 public function executeSubaction(Subaction $subaction, User $user)
 {
     $em = $this->getEntityManager();
     $userTime = $user->getCurrentDateTime();
     $dayStart = clone $userTime;
     $dayFinish = clone $userTime;
     $dayStart->modify('today midnight');
     $dayFinish->modify('tomorrow midnight');
     $existingSubprogress = $em->getRepository('AcmeEdelaBundle:UserSubactionProgress')->matching(Criteria::create()->where(Criteria::expr()->eq('user', $user))->andWhere(Criteria::expr()->eq('subaction', $subaction))->andWhere(Criteria::expr()->gte('createdAt', $dayStart))->andWhere(Criteria::expr()->lte('createdAt', $dayFinish)));
     if ($existingSubprogress->count()) {
         $em->remove($existingSubprogress->first());
         $progress = false;
     } else {
         $subprogress = new UserSubactionProgress();
         $subprogress->setUser($user)->setSubaction($subaction);
         $em->persist($subprogress);
         $progress = true;
     }
     $em->flush();
     return $progress;
 }