FJFrigo · Lançamentos · Almoxarifado › F-Aviso de Recebimento · 24F

Aviso de Recebimento (AR)

Registra a nota que chegou ao almoxarifado, libera para conferência cega, confere, finaliza ou cancela. É o aviso finalizado que a Compra de Almoxarifado (242) exige. Cada regra traz a mensagem exata, quando dispara e a origem no ceif.

Tabelas: almoxarifado_recebimento, almoxarifado_recebimento_conferencia (lidas pelo 242) Programa antigo: não existe no legado — veio do ceif (AlmoxarifadoRecebimentoGrid, Form, ConferenciaForm, ConferenciaMasterDetail, AlmoxarifadoRecebimentoController). O menu242.prg só lê a tabela. Rota: /lancamento/almoxarifado-recebimento

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.

Sem sistema antigo

Não há menu24f.prg em C:\FJFrigoConcepcion. A coluna "Origem" cita a classe do ceif; as frases do servidor são, quase todas, as do ceif.

A

O ciclo

A coluna status

PENDENTE → Liberar → LIBERADO_CONFERENCIA → Conferência concluída → CONFERENCIA_CONCLUIDA → Finalizar → FINALIZADO. Cancelar vale em qualquer status não cancelado: vira CANCELADO, ou CANCELADO_APOS_FINALIZACAO se estava finalizado.

Três particularidades do schema: excluido é tinyint(1) (0/1, não 'T'/'F'); o id sai da trigger; documento e observacao são latin1, observacao_finalizada/_cancelada utf8mb4. Os produtos ficam em almoxarifado_recebimento_conferencia com a quantidade da nota e a quantidade_conferencia contada (nasce 0). Finalizar e cancelar gravam o período de permanência desde a inclusão, no formato do ceif (26h05).

B

Grade e abrir

Filtros e Alterar/Visualizar

A grade abre nos últimos 30 dias por data de inclusão (faixa meio-aberta), só da filial da sessão. A coluna "Diverg." marca o AR concluído, finalizado ou cancelado após finalização com algum produto contado diferente do informado.

Aviso

(sem mensagem) — "Multi filial" sem a regra mostra só a filial da sessão

QuandoCaixa "Multi filial" marcada sem HABILITAR_FILTRO_MULTI_FILIAL_AR: o servidor ignora a caixa, sem avisar. Com a regra, as filiais do usuário.

OrigemAlmoxarifadoRecebimentoGrid (a caixa só aparece com a regra no ceif).

Todos
Bloqueia

Status desconhecido: <valor>.

QuandoFiltro de status fora dos seis valores (só por chamada direta; a tela oferece a lista).

Todos
Bloqueia

Aviso de recebimento <id> não encontrado.

QuandoAbrir, alterar, excluir, liberar, conferir, finalizar ou cancelar um AR que não existe, está excluído ou é de filial fora das filiais do usuário.

OrigemO ceif só restringe a filial na grade; aqui em toda ação.

Todos
Aviso

Aviso em "Liberado conferência": só o pendente se altera.

QuandoConferido só na tela: Alterar num AR fora de PENDENTE abre a janela só para leitura (campos travados, sem Gravar), com o nome do status.

OrigemAlmoxarifadoRecebimentoForm.verificarStatus.

Todos
C

Incluir e alterar

O formulário

A tela confere antes os campos obrigatórios com as mesmas frases (terminadas em ponto); o servidor confere de novo. O AR nasce na filial da sessão, PENDENTE. Na alteração os produtos que ficam são atualizados no lugar e os que saem são apagados (DELETE), como o orphanRemoval do ceif. Linhas sem produto são ignoradas.

Bloqueia

Não é possível alterar: a AR está <status>.

QuandoAlterar um AR fora de PENDENTE (ex.: "… a AR está Finalizado.").

OrigemAlmoxarifadoRecebimentoForm.verificarStatus (lá é a tela que trava).

Todos
Bloqueia

Informe a data de emissão da nota fiscal

QuandoSem data da NF.

OrigemAlmoxarifadoRecebimentoForm.valoresValidos.

Todos
Bloqueia

A data da NF não pode ser maior que a data atual.

QuandoData da NF depois de hoje (relógio do servidor da aplicação).

Todos
Bloqueia

Informe o fornecedor

QuandoSem fornecedor.

OrigemAlmoxarifadoRecebimentoForm.valoresValidos.

Todos
Bloqueia

Informe o número do pedido

QuandoPedido vazio ou zero.

OrigemAlmoxarifadoRecebimentoForm.valoresValidos.

