123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204 |
- <?php
- session_start();
- require_once '../classes/Proyecto.php';
- require_once '../include/bd_pdo.php';
- if(!isset($_POST['id']) && !isset($_POST['etapa'])){
- $return['error'] = 'Error! No se recibieron los datos.';
- } else {
- if(is_null($pdo)){
- $return['error'] = 'Error! No se pudieron obtener los datos';
- } else {
- $tipo = Proyecto::determinaAccionXEtapa($pdo, $_POST['etapa']);
- switch(intval($_POST['tipo'])){
- case 1: //Revisión-Evaluación
- $stmt = $pdo->prepare('Select * from cidit_fs_existenevaluacionesxetapa(:usr,:proyecto,:etapa)');
- $stmt->bindParam(':usr', $_SESSION['usuario_id']);
- $stmt->bindParam(':proyecto', $_POST['id']);
- $stmt->bindParam(':etapa', $_POST['etapa']);
- if(!$stmt->execute()){
- $return['error'] = 'No se pudo registrar tu ' . $tipo['accion'] .'. Inténtalo más tarde.';
- $stmt->closeCursor();
- $stmt = null;
- } else {
- $evalua_rs = $stmt->fetch();
- $stmt->closeCursor();
- $stmt = null; // cierra conexion
- if (!(bool)$evalua_rs['existe']){
- $idasignacion = Proyecto::existeAsignacion($pdo, $_SESSION['usuario_id'], $_POST['id'], $_POST['etapa']);
- if($idasignacion == -1){
- $return['error'] = 'No se pudo registrar tu ' . $tipo['accion'] . '. Inténtalo más tarde.';
- $stmt->closeCursor();
- $stmt = null;
- }else{
- if ($idasignacion == 0){
- $guarda = true;
- if(isset($_POST['rbs'])){
- $cont = 0;
- while ($cont < count($_POST['rbs']) && $guarda) {
- $stmt = $pdo->prepare('Select * from cidit_fi_valoracion(:usr,:proyecto,:preg,null)');
- $stmt->bindParam(":usr", $_SESSION["usuario_id"]);
- $stmt->bindParam(':proyecto', $_POST['id']);
- $stmt->bindParam(':preg', $_POST['rbs'][$cont]);
- if(!$stmt->execute()){
- $guarda = false;
- } else {
- $cont++;
- }
- $stmt->closeCursor();
- $stmt = null;
- }
- }
- if(isset($_POST['txt'])){
- $cont = 0;
- while ($cont < count($_POST['txt']) && $guarda) {
- $txt = explode('|',$_POST['txt'][$cont]);
- $stmt = $pdo->prepare('Select * from cidit_fi_valoracion(:usr,:proyecto,:preg,:val)');
- $stmt->bindParam(":usr", $_SESSION["usuario_id"]);
- $stmt->bindParam(':proyecto', $_POST['id']);
- $stmt->bindParam(':preg', $txt[0]);
- $stmt->bindParam(':val', $txt[1]);
- if(!$stmt->execute()){
- $guarda = false;
- } else {
- $cont++;
- }
- $stmt->closeCursor();
- $stmt = null;
- }
- }
- if ($guarda){
- $return['mensaje'] = '¡Gracias por haber ' . $tipo['preterito'] . ' el proyecto!';
- $return['icono'] = 'ing-finalistas';
- } else {
- $return['error'] = 'No se pudo registrar tu ' . $tipo['accion'] . '. Inténtalo más tarde.';
- $stmt = $pdo->prepare('Select * from cidit_fd_valoracion(:usr,:proyecto)');
- $stmt->bindParam(":usr", $_SESSION["usuario_id"]);
- $stmt->bindParam(':proyecto', $_POST['id']);
- $stmt->execute();
- $stmt->closeCursor();
- $stmt = null;
- }
- } else {
- $guarda = true;
- if(isset($_POST['rbs'])){
- $cont = 0;
- while ($cont < count($_POST['rbs']) && $guarda) {
- $stmt = $pdo->prepare('Select * from cidit_fi_evaluacion(:asignacion,:preg,null)');
- $stmt->bindParam(":asignacion", $idasignacion);
- $stmt->bindParam(':preg', $_POST['rbs'][$cont]);
- if(!$stmt->execute()){
- $guarda = false;
- } else {
- $cont++;
- }
- $stmt->closeCursor();
- $stmt = null;
- }
- }
- if(isset($_POST['txt'])){
- $cont = 0;
- while ($cont < count($_POST['txt']) && $guarda) {
- $txt = explode('|',$_POST['txt'][$cont]);
- $stmt = $pdo->prepare('Select * from cidit_fi_evaluacion(:asignacion,:preg,:val)');
- $stmt->bindParam(":asignacion", $idasignacion);
- $stmt->bindParam(':preg', $txt[0]);
- $stmt->bindParam(':val', $txt[1]);
- if(!$stmt->execute()){
- $guarda = false;
- } else {
- $cont++;
- }
- $stmt->closeCursor();
- $stmt = null;
- }
- }
- if ($guarda){
- $return['mensaje'] = '¡Gracias por haber ' . $tipo['preterito'] . ' el proyecto!';
- $return['icono'] = 'ing-finalistas';
- $faltan = obtenerTotalFaltantes(Proyecto::obtenerProyectosFaltantes($pdo, $_SESSION['usuario_id'], $_POST['etapa']), $tipo);
- if(empty($faltan))
- $return['faltan'] = '0';
- else
- $return['faltan'] = $faltan;
- } else {
- $return['error'] = 'No se pudo registrar tu ' . $tipo['accion'] . '. Inténtalo más tarde.';
- $stmt = $pdo->prepare('Select * from cidit_fd_evaluacion(:asignacion)');
- $stmt->bindParam(":asignacion", $idasignacion);
- $stmt->execute();
- $stmt->closeCursor();
- $stmt = null;
- }
- }
- }
- } else {
- $return['error'] = 'Lo siento. Ya habías ' . $tipo['preterito'] . ' éste proyecto';
- }
- }
- break;
- case 2: //¿Ya fue revisado-evaluado?
- $stmt = $pdo->prepare('Select * from cidit_fs_existenevaluacionesxetapa(:usr,:cartel,:etapa)');
- $stmt->bindParam(':usr', $_SESSION['usuario_id']);
- $stmt->bindParam(':cartel', $_POST['id']);
- $stmt->bindParam(':etapa', $_POST['etapa']);
- if(!$stmt->execute()){
- $return['error'] = 'No se pudo registrar tu ' . $tipo['accion'] . '. Inténtalo más tarde.';
- $stmt->closeCursor();
- $stmt = null;
- } else {
- $evalua_rs = $stmt->fetch();
- $stmt->closeCursor();
- $stmt = null; // cierra conexion
- if ((bool)$evalua_rs["existe"]) {
- $return['mensaje'] = '¡Éste proyecto ya ha sido ' . $tipo['preterito'] . '!';
- $return['icono'] = 'ing-finalistas';
- } else
- $return['mensaje'] = 'ok';
- }
- break;
- case 3: //Faltantes
- $html = '';
- if (Proyecto::existeAsignacion($pdo, $_SESSION['usuario_id'], 0, $_POST['etapa']) > 0) {
- $html = '';
- $proyectos = Proyecto::obtenerProyectosFaltantes($pdo, $_SESSION['usuario_id'], $_POST['etapa']);
- $cont = 1;
- foreach ($proyectos as $proyecto){
- switch (mb_strtoupper(Etapa::getClaveEtapaXID($pdo, $_POST['etapa']))){
- case 'REVISION':
- $html .= '<div class="elemento d-flex flex-row align-items-center justify-content-start p-2" data-id="' . $proyecto['idproyecto'] . '" data-tipo="1" onclick="faltantes(this);"><div class="py-1 px-3 bg-azul' . $cont . '">' . $proyecto['clave'] . '</div><div class="pl-2">' . $proyecto['proyecto'] . '</div></div>';
- break;
- case 'EVALUACION':
- $html .= '<div class="elemento d-flex flex-row align-items-center justify-content-start p-2" data-id="' . $proyecto['idproyecto'] . '" data-tipo="1" onclick="faltantes(this);"><div class="py-1 px-3 bg-azul' . $cont . '">' . $proyecto['clave'] . '</div><div class="pl-2">'. $proyecto['proyecto'] . '</div></div>';
- break;
- }
- if ($cont == 5)
- $cont = 1;
- else
- $cont++;
- }
- if(empty($html))
- $return['mensaje'] = '0';
- else
- $return['mensaje'] = $html;
- $return['faltan'] = obtenerTotalFaltantes($proyectos, $tipo);
- } else
- $return['mensaje'] = '0';
- break;
- }
- }
- }
- $return['json'] = json_encode($return);
- echo json_encode($return);
- function obtenerTotalFaltantes($proyectos, $tipo){
- $msgFaltan = '';
- if (count($proyectos) > 0){
- $cont = count($proyectos);
- if ($cont == 1)
- $msgFaltan = 'Falta ' . $tipo['verbo'] .' 1 proyecto.';
- else
- $msgFaltan = 'Faltan ' . $cont .' proyectos por ' . $tipo['verbo'] . '.';
- }
- return $msgFaltan;
- }
|