$semestre = "1° Semestre"; } else { if ($semestre == 2) { $semestre = "2° Semestre"; } } $conexion = dbConectarMySQL($config_host_bd, $config_usuario_bd, $config_password_bd, $config_bd); $_experiencias = dbDisObtenerExpFinalizadasDisenoLimitePeriodo($conexion, $id_dd, $lim_inf + 2, $lim_sup, $semestre, $anio); if (count($_experiencias) > 0) { foreach ($_experiencias as $_experiencia) { $_experiencia_info = dbExpObtenerInfo($_experiencia["id_experiencia"], $conexion); $_imagenes = darFormatoImagen($_experiencia_info["url_avatar_profesor"], $config_ruta_img_perfil, $config_ruta_img); $_avance_experiencia = dbExpObtenerAvance($_experiencia["id_experiencia"], $conexion); $t_estimado = $_avance_experiencia["suma_sesiones_estimadas"] * $config_minutos_sesion; $t_ejecutado = $_avance_experiencia["suma_t_actividades_finalizadas"] or 0; $nivel_avance = obtieneNivelAvanceExp($t_ejecutado, $t_estimado); $actividad_terminada = $_avance_experiencia["estado_ultima_actividad"] == '3'; $experiencia_finalizada = $_experiencia_info["fecha_termino"] != ''; $fecha = formatearFecha($_experiencia_info["fecha_ultimo_acceso"]); $lang_fecha_titulo = $lang_exp_finalizadas_ultima_sesion; $ultima_titulo = $lang_ultima_actividad_finalizada; if (!$actividad_terminada) { $ultima_titulo = $lang_actividad_actual; } if ($experiencia_finalizada) { $fecha = formatearFecha($_experiencia_info["fecha_termino"]); $lang_fecha_titulo = $lang_exp_finalizadas_fecha_termino; } ?> <div class="cuadro_experiencia"> <table class="t_experiencia_cabecera">
/** * 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; }