예제 #1
0
    def post(self):
        titulo = self.request.get("edTitulo", "")
        autor = self.request.get("edAutor", "")
        str_fecha_pub = self.request.get("edFechaPub", "")

        try:
            fecha_pub = datetime.datetime.strptime(str_fecha_pub, "%Y-%m-%d")

        except ValueError:
            fecha_pub = -1

        if self.request.GET.keys():
            usuario = Usuario.recuperar(self.request, "id")
        else:
            self.redirect('/')

        if fecha_pub == -1 or not titulo or not autor:
            return self.redirect('/')
        else:
            libro = Libro(titulo=titulo,
                          autor=autor,
                          fecha_pub=fecha_pub,
                          creador=usuario.key)
            libro.put()
            time.sleep(1)
            return self.redirect('/?id={}'.format(usuario.key.urlsafe()))
예제 #2
0
 def capitulo(self, capitulo_id):
     capitulo = Capitulo.id(capitulo_id)
     libro_id = capitulo["libro_id"]
     if "perfil_id" in session:
         perfil_id = session["perfil_id"]
         print("perfil: ", perfil_id, "leyendo: ", capitulo_id)
         Libro.update_leyendo(libro_id, capitulo_id, perfil_id)
     else:
         print("no hay perfil en session")
     return send_file(capitulo["ruta"][3:])
예제 #3
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()
예제 #4
0
    def get(self):
        jinja = jinja2.get_jinja2(app=self.app)

        valores_plantilla = {}

        if self.request.GET.keys():
            usuario = Usuario.recuperar(self.request, "id_usuario")
            libro = Libro.recuperar(self.request, "id_libro")

            like = Like(libro=libro.key, usuario=usuario.key)
            tiene_likes = Like.query(Like.libro == libro.key,
                                     Like.usuario == usuario.key)

            if libro.creador == usuario.key:
                print("NO PUEDES DAR LIKE A TU LIBRO")
            else:
                if tiene_likes.count() == 0:
                    print("LE DISTE LIKE")
                    like.put()
                else:
                    print("YA TIENE TU LIKE")

            return self.redirect('/?id={}'.format(usuario.key.urlsafe()),
                                 body={"mira": "pepe"})
        else:
            self.redirect('/')
예제 #5
0
    def get(self):
        jinja = jinja2.get_jinja2(app=self.app)

        if self.request.GET.keys():
            usuario = Usuario.recuperar(self.request, "id")
            libros = Libro.query(Libro.creador == usuario.key)
            valores_plantilla = {'mis_libros': libros}
        else:
            self.response.write(jinja.render_template("/",
                                                      **valores_plantilla))

        libro = Libro.recuperar(self.request)
        libro.key.delete()
        time.sleep(1)

        return self.redirect('/')
예제 #6
0
 def upload(self, libro_id):
     libro = Libro.id(libro_id)
     pdate = datetime.strptime(request.form["fechaPublicacion"], "%Y-%m-%d")
     errores = []
     if pdate.date() < libro["fecha_publicacion"]:
         errores.append(
             "La fecha de publicación no puede ser anterior a la del libro ",
             libro["fecha_publicacion"])
     if "fechaVencimiento" in request.form and request.form[
             "fechaVencimiento"]:
         vdate = datetime.strptime(request.form["fechaVencimiento"],
                                   "%Y-%m-%d")
         if libro["fecha_vencimiento"][0] != '0':
             lvdate = datetime.strptime(libro["fecha_vencimiento"],
                                        "%Y-%m-%d")
         else:
             lvdate = None
         if lvdate and vdate.date() > lvdate.date():
             errores.append(
                 "Fecha de vencimiento ingresada es mayor que la fecha de vencimiento del libro"
             )
         elif vdate.date() < pdate.date():
             errores.append(
                 "Fecha de vencimiento ingresada es menor que la fecha de publicación"
             )
     else:
         vdate = None
     if (len(errores) == 0):
         pdfpath = self.gen_path('archivo')
         Capitulo.crear(libro_id, pdate, pdfpath)
     return errores  #redirect (url_for("libro", libro_id=libro_id))
예제 #7
0
 def index(self):
     libros = Libro.all()
     data = []
     for libro in libros:
         autor = Author.id(libro["autor"])
         genero = Genero.encontrar_por_id(libro["genero"])
         data.append({"libro": libro, "autor": autor, "genero": genero})
     return render_template('libros/index.html', libros=data)
예제 #8
0
    def get(self):
        jinja = jinja2.get_jinja2(app=self.app)
        
        libro = Libro.recuperar(self.request, "id")
        libro.key.delete()
        time.sleep(1)

        return self.redirect('/')
예제 #9
0
def delete():
    libros = Libro.query()
    for l in libros:
        l.key.delete()

    usuarios = Usuario.query()
    for u in usuarios:
        u.key.delete()
