Esempio n. 1
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();
    }
}
Esempio n. 2
0
function getFormaRecargarSaldo()
{
    if (isset($_GET['cnt']) && isset($_GET['des']) && isset($_GET['tipo'])) {
        $cantidad = removeBadHtmlTags($_GET['cnt']);
        $descripcion = removeBadHtmlTags($_GET['des']);
        $usuario = getUsuarioActual();
        if (isset($usuario)) {
            if ($cantidad >= 50) {
                require_once 'modulos/pagos/modelos/operacionModelo.php';
                require_once 'modulos/pagos/modelos/PayPalModelo.php';
                require_once 'bd/conex.php';
                beginTransaction();
                $operacion = new Operacion();
                $operacion->cantidad = $cantidad;
                $operacion->detalle = $descripcion;
                $operacion->completada = 0;
                $operacion->idUsuario = $usuario->idUsuario;
                $operacion->idTipoOperacion = 1;
                $operacion->idOperacion = altaOperacion($operacion);
                switch ($_GET['tipo']) {
                    case 'paypal':
                        commitTransaction();
                        $encrypted = encriptarInformacionBotonPago($descripcion, "", $cantidad, $operacion->idOperacion);
                        require_once 'modulos/pagos/vistas/formaRecargarSaldoPaypal.php';
                        break;
                        //not supported yet
                        //                    case 'mercadopago':
                        //                        break;
                    //not supported yet
                    //                    case 'mercadopago':
                    //                        break;
                    default:
                        rollBackTransaction();
                        echo '<div class="center" style="text-align:center"><h3 class="error">No es una opción válida</h3><br><h4>Ocurrió un error en tu solicitud</h4></div>';
                        break;
                }
            } else {
                //No es una cantidad valida
                echo '<div class="center" style="text-align:center"><h3 class="error">No es una cantidad válida</h3><br><h4>La cantidad mínima para recargar es de $50.00</h4></div>';
            }
        } else {
            echo 'no hay usuario loggeado';
            //No hay un usuario loggeado
        }
    } else {
        //no hay datos..
    }
}
Esempio n. 3
0
function retirarSaldoSubmit()
{
    if (validarUsuarioLoggeadoParaSubmits() && !empty($_POST['cantidad'])) {
        $cantidad = str_replace("\$", "", $_POST['cantidad']);
        $cantidad = floatval($cantidad);
        $huboError = false;
        $usuario = getUsuarioActual();
        if (isset($usuario->emailPaypal) && strlen($usuario->emailPaypal) > 0) {
            if ($cantidad >= 50 && $cantidad <= $usuario->saldo) {
                require_once 'modulos/pagos/modelos/solicitudSaldoModelo.php';
                require_once 'modulos/usuarios/modelos/usuarioModelo.php';
                require_once 'modulos/pagos/modelos/operacionModelo.php';
                require_once 'funcionesPHP/CargarInformacionSession.php';
                require_once 'bd/conex.php';
                beginTransaction();
                if (actualizaSaldoUsuario($usuario->idUsuario, -$cantidad)) {
                    //Se actualizó correctamente el saldo, entonces generamos una operación
                    $operacion = new Operacion();
                    $operacion->idUsuario = $usuario->idUsuario;
                    $operacion->cantidad = $cantidad;
                    $operacion->idTipoOperacion = 4;
                    $operacion->completada = 1;
                    $operacion->detalle = "Retiro de saldo";
                    $operacion->idOperacion = altaOperacion($operacion);
                    if ($operacion->idOperacion >= 0) {
                        //se dio de alta correctamente la operacion, generamos la solicitud
                        $solicitudSaldo = new SolicitudSaldo();
                        $solicitudSaldo->idUsuario = $usuario->idUsuario;
                        $solicitudSaldo->cantidad = $cantidad;
                        $solicitudSaldo->entregado = 0;
                        //0=no entregado
                        if (altaSolicitudSaldo($solicitudSaldo)) {
                            commitTransaction();
                            setSessionMessage("<h4 class='success'>Tu solicitud de retirar saldo fue enviada correctamente</h4>");
                            cargarUsuarioSession();
                        } else {
                            $huboError = true;
                        }
                    } else {
                        $huboError = true;
                    }
                } else {
                    $huboError = true;
                }
                if ($huboError) {
                    rollBackTransaction();
                    setSessionMessage("<h4 class='error'>Ocurrió un error al realizar tu solicitud. Intenta de nuevo más tarde</h4>");
                }
            } else {
                //no es una cantidad válida
                setSessionMessage("<h4 class='error'>La cantidad que se quiere retirar no es válida</h4>");
            }
            redirect("/usuarios/saldo");
        } else {
            setSessionMessage("<h4 class='error'>Debes establecer tu correo electrónico asociado a Paypal para poder retirar tu saldo</h4>");
            redirect("/usuarios/usuario/cambiarCorreoPaypal");
        }
    } else {
        goToIndex();
    }
}