FJFrigo · Faturamento · menu2393 — Histórico de Caixa

Histórico de Caixa (2393) — legado × CEIF × porte

Comparação de botões, permissões e campos entre o sistema legado (Harbour), o CEIF (sistema antecessor) e o nosso porte (FJFrigoBack/FJFrigoWeb) — o que bate, o que diverge de propósito e o que é lacuna esperada do CEIF.

Telas: menu2393.prg · HistoricoCaixa.vue Fonte: levantamento de 17/09/2026 Autoridade: o sistema é a referência em caso de divergência com este documento

Achado real

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.

SistemaOnde vive
LegadoC:\FJFrigoConcepcion\menu2393.prg (classe Menu2393)
CEIF (antecessor)D:\CEIF\CEI251.PRG (Lançamento Desossa) — único ponto de contato, sem tela dedicada
Porte — backendD:\FJFrigoBack, pacote com.fjfrigo.back.faturamento.historicocaixa
Porte — frontendD:\FJFrigoWeb, tela HistoricoCaixa.vue
B

Botões e Permissões

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)LegadoCEIFPorte
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.