FJFrigo · Manutenção · Integrações › 8-Importar NFC-e do PDV · 458

Importar NFC-e do PDV

Traz para o FJFrigo os cupons NFC-e emitidos pelo FJ PDV no caixa escolhido: uma venda de mercado interno (114) por cupom, com os itens, a NF-e e um título a receber já baixado na conta do caixa. Cada regra traz a mensagem exata, quando dispara e o confronto com o sistema antigo.

Tabelas: faturamento_venda, faturamento_venda_produtos, financeiro_emissao, financeiro_baixas, faturamento_nfe · lê pdv_route e o banco do PDV (caixa_venda, caixa_nfe) Programa antigo: menu458.prg (importarFJPDV / processaFJPDV / gravar2)

Bloqueia

Na seção A: não lê nada, statuscode 400 com a frase. Na seção B: só aquele cupom não é gravado — fica com situação Erro e a frase na coluna Observação; os outros seguem.

Confirma

Pergunta antes de seguir. Nesta tela quem pergunta é a própria tela.

Aviso

O cupom é Ignorado (nada a gravar) ou a frase explica o que vai acontecer com ele. Não é erro.

Situação na grade

Importar, Substituir, Cancelar, Ignorado e Erro. "Conferir" monta a prévia sem gravar; "Importar" refaz a mesma conta e grava.

A

Caixa e período

Os filtros da tela

Os caixas vêm de pdv_route (tabela do ceif) da filial da sessão: host, porta, banco, usuário e senha cifrada. A conexão ao banco do PDV é somente leitura (pool com SET SESSION TRANSACTION READ ONLY, e só se executa SELECT) — nada é gravado no PDV. O período é por emissão do cupom, em faixa meio-aberta (o dia final inteiro).

Aviso

Esta filial não tem caixa de PDV cadastrado (pdv_route).

QuandoA filial da sessão não tem linha em pdv_route (ou o banco não tem a tabela). Conferido só na tela, ao abrir.

Sistema antigoO IP do caixa era escolhido pelo número da filial no fonte (28 Iporã, 38 Umuarama, 8 São Lourenço; :71-76).

Todos
Bloqueia

Selecione a conexão do PDV (caixa).

QuandoConferir ou Importar sem caixa escolhido.

Todos
Bloqueia

Informe a data inicial.

QuandoSem data inicial.

Todos
Bloqueia

Informe a data final.

QuandoSem data final.

Todos
Bloqueia

A data final não pode ser anterior à inicial.

QuandoPeríodo invertido.

Todos
Bloqueia

O período começa em mês fechado: a U.D.F. é 31/08/2026.

QuandoA data inicial não é posterior à U.D.F. financeira da filial (parametros.udf). O próprio dia da U.D.F. também é recusado.

Sistema antigoNão conferia.

Todos
Bloqueia

Conexão PDV 12 não encontrada nesta filial.

QuandoO caixa pedido não pertence à filial da sessão (a tela só oferece os da filial; o servidor confere de novo).

Todos
Bloqueia

A senha cadastrada da conexão PDV tem caractere inválido.

QuandoA senha de pdv_route não decifra pela tabela de substituição do ceif. Corrigir o cadastro do caixa no ceif.

Sistema antigoUsava usuário e senha chumbados no fonte.

Todos
Bloqueia

Falha ao ler o PDV (192.168.0.10:3306/pdv): …

QuandoO banco do caixa não responde ou a consulta falha; depois dos dois-pontos vem a causa do driver (tempo esgotado, acesso negado…).

AtençãoCaixa desligado ou fora da rede dá esta frase — não é defeito da tela. O PDV de São Lourenço (filial 8) não responde desde agosto/2026.

Todos
B

Cada cupom

Na ordem em que o servidor confere

Situação é decidida pela tabela do PDV (caixa_nfe.nfe_cancelada e cstat_nfe), não pelo XML: o XML de uma NFC-e cancelada continua com o protocolo da autorização (cStat 100). Autorizada = 100 ou 150; cancelada = 101, 135, 151 ou 155, ou a marca de cancelada.

