FJFrigo · Lançamentos › 237

Central de NF-e

Consulta todo documento eletrônico do período, de todas as origens, com as ações de NF-e e a exportação dos XML e da planilha. Não grava lançamento. Cada regra traz a mensagem exata e quando dispara.

Tabela: faturamento_nfe Origens: venda, compra, almoxarifado, transporte… Programa antigo: menu237.prg

Bloqueia

Não grava. statuscode 400 com a frase abaixo, que a tela mostra como está.

Aviso

Passa, mas com um comportamento que surpreende quem está conferindo — ou é conferido só na tela.

Português ou espanhol

O servidor devolve a frase do sistema antigo, e várias eram em espanhol lá. Não é tradução faltando.

A

Ao listar

Filtros da grade
Bloqueia

Informe a data inicial.

QuandoSem data inicial.

Todos
Bloqueia

Informe a data final.

QuandoSem data final.

Todos
Bloqueia

A data final nao pode ser anterior a inicial.

QuandoPeríodo invertido.

Todos
Bloqueia

Sessao sem filial ativa.

QuandoA sessão perdeu a filial — saia e entre de novo.

Todos
Aviso

(sem mensagem) — a nota nunca enviada some da lista

QuandoNo Brasil, com mostrar não enviadas desmarcado, some o que nunca foi transmitido. A inutilizada escapa e aparece com rótulo próprio.

Brasil
Aviso

(sem mensagem) — fora do Brasil a lista sai do tenant inteiro

QuandoA filial do documento vem da tabela de origem; no Brasil há filtro de filial, fora dele não há — como no sistema antigo.

ParaguaiBolívia
B

Exportar

XML e planilha
Bloqueia

Nenhum documento com XML no periodo escolhido.

QuandoExportar XML de um período sem XML gravado.

Todos
Bloqueia

Nao foram encontrados documentos nesse periodo.

QuandoExportar a planilha de um período vazio.

Todos
Bloqueia

Documento sem XML gravado.

QuandoPedir o XML de um documento que não tem.

Todos
Aviso

(sem mensagem) — a nota cancelada sai reescrita

QuandoNa exportação, cStat 100 vira 101, o motivo vira "Cancelamento de NF-e homologado" e o arquivo ganha o prefixo canc_.

Todos
C

Ações de NF-e

A barra de validar, enviar, DANFE…

As recusas de cada ação (nota já autorizada, ambiente trocado, etc.) são as mesmas das telas de faturamento.

Aviso

(botão desabilitado) — as ações exigem linhas de uma origem só

QuandoA barra age sobre UMA tabela de origem. Com linhas de origens diferentes marcadas, o botão fica desabilitado com o motivo no tooltip. Linha cujo tipo de faturamento não tem origem conhecida aparece sem ações.

Todos
Bloqueia

Producto <código> [<descrição>] con <N>% de IVA - el DE solo acepta 0, 5 o 10. Corrija el % IVA del item en el lanzamiento antes de generar el DE.

QuandoValidar um DE (Paraguai) cujo item tem % de IVA diferente de 0, 5 e 10. Na prática é lançamento com os campos trocados — um serviço de almoxarifado já foi medido com 70 no % IVA e 10 no % retenção. Nova em 11/09/2026.

Conferiro % IVA do item no lançamento de origem — na compra de almoxarifado, almoxarifado_compra_produto.percentual_iva (tela 242)

AtençãoA compra de almoxarifado (tipos 1191, 11101 e 11166) passou a declarar o IVA do item. No sistema antigo toda ela saía como exenta, porque a consulta não lia a coluna — decisão do usuário em 12/09/2026.

ParaguaiBolívia
D

Permissões

Quem pode passar

grep hUsuarioRegras no programa do sistema antigo devolve zero: esta tela não tem regra nomeada a conceder no Acesso dos Grupos (444).

E

Como o erro chega na tela

Para o QA reproduzir e reportar

Recusa de regra: HTTP 200 com statuscode 400 e a frase, que a tela mostra no rodapé da janela. Pergunta do servidor: statuscode 409 com o campo a reenviar como true. As mensagens que só a tela confere (marcadas como Aviso, "conferido só na tela") não chegam ao servidor. Erro inesperado traz o código de ocorrência de 8 caracteres — copie-o no chamado.

F

Regras chumbadas no código

Esperadas — não abrir como defeito
O queValor
origem de cada linhacinco listas fixas de tipo de faturamento (traduzTipoFaturamento)
G

Diferenças e decisões pendentes

O que muda em relação ao sistema antigo
PontoSituação
inutilização de faixa (:799)não portada — depende do webservice de inutilização da SEFAZ, que o módulo de NF-e ainda não tem
o XML na listagemo sistema antigo carrega o XML inteiro na grade; aqui ele sai só na exportação
IVA da compra de almoxarifado no DE (Paraguai)o sistema antigo manda todo item como exento (a consulta não lê percentual_iva); aqui vai o % do item, e o item excluído fica de fora — decisão do usuário em 12/09/2026
H

Comparação com o CEIF — botões, permissões e campos (17/09/2026)

docs/_verificacao-237.md · menu237.prg · D:\CEIF

Esta seção compara a 237 com o CEIF — sistema antecessor, em D:\CEIF, anterior à obrigatoriedade da nota fiscal eletrônica no Brasil — por isso o gap esperado logo abaixo. É uma comparação de três pontas (legado × CEIF × porte novo) que complementa, sem repetir, as regras de validação já documentadas nas seções A a G acima.

