FJFrigo · Faturamento · menu2321 — Ordem de Compra

Validações da Ordem de Compra

A autorização prévia da compra: sem ela, a Compra de Carne não entra. Aqui estão as regras de gravação, as seis permissões que a autorização exige por tipo, e as travas de alteração.

Tela: Ordem de Compra (2321) Autorizar exige permissão por tipo Autoridade: o backend — a tela é espelho

Bloqueia

Recusa e não grava. statuscode 400 com a frase abaixo.

Aviso

Comportamento que surpreende sem ser erro.

Para que serve

Autorizar a compra antes de ela acontecer. A Compra de Carne (2322) exige uma ordem autorizada.

A permissão é por tipo

Compra, transferência, devolução, reetiquetagem e ajuste têm regras diferentes.

A

O que a ordem faz no fluxo

Para quem atende

A ordem de compra é o de acordo prévio: alguém com alçada autoriza que aquela compra pode acontecer, com aquele fornecedor, naquele valor. Só depois a mercadoria entra pela Compra de Carne (2322), que exige a ordem autorizada.

O tipo de faturamento define o que a ordem é — compra, transferência entre unidades do grupo, devolução, reetiquetagem, ajuste de entrada — e cada um exige uma permissão diferente para autorizar (seção F). É o desenho central desta tela.

Ordem autorizada não se altera. Diferente do Pedido de Venda, aqui regravar não desautoriza sozinho: é preciso desautorizar antes, de propósito.

As parcelas não têm tabela: elas são derivadas da coluna de prazo — uma lista de dias. O valor é repartido truncando na casa da moeda, e a sobra fica na última.

B

Emitente e comprador

Conferido contra o cadastro
Bloqueia

Emitente bloqueado, procure o gerente.

ConferirMarcador Bloqueado no cadastro do emitente — o mesmo que trava a tela de Títulos.

Todos
Bloqueia

Comprador/Vendedor não pode ser o mesmo do emitente.

QuandoO comprador informado é o próprio fornecedor.

Todos
Bloqueia

Informe o comprador.

QuandoFora do Brasil o comprador é obrigatório; no Brasil, não.

ParaguaiBolívia
C

CNPJ próprio e transferência

Compra dentro do grupo

O sistema compara a raiz do CNPJ do fornecedor com a da filial para saber se é a mesma empresa — e daí decide se aquilo é compra ou transferência. Os dois erros abaixo são as duas metades dessa regra.

Bloqueia

Esse CNPJ não pode ter compra - é o CNPJ da própria empresa.

QuandoTipo de compra com fornecedor da mesma raiz de CNPJ da filial. Entre unidades da mesma empresa é transferência, não compra. A filial marcada como loja fica fora — desde 13/09/2026 pela coluna; antes pelo apelido LOJA.

Brasil
Bloqueia

Esse CNPJ não pode ter transferência [12.345.678/0001-99] [12345678].

QuandoTipo de transferência com fornecedor de outra raiz de CNPJ. A mensagem traz o CNPJ do emitente e a raiz da filial, para comparar.

Brasil
D

Devoluções

Exigem mais dados
Bloqueia

Devolução sem motivo selecionado.

QuandoQualquer tipo de devolução sem o motivo escolhido.

Todos
Bloqueia

Devolução sem SIF informado.

QuandoDevolução em filial distribuidora. O SIF é o registro sanitário do estabelecimento de origem.

Brasil
Bloqueia

Sem documento de venda referenciado.

QuandoDevolução de mercado interno sem o documento da venda original. É ele que amarra a devolução à saída.

Brasil
Bloqueia

Devolução lançada N dias depois da saída […]: é preciso a permissão ORDEM_COMPRA_AUTORIZA_DEVOLUCAO_2DIAS_MAIS

QuandoA devolução é lançada mais de dois dias depois da saída original.

PermissãoORDEM_COMPRA_AUTORIZA_DEVOLUCAO_2DIAS_MAIS. Master passa.

Todos
E

Parcelas, valores e período

O fechamento
Bloqueia

Valor das parcelas (12500.00) diferente do valor total líquido (12480.00).

Valor das parcelas em branco.

O líquido aquiÉ a soma dos itens mais acréscimos menos descontos. Diferente da venda e da compra de carne, a ordem não soma ST, frete nem seguro.

Todos
Bloqueia

Período já fechado: … precisa ser posterior a 2026-07-31.

QuandoA data cai dentro do período já fechado. A data limite vem na mensagem.

Todos
Aviso

Produto de outra filial é recusado

ComportamentoOnde os produtos não são compartilhados entre filiais, um produto de outra filial é barrado na gravação — mesmo que o id tenha sido digitado direto, sem passar pela busca.

Todos
F

Autorizar — a permissão por tipo

Seis regras diferentes

Esta é a parte que mais gera chamado de permissão no faturamento: não existe uma permissão de "autorizar ordem". A regra necessária depende do tipo de faturamento da ordem.

