Пример #1
0
 def onAutorChange(self, item):
     autor = Autor(nombre=self.autores[item.row()]['nombre'],
                   codigo=self.autores[item.row()]['codigo'])
     if autor.nombre != item.text():
         autor.nombre = item.text()
         autor.update()
         self.onAutorMostrar()
Пример #2
0
    def RegistroAutor(self):
        self.__log.info("Ingresando al Registro de los autores")
        opcionesRegisAutor = {
            "\t- Agregar Autor": 1,
            "\t- Listar Autores": 2,
            "\t- Eliminar Autor": 3
        }
        MenuRegisAutor = Menu("Menu Modulo Autor", opcionesRegisAutor)
        regisAutor = MenuRegisAutor.mostrarMenu()
        resMenuRegisAutor = True
        if (resMenuRegisAutor == 1):
            nuevoAutor = Autor()
            nombreAutor = input("escriba el nombre del autor \n")
            correoAutor = input("escriba el correo del autor \n")

            nuevoAutor.nombre = nombreAutor
            nuevoAutor.correo = correoAutor

            nuevoAutor.save()
            resMenuRegisAutor = False
        if (resMenuRegisAutor == 2):
            autor = Autor()
            print(f"\t ID\t NOMBRE\t CORREO")
            for obj in autor.all():
                print(f"\t {obj.id}\t {obj.nombre}\t {obj.correo}")

                input("Regresar???")
                program.utils.Menu("Menu Modulo Autor", regisAutor)
        if (resMenuRegisAutor == 3):
            pass
Пример #3
0
    def registroLibros(self):
        self.__log.info("Ingresando al Registro de los ")
        opcionesRegistrolos = {
            "\t- Registrar Libros ": 1,
            "\t- Listar Libros ": 2
        }
        menuRegistrolos = Menu("Registro de Libros ", opcionesRegistrolos)
        resmenuRegistrolos = menuRegistrolos.mostrarMenu()
        stopMenu = True
        while stopMenu:
            if resmenuRegistrolos == 1:
                self.__log.info("Entrando al registro de Libros ")
                nuevoLibro = Libro()
                nombreLibro = input("escriba el nombre del Libro \n")
                isbnLibro = input("escriba en ISBN del libro \n")

                autores = Autor()
                print(f"\t Codigo\t Nombre\t Tipo")
                for obj in autores.all():
                    print(f"\t {obj.id}\t {obj.nombre}\t {obj.tipo}")
                print("Escriba el id del Autor de la siguiente lista")
                autor_idLibro = input()
                estados = EstadoLibro()
                print(f"\t Codigo\t Estado")
                for obj in estados.all():
                    print(f"\t {obj.id}\t {obj.descripcion}")
                print(
                    "Escriba el id del Estado del Libro de la siguiente lista")
                estadoLibro = input()

                nuevoLibro.nombre = nombreLibro
                nuevoLibro.isbn = isbnLibro
                nuevoLibro.autor_id = autor_idLibro
                nuevoLibro.estado_libro_id = estadoLibro

                nuevoLibro.save()

                stopMenu = False

            elif resmenuRegistrolos == 2:
                self.__log.info("Entrando  a consultar los ")
                listarLibro = Libro()
                print(f"\t Codigo\t Nombre\t ISBN\t Autor\t Estado de Libro")
                for obj in listarLibro.all():
                    print(
                        f"\t {obj.id}\t {obj.nombre}\t {obj.isbn}\t {obj.autor_id}\t {obj.estado_libro_id}"
                    )
                sleep(5)
                stopMenu = False

            elif resmenuRegistrolos == 9:
                self._log.info("Saliendo")
Пример #4
0
    def registroLibros(self):
        self.__log.info("Ingresando al Registro de Libros")
        opcionesRegistroLibros = {"\t- Registrar Libros":1,"\t- Listar Libros":2}
        menuRegistroLibros = Menu("Registro de Libros",opcionesRegistroLibros)
        resmenuRegistroLibros = menuRegistroLibros.mostrarMenu()
        stopMenu = True
        while stopMenu:
            if (resmenuRegistroLibros == 1):
                self.__log.info("Entrando al registro de libros")
                nuevoLibro = Libros()
                nombreLibro = input("escriba el nombre del Libro \n")
                isbnLibro = input("escriba en ISBN del libro \n")

                autores = Autor()
                print(f"\t Codigo\t Nombre\t Tipo")
                for obj in autores.all():
                    print(f"\t {obj.id}\t {obj.nombre}\t {obj.tipo}")
                print("Escriba el id del Autor de la siguiente lista")
                print("*Importante : Si no lo ve ingrese NA*")
                autor_idLibro = input()
                if (autor_idLibro == 'NA'):
                    nuevoAutor = Autor()
                    nombrenuevoAutor = input('Ingrese el nombre del Autor: ')
                    correonuevoAutor = input('Ingrese el correo del Autor: ')
                    tiponuevoAutor = input('Ingrese si (01) si es Autor o (02) si es Editorial: ')
                    nuevoAutor.nombre = nombrenuevoAutor
                    nuevoAutor.correo = correonuevoAutor
                    nuevoAutor.tipo = tiponuevoAutor
                    nuevoAutor.save()
                    print('Inicializando menu de regsitro nuevamente')
                    Registros.registroLibros()
                else:
                    estados = Estado_libro()
                    print(f"\t Codigo\t Estado")
                    for obj in estados.all():
                        print(f"\t {obj.id}\t {obj.descripcion}")
                    print("Escriba el id del Estado del Libro de la siguiente lista")
                    estadoLibro = input()

                nuevoLibro.nombre = nombreLibro
                nuevoLibro.isbn = isbnLibro
                nuevoLibro.autor_id = autor_idLibro
                nuevoLibro.estado_libro_id = estadoLibro

                nuevoLibro.save()



                stopMenu = False
            
            elif resmenuRegistroLibros == 9:
                self._log.info("Saliendo")
Пример #5
0
def modificarAutor():
    autor = Autor()
    print(f"\t Codigo\t Nombre\t Correo")
    for obj in autor.all():
        print(f"\t {obj.id}\t {obj.nombre}\t {obj.correo}")
    idToUpdate = int(input("Ingrese el id del autor a editar: "))
    autor = Autor.find(idToUpdate)
    autor.nombre = input("Escriba el nuevo nombre del autor: ")
    autor.correo = input("Escriba el nuevo correo del autor: ")
    autor.save()
