CD_HISTPRODSAI — Histórico de Saída de Produção
Tela de configuração: MEQ001 — Parâmetros de Estoque Localização: Aba Operações Padrão → campo Operações Tabela:
PARMESTOQUE.CD_HISTPRODSAITipo:DOM_INTEGER(chave estrangeira →HISTORICO.CD_HISTORICO) Valor padrão: Nenhum (campo opcional,NULLpermitido) Componente:edtCD_HISTPRODSAI(TDBEdit, largura 50px)
Descrição
Define o histórico contábil padrão utilizado nas movimentações de saída de produção. Quando a empresa executa processos produtivos — envelopamento, montagem, recapagem, vulcanização ou alteração de banda — o sistema utiliza este código para registrar a baixa de estoque de matéria-prima.
O campo referencia a tabela HISTORICO e aceita exclusivamente históricos do tipo Estoque (TP_HISTORICO = 'E') com natureza de Pagamento (não Recebimento).
Campos envolvidos
| Campo | Tabela | Tipo | Relação |
|---|---|---|---|
CD_HISTPRODSAI | PARMESTOQUE | INTEGER | FK → HISTORICO.CD_HISTORICO |
DS_HISTPRODSAI | (tela) | Exibição | Preenchido automaticamente com HISTORICO.DS_HISTORICO |
Campos complementares no mesmo grupo:
| Campo | Função |
|---|---|
CD_OPERPRODSAI | Operação de saída de produção (campo vizinho, obrigatório nos processos) |
CD_OPERPRODENT | Operação de entrada de produção |
CD_HISTPRODENT | Histórico de entrada de produção (par complementar) |
CD_OPERPRODPERDA | Operação de perda de produção |
CD_HISTPERDA | Histórico de perda |
Telas impactadas
| Tela | Impacto |
|---|---|
| MEQ001 | Tela de configuração — edição direta do campo |
| MEQ070 | Transferência de item entre etapas — valida presença do campo antes de gerar saída de estoque |
Regras de validação
Ao informar ou alterar o código, o sistema consulta a tabela HISTORICO e aplica as seguintes verificações:
| # | Regra | Condição de erro | Mensagem |
|---|---|---|---|
| 1 | Existência | DS_HISTORICO vazio | O Histórico não esta Cadastrado! Verifique [TCB003] |
| 2 | Ativo | ST_ATIVO = 'N' | O Histórico não está Ativo! Verifique [TCB003] |
| 3 | Tipo Estoque | TP_HISTORICO <> 'E' | O Histórico deve ser do Tipo Estoque! Verifique [TCB003] |
| 4 | Natureza Pagamento | TP_NATUREZA = 'R' | Para Movimentação de Saída Somente é Permitido Histórico de Pagamento! |
Após validação bem-sucedida, DS_HISTPRODSAI é preenchido automaticamente com a descrição do histórico.
Opções disponíveis
Campo vazio (não informado)
| O que faz | Detalhe |
|---|---|
| Editável | Sim — o campo aceita NULL (não tem restrição NOT NULL no schema) |
| Impacto imediato | Nenhum na tela de parâmetros |
Simulação passo a passo
- Acesse MEQ001 → aba Operações Padrão.
- Localize o campo Operações (histórico de saída de produção).
- Deixe o campo sem preenchimento.
- Salve o registro.
Resultado esperado: O registro é salvo normalmente com CD_HISTPRODSAI = NULL. Nenhuma mensagem de erro é exibida na tela de parâmetros.
Excecao / Importante: Ao executar processos produtivos (ex.:
GERA_PRODENVELOPAMENTO,GERA_PRODMONTAGEMRECAP,GERA_PRODVULCANIZACAO) ou a transferência de etapas em MEQ070, a ausência deste campo pode impedir a geração de movimentações de saída de estoque.
Campo preenchido com código válido
| O que faz | Detalhe |
|---|---|
| Editável | Sim — aceita digitação direta ou pesquisa via <F9> |
| Exige | Código existente na tabela HISTORICO, ativo, tipo Estoque, natureza diferente de Recebimento |
| Restrição | Natureza R (Recebimento) é rejeitada — aceita apenas natureza Pagamento |
Simulação passo a passo
- Acesse MEQ001 → aba Operações Padrão.
- Posicione o cursor no campo Operações (histórico de saída).
- Pressione
<F9>para abrir a lista de históricos filtrados por natureza Produção e tipo Estoque. - Selecione um histórico da lista (ex.: código
150). - O campo de descrição ao lado (
DS_HISTPRODSAI) é preenchido automaticamente. - Salve o registro.
Resultado esperado: O código é gravado em PARMESTOQUE.CD_HISTPRODSAI. Nos processos produtivos, este histórico será utilizado para registrar a saída de estoque de matéria-prima.
Excecao / Importante: O
<F9>filtra históricos com natureza'P'(Produção/Pagamento) e tipo'E'(Estoque). Se precisar de um histórico com outra natureza, cadastre-o primeiro em TCB003 (Cadastro de Históricos).
Campo preenchido com código inválido
| O que faz | Detalhe |
|---|---|
| Editável | O sistema aceita a digitação, mas rejeita na validação |
| Exige | Todas as 4 regras de validação acima |
| Restrição | O campo volta a vazio se a validação falhar (exceção levantada) |
Simulação passo a passo
- Acesse MEQ001 → aba Operações Padrão.
- No campo Operações, digite um código que:
- Não exista em
HISTORICO, ou - Esteja inativo (
ST_ATIVO = 'N'), ou - Não seja do tipo Estoque (
TP_HISTORICO <> 'E'), ou - Tenha natureza Recebimento (
TP_NATUREZA = 'R').
- Não exista em
- Saia do campo (Tab ou clique fora).
Resultado esperado: O sistema exibe uma mensagem de erro correspondente à validação falha (ver tabela de regras acima). O campo permanece inválido até que um código correto seja informado.
Uso nos processos produtivos
O parâmetro CD_HISTPRODSAI é lido diretamente nos seguintes scripts de geração de estoque:
| Script SQL | Contexto de uso |
|---|---|
GERA_PRODENVELOPAMENTO | Saída de matéria-prima para processo de envelopamento |
GERA_PRODMONTAGEMRECAP | Saída de matéria-prima para montagem/recapagem |
GERA_PRODVULCANIZACAO | Saída de matéria-prima para vulcanização |
ALTERACAO_BANDA | Saída para processo de alteração de banda |
Em todos os casos, o script faz SELECT PE.CD_HISTPRODSAI da tabela PARMESTOQUE para obter o código do histórico que será usado na movimentação de saída.
Em MEQ070 (Transferência entre etapas): O método TransfereItemEtapa lê o parâmetro e, se estiver vazio, interrompe o processo com:
"Código de Histórico de Operação de Saída não Informado! Verifique [MEQ001]"
Procedures impactadas
Rotinas Delphi com referência direta ao campo
| Rotina | Arquivo | Descrição |
|---|---|---|
edtCD_HISTPRODSAIKeyDown | UMEQ001.pas:1814 | Evento <F9> do campo — abre pesquisa HISTORICO_POR_NATUREZA filtrada por natureza 'P' e tipo 'E' |
tabPARMESTOQUECD_HISTPRODSAIValidate | UdmMEQ001.pas:1340 | Validação do campo — verifica existência, ativo, tipo Estoque e natureza Pagamento |
TransfereItemEtapa | UMEQ070.pas:3168 | Lê o parâmetro para gerar saída de estoque na transferência entre etapas de produção |
Scripts SQL com referência direta ao campo
| Script | Arquivo | Uso |
|---|---|---|
ALTERACAO_BANDA | ALTERACAO_BANDA.sql:422 | SELECT PE.CD_HISTPRODSAI |
GERA_PRODENVELOPAMENTO | GERA_PRODENVELOPAMENTO.sql:285 | SELECT PE.CD_HISTPRODSAI, PE.CD_OPERPRODSAI |
GERA_PRODMONTAGEMRECAP | GERA_PRODMONTAGEMRECAP.sql:305 | SELECT PE.CD_HISTPRODSAI, PE.CD_OPERPRODSAI |
GERA_PRODVULCANIZACAO | GERA_PRODVULCANIZACAO.sql:308 | SELECT PE.CD_HISTPRODSAI, PE.CD_OPERPRODSAI |
Candidatas por uso da tabela
Vários scripts fazem FROM PARMESTOQUE ou INNER JOIN PARMESTOQUE sem citar CD_HISTPRODSAI literalmente. Essas rotinas não possuem referência direta ao campo e não foram impactadas por alterações neste parâmetro.