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;
     }
 }
 /**
  * Adds an object to the instance pool.
  *
  * Propel keeps cached copies of objects in an instance pool when they are retrieved
  * from the database.  In some cases -- especially when you override doSelect*()
  * methods in your stub classes -- you may need to explicitly add objects
  * to the cache in order to ensure that the same objects are always returned by doSelect*()
  * and retrieveByPK*() calls.
  *
  * @param      SolicitudGrupoTrabajoSc $value A SolicitudGrupoTrabajoSc object.
  * @param      string $key (optional) key to use for instance map (for performance boost if key was already calculated externally).
  */
 public static function addInstanceToPool(SolicitudGrupoTrabajoSc $obj, $key = null)
 {
     if (Propel::isInstancePoolingEnabled()) {
         if ($key === null) {
             $key = (string) $obj->getId();
         }
         // if key === null
         self::$instances[$key] = $obj;
     }
 }