Tipo da ordemRegra necessária
CompraORDEM_COMPRA_AUTORIZA_COMPRA
TransferênciaORDEM_COMPRA_AUTORIZA_TRANSFERENCIA
DevoluçãoORDEM_COMPRA_AUTORIZA_DEVOLUCAO
Devolução de carne com ossoORDEM_COMPRA_AUTORIZA_DEVOLUCAO_CARNE_COM_OSSO — além da de devolução
ReetiquetagemORDEM_COMPRA_AUTORIZA_REETIQUETAGEM
Ajuste de entradaORDEM_COMPRA_AUTORIZA_AJUSTE_ENTRADA
Devolução lançada tardeORDEM_COMPRA_AUTORIZA_DEVOLUCAO_2DIAS_MAIS
Bloqueia

Usuário não tem permissão para autorizar ordens de compra.

Ordem de compra 100526838 […]: é preciso a permissão ORDEM_COMPRA_AUTORIZA_REETIQUETAGEM

Como lerQuando a mensagem nomeia a regra, é ela que falta — conceda essa, não outra da família.

PermissãoA da tabela acima, conforme o tipo. Usuário master passa em todas.

Todos
G

Alterar e excluir

Travas de estado
Bloqueia

Não é possível alterar: esta ordem de compra já foi autorizada. Desautorize antes.

QuandoA ordem está autorizada. Diferente do Pedido de Venda, regravar não desautoriza sozinho — e isso é de propósito: as duas telas parecem iguais e não são.

Todos
Bloqueia

Ordem de embarque vinculada - não é possível excluir.

QuandoJá há caixas lidas contra essa ordem no embarque. O caminho é desfazer o embarque primeiro.

Todos
Bloqueia

Esta filial usa banco de dados próprio da indústria, e a checagem de ordem de […] que ainda não foi portada.

QuandoFilial que opera com o sistema industrial em banco separado. A conferência correspondente ainda não existe na versão web, e a tela recusa em vez de seguir sem ela.

Brasil
H

Permissões

Manutenção › Acesso dos Grupos (444)

Esta é a tela com o conjunto de permissões mais completo do faturamento — as sete regras do sistema antigo estão todas implementadas.

Conceder a regra certa: a mensagem nomeia a regra que falta. Dar ORDEM_COMPRA_AUTORIZA_COMPRA a quem precisa autorizar devolução não resolve — as famílias não se substituem.

Uma regra cadastrada que nada consulta: ORDEM_COMPRA_AUTORIZA_PY — ela não é usada nem aqui nem no sistema antigo. Concedê-la não muda nada.

Master passa em todas as regras nomeadas.

I

Travas de campo — o que chega desabilitado

Não é permissão — o campo não é digitável

Esta tela tem uma só, e ela não depende de nada: a armazenagem interna não se edita aqui, em país nenhum e para usuário nenhum.

Bloqueia

Esta ordem não permite alterar a armazenagem interna — o campo não é digitável nesta tela.

QuandoO marcador mudou numa alteração. Na inclusão não há o que conferir: ele nasce desmarcado e assim é gravado.

O valor gravado é preservadoOrdem que já está marcada continua marcada — o que se recusa é mudar.

PermissãoNenhuma. Não há regra que libere, nem para o usuário master.

Todos

Por que existem ordens marcadas se ninguém pode marcar. No sistema antigo o campo já foi editável em duas cidades — o teste está comentado no código-fonte, e o que sobrou foi o desabilitar incondicional. Medido: 60 ordens estão marcadas contra 123.417 desmarcadas, e elas são anteriores ao comentário. Não é defeito e não precisa de correção; precisa ser sabido quando alguém perguntar por que o campo aparece marcado e cinza.

Fat. Referência (portado): no Brasil, fora das filiais LOJA, com o campo Fat. Referência preenchido sem hífen (com hífen é fatura paraguaia e a regra não vale), o sistema busca a venda do mesmo cliente (validaDocumentoReferencia do sistema antigo) e: o comprador passa a ser o vendedor da venda e o coordenador o do pedido dela, os dois campos ficam travados na tela, e a chave da NF-e da venda entra no começo da observação (CHAVE:<44> ). O servidor reaplica a regra ao gravar: comprador e coordenador são sempre os da venda, seja o que for que veio no pedido.

Recusas: Documento referência não existe [doc]: nenhuma venda deste cliente com esse documento. (a tela limpa o campo) e Existe uma chave referenciada que não corresponde com a venda … (chave …). (a observação já tem outra chave). Fora de propósito: o % de comissão que o sistema antigo lê do pedido da venda não é copiado (a ordem não grava perc_comissao), e venda sem NF-e não altera a observação.

J

Como o erro chega na tela

Para o QA reproduzir e reportar

Toda resposta sai com HTTP 200; quem diz o que aconteceu é o statuscode no corpo — 400 para as recusas deste documento.

Cabeçalho e grade numa transação só. A grade de produtos é regravada inteira a cada gravação — as linhas antigas são marcadas como excluídas e as novas inseridas.

Ao abrir chamado, copie o código de ocorrência de 8 caracteres dos erros inesperados.

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