Пример #6
0
def insertarAutor():
    autor = Autor()
    print(f"\t Codigo\t Nombre\t Correo")
    for obj in autor.all():
        print(f"\t {obj.id}\t {obj.nombre}\t {obj.correo}")
    autor.nombre = input("Escriba el nombre del autor: ")
    autor.correo = input("Escriba el correo del autor: ")
    autor.save()
Пример #7
0
 def onAutorEliminar(self):
     for item in self.ui.table_autor.selectedIndexes():
         try:
             nombre = self.autores[item.row()]['nombre']
             Autor(codigo=self.autores[item.row()]['codigo']).delete()
         except ForeignKeyViolation:
             QMessageBox.warning(
                 self, "Atención",
                 f'El autor "{nombre}" no puede eliminarse')
     self.onAutorMostrar()
Пример #8
0
def insertarLibro():
    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}"
        )
    libro.nombre = input("Escriba el nombre del libro: ")
    libro.isbn = input("Ingrese el codigón ISBN del libro: ")
    autores = Autor()
    print(f"\t Codigo\t Nombre\t Tipo")
    for obj in autores.all():
        print(f"\t {obj.id}\t {obj.nombre}\t {obj.correo}")
    libro.autor_id = int(input("Ingrese el id del autor del libro: "))
    editorial = Editorial()
    print(f"\t Codigo\t Nombre\t Correo\t Dirección")
    for obj in editorial.all():
        print(f"\t {obj.id}\t {obj.nombre}\t {obj.correo}\t {obj.dirección}")
    libro.editorial_id = int(
        input("Ingrese el id de la editorial del libro: "))
    libro.estado_libro_id = 1
    libro.save()
Пример #9
0
def eliminarAutor():
    autor = Autor()
    print(f"\t Codigo\t Nombre\t Correo")
    for obj in autor.all():
        print(f"\t {obj.id}\t {obj.nombre}\t {obj.correo}")
    idToDelete = int(input("Ingrese el id del autor a eliminar: "))
    autor = Autor.find(idToDelete)
    autor.delete()
    
Пример #10
0
    def __init__(self, libro=None):
        super(LibroWindow, self).__init__()
        self.ui = Ui_Dialog()
        self.ui.setupUi(self)
        self.libro = libro

        self.editoriales = Editorial().getAll()
        self.generos = Genero().getAll()
        self.autores = Autor().getAll()

        self.ui.push_cancelar.clicked.connect(self.onClose)
        self.ui.push_guardar.clicked.connect(self.onSave)

        for editorial in self.editoriales:
            self.ui.combo_editorial.addItem(editorial['nombre'])

        for genero in self.generos:
            self.ui.combo_genero.addItem(genero['tipo'])

        for autor in self.autores:
            self.ui.combo_autor.addItem(autor['nombre'])

        if libro is not None:
            self.ui.spin_codigo.setValue(libro['codigo'])
            self.ui.edit_titulo.setText(libro['titulo'])
            self.ui.edit_isbn.setText(libro['isbn'])
            self.ui.spin_precio.setValue(libro['precio'])
            self.ui.edit_idioma.setText(libro['idioma'])
            self.ui.date_publicacion.setDate(libro['publicacion'])
            index = self.ui.combo_autor.findText(libro['autor'])
            self.ui.combo_autor.setCurrentIndex(index)
            index = self.ui.combo_editorial.findText(libro['editorial'])
            self.ui.combo_editorial.setCurrentIndex(index)
            index = self.ui.combo_genero.findText(libro['genero'])
            self.ui.combo_genero.setCurrentIndex(index)
            self.ui.edit_encuadernacion.setText(libro['encuadernacion'])
Пример #11
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
Пример #12
0
            nova_profissao.id_profissao_autor = db.last_sequence_number(
                'profissao_autor')

            profissao_banco = nova_profissao
        else:
            profissao_banco = profissao_banco[0]

        # print(profissao)
        # print('a')
        a_list = soup.find_all("a", rel='twipsy')
        for a in a_list:
            autor = a.get_text()
            autor_banco = db.session.query(Autor).filter(Autor.autor == autor)
            if (autor_banco.count() == 0):
                novo_autor = Autor()
                novo_autor.autor = autor
                db.session.add(novo_autor)
                db.session.commit()
                novo_autor.id_autor = db.last_sequence_number('autor')
                autor_banco = novo_autor
            else:
                autor_banco = autor_banco[0]

            profissoes_autores_banco = db.session.query(
                ProfissoesAutores).filter(
                    ProfissoesAutores.id_autor == autor_banco.id_autor
                    and ProfissoesAutores.id_profissao_autor
                    == profissao_banco.id_profissao_autor)
            if (profissoes_autores_banco.count() == 0):
                novo_profissoes_autores_banco = ProfissoesAutores()
Пример #13
0
 def onAutorGuardar(self):
     nombre = self.ui.edit_autor_guardar.text()
     autor = Autor(nombre)
     autor.save()
     self.ui.edit_autor_guardar.clear()
     self.onAutorMostrar()
Пример #14
0
    def RegistroLibros(self):
        self.__log.info("Ingresando al Registro de Libros")
        opcionesRegisLibros = {
            "\t- Registrar Libro": 1,
            "\t- Listar Libros": 2,
            "\t- Eliminar Libros": 3
        }
        MenuRegisLibros = Menu("Menu Modulo Libros", opcionesRegisLibros)
        regisLibros = MenuRegisLibros.mostrarMenu()
        menuRegisLib = True
        while menuRegisLib:
            if (regisLibros == 1):
                nuevoLibro = Libro()
                nombreLibro = input("escriba el nombre del Libro \n")
                isbnLibro = input("escriba el ISBN del libro \n")

                autores = Autor()
                print(f"\t ID\t Nombre\t Correo")
                for obj in autores.all():
                    print(f"\t {obj.id}\t {obj.nombre}\t {obj.correo}")
                print("Escriba el id del Autor")
                autor_idLibro = input()

                editoriales = Editorial()
                print(f"\t ID\t Nombre")
                for obj in editoriales.all():
                    print(f"\t {obj.id}\t {obj.nombre}")
                print("Escriba el id de la editorial")
                editorialLibro = input()

                nuevoLibro.nombre = nombreLibro
                nuevoLibro.isbn = isbnLibro
                nuevoLibro.autor_id = autor_idLibro
                nuevoLibro.estado_libro_id = editorialLibro

                nuevoLibro.save()
                menuRegisLib = False

            elif (regisLibros == 2):
                libros = Libro()
                print(f"ID\t NOMBRE\t ISBN\t AUTOR\t EDITORIAL\t ESTADO")
                for obj in libros.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 de la editorial")
                editorialLibro = input()

                input("Regresar???")
                menuRegisLib = False
                program.utils.Menu("Menu Modulo Libros", regisLibros)

            elif (regisLibros == 3):
                libros = Libro()
                print(f"ID\t NOMBRE\t ISBN\t AUTOR\t EDITORIAL\t ESTADO")
                for obj in libros.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 que se desea eliminar: \n")
                id = input()

                DatabaseManager.table('libros').get()
                DatabaseManager.table('libros').where('id', '=',
                                                      f'{id}').delete()
                menuRegisLib = False

            elif (regisLibros == 9):
                __log = log("Saliendo")
            break