Todos
Bloqueia

Informe o número do documento

QuandoDocumento vazio.

OrigemAlmoxarifadoRecebimentoForm.valoresValidos.

Todos
Bloqueia

O campo documento tem 72 caracteres; o máximo é 60.

QuandoDocumento com mais de 60 caracteres (a coluna é varchar(60)). O documento é latin1: o caractere que a coluna não guarda (travessão, aspas tipográficas) vira '?', como na observação, em vez de derrubar a gravação.

Todos
Bloqueia

Fornecedor <id> não encontrado.

QuandoFornecedor escolhido agora que não existe no cadastro.

Todos
Bloqueia

Fornecedor bloqueado ou encerrado não pode ser selecionado (<razão social> [<id>]).

QuandoFornecedor escolhido agora com emitente.bloqueado = 'T' ou emitente_encerrado = 'T' (a segunda só onde a coluna existe). Regravar um AR com o mesmo fornecedor passa mesmo que ele tenha sido bloqueado depois.

OrigemAlmoxarifadoRecebimentoForm (confere na escolha).

Todos
Bloqueia

Informe ao menos um produto para salvar

QuandoNenhuma linha com produto. A tela confere antes com "Nenhum produto.".

OrigemAlmoxarifadoRecebimentoForm.

Todos
Bloqueia

Informe a quantidade do produto <id>.

QuandoLinha com produto e quantidade vazia, zero ou negativa. Na tela a linha fica marcada com "Quantidade deve ser positiva." e não envia.

OrigemAlmoxarifadoRecebimentoConferenciaMasterDetail.

Todos
Bloqueia

O produto <id> já está cadastrado e não pode ser inserido novamente.

QuandoO mesmo produto em duas linhas. A tela lista antes "Produto, <linha>: <id> repetido" e não envia.

OrigemAlmoxarifadoRecebimentoConferenciaMasterDetail ("Produto duplicado").

Todos
Bloqueia

Produto <id> não encontrado.

QuandoProduto de almoxarifado inexistente.

Todos
Bloqueia

Produto sem unidade de medida: <descrição> [<id>]. Favor entrar em contato com o setor de cadastro (CDM).

Quandoalmoxarifado_produto.unidade vazia — vale também para produto já gravado no AR.

OrigemAlmoxarifadoRecebimentoConferenciaMasterDetail ("Produto sem unidade de medida").

Todos
Bloqueia

Produto inativo: <descrição> [<id>].

QuandoProduto com situacao diferente de 'T' que entra agora. O que já estava gravado no AR passa. O lookup da tela (ALMOXARIFADO_PRODUTO_ATIVO) só oferece ativos.

Todos
Confirma

Já existe AR para este documento e fornecedor (id 1003001, 1003005). Deseja continuar?

QuandoPergunta do servidor (statuscode 409, campo documentoRepetidoConfirmado): outro AR vivo e não cancelado com o mesmo documento, fornecedor e filial. Lista até 3 ids. Respondendo Sim, a tela reenvia com o campo true.

OrigemNão existe no ceif (divergência): em central há 210 documentos repetidos.

AtençãoCom dois AR vivos para o mesmo documento, a trava do 242 lê o status do mais recente — ver J.

Todos
D

Excluir

Exclusão lógica (excluido = 1)
Confirma

Excluir o aviso <id>?

QuandoPergunta da tela. O botão só acende com a linha em PENDENTE.

Todos
Bloqueia

Apenas AR com status Pendente pode ser excluída.

QuandoExcluir fora de PENDENTE.

OrigemAlmoxarifadoRecebimentoController (warn.apenas_ar_status_pendente_pode_ser_excluida); no ceif a grade esconde o botão (setCanDelete(false)).

Todos
E

Liberar conferência

PENDENTE → LIBERADO_CONFERENCIA
Confirma

Liberar o aviso <id> para conferência?

QuandoPergunta da tela. O botão só acende em PENDENTE e com a regra.

Todos
Bloqueia

Usuário sem a permissão: LIBERAR_CONFERENCIA_AR

QuandoSem a regra (master passa). A mesma frase, com o nome da regra, vale para CONFERIR_AR (F) e FINALIZAR_AR (G).

OrigemAlmoxarifadoRecebimentoGrid.criarBotao.

Todos
Bloqueia

Apenas AR com status de PENDENTE pode ser liberada!

QuandoLiberar fora de PENDENTE.

OrigemAlmoxarifadoRecebimentoGrid (mesma frase).

Todos
F

Conferência

