Pular para o conteúdo principal

Paginação

Os métodos list retornam um Nfe::ListResponse. Ele inclui Enumerable, então você itera diretamente sobre os itens hidratados — sem precisar acessar #data — e lê os metadados de paginação em #page.

Nfe::ListResponse

Tem dois membros:

  • #data — o Array de DTOs hidratados.
  • #page — um Nfe::ListPage com os metadados de paginação.

Como inclui Enumerable (delegando each a #data), você usa map, select, each_with_index e os demais métodos diretamente:

list = client.service_invoices.list(company_id: "55df4dc6b6cd9007e4f13ee8")

list.each do |invoice|
puts invoice.id
end

ids = list.map(&:id) # Enumerable direto, sem list.data
total = list.count

Nfe::ListPage

Os endpoints da NFE.io paginam em uma de duas formas, e cada recurso preenche apenas a metade relevante:

  • Por página#page_index / #page_count (campos de cursor ficam nil).
  • Por cursor#starting_after / #ending_before (#page_index fica nil).

#total é opcional e pode aparecer em qualquer uma das formas.

page = list.page

if page.page_index
puts "Página #{page.page_index} de #{page.page_count}"
else
puts "Próximo cursor: #{page.starting_after}"
end

page.total # pode ser nil

Qual recurso usa qual forma

RecursoForma de paginação
service_invoices.listpor página (page_index/page_count)
product_invoices.listpor cursor (starting_after/ending_before)
product_invoices_rtc.listpor cursor
consumer_invoices.listpor cursor
state_taxes.listpor cursor

Por página: service_invoices

list = client.service_invoices.list(
company_id: "55df4dc6b6cd9007e4f13ee8",
page_index: 1,
page_count: 50
)

list.each { |inv| puts inv.id }

Por cursor: product_invoices

environment: é obrigatório

product_invoices.list e product_invoices_rtc.list exigem o argumento environment: — uma String "Production" ou "Test". Omiti-lo levanta Nfe::InvalidRequestError.

list = client.product_invoices.list(
company_id: "55df4dc6b6cd9007e4f13ee8",
environment: "Production",
limit: 50
)

# Avance usando o cursor da página anterior:
next_page = client.product_invoices.list(
company_id: "55df4dc6b6cd9007e4f13ee8",
environment: "Production",
starting_after: list.page.starting_after,
limit: 50
)

Próximos passos

NFE.io

A NFE.io é uma empresa de tecnologia que fornece soluções para automatizar e simplificar a emissão e gestão de notas fiscais eletrônicas. Com suas ferramentas, as empresas podem economizar tempo e reduzir erros, aumentando a eficiência e precisão do processo de emissão de notas fiscais.

Um dos principais cases de sucesso da NFE.io é a implementação da solução na empresa de transporte Rodonaves. Com a automatização da emissão e gestão de notas fiscais eletrônicas, a Rodonaves conseguiu reduzir em até 80% o tempo gasto nesse processo, o que se traduziu em uma significativa melhoria na eficiência operacional. Além disso, a empresa também conseguiu eliminar erros e atrasos na emissão de notas fiscais, o que melhorou a relação com seus clientes e aumentou a confiança dos órgãos fiscais.

Outro exemplo é a implementação da NFE.io na empresa de comércio eletrônico, a Loja Integrada. Com a automatização da emissão de notas fiscais, a Loja Integrada conseguiu aumentar a velocidade de emissão de notas em até 10 vezes, o que permitiu que a empresa atendesse a uma maior quantidade de clientes e, consequentemente, aumentar as suas vendas.

Além desses exemplos, a NFE.io também tem outros cases de sucesso com empresas de setores como indústria, construção, varejo e serviços, mostrando a versatilidade e eficácia da sua solução.

Em resumo, a NFE.io é uma empresa de tecnologia que oferece soluções para automatizar e simplificar a emissão e gestão de notas fiscais eletrônicas, ajudando as empresas a economizar tempo e reduzir erros, melhorando a eficiência e precisão do processo. Com cases de sucesso em diferentes setores, a NFE.io tem se destacado como uma empresa líder em automação fiscal.