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; } }