A janela de contagem

A conferência é cega: a janela mostra produto e unidade, não a quantidade da nota. Gravar sem "Conferência concluída" só guarda a contagem e a observação. Concluída, o AR passa a CONFERENCIA_CONCLUIDA com quem conferiu e quando.

Bloqueia

Usuário sem a permissão: CONFERIR_AR

QuandoSem a regra. O botão Conferência só acende em LIBERADO_CONFERENCIA e com a regra.

Todos
Bloqueia

Libere a conferência da AR para prosseguir!

QuandoConferir um AR que não está em LIBERADO_CONFERENCIA.

OrigemAlmoxarifadoRecebimentoGrid (mesma frase).

Todos
Bloqueia

Produto <id> não pertence a este aviso.

QuandoA contagem traz uma linha que não é do AR (id da linha de conferência, não do produto). Só por chamada direta ou janela aberta sobre um AR alterado depois.

Todos
Bloqueia

Informe a quantidade conferida.

QuandoQuantidade conferida negativa. Vazia vale zero.

OrigemAlmoxarifadoRecebimentoConferenciaMasterDetail.

Todos
Confirma

Quantidade informada não está de acordo. Realizar uma nova conferência.

QuandoPergunta do servidor (statuscode 409, campo divergenciaConfirmada, com a lista divergentes): concluir com algum produto contado diferente da nota. A tela não pergunta — marca os itens divergentes, mostra "Quantidade informada não está de acordo. Realizar uma nova conferência: reconte os itens marcados, marque de novo "Conferência concluída" e grave - na segunda vez a divergência é aceita, com a observação obrigatória.", desmarca "Conferência concluída" (como o ceif) e o próximo Gravar vai com o campo true.

OrigemAlmoxarifadoRecebimentoConferenciaForm (mesma frase).

AtençãoComo no ceif, a recontagem não é imposta: a recusa vale uma vez por abertura da janela (o conferenciaInvalida do ceif vive no formulário), e a segunda tentativa passa mesmo sem mudar contagem. Marcar os divergentes diz ao conferente quais itens não batem (não a quantidade).

Todos
Bloqueia

Observação obrigatória quando a quantidade informada não está de acordo.

QuandoConcluir com divergência (já confirmada) e observação vazia.

OrigemDivergência: o ceif marca o campo inválido e grava assim mesmo.

Todos
Bloqueia

O campo observação tem 512 caracteres; o máximo é 500.

QuandoObservação da conferência com mais de 500 caracteres (o campo da tela já limita a 500).

Todos
Aviso

(sem mensagem) — caractere fora do latin1 vira '?'

QuandoA observação da conferência vai para uma coluna latin1: acentos do português passam; aspas tipográficas, travessão e emoji viram '?'.

OrigemDivergência: o ceif remove todo caractere fora do ASCII.

Todos
G

Finalizar

CONFERENCIA_CONCLUIDA → FINALIZADO

A tela pede a observação num prompt: "Finalizar o aviso <id>. Observação (obrigatória quando há divergência):". Cancelar o prompt não envia nada.

Bloqueia

Usuário sem a permissão: FINALIZAR_AR

QuandoSem a regra.

Todos
Bloqueia

Apenas AR com status de conferência concluída pode ser finalizada!

QuandoFinalizar fora de CONFERENCIA_CONCLUIDA.

OrigemAlmoxarifadoRecebimentoGrid (mesma frase).

Todos
Bloqueia

Informe a observação para finalizar a AR

QuandoAlgum produto contado diferente da nota e observação vazia. Sem divergência a observação é opcional.

OrigemAlmoxarifadoRecebimentoGrid (mesma frase).

Todos
Bloqueia

O campo observação da finalização tem 410 caracteres; o máximo é 400.

QuandoObservação da finalização com mais de 400 caracteres; no cancelamento, "O campo observação do cancelamento tem … caracteres; o máximo é 400." A tela confere antes de enviar: "A observação tem 410 caracteres; o máximo é 400."

Todos
H

Cancelar

→ CANCELADO / CANCELADO_APOS_FINALIZACAO

A tela pede a observação num prompt: "Cancelar o aviso <id>. Informe a observação:". Cancelar grava também data_finalizacao e o período de permanência.

Bloqueia

A AR selecionada já está cancelada.

QuandoCancelar um AR em CANCELADO ou CANCELADO_APOS_FINALIZACAO.

OrigemAlmoxarifadoRecebimentoGrid (mesma frase).

Todos
Bloqueia

