Exemple #1
0
 def FundadoresByEmprendimientoCorreo(self, user, id_emprendimiento):
     id_usuario = UserLogic()
     usuario = id_usuario.getUserByUser(user)
     Inversor = inversorLogic()
     id_inversor = Inversor.getIdInversor(usuario.getId())
     dataBase = self.get_databaseXObj()
     Emprendimiento = emprendimientoLogic()
     idEmprendimiento = Emprendimiento.getEmprendimientoById(id_emprendimiento)
     sql = (
         "select id_emprendedor from fishingdb.fundador "
         + f"where id_emprendimiento = {id_emprendimiento};"
     )
     print(sql)
     fundadores = dataBase.executeQuery(sql)
     listaFundadores = []
     for registro in fundadores:
         sql2 = (
             "insert into fishingdb.notificaciones (idnotificaciones, mensaje, id_emprendedor, fecha, hora) "
             + f"values (0, 'El inversor {id_inversor.getNombre()} le ha enviado un mensaje al emprendimiento {idEmprendimiento.getNombre()}', {registro[0]}, "
             + "current_date(), current_time());"
         )
         print(sql2)
         rows = dataBase.executeNonQueryRows(sql2)
         currentList = list(registro)
         listaFundadores.append(currentList[0])
     return listaFundadores
Exemple #2
0
def guardadosInv():
    try:
        # Datos de sesion
        user = session["user"]
        id_user = int(user["id"])
        logicInv = inversorLogic()
        datos = logicInv.getIdInversor(id_user)
        Inversor = logicInv.createDictionary(datos)
        id_inv = int(Inversor["id"])
        # Guardados
        logicSave = guardadosLogic()
        data = logicSave.getAllGuardados(id_inv)
        print(data)

        if request.method == "GET":
            return render_template("guardadosInversionista.html",
                                   data=data,
                                   message="")
        elif request.method == "POST":
            formId = int(request.form["formId"])
            print(formId)
            id_prod = request.form["id"]
            print(id_prod)
            if formId == 2:
                logicSave.deleteGuardado(id_inv, id_prod)
                data = logicSave.getAllGuardados(id_inv)
            return render_template("guardadosInversionista.html",
                                   data=data,
                                   message="")
    except KeyError:
        return render_template(
            "logInForm.html",
            messageSS="Su sesión ha expirado, ingrese nuevamente")
Exemple #3
0
def InicioInv():
    try:
        session["empId"] = ""
        user = session["user"]
        id_user = int(user["id"])
        logicInt = interesLogic()
        logicInv = inversorLogic()
        datos = logicInv.getIdInversor(id_user)
        Inversor = logicInv.createDictionary(datos)
        id_inv = int(Inversor["id"])
        session["id_inv"] = id_inv
        data = logicInt.getAllInteresByIdInv(id_inv)

        if request.method == "GET":
            return render_template("inicioInversionista.html",
                                   data=data,
                                   message="")
        elif request.method == "POST":
            return render_template("inicioInversionista.html",
                                   data=data,
                                   message="")
    except KeyError:
        return render_template(
            "logInForm.html",
            messageSS="Su sesión ha expirado, ingrese nuevamente")
