Exemplo n.º 1
0
def devolverLibro():
    usuario = Usuario()
    print(f"\t Codigo\t Nombre\t Correo\t Documento")
    for obj in usuario.all():
        print(f"\t {obj.id}\t {obj.nombre}\t {obj.correo}\t {obj.documento}")
    idUsuario = int(
        input("Escriba el id del usuario que realiza la reserva: "))
    libro = Libro()
    print(f"\t Codigo\t Nombre\t ISBN\t Autor\t Editorial\tEstado")
    for obj in libro.all():
        print(
            f"\t {obj.id}\t {obj.nombre}\t {obj.isbn}\t {obj.autor_id}\t {obj.editorial_id}\t {obj.estado_libro_id}"
        )
    idLibro = int(input("Ingrese el id del libro a reservar: "))
    libro = Libro.find(idLibro)
    libro.estado_libro_id = 1
    libro.save()
    biblioteca = Biblioteca()
    print(f"\t Codigo\t Nombre\t Dirección\t Documento")
    for obj in biblioteca.all():
        print(
            f"\t {obj.id}\t {obj.nombre}\t {obj.direccion}\t {obj.documento}")
    idBiblioteca = int(
        input("Ingrese el id de la biblioteca donde se reservara: "))
    prestamo = Prestamo()
    prestamo.usuario_id = idUsuario
    prestamo.libros_id = idLibro
    prestamo.prestado_on = str(date.today())
    prestamo.bibliotecas_id = idBiblioteca
    prestamo.save()
Exemplo n.º 2
0
    def Alquilar(self):
        self.__log.info("Alquilar un libro")

        estadolibro = EstadoLibro()
        print(f"\t ID\t Descripcion")
        for obj in estadolibro.all():
            print(f"\t {obj.id}\t {obj.descripcion}")

            if obj.descripcion == 1:

                libroporalquilar = Prestamo()

                cliente = User()
                print(f"\t ID\t Nombre\t CORREO\t DOCUMENTO\t ESTADO")
                for obj in cliente.all():
                    print(f"\t {obj.id}\t {obj.nombre}\t {obj.correo}\t {obj.documento}\t {obj.estado_user_id}")
                print("Escriba el id del cliente")
                cliente = input()

                libro = Libro()
                print(f"\t ID\t Nombre\t ISBN\t Autor\t Editorial\t Estado")
                for obj in libro.all():
                    print(f"\t {obj.id}\t {obj.nombre}\t {obj.isbn}\t {obj.autors_id}\t {obj.editorial_id}\t {obj.estado_libro_id}")
                print("Escriba el id del libro")
                libro = input()

                DatabaseManager.table('libro').where('nombre', f'{obj.nombre}').update({'obj.estado_libro_id': 3})

                biblioteca = Biblioteca()
                print(f"\t ID\t Nombre\t DIRECCION")
                for obj in biblioteca.all():
                    print(f"\t {obj.id}\t {obj.nombre}\t {obj.direccion}")
                print("Escriba el id de la biblioteca")
                biblioteca = input()

                libroporalquilar.users_id = cliente
                libroporalquilar.libros_id = libro
                libroporalquilar.bibliotecas_id = biblioteca

                libroporalquilar.save()

                objMenus = init.Inicio()
                objMenus.MenuInicioMenu()
               
            elif obj.descripcion == 2:
                print("Lo sentimos el libro que busca esta reservado")
                objMenus = init.Inicio()
                objMenus.MenuInicioMenu()

            elif obj.descripcion == 2:
                print("Lo sentimos el libro que busca no se encuentra disponible")
                objMenus = init.Inicio()
                objMenus.MenuInicioMenu()
