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; }