FJFrigo · Faturamento · menu2392 — Importar Produção

Importar Produção (2392) — legado × CEIF × porte

Comparação de botões, permissões e campos entre o legado (Harbour), o CEIF (sistema antecessor) e o nosso porte (FJFrigoBack/FJFrigoWeb) para a tela que reimporta a produção do dia a partir do banco da indústria. Cada achado traz o desfecho, o que legado/CEIF/porte fazem e o escopo em que vale.

Telas: menu2392.prg · CEIF (busca ampla) · ImportarProducao.vue Fonte: levantamento de 17/09/2026 Autoridade: o sistema é a referência — em caso de divergência com este documento, vale o sistema

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 deste levantamento: comparação cruzada de 17/09/2026 entre C:\FJFrigoConcepcion\menu2392.prg (legado), D:\CEIF (busca ampla por telas de lançamento/importação de produção) e o porte novo — backend em com.fjfrigo.back.cadastro.importarproducao e a tela D:\FJFrigoWeb\src\screens\ImportarProducao.vue. Detalhes completos (linhas do .prg, SQL, medições no banco) estão em D:\FJFrigoBack\docs\_verificacao-2392.md e no CLAUDE.md do projeto, seção "2392 — Importar Produção".

A

Mapeamento

O que a tela faz e onde cada sistema vive

A opção 2392 reimporta o dia inteiro de lançamentos de produção a partir do banco da indústria (apaga tudo daquele dia e regrava), para filiais cujo sistema_industrial é WEB ou LEGADO. Não é uma tela de digitação — é um botão "Importar" com uma janela de data, mais um "Atualizar" e uma grade com filtro de texto.

ondecaminho
LegadoC:\FJFrigoConcepcion\menu2392.prg (1913 linhas, classe Menu2392)
CEIFD:\CEIF\CEI251.PRG (Lançamento Desossa — o mais próximo em espírito) e outros candidatos descartados
Backend novocom.fjfrigo.back.cadastro.importarproducao.{ImportarProducaoController,Service,Repository,Industria,LinhaDto}.java
Frontend novoD:\FJFrigoWeb\src\screens\ImportarProducao.vue
B

Botões e Permissões

O que existe em cada ponta, e quem pode

Botões da grade e, logo abaixo, os controles de acesso.

botãolegadoCEIFnosso
Importar (reimportar do dia/indústria)✅ ativo— (CEI251 tem "OK" de gravação manual por caixa, mecanismo diferente)✅ (só quando modo WEB/LEGADO)
Atualizar✅ ativon/a✅
Visualizar/Alterar💀 comentado (dead code)n/anão portado (correto)
Excluir💀 comentado (dead code)n/anão portado (correto)
Demonstrativos/Impressão💀 comentado (dead code)n/anão portado (correto)
Pesquisa/filtro de texto na grade✅ ativo (busca + combo de coluna + "contida")n/a❌ ausente (achado, ver seção C)
Importação de arquivo TXT✅ ativo (só filiais fora de WEB/LEGADO)n/a (CEI251 é digitação manual, não arquivo)❌ fora de escopo (decisão documentada)
Impressão de etiqueta na gravaçãon/a nesta tela✅ (CEI251, ZPL/Zebra, por caixa)n/a (mecanismo diferente)

Permissões

regra/controlelegadoCEIFnosso
Regra nomeada (hUsuarioRegras)nenhuma (grep = 0 ocorrências)não aplicável (sem esse conceito)nenhuma
usuario.master / tipo de gruponenhum teste no .prgvisibilidade de menu apenasnenhum teste no código
Controle de acesso à telasó visibilidade de menu (implícito)NET_USE (lock de rede) + menuJWT + visibilidade de menu (grupo_permissao), padrão do projeto — nada específico desta tela
NotaAs três pontas (onde aplicável) concordam: esta tela não tem controle de acesso fino nenhum, só o de abrir o menu. Não há divergência de permissão a reportar.

Campos

campotipoobrigatórioonde valida
Data (produção/reimportação)Datasimlegado: VALDT/picture na janela; nosso: IllegalArgumentException no Service se nulo, <input type="date"> obrigatório na tela
id (linha da grade)Número—legado: coluna 1 da grade; nosso: existe no DTO e é usado como row-key, mas não é exibido como coluna visível (achado)
idprodutoNúmero—ambos exibem
produto (descrição)Texto—ambos exibem
quantidadeNúmero (3 casas)—ambos exibem
peso líquidoNúmero (3 casas)—ambos exibem
valor (custo calculado)Número—só backend (WEB: tabela_preco_minimo/fallback 18; LEGADO: zero se sem tabela) — não é coluna de grade em nenhuma ponta
campos de importação de arquivo TXT (idIndustria, numeroCaixa, pesoLiquido, pecas, datas)vários—só legado; fora de escopo no porte (documentado)
C

