STPERMITECOLETATABVENCIDA – Permitir Coleta de Tabela de Preço Vencida
Tela de configuração: REC001 – Parâmetros da Recapadora
Tabela: PARAMRECAP.STPERMITECOLETATABVENCIDA
Tipo: CHAR(1)
Valor padrão: N (Não Permite)
Define se o sistema permite utilizar tabelas de preço com data de validade vencida durante a coleta de preços no módulo de Recapadora. Quando habilitado, a coleta de preços aceita tabelas vencidas, mas o pedido gerado fica bloqueado até autorização.
Telas impactadas
| Tela / Módulo | Impacto |
|---|
Recapadora (telas MRC*, exceto MRC018/MRC020) | Coleta de preço e bloqueio de pedido |
Smart / WFLY (WFLY*) | Coleta de preço e bloqueio de pedido |
| MRC018, MRC020 | Ignorado — sempre tratado como N |
| Demais módulos | Ignorado — sempre tratado como N |
Campos envolvidos
| Campo | Tabela | Relação |
|---|
STPERMITECOLETATABVENCIDA | PARAMRECAP | Parâmetro (este documento) |
DT_VALIDADE | TABPRECO | Data de expiração da tabela de preço |
ST_PEDIDO | PEDIDO | Status do pedido (B = Bloqueado) |
DS_BLOQUEIO | PEDIDO | Descrição do motivo do bloqueio |
Opções disponíveis
| O que faz | Detalhe |
|---|
| Coleta de preços | Aceita tabelas de preço vencidas (DT_VALIDADE < data do lançamento) |
| Pedido de venda | O pedido fica bloqueado (ST_PEDIDO = 'B') se utilizar tabela vencida |
| Restrição por módulo | Só vale para telas MRC* (exceto MRC018/MRC020) e WFLY*; nos demais módulos, o valor é forçado para N |
Simulação passo a passo
- Acesse REC001 (Parâmetros da Recapadora).
- Marque o campo Permite Coleta Tabela Vencida como Sim.
- Salve os parâmetros.
- Crie uma tabela de preço com
DT_VALIDADE no passado (ex: vencida em 01/01/2024).
- Abra um pedido de venda no módulo Recapadora (ex: tela
MRC001).
- Adicione um item vinculado à tabela de preço vencida.
- O sistema permite a coleta do preço normalmente.
- Ao confirmar/enviar o pedido, a procedure
VERIFICA_BLOQUEIOPEDIDORECAP identifica a tabela vencida.
- O pedido é marcado como Bloqueado (
ST_PEDIDO = 'B') com a mensagem: "Tabela(s) XXX Vencida(s) - 01/01/2024".
- O pedido só é liberado após autorização de um usuário habilitado.
Exceção / Importante: Se o usuário estiver em uma tela fora do módulo Recapadora/Smart (ex: MFA001, OFI001), o sistema ignora este parâmetro e bloqueia tabelas vencidas normalmente. As telas MRC018 e MRC020 também ignoram este parâmetro.
Resultado esperado: O preço é coletado da tabela vencida, mas o pedido fica bloqueado até autorização, listando as tabelas vencidas e suas datas de validade na descrição do bloqueio.
| O que faz | Detalhe |
|---|
| Coleta de preços | Bloqueia tabelas de preço vencidas diretamente na consulta de preço |
| Mensagem | "A TABELA DE PREÇO "X" NÃO ESTÁ VÁLIDA. VERIFIQUE! [TFA006]" |
| Pedido de venda | Não há verificação adicional em VERIFICA_BLOQUEIOPEDIDORECAP (pois tabelas vencidas já foram rejeitadas na coleta) |
Simulação passo a passo
- Acesse REC001 (Parâmetros da Recapadora).
- Marque o campo Permite Coleta Tabela Vencida como Não.
- Salve os parâmetros.
- Crie uma tabela de preço com
DT_VALIDADE no passado (ex: vencida em 01/01/2024).
- Abra um pedido de venda no módulo Recapadora (ex: tela
MRC001).
- Adicione um item vinculado à tabela de preço vencida.
- O sistema bloqueia a coleta e exibe a mensagem: "A TABELA DE PREÇO "X" NÃO ESTÁ VÁLIDA. VERIFIQUE! [TFA006]".
- O item não é adicionado ao pedido até que uma tabela válida seja selecionada.
Resultado esperado: O sistema impede o uso de tabelas vencidas já na etapa de coleta de preço, sem permitir avançar no pedido.
Regra Geral de Restrição por Módulo
Ambas as opções (S e N) sofrem uma validação adicional de módulo nas procedures RETORNA_PRECOITEM e RETORNA_TABPRECO:
| Condição | Comportamento |
|---|
Tela é MRC* (exceto MRC018/MRC020) | Respeita o valor configurado no parâmetro |
Tela é WFLY* (Smart) | Respeita o valor configurado no parâmetro |
Tela é MRC018 ou MRC020 | Parâmetro é ignorado (forçado para N) |
| Qualquer outro módulo | Parâmetro é ignorado (forçado para N) |
Tabela Comparativa Resumida
| Aspecto | S (Permite) | N (Não Permite) |
|---|
| Coleta de preço com tabela vencida | ✅ Permitida | ❌ Bloqueada |
| Pedido usando tabela vencida | Bloqueado (ST_PEDIDO = 'B') | Não chega a criar pedido |
| Mensagem exibida | Listagem de tabelas vencidas no pedido | "TABELA DE PREÇO NÃO ESTÁ VÁLIDA" |
| Exige autorização para liberar | Sim | Não aplicável |
| Restrição por módulo | Sim (MRC/WFLY, exceto MRC018/MRC020) | Sim (MRC/WFLY, exceto MRC018/MRC020) |
Procedures impactadas
| Rotina | Arquivo | Linha | Evidência |
|---|
TdmREC001.qryCadastroAfterInsert | source/REC001/UdmREC001.pas | 963 | Inicializa o campo com 'N' ao inserir novo registro |
TframeREC001.chkSTPERMITECOLETATABVENCIDAMouseMove | source/REC001/UframeREC001.pas | 2330 | Handler de mouse do checkbox na tela |
Referências SQL diretas ao campo
| Procedure/Script | Arquivo | Comportamento |
|---|
RETORNA_PRECOITEM | Scripts/RETORNA_PRECOITEM.sql | Se 'S', ignora validade da tabela na coleta de preço; se 'N', bloqueia com mensagem de tabela inválida |
RETORNA_TABPRECO | Scripts/RETORNA_TABPRECO.sql | Se 'S', remove filtro de DT_VALIDADE na consulta SQL de busca de tabela de preço; se 'N', filtra apenas tabelas válidas |
VERIFICA_BLOQUEIOPEDIDORECAP | Scripts/VERIFICA_BLOQUEIOPEDIDORECAP.sql | Se 'S', verifica itens do pedido e bloqueia o pedido caso utilize tabelas vencidas |
Candidatas por uso da tabela (sem referência direta ao campo)
Estas procedures acessam a tabela PARAMRECAP mas não citam o campo STPERMITECOLETATABVENCIDA diretamente. Não há impacto funcional identificado sobre este parâmetro nessas rotinas.