Pular para o conteúdo principal

CD_OPERACERTOSAI - Acerto de Inventário (Saída)

Tela de configuração: MEQ001 - Parâmetros de Estoque Localização: Aba &Requisição / Recebimento Tabela: PARMESTOQUE.CD_OPERACERTOSAI Tipo: INTEGER (código de operação de estoque) Valor padrão: (vazio)


Descrição​

Define qual operação de estoque será utilizada para registrar automaticamente as saídas geradas pelo acerto de inventário (balanço de estoque). Quando o sistema realiza um inventário e detecta que a quantidade física é menor que a quantidade registrada no sistema, gera uma movimentação de saída utilizando esta operação.

O parâmetro complementar CD_OPERACERTOENT (configurado na mesma tela) controla a operação de entrada quando a diferença é positiva.


Telas impactadas​

TelaDescrição
MEQ001Parâmetros de Estoque — configuração do parâmetro
TEQ001Cadastro de Operações de Estoque — cadastro das operações disponíveis
MEQ014Consulta que utiliza o parâmetro para processamento de requisições

Campos envolvidos​

CampoTabelaDescrição
CD_OPERACERTOSAIPARMESTOQUECódigo da operação de estoque para acerto de saída
DS_OPERACERTOSAI(join com OPERACAO)Descrição da operação (preenchida automaticamente via validação)
CD_OPERACERTOENTPARMESTOQUECódigo da operação de estoque para acerto de entrada (complementar)

Regras de Validação​

Ao informar um código no campo, o sistema executa as seguintes validações automáticas:

#RegraMensagem de Erro
1A operação deve existir no cadastro"A Operação de Estoque não está Cadastrada [TEQ001]!"
2A operação deve estar ativa (ST_ATIVO = 'S')"A Operação de Estoque não está Ativa [TEQ001]!"
3A operação deve ser do tipo Saída (TP_OPERACAO = 'S')"A Operação de Estoque deve ser de Saída [TEQ001]!"
4A operação não pode ser ao custo médio (ST_PRECOMEDIO = 'N')"A Operação de Estoque não pode ser ao Custo Médio [TEQ001]!"

Importante: A busca por F9 já filtra automaticamente operações com ST_ATIVO = 'S', TP_OPERACAO = 'S' e ST_PRECOMEDIO = 'N', mas a validação no dataset (evento OnValidate) reforça essas mesmas regras caso o usuário digite o código manualmente.


Opções disponíveis​

O campo aceita qualquer código de operação de estoque que satisfaça as regras de validação acima. Não existe uma lista fixa de valores — depende das operações cadastradas na tela TEQ001 para a empresa.

O que fazDetalhe
EditávelSim — campo do tipo edit vinculado ao DataField
ExigeOperação de estoque cadastrada, ativa, tipo Saída, sem custo médio
RestriçãoOperações de Entrada (TP_OPERACAO = 'E') e operações com custo médio (ST_PRECOMEDIO = 'S') são rejeitadas
PreenchimentoManual (digitação do código) ou via pesquisa (F9)

Exemplo de operação válida​

Uma operação cadastrada em TEQ001 com as seguintes características pode ser utilizada:

CampoValorObservação
CD_OPERACAO15Código da operação
DS_OPERACAOAcerto Inventário SaídaDescrição livre
TP_OPERACAOSTipo Saída (obrigatório)
ST_ATIVOSAtivo (obrigatório)
ST_PRECOMEDIONNão é custo médio (obrigatório)

Uso no Fluxo de Estoque — Acerto de Inventário​

Quando o sistema realiza o acerto de inventário (balanço), o fluxo é:

1. Comparar QT_TOTAL (contagem física) com QT_ESTOQUE (sistema)
2. Calcular diferença = QT_TOTAL − QT_ESTOQUE
3. Se diferença > 0 (sobra) → INSERT MOVESTOQUE usando CD_OPERACERTOENT
4. Se diferença < 0 (falta) → INSERT MOVESTOQUE usando CD_OPERACERTOSAI
5. Atualizar ESTOQUE.QT_ESTOQUE e VL_PRECOMEDIO

O parâmetro CD_OPERACERTOSAI é utilizado exclusivamente no passo 4, quando a contagem física revela uma quantidade menor do que o estoque registrado.


Parâmetro complementar​

ParâmetroFunçãoConfigurado em
CD_OPERACERTOENTOperação para acerto de inventário — entrada (diferença positiva)MEQ001, aba "Requisição / Recebimento"

Procedures impactadas​

Rotinas Delphi com referência direta ao campo​

RotinaArquivoFinalidade
tabPARMESTOQUECD_OPERACERTOSAIValidateUMEQ001.pasValidação do campo: verifica existência, ativo, tipo Saída e custo médio
edtCD_OPERACERTOSAIKeyDownUMEQ001.pasPesquisa de operação via F9 com filtros pré-definidos
Busca_ParametrosMEQ014/UdmMEQ014.pasLeitura do parâmetro para processamento de requisições

Referências SQL diretas ao campo​

Nenhuma referência SQL direta ao campo CD_OPERACERTOSAI foi encontrada em scripts do diretório Scripts/. As referências existem apenas nas queries embarcadas nos componentes Delphi (UdmMEQ001.dfm) nos INSERT e UPDATE da tabela PARMESTOQUE.

Candidatas por uso da tabela PARMESTOQUE​

Diversas procedures SQL acessam a tabela PARMESTOQUE para ler outros parâmetros, mas não referenciam diretamente o campo CD_OPERACERTOSAI. Exemplos: GERA_ESTOQUE, CANCELA_ESTOQUE, GERA_ESTOQUE_NOTAFISCAL, entre outras. Sem impacto direto identificado no código.


Simulação passo a passo​

Configurar o parâmetro​

  1. Acesse MEQ001 — Parâmetros de Estoque.
  2. Localize a aba Requisição / Recebimento.
  3. No campo Acerto de Quantidade e Custo (coluna Saída), digite o código de uma operação de estoque válida (ex: 15) ou pressione F9 para pesquisar.
  4. Na pesquisa, selecione uma operação do tipo Saída, Ativa e sem Custo Médio.
  5. Salve o registro.

Resultado esperado: O campo CD_OPERACERTOSAI é preenchido com o código da operação selecionada e o campo DS_OPERACERTOSAI é preenchido automaticamente com a descrição da operação.


Validar o acerto de inventário (diferença negativa)​

  1. Realize um inventário de estoque (balanço) para um produto.
  2. Conte uma quantidade menor que a registrada no sistema (ex: sistema tem 100 unidades, contagem física = 85 unidades).
  3. Confirme o acerto de inventário.
  4. Consulte a movimentação de estoque gerada (MOVESTOQUE).

Resultado esperado: O sistema gera uma movimentação de saída em MOVESTOQUE utilizando a operação configurada em CD_OPERACERTOSAI, com a quantidade correspondente à diferença (15 unidades no exemplo). O saldo em ESTOQUE.QT_ESTOQUE é atualizado para 85.

Exceção / Importante: Se o parâmetro CD_OPERACERTOSAI estiver vazio, o sistema poderá não gerar o acerto de saída ou apresentar erro, dependendo da versão. Certifique-se de configurar ambos os parâmetros de acerto (CD_OPERACERTOENT e CD_OPERACERTOSAI) antes de realizar inventários.