FJFrigo · Manutenção · Integrações › 3-Emitentes Domínio · 453

Emitentes Domínio

Grava em cada emitente o código da conta que ele tem no sistema contábil Domínio, a partir do arquivo exportado por lá. Prévia primeiro; o Importar relê o mesmo arquivo e grava numa transação. Cada regra traz a mensagem exata, quando dispara e o confronto com o sistema antigo.

Tabela: emitente (contabilidade_cod_cliente / contabilidade_cod_fornecedor) Programa antigo: menu453.prg (Importação Contas de Emitentes ContMax) Endpoints: POST /cadastro/emitentes-dominio/previa e /importar

Bloqueia

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

Confirma

Pergunta antes de seguir. Quem pergunta está dito em cada regra — o servidor (statuscode 409, com o nome do campo) ou a própria tela.

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

O arquivo

Escolher arquivo (prévia)

O nome do arquivo decide o destino: tem de conter contabil e Fornecedor ou Cliente (maiúsculas como estão). Com "Fornecedor" a conta vai para contabilidade_cod_fornecedor, senão para contabilidade_cod_cliente.

Linhas empresa;nome;CNPJ/CPF;conta, separadas por ; respeitando aspas. Só conta a linha que começa por algarismo de 1 a 9 (cabeçalho e total ficam de fora). Linha sem CNPJ/CPF ou sem conta, ou com conta só de zeros, é pulada calada. O CNPJ/CPF é reduzido aos algarismos, completado com zeros e mascarado (até 11 = CPF, 12 a 14 = CNPJ). O emitente é achado pelo documento em todo o cadastro, sem filial.

Bloqueia

Arquivo inválido: o nome tem de conter "contabil" e "Fornecedor" ou "Cliente" (é o nome que o Domínio dá ao arquivo). Recebido: clientes.csv

QuandoNome sem as palavras. O nome recebido muda a cada caso.

Sistema antigo"Arquivo inválido" (:108 e :112).

Todos
Bloqueia

Nenhuma linha válida no arquivo.

QuandoNenhuma linha começando por 1-9 com CNPJ/CPF e conta preenchidos.

Sistema antigoNão confere: diz "Terminado !" sem gravar nada.

Todos
Aviso

Linha sem os 4 campos (…;…;CNPJ/CPF;conta).

QuandoLinha útil com menos de quatro campos. Vira Erro na grade da prévia e não é gravada.

Sistema antigoPulada calada.

Todos
Aviso

CNPJ/CPF com mais de 14 algarismos.

QuandoDocumento com mais de 14 dígitos. Situação Erro, não gravada.

Sistema antigoO TRANSFORM gera um documento que não acha ninguém, sem aviso.

Todos
Aviso

Conta com mais de 15 caracteres.

QuandoA conta não cabe na coluna (varchar(15)). Situação Erro, não gravada.

Todos
Aviso

CNPJ/CPF não encontrado no cadastro de emitentes.

QuandoNenhum emitente com o documento mascarado. Situação Não encontrado.

Sistema antigoNada acontece, sem aviso.

Todos
Aviso

Repetido no arquivo; vale a linha seguinte.

QuandoO mesmo CNPJ/CPF aparece de novo mais abaixo: a linha anterior fica Repetido e vale a última.

Sistema antigoIgual no efeito (os UPDATEs em sequência deixam a última).

Todos
Aviso

08.594.527/0001-01 aparece mais de uma vez com contas diferentes (54024 na linha 12, 60311 na linha 40): vale a última.

QuandoMesmo documento com contas diferentes no arquivo. Aparece na lista de avisos acima da grade; documento, contas e linhas mudam a cada caso.

Todos
Aviso

2 emitentes com este CNPJ/CPF.

QuandoDocumento repetido no cadastro: todos recebem a conta. Vem na coluna Observação da linha Alterar.

Todos
Aviso

Nada a alterar: todas as contas já estão gravadas.

QuandoConferido só na tela: a prévia não tem nenhuma linha Alterar; o botão Importar fica desabilitado.

Todos
B

Importar

O botão Importar

O servidor relê o arquivo e refaz a prévia dentro da transação: grava só as linhas Alterar, com UPDATE emitente SET <coluna> = conta WHERE cnpj_cpf = ? AND NOT (coluna <=> conta). O resultado diz quantos emitentes e documentos foram atualizados e quantos não estão no cadastro.

Confirma

Gravar a conta em 30 emitente(s)?

QuandoPergunta da tela, antes de enviar. O número é o de emitentes a alterar da prévia.

Todos
Aviso

(sem mensagem) — emitente com a coluna vazia (NULL) também recebe a conta

QuandoComparação por <=>.

Sistema antigoAND coluna <> 'conta' nunca é verdadeiro com NULL: esses emitentes nunca recebiam.

Todos
C

Permissões

Quem pode passar

grep hUsuarioRegras no programa do sistema antigo devolve zero. Vale a opção 453 no menu (decisão do usuário, 24/09/2026). O ceif exige ROLE_IMCOD, que não foi portada; a regra IMPORTAR_CONTAS_EMITENTE_CONTAB chegou a ser criada e saiu no mesmo dia, sem concessões.

D

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 na faixa vermelha da janela. As mensagens que só a tela confere (marcadas "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.

E

Regras chumbadas no código

Esperadas — não abrir como defeito

As palavras do nome do arquivo (contabil, Fornecedor, Cliente) são as do sistema antigo e do ceif — é o nome que o Domínio dá ao arquivo.

F

Diferenças e decisões pendentes

O que muda em relação ao sistema antigo
PontoSituação
aspaso campo entre aspas com ; dentro é lido inteiro; o sistema antigo e o ceif cortam em todo ; e perdem a linha calados (61+65 linhas no arquivo de 08/2026)
conta só de zerosignorada; com "vale a última linha" ela apagava a conta boa de outra empresa (6 linhas no arquivo de fornecedores de 08/2026)
coluna NULLNOT (col <=> ?) no lugar de col <> ?: emitente com a coluna nula passa a receber
CNPJ/CPFreduzido aos algarismos e completado com zeros antes da máscara; o sistema antigo mascara o texto cru
transaçãotudo numa só; o sistema antigo grava linha a linha e segue depois de erro, o ceif faz commit por lote de 500
prévianovidade: o sistema antigo grava direto, sem mostrar o que vai mudar

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