$etiqueta_gemela = ""; $avance_experiencia = ""; //Modificar para que solo se pueda comentar cuando se jhaya terminado la ejecución del DD //calcular el nivel de avance y si este es de un 100% mostrar el fourmulario para dejar coemntarios if (!is_null($_REQUEST["et_gemela"]) and strlen($_REQUEST["et_gemela"]) > 0) { $etiqueta_gemela = $_REQUEST["et_gemela"]; } if (is_null($id_exp) or strlen($id_exp) == 0) { $id_exp = -1; } $rol_esta_experiencia = validaExperiencia($id_exp); if (is_null($id_dd) or strlen($id_dd) == 0) { $error = 1; $error_msg = $lang_error_sin_codigo_dd; } else { $conexion = dbConectarMySQL($config_host_bd, $config_usuario_bd, $config_password_bd, $config_bd); $avance_experiencia = dbExpObtenerAvance($id_exp, $conexion); $comentarios_experiencia = dbObtenerComentariosDD($id_dd, $id_exp, $conexion); dbDesconectarMySQL($conexion); //Calculo del avance, para saber si es que se terminó de ejecutar la experiencia $t_ejecutado = $avance_experiencia["suma_t_actividades_finalizadas"] or 0; if (is_null($avance_experiencia["suma_sesiones_estimadas"]) or $avance_experiencia["suma_sesiones_estimadas"] == "") { $avance_experiencia["suma_sesiones_estimadas"] = 0; } $t_estimado = $avance_experiencia["suma_sesiones_estimadas"] * $config_minutos_sesion; $nivel_avance = "-"; if ($t_estimado > 0) { $nivel_avance = $t_ejecutado / $t_estimado; if ($nivel_avance > 1) { $nivel_avance = 1; }
function multiCastMsjeActividadBitacora($mensaje, $id_experiencia, $tipo_bitacora) { global $users, $users_exp, $config_host_bd, $config_usuario_bd, $config_password_bd, $config_bd; say("> " . $mensaje); $mensaje = wrap($mensaje); /*if ($tipo_bitacora=="Clase"){//Caso que haya sido una actividad en la Bitácora de Mi Clase say("Experiencia Mi Clase: ".$id_experiencia); $_clientes_experiencia=$users_exp[$id_experiencia]; $i=0; foreach($_clientes_experiencia as $cliente){ $socket_cliente=$users[$cliente]->socket; @socket_write($socket_cliente, $mensaje , strlen($mensaje)); $i++; } say("Nro clientes: ".$i); }else{//Caso de que haya sido una actividad en la Bitácora Compartida*/ //Se obtiene las experiencias gemelas correspondientes a la experiencia asociada a un mensaje $conexion = dbConectarMySQL($config_host_bd, $config_usuario_bd, $config_password_bd, $config_bd); $_arreglo_exp_gemelas = obtenerArrayExpGemelas($id_experiencia, $conexion); dbDesconectarMySQL($conexion); say("> Nro exp gemelas" . sizeof($_arreglo_exp_gemelas)); foreach ($_arreglo_exp_gemelas as $exp_gemela) { say("Experiencia Gemela: " . $exp_gemela); $_clientes_experiencia = $users_exp[$exp_gemela]; $i = 0; foreach ($_clientes_experiencia as $cliente) { $socket_cliente = $users[$cliente]->socket; @socket_write($socket_cliente, $mensaje, strlen($mensaje)); $i++; } say("Nro clientes: " . $i); } //} return true; }
$ruta_raiz = "../"; require_once $ruta_raiz . "conf/config.php"; require_once $ruta_raiz . "inc/all.inc.php"; require_once $ruta_raiz . "inc/verificar_sesion.inc.php"; require_once $ruta_raiz . "encuestas/inc/en_db_functions.inc.php"; //obtencion de parametros por URL $id_encuesta = $_REQUEST['id_encuesta']; $grupo_rol = $_REQUEST['a_grupo']; $avance = $_REQUEST['avance']; // porcentaje avance de la experiecnia $anio = $_REQUEST['anio']; //anio comienzo $anio1 = $_REQUEST['anio1']; // anio hasta $semestre = $_REQUEST['semestre']; //arreglo de grupos $a_grupo = split('-', $grupo_rol); //conexiones a las bases de datos $conexion = dbConectarMySQL($config_host_bd, $config_usuario_bd, $config_password_bd, $config_bd); //volvamos usuarios seleccionados desde el panel del administrador a la base de datos de LimeSurvey $volcado = dbENVolcarUsuariosAEncuesta($a_grupo, $avance, $anio, $anio1, $semestre, $id_encuesta, $config_host_bd, $config_bd_ls, $config_usuario_bd_ls, $config_password_bd_ls, $conexion); //dbDesconectarMySQL($conexion); //funcion para activar la encuesta $conexion_ls = dbConectarMySQL($config_host_bd, $config_usuario_bd_ls, $config_password_bd_ls, $config_bd_ls); $activacion = dbENSetEncuesta($id_encuesta, 'Y', $grupo_rol, $semestre, $anio, $anio1, $conexion_ls); dbDesconectarMySQL($conexion_ls); if ($volcado) { echo '1'; } else { echo '0'; }
/** * Obtiene productos asociados al grupo en la tabla rp_producto * * @author Sergio Bustamante M. - Kelluwen * @version 2012.07.03 * @param Array $a_rol arreglo de los encuestados, para separar publico objetivo de la encuesta (1:estudiante 2:profesor 3:colaborador) * @param Integer $avance porcentaje de avance exigido por filtro * @param Integer $anio de los experiencia de la encuesta (desde) * @param Integer $anio1 de los experiencia de la encuesta (hasta) * @param Integer $semestre de las experiencias seleccionadas * @param Integer $id_encuesta a la que seran enlazados los encuestados * @param resource $conexion Identificador de enlace a MySQL * @return $_resp null/true para verificar si hubo */ function dbENVolcarUsuariosAEncuesta($a_rol, $avance, $anio, $anio1, $semestre, $id_encuesta, $config_host_bd, $config_bd_ls, $config_usuario_bd_ls, $config_password_bd_ls, $conexion) { $_resp = null; //generamos parte de la consulta dinamicamente deendiendo de la cantidad de elementos del arreglo $cadena_consulta_grupos = '('; $cadena_consulta_avance = ''; foreach ($a_rol as $key => $rol) { $cadena_consulta_grupos .= " UE.ue_rol_usuario =" . $rol; if ($a_rol[$key + 1]) { $cadena_consulta_grupos .= " OR "; } } $cadena_consulta_grupos .= ')'; //verificamos la seleccion de semestre para configurar la consulta if ($semestre == 0) { //caso donde no se filtra por semestre $rango_semestre = ''; } else { //caso donde si se filtra por semestre $rango_semestre = "AND substring(ED.ed_semestre,1,1) = '" . $semestre . "'"; } //verificamos la sleeccion de anio para configurar la consulta if ($anio == $anio1) { //caso del mismo anio $rango_anio = "ED.ed_anio = '" . $anio . "'"; } else { $rango_anio = "ED.ed_anio BETWEEN '" . $anio . "' AND '" . $anio1 . "'"; } //consulta para seleccionar usuarios de la plataforma $consulta = "SELECT DISTINCT " . "UE.ue_id_usuario, UE.ue_rol_usuario " . "FROM " . "usuario_experiencia UE, experiencia_didactica ED " . "WHERE " . $cadena_consulta_grupos . ' AND ' . 'UE.ue_id_experiencia = ED.ed_id_experiencia ' . $rango_semestre . " AND " . $rango_anio; // //echo $consulta; // $cambio = mysql_select_db($config_bd_ls,$conexion);// $resultado = dbEjecutarConsulta($consulta, $conexion); if ($resultado) { //definimos estructira en encuesta a ingressar en BD limesurvey $consulta_acumulada = ''; $consulta2 = "INSERT INTO lime_tokens_" . $id_encuesta . " (tid,\n firstname,\n lastname,\n email,\n emailstatus,\n token,\n language,\n sent,\n remindersent,\n remindercount,\n completed,\n usesleft) " . "VALUES "; //arreglo de ids para no duplicar $a_evita_duplicados = array(); if (mysql_num_rows($resultado) > 0) { $_resp = array(); while ($_fila = mysql_fetch_array($resultado, MYSQL_BOTH)) { $_resp['id_usuario'] = $_fila["ue_id_usuario"]; $_resp['rol_usuario'] = $_fila["ue_rol_usuario"]; //true en defecto para todos los usuarios $bandera = true; //consultamos por el id de usuario $datos_usuario = dbENInfoUsuario($_resp['id_usuario'], $conexion); //caso de usuario profesor y se exija avance if ($_resp['rol_usuario'] == 1 && $avance != 0) { //false en defecto para los profesores $bandera = false; //consultamos por las experiencias del usuario $experiencias_profesor = dbObtenerExpUsuarioMin($datos_usuario['usuario'], $conexion); //para cada experiencia del usuario verificamos su avance if ($experiencias_profesor) { foreach ($experiencias_profesor as $experiencia) { if ($experiencia['rol'] == 1) { if ($experiencia["anio"] >= $anio && $experiencia["anio"] <= $anio1) { if ($semestre != 0) { //caso donde pide semestre y cumple con requisito if ($semestre == substr($experiencia["semestre"], 0, 1)) { //caso donde pide semestre y cumple con requisito //se obtiene el nivel de avance de la experiencia $_avance_experiencia = dbExpObtenerAvance($experiencia["id_experiencia"], $conexion); //calculo de nivel de avance $t_estimado = $_avance_experiencia["suma_sesiones_estimadas"] * 90; //tiempo sesion $t_ejecutado = $_avance_experiencia["suma_t_actividades_finalizadas"] or 0; $nivel_avance = obtieneNivelAvanceExp($t_ejecutado, $t_estimado); } } else { //caso donde no pide semestre y cumple con requisito //se obtiene el nivel de avance de la experiencia $_avance_experiencia = dbExpObtenerAvance($experiencia["id_experiencia"], $conexion); //calculo de nivel de avance $t_estimado = $_avance_experiencia["suma_sesiones_estimadas"] * 90; //tiempo sesion $t_ejecutado = $_avance_experiencia["suma_t_actividades_finalizadas"] or 0; $nivel_avance = obtieneNivelAvanceExp($t_ejecutado, $t_estimado); } if ($nivel_avance >= $avance) { $bandera = true; } } } } } } //evitamos duplicados en el insert if (in_array($_resp['id_usuario'], $a_evita_duplicados)) { $bandera = false; //echo $_resp['id_usuario']; } else { $push = array_push($a_evita_duplicados, $_resp['id_usuario']); //echo $push.'</br>'; // var_dump($a_evita_duplicados); } //si bandera es verdadero if ($bandera) { if (!$datos_usuario['email']) { $datos_usuario['email'] = '*****@*****.**'; } $datos_usuario['nombre'] = str_replace("'", '', $datos_usuario['nombre']); $consulta_contenido = "(" . $_resp['id_usuario'] . "," . "'" . $datos_usuario['nombre'] . "'," . "' '" . "," . "'" . $datos_usuario['email'] . "'," . "'OK'" . "," . "'" . $_resp['id_usuario'] . str_replace('.', '_', $datos_usuario['usuario']) . "'," . "'es'" . "," . "'N'" . "," . "'N'" . "," . "0" . "," . "'N'" . "," . "1" . "),"; $consulta_acumulada = $consulta_acumulada . $consulta_contenido; } } $consultaimpresa = $consulta2 . $consulta_acumulada; //echo $consultaimpresa.'</br>'; //cortamos la ultima , (coma) $consulta2 = substr($consultaimpresa, 0, -1); $conexion_ls = dbConectarMySQL($config_host_bd, $config_usuario_bd_ls, $config_password_bd_ls, $config_bd_ls); //selecciona base de datos LS //ejecutar insercion $resultado2 = dbEjecutarConsulta($consulta2, $conexion_ls); if (mysql_affected_rows() > 0) { $_resp = true; } } else { echo '0'; } } else { echo '0'; } return $_resp; }