예제 #10
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()
예제 #11
0
 def onSave(self):
     codigo = self.ui.spin_codigo.value()
     titulo = self.ui.edit_titulo.text()
     isbn = self.ui.edit_isbn.text()
     precio = self.ui.spin_precio.value()
     idioma = self.ui.edit_idioma.text()
     fecha = self.ui.date_publicacion.text()
     editorial = self.ui.combo_editorial.currentText()
     autor = self.autores[self.ui.combo_autor.currentIndex()]['codigo']
     genero = self.ui.combo_genero.currentText()
     encuadernacion = self.ui.edit_encuadernacion.text()
     libro = Libro(
         codigo=codigo,
         titulo=titulo,
         isbn=isbn,
         precio=precio,
         idioma=idioma,
         publicacion=fecha,
         editorial=editorial,
         autor=autor,
         encuadernacion=encuadernacion,
         genero=genero,
     )
     if self.libro is None:
         libro.save()
     else:
         libro._key = self.libro['codigo']
         libro.update()
     self.done(0)
예제 #12
0
 def new_book(self):
     isbn = request.form.get('isbn', '')
     pdate = datetime.strptime(request.form["fechaPublicacion"], "%Y-%m-%d")
     if "fechaVencimiento" in request.form and request.form[
             "fechaVencimiento"]:
         vdate = datetime.strptime(request.form["fechaVencimiento"],
                                   "%Y-%m-%d")
     else:
         vdate = None
     errores = []
     if Libro.existe_isbn(isbn):
         errores.append("ISBN Repetido")
     if vdate and vdate <= pdate:
         errores.append("Fecha de vencimiento incorrecta")
     if (len(errores) != 0):
         return self.new(errores, request.form)
     imgpath = self.gen_path('portada')
     Libro.crear(request.form, imgpath)
     return redirect(url_for("libro_index"))
예제 #13
0
 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()
예제 #14
0
 def edit_book(self, libro_id):
     libro = Libro.id(libro_id)
     isbn = request.form.get('isbn', '')
     pdate = datetime.strptime(request.form["fechaPublicacion"], "%Y-%m-%d")
     if "fechaVencimiento" in request.form and request.form[
             "fechaVencimiento"]:
         vdate = datetime.strptime(request.form["fechaVencimiento"],
                                   "%Y-%m-%d")
     else:
         vdate = None
     errores = []
     if isbn != libro["isbn"] and Libro.existe_isbn(isbn):
         errores.append("ISBN Repetido")
     if vdate and vdate <= pdate:
         errores.append("Fecha de vencimiento incorrecta")
     if (len(errores) != 0):
         return self.edit(libro_id, errores)
     imgpath = self.check_path(libro, 'portada', 'ruta_img')
     Libro.edit(request.form, imgpath, libro_id)
     return redirect(url_for("libro_index"))
예제 #15
0
 def edit(self, libro_id, errores=[]):
     libro = Libro.id(libro_id)
     editoriales = Editorial.all()
     generos = Genero.all()
     autores = Author.all_active()
     return render_template('libros/editar.html',
                            libro=libro,
                            editoriales=editoriales,
                            generos=generos,
                            autores=autores,
                            errores=errores)
예제 #16
0
    def get(self):
        jinja = jinja2.get_jinja2(app=self.app)
        libros = Libro.query()
        likes = Like.query()
        usuarios = Usuario.query()

        valores_plantilla = {
            'usuarios': usuarios,
            'libros': libros,
            'likes': {libro.key: Like.numero_likes_libro(libro) for libro in libros},
            'likes_usuarios': {libro.key: Like.usuarios_likes_libro(libro) for libro in libros}
        }
        
        Like.usuarios_likes_libro(Libro.query(Libro.titulo=="Titulo1").get())

        # Todos los usuarios que le dieron like al libro.
        if self.request.GET.keys():
            valores_plantilla['usuario'] = Usuario.recuperar(self.request, "id")
            valores_plantilla['mis_libros'] = Libro.query(Libro.creador == valores_plantilla['usuario'].key)

        self.response.write(jinja.render_template("index.html", **valores_plantilla))
예제 #17
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()
예제 #18
0
def eliminarLibro():
    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}"
        )
    idToUpdate = int(input("Ingrese el id del libro a editar: "))
    libro = libro.find(idToUpdate)
    libro.delete()
예제 #19
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 = 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 resmenuRegistroLibros == 9:
                self._log.info("Saliendo")