Пример #15
0
    def registroLibros(self):
        self.__log.info("Ingresando al Registro de Libros")

        while True:
            opcionesRegistroLibros = {
                "\t- Registrar Libros": 1,
                "\t- Listar Libros": 2
            }
            menuRegistroLibros = Menu("Registro de Libros",
                                      opcionesRegistroLibros)
            resmenuRegistroLibros = menuRegistroLibros.mostrarMenu()
            if resmenuRegistroLibros == 1:
                self.__log.info("Entrando al registro de libros")
                nuevoLibro = Libro()
                nombreLibro = input("escriba el nombre del Libro \n")
                isbnLibro = input("escriba en ISBN del libro \n")

                autores = Autor()
                print(f"\t Codigo\t Nombre\t Tipo")
                for obj in autores.all():
                    print(f"\t {obj.id}\t {obj.nombre}\t {obj.tipo}")
                print("Escriba el id del Autor de la siguiente lista")
                autor_idLibro = input()
                estados = EstadoLibro()
                print(f"\t Codigo\t Estado")
                for obj in estados.all():
                    print(f"\t {obj.id}\t {obj.descripcion}")
                print(
                    "Escriba el id del Estado del Libro de la siguiente lista")
                estadoLibro = input()

                nuevoLibro.nombre = nombreLibro
                nuevoLibro.isbn = isbnLibro
                nuevoLibro.autor_id = autor_idLibro
                nuevoLibro.estado_libro_id = estadoLibro

                nuevoLibro.save()

                input("Continuar?")

            elif resmenuRegistroLibros == 2:
                self.__log.info("Ingresando a listar libros")
                libros = Libro()
                print(f"\t Codigo\t Nombre\t\t ISBN\t Autor\t Estado")
                for obj in libros.all():
                    y = obj.estado_libro_id
                    if (y == 1):
                        estado = "Disponible"
                    elif (y == 2):
                        estado = "Reservado"
                    elif (y == 3):
                        estado = "Prestado"
                    print(
                        f"\t {obj.id}\t {obj.nombre}\t\t {obj.isbn}\t {obj.autor_id}\t {estado}"
                    )

                input("Continuar?")

            elif resmenuRegistroLibros == 9:
                self.__log.info("Saliendo")
                break
