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 .= '
' . $proyecto['clave'] . '
' . $proyecto['proyecto'] . '
'; break; case 'EVALUACION': $html .= '
' . $proyecto['clave'] . '
'. $proyecto['proyecto'] . '
'; 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; }