CD_OPERESTORNOENT - Operação Padrão de Estorno de Entrada
Tela de configuração: MEQ001 - Parâmetros do Estoque Localização: Operações Padrão Tabela:
PARMESTOQUE.CD_OPERESTORNOENTTipo:INTEGER(código de operação) Valor padrão: indefinido (campo editável livre) FK:RPARMESTOQUE_OPERESTORNOENT→OPERACAO(CD_OPERACAO)
Tela e campo
| Elemento | Detalhe |
|---|---|
| Tela | MEQ001 — Parâmetros do Estoque |
| Aba | Operações Padrão |
| Componente | edtCD_OPERESTORNOENT (TDBEdit) |
| DataField | CD_OPERESTORNOENT |
| DataSource | dmMEQ001.dsPARMESTOQUE |
| Tipo visual | Campo de texto editável com lookup por <F9> |
| Coluna DB | CD_OPERESTORNOENT (DOM_INTEGER) |
Procedures impactadas
Rotinas Delphi com referência direta ao campo
| Rotina | Arquivo | Comportamento |
|---|---|---|
TfrmMEQ001.edtCD_OPERESTORNOENTKeyDown | source/MEQ001/UMEQ001.pas | Ao pressionar <F9>, abre busca de operações na tabela OPERACAO com filtro Tp_Operacao='E' (entrada) e St_PrecoMedio='S'. O código selecionado é gravado no campo. |
TdmMEQ001.tabPARMESTOQUECD_OPERESTORNOENTValidate | source/MEQ001/UdmMEQ001.pas | Ao validar o campo, cria objeto TOperacao com Tp_Operacao='E' e St_PrecoMedio='S', chama ValidaOperacao() para verificar se o código informado é uma operação de entrada válida. Preenche DS_OPERESTORNOENT com a descrição da operação. |
TfrmMEQ006.btnSalvarClick | source/MEQ006/UMEQ006.pas | Inclui o campo em SELECT genérico de parâmetros (listagem), sem lógica de negócio associada. |
Referências SQL diretas ao campo
| Procedure/Script | Arquivo | Uso |
|---|---|---|
GERA_ORDEMPRODUCAO | Scripts/GERA_ORDEMPRODUCAO.sql | Lê o parâmetro da PARMESTOQUE. Quando TP_ORDEMPRODUCAO = 'E' (entrada/estorno), atribui V_CD_OPERENTRADA = V_CD_OPERESTORNOENT (linha ~299) e V_CD_OPERACAO = V_CD_OPERESTORNOENT (linha ~967) para gerar a movimentação de entrada de estorno de ordem de produção. |
Candidatas por uso da tabela PARMESTOQUE (sem referência direta ao campo)
As procedures abaixo consultam PARMESTOQUE mas não citam CD_OPERESTORNOENT literalmente. Não foi encontrado impacto funcional direto a elas deste parâmetro:
AJUSTA_ORDEMPRODPEDANTECIPADO, ALTERACAO_BANDA, ATUALIZA_CONSUMOMEDIO, ATUALIZA_ESTOQUEDIAPESSOA, CALCULA_FORMACAOPRECOVENDA, CANCELA_ESTOQUE, CONFIRMA_ORDEMSERVICO, CONFIRMA_ORDEMSERVICOMETAL, GERA_ESTOQUE, GERA_ESTOQUE_NOTAFISCAL, GERA_ESTOQUEPSALT, GERA_NOTAFISCALESTOQUE, GERA_PRODENVELOPAMENTO, GERA_PRODLOTEPRODUCAO, GERA_PRODMONTAGEMRECAP, GERA_PRODVULCANIZACAO, GERA_SPEDBLOCOL, GERA_SPEDECFBLOCOL, GRAVA_AVISOS, MONTA_ORDEMPRODITEMPEDIDOGRADE.
Opções disponíveis
Este parâmetro não opera por letras/opções fixas — ele armazena o código de uma operação de estoque cadastrada na tabela OPERACAO (filtrada por TP_OPERACAO = 'E' e ST_PRECOMEDIO = 'S'). A tabela abaixo descreve o comportamento do campo no contexto do sistema.
| O que faz | Detalhe |
|---|---|
| Armazena código de operação | Campo editável que recebe o código (CD_OPERACAO) de uma operação cadastrada com TP_OPERACAO = 'E' (entrada). |
Lookup via <F9> | Pressionar <F9> abre a busca de operações filtrada para entrada com preço médio. |
| Validação obrigatória | O sistema valida que o código informado é uma operação de entrada ativa e válida. |
| Impacto no estorno de produção | Quando a ordem de produção é do tipo "E" (entrada/estorno), a procedure GERA_ORDEMPRODUCAO usa essa operação para gerar o lançamento de entrada correspondente. |
| Campo opcional | Não há imposição de preenchimento obrigatório no código; se vazio, COALESCE pode ignorar o estorno. |
Operação configurada (valor preenchido)
Simulação passo a passo
- Acesse MEQ001 — Parâmetros do Estoque.
- Na aba Operações Padrão, localize o campo Operações (
CD_OPERESTORNOENT). - Pressione
<F9>ou digite manualmente o código de uma operação cadastrada (ex:101— "Entrada Estorno Produção"). - O sistema preenche a descrição ao lado e valida que a operação é do tipo Entrada com Preço Médio.
- Salve o registro.
Resultado esperado: O código da operação é persistido em PARMESTOQUE.CD_OPERESTORNOENT. Ao executar um estorno de ordem de produção de entrada, o sistema utilizará essa operação para gerar a movimentação de estoque.
Exceção / Importante: A operação configurada deve ter
TP_OPERACAO = 'E'eST_PRECOMEDIO = 'S'. Caso o código informado não atenda a esses critérios, a validação (ValidaOperacao) rejeitará o valor. Se um usuário precisar de operações com tipo diferente, configurar outra rotina — este parâmetro é específico para estornos de entrada.
Operação não configurada (campo vazio/null)
Simulação passo a passo
- Acesse MEQ001 — Parâmetros do Estoque.
- Na aba Operações Padrão, deixe o campo Operações (
CD_OPERESTORNOENT) em branco. - Salve o registro.
Resultado esperado: O parâmetro fica como NULL. Quando GERA_ORDEMPRODUCAO ler o valor, V_CD_OPERENTRADA e V_CD_OPERACAO ficarão nulos em cenários de estorno de entrada, podendo impedir a geração da movimentação ou gerar um lançamento sem operação definida.
Exceção / Importante: A procedure
GERA_ORDEMPRODUCAOpossui verificação para parâmetros faltantes — se tantoCD_OPERENTRADAquantoCD_OPERSAIDAestiverem nulos, retorna a mensagem: "Os Parâmetros do Estoque não estão Cadastrados. Verifique [MEQ001]!". Para o par de estorno especificamente, a ausência deCD_OPERESTORNOENTpode causar falha na geração do estorno de entrada.
Regra geral
CD_OPERESTORNOENTdefine qual operação de entrada (tipoE) será utilizada automaticamente quando o sistema precisar gerar um estorno de entrada de produção.- A operação deve estar cadastrada na tabela
OPERACAOcom:TP_OPERACAO = 'E'(entrada)ST_PRECOMEDIO = 'S'(custo pelo preço médio)
- O lookup por
<F9>já filtra automaticamente por esses critérios. - O parâmetro irmão
CD_OPERESTORNOSAI(mesma aba) controla o estorno de saída.
Tabela comparativa resumida
| Situação | Campo CD_OPERESTORNOENT | Comportamento no estorno de entrada |
|---|---|---|
| Preenchido | Código válido de operação Entrada/Preço Médio | GERA_ORDEMPRODUCAO usa essa operação para gerar a movimentação de entrada. |
| Inexistente | NULL | Sem operação de estorno definida — pode gerar erro ou mensagem de parâmetro não cadastrado. |
| Inválido | Código de operação que não é Entrada ou sem Preço Médio | Validação no OnValidate do campo rejeita o valor com erro. |