def signUpInversor():
    if request.method == "GET":
        categorias = CategoriaLogic().getAllCategorias()
        return render_template("registroInv.html",
                               message="",
                               categorias=categorias)
    elif request.method == "POST":  # "POST"
        name = request.form["nombre"]
        user = request.form["user"]
        rol = 2
        password = str(request.form["password"])
        email = str(request.form["email"])
        country = request.form["country"]
        bio = request.form["bio"]
        city = request.form["city"]
        foto = request.files["fileToUpload"]
        nombre_foto = foto.filename
        binary_foto = foto.read()

        if foto.filename == "":
            nombre_foto = "default.png"
        # Creando nuevo usuario
        logicUsuario = UserLogic()
        existeUsuario = logicUsuario.checkUserInUsuario(user, rol)
        if existeUsuario:
            return render_template(
                "registroInv.html",
                errorMessage="Este usuario ya existe, inténtelo nuevamente",
                namex=name,
                emailx=email,
                countryx=country,
                biox=bio,
                cityx=city,
            )
        else:
            logicUsuario.insertNewUser(user, password, rol)
            userData = logicUsuario.getUser(user, password)
            idUsuario = int(userData.getId())
            # Creando nuevo Inversor
            logicInversor = inversorLogic()
            if nombre_foto == "default.png":
                logicInversor.insertNewInversorWithoutPhoto(
                    name, bio, email, idUsuario, country, city, nombre_foto)
            else:
                logicInversor.insertNewInversor(name, bio, email, idUsuario,
                                                country, city, binary_foto)
            logicInversor.getNewInversor(name, bio, email, idUsuario, country,
                                         city)
            idInversor = int(
                logicInversor.getNewInversor(name, bio, email, idUsuario,
                                             country, city).getId())
            # Insertando nuevos intereses
            categorias = CategoriaLogic().getAllCategorias()
            for checkbox in categorias:
                id_categoria = checkbox["id"]
                value = request.form.get(str(id_categoria))
                if value:
                    logicInversor.insertNewInteres(id_categoria, idInversor)

            dataDic = logicUsuario.createDictionary(userData)
            session["user"] = dataDic

            return redirect("/InicioInv")
