Esempio n. 1
0
 public function getProfileData(User $user)
 {
     $result = [];
     $result['subscribe'] = ['enabled' => $user->getIsSubscribed()];
     $result['profile'] = $user;
     $connection = $this->getEntityManager()->getConnection();
     $settings = $connection->fetchAll('SELECT tkey, value FROM ed_users_settings WHERE user_id=:user AND tkey IN (:keys)', ['user' => $user->getId(), 'keys' => ['lk_user_disabled', 'lk_privacy_disabled', 'lk_balance_disabled', 'lk_additional_disabled']], ['keys' => Connection::PARAM_STR_ARRAY]);
     $result['settings'] = [];
     foreach ($settings as $setting) {
         $result['settings'][$setting['tkey']] = $setting['value'];
     }
     return $result;
 }
Esempio n. 2
0
 public function getSubactions($action_id, User $user, \DateTime $date = null, $doneOnly = false)
 {
     if (!$date) {
         $date = new \DateTime();
     }
     $date->modify('midnight');
     $dateFinish = clone $date;
     $dateFinish->modify('tomorrow midnight');
     $connection = $this->getEntityManager()->getConnection();
     $sql = 'SELECT sa.id, sa.title, EXISTS(
     SELECT * FROM ed_users_subactions_progresses sp WHERE sp.subaction_id=sa.id AND sp.user_id=:user AND sp.created_at > :dayStart AND sp.created_at < :dayFinish
     ) as progress FROM ed_subactions sa WHERE ' . 'sa.action_id=:action';
     if ($doneOnly) {
         $sql .= ' HAVING progress';
     }
     $result = $connection->fetchAll($sql, ['user' => $user->getId(), 'action' => $action_id, 'dayStart' => $date, 'dayFinish' => $dateFinish], ['dayStart' => 'datetime', 'dayFinish' => 'datetime']);
     foreach ($result as &$row) {
         $row['progress'] = (bool) $row['progress'];
     }
     return $result;
     $subactions = $this->getEntityManager()->createQueryBuilder()->from('AcmeEdelaBundle:Subaction', 'sa')->select('sa.id as id')->addSelect('sa.title as title')->addSelect('sp.createdAt as progress')->leftJoin('AcmeEdelaBundle:UserSubactionProgress', 'sp', Join::WITH, 'sp.subaction=sa AND sp.user=:user AND sp.createdAt > :dayStart AND sp.createdAt < :dayFinish')->setParameter('user', $user)->setParameter('dayStart', $date)->setParameter('dayFinish', $dateFinish)->where('sa.action=:action')->setParameter('action', $action_id);
     if ($doneOnly) {
         $subactions->andWhere('sp.createdAt IS NOT NULL');
     }
     return $subactions->getQuery()->getResult();
 }
 /**
  * {@inheritDoc}
  */
 public function getId()
 {
     if ($this->__isInitialized__ === false) {
         return (int) parent::getId();
     }
     $this->__initializer__ && $this->__initializer__->__invoke($this, 'getId', array());
     return parent::getId();
 }