Pular para o conteúdo principal

STVALIDAUSOENVELOPE - Validar Envelope em Uso

Tela de configuração: REC001 - Parâmetros de Recapagem Tabela: PARAMRECAP.STVALIDAUSOENVELOPE Tipo: 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​

TelaRotinaEfeito
MRC016 - VulcanizaçãotabVULCANIZACAOIDENVELOPEPNEUValidateValida envelope ao informar código no campo Envelope
MRC027 - MontagemtabMONTAGEMRECAPIDENVELOPEPNEUValidateValida envelope ao informar código no campo Envelope
MRC034 - EnvelopamentotabENVELOPAMENTOIDENVELOPEValidateValida envelope ao informar código no campo Envelope

Campos envolvidos​

CampoDescrição
IDENVELOPEPNEU / IDENVELOPECódigo do envelope informado na tela (MRC016/MRC027/MRC034)
ETAPAPNEUEMPRESA.STDESKTOPFlag da etapa 16 que determina se o desktop está ativo
ORDEMPRODUCAORECAP.STORDEMStatus da ordem (F = fechada, C = cancelada — excluídas da validação)
DESENVELOPAMENTO.ST_ETAPAEtapa do desenvelopamento (F = finalizada)

Opções disponíveis​

O que fazDetalhe
S — ValidarAntes 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 validarO envelope é aceito sem verificação de uso em outra ordem.

N — Não Validar (Padrão)​

Simulação passo a passo​

  1. Acesse REC001 → Parâmetros de Recapagem.
  2. Localize o checkbox "Validar Envelope em Uso [MRC016/MRC027/MRC034]" e desmarque-o (valor N).
  3. Salve o registro.
  4. Abra uma Ordem de Produção em MRC016, MRC027 ou MRC034.
  5. Informe um envelope que já esteja vinculado a outra ordem aberta.
  6. 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​

  1. Acesse REC001 → Parâmetros de Recapagem.
  2. Marque o checkbox "Validar Envelope em Uso [MRC016/MRC027/MRC034]" (valor S).
  3. Salve o registro.
  4. Abra uma Ordem de Produção em MRC016 (Vulcanização).
  5. Informe o código de um envelope X que já está vinculado à Ordem nº 50 (status aberto, sem desenvelopamento finalizado).
  6. 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. Se STDESKTOP = '1', a consulta é feita de forma alternativa (considerando também vinculações na etapa de Vulcanização e Montagem via UNION 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 de UNION ALL, ampliando a abrangência da validação.
  • Apenas ordens com status diferente de F (Fechada) e C (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':

  1. Consulta a tabela ETAPAPNEUEMPRESA para obter o STDESKTOP da etapa correspondente (etapa 16 para MRC016/MRC034, etapa 15 para MRC027).
  2. Se desktop ativo (STDESKTOP = '1'): busca o envelope em todas as etapas (Vulcanização + Montagem + Envelopamento) via UNION ALL.
  3. Se desktop inativo (STDESKTOP = '0'): busca o envelope apenas na etapa específica da tela atual.
  4. A busca ignora ordens fechadas/canceladas e desenvelopamentos finalizados.
  5. 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​

RotinaArquivoLinhaEvidência
TdmMRC016.tabVULCANIZACAOIDENVELOPEPNEUValidatesource/MRC016/UdmMRC016.pas519if parmRecap.Values['STVALIDAUSOENVELOPE'] = 'S' then
TdmMRC027.tabMONTAGEMRECAPIDENVELOPEPNEUValidatesource/MRC027/UdmMRC027.pas412if (parmRecap.Values['STVALIDAUSOENVELOPE'] = 'S') and (stDesktop = '0') then
TdmMRC034.tabENVELOPAMENTOIDENVELOPEValidatesource/MRC034/UdmMRC034.pas345if parmRecap.Values['STVALIDAUSOENVELOPE'] = 'S' then
TdmREC001.qryCadastroAfterInsertsource/REC001/UdmREC001.pas924Valor 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/ViewArquivo
ATUALIZA_PEDIDONOTAScripts/ATUALIZA_PEDIDONOTA.sql
ATUALIZA_PREVISAOORDEMPRODScripts/ATUALIZA_PREVISAOORDEMPROD.sql
ATUALIZA_STFATURAAUTOScripts/ATUALIZA_STFATURAAUTO.sql
FECHA_ORDEMPRODUCAORECAPScripts/FECHA_ORDEMPRODUCAORECAP.sql
GERA_ORDEMPRODUCAORECAPScripts/GERA_ORDEMPRODUCAORECAP.sql
(e demais scripts que acessam PARAMRECAP para ler outros parâmetros)