Exemplo n.º 3
0
    def registroPrestamos(self):
        self.__log.info("Ingresando al Módulo de Prestamos")
        stopMenu = True
        while stopMenu:
            opcionesPrestamoLibros = {
                "\t- Lista de Prestamos": 1,
                "\t- Registrar Prestamos": 2,
                "\t- Devolucion de Libros": 3
            }
            menuPrestamoLibros = Menu("Módulo de Prestamos",
                                      opcionesPrestamoLibros)
            resmenuPrestamoLibros = menuPrestamoLibros.mostrarMenu()
            if resmenuPrestamoLibros == 1:
                self.__log.info("Entrando a la Lista de Prestamos")
                PrestamoN = Prestamo()
                print(
                    str("Codigo").ljust(5) + "\t " +
                    str("Fecha Prestamo").ljust(10) + "\t " +
                    str("Usuario").ljust(10) + "\t" +
                    str("Biblioteca").ljust(25) + "\t " +
                    str("Libro").ljust(7) + "\t " + str("Estado").ljust(7))
                contador = 0
                for obj in PrestamoN.all():
                    ObjUserTemp = User.find(obj.user_id)
                    ObjLibrTemp = Libro.find(obj.libros_id)
                    ObjBiblioTemp = Biblioteca.find(obj.bibliotecas_id)
                    ObjEstaLibTempp = EstadoLibro.find(
                        ObjLibrTemp.estado_libro_id)
                    contador += 1
                    print(
                        str(obj.id).ljust(5) + "\t " +
                        str(obj.prestamo_on).ljust(10) + "\t " +
                        str(ObjUserTemp.nombre).ljust(10) + "\t" +
                        str(ObjBiblioTemp.nombre).ljust(25) + "\t " +
                        str(ObjLibrTemp.nombre).ljust(7) + "\t " +
                        str(ObjEstaLibTempp.descripcion).ljust(7))
                if contador > 0:
                    print("Lista Completa")
                else:
                    print("No hay registros")
                stopMenu = False

            elif resmenuRegistroLibros == 2:
                self.__log.info("Registrar Prestamos")
                nuevo = Prestamo()

                UserN = User()
                print(f"\t Codigo\t\t\t Nombre\t\t\t Estado")
                for obj in UserN.all():
                    print(
                        f"\t {obj.id}\t\t\t {obj.nombre}\t\t\t {obj.estado_user_id}"
                    )
                print("Escriba el id del usuario: ")
                usuario_id = input()

                LibroN = Libro()
                print(f"\t Codigo\t Libro")
                for obj in LibroN.all():
                    print(f"\t {obj.id}\t {obj.nombre}")
                print("Escriba el id del libro: ")
                libroId = input()

                BibliotecaN = Biblioteca()
                print(f"\t Codigo\t Biblioteca")
                for obj in BibliotecaN.all():
                    print(f"\t {obj.id}\t {obj.nombre}")
                print("Escriba el id de la Biblioteca: ")
                bibliotecaId = input()

                nuevo.user_id = usuario_id
                nuevo.libros_Id = libroId
                nuevo.prestamo_on = datetime.now()
                nuevo.bibliotecas_id = bibliotecaId
                nuevo.save()

                nuevoD = Libro.find(nuevo.libros_Id)
                nuevoD.estado_libro_id = 3
                nuevoD.save()

                print("Registro completo")
                stopMenu = False

            elif resmenuRegistroLibros == 3:
                self.__log.info("Devolución de Libros")
                librosTemporal = []
                libroNN = Libro.where('estado_libro_id', '=', '3').get()
                for libt in libroNN.all():
                    idlibTemp = libt.id
                    PrestamoN = Prestamo.where('libros_id', '=',
                                               f"{idlibTemp}").get()
                    for presIn in PrestamoN.all():
                        temporalDato = {
                            "id": str(presIn.id),
                            "user_id": str(presIn.user_id),
                            "libros_id": str(presIn.libros_id),
                            "prestamo_on": str(presIn.prestamo_on),
                            "bibliotecas_id": str(presIn.bibliotecas_id)
                        }
                        librosTemporal.append(temporalDato)
                contaDD = 0
                print(f"\t Codigo\t\t " + str("Libros").ljust(15) +
                      "\t\t Fecha\t\t Bibliotecas")
                for obj in librosTemporal:
                    contaDD += 1
                    LibTempN = Libro.find(obj["libros_id"])
                    BibliTempN = Biblioteca.find(obj["bibliotecas_id"])
                    ididD = str(obj["id"])
                    prest = str(obj["prestamo_on"])
                    print(f"\t{ididD}\t\t " + str(LibTempN.nombre).ljust(15) +
                          "\t\t" + prest + "\t\t" + BibliTempN.nombre)
                if contaDD > 0:
                    print("Escriba el id del Préstamo")
                    Prestamo_NID = input()
                    nuevoPresD = Prestamo.find(Prestamo_NID)
                    nuevoD = Libro.find(nuevoPresD.libros_id)
                    nuevoD.estado_libro_id = 1
                    nuevoD.save()
                    print(f"Devolucion correcta")
                else:
                    print("No hay registros")
                stopMenu = False

            elif resmenuRegistroLibros == 9:
                stopMenu = False
                self.__log.info("Saliendo")