Exemple #5
0
def perfilInversionista():
    try:
        # Datos de sesion
        user = session["user"]
        id_user = int(user["id"])
        logicInv = inversorLogic()

        if request.method == "GET":
            datos = logicInv.getIdInversor(id_user)
            Inversor = logicInv.createDictionary(datos)
            id_inv = int(Inversor["id"])
            nombre = Inversor["nombre"]
            biografia = Inversor["biografia"]
            ciudad = Inversor["ciudad"]
            pais = Inversor["pais"]
            email = Inversor["email"]
            nombre_foto = Inversor["nombre_foto"]
            interes = logicInv.getIntereses(id_inv)
            return render_template(
                "perfil_inversionista.html",
                nombre=nombre,
                ciudad=ciudad,
                biografia=biografia,
                pais=pais,
                email=email,
                message="",
                interes=interes,
                nombre_foto=nombre_foto,
            )
        elif request.method == "POST":
            formId = int(request.form["formId"])
            print(formId)
            if formId == 1:
                datos = logicInv.getIdInversor(id_user)
                Inversor = logicInv.createDictionary(datos)
                id_inv = int(Inversor["id"])
                nombre = Inversor["nombre"]
                biografia = Inversor["biografia"]
                ciudad = Inversor["ciudad"]
                pais = Inversor["pais"]
                email = Inversor["email"]
                interes = logicInv.getIntereses(id_inv)
                return render_template(
                    "perfil_inversionista.html",
                    editar=True,
                    nombre=nombre,
                    ciudad=ciudad,
                    biografia=biografia,
                    pais=pais,
                    email=email,
                    message="",
                    interes=interes,
                )
            if formId == 2:
                # Update
                datos = logicInv.getIdInversor(id_user)
                Inversor = logicInv.createDictionary(datos)
                id_inv = int(Inversor["id"])
                pic = request.files["fileToUpload"]
                name = request.form["nombre"]
                bio = request.form["biografia"]
                city = request.form["ciudad"]
                country = request.form["pais"]
                mail = request.form["email"]
                if pic.filename == "":
                    logicInv.updateInversionista(id_inv, name, bio, mail,
                                                 id_user, country, city)
                else:
                    binary_foto = pic.read()
                logicInv.updateInversionistaConFoto(id_inv, name, bio, mail,
                                                    country, city, binary_foto,
                                                    id_user)

                # Actualizar datos
                datos = logicInv.getIdInversor(id_user)
                Inversor = logicInv.createDictionary(datos)
                id_inv = int(Inversor["id"])
                nombre = Inversor["nombre"]
                biografia = Inversor["biografia"]
                ciudad = Inversor["ciudad"]
                pais = Inversor["pais"]
                email = Inversor["email"]
                foto = Inversor["foto"]
                nombre_foto = Inversor["nombre_foto"]
                print(nombre_foto)
                interes = logicInv.getIntereses(id_inv)

                return render_template(
                    "perfil_inversionista.html",
                    editar=False,
                    nombre=nombre,
                    ciudad=ciudad,
                    biografia=biografia,
                    pais=pais,
                    email=email,
                    foto=foto,
                    nombre_foto=nombre_foto,
                    message="",
                    interes=interes,
                )
            if formId == 3:
                # Borrar interes
                idInteres = int(request.form["id"])
                logicInv.deleteInteres(idInteres)

                datos = logicInv.getIdInversor(id_user)
                Inversor = logicInv.createDictionary(datos)
                id_inv = int(Inversor["id"])
                nombre = Inversor["nombre"]
                biografia = Inversor["biografia"]
                ciudad = Inversor["ciudad"]
                pais = Inversor["pais"]
                email = Inversor["email"]
                interes = logicInv.getIntereses(id_inv)

                return render_template(
                    "perfil_inversionista.html",
                    editar=False,
                    nombre=nombre,
                    ciudad=ciudad,
                    biografia=biografia,
                    pais=pais,
                    email=email,
                    message="Interes eliminado",
                    interes=interes,
                )
            if formId == 4:
                datos = logicInv.getIdInversor(id_user)
                Inversor = logicInv.createDictionary(datos)
                id_inv = int(Inversor["id"])
                nombre = Inversor["nombre"]
                biografia = Inversor["biografia"]
                ciudad = Inversor["ciudad"]
                pais = Inversor["pais"]
                email = Inversor["email"]
                interes = logicInv.getIntereses(id_inv)
                return render_template(
                    "perfil_inversionista.html",
                    nombre=nombre,
                    ciudad=ciudad,
                    biografia=biografia,
                    pais=pais,
                    email=email,
                    message="",
                    interes=interes,
                    agregar=True,
                )
            if formId == 5:
                datos = logicInv.getIdInversor(id_user)
                Inversor = logicInv.createDictionary(datos)
                id_inv = int(Inversor["id"])
                # Estas son las categorias
                i = 1
                alimento = request.form.get("Alimento")
                moda = request.form.get("Moda")
                cYTec = request.form.get("CyTec")
                ecologia = request.form.get("Ecologia")
                academico = request.form.get("Academico")
                social = request.form.get("Social")
                salud = request.form.get("Salud")
                belleza = request.form.get("Belleza")
                entretenimiento = request.form.get("Entretenimiento")
                infantil = request.form.get("Infantil")
                otra = request.form.get("Otra")
                # Fin de las categorias
                user = session["user"]
                id_user = int(user["id"])
                # Insertando nuevos intereses
                for checkbox in (
                        alimento,
                        moda,
                        ecologia,
                        cYTec,
                        social,
                        salud,
                        academico,
                        entretenimiento,
                        infantil,
                        belleza,
                        otra,
                ):
                    AlreadyExist = logicInv.checkInteresAlradyAdded(id_inv, i)
                    value = request.form.get(checkbox)
                    if value and AlreadyExist is False:
                        logicInv.insertNewInteres(i, id_inv)
                    i += 1

                nombre = Inversor["nombre"]
                biografia = Inversor["biografia"]
                ciudad = Inversor["ciudad"]
                pais = Inversor["pais"]
                email = Inversor["email"]
                interes = logicInv.getIntereses(id_inv)
                return render_template(
                    "perfil_inversionista.html",
                    nombre=nombre,
                    ciudad=ciudad,
                    biografia=biografia,
                    pais=pais,
                    email=email,
                    message="Interes agregado",
                    interes=interes,
                )
    except KeyError:
        return render_template(
            "logInForm.html",
            messageSS="Su sesión ha expirado, ingrese nuevamente")