Usuário sem permissão para cancelar AR's finalizadas (CANCELAR_AR_FINALIZADA).

QuandoCancelar um AR FINALIZADO sem a regra.

Todos
Bloqueia

Usuário sem permissão para cancelar AR's (CANCELAR_AR).

QuandoCancelar um AR não finalizado sem a regra.

Todos
Bloqueia

Informe a observação para cancelar a AR

QuandoObservação vazia — sempre obrigatória no cancelamento.

OrigemAlmoxarifadoRecebimentoGrid (mesma frase).

Todos
I

Impressos

Menu Imprimir ▾, dos AR marcados

Três impressos, uma folha por AR, com o cabeçalho de três caixas da filial:

  • Para conferência manual (MANUAL) — aceita LIBERADO_CONFERENCIA e FINALIZADO; sem a quantidade da nota, com a coluna "Quantidade recebida" em branco e "Responsável conferência:" para assinar;
  • AR conferência concluída (CONFERENCIA) — aceita CONFERENCIA_CONCLUIDA e FINALIZADO; título em vermelho "CONFERÊNCIA NÃO FINALIZADA", informada × recebida, divergente em vermelho, "RECEBIMENTO COM DIVERGÊNCIA" e a observação;
  • AR finalizada (FINALIZADO) — só FINALIZADO; o mesmo, com a observação da finalização.

O botão Imprimir genérico (XLS/PDF) imprime a grade como está na tela.

Bloqueia

Selecione ao menos uma AR!

QuandoPedido de impresso sem nenhum AR (a tela não envia sem linha).

OrigemAlmoxarifadoRecebimentoGrid (mesma frase).

Todos
Bloqueia

Tipo de impresso desconhecido: <tipo>.

QuandoSó por chamada direta com tipo fora de MANUAL, CONFERENCIA, FINALIZADO.

Todos
Bloqueia

Apenas uma AR liberada para conferência pode ser impressa. (AR 1003001 está Pendente)

QuandoImpresso MANUAL e nenhum dos marcados aceito. Entre parênteses, o motivo de cada um.

OrigemAlmoxarifadoRecebimentoGrid: lá a frase é "Não é possível imprimir a AR de código <id>, apenas uma AR liberada para conferência pode ser impressa", uma caixa por AR.

Todos
Bloqueia

Apenas uma AR com conferência concluída pode ser impressa! (…)

QuandoImpresso CONFERENCIA e nenhum dos marcados em CONFERENCIA_CONCLUIDA ou FINALIZADO.

OrigemAlmoxarifadoRecebimentoGrid ("… com CONFERENCIA_CONCLUIDA pode ser impressa!").

Todos
Bloqueia

Apenas uma AR finalizada pode ser impressa! (…)

QuandoImpresso FINALIZADO e nenhum dos marcados finalizado.

OrigemAlmoxarifadoRecebimentoGrid (mesma frase).

Todos
Aviso

AR <id> está <status> | AR <id> não encontrada

QuandoParte dos marcados não é aceita pelo impresso: o PDF sai com os demais, e os de fora vêm no cabeçalho X-Avisos, que a tela mostra na faixa cinza.

Todos
Bloqueia

Falha ao gerar o PDF: <causa>

QuandoErro na montagem do PDF.

Todos
Aviso

(sem mensagem) — "CONFERÊNCIA NÃO FINALIZADA" num AR finalizado

QuandoO impresso "AR conferência concluída" aceita AR FINALIZADO e sai com o título vermelho "… - CONFERÊNCIA NÃO FINALIZADA" mesmo assim. Para um AR finalizado, usar "AR finalizada".

OrigemO ceif aceita os mesmos dois status nesse impresso.

Todos
J

Efeito na Compra de Almoxarifado (242)

Onde o AR é cobrado

No Brasil, nos nove tipos de compra com documento numérico e na filial que exige aviso (filial.controla_ar_almox = 'T', ou apelido sem "MATRIZ" com 5 ou mais avisos na filial), a compra procura o AR vivo e não cancelado com o mesmo documento, fornecedor e filial.

Bloqueia

Sem aviso de recebimento!

QuandoNa gravação da compra (242): nenhum AR vivo e não cancelado para o documento e fornecedor.

Origemmenu242.prg:4750 e :8415; no porte AlmoxarifadoCompraService.

Brasil
Bloqueia

Sem aviso de recebimento finalizado!

QuandoHá AR, mas o status lido não é FINALIZADO. Cancelar um AR finalizado volta a travar a compra.