O CEIF não tem nenhuma tela de NF-e, central ou não — grep -i "NFE" e grep -i "NOTA FISCAL ELETRONICA" em D:\CEIF\*.PRG não retornam nada de relevante. A comparação de botões e permissões abaixo é essencialmente legado × porte; o CEIF só é citado onde há algo dele a dizer.

Botões

Botão (legado)CEIFEquivalente no porte
DANFEn/a (gap esperado)Botão DANFE — NfeAcoesWindow
Consultar NFen/aBotão Consultar
Cancelar NFen/aBotão Cancelar (vermelho)
Carta Correçãon/aBotão Carta de Correção
Enviar emailn/aBotão Email
Atualizarn/aBotão Atualizar (topo da grade)
Exportar XMLsn/aBotão Exportar XML
Inutilizan/aBotão Inutilizar (Brasil e Paraguai)
XLSn/aBotão XLS
UPLOAD (login athayde,suporte)n/aBotão Upload XML — regra nomeada NFE_UPLOAD_XML

Os dez botões reais do legado (BUTTONEX, menu237.prg:261-319) têm par no porte — nenhum faltando. A mais no porte: "Gerar"/"Validar" e "DANFE Contingência", compartilhados com outras telas de NF-e (2322/2333/243) — ampliação de conveniência, não divergência de comportamento.

Permissões e campos

MecanismoLegadoPorte
Gate de CRUD por opção de menutestUsPermissao em 6 dos 10 botões (DANFE, Consultar, Cancelar, Carta Correção, Email, Exportar XMLs)Sem gate por botão dentro da tela — decisão arquitetural do projeto: grupo_permissao só decide visibilidade de menu, JWT é a barreira nos endpoints
Upload de XMLLista de login chumbada "athayde,suporte", recusa silenciosaRegra nomeada NFE_UPLOAD_XML — checada em GET /central/permissoes (esconde o botão) e de novo em POST /central/upload, com mensagem explícita
InutilizarSem gate de permissão nem de loginIdem — sem regra nomeada específica; o legado também não trava esse botão
Data inicial (campo)dHoje-15 — abre com os últimos 15 diasInício do mês corrente até hoje — ver Achado abaixo
Filtro de tipo de faturamento (campo, Brasil)GET numérico + botão "..." de busca por nome/descriçãoCampo de texto livre "ex. 113,114", sem busca — ver Achado abaixo
Busca livre da grade (campo)Texto + combo de coluna + "contida" (filtro client-side)Ausente — ver Achado abaixo
Colunas da grade (campo)22 colunas, incluindo Id.TF e Nome XML19 colunas visíveis — os dois campos existem no DTO mas não aparecem — ver Achado abaixo

Achados

Gap esperado (CEIF)

CEIF não tem tela de NF-e

OndeTela inteira — comparação de três pontas.

Por quêO CEIF é anterior à obrigatoriedade da nota fiscal eletrônica no Brasil (2008+) e não foi atualizado depois disso. Não é achado — a comparação se reduz, na prática, a legado × porte novo.

Todos
Divergência de UX

Data inicial default diverge

LegadodHoje-15 — abre mostrando os últimos 15 dias.

PorteInício do mês corrente até hoje.

EfeitoO recorte inicial mostrado ao abrir a tela é maior ou menor que o do legado dependendo do dia do mês. Não é erro de dado — muda só o filtro inicial — mas pode confundir quem migra do desktop.

Todos
Achado real

Filtro de tipo de faturamento perdeu o botão de busca "..."

LegadoCampo numérico com VALID + botão "..." que abre busca de TIPO_FATURAMENTO por nome/descrição.

PorteCampo de texto livre com dica "ex. 113,114" — o usuário precisa digitar os IDs de memória.

EfeitoPerda de conveniência real, não de correção — o filtro funciona — mas é regressão de usabilidade perceptível para quem usava o legado.

Todos
Achado real

Busca livre por coluna ("pesquisa" + "contida") não foi portada

LegadoCampo de texto + combo de colunas (populado dinamicamente pelo cabeçalho da grade) + checkbox "contida" — filtra a grade client-side.

PorteSem equivalente — só ordenação por cabeçalho e os filtros estruturados do formulário.

EfeitoConsistente com a arquitetura do projeto (nenhuma tela tem esse padrão de busca), mas é lacuna funcional concreta desta tela — o volume de documentos por período pode ser grande.

Todos
Achado real

Grade oculta duas colunas que o legado sempre mostra

Legado22 colunas, incluindo Id.TF (idtipo_faturamento) e Nome XML.

Porte19 colunas visíveis — os dois campos existem no DTO (CentralNfeLinha) e são usados internamente (roteamento de ação, nome do arquivo na exportação), mas não aparecem na grade.

EfeitoProvavelmente intencional (campos técnicos, não de leitura para o usuário final), mas como o legado os expõe por padrão, fica registrado como divergência visível. Não afeta regra de negócio.

Todos
Confirmado — sem achado

NFE_UPLOAD_XML substitui corretamente a lista de login chumbada

LegadoLista de login "athayde,suporte" checada em uploadNFe — recusa silenciosa (sem mensagem).

PorteRegra nomeada NFE_UPLOAD_XML, checada em GET /central/permissoes (esconde o botão) e de novo no POST /central/upload, com mensagem explícita.

ConferidoDivergência deliberada e já documentada — login chumbado virou regra nomeada, o padrão do projeto. Registrado só para constar.

Todos

Nenhuma regra bate com essa busca. Tente um trecho menor da mensagem, ou limpe os filtros.