Exemplo n.º 4
0
    def registroPrestamos(self):
        self.__log.info("Ingresando al Registro de los ")
        opcionesRegistrolos = {
            "\t- Registrar Prestamos ": 1,
            "\t- Registrar devolucion de prestamo ": 2
        }
        menuRegistrolos = Menu("Registro de Prestamos ", opcionesRegistrolos)
        resmenuRegistrolos = menuRegistrolos.mostrarMenu()
        stopMenu = True
        while stopMenu:
            if resmenuRegistrolos == 1:
                self.__log.info("Entrando al registro de Prestamos ")
                nuevoPrestamo = Prestamo()
                codigoLibro = input("escriba el codigo del Libro \n")
                codigoUsuario = input("escriba el codigo del usuario \n")
                fechaPrestamo = datetime.today().strftime('%Y-%m-%d')
                bibliotecaId = 1
                flagUpdate = False

                nuevoPrestamo.user_id = codigoUsuario
                nuevoPrestamo.libros_id = codigoLibro
                nuevoPrestamo.prestado_on = fechaPrestamo
                nuevoPrestamo.bibliotecas_id = bibliotecaId

                listaLibros = Libro.where('id', '=', f'{codigoLibro}').get()
                for row in listaLibros:
                    libro = row

                if libro.estado_libro_id == 1:
                    listaAutor = Autor.where('id', '=',
                                             f'{libro.autor_id}').get()
                    for row in listaAutor:
                        autor = row

                    print(
                        "\tCodigo Usuario\t\tLibro\t\tISBN\t\tAutor\t\tBiblioteca"
                    )
                    print(
                        f"\t{str(codigoUsuario)}\t\t{str(libro.nombre)}\t\t{str(libro.isbn)}\t\t{str(autor.nombre)}\t\t{str(bibliotecaId)}"
                    )

                    registro = input(
                        "Desea registrar el prestamo Si(1)/No(0)?: ")
                    if str(registro) == '1':
                        if nuevoPrestamo.save():
                            print("Registro de prestamo satisfactorio")
                            sleep(5)
                            flagUpdate = Libro.where(
                                'id', '=',
                                f'{codigoLibro}').update(estado_libro_id=3)

                            if flagUpdate:
                                print("Actualización de libro satisfactorio")
                                sleep(5)
                            else:
                                print("No se pudo actualizar el libro")
                else:
                    print(
                        "No se puede prestar el libro.\nLibro ha sido prestado."
                    )
                    sleep(5)

                stopMenu = False

            elif resmenuRegistrolos == 2:
                self.__log.info("Entrando a la devolución de libro Prestado ")
                codigoUsuario = input("escriba el codigo del usuario \n")
                fechaDevolucion = '9999-12-31'  #Constante para identificar devolucion
                flagUpdate = False

                listaDev = Prestamo.where('user_id', '=',
                                          f'{codigoUsuario}').get()
                if listaDev:
                    print(
                        "\tID Prestamo\tLibro\t\tISBN\t\tAutor\t\tBiblioteca")
                    for rowDev in listaDev:
                        if str(rowDev.prestado_on
                               ) != fechaDevolucion:  #No mostrar devoluciones
                            listaLibros = Libro.where(
                                'id', '=', f'{rowDev.libros_id}').get()
                            for rowLibro in listaLibros:
                                libro = rowLibro
                                listaAutor = Autor.where(
                                    'id', '=', f'{libro.autor_id}').get()
                                for rowAutor in listaAutor:
                                    autor = rowAutor
                                print(
                                    f"\t{str(rowDev.id)}\t\t{str(libro.nombre)}\t\t{str(libro.isbn)}\t\t{str(autor.nombre)}\t\t{str(rowDev.bibliotecas_id)}"
                                )

                    idDev = input("Escriba el Id de Prestamo: ")

                    if idDev:
                        flagUpdate = Prestamo.where(
                            'id', '=',
                            f'{idDev}').update(prestado_on=fechaDevolucion)
                        if flagUpdate:
                            print("Actualización de Devolución satisfactoria")
                            sleep(5)
                            flagUpdate = Libro.where(
                                'id', '=', f'{rowDev.libros_id}').update(
                                    estado_libro_id=1)
                            if flagUpdate:
                                print("Actualización de libro satisfactorio")
                                sleep(5)
                            else:
                                print("No se pudo actualizar el libro")
                        else:
                            print("No se pudo actualizar Devolución")

                stopMenu = False

            elif resmenuRegistrolos == 9:
                self._log.info("Saliendo")
                stopMenu = False
