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