Пример #16
0
class MainWindow(QMainWindow):
    showMessageBox = Signal(str)
    exitThread = Signal()

    def __init__(self):
        super(MainWindow, self).__init__()

        # modelos
        self.editorial = Editorial()
        self.genero = Genero()
        self.autor = Autor()
        self.libro = Libro()
        self.sucursal = Sucursal()
        self.supervisor = Supervisor()
        self.empleado = Empleado()
        self.venta = Compra()
        self.existencia = LibroSucursal()

        self.ui = Ui_MainWindow()
        self.ui.setupUi(self)

        self.exit = False
        self.showMessageBox.connect(self.onNotify)
        self.exitThread.connect(self.customExit)
        self.canExit = False

        self.worker = Worker(self, 'existencias')
        self.thread = QThread()
        self.worker.moveToThread(self.thread)
        self.thread.started.connect(self.worker._listener)
        self.thread.start()

        # connections
        self.ui.push_editorial_nuevo.clicked.connect(self.onEditorialNuevo)
        self.ui.push_editorial_mostrar.clicked.connect(self.onEditorialMostrar)
        self.ui.push_editorial_eliminar.clicked.connect(
            self.onEditorialEliminar)
        self.ui.push_editorial_buscar.clicked.connect(self.onEditorialBuscar)

        self.ui.push_genero_mostrar.clicked.connect(self.onGeneroMostrar)
        self.ui.push_genero_guardar.clicked.connect(self.onGeneroGuardar)
        self.ui.push_genero_eliminar.clicked.connect(self.onGeneroEliminar)
        self.ui.push_genero_buscar.clicked.connect(self.onGeneroBuscar)

        self.ui.push_autor_mostrar.clicked.connect(self.onAutorMostrar)
        self.ui.push_autor_guardar.clicked.connect(self.onAutorGuardar)
        self.ui.push_autor_eliminar.clicked.connect(self.onAutorEliminar)
        self.ui.push_autor_buscar.clicked.connect(self.onAutorBuscar)

        self.ui.push_libro_nuevo.clicked.connect(self.onLibroNuevo)
        self.ui.push_libro_mostrar.clicked.connect(self.onLibroMostrar)
        self.ui.push_libro_eliminar.clicked.connect(self.onLibroEliminar)
        self.ui.push_libro_buscar.clicked.connect(self.onLibroBuscar)

        self.ui.push_sucursal_nuevo.clicked.connect(self.onSucursalNuevo)
        self.ui.push_sucursal_mostrar.clicked.connect(self.onSucursalMostrar)
        self.ui.push_sucursal_eliminar.clicked.connect(self.onSucursalEliminar)
        self.ui.push_sucursal_buscar.clicked.connect(self.onSucursalBuscar)
        self.ui.push_sucursal_inactiva.clicked.connect(self.onSucursalInactiva)

        self.ui.push_empleado_nuevo.clicked.connect(self.onEmpleadoNuevo)
        self.ui.push_empleado_mostrar.clicked.connect(self.onEmpleadoMostrar)
        self.ui.push_empleado_eliminar.clicked.connect(self.onEmpleadoEliminar)
        self.ui.push_empleado_buscar.clicked.connect(self.onEmpleadoBuscar)
        self.ui.push_supervisor_mostrar.clicked.connect(
            self.onSupervisorMostrar)
        self.ui.push_empleado_inactivos.clicked.connect(
            self.onEmpleadoInactivo)

        self.ui.push_venta_nuevo.clicked.connect(self.onVentaNuevo)
        self.ui.push_venta_mostrar.clicked.connect(self.onVentaMostrar)
        self.ui.push_venta_eliminar.clicked.connect(self.onVentaEliminar)
        self.ui.push_venta_buscar.clicked.connect(self.onVentaBuscar)

        self.ui.push_existencia_nuevo.clicked.connect(self.onExistenciaNuevo)
        self.ui.push_existencia_mostrar.clicked.connect(
            self.onExistenciaMostrar)
        self.ui.push_existencia_buscar.clicked.connect(self.onExistenciaBuscar)

        # double clicks
        self.ui.table_libro.doubleClicked.connect(self.onLibroEdit)
        self.ui.table_editorial.doubleClicked.connect(self.onEditorialEdit)
        self.ui.table_existencia.doubleClicked.connect(self.onExistenciaEdit)
        self.ui.table_empleado.doubleClicked.connect(self.onEmpleadoEdit)
        self.ui.table_sucursal.doubleClicked.connect(self.onSucursalEdit)
        self.ui.table_venta.doubleClicked.connect(self.onVentaEdit)

        # no edit
        self.ui.table_editorial.setEditTriggers(
            QAbstractItemView.NoEditTriggers)
        self.ui.table_libro.setEditTriggers(QAbstractItemView.NoEditTriggers)
        self.ui.table_existencia.setEditTriggers(
            QAbstractItemView.NoEditTriggers)
        self.ui.table_empleado.setEditTriggers(
            QAbstractItemView.NoEditTriggers)
        self.ui.table_venta.setEditTriggers(QAbstractItemView.NoEditTriggers)
        self.ui.table_sucursal.setEditTriggers(
            QAbstractItemView.NoEditTriggers)

        # edit
        self.ui.table_autor.itemChanged.connect(self.onAutorChange)
        self.ui.table_genero.itemChanged.connect(self.onGeneroChange)

        self.onEditorialMostrar()
        self.onLibroMostrar()
        self.onExistenciaMostrar()
        self.onAutorMostrar()
        self.onEmpleadoMostrar()
        self.onGeneroMostrar()
        self.onVentaMostrar()
        self.onSucursalMostrar()

    # Nuevo
    @Slot()
    def onEditorialNuevo(self):
        editorial = EditorialWindow()
        editorial.exec_()
        self.onEditorialMostrar()

    @Slot()
    def onLibroNuevo(self):
        libro = LibroWindow()
        libro.exec_()
        self.onLibroMostrar()

    @Slot()
    def onSucursalNuevo(self):
        sucursal = SucursalWindow()
        sucursal.exec_()
        self.onSucursalMostrar()

    @Slot()
    def onSupervisorNuevo(self):
        supervisor = SupervisorWindow()
        supervisor.exec_()
        self.onSupervisorMostrar()

    @Slot()
    def onEmpleadoNuevo(self):
        empleado = EmpleadoWindow()
        empleado.exec_()
        self.onEmpleadoMostrar()

    @Slot()
    def onVentaNuevo(self):
        venta = VentaWindow()
        venta.exec_()
        self.onVentaMostrar()

    @Slot()
    def onExistenciaNuevo(self):
        venta = ExistenciaWindow()
        venta.exec_()
        self.onExistenciaMostrar()

    @Slot()
    def onGeneroGuardar(self):
        tipo = self.ui.edit_genero_nuevo.text()
        cat = Genero(tipo)
        cat.save()
        self.ui.edit_genero_nuevo.clear()
        self.onGeneroMostrar()

    @Slot()
    def onAutorGuardar(self):
        nombre = self.ui.edit_autor_guardar.text()
        autor = Autor(nombre)
        autor.save()
        self.ui.edit_autor_guardar.clear()
        self.onAutorMostrar()

    # mostrar
    @Slot()
    def onEditorialMostrar(self):
        self.editoriales = self.editorial.getAll()
        self.setEditoriales()

    def setEditoriales(self):
        headers = ['Nombre', 'Pais']
        self.ui.table_editorial.setRowCount(len(self.editoriales))
        self.ui.table_editorial.setColumnCount(len(headers))
        self.ui.table_editorial.setHorizontalHeaderLabels(headers)
        for row, editorial in enumerate(self.editoriales):
            self.ui.table_editorial.setItem(
                row, 0, QTableWidgetItem(editorial['nombre']))
            self.ui.table_editorial.setItem(
                row, 1, QTableWidgetItem(editorial['paisorigen']))

    @Slot()
    def onGeneroMostrar(self):
        allGenero = self.genero.getAll()
        self.generos = allGenero
        self.setGeneros()

    def setGeneros(self):
        headers = ['Tipo']
        self.ui.table_genero.setRowCount(len(self.generos))
        self.ui.table_genero.setColumnCount(len(headers))
        self.ui.table_genero.setHorizontalHeaderLabels(headers)
        for row, categoria in enumerate(self.generos):
            self.ui.table_genero.setItem(row, 0,
                                         QTableWidgetItem(categoria['tipo']))

    @Slot()
    def onAutorMostrar(self):
        all = self.autor.getAll()
        self.autores = all
        self.setAutores()

    def setAutores(self):
        headers = ['Nombre']
        self.ui.table_autor.setRowCount(len(self.autores))
        self.ui.table_autor.setColumnCount(len(headers))
        self.ui.table_autor.setHorizontalHeaderLabels(headers)
        for row, categoria in enumerate(self.autores):
            self.ui.table_autor.setItem(row, 0,
                                        QTableWidgetItem(categoria['nombre']))

    @Slot()
    def onLibroMostrar(self):
        self.libros = self.libro.getAll()
        self.setLibros()

    def setLibros(self):
        headers = [
            'Codigo', 'Titulo', 'Precio', 'ISBN', 'Idioma', 'Encuadernacion',
            'Publicación', 'Editorial', 'Autor', 'Genero'
        ]
        self.ui.table_libro.setRowCount(len(self.libros))
        self.ui.table_libro.setColumnCount(len(headers))
        self.ui.table_libro.setHorizontalHeaderLabels(headers)
        for row, libro in enumerate(self.libros):
            self.ui.table_libro.setItem(row, 0,
                                        QTableWidgetItem(str(libro['codigo'])))
            self.ui.table_libro.setItem(row, 1,
                                        QTableWidgetItem(libro['titulo']))
            self.ui.table_libro.setItem(row, 2,
                                        QTableWidgetItem(str(libro['precio'])))
            self.ui.table_libro.setItem(row, 3,
                                        QTableWidgetItem(libro['isbn']))
            self.ui.table_libro.setItem(row, 4,
                                        QTableWidgetItem(libro['idioma']))
            self.ui.table_libro.setItem(
                row, 5, QTableWidgetItem(libro['encuadernacion']))
            self.ui.table_libro.setItem(
                row, 6, QTableWidgetItem(str(libro['publicacion'])))
            self.ui.table_libro.setItem(row, 7,
                                        QTableWidgetItem(libro['editorial']))
            self.ui.table_libro.setItem(row, 8,
                                        QTableWidgetItem(libro['autor']))
            self.ui.table_libro.setItem(row, 9,
                                        QTableWidgetItem(libro['genero']))

    @Slot()
    def onSucursalMostrar(self):
        all = self.sucursal.getAll()
        self.sucursales = all
        self.setSucursales()

    @Slot()
    def onSucursalInactiva(self):
        all = self.sucursal.getInactivos()
        self.sucursales = all
        self.setSucursales()

    def setSucursales(self):
        headers = ['Nombre', 'Direccion', 'Telefono']
        self.ui.table_sucursal.setRowCount(len(self.sucursales))
        self.ui.table_sucursal.setColumnCount(len(headers))
        self.ui.table_sucursal.setHorizontalHeaderLabels(headers)
        for row, sucursal in enumerate(self.sucursales):
            self.ui.table_sucursal.setItem(
                row, 0, QTableWidgetItem(sucursal['nombre']))
            self.ui.table_sucursal.setItem(
                row, 1, QTableWidgetItem(sucursal['direccion']))
            self.ui.table_sucursal.setItem(
                row, 2, QTableWidgetItem(str(sucursal['telefono'])))

    @Slot()
    def onSupervisorMostrar(self):
        all = self.supervisor.getAll()
        self.empleados = all
        self.setEmpleados()

    @Slot()
    def onEmpleadoMostrar(self):
        all = self.empleado.getAll()
        self.empleados = all
        self.setEmpleados()

    @Slot()
    def onEmpleadoInactivo(self):
        all = self.empleado.getInactivos()
        self.empleados = all
        self.setEmpleados()

    def setEmpleados(self):
        headers = [
            'Código', 'Nombre', 'Telefono', 'Tipo', 'Supervisor', 'Direccion',
            'Sucursal', 'Activo'
        ]
        self.ui.table_empleado.setRowCount(len(self.empleados))
        self.ui.table_empleado.setColumnCount(len(headers))
        self.ui.table_empleado.setHorizontalHeaderLabels(headers)
        for row, empleado in enumerate(self.empleados):
            self.ui.table_empleado.setItem(
                row, 0, QTableWidgetItem(str(empleado['codigo'])))
            self.ui.table_empleado.setItem(
                row, 1, QTableWidgetItem(empleado['nombre']))
            self.ui.table_empleado.setItem(
                row, 2, QTableWidgetItem(empleado['telefono']))
            self.ui.table_empleado.setItem(row, 3,
                                           QTableWidgetItem(empleado['tipo']))
            self.ui.table_empleado.setItem(
                row, 4, QTableWidgetItem(empleado['supervisor']))
            self.ui.table_empleado.setItem(
                row, 5, QTableWidgetItem(empleado['direccion']))
            self.ui.table_empleado.setItem(
                row, 6, QTableWidgetItem(empleado['sucursal']))
            self.ui.table_empleado.setItem(
                row, 7, QTableWidgetItem(str(empleado['activo'])))

    @Slot()
    def onVentaMostrar(self):
        all = self.venta.getAll()
        self.ventas = all
        self.setVentas()

    def setVentas(self):
        headers = ['Folio', 'Empleado', 'Fecha', 'Total']
        self.ui.table_venta.setRowCount(len(self.ventas))
        self.ui.table_venta.setColumnCount(len(headers))
        self.ui.table_venta.setHorizontalHeaderLabels(headers)
        for row, venta in enumerate(self.ventas):
            self.ui.table_venta.setItem(row, 0,
                                        QTableWidgetItem(str(venta['folio'])))
            self.ui.table_venta.setItem(row, 1,
                                        QTableWidgetItem(venta['empleado']))
            self.ui.table_venta.setItem(
                row, 2, QTableWidgetItem(venta['fecha'].strftime('%d/%m/%Y')))
            self.ui.table_venta.setItem(row, 3,
                                        QTableWidgetItem(str(venta['total'])))

    @Slot()
    def onExistenciaMostrar(self):
        all = self.existencia.getAll()
        self.existencias = all
        self.setExistencias()

    def setExistencias(self):
        headers = ['Libro', 'Sucursal', 'Existencia']
        self.ui.table_existencia.setRowCount(len(self.existencias))
        self.ui.table_existencia.setColumnCount(len(headers))
        self.ui.table_existencia.setHorizontalHeaderLabels(headers)
        for row, existencia in enumerate(self.existencias):
            self.ui.table_existencia.setItem(
                row, 0, QTableWidgetItem(existencia['libro']))
            self.ui.table_existencia.setItem(
                row, 1, QTableWidgetItem(existencia['sucursal']))
            self.ui.table_existencia.setItem(
                row, 2, QTableWidgetItem(str(existencia['existencia'])))

    # Edit functions
    @Slot()
    def onLibroEdit(self, item):
        window = LibroWindow(self.libros[item.row()])
        window.exec_()
        self.onLibroMostrar()

    @Slot()
    def onVentaEdit(self, item):
        window = VentaDetallesWindow(self.ventas[item.row()])
        window.exec_()

    @Slot()
    def onEditorialEdit(self, item):
        window = EditorialWindow(self.editoriales[item.row()])
        window.exec_()
        self.onEditorialMostrar()

    @Slot()
    def onExistenciaEdit(self, item):
        window = ExistenciaWindow(self.existencias[item.row()])
        window.exec_()
        self.onExistenciaMostrar()

    @Slot()
    def onAutorChange(self, item):
        autor = Autor(nombre=self.autores[item.row()]['nombre'],
                      codigo=self.autores[item.row()]['codigo'])
        if autor.nombre != item.text():
            autor.nombre = item.text()
            autor.update()
            self.onAutorMostrar()

    @Slot()
    def onEmpleadoEdit(self, item):
        window = EmpleadoWindow(self.empleados[item.row()])
        window.exec_()
        self.onEmpleadoMostrar()

    @Slot()
    def onSucursalEdit(self, item):
        window = SucursalWindow(self.sucursales[item.row()])
        window.exec_()
        self.onSucursalMostrar()

    @Slot()
    def onGeneroChange(self, item):
        genero = Genero(self.generos[item.row()]['tipo'])
        if genero.tipo != item.text():
            genero.tipo = item.text()
            genero.update()
            self.onGeneroMostrar()

    # eliminar
    @Slot()
    def onSucursalEliminar(self):
        for item in self.ui.table_sucursal.selectedIndexes():
            nombre = self.sucursales[item.row()]['nombre']
            Sucursal(nombre=nombre).delete()
        self.onSucursalMostrar()

    @Slot()
    def onLibroEliminar(self):
        for item in self.ui.table_libro.selectedIndexes():
            try:
                codigo = self.libros[item.row()]['codigo']
                Libro(codigo=codigo).delete()
            except ForeignKeyViolation:
                QMessageBox.warning(
                    self, "Atención",
                    f'El libro con codigo "{codigo}" no puede eliminarse')
        self.onAutorMostrar()

    @Slot()
    def onAutorEliminar(self):
        for item in self.ui.table_autor.selectedIndexes():
            try:
                nombre = self.autores[item.row()]['nombre']
                Autor(codigo=self.autores[item.row()]['codigo']).delete()
            except ForeignKeyViolation:
                QMessageBox.warning(
                    self, "Atención",
                    f'El autor "{nombre}" no puede eliminarse')
        self.onAutorMostrar()

    @Slot()
    def onGeneroEliminar(self):
        for item in self.ui.table_genero.selectedIndexes():
            try:
                tipo = self.generos[item.row()]['tipo']
                Genero(tipo=tipo).delete()
            except ForeignKeyViolation:
                QMessageBox.warning(self, "Atención",
                                    f'El genero "{tipo}" no puede eliminarse')
        self.onGeneroMostrar()

    @Slot()
    def onEditorialEliminar(self):
        for item in self.ui.table_editorial.selectedIndexes():
            try:
                nombre = self.editoriales[item.row()]['nombre']
                Editorial(nombre=nombre).delete()
            except ForeignKeyViolation:
                QMessageBox.warning(
                    self, "Atención",
                    f'La editorial "{nombre}" no puede eliminarse')
        self.onEditorialMostrar()

    @Slot()
    def onVentaEliminar(self):
        for item in self.ui.table_venta.selectedIndexes():
            compra = Compra()
            compra.folio = self.ventas[item.row()]['folio']
            compra.delete()
        self.onVentaMostrar()

    @Slot()
    def onEmpleadoEliminar(self):
        for item in self.ui.table_empleado.selectedIndexes():
            empleado = Empleado()
            empleado._key = self.empleados[item.row()]['codigo']
            try:
                empleado.delete()
                self.onEmpleadoMostrar()
            except ForeignKeyViolation:
                QMessageBox.warning(
                    self, "Atención",
                    f'El empleado "{empleado._key}" no puede eliminarse')
        self.onEmpleadoMostrar()

    # Buscar
    @Slot()
    def onVentaBuscar(self):
        self.ventas = self.venta.search(
            self.ui.date_venta_buscar.date().toPython())
        self.setVentas()

    @Slot()
    def onExistenciaBuscar(self):
        self.existencias = self.existencia.search(
            self.ui.edit_existencia_buscar.text())
        self.setExistencias()

    @Slot()
    def onGeneroBuscar(self):
        self.generos = self.genero.search(self.ui.edit_genero_buscar.text())
        self.setGeneros()

    @Slot()
    def onAutorBuscar(self):
        self.autores = self.autor.search(self.ui.edit_autor_buscar.text())
        self.setAutores()

    @Slot()
    def onEditorialBuscar(self):
        self.editoriales = self.editorial.search(
            self.ui.edit_editorial_buscar.text())
        self.setEditoriales()

    @Slot()
    def onLibroBuscar(self):
        self.libros = self.libro.search(self.ui.edit_libro_buscar.text())
        self.setLibros()

    @Slot()
    def onSucursalBuscar(self):
        self.sucursales = self.sucursal.search(
            self.ui.edit_sucursal_buscar.text())
        self.setSucursales()

    @Slot()
    def onEmpleadoBuscar(self):
        self.empleados = self.empleado.search(
            self.ui.edit_empleado_buscar.text())
        self.setEmpleados()

    #notify
    @Slot(str)
    def onNotify(self, data):
        QMessageBox.warning(self, "Atención", data)

    @Slot()
    def customExit(self):
        self.canExit = True
        self.close()

    def closeEvent(self, event):
        self.exit = True
        if self.canExit == True:
            self.thread.terminate()
            event.accept()
        else:
            event.ignore()