"Já importada" = venda viva da filial com o mesmo documento, modelo e série (na cancelada também pela chave na observação, com a emissão entre o dia anterior e o seguinte).

Aviso

Cupom sem NFC-e no PDV.

QuandoO cupom não tem linha em caixa_nfe. Ignorado. Com mais de uma NF-e por cupom vale a primeira.

Todos
Aviso

NF-e modelo 55 (emitida pelo CEIF a partir do PDV) - não é NFC-e.

QuandoO modelo é 55. Ignorado antes de gravar qualquer coisa (o ceif gravava a venda e os itens e só depois desistia).

Todos
Aviso

NFC-e sem documento/série/modelo no PDV.

QuandoFalta documento, série ou modelo (nem na tabela nem no XML). Ignorado.

Todos
Aviso

Emissão em mês fechado (U.D.F.).

QuandoA emissão do cupom (o dhEmi do XML) não é posterior à U.D.F. Ignorado.

Todos
Aviso

NFC-e cancelada (cStat 135) - não há venda a excluir.

QuandoCupom cancelado no PDV que nunca foi importado. Ignorado.

Sistema antigoDecidia pelo cStat do XML (101,135,382,930, :647) e por isso nunca via o cancelamento: importava a venda cancelada como válida.

Todos
Aviso

NFC-e cancelada: a venda será excluída.

QuandoCupom cancelado no PDV que já foi importado. Situação Cancelar: ao Importar, itens, baixas, títulos e a venda são excluídos e a NF-e passa a cancelada (cstat 135, "Cancelada no PDV").

Todos
Aviso

NFC-e não autorizada (cStat vazio).

QuandoO cStat não é 100 nem 150 (e o cupom não está cancelado). Ignorado; o código aparece no lugar de "vazio" quando existe.

Sistema antigoGravava também a NFC-e ainda sem protocolo.

Todos
Bloqueia

A venda 1003300001 já importada tem asiento conferido - não será substituída.

QuandoSubstituir ou cancelar uma venda que tem asiento fv com idusuario_conferiu > 0. Só este cupom fica em Erro.

Sistema antigoApagava por cima (o ceif também).

Todos
Bloqueia

A venda 1003300001 já importada tem baixa conciliada - não será substituída.

QuandoSubstituir ou cancelar uma venda cujo título tem baixa viva com data_conciliacao preenchida.

Sistema antigoApagava por cima.

Todos
Bloqueia

O cliente 10254246 do PDV não existe no cadastro.

QuandoO PDV mandou o id de um emitente que não existe no FJFrigo.

AtençãoSem id do PDV vale o emitente pelo CPF/CNPJ do consumidor (sem máscara; com mais de um cadastro o de menor id) e, sem ele, o cliente padrão da cidade.

Todos
Bloqueia

Produto 10057 do PDV não existe no cadastro.

QuandoUm item do cupom tem produto que não existe em produto.

Todos
Bloqueia

Produto PICANHA BOVINA [10057] sem centro de custo de venda.

QuandoItem com valor cujo produto não tem idcentro_custo_venda — o título é rateado por ele. Corrigir no cadastro de produtos (183).

Todos
Bloqueia

Cupom sem itens com valor.

QuandoNenhum item do cupom tem produto e valor total diferente de zero.

Todos
Bloqueia

Não há conta de caixa definida para a loja de MARINGA.

QuandoA cidade da filial não é Umuarama, São Lourenço nem Iporã — só essas três têm contas de caixa no código.

Sistema antigoUsava as contas de Iporã para qualquer outra cidade (:1394-1427).

Todos
Aviso

Já importada - será substituída.

QuandoCupom autorizado que já tem venda. Situação Substituir: ao Importar a venda antiga sai (itens, baixas, títulos, NF-e, pelo tipo dela) e uma nova é gravada. Decisão do usuário (24/09/2026): pular manteria uma situação que pode ter mudado no PDV.

Todos
C

Importar

O botão

Por cupom importado grava: faturamento_venda tipo 114 (MI, SFR, tipo_doc 'FA', a chave na observação), cada item duas vezes (tipo_produto 1 e 2, como toda venda), um título a receber por centro de custo do produto (valor = vNF, acréscimo no primeiro centro e a sobra no último) já baixado na conta do caixa, e a linha de faturamento_nfe com o XML do PDV.

