STLIBERACONSERVICO — Controle de Medida × Serviço
Tela de configuração: REC001 — Parâmetros da Recapadora Tabela:
PARAMRECAP.STLIBERACONSERVICOTipo:DOM_SMALLINTValor padrão:NULL(tratado como0no 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
| Tela | Módulo | Impacto |
|---|---|---|
| MRC001 | Pedido de Pneu | Valida medida × serviço no item; filtra busca <F9>; preenchimento automático do serviço |
| MRC003 | OP — Exame Inicial / Raspagem | Obriga troca de serviço ao alterar medida; controla commit da sessão |
| MRC006 | OP — Aplicação de Banda | Valida medida × serviço; filtra busca <F9> por banda + medida |
| MRC007 | OP — Vulcanização | Valida medida × serviço (código parcialmente migrado para TPTROCASERVICO) |
| MRC008 | OP — Preparação de Banda | Valida medida × serviço; filtra busca <F9> por banda + medida |
| MRC009 | OP — Escareamento | Valida medida × serviço; filtra busca <F9>; exibe mensagem de erro específica |
Campos envolvidos
| Campo | Tabela | Relação |
|---|---|---|
IDSERVICOPNEU | Item do pedido / OP | Deve pertencer à mesma IDMEDIDAPNEU do pneu (quando 0) |
IDMEDIDAPNEU | Pneu / OP | Medida atual do pneu — base da validação |
IDBANDAPNEU | Item do pedido / OP | Usado como filtro adicional na busca de serviço |
IDMEDIDAPNEU | SERVICOPNEU | Medida cadastrada no serviço (TRC007) — deve coincidir |
Opções disponíveis
0 — Restritivo (Medida Obrigatória no Serviço)
| O que faz | Detalhe |
|---|---|
| Valida medida × serviço | Obrigatório que SERVICOPNEU.IDMEDIDAPNEU = PNEU.IDMEDIDAPNEU |
Filtra busca <F9> | Ao buscar serviço, o sistema envia a medida atual como filtro |
| Preench. automático | Se existir exatamente 1 serviço para a medida, preenche sozinho |
| Obriga troca de serviço | Ao alterar medida na OP, força abertura da tela de troca de serviço |
| Bloqueio de etapa fechada | Se raspagem/preparação já fechada, impede alteração de medida |
Simulação passo a passo — Pedido de Pneu (MRC001)
- Acesse MRC001 — Pedido de Pneu.
- Cadastre um item com pneu de medida 295/80R22.5.
- Pressione
<F9>no campo Serviço. O sistema exibirá apenas serviços cadastrados com medida 295/80R22.5. - Se existir apenas 1 serviço para essa medida, o campo será preenchido automaticamente ao informar a medida.
- Tente informar um serviço cadastrado para medida 315/80R22.5.
- 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)
- Acesse MRC003 — Ordem de Produção com um pneu na etapa de raspagem.
- Altere a medida do pneu para uma diferente da atual.
- O sistema detecta a mudança e obriga a troca do serviço via tela de troca (
TrocaServico('M')). - 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)
- Acesse a tela de troca de desenho ou a edição de serviço na OP.
- Pressione
<F9>no campo de serviço. - O sistema monta filtro com banda e medida atuais do pneu.
- 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 comSTLIBERACONSERVICO = 0, pois o tipo de troca "B" assume controle próprio do fluxo.
1 — Liberado (Qualquer Serviço)
| O que faz | Detalhe |
|---|---|
| Sem filtro de medida | Qualquer serviço ativo pode ser selecionado |
| Sem validação cruzada | Não verifica correspondência entre medida do pneu e medida do serviço |
| Commit livre | Em MRC003, permite commitar a sessão sem obrigação de trocar serviço |
Busca <F9> sem filtro de medida | Lista todos os serviços ativos do cadastro |
Simulação passo a passo — Pedido de Pneu (MRC001)
- Acesse MRC001 — Pedido de Pneu.
- Cadastre um item com pneu de medida 295/80R22.5.
- Pressione
<F9>no campo Serviço. O sistema exibirá todos os serviços ativos, sem filtrar por medida. - Selecione um serviço cadastrado para medida 315/80R22.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)
- Acesse MRC003 com um pneu em processamento.
- Altere a medida do pneu.
- O sistema não obriga a troca de serviço.
- O commit da sessão é realizado normalmente (sem travar na tela de troca de serviço).
- 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 faz | Detalhe |
|---|---|
Comportamento idêntico a 0 | O 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
- Acesse o banco de dados e verifique
SELECT STLIBERACONSERVICO FROM PARAMRECAP WHERE IDEMPRESA = <empresa>. - Se o valor for
NULL, o comportamento será o mesmo da opção 0 — Restritivo. - 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 como0. Nas demais telas, a comparação diretaAsString = '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 com0ou1.
Procedures impactadas
Rotinas Delphi com referência direta ao campo
| Rotina | Arquivo | Linha | Uso |
|---|---|---|---|
TdmMRC001.qryItemPedidoPneuIDSERVICOPNEUValidate | UdmMRC001.pas | 762 | Valida medida do serviço × medida do pneu no pedido |
TdmMRC001.qryItemPedidoPneuIDMEDIDAPNEUValidate | UdmMRC001.pas | 1189 | Auto-preenche serviço quando há 1 match por medida |
TframeMRC001.gridCadastroKeyDown | UframeMRC001.pas | 1184 | Filtra busca <F9> de serviço pela medida do pneu |
TframeMRC003.btnSALVARALTClick | UframeMRC003.pas | 5049 | Controla commit da sessão conforme parâmetro |
TframeMRC003 (pós-save) | UframeMRC003.pas | 5125 | Obriga troca de serviço ao alterar medida |
TframeMRC003 (pós-save) | UframeMRC003.pas | 5161 | Decide se reimprime OP após salvar |
TdmMRC006.tabORDEMPRODUCAOIDBANDAPNEUValidate | UdmMRC006.pas | 900 | Filtra busca de serviço por banda + medida |
TformTrocaDesenho.edtIDSERVICOAUXKeyDown (MRC006) | UMRC006formTrocaDesenho.pas | 356 | Filtra <F9> por banda + medida |
Busca_Parametros (MRC003) | UdmMRC003.pas | 694 | Carrega parâmetro em iSTLIBERACONSERVICO |
Busca_Parametros (MRC006) | UdmMRC006.pas | 271 | Carrega parâmetro em variável local |
Busca_Parametros (MRC007) | UdmMRC007.pas | 309 | Carrega parâmetro com Coalesce |
Busca_Parametros (MRC008) | UdmMRC008.pas | 323 | Carrega parâmetro em variável local |
Busca_Parametros (MRC009) | UdmMRC009.pas | 311 | Carrega parâmetro em variável local |
TdmMRC008.tabORDEMPRODUCAOIDBANDAPNEUValidate | UdmMRC008.pas | 988 | Filtra busca de serviço por banda + medida |
TdmMRC009.tabORDEMPRODUCAOIDSERVICOAUXValidate | UdmMRC009.pas | 663 | Valida 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âmetro | Onde configura | Relação |
|---|---|---|
TPTROCASERVICO | REC001 — Parâmetros da Recapadora | Quando = B, assume o controle de troca de serviço, sobrepondo parcialmente STLIBERACONSERVICO = 0 |
STMANTEMVALORTROCASERVICO | REC001 — Parâmetros da Recapadora | Define se o valor do serviço é mantido após troca (complementar ao fluxo de troca de serviço) |
Tabela comparativa
| Aspecto | 0 (Restritivo) | 1 (Liberado) |
|---|---|---|
Filtro de medida no <F9> | Sim | Não |
| Validação medida × serviço | Sim | Não |
| Preench. automático do serviço | Sim (se 1 match) | Não |
| Obriga troca de serviço ao mudar medida (MRC003) | Sim | Não |
| Commit da sessão (MRC003) | Condicionado à troca | Sempre |
| Busca de serviço filtra por banda + medida | Sim | Não |
| Mensagem de erro | "A medida deverá ser associada ao serviço [TRC007]!" | — |