Пример #17
0
    def __init__(self):
        super(MainWindow, self).__init__()

        # modelos
        self.editorial = Editorial()
        self.genero = Genero()
        self.autor = Autor()
        self.libro = Libro()
        self.sucursal = Sucursal()
        self.supervisor = Supervisor()
        self.empleado = Empleado()
        self.venta = Compra()
        self.existencia = LibroSucursal()

        self.ui = Ui_MainWindow()
        self.ui.setupUi(self)

        self.exit = False
        self.showMessageBox.connect(self.onNotify)
        self.exitThread.connect(self.customExit)
        self.canExit = False

        self.worker = Worker(self, 'existencias')
        self.thread = QThread()
        self.worker.moveToThread(self.thread)
        self.thread.started.connect(self.worker._listener)
        self.thread.start()

        # connections
        self.ui.push_editorial_nuevo.clicked.connect(self.onEditorialNuevo)
        self.ui.push_editorial_mostrar.clicked.connect(self.onEditorialMostrar)
        self.ui.push_editorial_eliminar.clicked.connect(
            self.onEditorialEliminar)
        self.ui.push_editorial_buscar.clicked.connect(self.onEditorialBuscar)

        self.ui.push_genero_mostrar.clicked.connect(self.onGeneroMostrar)
        self.ui.push_genero_guardar.clicked.connect(self.onGeneroGuardar)
        self.ui.push_genero_eliminar.clicked.connect(self.onGeneroEliminar)
        self.ui.push_genero_buscar.clicked.connect(self.onGeneroBuscar)

        self.ui.push_autor_mostrar.clicked.connect(self.onAutorMostrar)
        self.ui.push_autor_guardar.clicked.connect(self.onAutorGuardar)
        self.ui.push_autor_eliminar.clicked.connect(self.onAutorEliminar)
        self.ui.push_autor_buscar.clicked.connect(self.onAutorBuscar)

        self.ui.push_libro_nuevo.clicked.connect(self.onLibroNuevo)
        self.ui.push_libro_mostrar.clicked.connect(self.onLibroMostrar)
        self.ui.push_libro_eliminar.clicked.connect(self.onLibroEliminar)
        self.ui.push_libro_buscar.clicked.connect(self.onLibroBuscar)

        self.ui.push_sucursal_nuevo.clicked.connect(self.onSucursalNuevo)
        self.ui.push_sucursal_mostrar.clicked.connect(self.onSucursalMostrar)
        self.ui.push_sucursal_eliminar.clicked.connect(self.onSucursalEliminar)
        self.ui.push_sucursal_buscar.clicked.connect(self.onSucursalBuscar)
        self.ui.push_sucursal_inactiva.clicked.connect(self.onSucursalInactiva)

        self.ui.push_empleado_nuevo.clicked.connect(self.onEmpleadoNuevo)
        self.ui.push_empleado_mostrar.clicked.connect(self.onEmpleadoMostrar)
        self.ui.push_empleado_eliminar.clicked.connect(self.onEmpleadoEliminar)
        self.ui.push_empleado_buscar.clicked.connect(self.onEmpleadoBuscar)
        self.ui.push_supervisor_mostrar.clicked.connect(
            self.onSupervisorMostrar)
        self.ui.push_empleado_inactivos.clicked.connect(
            self.onEmpleadoInactivo)

        self.ui.push_venta_nuevo.clicked.connect(self.onVentaNuevo)
        self.ui.push_venta_mostrar.clicked.connect(self.onVentaMostrar)
        self.ui.push_venta_eliminar.clicked.connect(self.onVentaEliminar)
        self.ui.push_venta_buscar.clicked.connect(self.onVentaBuscar)

        self.ui.push_existencia_nuevo.clicked.connect(self.onExistenciaNuevo)
        self.ui.push_existencia_mostrar.clicked.connect(
            self.onExistenciaMostrar)
        self.ui.push_existencia_buscar.clicked.connect(self.onExistenciaBuscar)

        # double clicks
        self.ui.table_libro.doubleClicked.connect(self.onLibroEdit)
        self.ui.table_editorial.doubleClicked.connect(self.onEditorialEdit)
        self.ui.table_existencia.doubleClicked.connect(self.onExistenciaEdit)
        self.ui.table_empleado.doubleClicked.connect(self.onEmpleadoEdit)
        self.ui.table_sucursal.doubleClicked.connect(self.onSucursalEdit)
        self.ui.table_venta.doubleClicked.connect(self.onVentaEdit)

        # no edit
        self.ui.table_editorial.setEditTriggers(
            QAbstractItemView.NoEditTriggers)
        self.ui.table_libro.setEditTriggers(QAbstractItemView.NoEditTriggers)
        self.ui.table_existencia.setEditTriggers(
            QAbstractItemView.NoEditTriggers)
        self.ui.table_empleado.setEditTriggers(
            QAbstractItemView.NoEditTriggers)
        self.ui.table_venta.setEditTriggers(QAbstractItemView.NoEditTriggers)
        self.ui.table_sucursal.setEditTriggers(
            QAbstractItemView.NoEditTriggers)

        # edit
        self.ui.table_autor.itemChanged.connect(self.onAutorChange)
        self.ui.table_genero.itemChanged.connect(self.onGeneroChange)

        self.onEditorialMostrar()
        self.onLibroMostrar()
        self.onExistenciaMostrar()
        self.onAutorMostrar()
        self.onEmpleadoMostrar()
        self.onGeneroMostrar()
        self.onVentaMostrar()
        self.onSucursalMostrar()
