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")
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