/**
  * Returns the number of related SolicitudGrupoTrabajoSc objects.
  *
  * @param      Criteria $criteria
  * @param      boolean $distinct
  * @param      PropelPDO $con
  * @return     int Count of related SolicitudGrupoTrabajoSc objects.
  * @throws     PropelException
  */
 public function countSolicitudGrupoTrabajoScs(Criteria $criteria = null, $distinct = false, PropelPDO $con = null)
 {
     if ($criteria === null) {
         $criteria = new Criteria(UserScPeer::DATABASE_NAME);
     } else {
         $criteria = clone $criteria;
     }
     if ($distinct) {
         $criteria->setDistinct();
     }
     $count = null;
     if ($this->collSolicitudGrupoTrabajoScs === null) {
         if ($this->isNew()) {
             $count = 0;
         } else {
             $criteria->add(SolicitudGrupoTrabajoScPeer::USER_ID, $this->id);
             $count = SolicitudGrupoTrabajoScPeer::doCount($criteria, false, $con);
         }
     } else {
         // criteria has no effect for a new object
         if (!$this->isNew()) {
             // the following code is to determine if a new query is
             // called for.  If the criteria is the same as the last
             // one, just return count of the collection.
             $criteria->add(SolicitudGrupoTrabajoScPeer::USER_ID, $this->id);
             if (!isset($this->lastSolicitudGrupoTrabajoScCriteria) || !$this->lastSolicitudGrupoTrabajoScCriteria->equals($criteria)) {
                 $count = SolicitudGrupoTrabajoScPeer::doCount($criteria, false, $con);
             } else {
                 $count = count($this->collSolicitudGrupoTrabajoScs);
             }
         } else {
             $count = count($this->collSolicitudGrupoTrabajoScs);
         }
     }
     return $count;
 }
 private function evaluar_solicitud($email, $grupo, $userBean)
 {
     //solo puede enviar otra solicitud a la misma persona si
     //-es otra solicitud de otro grupo
     //-si el flag es 2 == Solicitud vencida
     $criterio_solicitud = new Criteria();
     $criterio_solicitud->add(SolicitudGrupoTrabajoScPeer::GRUPO_ID, $grupo);
     $criterio_solicitud->add(SolicitudGrupoTrabajoScPeer::EMAIL, '%' . $email . '%', Criteria::LIKE);
     //FLAG,'1' == activa
     $criterio_solicitud->add(SolicitudGrupoTrabajoScPeer::FLAG, '%estado":true%', Criteria::LIKE);
     $cantidad_registros = SolicitudGrupoTrabajoScPeer::doCount($criterio_solicitud);
     try {
         $con = Propel::getConnection();
         $con->beginTransaction();
         if ($cantidad_registros > 0) {
             //no le envio solicitud
             $obj = array("success" => true, "message" => "no le envio solicitud");
             $con = Propel::close();
             return $obj;
         } else {
             $solicitudBean = new SolicitudGrupoTrabajoSc();
             $solicitudBean->setGrupoId($grupo);
             $solicitudBean->setEmail($email);
             $solicitudBean->setCreateAt(time());
             $solicitudBean->setUpdateAt(time());
             $solicitudBean->setUserId($userBean->getId());
             //formar el token
             $token = md5($grupo . $email . rand($userBean->getId(), 1000));
             $solicitudBean->setToken($token);
             $solicitudBean->setFlag(json_encode(array("estado" => true, "respuesta" => false)));
             $solicitudBean->setRespondido(0);
             $solicitudBean->save();
             try {
                 $message = $this->getMailer()->compose();
                 $message->setSubject('Te invintaron a unirte a practil-scoredcard');
                 $message->setTo($email);
                 $message->setFrom(array('*****@*****.**' => 'Practil'));
                 $html = $this->getPartial('send_email/send_invitation_group', array('uri' => sfConfig::get('app_url_scorecard') . 'confirmation/confirmation_group?token=' . $token . '&email=' . $email . '&group_id=' . $grupo));
                 $message->setBody($html, 'text/html');
                 $this->getMailer()->send($message);
                 $con->commit();
                 $con = Propel::close();
                 $obj = array("success" => true, "message" => "le envie solicitud");
                 return $obj;
             } catch (Exception $e) {
                 $con->rollBack();
                 $con = Propel::close();
                 $obj = array("success" => false, "message" => $e->getMessage());
                 return $obj;
             }
         }
     } catch (Exception $e) {
         $con->rollBack();
         $con = Propel::close();
         $obj = array("success" => false, "message" => "se general");
         return $obj;
     }
 }