STVALIDAUSOENVELOPE - Validar Envelope em Uso
Tela de configuração: REC001 - Parâmetros de Recapagem Tabela:
PARAMRECAP.STVALIDAUSOENVELOPETipo:CHAR(1)· Valor padrão:N
Descrição
Controla se o sistema deve validar se um envelope de pneu já está vinculado a outra Ordem de Produção antes de permitir sua utilização. Quando ativado, a validação ocorre nas telas de Vulcanização (MRC016), Montagem (MRC027) e Envelopamento (MRC034).
Telas impactadas
| Tela | Rotina | Efeito |
|---|---|---|
| MRC016 - Vulcanização | tabVULCANIZACAOIDENVELOPEPNEUValidate | Valida envelope ao informar código no campo Envelope |
| MRC027 - Montagem | tabMONTAGEMRECAPIDENVELOPEPNEUValidate | Valida envelope ao informar código no campo Envelope |
| MRC034 - Envelopamento | tabENVELOPAMENTOIDENVELOPEValidate | Valida envelope ao informar código no campo Envelope |
Campos envolvidos
| Campo | Descrição |
|---|---|
IDENVELOPEPNEU / IDENVELOPE | Código do envelope informado na tela (MRC016/MRC027/MRC034) |
ETAPAPNEUEMPRESA.STDESKTOP | Flag da etapa 16 que determina se o desktop está ativo |
ORDEMPRODUCAORECAP.STORDEM | Status da ordem (F = fechada, C = cancelada — excluídas da validação) |
DESENVELOPAMENTO.ST_ETAPA | Etapa do desenvelopamento (F = finalizada) |
Opções disponíveis
| O que faz | Detalhe |
|---|---|
S — Validar | Antes de aceitar o envelope, o sistema consulta se ele já está vinculado a outra Ordem de Produção não finalizada/cancelada. Se encontrar, bloqueia a operação com erro. |
N — Não validar | O envelope é aceito sem verificação de uso em outra ordem. |
N — Não Validar (Padrão)
Simulação passo a passo
- Acesse REC001 → Parâmetros de Recapagem.
- Localize o checkbox "Validar Envelope em Uso [MRC016/MRC027/MRC034]" e desmarque-o (valor
N). - Salve o registro.
- Abra uma Ordem de Produção em MRC016, MRC027 ou MRC034.
- Informe um envelope que já esteja vinculado a outra ordem aberta.
- O sistema aceita o código sem exibir mensagem de erro.
Resultado esperado: O envelope é aceito livremente, mesmo que já esteja em uso em outra ordem de produção.
S — Validar Envelope em Uso
Simulação passo a passo
- Acesse REC001 → Parâmetros de Recapagem.
- Marque o checkbox "Validar Envelope em Uso [MRC016/MRC027/MRC034]" (valor
S). - Salve o registro.
- Abra uma Ordem de Produção em MRC016 (Vulcanização).
- Informe o código de um envelope X que já está vinculado à Ordem nº 50 (status aberto, sem desenvelopamento finalizado).
- O sistema exibe a mensagem:
"O Envelope selecionado está vinculado a outra Ordem de Produção e não pode ser utilizado! Verifique a Ordem nº 50!"
Resultado esperado: A operação é bloqueada e o campo do envelope é limpo. O usuário deve informar outro envelope ou encerrar a ordem que o utiliza.
Exceção / Importante:
- Na MRC027 (Montagem), a validação só ocorre quando
ETAPAPNEUEMPRESA.STDESKTOP = '0'para a etapa 15. SeSTDESKTOP = '1', a consulta é feita de forma alternativa (considerando também vinculações na etapa de Vulcanização e Montagem viaUNION ALL).- Na MRC016 e MRC034, quando
ETAPAPNEUEMPRESA.STDESKTOP = '1'(etapa 16), a consulta busca vinculações em Vulcanização, Montagem e Envelopamento com lógica deUNION ALL, ampliando a abrangência da validação.- Apenas ordens com status diferente de
F(Fechada) eC(Cancelada) são consideradas como "em uso". Ordem com desenvelopamento finalizado (ST_ETAPA = 'F') também é ignorada.
Regra Geral de Validação
Quando STVALIDAUSOENVELOPE = 'S':
- Consulta a tabela
ETAPAPNEUEMPRESApara obter oSTDESKTOPda etapa correspondente (etapa 16 para MRC016/MRC034, etapa 15 para MRC027). - Se desktop ativo (
STDESKTOP = '1'): busca o envelope em todas as etapas (Vulcanização + Montagem + Envelopamento) viaUNION ALL. - Se desktop inativo (
STDESKTOP = '0'): busca o envelope apenas na etapa específica da tela atual. - A busca ignora ordens fechadas/canceladas e desenvelopamentos finalizados.
- Se encontrar qualquer vínculo ativo → bloqueia com erro informando o nº da ordem.
Procedures impactadas
Rotinas Delphi com referência direta ao parâmetro
| Rotina | Arquivo | Linha | Evidência |
|---|---|---|---|
TdmMRC016.tabVULCANIZACAOIDENVELOPEPNEUValidate | source/MRC016/UdmMRC016.pas | 519 | if parmRecap.Values['STVALIDAUSOENVELOPE'] = 'S' then |
TdmMRC027.tabMONTAGEMRECAPIDENVELOPEPNEUValidate | source/MRC027/UdmMRC027.pas | 412 | if (parmRecap.Values['STVALIDAUSOENVELOPE'] = 'S') and (stDesktop = '0') then |
TdmMRC034.tabENVELOPAMENTOIDENVELOPEValidate | source/MRC034/UdmMRC034.pas | 345 | if parmRecap.Values['STVALIDAUSOENVELOPE'] = 'S' then |
TdmREC001.qryCadastroAfterInsert | source/REC001/UdmREC001.pas | 924 | Valor padrão N ao inserir novo registro |
Referências SQL diretas ao campo
Não foram encontradas referências diretas ao campo STVALIDAUSOENVELOPE em procedures/views SQL em Scripts/. O parâmetro é lido em tempo de execução via parmRecap.Values[...] nas rotinas Delphi listadas acima.
Candidatas por uso da tabela (PARAMRECAP)
As seguintes procedures/views fazem JOIN ou FROM na tabela PARAMRECAP, mas não citam o campo STVALIDAUSOENVELOPE diretamente. Não há impacto funcional direto documentado:
| Procedure/View | Arquivo |
|---|---|
ATUALIZA_PEDIDONOTA | Scripts/ATUALIZA_PEDIDONOTA.sql |
ATUALIZA_PREVISAOORDEMPROD | Scripts/ATUALIZA_PREVISAOORDEMPROD.sql |
ATUALIZA_STFATURAAUTO | Scripts/ATUALIZA_STFATURAAUTO.sql |
FECHA_ORDEMPRODUCAORECAP | Scripts/FECHA_ORDEMPRODUCAORECAP.sql |
GERA_ORDEMPRODUCAORECAP | Scripts/GERA_ORDEMPRODUCAORECAP.sql |
| (e demais scripts que acessam PARAMRECAP para ler outros parâmetros) |