Exemple #6
0
def correo():
    logic = emprendimientoLogic()
    message = ""
    idEmprendimiento = session["empId"]
    logicOferta = ofertaLogic()
    if request.method == "GET":
        data = logic.getContactos(idEmprendimiento)
        data2 = logic.getInfoFinanciera(idEmprendimiento)
        data3 = logic.getDatosGeneralesById(idEmprendimiento)
        data4 = logic.getDescripcion(idEmprendimiento)
        ultima_oferta = logicOferta.getLastOferta(idEmprendimiento)
        return render_template(
            "informacion.html",
            data=data,
            data2=data2,
            data3=data3,
            data4=data4,
            message=message,
            vistaInversor=True,
            ultima_oferta=ultima_oferta,
        )
    elif request.method == "POST":
        # Datos de sesion
        user = session["user"]
        id_user = int(user["id"])
        usuario = user["usuario"]
        logicInv = inversorLogic()
        datos = logicInv.getIdInversor(id_user)

        idEmprendimiento = session["empId"]
        logicEmpr = emprendimientoLogic()
        infoEmpren = logicEmpr.getIdEmprendimiento(idEmprendimiento)
        logicEmpr.FundadoresByEmprendimientoCorreo(usuario, idEmprendimiento)
        ultima_oferta = logicOferta.getLastOferta(idEmprendimiento)
        message = request.form["message"]
        user = "******"
        password = "******"

        # Host y puerto SMTP de Gmail
        gmail = smtplib.SMTP("smtp.gmail.com", 587)

        # protocolo de cifrado de datos
        gmail.starttls()

        # Credenciales
        gmail.login(user, password)

        # muestra de la depuracion de la operacion de envio 1=True
        gmail.set_debuglevel(1)

        header = MIMEMultipart()
        header["Subject"] = "¡Alguien está interesado en tu emprendimiento!"
        header["From"] = "*****@*****.**"
        header["To"] = f"{infoEmpren.getEmail()}"
        Intro = f"{datos.getNombre()} {datos.getEmail()} está interesado en tu emprendimiento.\nSu mensaje es el siguiente: "
        mensaje = Intro + message

        mensaje = MIMEText(mensaje, "html")  # Content-type:text/html
        header.attach(mensaje)

        # Enviar email: remitentente, destinatario, mensaje
        gmail.sendmail(
            "*****@*****.**",
            f"{infoEmpren.getEmail()}",
            header.as_string(),
        )

        # Cerrar la conexion SMTP
        gmail.quit()
        print("Correo enviado exitosamente")

        message1 = "Correo enviado exitosamente"
        data = logic.getContactos(idEmprendimiento)
        data2 = logic.getInfoFinanciera(idEmprendimiento)
        # logicEmpr.FundadoresByEmprendimientoCorreo(id_user, idEmprendimiento)
        return render_template(
            "informacion.html",
            data=data,
            data2=data2,
            message1=message1,
            vistaInversor=True,
            ultima_oferta=ultima_oferta,
        )
