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 executeSave_indicator(sfWebRequest $request) { $request->setRequestFormat('json'); $indicadorId = $request->getParameter('indicatorId'); $titulo = $request->getParameter('title'); $descripcion = $request->getParameter('description'); $valor_minimo = $request->getParameter('valueMin'); $valor_deseado = $request->getParameter('valueDes'); $valor_optimo = $request->getParameter('valueOpt'); $responsable_id = $request->getParameter('responsableId'); $responsable_email = $request->getParameter('responsableEmail'); $grupo_trabajo_id = $request->getParameter('workGroup'); $conector_id = $request->getParameter('conectorId'); /* Google, Facebook, Twitter */ $attribute_id = $request->getParameter('attributeId'); $tableId = $request->getParameter('tableId'); $facebook_username = $request->getParameter('facebook_username'); $twitter_username = $request->getParameter('twitter_username'); $fec_ini = $request->getParameter('fec_ini'); $fec_fin = $request->getParameter('fec_fin'); $json_children = $request->getParameter('indicatorChildren'); $oaux_manejo_data = $request->getParameter('oaux_manejo_data'); $json = json_decode($json_children); if (count($json) > 0) { foreach ($json as $row) { $indicador_children = IndicatorsScPeer::retrieveByPK($row->{'pk'}); $indicador_children->setConectoresConfigure($row->{'values'}); $indicador_children->save(); } } //primero validamos y esta logeado //segundo validamos si el idicador existe //tercero verificamos si se asigno un usuario //(si se le asigno un usuario)cuarto vamos a revisar si el usuario que es asignado esta en e grupo de trabajo /*si no esta en grupo de trabajo envio una solictud ( antes verifico si no le mande una solicitud antes) * por que no se va estar mandando varias solicitudes al mismo usuario * en este caso las solicitudes son 1 vez por grupo de trabajo y no por indicador */ //despues de vefiricar grabamos la primera vesion del indicador con los datos secundarios $user = $this->getUser()->getAttribute(sfConfig::get('app_session_current_user'), null); if ($user != null) { $indicador = IndicatorsScPeer::retrieveByPK($indicadorId); if (is_object($indicador)) { if ($responsable_email != "") { /* aca vamos crear el registro de asignaciones, esta tabla me permite manejar un historial de las asignacion de resposanble x indicador asi podre ver todas los responsables de un determinado indicador.*/ $asignacion_indicador = new AsignacionSc(); $asignacion_indicador->setGrupoId($grupo_trabajo_id); $asignacion_indicador->setEmail($responsable_email); $asignacion_indicador->setTreeId($indicador->getTreeId()); $asignacion_indicador->setIndicadorId($indicador->getId()); $asignacion_indicador->setCreateAt(time()); $asignacion_indicador->setUpdateAt(time()); /**********************************************************************/ if ($responsable_id != "") { /* * */ if ($responsable_id != $indicador->getResponsableId()) { $serviceDataIndicadores = new dataIndicadoresImplementation(); $serviceDataIndicadores->changeOwnerIndicadores($indicador, $responsable_id); } /******************************************/ $asignacion_indicador->setFlag(json_encode(array("estado" => true, "owner_id" => $user->getId()))); $asignacion_indicador->setUserId($responsable_id); $indicador->setResponsableId($responsable_id); $indicador->setEmailResponsable($responsable_email); } else { //envio solicitud //antes verificar si no le enviando una solicitud antes $rsp = $this->evaluar_solicitud($responsable_email, $grupo_trabajo_id, $user); if ($rsp['success']) { $criterio = new Criteria(); $criterio->add(DetalleGrupoTrabajoScPeer::EMAIL, '%' . $responsable_email . '%', Criteria::LIKE); $criterio->add(DetalleGrupoTrabajoScPeer::GRUPO_ID, $grupo_trabajo_id); $cantidad = DetalleGrupoTrabajoScPeer::doCount($criterio); if ($cantidad <= 0) { $newDetalle = new DetalleGrupoTrabajoSc(); $newDetalle->setEmail($responsable_email); $newDetalle->setGrupoId($grupo_trabajo_id); $newDetalle->save(); } $indicador->setEmailResponsable($responsable_email); $indicador->setResponsableId(null); $asignacion_indicador->setFlag(json_encode(array("estado" => false, "owner_id" => $user->getId()))); } else { $this->message = $rsp['message']; return sfView::ERROR; } } $asignacion_indicador->save(); } else { $indicador->setResponsableId(null); $indicador->setEmailResponsable(''); } if ($descripcion != "") { $indicador->setDescripcion($descripcion); } if ($valor_minimo != "") { $indicador->setValorMinimo($valor_minimo); } if ($valor_deseado != "") { $indicador->setValorDeseado($valor_deseado); } if ($valor_optimo != "") { $indicador->setValorOptimo($valor_optimo); } if ($titulo != "") { $indicador->setTitulo($titulo); } if ($oaux_manejo_data == '1') { /* ingreso manual */ $indicador->setDetNetworkAttributeId(null); $indicador->setUsernameInNetwork(null); $indicador->setValorActualEntregado(0); $indicador->setGaFecIni(null); $indicador->setGaFecFin(null); } elseif ($oaux_manejo_data == '2') { /* ingreso automatico */ if ($conector_id != '' && $attribute_id != '') { $c = new Criteria(); $c->add(NetworkPeer::NAME, $conector_id); $c->add(DetNetworkAttributePeer::ATTRIBUTE_ID, $attribute_id); $c->addJoin(NetworkPeer::ID, DetNetworkAttributePeer::NETWORK_ID); $det_network_attribute = DetNetworkAttributePeer::doSelectOne($c); if ($conector_id == 'Facebook') { if ($facebook_username != '') { $indicador->setDetNetworkAttributeId($det_network_attribute->getId()); $indicador->setUsernameInNetwork($facebook_username); /* se extrae valor de la consulta */ $data = $this->privateFunctionGetFacebookData($facebook_username, $det_network_attribute->getId()); if ($data != null) { $indicador->setValorActualEntregado($data); } else { $indicador->setValorActualEntregado(0); } } else { $indicador->setDetNetworkAttributeId(null); $indicador->setUsernameInNetwork(null); $indicador->setValorActualEntregado(0); $indicador->setGaFecIni(null); $indicador->setGaFecFin(null); } } elseif ($conector_id == 'Twitter') { if ($twitter_username != '') { $indicador->setDetNetworkAttributeId($det_network_attribute->getId()); $indicador->setUsernameInNetwork($twitter_username); /* se extrae valor de la consulta */ $data = $this->privateFunctionGetTwitterData($twitter_username, $det_network_attribute->getId()); $indicador->setValorActualEntregado($data); } else { $indicador->setDetNetworkAttributeId(null); $indicador->setUsernameInNetwork(null); $indicador->setValorActualEntregado(0); $indicador->setGaFecIni(null); $indicador->setGaFecFin(null); } } elseif ($conector_id == 'Google Analytics') { if ($tableId != '' && $tableId != 'null') { $indicador->setDetNetworkAttributeId($det_network_attribute->getId()); $indicador->setUsernameInNetwork($tableId); /* se extrae valor de la consulta */ $data = $this->privateFunctionGetGoogleAnalyticsData($indicador->getId(), $tableId, $fec_ini, $fec_fin, $det_network_attribute->getId()); $indicador->setGaFecIni($fec_ini); $indicador->setGaFecFin($fec_fin); $indicador->setValorActualEntregado($data); } else { if (is_object($det_network_attribute)) { $indicador->setDetNetworkAttributeId($det_network_attribute->getId()); } else { $indicador->setDetNetworkAttributeId(null); } $indicador->setUsernameInNetwork(null); $indicador->setValorActualEntregado(0); $indicador->setGaFecIni(null); $indicador->setGaFecFin(null); } } } else { $indicador->setDetNetworkAttributeId(null); $indicador->setUsernameInNetwork(null); $indicador->setValorActualEntregado(0); $indicador->setGaFecIni(null); $indicador->setGaFecFin(null); } } $indicador->save(); } else { $this->message = 'not found indicator'; return sfView::ERROR; } } else { $this->message = 'session expired'; 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; } }
public function executeNew_contact_group(sfWebRequest $request) { $request->setRequestFormat('json'); $id_group = $request->getParameter('groupId'); $email = $request->getParameter('email'); $user = $this->getUser()->getAttribute(sfConfig::get('app_session_current_user'), null); if ($user != null) { $rsp = $this->evaluar_solicitud($email, $id_group, $user); if ($rsp['success']) { $criterio = new Criteria(); $criterio->add(DetalleGrupoTrabajoScPeer::EMAIL, $email); $criterio->add(DetalleGrupoTrabajoScPeer::GRUPO_ID, $id_group); $cantidad = DetalleGrupoTrabajoScPeer::doCount($criterio); if ($cantidad <= 0) { $newDetalle = new DetalleGrupoTrabajoSc(); $newDetalle->setEmail($email); $newDetalle->setGrupoId($id_group); //si ya esta en otro de mis grupos grupo // autocritica...si ya esta en otro grupo no interesa // se le tiene que mandar otra solicitud! /* $criteria_b = new Criteria(); $criteria_b->add(DetalleGrupoTrabajoScPeer::EMAIL,$email); $criteria_b->add(GrupoTrabajoScPeer::OWNER_ID,$user->getId()); $criteria_b->addJoin(GrupoTrabajoScPeer::ID, DetalleGrupoTrabajoScPeer::GRUPO_ID); $count = DetalleGrupoTrabajoScPeer::doCount($criteria_b); if($count>0){ $obj = DetalleGrupoTrabajoScPeer::doSelectOne($criteria_b); if($obj->getUserId()!=null){ $newDetalle->setUserId($obj->getUserId()); } }*/ $newDetalle->save(); return sfView::SUCCESS; } else { $this->message = 'cantidad'; return sfView::ERROR; } } else { $this->message = '$rsp->false'; return sfView::ERROR; } } else { $this->message = 'session'; return sfView::ERROR; } }
/** * 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 DetalleGrupoTrabajoSc $value A DetalleGrupoTrabajoSc object. * @param string $key (optional) key to use for instance map (for performance boost if key was already calculated externally). */ public static function addInstanceToPool(DetalleGrupoTrabajoSc $obj, $key = null) { if (Propel::isInstancePoolingEnabled()) { if ($key === null) { $key = (string) $obj->getId(); } // if key === null self::$instances[$key] = $obj; } }