Divergência concreta entre os três sistemas que merece decisão do usuário — funcionalidade do legado sem equivalente no porte, permissão que existe num lado e não no outro, ou campo tratado de forma diferente.
Divergência de UX
Comportamento diferente entre legado e porte que não compromete integridade de dado — só a experiência de uso.
Gap esperado (CEIF)
O CEIF (sistema antecessor) não tem tela equivalente, ou tem uma tela para outra finalidade. Não é bug.
Confirmado — sem achado
Comportamento conferido nos três sistemas e batendo. Registrado para deixar claro que foi checado.
Fonte: levantamento de 17/09/2026, cruzando menu2393.prg (legado), D:\CEIF (o
CEIF antecessor, Harbour), o backend com.fjfrigo.back.faturamento.historicocaixa e a tela
HistoricoCaixa.vue.
Atenção — nomenclatura "CEIF" ambígua na documentação interna do projeto: este documento usa
"CEIF" para o sistema antecessor em Harbour, em D:\CEIF. Em outras partes da documentação
deste projeto o termo "ceif" também é usado para um sistema Java/Vaadin diferente, em
D:\gitfj\ceif-master, citado como segunda fonte em auditorias de outras telas — inclusive um
javadoc do porte desta mesma tela ("O ceif tem uma regra por botao..."), que se refere a esse segundo
sistema, não ao D:\CEIF Harbour tratado aqui. São dois códigos-fonte distintos, e a
comparação deste documento é sempre com o D:\CEIF Harbour — o antecessor de verdade.
A
Mapeamento
O que a tela faz e onde cada sistema vive
A tela 2393 é uma consulta de histórico de caixa por etiqueta ou código de barras: mostra o
produto, pesos, validade e situação da caixa, mais o histórico de movimentações (recebimento/embarque),
com botões de manutenção — mudar peso, mudar validade, cancelar, bloquear, unir caixas repetidas,
reprocessar e imprimir etiqueta.
Os 7 botões ativos do legado e a única regra nomeada
Os 7 botões ativos do legado existem nas três pontas onde há equivalente: legado e porte batem 1:1;
o CEIF só cobre parcialmente (criação/exclusão/impressão da caixa dentro da tela de produção), sem
edição de peso/validade nem união de duplicadas.
Botão (rótulo do legado)
Legado
CEIF
Porte
Unir CX
✔ (só monta teste.txt, não executa — simulação)
✘ (sem tela equivalente)
✔ (executa de verdade, decisão do usuário)
Bloquear/Desbloquear
✔
✘
✔
Mudar Validade
✔
parcial (CEI251 cria a caixa nova, não edita validade de uma já existente)
✔
Mudar Peso
✔
✘
✔
Cancelar Caixa/Descancelar
✔ (mensagem "Não permitido" é comentário morto)
parcial (CEI251 "Exlui a Caixa")
✔
Etiqueta
✔
parcial (CEI251 imprime ao criar)
✔ (ZPL via FJFrigo Agente)
Repr.Ind. (peso + botão)
✔
✘
✔
Permissões
RegraHISTCAI_ALTERAR_PESO — única regra nomeada da tela (linha 85 do
legado). Trava, quando ausente: Mudar Peso, Mudar Validade e Cancelar. Os botões
Bloquear, Etiqueta e Repr.Ind. ficam fora dessa trava e sempre habilitados, para
qualquer usuário. MASTER satisfaz a regra por dentro, nos dois lados.
C
Achados
Divergências, confirmações e lacunas esperadas
Confirmado — sem achado
A regra HISTCAI_ALTERAR_PESO trava peso líquido, validade E cancelamento — não só o peso, apesar do nome.
Legadomenu2393.prg:94-98 desabilita oPesoLiquido, oButtonMudarPeso, oButtonMudarValidade, oButtonCancelarCaixa e oDataValidade sem a regra (ou MASTER). Bloquear, Etiqueta e Repr.Ind. ficam fora da trava.
CEIFNão se aplica — sem tela equivalente ao 2393.
PorteHistoricoCaixaService.REGRA_ALTERAR gatilha exatamente as mesmas três operações (mudarPeso, mudarValidade, alternarCancelada), com alternarBloqueada/etiqueta/reprocessar sem trava — reproduzido fielmente. Vale registrar como achado de suporte: quem só entende o nome da regra vai presumir, erroneamente, que ela controla só o peso.
Todos
Gap esperado (CEIF)
O CEIF não tem tela de histórico/rastreio de caixa por código de barras — só CEI251, digitação manual na produção, sem consulta posterior.
Legadomenu2393.prg é a tela "Histórico de Caixa" inteira — consulta por código de barras, com histórico completo de movimentação e as operações de manutenção.
CEIFCEI251.PRG (Lançamento Desossa) cria, imprime e exclui a caixa durante a produção, com um campo rotulado "Rastreabil.", mas não oferece consulta posterior de histórico nem mudar peso/validade, bloquear, unir ou reprocessar.
PorteReproduz a tela do legado por completo. Não há equivalente a comparar no CEIF — lacuna estrutural do CEIF, não do porte.
Todos
Divergência de UX
"Unir CX" no legado só grava um teste.txt local com os UPDATEs — nunca une de verdade; o porte executa a união.
LegadounirCaixa (menu2393.prg:979-980) escreve teste.txt local com os UPDATEs montados e mostra "OK", mesmo sem caixas repetidas — não executa nenhum UPDATE de verdade.
CEIFNão se aplica — sem tela equivalente.
PorteHistoricoCaixaRepository.trazerMovimentacoes/cancelarIds unem as caixas de verdade — decisão explícita do usuário de 14/09/2026, registrada no javadoc de HistoricoCaixaService ("Por decisao do usuario aqui a uniao grava"). Extensão de capacidade deliberada, não bug.
Todos
Divergência de UX
Busca por código só de dígitos que não casa com etiqueta cai para o número da caixa — a condição existe no legado, mas está comentada.
LegadoA condição de fallback por idcaixa em buscaDados está comentada — nunca é usada; sem ela a tela não acharia a caixa em cenários de conferência pós-TXT (a etiqueta leva zero à esquerda, o número gravado não).
CEIFNão se aplica — sem tela equivalente.
PorteHistoricoCaixaRepository busca por idcaixa_texto primeiro, com porNumero como segundo recurso; a tela avisa "achadaPeloNumero" quando a busca cai nesse caminho — o legado nunca avisa nada.
Todos
Confirmado — sem achado
A mensagem "Não permitido" do cancelamento nunca foi exibida — é comentário morto, não um aviso ignorado.
LegadoexcluirCaixa (menu2393.prg:890-892) tem *msginfo("Não permitido") comentado com * — nunca foi um MsgInfo executando de fato; cancela sem perguntar nada, mas por comentário estático, não por "mostra e ignora o retorno".
CEIFNão se aplica — sem tela equivalente.
PorteSubstitui por uma pergunta real (confirm() em HistoricoCaixa.vue) antes de cancelar — melhoria de UX sobre um comportamento que no legado já era silencioso.
Todos
Confirmado — sem achado
Grade de caixas-filhas nunca recebe dado no legado atual — consulta comentada — e foi corretamente omitida do porte.
LegadoA consulta principal traz 0 AS idcaixa_mae (linha 485) e a subconsulta que preencheria aGridFilhas está inteiramente comentada (linhas 528-547, dentro do bloco de exceção de COLINA). A grade nasce e permanece vazia em qualquer execução atual.
CEIFNão se aplica — sem tela equivalente.
PorteNão implementa grid de filhas nem campo "Caixa Mãe" editável — coerente com o fato de que a funcionalidade "caixa mãe/filhas" e a exceção de COLINA saíram do legado em 12/09/2026.
Todos
Nenhum achado bate com essa busca. Tente um trecho menor, ou limpe os filtros.