Exemple #7
0
def perfilInversionista():
    try:
        # Datos de sesion
        user = session["user"]
        id_user = int(user["id"])
        logicInv = inversorLogic()
        categorias = CategoriaLogic().getAllCategorias()

        if request.method == "GET":
            datos = logicInv.getIdInversor(id_user)
            Inversor = logicInv.createDictionary(datos)
            id_inv = int(Inversor["id"])
            nombre = Inversor["nombre"]
            biografia = Inversor["biografia"]
            ciudad = Inversor["ciudad"]
            pais = Inversor["pais"]
            email = Inversor["email"]
            nombre_foto = Inversor["nombre_foto"]
            interes = logicInv.getIntereses(id_inv)
            return render_template(
                "perfil_inversionista.html",
                nombre=nombre,
                ciudad=ciudad,
                biografia=biografia,
                pais=pais,
                email=email,
                message="",
                interes=interes,
                nombre_foto=nombre_foto,
                categorias=categorias,
            )
        elif request.method == "POST":
            formId = int(request.form["formId"])
            print(formId)
            if formId == 1:
                datos = logicInv.getIdInversor(id_user)
                Inversor = logicInv.createDictionary(datos)
                id_inv = int(Inversor["id"])
                nombre = Inversor["nombre"]
                biografia = Inversor["biografia"]
                ciudad = Inversor["ciudad"]
                pais = Inversor["pais"]
                email = Inversor["email"]
                nombre_foto = Inversor["nombre_foto"]
                interes = logicInv.getIntereses(id_inv)
                return render_template(
                    "perfil_inversionista.html",
                    editar=True,
                    nombre=nombre,
                    ciudad=ciudad,
                    biografia=biografia,
                    pais=pais,
                    email=email,
                    message="",
                    interes=interes,
                    categorias=categorias,
                )
            if formId == 2:
                # Update
                datos = logicInv.getIdInversor(id_user)
                Inversor = logicInv.createDictionary(datos)
                id_inv = int(Inversor["id"])
                pic = request.files["fileToUpload"]
                name = request.form["nombre"]
                bio = request.form["biografia"]
                city = request.form["ciudad"]
                country = request.form["pais"]
                mail = request.form["email"]
                if pic.filename == "":
                    logicInv.updateInversionista(id_inv, name, bio, mail,
                                                 id_user, country, city)
                else:
                    binary_foto = pic.read()
                    logicInv.updateInversionistaConFoto(
                        id_inv, name, bio, mail, country, city, binary_foto,
                        id_user)

                # Actualizar datos
                datos = logicInv.getIdInversor(id_user)
                Inversor = logicInv.createDictionary(datos)
                id_inv = int(Inversor["id"])
                nombre = Inversor["nombre"]
                biografia = Inversor["biografia"]
                ciudad = Inversor["ciudad"]
                pais = Inversor["pais"]
                email = Inversor["email"]
                foto = Inversor["foto"]
                nombre_foto = Inversor["nombre_foto"]
                print(nombre_foto)
                interes = logicInv.getIntereses(id_inv)

                return render_template(
                    "perfil_inversionista.html",
                    editar=False,
                    nombre=nombre,
                    ciudad=ciudad,
                    biografia=biografia,
                    pais=pais,
                    email=email,
                    foto=foto,
                    nombre_foto=nombre_foto,
                    message="",
                    interes=interes,
                    categorias=categorias,
                )
            if formId == 3:
                # Borrar interes
                idInteres = int(request.form["id"])
                logicInv.deleteInteres(idInteres)

                datos = logicInv.getIdInversor(id_user)
                Inversor = logicInv.createDictionary(datos)
                id_inv = int(Inversor["id"])
                nombre = Inversor["nombre"]
                biografia = Inversor["biografia"]
                ciudad = Inversor["ciudad"]
                pais = Inversor["pais"]
                email = Inversor["email"]
                nombre_foto = Inversor["nombre_foto"]
                interes = logicInv.getIntereses(id_inv)

                return render_template(
                    "perfil_inversionista.html",
                    editar=False,
                    nombre=nombre,
                    ciudad=ciudad,
                    biografia=biografia,
                    pais=pais,
                    email=email,
                    message="Interes eliminado",
                    interes=interes,
                    nombre_foto=nombre_foto,
                    categorias=categorias,
                )
            if formId == 4:
                datos = logicInv.getIdInversor(id_user)
                Inversor = logicInv.createDictionary(datos)
                id_inv = int(Inversor["id"])
                nombre = Inversor["nombre"]
                biografia = Inversor["biografia"]
                ciudad = Inversor["ciudad"]
                pais = Inversor["pais"]
                email = Inversor["email"]
                nombre_foto = Inversor["nombre_foto"]
                interes = logicInv.getIntereses(id_inv)
                return render_template(
                    "perfil_inversionista.html",
                    nombre=nombre,
                    ciudad=ciudad,
                    biografia=biografia,
                    pais=pais,
                    email=email,
                    message="",
                    interes=interes,
                    agregar=True,
                    categorias=categorias,
                    nombre_foto=nombre_foto,
                )
            if formId == 5:
                datos = logicInv.getIdInversor(id_user)
                Inversor = logicInv.createDictionary(datos)
                id_inv = int(Inversor["id"])
                user = session["user"]
                id_user = int(user["id"])
                # Insertando nuevos intereses
                categorias = CategoriaLogic().getAllCategorias()
                for checkbox in categorias:
                    id_categoria = checkbox["id"]
                    value = request.form.get(str(id_categoria))
                    AlreadyExist = logicInv.checkInteresAlradyAdded(
                        id_inv, id_categoria)
                    if value and AlreadyExist is False:
                        logicInv.insertNewInteres(id_categoria, id_inv)

                nombre = Inversor["nombre"]
                biografia = Inversor["biografia"]
                ciudad = Inversor["ciudad"]
                pais = Inversor["pais"]
                email = Inversor["email"]
                nombre_foto = Inversor["nombre_foto"]
                interes = logicInv.getIntereses(id_inv)
                return render_template(
                    "perfil_inversionista.html",
                    nombre=nombre,
                    ciudad=ciudad,
                    biografia=biografia,
                    pais=pais,
                    email=email,
                    message="Interes agregado",
                    interes=interes,
                    nombre_foto=nombre_foto,
                    categorias=categorias,
                )
    except KeyError:
        return render_template(
            "logInForm.html",
            messageSS="Su sesión ha expirado, ingrese nuevamente")