Exemplo n.º 5
0
    def execute_modulo(self, ans):
        clear()
        if (ans == '1'):
            pass
            # print("Ingrese la información solicitada")
            # id_doc=input("Documento del usuario: ")
            # records=models.user.User.where('documento','=',id_doc).get()
            # for record in records:
            #     print(record.id)
        elif (ans == '2'):
            print('Ingrese la informacion solicitada')
            id_doc_urs = input(color.BOLD + "Id documento del usuario: " +
                               color.END)
            userconx = models.user.Users()
            run = True
            while run:
                try:
                    "user = db.table('users').where('name', 'John').pluck('name')"
                    record_urs = userconx.where('documento',
                                                id_doc_urs).pluck('documento')
                    print(record_urs)
                    id_user = record_urs.id
                    break
                except Exception as error:
                    print(error)
                    print(color.BOLD + 'Opcion incorrecta' + color.END)

            clear()
            libroconx = models.libro.Libro
            records_libro = libroconx.all()
            record_list = []
            for record in records_libro:
                record_dict = {
                    'Id libro': record.id,
                    'Titulo': record.nombre,
                    'ISBN': record.isbn
                }
                record_list.append(record_dict)
            utils.contenedor.contenedor(record_list)
            while run:
                try:
                    print("")
                    id_libro = input('Id libro: ')
                    libroconx.where('id', int(id_libro)).first()
                    break
                except:
                    print('Opcion incorrecta')
            clear()
            bibconx = models.biblioteca.Biblioteca
            records_bib = bibconx.all()
            bib_list = []
            for record in records_bib:
                record_dict = {
                    'Id biblioteca': record.id,
                    'Nombre de la biblioteca': record.nombre,
                    'Dirección': record.direccion
                }
                bib_list.append(record_dict)
            utils.contenedor.contenedor(bib_list)
            run = True
            while run:
                try:
                    id_biblioteca = input(color.BOLD + "Id biblioteca: " +
                                          color.END)
                    bibconx.where('id', int(id_biblioteca)).first()
                    break
                except:
                    print('Opcion incorrecta')
            clear()
            print("Seguro que deseas agregar la siguiente información: ")
            ans = ("Respuesta(Y/N): ")
            if (ans == 'Y'):
                print("")
                prtconx = Prestamo()
                prtconx.user_id = id_user
                prtconx.libros_id = id_libro
                prtconx.prestado_on = date.today()
                prtconx.bibliotecas_id = id_biblioteca
                prtconx.save()
                print("Se registro el prestamo")
        elif (ans == '3'):
            pass
        elif (ans == '4'):
            pass
