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.. } }
function setRatingUsuario($idUsuario, $idCurso, $rating) { require_once 'bd/conex.php'; global $conex; //tratamos de insertar en la tabla puntuación beginTransaction(); $stmt = $conex->prepare("INSERT into puntuacion\n (idUsuario, idCurso, rating)\n VALUES(:idUsuario, :idCurso, :rating)"); $stmt->bindParam(':rating', $rating); $stmt->bindParam(':idUsuario', $idUsuario); $stmt->bindParam(':idCurso', $idCurso); if (!$stmt->execute()) { //si NO se pudo ejecutar es que ya había una tupla con esos ids, actualizamos el rating $stmt = $conex->prepare("UPDATE puntuacion \n SET rating = :rating\n WHERE idUsuario = :idUsuario AND idCurso = :idCurso"); $stmt->bindParam(':rating', $rating); $stmt->bindParam(':idUsuario', $idUsuario); $stmt->bindParam(':idCurso', $idCurso); $stmt->execute(); } //Ahora, hacemos el update de la variable rating de la tabla curso $stmt = $conex->prepare("SELECT count(rating) as cuenta, sum(rating) as suma\n FROM puntuacion\n WHERE idCurso = :idCurso"); $stmt->bindParam(':idCurso', $idCurso); $stmt->execute(); $row = $stmt->fetch(); $n = $row['cuenta']; $sum = $row['suma']; $prom = $sum / $n; $stmt = $conex->prepare("UPDATE curso \n SET rating = :rating\n WHERE idCurso = :idCurso"); $stmt->bindParam(':rating', $prom); $stmt->bindParam(':idCurso', $idCurso); if ($stmt->execute()) { commitTransaction(); return true; } else { rollBackTransaction(); return false; } }
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(); } }
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(); } }