function asignarUsuarios()
{
    if (validarAdministradorPrivado()) {
        if (isset($_POST['idCurso']) && is_numeric($_POST['idCurso'])) {
            $idCurso = $_POST['idCurso'];
            require_once 'modulos/cursos/modelos/CursoModelo.php';
            $curso = getCurso($idCurso);
            require_once 'modulos/usuarios/modelos/UsuarioCursosModelo.php';
            //si hay idUsuariosQuitar eliminamos de la bd las relaciones en usuariocurso
            if (isset($_POST['idUsuariosQuitar'])) {
                foreach ($_POST['idUsuariosQuitar'] as $value) {
                    eliminarInscripcionUsuarioCurso($value, $idCurso);
                }
            }
            //si hay idUsuariosInscribir agregamos a la bd las relaciones en usuariocurso
            if (isset($_POST['idUsuariosInscribir'])) {
                foreach ($_POST['idUsuariosInscribir'] as $value) {
                    //Validar que el usuario no séa el dueño del curso.
                    //Si es el dueño del curso, no inscribirlo
                    if ($curso->idUsuario != $value) {
                        inscribirUsuarioCurso($value, $idCurso);
                    }
                }
            }
            echo 'ok';
        } else {
            echo "error";
        }
    } else {
        echo "error";
    }
}
Example #2
0
function inscribirUsuario()
{
    if (isset($_GET['i'])) {
        if (validarUsuarioLoggeado()) {
            $usuario = getUsuarioActual();
            $idCurso = removeBadHtmlTags($_GET['i']);
            require_once 'modulos/cursos/modelos/CursoModelo.php';
            $curso = getCurso($idCurso);
            if ($usuario->activado == 1) {
                if (isset($curso)) {
                    if ($curso->idUsuario != $usuario->idUsuario) {
                        require_once 'modulos/usuarios/modelos/UsuarioCursosModelo.php';
                        if (!esUsuarioUnAlumnoDelCurso($usuario->idUsuario, $idCurso)) {
                            //iniciar transacción
                            //si el curso tiene precio:
                            //  -validar que el usuario tenga saldo suficiente
                            //  -actualizar el saldo
                            //  -agregamos la operación
                            //despues, si tiene precio o no
                            //  -se inscribe el usuario
                            //  -se envia el mail
                            //
                            //ESTO SE DEBE DE HACER DENTRO DE UNA TRANSACCIÓN PARA QUE TODO SÉA VÁLIDO
                            try {
                                require_once 'bd/conex.php';
                                beginTransaction();
                                require_once 'funcionesPHP/CargarInformacionSession.php';
                                cargarUsuarioSession();
                                $usuario = getUsuarioActual();
                                $huboError = false;
                                $suscribirAlumno = true;
                                if ($curso->precio > 0) {
                                    //validar que el saldo del usuario sea suficiente para inscribirse a este curso
                                    if ($usuario->saldo >= $curso->precio) {
                                        //Actualizamos el saldo del usuario
                                        require_once 'modulos/usuarios/modelos/usuarioModelo.php';
                                        if (actualizaSaldoUsuario($usuario->idUsuario, -$curso->precio)) {
                                            //Se actualizó correctamente el saldo del usuario, procedemos
                                            //a guardar la operación
                                            require_once 'modulos/pagos/modelos/operacionModelo.php';
                                            $operacion = new Operacion();
                                            $operacion->cantidad = $curso->precio;
                                            $operacion->detalle = "Curso: <a href='/curso/" . $curso->uniqueUrl . "'>" . $curso->titulo . '</a>';
                                            $operacion->idUsuario = $usuario->idUsuario;
                                            $operacion->completada = 1;
                                            $operacion->idTipoOperacion = 2;
                                            if (altaOperacion($operacion) < 0) {
                                                $huboError = true;
                                            }
                                        } else {
                                            $huboError = true;
                                        }
                                    } else {
                                        //No tiene saldo suficiente para suscribirse al curso, lo enviamos a
                                        //una página donde puede recargar saldo
                                        $suscribirAlumno = false;
                                        setSessionMessage("<h4 class='error'>No tienes el saldo suficiente para suscribirte</h4>");
                                        redirect("/usuarios/saldo");
                                    }
                                }
                                if ($suscribirAlumno) {
                                    //ahora a inscribir al usuario
                                    if (inscribirUsuarioCurso($usuario->idUsuario, $idCurso, $curso->precio)) {
                                        require_once 'funcionesPHP/CargarInformacionSession.php';
                                        cargarCursosSession();
                                        cargarUsuarioSession();
                                        setSessionMessage("<h4 class='success'>Haz quedado inscrito a este curso</h4>");
                                        require_once 'modulos/email/modelos/envioEmailModelo.php';
                                        //enviar email al usuario que se suscribió
                                        enviarMailSuscripcionCurso($usuario->email, $curso->titulo, $curso->imagen, 'www.unova.mx/curso/' . $curso->uniqueUrl);
                                    } else {
                                        $huboError = true;
                                        setSessionMessage("<h4 class='error'>Ocurrió un error al inscribirte al curso</h4>");
                                    }
                                }
                            } catch (Exception $e) {
                                $huboError = true;
                                setSessionMessage("<h4 class='error'>Ocurrió un error al inscribirte al curso. Excepción " . $e->getMessage() . ".</h4>");
                            }
                            //validamos si hubo algun error
                            if ($huboError) {
                                rollBackTransaction();
                            } else {
                                commitTransaction();
                            }
                            redirect("/curso/" . $curso->uniqueUrl);
                        } else {
                            //el usuario ya está inscrito
                            setSessionMessage("<h4 class='error'>Ya estás suscrito a este curso</h4>");
                            redirect("/curso/" . $curso->uniqueUrl);
                        }
                    } else {
                        //el curso pertenece al usuario
                        setSessionMessage("<h4 class='error'>No puedes inscribirte a tu propio curso</h4>");
                        goToIndex();
                    }
                } else {
                    //el curso no existe
                    setSessionMessage("<h4 class='error'>Curso no válido</h4>");
                    goToIndex();
                }
            } else {
                //El usuario no ha confirmado su cuenta
                setSessionMessage("<h4 class='error'>Debes confirmar tu cuenta para poder inscribirte a este curso</h4><h4 class='notice'><a href='/usuarios/usuario/enviarCorreoConfirmacion'>Click aquí para confirmar cuenta</a></h4>");
                redirect("/curso/" . $curso->uniqueUrl);
            }
        } else {
            ////no hay usuario loggeado, pero esto se valida dentro de la función
        }
    } else {
        //no hay i, ir a index
        goToIndex();
    }
}