Пример #18
0
    def registroLibros(self):
        self.__log.info("Ingresando al Registro de Libros")
        opcionesRegistro = {
            "\t- Registrar Libros": 1,
            "\t- Listar Libros": 2,
            "\t- Registrar Lector": 3,
            "\t- Listar Lectores": 4
        }
        menuRegistro = Menu("Registro de Libros", opcionesRegistro)
        resmenuRegistro = menuRegistro.mostrarMenu()
        stopMenu = True
        while stopMenu:
            if resmenuRegistro == 1:
                self.__log.info("Entrando al registro de libros")
                print("Registrar Libros")
                nuevoLibro = Libro()
                nombreLibro = input("escriba el nombre del Libro \n")
                isbnLibro = input("escriba en ISBN del libro \n")

                autores = Autor()
                print(f"\t Codigo\t Nombre\t Tipo")
                for obj in autores.all():
                    print(f"\t {obj.id}\t {obj.nombre}\t {obj.tipo}")
                print("Escriba el id del Autor de la siguiente lista")
                autor_idLibro = input()
                estados = EstadoLibro()
                print(f"\t Codigo\t Estado")
                for obj in estados.all():
                    print(f"\t {obj.id}\t {obj.descripcion}")
                print(
                    "Escriba el id del Estado del Libro de la siguiente lista")
                estadoLibro = input()

                nuevoLibro.nombre = nombreLibro
                nuevoLibro.isbn = isbnLibro
                nuevoLibro.autor_id = autor_idLibro
                nuevoLibro.estado_libro_id = estadoLibro
                nuevoLibro.save()
                stopMenu = False
            if resmenuRegistro == 2:
                self.__log.info("Entrando a listar libros")
                print("Listar libros")
                libros = Libro()
                print(f"\t Codigo\t Nombre\t ISBN")
                for obj in libros.all():
                    print(f"\t {obj.id}\t {obj.nombre}\t {obj.isbn}")

                stopMenu = False

            if resmenuRegistro == 3:
                self.__log.info("Entrando al registro de lectores")
                print("Registrar Lectores")
                nuevoUser = User()
                nombreUser = input("escriba el nombre del nuevo Usuario \n")
                correoUser = input("escriba el correo \n")

                tipodocumento = TipoDocumento()
                print(f"\t id\t Descripcion")
                for obj in tipodocumento.all():
                    print(f"\t {obj.id}\t {obj.descripcion}")
                print(
                    "Escriba el id del tipo de documento de la anterior lista")
                documento_idTipodocumento = input()
                documentoUser = input("escriba el numero del documento \n")

                estadoUser = EstadoUser()
                print(f"\t id\t descripcion")
                for obj in estadoUser.all():
                    print(f"\t {obj.id}\t {obj.descripcion}")
                print(
                    "Escriba el id del Estado del Usuario de la anterior lista"
                )
                estado_User = input()

                nuevoUser.nombre = nombreUser
                nuevoUser.correo = correoUser
                nuevoUser.tipo_documento_id = documento_idTipodocumento
                nuevoUser.documento = documentoUser
                nuevoUser.estado_user_id = estado_User

                nuevoUser.save()
                stopMenu = False

            if resmenuRegistro == 4:
                self.__log.info("Entrando a listar lector")
                print("Listar lectores")
                Usuarios = User()
                print(f"\t Codigo\t Nombre\t correo")
                for obj in Usuarios.all():
                    print(f"\t {obj.id}\t {obj.nombre}\t {obj.correo}")

                stopMenu = False

            elif resmenuRegistro == 9:
                self._log.info("Saliendo")