Exemple #8
0
def signUpInversor():
    if request.method == "GET":
        return render_template("registroInv.html", message="")
    elif request.method == "POST":  # "POST"
        name = request.form["nombre"]
        user = request.form["user"]
        rol = 2
        # Estas son las categorias
        i = 1
        alimento = request.form.get("Alimento")
        moda = request.form.get("Moda")
        cYTec = request.form.get("CyTec")
        ecologia = request.form.get("Ecologia")
        academico = request.form.get("Academico")
        social = request.form.get("Social")
        salud = request.form.get("Salud")
        belleza = request.form.get("Belleza")
        entretenimiento = request.form.get("Entretenimiento")
        infantil = request.form.get("Infantil")
        otra = request.form.get("Otra")
        # Fin de las categorias
        password = str(request.form["password"])
        email = str(request.form["email"])
        country = request.form["country"]
        bio = request.form["bio"]
        city = request.form["city"]
        foto = request.files["fileToUpload"]
        nombre_foto = foto.filename
        binary_foto = foto.read()

        if foto.filename == "":
            nombre_foto = "default.png"
        # Creando nuevo usuario
        logicUsuario = UserLogic()
        existeUsuario = logicUsuario.checkUserInUsuario(user, rol)
        if existeUsuario:
            return render_template(
                "registroInv.html",
                errorMessage="Este usuario ya existe, inténtelo nuevamente",
                namex=name,
                emailx=email,
                countryx=country,
                biox=bio,
                cityx=city,
            )
        else:
            logicUsuario.insertNewUser(user, password, rol)
            userData = logicUsuario.getUser(user, password)
            idUsuario = int(userData.getId())
            # Creando nuevo Inversor
            logicInversor = inversorLogic()
            if nombre_foto == "default.png":
                logicInversor.insertNewInversorWithoutPhoto(
                    name, bio, email, idUsuario, country, city, nombre_foto)
            else:
                logicInversor.insertNewInversor(name, bio, email, idUsuario,
                                                country, city, binary_foto)
            logicInversor.getNewInversor(name, bio, email, idUsuario, country,
                                         city)
            idInversor = int(
                logicInversor.getNewInversor(name, bio, email, idUsuario,
                                             country, city).getId())
            # Insertando nuevos intereses
            for checkbox in (
                    alimento,
                    moda,
                    ecologia,
                    cYTec,
                    social,
                    salud,
                    academico,
                    entretenimiento,
                    infantil,
                    belleza,
                    otra,
            ):
                value = request.form.get(checkbox)
                if value:
                    logicInversor.insertNewInteres(i, idInversor)
                i += 1
            dataDic = logicUsuario.createDictionary(userData)
            session["user"] = dataDic

            return redirect("/InicioInv")
