ST_PRODUCAOPROGRAMADA — Programar Produção na Abertura da Ordem
Tela de configuração: MEQ001 — Parâmetros de Estoque Localização: Aba Opção 2 — Checkbox
chkProducaoProgramadaTabela / Campo:PARMESTOQUE.ST_PRODUCAOPROGRAMADATipo:CHAR(1), valor padrãoN,NOT NULLRótulo na tela: "Programar Produção na Abertura da Ordem [MEQ011/MEQ070]"
Telas impactadas
| Tela | Descrição | Impacto |
|---|---|---|
| MEQ001 | Parâmetros de Estoque | Tela onde o parâmetro é configurado |
| MEQ011 | Abertura de Ordem de Produção | Ao salvar a ordem, verifica o parâmetro para gerar lote e programar etapas |
| MEQ070 | Ordem de Produção (manutenção) | Mencionado no rótulo do campo; segue mesma lógica de programação de etapas |
Campos envolvidos
| Campo | Tabela | Tipo | Descrição |
|---|---|---|---|
ST_PRODUCAOPROGRAMADA | PARMESTOQUE | CHAR(1) | Indica se a produção será programada ao abrir a ordem |
iST_PRODUCAOPROGRAMADA | Variável Delphi (TdmMEQ011) | string | Cache local do valor em tempo de execução na tela MEQ011 |
Opções disponíveis
S — Sim (Programar Produção)
| O que faz | Detalhe |
|---|---|
| Gera lote de produção | Ao salvar a ordem, o sistema gera um número de lote via GERA_SEQUENCIA('SEQ_LOTEPRODUCAO') e grava em ORDEMPRODUCAO.NR_LOTEPRODUCAO |
| Programa etapas | Chama o procedimento ProgramacaoEtapas para criar a programação de etapas da ordem |
| Interage com lotes de produto | Quando iST_LOTEPRODUTO = 'S' e existem etapas programadas (cdsETAPAS não vazio), a gravação de lotes semente (GravaLoteSemente) é pulada |
Simulação passo a passo
- Acesse MEQ001 — Parâmetros de Estoque.
- Na aba Opção 2, marque o checkbox "Programar Produção na Abertura da Ordem".
- Clique em Salvar para gravar o parâmetro.
- Acesse MEQ011 — Abertura de Ordem de Produção.
- Preencha os dados do item, quantidade e demais campos obrigatórios.
- Clique em Salvar para gravar a ordem de produção.
- Observe que o sistema gera automaticamente um número de lote (
NR_LOTEPRODUCAO) e abre a tela de Programação de Etapas.
Resultado esperado: A ordem de produção é criada com lote gerado automaticamente e as etapas de produção são programadas. A tela de programação de etapas é exibida ao usuário.
N — Não (Padrão)
| O que faz | Detalhe |
|---|---|
| Não gera lote automaticamente | Salvo se ST_GERALOTE = 'S' (outra condição independente) |
| Não programa etapas | ProgramacaoEtapas não é chamado |
| Permite lotes semente | Se iST_LOTEPRODUTO = 'S' e não há etapas programadas, o sistema grava lotes semente normalmente |
Simulação passo a passo
- Acesse MEQ001 — Parâmetros de Estoque.
- Na aba Opção 2, deixe desmarcado o checkbox "Programar Produção na Abertura da Ordem".
- Clique em Salvar para gravar o parâmetro.
- Acesse MEQ011 — Abertura de Ordem de Produção.
- Preencha os dados do item, quantidade e demais campos obrigatórios.
- Clique em Salvar para gravar a ordem de produção.
- Observe que nenhuma programação de etapas é apresentada.
Resultado esperado: A ordem de produção é criada sem geração automática de lote (a menos que ST_GERALOTE esteja ativo) e sem programação de etapas.
Regra de interação com ST_GERALOTE
Quando ST_PRODUCAOPROGRAMADA = 'S' OU ST_GERALOTE = 'S', o sistema gera o lote de produção automaticamente. Ou seja, a geração de lote é acionada por qualquer um dos dois parâmetros. A programação de etapas, porém, ocorre somente quando ST_PRODUCAOPROGRAMADA = 'S'.
ST_GERALOTE | ST_PRODUCAOPROGRAMADA | Gera lote? | Programa etapas? |
|---|---|---|---|
| N | N | Não | Não |
| S | N | Sim | Não |
| N | S | Sim | Sim |
| S | S | Sim | Sim |
Importante: Quando etapas são programadas (
cdsETAPASnão vazio), a rotinaGravaLoteSemente(gravação de lotes de produto PA/MP) é ignorada, mesmo queST_LOTEPRODUTO = 'S'.
Inicialização / Valor padrão
Ao inserir um novo registro na tabela PARMESTOQUE, o campo é inicializado com 'N' no evento AfterInsert do dataset:
tabPARMESTOQUEST_PRODUCAOPROGRAMADA.AsString := 'N';
No banco de dados, a coluna possui DEFAULT 'N' definido na DDL.
Procedures impactadas
Rotinas Delphi com referência direta ao campo
| Rotina | Arquivo | Linha | Evidência |
|---|---|---|---|
Busca_Parametros | source/MEQ011/UdmMEQ011.pas | 261–279 | Busca ST_PRODUCAOPROGRAMADA de PARMESTOQUE e atribui a iST_PRODUCAOPROGRAMADA |
TfrmMEQ011.btnSalvarClick | source/MEQ011/UMEQ011.pas | 677 | Verifica iST_PRODUCAOPROGRAMADA = 'S' para gerar lote |
TfrmMEQ011.btnSalvarClick | source/MEQ011/UMEQ011.pas | 699 | Verifica iST_PRODUCAOPROGRAMADA = 'S' para chamar ProgramacaoEtapas |
TdmMEQ001.tabPARMESTOQUEAfterInsert | source/MEQ001/UdmMEQ001.pas | 298 | Inicializa campo com 'N' |
Referências SQL diretas ao campo
Não foram encontradas referências diretas a ST_PRODUCAOPROGRAMADA em procedures SQL sob Scripts/. O campo é consultado exclusivamente via SQL dinâmico no Delphi (procedure Busca_Parametros).
Candidatas por uso da tabela PARMESTOQUE
As seguintes procedures fazem referência à tabela PARMESTOQUE mas não citam o campo ST_PRODUCAOPROGRAMADA diretamente. Não há impacto funcional confirmado sobre este campo:
GERA_ORDEMPRODUCAO,GERA_ESTOQUE,GERA_ESTOQUE_NOTAFISCAL,CANCELA_ESTOQUE,CONFIRMA_ORDEMSERVICO,CONFIRMA_ORDEMSERVICOMETAL,GERA_ESTOQUEPSALT, entre outras.
Observações
- O campo
ProgramacaoEtapas(chamada interna emUMEQ011.pas:700) não foi encontrado como procedure explícita no código-fonte disponível. Pode tratar-se de um método declarado no próprio formulário ou em unit não indexada. - A tela MEQ070 é citada no rótulo do campo mas a evidência direta de uso não foi localizada neste pacote. Assume-se comportamento análogo ao MEQ011.