Example #1
0
$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;
        }
        $nivel_avance = 100 * $nivel_avance;
                     }
                     $i++;
                 }
             }
         }
         echo $n;
     }
 } else {
     if (!is_null($mensaje_a_guardar) or strlen($mensaje_a_guardar) > 1) {
         $n = dbMuralUsuarioInsertarMensaje($id_usuario_muro, $id_usuario_publica, $mensaje_a_guardar, $conexion);
         if ($n > 0) {
             echo "1";
         }
         if ($id_experiencia_mensaje != null) {
             $id_diseno_d = dbExpObtenerIdDiseno($id_experiencia_mensaje, $conexion);
             $avance = dbExpObtenerAvance($id_experiencia_mensaje, $conexion);
             $id_actividad = $avance["ultima_actividad_id"];
             if ($id_usuario_muro == $id_usuario_publica) {
                 $tipo_mensaje = 1;
                 $m = dbMuralDisenoInsertarMensaje($id_diseno_d, $id_experiencia_mensaje, $id_usuario_publica, $mensaje_a_guardar, $tipo_mensaje, $id_actividad, $conexion, $n);
             }
         }
         if ($nivel_notificacion > 0) {
             if ($id_usuario_muro != $id_usuario_publica) {
                 $correo = $datos_usuario_muro["email"];
                 $body = $lang_notificacion_muro_body_estimado . $datos_usuario_muro["nombre"] . "<br><br>";
                 $body .= $_SESSION["klwn_nombre"] . " " . $lang_notificacion_muro_body_encabezado . " <br>";
                 $body .= $lang_notificacion_muro_body_enlace_kelluwen . "<br>";
                 $body .= $lang_notificacion_muro_body_estimado_atentamente . ", <br>";
                 $body .= $lang_notificacion_muro_body_estimado_despedida;
                 $mail->Subject = utf8_decode($lang_notificacion_muro_subject);
Example #3
0
$semestre = $_REQUEST["semestre"];
$anio = $_REQUEST["anio"];
if ($semestre == 1) {
    $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;
        }
/**
* 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'] = 'nulo@default.com';
                    }
                    $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;
}