AtençãoCom dois AR vivos para o mesmo documento vale o mais recente (ORDER BY data_inclusao DESC, id DESC); o legado lê o primeiro que o banco devolver. É também o motivo da pergunta de documento repetido (C).

Brasil
K

Permissões

Quem pode passar
RegraPara quê
LIBERAR_CONFERENCIA_ARLiberar conferência
CONFERIR_ARConferência
FINALIZAR_ARFinalizar
CANCELAR_ARCancelar AR não finalizado
CANCELAR_AR_FINALIZADACancelar AR finalizado
HABILITAR_FILTRO_MULTI_FILIAL_AR"Multi filial" na grade
ALMOXRCBAbrir a tela e qualquer ação (o @RolesAllowed do ceif)
ALMOXRCB_C / _U / _D / _PIncluir / alterar / excluir / imprimir os três impressos (o verifyRole do ceif)

Todas já estão no catálogo (regra_especifica, sistema CEIF); concedem-se no Acesso dos Grupos (444) ou no usuário (443), e o master passa em todas. As ALMOXRCB* valem como regra específica (criadas em 24/09/2026 por scripts/sql/regra_almoxrcb.sql, sem concessões) ou como a regra geral do ceif (controle_acesso_grupo_regra / controle_acesso_usuario_regra), onde estão as de hoje: em central, 244 usuários têm ALMOXRCB (grupos 113, ADM, ALM, ALM_M, CONS e diretas), 99 _C, 86 _U, 78 _D e 236 _P, mais os 9 masters. Sem ALMOXRCB a tela mostra "Você não tem permissão para o Aviso de Recebimento. Peça ao administrador a regra "ALMOXRCB"." e não lista; o servidor recusa com "Você não tem permissão para o Aviso de Recebimento [ALMOXRCB]." e, na ação, "Você não tem permissão para esta ação no Aviso de Recebimento [ALMOXRCB_C]." (e _U, _D, _P). Os botões ficam desabilitados com a dica da regra.

L

Como o erro chega na tela

Para o QA reproduzir e reportar

Recusa de regra: HTTP 200 com statuscode 400 e a frase — no formulário e na conferência aparece no rodapé da janela; nas ações da grade (liberar, finalizar, cancelar, excluir, imprimir), na faixa vermelha acima da grade. Pergunta do servidor: statuscode 409 com o campo a reenviar como true (documentoRepetidoConfirmado no formulário, divergenciaConfirmada na conferência). Avisos de impresso vêm no cabeçalho X-Avisos. As mensagens 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.

M

Regras chumbadas no código

Esperadas — não abrir como defeito
O quêValorOnde
crédito no rodapé dos impressos"Desenvolvido por <autor>"system_config.AUTOR (NfeRegrasTenant.desenvolvedor, como a DANFE e o demonstrativo do 263); sem a chave, "Plissoft Tecnologia"
statusos seis nomes do StatusAR do ceifAlmoxarifadoRecebimentoRepository
abertura da gradeúltimos 30 diastela
tamanhosdocumento 60, observação da conferência 500, finalização/cancelamento 400tamanho das colunas
N

Diferenças e decisões pendentes

O que muda em relação ao ceif
PontoSituação
alcance de filialas filiais do usuário em toda ação; no ceif só na grade
excluirexiste (só PENDENTE, exclusão lógica); no ceif a grade esconde o botão
documento repetidovira pergunta (409); o ceif não confere
observação da conferência com divergênciaexigida de verdade; o ceif marca inválido e grava
"no máximo duas trocas por linha"não portada (verificarAlteracaoQtdConferida do ceif)
acentos na observaçãopreservados (só o que o latin1 não guarda vira '?'); o ceif remove tudo fora do ASCII
fornecedor bloqueado / produto inativosó recusam quando entram agora; o ceif confere na escolha
impressosum PDF com todos os aceitos e os de fora em aviso; o ceif abre uma caixa de erro por AR
acesso à telaALMOXRCB + _C/_U/_D/_P, como o ceif (24/09/2026)
documento com caractere fora do latin1vira '?', como a observação (24/09/2026)
"recontar"não imposto, como no ceif: a recusa vale uma vez por abertura da janela e desmarca "Conferência concluída"
datas de abertura"hoje" é a data local (hoje() de utils/formato.js)
AR duplicado no 242vale o mais recente (24/09/2026)
testecentral, filial 5: 30 de 30 por harness (inclusive o 242 recusando sem AR, com AR pendente e concluído, passando com o finalizado e voltando a recusar depois de cancelado); os três PDFs conferidos renderizados. Não testado na tela

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