Exemple #9
0
def inversionista():
    logic = inversorLogic()
    message = ""
    verdadero = False
    if request.method == "GET":
        data = logic.getAllInversionista()
        return render_template("inversionista.html",
                               data=data,
                               message=message)

    elif request.method == "POST":  # "POST"
        formId = int(request.form["formId"])
        # Insertar
        if formId == 1:

            # Recoger datos
            nombre = request.form["nombre"]
            biografia = request.form["biografia"]
            email = request.form["email"]
            id_usuario = request.form["id_usuario"]
            pais = request.form["pais"]
            ciudad = request.form["ciudad"]

            try:
                logic.insertNewInversor(nombre, biografia, email, id_usuario,
                                        pais, ciudad)
                message = "Se ha insertado un nuevo inversionista"
                data = logic.getAllInversionista()

            except mysql.connector.Error as error:
                print("Failed inserting BLOB data into MySQL table {}".format(
                    error))
                message = "No se puede insertar. No existe el id usuario"
                data = logic.getAllInversionista()

            return render_template("inversionista.html",
                                   data=data,
                                   message=message)

        # Eliminar
        elif formId == 2:
            id = int(request.form["id"])

            try:
                logic.deleteInversionista(id)
                data = logic.getAllInversionista()
                message = "Se ha eliminado un usuario de inversionista"

            except mysql.connector.Error as error:
                print("Failed inserting BLOB data into MySQL table {}".format(
                    error))
                message = (
                    "No se puede eliminar. Afecta la integridad de la base de datos"
                )
                data = logic.getAllInversionista()

            return render_template("inversionista.html",
                                   data=data,
                                   message=message)

        # Update
        elif formId == 3:
            id = int(request.form["id"])
            nombre = request.form["nombre"]
            biografia = request.form["biografia"]
            email = request.form["email"]
            id_usuario = request.form["id_usuario"]
            pais = request.form["pais"]
            ciudad = request.form["ciudad"]

            verdadero = True
            data = logic.getAllInversionista()
            return render_template(
                "inversionista.html",
                data=data,
                message=message,
                verdadero=verdadero,
                id=id,
                nombre=nombre,
                biografia=biografia,
                email=email,
                id_usuario=id_usuario,
                pais=pais,
                ciudad=ciudad,
            )

        # Modificar inversionista
        else:
            id = int(request.form["id"])
            nombre = request.form["nombre"]
            biografia = request.form["biografia"]
            email = request.form["email"]
            id_usuario = request.form["id_usuario"]
            pais = request.form["pais"]
            ciudad = request.form["ciudad"]

            try:
                logic.updateInversionista(id, nombre, biografia, email,
                                          id_usuario, pais, ciudad)
                data = logic.getAllInversionista()
                message = "Se ha modificado el inversionista"

            except mysql.connector.Error as error:
                print("Failed inserting BLOB data into MySQL table {}".format(
                    error))
                message = "No se puede modificar. No existe el id usuario"
                data = logic.getAllInversionista()

            return render_template("inversionista.html",
                                   data=data,
                                   message=message)