Exemplo n.º 6
0
    def registroPrestamos(self):
        self.__log.info("Ingresando al menu de Prestamos")
        opcionesPrestamo = {
            "\t- Registrar Prestamo": 1,
            "\t- Registrar Devolucion": 2
        }
        menuPrestamo = Menu("Prestamo de Libros", opcionesPrestamo)
        resmenuPrestamo = menuPrestamo.mostrarMenu()
        stopMenu = True
        while stopMenu:
            if resmenuPrestamo == 1:
                self.__log.info("Entrando al prestamo de libros")
                usuario = User()
                numDocumento = input("Ingrese su numero de documento: ")
                try:
                    listaUser = []
                    for obj in usuario.all():
                        a = [
                            obj.id, obj.nombre, obj.documento,
                            obj.estado_user_id
                        ]
                        listaUser.append(a)
                    aaa = False
                    i = 0
                    while aaa == False:
                        if listaUser[i][2] == numDocumento:
                            aaa = True
                            user_id = listaUser[i][0]
                            name = listaUser[i][1]
                            resultado = listaUser[i][3]
                            estadoUser = EstadoUser()
                            listaEstadoUser = []
                            for obj in estadoUser.all():
                                a = [obj.id, obj.descripcion]
                                listaEstadoUser.append(a)
                            bbb = False
                            j = 0
                            while bbb == False:
                                if listaEstadoUser[j][0] == resultado:
                                    est_User = listaEstadoUser[j][1]
                                    if est_User == "Inactivo" or est_User == "Pendiente Aprobacion":
                                        print("Su estado es: ", est_User,
                                              "no puede retirar libros")
                                        stopMenu = False
                                    elif est_User == "Activo":
                                        print("Bienvenido ", name,
                                              "su estado de usuario es: ",
                                              est_User)

                                        libros = Libro()
                                        nombreLibro = input(
                                            "Ingrese el nombre del libro: ")
                                        try:
                                            guiaLibros = []
                                            for obj in libros.all():
                                                a = [
                                                    obj.id, obj.nombre,
                                                    obj.estado_libro_id
                                                ]
                                                guiaLibros.append(a)

                                            ccc = False
                                            i = 0
                                            while ccc == False:
                                                if guiaLibros[i][
                                                        1] == nombreLibro:
                                                    libro_id = guiaLibros[i][0]
                                                    resultado1 = guiaLibros[i][
                                                        2]
                                                    ccc = True
                                                    estadoLibro = EstadoLibro()
                                                    estadoLibros = []
                                                    for obj in estadoLibro.all(
                                                    ):
                                                        a = [
                                                            obj.id,
                                                            obj.descripcion
                                                        ]
                                                        estadoLibros.append(a)

                                                    bbb = False
                                                    j = 0
                                                    while bbb == False:
                                                        if estadoLibros[j][
                                                                0] == resultado1:
                                                            est_Libros = estadoLibros[
                                                                j][1]

                                                            if est_Libros == "Disponible":
                                                                print(
                                                                    "El libro, se encuentra ",
                                                                    est_Libros)
                                                                est_Libros = "Prestado"
                                                                prestamo = Prestamo(
                                                                )
                                                                prestamo.user_id = user_id
                                                                prestamo.libros_id = libro_id
                                                                prestamo.prestado_on = datetime.now(
                                                                )
                                                                prestamo.bibliotecas_id = 1
                                                                prestamo.save()
                                                                stopMenu = False
                                                                print(
                                                                    "El registro del prestamo, se realizo con exito"
                                                                )
                                                            elif est_Libros == "Reservado" or est_Libros == "Prestado":
                                                                print(
                                                                    "El libro se encuentra: ",
                                                                    est_Libros)
                                                                stopMenu = False
                                                            else:
                                                                print(
                                                                    "digito mal"
                                                                )
                                                                stopMenu = False
                                                            bbb = True
                                                        else:
                                                            j = j + 1

                                                else:
                                                    i = i + 1
                                        except:
                                            print("El libro no existe")
                                            stopMenu = False

                                    else:
                                        print("Digito mal")
                                        stopMenu = False
                                    bbb = True
                                else:
                                    j = j + 1
                        else:
                            i = i + 1
                except:
                    print("ALGO FALLO EN EL PROGRAMA")
                stopMenu = False

            elif resmenuPrestamo == 2:
                libros = Libro()
                isbnLibro = input("Ingrese el ISBN del libro a devolver: ")
                try:
                    listaLibros = []
                    for obj in libros.all():
                        a = [obj.id, obj.nombre, obj.isbn]
                        listaLibros.append(a)
                    aaa = False
                    i = 0
                    while aaa == False:
                        if listaLibros[i][2] == isbnLibro:
                            idLibro = listaLibros[i][0]
                            prestamo = Prestamo()
                            listaPrestamos = []
                            for obj in libros.all():
                                a = [
                                    obj.id, obj.user_id, obj.libros_id,
                                    obj.prestado_on, obj.bibliotecas_id
                                ]
                                listaPrestamos.append(a)
                            bbb = False
                            j = 0
                            while bbb == False:
                                if listaPrestamos[i][2] == idLibro:
                                    prestamo.user_id = listaPrestamos[i][1]
                                    prestamo.libros_id = listaPrestamos[i][2]
                                    prestamo.prestado_on = datetime.now()
                                    prestamo.bibliotecas_id = listaPrestamos[
                                        i][4]
                                    prestamo.save()
                                    stopMenu = False
                                    bbb = True
                                else:
                                    j = j + 1
                            aaa = True
                        else:
                            i = i + 1
                except:
                    print(
                        "El libro no existe o no está registrado en la biblioteca"
                    )
                stopMenu = False

            elif resmenuPrestamo == 9:
                self._log.info("Saliendo")
                stopMenu = False