예제 #20
0
    def libro(self, libro_id):
        try:
            int(libro_id)
        except:
            abort(404)
        libro = Libro.id(libro_id)
        autor = Author.id(libro["autor"])
        genero = Genero.encontrar_por_id(libro["genero"])
        editorial = Editorial.id(libro["editorial"])
        reseñas = Reseña.reseñas_de_un_libro_con_id(libro_id)
        capitulos = Capitulo.libro(libro_id)
        perfil_tiene_reseña = False
        perfil_leyo_el_libro = False

        cantidad = Libro.obtenerCantidadDeReseñasDeUnLibro(
            libro_id)[0]['cantidad']
        total = Libro.obtenerCalificacionTotalDeUnLibro(libro_id)[0]['total']
        promedio = 0
        if (cantidad != 0):
            promedio = round((total / cantidad), 2)

        if "perfil_id" in session and not session["admin"]:
            perfil_id = session["perfil_id"]
            leido = Libro.leido(libro_id, perfil_id)
            leyendo = Libro.leyendo(libro_id, perfil_id)
            favorito = Libro.favorito(libro_id, perfil_id)
            if Libro.el_perfil_dio_una_reseña_al_libro(session['perfil_id'],
                                                       libro_id):
                perfil_tiene_reseña = True
            if Libro.el_perfil_leyo_el_libro(session['perfil_id'], libro_id):
                perfil_leyo_el_libro = True
        else:
            leido = None
            favorito = None
            leyendo = None
        return render_template('libros/show.html',
                               libro=libro,
                               autor=autor,
                               genero=genero,
                               editorial=editorial,
                               capitulos=capitulos,
                               leido=leido,
                               favorito=favorito,
                               leyendo=leyendo,
                               reseñas=reseñas,
                               perfil_tiene_reseña=perfil_tiene_reseña,
                               perfil_leyo_el_libro=perfil_leyo_el_libro,
                               promedio=promedio)
예제 #21
0
    def Devolver(self):
        self.__log.info("Devolver un libro")

        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")
        idlibro = input()

        DatabaseManager.table('libro').where('nombre', f'{obj.nombre}').update({'obj.estado_libro_id': 1})
        libro.libros_id = idlibro
        libro.save()

        objMenus = init.Inicio()
        objMenus.MenuInicioMenu()
예제 #22
0
    def index(self, perfil_id=None):
        if perfil_id != None:
            try:
                int(perfil_id)
                session["perfil_id"] = perfil_id
            except:
                pass
        libros = Libro.all()
        editoriales = Editorial.all()
        generos = Genero.all()
        autores = Author.all()
        cant = 0
        mostrar = []
        for libro in libros:
            if cant < 6:
                mostrar.append(libro)
            cant = cant + 1

        return render_template('index.html',
                               libros=mostrar,
                               editoriales=editoriales,
                               generos=generos,
                               autores=autores)
예제 #23
0
    def __init__(self, existencia = None):
        super(ExistenciaWindow, self).__init__()
        self.ui = Ui_Dialog()
        self.ui.setupUi(self)
        self.existencia = existencia

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

        self.sucursales = Sucursal().getAll()
        self.libros = Libro().getAll()

        for sucursal in self.sucursales:
            self.ui.combo_sucursal.addItem(sucursal['nombre'])

        for libro in self.libros:
            self.ui.combo_libro.addItem(libro['titulo'], libro['codigo'])

        if existencia is not None:
            index = self.ui.combo_sucursal.findText(self.existencia['sucursal'])
            self.ui.combo_sucursal.setCurrentIndex(index)
            index = self.ui.combo_libro.findData(self.existencia['libro_id'])
            self.ui.combo_libro.setCurrentIndex(index)
            self.ui.spin_cantidad.setValue(existencia['existencia'])
예제 #24
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")
예제 #25
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")
예제 #26
0
 def new_completo_capitulo(self, libro_id):
     libro = Libro.id(libro_id)
     pdfpath = self.gen_path('archivo')
     Capitulo.crear(libro_id, libro["fecha_publicacion"], pdfpath)
     Libro.completo(libro_id)
     return redirect(url_for("libro", libro_id=libro_id))
예제 #27
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
예제 #28
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
예제 #29
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
예제 #30
0
def create():
    fecha_pub = datetime.datetime.strptime("2012-10-3", "%Y-%m-%d")
    for i in range(3):
        usuario = Usuario(nombre="Nuevo{}".format(i), email="nuevo{}@nuevo.com".format(i))
        usuario.put()
    time.sleep(2)
    usuario0 = Usuario.query(Usuario.nombre=="Nuevo0").get()
    usuario1 = Usuario.query(Usuario.nombre=="Nuevo1").get()
    usuario2 = Usuario.query(Usuario.nombre=="Nuevo2").get()

    for i in range(3):
        libro = Libro(titulo="Titulo{}".format(i), autor="Autor{}".format(i),
            fecha_pub=fecha_pub, creador=usuario0.key)
        libro.put()
    for i in range(3):
        libro = Libro(titulo="Titulo{}".format(i+3), autor="Autor{}".format(i+3),
            fecha_pub=fecha_pub, creador=usuario1.key)
        libro.put()
    for i in range(3):
        libro = Libro(titulo="Titulo{}".format(i+6), autor="Autor{}".format(i+6),
            fecha_pub=fecha_pub, creador=usuario2.key)
        libro.put()