Exemple #10
0
def inversionista():
    try:
        user = session["user"]
        logic = inversorLogic()
        uLogic = UserLogic()
        message = ""
        verdadero = False
        if request.method == "GET":
            data = logic.getAllInversionista()
            for registro in data:
                usuario = uLogic.getUserById(registro["id_usuario"])
                userName = usuario.user
                registro["id_usuario"] = userName
            return render_template("inversionistaAdmin.html",
                                   data=data,
                                   message=message)

        elif request.method == "POST":  # "POST"
            formId = int(request.form["formId"])
            # Insertar
            if formId == 1:

                # Recoger datos
                name = request.form["nombre"]
                email = str(request.form["email"])
                country = request.form["pais"]
                bio = request.form["biografia"]
                city = request.form["ciudad"]
                foto = request.files["fileToUpload"]
                nombre_foto = foto.filename
                userName = request.form["name_usuario"]
                password = request.form["password"]
                binary_foto = foto.read()
                usuarioExiste = uLogic.checkUserInUsuario(userName, 2)
                if usuarioExiste:
                    data = logic.getAllInversionista()
                    for registro in data:
                        usuario = uLogic.getUserById(registro["id_usuario"])
                        userName = usuario.user
                        registro["id_usuario"] = userName
                    return render_template(
                        "inversionistaAdmin.html",
                        data=data,
                        message="El usuario ya existe, intentelo nuevamente",
                    )
                else:
                    uLogic.insertNewUser(userName, password, 2)
                    usuario = uLogic.getUserByUser(userName)
                    idUsuario = usuario.id
                    if foto.filename == "":
                        nombre_foto = "default.png"
                    logicInversor = inversorLogic()
                    if nombre_foto == "default.png":
                        logicInversor.insertNewInversorWithoutPhoto(
                            name, bio, email, idUsuario, country, city,
                            nombre_foto)
                    else:
                        logicInversor.insertNewInversor(
                            name, bio, email, idUsuario, country, city,
                            binary_foto)
                    message = "Se ha insertado un nuevo inversionista"
                    data = logic.getAllInversionista()
                    for registro in data:
                        usuario = uLogic.getUserById(registro["id_usuario"])
                        userName = usuario.user
                        registro["id_usuario"] = userName

                    return render_template("inversionistaAdmin.html",
                                           data=data,
                                           message=message)

            # Eliminar
            elif formId == 2:
                id = int(request.form["id"])

                try:
                    logic.deleteInversionista(id)
                    data = logic.getAllInversionista()
                    for registro in data:
                        usuario = uLogic.getUserById(registro["id_usuario"])
                        userName = usuario.user
                        registro["id_usuario"] = userName
                    message = "Se ha eliminado un usuario de inversionista"

                except pymysql.err.MySQLError as error:
                    print("Failed inserting BLOB data into MySQL table {}".
                          format(error))
                    message = (
                        "No se puede eliminar. Afecta la integridad de la base de datos"
                    )
                    data = logic.getAllInversionista()
                    for registro in data:
                        usuario = uLogic.getUserById(registro["id_usuario"])
                        userName = usuario.user
                        registro["id_usuario"] = userName

                return render_template("inversionistaAdmin.html",
                                       data=data,
                                       message=message)

            # Update
            elif formId == 3:
                id = int(request.form["id"])
                nombre = request.form["nombre"]
                biografia = request.form["biografia"]
                email = request.form["email"]
                userName = request.form["name_usuario"]
                session["userNameInv"] = userName
                pais = request.form["pais"]
                ciudad = request.form["ciudad"]
                # ----------------------------------
                usuario = uLogic.getUserByUser(userName)
                id_usuario = usuario.id
                verdadero = True
                data = logic.getAllInversionista()
                for registro in data:
                    usuario = uLogic.getUserById(registro["id_usuario"])
                    userName = usuario.user
                    registro["id_usuario"] = userName

                return render_template(
                    "inversionistaAdmin.html",
                    data=data,
                    message=message,
                    verdadero=verdadero,
                    id=id,
                    nombre=nombre,
                    biografia=biografia,
                    email=email,
                    id_usuario=id_usuario,
                    pais=pais,
                    ciudad=ciudad,
                )

            # Modificar inversionista
            else:
                id = int(request.form["id"])
                nombre = request.form["nombre"]
                biografia = request.form["biografia"]
                email = request.form["email"]
                userName = session["userNameInv"]
                pais = request.form["pais"]
                ciudad = request.form["ciudad"]
                foto = request.files["fileToUpload"]
                nombre_foto = foto.filename
                try:
                    usuario = uLogic.getUserByUser(userName)
                    id_usuario = usuario.id
                    if foto.filename == "":
                        logic.updateInversionista(id, nombre, biografia, email,
                                                  id_usuario, pais, ciudad)
                    else:
                        binary_foto = foto.read()
                        logic.updateInversionistaConFoto(
                            id,
                            nombre,
                            biografia,
                            email,
                            pais,
                            ciudad,
                            binary_foto,
                            id_usuario,
                        )
                    data = logic.getAllInversionista()
                    for registro in data:
                        usuario = uLogic.getUserById(registro["id_usuario"])
                        userName = usuario.user
                        registro["id_usuario"] = userName
                    message = "Se ha modificado el inversionista"

                except pymysql.err.MySQLError as error:
                    print("Failed inserting BLOB data into MySQL table {}".
                          format(error))
                    message = "No se puede modificar. No existe el id usuario"
                    data = logic.getAllInversionista()
                    for registro in data:
                        usuario = uLogic.getUserById(registro["id_usuario"])
                        userName = usuario.user
                        registro["id_usuario"] = userName

                return render_template("inversionistaAdmin.html",
                                       data=data,
                                       message=message)
    except KeyError:
        return render_template(
            "logInForm.html",
            messageSS="Su sesión ha expirado, ingrese nuevamente")