123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128 |
- <?php
- session_start();
- require_once '../classes/Concurso.php';
- require_once '../classes/Etapa.php';
- require_once '../classes/Proyecto.php';
- require_once '../classes/Usuario.php';
- require_once '../include/bd_pdo.php';
- $ajax = true;
- $msg = '';
- if(!isset($_POST['tipo'])){
- $return['error'] = 'Error! No se recibieron los datos.';
- } else {
- switch ($_POST['tipo']) {
- case 1: //Guarda registro
- $ajax = false;
- $registro = Etapa::getIdEtapa($pdo,'REGISTRO');
- $titulo = trim(filter_input(INPUT_POST, 'titulo'));
- $alumnos = json_decode($_POST['alumnos'],true);
- $asesores = json_decode($_POST['asesores'],true);
- $concurso = unserialize($_SESSION['EI_actual']);
- $proyecto = Proyecto::agregaProyecto($pdo, $titulo, $_POST['carrera'], $concurso->getId());
- if (count($proyecto) > 0){
- if (asignaAlumnos($pdo, $alumnos, $proyecto['idproyecto'], $concurso->getId())){
- if(asignaAsesores($pdo, $registro, $asesores, $proyecto['idproyecto'], $concurso->getId()))
- $msg = '?ok=0';
- else
- $msg = '?errorList=4';
- } else
- $msg = '?errorList=3';
- } else
- $msg = '?errorList=0';
- break;
- case 2: //Edita registro
- $ajax = false;
- break;
- }
- }
- if ($ajax){
- $return['json'] = json_encode($return);
- echo json_encode($return);
- } else
- header('Location: ../listado.php' . $msg);
- function asignaAlumnos($pdo, $integrantes, $proyecto, $concurso){
- $asignados = false;
- $alumnos = array();
- foreach ($integrantes as $integrante){
- if ($integrante['id'] != 'x') {
- $ids = explode('-',$integrante['id']);
- if ($ids[0] != 0){
- $usr = $ids[0];
- $rol = Usuario::getIdRol($pdo, 'ALUMNO');
- if (count($rol) > 0)
- if (!Usuario::tieneRol($pdo, $usr,$rol['idrol'], $concurso))
- Usuario::agregaUsuarioRol($pdo, $usr, $rol['idrol'], $concurso);
- } else
- $usr = Usuario::agregaUsuarioNuevoInterno($pdo, $ids[1], 'ALUMNO', $concurso);
- array_push($alumnos,$usr);
- } else {
- $usr = Usuario::agregaUsuarioNuevoExterno($pdo, $integrante['nombre'], $integrante['apellidos'], $integrante['carrera'], $integrante['email'], 'ALUMNO', $concurso);
- array_push($alumnos,$usr);
- }
- }
- if (count($alumnos) > 0){
- $error = false;
- foreach ($alumnos as $alumno){
- if (!Proyecto::asignaAlumno($pdo, $proyecto, $alumno))
- $error = true;
- }
- if (!$error)
- $asignados = true;
- else {
- Proyecto::eliminaAlumnosProyecto($pdo, $proyecto);
- Proyecto::eliminaProyecto($pdo, $proyecto);
- $asignados = false;
- }
- } else {
- Proyecto::eliminaProyecto($pdo, $proyecto);
- $asignados = false;
- }
- return $asignados;
- }
- function asignaAsesores($pdo, $etapa, $asesores, $proyecto, $concurso){
- $asignados = false;
- $docentes = array();
- foreach ($asesores as $asesor){
- if ($asesor['id'] != 'x') {
- $ids = explode('-',$asesor['id']);
- if ($ids[0] != 0){
- $usr = $ids[0];
- $rol = Usuario::getIdRol($pdo, 'ASESOR');
- if (count($rol) > 0)
- if (!Usuario::tieneRol($pdo, $usr,$rol['idrol'],$concurso))
- Usuario::agregaUsuarioRol($pdo, $usr, $rol['idrol'], $concurso);
- } else
- $usr = Usuario::agregaUsuarioNuevoInterno($pdo, $ids[1], 'ASESOR', $concurso);
- array_push($docentes,$usr);
- } else {
- $usr = Usuario::agregaUsuarioNuevoExterno($pdo, $asesor['nombre'], $asesor['apellidos'], '', $asesor['email'], 'ASESOR', $concurso);
- array_push($docentes,$usr);
- }
- }
- if (count($docentes) > 0){
- $error = false;
- foreach ($docentes as $docente){
- if (!Asignacion::agregaAsignacion($pdo, $etapa, $proyecto, $docente))
- $error = true;
- }
- if (!$error)
- $asignados = true;
- else {
- foreach ($docentes as $docente){
- Asignacion::eliminaAsignacionXDatos($pdo, $etapa, $proyecto, $docente);
- }
- Proyecto::eliminaAlumnosProyecto($pdo, $proyecto);
- Proyecto::eliminaProyecto($pdo, $proyecto);
- $asignados = false;
- }
- } else {
- Proyecto::eliminaAlumnosProyecto($pdo, $proyecto);
- Proyecto::eliminaProyecto($pdo, $proyecto);
- $asignados = false;
- }
- return $asignados;
- }
|