CD_HISTREQUISICAO - Histórico de Requisição/Empréstimo
Tela de configuração: MEQ001 - Parâmetros de Estoque Localização: Aba &Requisição / Recebimento → campo Requisição / Empréstimo Tabela:
PARMESTOQUE.CD_HISTREQUISICAOTipo:DOM_INTEGER(chave estrangeira →HISTORICO.CD_HISTORICO) Valor padrão: Nenhum (campo opcional)
O que faz
Define o histórico de estoque padrão utilizado para movimentações de requisição (saída de material do estoque) e empréstimo dentro do módulo de Estoque. Quando informado, o sistema utiliza esse histórico ao gerar lançamentos de estoque para requisições de materiais, empréstimos entre setores e consumo de matéria-prima em Ordens de Serviço.
| Aspecto | Detalhe |
|---|---|
| Editável | Sim, campo digitável com pesquisa <F9> |
| Exige cadastro válido | Sim, deve existir na tabela HISTORICO |
| Restrições de validação | Deve estar Ativo (ST_ATIVO = 'S'), ser do Tipo Estoque (TP_HISTORICO = 'E') e ter Natureza Pagamento (TP_NATUREZA = 'P') |
| Preenchimento | Opcional (pode ficar em branco) |
Campos envolvidos
| Campo | Tabela | Descrição |
|---|---|---|
CD_HISTREQUISICAO | PARMESTOQUE | Código do histórico vinculado (FK → HISTORICO.CD_HISTORICO) |
DS_HISTREQUISICAO | (campo calculado via JOIN) | Descrição do histórico, exibida automaticamente após seleção |
CD_OPERREQUISICAO | PARMESTOQUE | Operação de estoque associada (configurada em campo vizinho na mesma aba) |
Como funciona
1. Cadastro do Histórico
O campo vincula-se à tabela HISTORICO (HISTORICO.CD_HISTORICO). Para ser válido, o histórico precisa atender a três regras simultâneas:
- Ativo →
ST_ATIVO = 'S' - Tipo Estoque →
TP_HISTORICO = 'E' - Natureza Pagamento →
TP_NATUREZA = 'P'(não pode ser'R'— Recebimento)
2. Pesquisa de Históricos (<F9>)
Ao pressionar <F9> no campo, uma tela de pesquisa exibe os históricos disponíveis com as colunas Descrição e Código, filtrados automaticamente por:
SELECT DS_HISTORICO, CD_HISTORICO
FROM HISTORICO
WHERE ST_ATIVO = 'S'
AND TP_NATUREZA = 'P'
AND TP_HISTORICO = 'E'
3. Validação automática ao digitar
Ao informar um código manualmente (sem usar <F9>), o sistema executa a mesma consulta e aplica as seguintes validações:
| Condição | Resultado |
|---|---|
| Histórico não cadastrado | Erro: "O Histório não está Cadastrado [TCB003]!" |
Histórico inativo (ST_ATIVO = 'N') | Erro: "O Histório não está Ativo [TCB003]!" |
Tipo diferente de Estoque (TP_HISTORICO <> 'E') | Erro: "O Histório deve ser do Tipo Estoque [TCB003]!" |
Natureza Recebimento (TP_NATUREZA = 'R') | Erro: "O Histório deve ser de Natureza Pagamento [TCB003]!" |
| Código válido e ativo | A descrição é preenchida automaticamente no campo DS_HISTREQUISICAO |
4. Uso em Ordem de Serviço (CONFIRMA_ORDEMSERVICO)
Ao confirmar uma Ordem de Serviço que consome matéria-prima, o sistema busca CD_HISTREQUISICAO dos parâmetros de estoque para gerar a movimentação de saída via GERA_ESTOQUE:
-- Busca os parâmetros da empresa
SELECT P.CD_OPERREQUISICAO, P.CD_HISTREQUISICAO, ...
FROM PARMESTOQUE P
WHERE P.CD_EMPRESA = :CD_EMPRESA
-- Gera a baixa de estoque com o histórico configurado
SELECT V_DS_MENSAGEM
FROM GERA_ESTOQUE(:CD_EMPRESA, :CD_ITEM, :CD_TIPOLOCAL, :CD_LOCAL,
:V_CD_OPERREQUISICAO, :V_CD_HISTREQUISICAO,
CURRENT_DATE, 'OS', :NR_ORCAMENTO, ...)
5. Uso em outras telas do módulo
O parâmetro é lido automaticamente pelas seguintes telas ao buscar parâmetros de estoque:
| Tela | Descrição |
|---|---|
| MEQ007 | Movimentação de Estoque (Requisição) |
| MEQ013 | Movimentação de Estoque (Saída) |
| MEQ014 | Movimentação de Estoque (Acerto) |
| MEQ015 | Devolução de Requisição |
| MEQ058 | Requisição de Materiais |
| MEQ071 | Requisição de Materiais (Leitor) |
Telas impactadas
| Tela | Módulo | Uso |
|---|---|---|
| MEQ001 | Estoque | Tela de configuração — cadastro do parâmetro |
| MEQ007 | Estoque | Leitura do parâmetro para movimentações |
| MEQ013 | Estoque | Leitura do parâmetro para saídas |
| MEQ014 | Estoque | Leitura do parâmetro para acertos |
| MEQ015 | Estoque | Leitura do parâmetro para devoluções |
| MEQ058 | Estoque | Leitura do parâmetro para requisições |
| MEQ071 | Estoque | Leitura do parâmetro para requisições via leitor |
| OFI (OS) | Oficina | Uso indireto via CONFIRMA_ORDEMSERVICO |
Procedures impactadas
Rotinas Delphi com referência direta ao campo
| Rotina | Arquivo | Função |
|---|---|---|
edtCD_HISTREQUISICAOKeyDown | UMEQ001.pas:1032 | Pesquisa <F9> de históricos |
tabPARMESTOQUECD_HISTREQUISICAOValidate | UdmMEQ001.pas:653 | Validação do código digitado |
Busca_Parametros (MEQ007) | UdmMEQ007.pas:122 | Carrega parâmetro para tela de requisição |
Busca_Parametros (MEQ013) | UdmMEQ013.pas:125 | Carrega parâmetro para tela de saída |
Busca_Parametros (MEQ014) | UdmMEQ014.pas:86 | Carrega parâmetro para tela de acerto |
Busca_Parametros (MEQ015) | UdmMEQ015.pas:106 | Carrega parâmetro para devolução |
Busca_Parametros (MEQ058) | UdmMEQ058.pas:81 | Carrega parâmetro para requisição |
Busca_Parametros (MEQ071) | UdmMEQ071.pas:123 | Carrega parâmetro para requisição via leitor |
Referências SQL diretas ao campo
| Procedure | Arquivo | Uso |
|---|---|---|
CONFIRMA_ORDEMSERVICO | CONFIRMA_ORDEMSERVICO.sql:85 | Declara variável V_CD_HISTREQUISICAO e a utiliza na chamada a GERA_ESTOQUE |
Candidatas por uso da tabela PARMESTOQUE
Diversas procedures acessam PARMESTOQUE mas não citam CD_HISTREQUISICAO diretamente. Exemplos: GERA_ESTOQUE, GERA_ESTOQUE_NOTAFISCAL, CANCELA_ESTOQUE, GERA_ORDEMPRODUCAO, entre outras. Não há impacto funcional direto confirmado nessas rotinas para este campo.
Parâmetros relacionados
| Parâmetro | Tela | Relação |
|---|---|---|
CD_OPERREQUISICAO | MEQ001 (mesma aba) | Operação de estoque vinculada à requisição |
CD_OPERDEVREQ | MEQ001 (mesma aba) | Operação para devolução de requisição |
CD_HISTRECEBTO | MEQ001 (mesma aba) | Histórico para recebimentos (natureza 'R') |
Exceção / Importante:
- O histórico deve ter Natureza Pagamento (
TP_NATUREZA = 'P'). Históricos de natureza Recebimento ('R') serão rejeitados — para recebimentos, utilize o parâmetroCD_HISTRECEBTO.- O campo é opcional. Se não informado, as requisições poderão não gerar movimentação de estoque ou utilizarão configuração alternativa dependendo da rotina que a chama.