Pular para o conteúdo principal

CD_OPERESTORNOSAI — Operação de Estorno de Saída

Tela de configuração: MEQ001 — Parâmetros de Estoque Localização: Aba "Operações Padrão" Tabela / Campo: PARMESTOQUE.CD_OPERESTORNOSAI (INTEGER) Chave estrangeira: RPARMESTOQUE_OPERESTORNOSAI → OPERACAO.CD_OPERACAO Componente: edtCD_OPERESTORNOSAI (TDBEdit)

Finalidade​

Armazena a operação de estoque do tipo Saída utilizada para estornos (reversão) de movimentações de produção. Quando uma Ordem de Produção é classificada como tipo Estorno (TP_ORDEMPRODUCAO = 'E'), o sistema substitui a operação de saída padrão por este código, gerando uma movimentação de estoque inversa.

Campos envolvidos​

CampoTabelaTipoDescrição
CD_OPERESTORNOSAIPARMESTOQUEINTEGER (FK)Código da operação de estorno de saída
DS_OPERESTORNOSAI—LOOKUPDescrição da operação (via JOIN OPERACAO.DS_OPERACAO)
TP_ORDEMPRODUCAOORDEMPRODUCAOCHAR(1)Tipo da ordem; quando 'E' ativa o uso desta operação

Telas impactadas​

TelaEfeito
MEQ001Configuração do parâmetro (tela atual)
MEQ006Persiste CD_OPERESTORNOSAI ao salvar parâmetros de estoque via btnSalvarClick

Opções disponíveis​

O campo é editável e aceita qualquer código de operação de estoque do tipo Saída com Preço Médio ativo. Não se trata de uma lista fixa de opções — o valor é um código numérico que referencia a tabela OPERACAO.

O que fazDetalhe
EditávelSim — campo numérico com busca via <F9>
ExigeOperação válida do tipo Saída (Tp_Operacao = 'S') com Preço Médio ativo (St_PrecoMedio = 'S')
RestriçãoSe a operação informada não atender os critérios, o sistema exibe erro de validação
Pode ficar vazioSim — campo opcional; se vazio, a reversão de estoque em ordens de estorno pode não ser processada corretamente

Simulação passo a passo​

  1. Acesse MEQ001 — Parâmetros de Estoque.
  2. Navegue até a aba Operações Padrão.
  3. Localize o campo Operação de Estorno Saída (CD_OPERESTORNOSAI).
  4. Pressione <F9> no campo para abrir a busca de operações.
  5. Selecione uma operação do tipo Saída com Preço Médio ativo (ex: operação de código 5).
  6. O sistema preenche automaticamente a descrição da operação no campo DS_OPERESTORNOSAI ao lado.
  7. Salve os parâmetros.

Resultado esperado: O código da operação selecionada é gravado em PARMESTOQUE.CD_OPERESTORNOSAI. A partir desse momento, toda Ordem de Produção cujo tipo seja Estorno (TP_ORDEMPRODUCAO = 'E') utilizará esta operação para a movimentação de estoque de saída, em vez da operação de saída padrão (CD_OPERPRODSAI).

Exceção / Importante: Se o campo ficar vazio e uma Ordem de Produção do tipo Estorno for confirmada, o sistema pode gerar movimentação sem operação de estoque válida. Sempre preencha este parâmetro quando o módulo de Produção estiver ativo.

Simulação — Validação com operação inválida​

  1. Acesse MEQ001 → aba Operações Padrão.
  2. No campo Operação de Estorno Saída, digite o código de uma operação que seja do tipo Entrada (em vez de Saída).
  3. Saia do campo (Tab).

Resultado esperado: O sistema exibe uma mensagem de erro indicando que a operação informada não é do tipo Saída ou não possui Preço Médio ativo, impedindo a gravação.

Simulação — Busca via <F9>​

  1. Acesse MEQ001 → aba Operações Padrão.
  2. Posicione o cursor no campo Operação de Estorno Saída.
  3. Pressione <F9>.

Resultado esperado: Abre a tela de busca de operações de estoque, já filtrada para exibir apenas operações do tipo Saída com Preço Médio ativo. Selecione a operação desejada e o código é preenchido automaticamente no campo.

Procedures impactadas​

Rotinas Delphi com referência direta ao campo​

RotinaArquivoLinhaEvidência
TfrmMEQ001.edtCD_OPERESTORNOSAIKeyDownUMEQ001.pas1733Busca operação via <F9> (filtro: Saída + Preço Médio)
TdmMEQ001.tabPARMESTOQUECD_OPERESTORNOSAIValidateUdmMEQ001.pas1324Valida operação: Tp_Operacao = 'S', St_PrecoMedio = 'S'
TfrmMEQ006.btnSalvarClickUMEQ006.pas1092Persiste CD_OPERESTORNOSAI ao salvar parâmetros

Referências SQL diretas ao campo​

Procedure/ScriptArquivoLinhaEvidência
GERA_ORDEMPRODUCAOGERA_ORDEMPRODUCAO.sql114Lê CD_OPERESTORNOSAI de PARMESTOQUE
GERA_ORDEMPRODUCAOGERA_ORDEMPRODUCAO.sql347Usa operação de estorno quando TP_ORDEMPRODUCAO = 'E'
GERA_ORDEMPRODUCAOGERA_ORDEMPRODUCAO.sql856Usa operação de estorno quando TP_ORDEMPRODUCAO = 'E' (segundo bloco)

Candidatas por uso da tabela PARMESTOQUE​

Diversas procedures fazem SELECT/JOIN em PARMESTOQUE sem citar o campo CD_OPERESTORNOSAI literalmente. Não foi encontrada referência direta ao campo além das rotinas listadas acima.

Comportamento no script GERA_ORDEMPRODUCAO​

O script GERA_ORDEMPRODUCAO é o principal consumidor deste parâmetro:

  1. Leitura: Ao iniciar, o script lê CD_OPERESTORNOSAI da tabela PARMESTOQUE para a empresa informada (linha 114).
  2. Aplicação: Se o tipo da Ordem de Produção for Estorno (TP_ORDEMPRODUCAO = 'E'), a variável V_CD_OPERACAO recebe o valor de CD_OPERESTORNOSAI, substituindo a operação de saída padrão (CD_OPERPRODSAI).
  3. Efeito: A movimentação de estoque gerada pela confirmação da ordem utiliza esta operação de estorno em vez da operação de saída normal, produzindo um lançamento reverso.

Exceção / Importante: No script GERA_ORDEMPRODUCAO.sql (linhas 113–120), observa-se que as variáveis V_CD_OPERESTORNOSAI e V_CD_OPERESTORNOENT estão invertidas na cláusula INTO em relação ao SELECT. Ou seja, o valor de CD_OPERESTORNOENT do banco é atribuído a V_CD_OPERESTORNOSAI e vice-versa. Isso significa que, na prática, quando o código verifica V_CD_OPERESTORNOSAI nas linhas 347 e 856, ele está utilizando o valor de CD_OPERESTORNOENT. Este comportamento deve ser considerado ao analisar o impacto real do parâmetro na geração de Ordens de Produção.