Achados

Um por linha do levantamento comparativo

Quatro achados, cada um com o resumo, o que o legado faz, o que o CEIF faz e o que o porte faz.

Confirmado

Botões Alterar/Excluir/Demonstrativos: código morto do legado, corretamente não portado.

LegadoOs três estão comentados no próprio .prg (menu2392.prg:231-253). Mesmo se ativados, chamariam dados(2,...) cujo SELECT (:335-338) referencia colunas (e.idproducao, e.produto) inexistentes em faturamento_lancamentos_manuais — é diálogo herdado por cópia de outra tela, nunca funcionou de verdade.

CEIFNão aplicável — o CEIF não tem esta tela.

PorteNão implementados, de propósito. O javadoc do ImportarProducaoService já registra essa análise. "Botões faltando" foram investigados e são intencionais.

Todos
Gap esperado (CEIF)

CEIF não tem equivalente funcional ao "reimportar do banco da indústria" — gap documentado, não omissão do porte.

LegadoO mecanismo de reimportar o dia a partir de um sistema industrial externo (WEB/LEGADO) é evolução do sistema atual.

CEIFBusca ampla por PRODUCAO/PRODUÇÃO/IMPORTA nos .prg do CEIF (21 arquivos) e leitura dos cinco candidatos mais prováveis (CEI251, CEI231, CEI232-234, CEI336-337) não encontraram nenhuma tela que reproduza esse mecanismo. O CEI251 (Lançamento Desossa) é o achado mais próximo em espírito — é onde a produção "nasce" no CEIF — mas via digitação manual caixa a caixa com impressão de etiqueta ZPL/Zebra, sem qualquer noção de integração com um "banco da indústria" externo.

PorteImplementado fielmente ao legado (WEB e LEGADO). O conceito de "sistema industrial WEB/LEGADO" com leitura externa só-leitura é documentado em CLAUDE.md, seção "2312 — a busca e a carga do romaneio da indústria", e confirmado como banco só-leitura de produção nas filiais testadas (5, 11, 18, 22, 53). Não é regressão nem lacuna do porte — é ausência genuína no antecessor.

Todos
Divergência de UX

A grade nova omite a coluna "Id" que o legado mostra como primeira coluna.

LegadoDefine a coluna id como a primeira da grade (menu2392.prg:75-81, ::oForm:oGrid:aColumns[1]:heading := "id").

CEIFNão aplicável.

PorteO backend já traz o campo (ImportarProducaoLinhaDto.id, o Repository seleciona e.id/MIN(e.id)/MIN(e.idproducao) conforme o modo), mas o array de colunas do Vue não o inclui — D:\FJFrigoWeb\src\screens\ImportarProducao.vue, colunas: data, idProduto, produto, quantidade, pesoLiquido. O id é usado internamente como row-key, só não aparece na tela. Efeito prático baixo (a tela não permite alterar/excluir por id de qualquer forma), mas é uma coluna do legado que ficou de fora sem decisão registrada.

Todos
Achado real

Falta a barra de pesquisa/filtro que o legado tem na grade — capacidade ausente sem nota de decisão.

LegadoTem, em toda instância desta tela, uma caixa de busca (oEditPesquisa), um combo para escolher em qual coluna buscar (oComboCampos, populado a partir dos próprios cabeçalhos da grade) e um checkbox "contida" — pesquisaGrid(::oGrid,::aGrid,::oEditPesquisa,::oCheckContido:getValue(),::nColunaBusca,::nColunaBuscaArray) (menu2392.prg:181-222, fila 191). É o padrão de busca client-side que o projeto reproduz em várias outras telas (inclusive via SeletorMultiFiltros/busca em DataGrid quando ligada por search prop).

CEIFNão aplicável — sem tela equivalente.

PorteImportarProducao.vue usa DataGrid em modo local (:rows="linhas", sem fetchPage) e não passa a prop search nem renderiza nenhum campo de busca — confirmado por leitura do componente e checagem de que DataGrid.vue só ativa filtro quando alimentado externamente (props.search, usado no modo remoto/fetchPage). Com poucos lançamentos por dia isso tem impacto baixo, mas é uma capacidade do legado ausente na tela nova, sem nota de decisão.

Todos

Nenhum achado bate com essa busca. Tente um trecho menor, ou limpe os filtros.