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_OPERACERTOSAITipo: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
| Tela | Descrição |
|---|---|
| MEQ001 | Parâmetros de Estoque — configuração do parâmetro |
| TEQ001 | Cadastro de Operações de Estoque — cadastro das operações disponíveis |
| MEQ014 | Consulta que utiliza o parâmetro para processamento de requisições |
Campos envolvidos
| Campo | Tabela | Descrição |
|---|---|---|
CD_OPERACERTOSAI | PARMESTOQUE | Có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_OPERACERTOENT | PARMESTOQUE | Có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:
| # | Regra | Mensagem de Erro |
|---|---|---|
| 1 | A operação deve existir no cadastro | "A Operação de Estoque não está Cadastrada [TEQ001]!" |
| 2 | A operação deve estar ativa (ST_ATIVO = 'S') | "A Operação de Estoque não está Ativa [TEQ001]!" |
| 3 | A operação deve ser do tipo Saída (TP_OPERACAO = 'S') | "A Operação de Estoque deve ser de Saída [TEQ001]!" |
| 4 | A 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'eST_PRECOMEDIO = 'N', mas a validação no dataset (eventoOnValidate) 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 faz | Detalhe |
|---|---|
| Editável | Sim — campo do tipo edit vinculado ao DataField |
| Exige | Operação de estoque cadastrada, ativa, tipo Saída, sem custo médio |
| Restrição | Operações de Entrada (TP_OPERACAO = 'E') e operações com custo médio (ST_PRECOMEDIO = 'S') são rejeitadas |
| Preenchimento | Manual (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:
| Campo | Valor | Observação |
|---|---|---|
CD_OPERACAO | 15 | Código da operação |
DS_OPERACAO | Acerto Inventário Saída | Descrição livre |
TP_OPERACAO | S | Tipo Saída (obrigatório) |
ST_ATIVO | S | Ativo (obrigatório) |
ST_PRECOMEDIO | N | Nã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âmetro | Função | Configurado em |
|---|---|---|
CD_OPERACERTOENT | Operaçã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
| Rotina | Arquivo | Finalidade |
|---|---|---|
tabPARMESTOQUECD_OPERACERTOSAIValidate | UMEQ001.pas | Validação do campo: verifica existência, ativo, tipo Saída e custo médio |
edtCD_OPERACERTOSAIKeyDown | UMEQ001.pas | Pesquisa de operação via F9 com filtros pré-definidos |
Busca_Parametros | MEQ014/UdmMEQ014.pas | Leitura 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
- Acesse MEQ001 — Parâmetros de Estoque.
- Localize a aba Requisição / Recebimento.
- 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. - Na pesquisa, selecione uma operação do tipo Saída, Ativa e sem Custo Médio.
- 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)
- Realize um inventário de estoque (balanço) para um produto.
- Conte uma quantidade menor que a registrada no sistema (ex: sistema tem 100 unidades, contagem física = 85 unidades).
- Confirme o acerto de inventário.
- 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_OPERACERTOSAIestiver 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_OPERACERTOENTeCD_OPERACERTOSAI) antes de realizar inventários.