public function executeNew_group_cbo(sfWebRequest $request)
 {
     $name_group = $request->getParameter('name');
     $user = $this->getUser()->getAttribute(sfConfig::get('app_session_current_user'), null);
     if ($user != null) {
         $grupoBean = new GrupoTrabajoSc();
         $grupoBean->setName($name_group);
         $grupoBean->setOwnerId($user->getId());
         $grupoBean->setFlag(1);
         $grupoBean->setCreateAt(time());
         $grupoBean->setUpdateAt(time());
         $grupoBean->setHumanFlag(1);
         $grupoBean->setHumanHigher('off');
         $grupoBean->setHumanLower('on');
         $grupoBean->setHumanMe('off');
         $grupoBean->save();
         $newDetalle = new DetalleGrupoTrabajoSc();
         $newDetalle->setEmail($user->getEmail());
         $newDetalle->setUserId($user->getId());
         $newDetalle->setGrupoId($grupoBean->getId());
         $newDetalle->save();
         $criterio_busqueda = new Criteria();
         $criterio_busqueda->add(GrupoTrabajoScPeer::OWNER_ID, $user->getId());
         $criterio_busqueda->add(GrupoTrabajoScPeer::FLAG, 1);
         $listado = GrupoTrabajoScPeer::doSelect($criterio_busqueda);
         $this->list = $listado;
         return sfView::SUCCESS;
     } else {
         return sfView::ERROR;
     }
 }
 public function executeAccept_group(sfWebRequest $request)
 {
     $invitacion_id = $request->getParameter('invitacion');
     $token_seguridad = $request->getParameter('token');
     $email_token = $request->getParameter('email');
     $user_token = $request->getParameter('account');
     /*vamos a aceptar permanecer a un grupo
        aca realizo validacion en 5 capas
           1 reviso que la session de usuario exista
           2 que la el valor obtenido en la consulta sea un object(que la consulta sql resulte con el registro solicitado)
           3 el token de la solicitud sea correcto
           4 el email sea correcto
           5 que el usuario id sea correcto (este es id del usuario que envio la solicitud en md5)
       */
     $user = $this->getUser()->getAttribute(sfConfig::get('app_session_current_user'), null);
     if ($user != null) {
         $solicitud = SolicitudGrupoTrabajoScPeer::retrieveByPK($invitacion_id);
         if (is_object($solicitud)) {
             if ($token_seguridad == $solicitud->getToken()) {
                 if ($email_token == md5($user->getEmail())) {
                     if ($user_token == md5($solicitud->getUserId())) {
                         $solicitud->setRespondido(1);
                         $solicitud->setFlag(json_encode(array("estado" => false, "respuesta" => true)));
                         $solicitud->setUpdateAt(time());
                         $solicitud->save();
                         //falta cambiar los indicadores que esten relacionados al grupo
                         /*vamos a obtener todos los arboles que esten relacionados con el grupo
                           depues vamos a obtener todos los indicadores donde el usuario se encuentre
                           asignado y vamos a aumetar el ID en cada registro que encontremos*/
                         //admemas vamos hacer lo mismo en las asignaciones para tener un mejor indexacion
                         //a la hora de hacer las consultas.
                         $criterio_tree = new Criteria();
                         $criterio_tree->add(TreeScPeer::GRUPO_TRABAJO_ID, $solicitud->getGrupoId());
                         $list_tree = TreeScPeer::doSelect($criterio_tree);
                         foreach ($list_tree as $row) {
                             $con = Propel::getConnection();
                             $criterio_busqueda = new Criteria();
                             $criterio_busqueda->add(IndicatorsScPeer::EMAIL_RESPONSABLE, '%' . $solicitud->getEmail() . '%', Criteria::LIKE);
                             $criterio_busqueda->add(IndicatorsScPeer::TREE_ID, $row->getId());
                             $criterio_update = new Criteria();
                             $criterio_update->add(IndicatorsScPeer::RESPONSABLE_ID, $user->getId());
                             BasePeer::doUpdate($criterio_busqueda, $criterio_update, $con);
                             $con = Propel::close();
                         }
                         $con = Propel::getConnection();
                         $criterio_asignaciones = new Criteria();
                         $criterio_asignaciones->add(AsignacionScPeer::GRUPO_ID, $solicitud->getGrupoId());
                         $criterio_asignaciones->add(AsignacionScPeer::EMAIL, '%' . $user->getEmail() . '%', Criteria::LIKE);
                         $criterio_update = new Criteria();
                         $criterio_update->add(AsignacionScPeer::USER_ID, $user->getId());
                         BasePeer::doUpdate($criterio_asignaciones, $criterio_update, $con);
                         $con = Propel::close();
                         $grupo_trabajo = new DetalleGrupoTrabajoSc();
                         $grupo_trabajo->setEmail($user->getEmail());
                         $grupo_trabajo->setUserId($user->getId());
                         $grupo_trabajo->setGrupoId($solicitud->getGrupoId());
                         $grupo_trabajo->save();
                         $this->redirect('@list_working_groups');
                     } else {
                         return sfView::ERROR;
                     }
                 } else {
                     return sfView::ERROR;
                 }
             } else {
                 return sfView::ERROR;
             }
         } else {
             return sfView::ERROR;
         }
     } else {
         return sfView::ERROR;
     }
 }
 public function executeCreate_tree(sfWebRequest $request)
 {
     $request->setRequestFormat('json');
     $title = $request->getParameter('item_title');
     $grupo = $request->getParameter('grupo');
     $periodo = $request->getParameter('periodo');
     $typeSave = $request->getParameter('typeSave');
     $nameGroup = $request->getParameter('newgrupo');
     $user = $this->getUser()->getAttribute(sfConfig::get('app_session_current_user'), null);
     if ($user != null) {
         try {
             $conn = Propel::getConnection();
             $conn->beginTransaction();
             $tree_bean = new TreeSc();
             $tree_bean->setName($title);
             $tree_bean->setUserId($user->getId());
             $tree_bean->setConfigureFlag('');
             $tree_bean->setConfigureDesign('');
             $tree_bean->setCreateAt(time());
             $tree_bean->setUpdateAt(time());
             $tree_bean->setPeriodoId($periodo);
             /*voy verificar si esta enviando un grupo para grabar*/
             $grupoBean = null;
             if ($typeSave == "true") {
                 $grupoBean = new GrupoTrabajoSc();
                 $grupoBean->setName($nameGroup);
                 $grupoBean->setOwnerId($user->getId());
                 $grupoBean->setFlag(1);
                 $grupoBean->setCreateAt(time());
                 $grupoBean->setUpdateAt(time());
                 $grupoBean->setHumanFlag(1);
                 $grupoBean->setHumanHigher('off');
                 $grupoBean->setHumanLower('on');
                 $grupoBean->setHumanMe('off');
                 $grupoBean->save();
                 $newDetalle = new DetalleGrupoTrabajoSc();
                 $newDetalle->setEmail($user->getEmail());
                 $newDetalle->setUserId($user->getId());
                 $newDetalle->setGrupoId($grupoBean->getId());
                 $newDetalle->save();
                 $tree_bean->setGrupoTrabajoId($grupoBean->getId());
             } else {
                 $tree_bean->setGrupoTrabajoId($grupo);
             }
             $tree_bean->setFlag(1);
             $tree_bean->setValorDeseado(0);
             $tree_bean->setValorMinimo(0);
             $tree_bean->setResponsableId($user->getId());
             $tree_bean->setEmailResponsable($user->getEmail());
             $tree_bean->setProduccion('not');
             $tree_bean->save();
             $tree_user_bean = new TreeUser();
             $tree_user_bean->setUserId($tree_bean->getUserId());
             $tree_user_bean->setTreeId($tree_bean->getId());
             $tree_user_bean->save();
             $conn->commit();
             $this->message = 'success';
             $this->treepk = 't-' . $tree_bean->getId();
             $this->treeId = $tree_bean->getId();
             $this->title = $tree_bean->getName();
             $this->type = $typeSave;
             $this->group = $grupoBean;
             return sfView::SUCCESS;
         } catch (Exception $e) {
             $this->message = $e->getMessage();
             $conn->rollBack();
             return sfView::ERROR;
         }
     } else {
         $this->message = 'session expired';
         return sfView::ERROR;
     }
 }