CD_OPERESTOQUESAI - Operações de Estoque - Geral
Tela de configuração: MEQ001 — Parâmetros de Estoque
Localização: aba Tipo
Tabela:PARMESTOQUE/ colunaCD_OPERESTOQUESAI
Tipo:INTEGER— chave estrangeira paraOPERACAO(CD_OPERACAO)(FK_PARMESTOQUE_2)
Componente:edtCD_OPERESTOQUESAI(TDBedit)
Valor padrão: Nenhum (campo livre; pode ficar em branco)
O que faz
| O que faz | Detalhe |
|---|---|
| Define a operação padrão de saída de estoque para a empresa. | Operações selecionadas devem ter TP_OPERACAO = 'S' (Saída) e ST_PRECOMEDIO = 'N'. |
| Preenche automaticamente a operação de saída em itens de ordens de serviço (MEQ013). | Quando o usuário adiciona um item na MEQ013, tabITEMCD_OPERESTOQUESAI recebe o valor deste parâmetro via Busca_Parametros. |
Exibe descrição da operação ao lado do código (campo visual DS_OPERESTOQUEQUESAI). | LEFT JOIN OPERACAO OES no dataset da tela MEQ001. |
Validado contra existência e tipo correto na tabela OPERACAO. | tabPARMESTOQUECD_OPERESTOQUESAIValidate (UdmMEQ001.pas). |
Telas impactadas
| Tela | Descrição | Impacto |
|---|---|---|
| MEQ001 | Parâmetros de Estoque | Tela de configuração do próprio parâmetro. |
| MEQ013 | Ordem de Serviço | Usa CD_OPERESTOQUESAI como operação de saída padrão por empresa ao incluir itens na OS. |
Campo envolvido
| Campo | Tabela | Domínio | FK |
|---|---|---|---|
CD_OPERESTOQUESAI | PARMESTOQUE | DOM_INTEGER | FK_PARMESTOQUE_2 → OPERACAO(CD_OPERACAO) |
DS_OPERACAO (derivado) | — | DOM_VARCHAR60 | JOIN via alias OES (OES.CD_OPERACAO = P.CD_OPERESTOQUESAI) |
Procedures impactadas
Rotinas Delphi com referência direta ao campo
| Rotina | Arquivo | Comportamento |
|---|---|---|
TdmMEQ001.tabPARMESTOQUECD_OPERESTOQUESAIValidate | source/MEQ001/UdmMEQ001.pas:1689 | Valida que o código informado existe em OPERACAO com TP_OPERACAO = 'S' e ST_PRECOMEDIO = 'N'. Preenche o campo visual DS_OPERESTOQUESAI. |
TfrmMEQ001.edtCD_OPERESTOQUESAIKeyDown | source/MEQ001/UMEQ001.pas:2003 | Pesquisa <F9> sobre OPERACAO com filtro TP_OPERACAO = 'S' AND ST_PRECOMEDIO = 'N'. Retorna código + descrição. |
TdmMEQ013.Busca_Parametros | source/MEQ013/UdmMEQ013.pas:125 | Consulta CD_OPERESTOQUESAI da PARMESTOQUE para uso no módulo de Ordem de Serviço (MEQ013). |
TdmMEQ013.tabITEMCD_OPERESTOQUESAIValidate | source/MEQ013/UdmMEQ013.pas:741 | Valida que o código existe em OPERACAO ao ser atribuído a um item da OS. |
| Datasource MEQ013 (MEQ013 tabITEM) | source/MEQ013/UdmMEQ013.dfm:76 | Campo CD_OPERESTOQUESAI mapeado como CAST(NULL AS INTEGER) na definição da consulta de itens. |
Referências SQL diretas ao campo em Scripts/
Nenhuma referência direta ao campo CD_OPERESTOQUESAI encontrada em Scripts/.
Candidatas por uso da tabela PARMESTOQUE
As procedures abaixo usam a tabela PARMESTOQUE, mas não citam o campo CD_OPERESTOQUESAI literalmente. Podem usar o parâmetro indiretamente via código Delphi ou via variáveis de sessão. Validar caso a caso antes de afirmar impacto funcional direto:
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_ORDEMPRODUCAO, GERA_PRODENVELOPAMENTO, GERA_PRODLOTEPRODUCAO, GERA_PRODMONTAGEMRECAP, GERA_PRODVULCANIZACAO, GERA_SPEDBLOCOL, GERA_SPEDECFBLOCOL, GRAVA_AVISOS.
Opções disponíveis
Este parâmetro não é enumerado — é um campo de lookup (seleção de operação de estoque). O comportamento é descrito abaixo.
Operação de Saída informada (valor preenchido)
| O que faz | Detalhe |
|---|---|
| Editável | Campo de edição com pesquisa <F9>. |
| Exige | Operação em OPERACAO com TP_OPERACAO = 'S' e ST_PRECOMEDIO = 'N'. |
| Restrição | FK FK_PARMESTOQUE_2 garante que o código exista na tabela OPERACAO. Validação no Delphi garante os filtros corretos. |
Simulação passo a passo
- Acesse MEQ001 — Parâmetros de Estoque.
- Abra a empresa desejada ou crie um novo registro.
- Na aba Tipo, localize o campo Operações de Estoque - Geral (
CD_OPERESTOQUESAI). - Pressione
<F9>ou clique no botão de pesquisa. - Na janela de pesquisa, selecione uma operação de Saída (ex.: "Saída de Estoque Padrão", código
101). - Salve o registro.
Resultado esperado: O campo CD_OPERESTOQUESAI é preenchido com o código 101 e a descrição da operação é exibida automaticamente. Na OS (MEQ013), ao incluir um novo item, a operação de saída do item será preenchida com 101 automaticamente.
Exceção / Importante: A pesquisa
<F9>restringe a lista a operações comTP_OPERACAO = 'S'(Saída) eST_PRECOMEDIO = 'N'(não usa preço médio). Se não encontrar operações na lista, verifique na tela TEQ001 (Cadastro de Operações) se há operações ativas configuradas corretamente.Relacionamento com
CD_OPERESTOQUEENT: Este parâmetro define a operação de saída. A operação de entrada é configurada no campoCD_OPERESTOQUEENT(mesma aba "Tipo", mesma tela MEQ001). Para saber qual usar como entrada, consulteCD_OPERESTOQUEENT(configurado em MEQ001, aba Tipo).Interação com
ST_APENASITENSREGRA: QuandoST_APENASITENSREGRA = 'S'(configurado em MEQ001, aba Tipo), o sistema prioriza operações configuradas nas regras deGRUPOESTOQUE. Na ausência de regra para um item específico, fallback para os valores padrão:CD_OPERESTOQUESAI/CD_OPERESTOQUEENTeCD_HISTREQUISICAOdefinidos nestes parâmetros.
Operação não informada (campo em branco)
| O que faz | Detalhe |
|---|---|
| Campo vazio permitido | Sim, o campo não é obrigatório. |
| Comportamento na MEQ013 | Ao incluir itens na ordem de serviço, CD_OPERESTOQUESAI do item ficará vazio. O usuário deverá informar manualmente a operação. |
Simulação passo a passo
- Acesse MEQ001 — Parâmetros de Estoque.
- Na aba Tipo, deixe o campo Operações de Estoque - Geral (
CD_OPERESTOQUESAI) em branco. - Salve o registro.
- Acesse a tela MEQ013 (Ordem de Serviço).
- Abra ou crie uma OS para a empresa parametrizada.
- Adicione um novo item.
Resultado esperado: O campo de operação de saída do item (CD_OPERESTOQUESAI) ficará vazio. O usuário deve selecionar a operação manualmente para cada item.
Regra Geral de Validação
Ao informar um código no campo CD_OPERESTOQUESAI:
- O sistema invoca
tabPARMESTOQUECD_OPERESTOQUESAIValidate(UdmMEQ001.pas). - Cria um objeto
TOperacaocom parâmetros:TP_OPERACAO := 'S'(obrigatório ser Saída);ST_PRECOMEDIO := 'N'(não pode ser operação de preço médio).
- Chama
ValidaOperacao()para verificar existência e tipo na tabelaOPERACAO. - Se válido, preenche
DS_OPERESTOQUESAIcom a descrição da operação. - Se inválido, lança exceção
E-0000com mensagem indicando que a operação não está cadastrada corretamente.
Tabela OPERACAO de referência:
| Coluna | Domínio | Observação |
|---|---|---|
CD_OPERACAO | DOM_INTEGER | Chave primária |
DS_OPERACAO | DOM_VARCHAR60 | Descrição |
TP_OPERACAO | DOM_CHAR1 | 'S' = Saída (obrigatório para este parâmetro) |
ST_PRECOMEDIO | DOM_CHAR1 | 'N' obrigatório para este parâmetro |
ST_ATIVO | DOM_CHAR1 | 'S' obrigatório (filtro da pesquisa) |