Пример #19
0
    def registroLibros(self):
        self.__log.info("Ingresando al Módulo de Registro")
        opcionesRegistroLibros = {
            "\t- Registrar Libros": 1,
            "\t- Listar Libros": 2,
            "\t- Registrar Usuarios": 3,
            "\t- Listar Usuarios": 4,
            "\t- Registrar Biblioteca": 5,
            "\t- Listar Biblioteca": 6
        }
        menuRegistroLibros = Menu("Módulo de Registro", opcionesRegistroLibros)
        resmenuRegistroLibros = menuRegistroLibros.mostrarMenu()
        stopMenu = True
        while stopMenu:
            if resmenuRegistroLibros == 1:
                self.__log.info("Entrando al Registro de Libros")
                nuevoLibro = Libro()
                nombreLibro = input("Escriba el nombre del libro: \n")
                isbnLibro = input("Escriba el ISBN del libro: \n")

                autores = Autor()
                print(f"\t Codigo\t Nombre\t Tipo")
                for obj in autores.all():
                    print(f"\t {obj.id}\t {obj.nombre}\t {obj.tipo}")
                print("Escriba el id del Autor de la siguiente lista:")
                autor_idLibro = input()
                estados = EstadoLibro()
                print(f"\t Codigo\t Estado")
                for obj in estados.all():
                    print(f"\t {obj.id}\t {obj.descripcion}")
                print(
                    "Escriba el id del Estado del Libro de la siguiente lista:"
                )
                estadoLibro = input()

                nuevoLibro.nombre = nombreLibro
                nuevoLibro.isbn = isbnLibro
                nuevoLibro.autor_id = autor_idLibro
                nuevoLibro.estado_libro_id = estadoLibro

                nuevoLibro.save()
                print("Registro Completo")
                stopMenu = False

            elif resmenuRegistroLibros == 2:
                self.__log.info("Entrando a la Lista de libros")
                libros = Libro()
                print("\t " + str("Codigo").ljust(10) + "\t\t\t " +
                      str("Libro").ljust(10) + "\t\t\t " +
                      str("ISBN").ljust(10) + "\t\t\t " +
                      str("Autor").ljust(10))
                contador = 0
                for obj in libros.all():
                    contador += 1
                    print("\t" + str(obj.id).ljust(10) + "\t\t\t " +
                          str(obj.nombre).ljust(10) + "\t\t\t " +
                          str(obj.isbn).ljust(10) + "\t\t\t " +
                          str(obj.autor_id).ljust(10))
                if contador > 0:
                    print("Lista completa")
                else:
                    print("No hay registros")
                stopMenu = False

            elif resmenuRegistroLibros == 3:
                self.__log.info("Entrando al Registro de Usuario")
                nuevo = User()
                nombre = input("Nombre Completo: ")
                correo = input("Correo: ")
                tipoDoc = TipoDocumento()
                print(f"\t Codigo\t TipoDocumento")
                for obj in tipoDoc.all():
                    print(f"\t {obj.id}\t {obj.descripcion}")
                tipoDoc_Id = input("Ingrese el Tipo de Documento: ")
                tipoDoc_Desc = input("Ingrese el número: ")
                estados = EstadoUser()
                print(f"\t Codigo\t Estado")
                for obj in estados.all():
                    print(f"\t {obj.id}\t {obj.descripcion}")
                estado_Id = input("Estado: ")
                nuevo.nombre = nombre
                nuevo.correo = correo
                nuevo.tipo_documento_id = tipoDoc_Id
                nuevo.documento = tipoDoc_Desc
                nuevo.estado_user_id = estado_Id
                nuevo.save()
                print("Registro completo")
                stopMenu = False

            elif resmenuRegistroLibros == 4:
                self.__log.info("Entrando a la Lista de Usuarios")
                Usuario = User()
                print("\t " + str("Codigo").ljust(10) + "\t\t\t " +
                      str("Usuario").ljust(10) + "\t\t\t " +
                      str("Correo").ljust(10))
                contador = 0
                for obj in Usuario.all():
                    contador += 1
                    print("\t" + str(obj.id).ljust(10) + "\t\t\t " +
                          str(obj.nombre).ljust(10) + "\t\t\t " +
                          str(obj.correo).ljust(10))
                if contador > 0:
                    print("Lista Completa")
                else:
                    print("No hay nadie registrado")
                stopMenu = False

            elif resmenuRegistroLibros == 5:
                self.__log.info("Entrando al Registro de Bibliotecas")
                nuevo = Biblioteca()
                nombre = input("Escriba el nombre: ")
                direccion = input("Escriba la direccion: ")

                nuevo.nombre = nombre
                nuevo.direccion = direccion
                nuevo.save()
                print("Registro Completo")
                stopMenu = False

            elif resmenuRegistroLibros == 6:
                self.__log.info("Entrando a la Lista de Bibliotecas")
                BibliotecaN = Biblioteca()
                print("\t " + str("Codigo").ljust(10) + "\t\t\t " +
                      str("Biblioteca").ljust(10) + "\t\t\t " +
                      str("Direccion").ljust(10))
                contador = 0
                for obj in BibliotecaN.all():
                    contador += 1
                    print("\t" + str(obj.id).ljust(10) + "\t\t\t " +
                          str(obj.nombre).ljust(10) + "\t\t\t " +
                          str(obj.direccion).ljust(10))
                if contador > 0:
                    print("Lista Completa")
                else:
                    print("No hay registros")
                stopMenu = False

            elif resmenuRegistroLibros == 9:
                self._log.info("Saliendo")