def put(self, id_nota):
     try:
         body = request.json
         nota = select_objeto(nf_db, id_nota)
         cliente = select_objeto(clientes_db, body['cliente'])
         nota.set_codigo(body['codigo'])
         nota.setCliente(cliente)
         nota_json = objeto_json(nota)
         return response(200, 'nota', nota_json, 'Nota atualizada')
     except Exception as e:
         print(e)
         return response(400, 'nota', {}, 'Nota não atualizada')
 def post(self):
     body = request.json
     produto = select_objeto(products_db, body['produto'])
     item = ItemNotaFiscal(itens_db[-1].get_id() + 1, body['sequencial'], body['quantidade'], produto)
     itens_db.append(item)
     item_json = objeto_json(item)
     return response, 200, item_json, 'Item criado'
 def post(self):
     body = request.json
     cliente = select_objeto(clientes_db, body['cliente'])
     nota = NotaFiscal(nf_db[-1].get_id(), body['codigo'], cliente)
     nf_db.append(nota)
     nota_json = objeto_json(nota)
     return response(201, 'nota', nota_json, 'Nota criada')
 def get(self, id_nota):
     try:
         nota = select_objeto(nf_db, id_nota)
         nota_json = objeto_json(nota)
         return response, 200, nota_json, 'Nota selecionada'
     except Exception as a:
         print(a)
         return response, 400, {}, 'ID inválido'
 def put(self, id_produto):
     body = request.json
     produto = select_objeto(products_db, id_produto)
     produto.set_codigo(body['codigo'])
     produto.set_descricao(body['descricao'])
     produto.set_valor_unitario(body['valor-unitario'])
     produto_json = objeto_json(produto)
     return response, 200, produto_json, 'Produto atualizado'
 def get(self, id_produto):
     try:
         produto = select_objeto(products_db, id_produto)
         produto_json = objeto_json(produto)
         return response(200, 'produto', produto_json, 'Produto selecionado')
     except Exception as e:
         print(e)
         return response(400, 'produto', {}, 'ID inválido')
    def delete(self, id_cliente):
        try:
            cliente = select_objeto(clientes_db, id_cliente)
            clientes_db.remove(cliente)

            return response, 200, 'Cliente deletado'
        except Exception as e:
            print(e)
            return response, 400, {}, 'Cliente não deletado'
    def put(self, id_item):
        body = request.json
        item = select_objeto(itens_db, id_item)

        item.set_sequencial(body['sequencial'])
        item.set_quantidade(body['quantidade'])

        item_json = objeto_json(item)
        return response, 200, item_json, 'Item atualizado'
    def get(self, id_item):
        try:
            item = select_objeto(itens_db, id_item)
            item_json = objeto_json(item)

            return response, 200, item_json, 'Itens da nota'
        except Exception as a:
            print(a)
            return response, 400, {}, 'ID inválido'
    def get(self, id_nota):
        try:
            itens_nf = select_objeto(nf_db, id_nota).get_itens()
            itens_json = objeto_json(itens_nf)

            return response, 200, itens_json, 'Todos os itens da nota'
        except Exception as a:
            print(a)
            return response, 400, 'itens', {}, 'ID inválido'
    def get(self, id_cliente):
        try:
            client = select_objeto(clientes_db, id_cliente)
            cliente_json = objeto_json(client)

            return response, 200, cliente_json
        except Exception as e:
            print(e)
            return response, 400, {}, 'ID inválido'
    def get(self, id_nota):
        try:
            nota = select_objeto(nf_db, id_nota)
            nota.calcularNotaFiscal()

            nota_json = objeto_json(nota)
            return response, 200, nota_json
        except Exception as a:
            print(a)
            return response, 400, {}, 'Nota não calculada'
    def put(self, id_cliente):
        try:
            body = request.json
            cliente = select_objeto(clientes_db, id_cliente)

            cliente.set_nome(body['nome'])
            cliente.set_codigo(body['codigo'])
            cliente.set_cnpjcpf(body['cpf'])

            cliente_json = objeto_json(cliente)
            return response, 200, cliente_json
        except Exception as a:
            print(a)
            return response, 400, {}, 'Cliente não atualizado'
    def delete(self, id_produto):
        produto = select_objeto(products_db, id_produto)
        products_db.remove(produto)

        produto_json = objeto_json(produto)
        return response(200, 'produto', produto_json, 'Produto deletado')
    def delete(self, id_item):
        item = select_objeto(itens_db, id_item)
        itens_db.remove(item)

        item_json = objeto_json(item)
        return response, 200, item_json, 'Item deletado'
 def delete(self, id_nota):
     nota = select_objeto(nf_db, id_nota)
     nf_db.remove(nota)
     nota_json = objeto_json(nota)
     return response, 200, nota_json, 'Nota deletada'
 def get(self, id_nota):
     nota = select_objeto(nf_db, id_nota)
     impressao = nota.imprimirNotaFiscal()
     return response, 200, impressao, 'Nota impressa'