Pular para o conteúdo principal

STLIBERACONSERVICO — Controle de Medida × Serviço

Tela de configuração: REC001 — Parâmetros da Recapadora Tabela: PARAMRECAP.STLIBERACONSERVICO Tipo: DOM_SMALLINT Valor padrão: NULL (tratado como 0 no código)

Resumo​

Controla se o sistema filtra e valida a correspondência entre a medida do pneu e o serviço de recapagem informado nos pedidos e ordens de produção.

  • 0 (Restritivo): O serviço selecionado deve ter a mesma medida do pneu. Caso contrário, o sistema exibe erro.
  • 1 (Liberado): Qualquer serviço ativo pode ser selecionado, independentemente da medida do pneu.

Quando o valor for NULL no banco, o código Delphi compara como = '0' (restritivo).

Telas impactadas​

TelaMóduloImpacto
MRC001Pedido de PneuValida medida × serviço no item; filtra busca <F9>; preenchimento automático do serviço
MRC003OP — Exame Inicial / RaspagemObriga troca de serviço ao alterar medida; controla commit da sessão
MRC006OP — Aplicação de BandaValida medida × serviço; filtra busca <F9> por banda + medida
MRC007OP — VulcanizaçãoValida medida × serviço (código parcialmente migrado para TPTROCASERVICO)
MRC008OP — Preparação de BandaValida medida × serviço; filtra busca <F9> por banda + medida
MRC009OP — EscareamentoValida medida × serviço; filtra busca <F9>; exibe mensagem de erro específica

Campos envolvidos​

CampoTabelaRelação
IDSERVICOPNEUItem do pedido / OPDeve pertencer à mesma IDMEDIDAPNEU do pneu (quando 0)
IDMEDIDAPNEUPneu / OPMedida atual do pneu — base da validação
IDBANDAPNEUItem do pedido / OPUsado como filtro adicional na busca de serviço
IDMEDIDAPNEUSERVICOPNEUMedida cadastrada no serviço (TRC007) — deve coincidir

Opções disponíveis​

0 — Restritivo (Medida Obrigatória no Serviço)​

O que fazDetalhe
Valida medida × serviçoObrigatório que SERVICOPNEU.IDMEDIDAPNEU = PNEU.IDMEDIDAPNEU
Filtra busca <F9>Ao buscar serviço, o sistema envia a medida atual como filtro
Preench. automáticoSe existir exatamente 1 serviço para a medida, preenche sozinho
Obriga troca de serviçoAo alterar medida na OP, força abertura da tela de troca de serviço
Bloqueio de etapa fechadaSe raspagem/preparação já fechada, impede alteração de medida

Simulação passo a passo — Pedido de Pneu (MRC001)​

  1. Acesse MRC001 — Pedido de Pneu.
  2. Cadastre um item com pneu de medida 295/80R22.5.
  3. Pressione <F9> no campo Serviço. O sistema exibirá apenas serviços cadastrados com medida 295/80R22.5.
  4. Se existir apenas 1 serviço para essa medida, o campo será preenchido automaticamente ao informar a medida.
  5. Tente informar um serviço cadastrado para medida 315/80R22.5.
  6. Resultado esperado: O sistema exibe o erro: "A medida deverá ser associada ao serviço [TRC007]!" e impede a confirmação.

Simulação passo a passo — Ordem de Produção (MRC003)​

  1. Acesse MRC003 — Ordem de Produção com um pneu na etapa de raspagem.
  2. Altere a medida do pneu para uma diferente da atual.
  3. O sistema detecta a mudança e obriga a troca do serviço via tela de troca (TrocaServico('M')).
  4. Se a etapa de raspagem ou preparação de banda já estiver fechada, a alteração de medida será bloqueada com mensagem de erro informando que é necessário reabrir ou excluir a etapa.

Simulação passo a passo — Busca de Serviço por <F9> (MRC006, MRC008, MRC009)​

  1. Acesse a tela de troca de desenho ou a edição de serviço na OP.
  2. Pressione <F9> no campo de serviço.
  3. O sistema monta filtro com banda e medida atuais do pneu.
  4. Apenas serviços compatíveis com ambas serão exibidos.

Resultado esperado: O usuário somente consegue selecionar serviços cuja medida cadastrada em TRC007 corresponda exatamente à medida do pneu na OP.

Excecao / Importante: Quando TPTROCASERVICO = B (configurado em REC001 — Parâmetros da Recapadora), o sistema permite a troca de serviço mesmo com STLIBERACONSERVICO = 0, pois o tipo de troca "B" assume controle próprio do fluxo.


1 — Liberado (Qualquer Serviço)​

O que fazDetalhe
Sem filtro de medidaQualquer serviço ativo pode ser selecionado
Sem validação cruzadaNão verifica correspondência entre medida do pneu e medida do serviço
Commit livreEm MRC003, permite commitar a sessão sem obrigação de trocar serviço
Busca <F9> sem filtro de medidaLista todos os serviços ativos do cadastro

Simulação passo a passo — Pedido de Pneu (MRC001)​

  1. Acesse MRC001 — Pedido de Pneu.
  2. Cadastre um item com pneu de medida 295/80R22.5.
  3. Pressione <F9> no campo Serviço. O sistema exibirá todos os serviços ativos, sem filtrar por medida.
  4. Selecione um serviço cadastrado para medida 315/80R22.5.
  5. Resultado esperado: O sistema aceita a seleção sem erro. O serviço é vinculado ao item normalmente.