A forma de pagamento sai do primeiro tPag do XML: 01/02 dinheiro, 17/20 PIX, 03 crédito, 04 débito, o resto "outros". A quantidade vai com 3 casas (produto vendido por peso grava quantidade zero).

Confirma

Gravar 42 cupom(ns)? As vendas já importadas serão substituídas.

QuandoPergunta da tela, com o total a importar + substituir + cancelar.

Todos
Aviso

(sem mensagem) — uma transação por cupom

QuandoCada cupom é gravado na sua transação: o que falha fica em Erro (com a frase do banco) sem deixar nada gravado e sem impedir os outros. O resumo final conta importados, substituídos, cancelados e erros.

Sistema antigoA falha do INSERT dos itens era engolida (o retorno das parcelas sobrescrevia o dos itens).

Todos
D

Permissões

Quem pode passar

grep hUsuarioRegras no menu458.prg devolve zero: não há regra nomeada. A tela é a opção 458 do menu (matriz do Acesso dos Grupos, 444). Os caixas oferecidos são só os da filial da sessão.

E

Como o erro chega na tela

Para o QA reproduzir e reportar

As recusas da seção A chegam como HTTP 200 com statuscode 400 e a frase, mostrada na faixa vermelha. As da seção B não são recusa do pedido: o cupom aparece na grade com situação Erro ou Ignorado e a frase na coluna Observação ("Só ignorados e erros" filtra só eles). Falha sem frase aparece como "Falha ao ler o PDV." ou "Falha ao importar.". Erro inesperado traz o código de ocorrência de 8 caracteres — copie-o no chamado. O log do servidor registra cada cupom não gravado (458 - venda PDV … não gravada).

F

Regras chumbadas no código

Esperadas — não abrir como defeito
RegraValor
cliente e vendedor padrão por cidadeUMUARAMA 10084 / 10084; SAO LO 10011241 / 10011; demais 10273722 / 10011
conta do caixa (dinheiro, PIX, débito, crédito/outros)UMUARAMA 10385/10382/10383/10384; SAO LOU 100811/100812/100813/100814; IPORA 10284/10283/10285/10286 (:1394)
tipo de faturamentosempre 114 (decisão do usuário, 24/09/2026)
tipos de pagamento10011 dinheiro, 10015 PIX, 10010 crédito, 100112 débito, 10018 outros (:734)
país de destino / tipo de lançamento bancário111 / 111
G

Diferenças e decisões pendentes

O que muda em relação ao sistema antigo e ao ceif
PontoSituação
cancelamentopela tabela do PDV; o antigo lia o cStat do XML (sempre 100) e importava a venda cancelada
clienteid do PDV, senão CPF/CNPJ do consumidor, senão o padrão; o antigo trocava sempre pelo padrão, e o ceif tirava o CNPJ da chave (o da própria loja — 2.653 vendas de Umuarama com a BMG FOODS de cliente)
tipo 1121 (funcionário)não usado: o antigo lia sigla de uma consulta que não a traz (:805) e nunca trocava; o ceif grava 114 — decidido: 114
valor do títuloo vNF; o antigo somava o vOutro duas vezes
só autorizada100/150; o antigo gravava também a sem protocolo
reimportarsubstitui (decisão do usuário, 24/09/2026); recusa com asiento conferido ou baixa conciliada — antigo e ceif apagavam por cima
transaçãouma por cupom
períodofaixa meio-aberta e começa depois da U.D.F.; o antigo parava em 23:59:00 (:566) e não conferia U.D.F.
quantidade3 casas; o antigo truncava para inteiro
cidade sem contarecusada; o antigo usava as contas de Iporã
títuloidtipo_titulo do tipo de faturamento e idcentro_custo2 da filial; tipo_doc 'FA' (o ceif grava 'FS'); numero_parcelas 1 (o antigo grava 0)
ramo "DJ PDV" (.djm)não portado — nenhuma loja usa
teste de telapendente: exercitado só contra o banco (conexão sem gravar)

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