Simulação passo a passo — Ordem de Produção (MRC003)​

  1. Acesse MRC003 com um pneu em processamento.
  2. Altere a medida do pneu.
  3. O sistema não obriga a troca de serviço.
  4. O commit da sessão é realizado normalmente (sem travar na tela de troca de serviço).
  5. Ao final, o sistema pergunta se deseja reimprimir a ordem de produção.

Resultado esperado: O operador pode alterar medida e serviço de forma independente, sem bloqueios de validação cruzada.

Excecao / Importante: Mesmo com STLIBERACONSERVICO = 1, o sistema ainda valida se o serviço está ativo (STATIVO <> 'N') e se o produto referente ao serviço está ativo (ST_ATIVO <> 'N'). Essas validações são independentes deste parâmetro.


NULL — Sem Configuração (Tratado como 0)​

O que fazDetalhe
Comportamento idêntico a 0O código Delphi compara AsString = '0'; valores NULL retornam string vazia, que <> '0' — mas Coalesce em MRC007 trata como '0'

Simulação passo a passo​

  1. Acesse o banco de dados e verifique SELECT STLIBERACONSERVICO FROM PARAMRECAP WHERE IDEMPRESA = <empresa>.
  2. Se o valor for NULL, o comportamento será o mesmo da opção 0 — Restritivo.
  3. Resultado esperado: Todas as validações de medida × serviço são aplicadas normalmente.

Excecao / Importante: Em MRC007, a query usa Coalesce(STLIBERACONSERVICO,'0'), garantindo que NULL seja tratado como 0. Nas demais telas, a comparação direta AsString = '0' faz com que NULL (string vazia) não ative a validação — o que pode gerar comportamento inesperado. Recomenda-se sempre preencher o campo com 0 ou 1.

Procedures impactadas​

Rotinas Delphi com referência direta ao campo​

RotinaArquivoLinhaUso
TdmMRC001.qryItemPedidoPneuIDSERVICOPNEUValidateUdmMRC001.pas762Valida medida do serviço × medida do pneu no pedido
TdmMRC001.qryItemPedidoPneuIDMEDIDAPNEUValidateUdmMRC001.pas1189Auto-preenche serviço quando há 1 match por medida
TframeMRC001.gridCadastroKeyDownUframeMRC001.pas1184Filtra busca <F9> de serviço pela medida do pneu
TframeMRC003.btnSALVARALTClickUframeMRC003.pas5049Controla commit da sessão conforme parâmetro
TframeMRC003 (pós-save)UframeMRC003.pas5125Obriga troca de serviço ao alterar medida
TframeMRC003 (pós-save)UframeMRC003.pas5161Decide se reimprime OP após salvar
TdmMRC006.tabORDEMPRODUCAOIDBANDAPNEUValidateUdmMRC006.pas900Filtra busca de serviço por banda + medida
TformTrocaDesenho.edtIDSERVICOAUXKeyDown (MRC006)UMRC006formTrocaDesenho.pas356Filtra <F9> por banda + medida
Busca_Parametros (MRC003)UdmMRC003.pas694Carrega parâmetro em iSTLIBERACONSERVICO
Busca_Parametros (MRC006)UdmMRC006.pas271Carrega parâmetro em variável local
Busca_Parametros (MRC007)UdmMRC007.pas309Carrega parâmetro com Coalesce
Busca_Parametros (MRC008)UdmMRC008.pas323Carrega parâmetro em variável local
Busca_Parametros (MRC009)UdmMRC009.pas311Carrega parâmetro em variável local
TdmMRC008.tabORDEMPRODUCAOIDBANDAPNEUValidateUdmMRC008.pas988Filtra busca de serviço por banda + medida
TdmMRC009.tabORDEMPRODUCAOIDSERVICOAUXValidateUdmMRC009.pas663Valida medida × serviço e exibe erro específico

Referências SQL diretas ao campo​

Não foram encontradas referências diretas a STLIBERACONSERVICO em scripts SQL (Scripts/*.sql). O campo é utilizado exclusivamente pelo lado Delphi (aplicação).

Candidatas por uso da tabela PARAMRECAP​

As procedures/views abaixo fazem JOIN ou SELECT na tabela PARAMRECAP mas não citam o campo STLIBERACONSERVICO diretamente. Não há impacto funcional documentado sobre este campo.

ATUALIZA_PEDIDONOTA, ATUALIZA_PREVISAOORDEMPROD, ATUALIZA_STFATURAAUTO, CANCELA_ESTOQUERECAP, CANCELA_NOTAFISCAL, FECHA_ORDEMPRODUCAORECAP, GERA_NOTAPEDIDO, GERA_ORDEMPRODUCAORECAP, entre outras.

Parâmetros relacionados​

ParâmetroOnde configuraRelação
TPTROCASERVICOREC001 — Parâmetros da RecapadoraQuando = B, assume o controle de troca de serviço, sobrepondo parcialmente STLIBERACONSERVICO = 0
STMANTEMVALORTROCASERVICOREC001 — Parâmetros da RecapadoraDefine se o valor do serviço é mantido após troca (complementar ao fluxo de troca de serviço)

Tabela comparativa​

Aspecto0 (Restritivo)1 (Liberado)
Filtro de medida no <F9>SimNão
Validação medida × serviçoSimNão
Preench. automático do serviçoSim (se 1 match)Não
Obriga troca de serviço ao mudar medida (MRC003)SimNão
Commit da sessão (MRC003)Condicionado à trocaSempre
Busca de serviço filtra por banda + medidaSimNão
Mensagem de erro"A medida deverá ser associada ao serviço [TRC007]!"—