NR_TEMPOCANCELAMENTONF — Tempo para Cancelamento de NF
Tela de configuração: ADM012 — Parâmetros do Usuário
Localização: Aba Parâmetros do Usuário
Tabela: PARMUSUARIO.NR_TEMPOCANCELAMENTONF
Tipo: INTEGER
Valor padrão: nulo (campo vazio = sem limite de tempo)
Validação: Se preenchido, deve ser > 0 — caso contrário exibe: "O valor informado deve ser superior a 0."
Telas impactadas
| Tela | Uso |
|---|
| ADM012 — Parâmetros do Usuário | Configuração do valor por usuário |
| ADM013 — Cadastro de Usuários | Duplicação de parâmetros (copia NR_TEMPOCANCELAMENTONF) |
Campos envolvidos
| Campo | Tabela | Tipo |
|---|
NR_TEMPOCANCELAMENTONF | PARMUSUARIO | INTEGER |
TP_TEMPOCANCELAMENTONF | PARMUSUARIO | CHAR(1) — define unidade: 'D' = dias, 'H' = horas (padrão 'H') |
Opções disponiveis
| O que faz | Detalhe |
|---|
| Preencher o campo | Ativa o limite de tempo para cancelamento de NF-e/NFC-e próprias (notas do próprio usuário) |
| Deixar em branco | Sem limite de tempo — a validação é ignorada |
Simulação passo a passo
- Acesse ADM012 — Parâmetros do Usuário.
- Localize o campo Tempo para Cancelamento de NF na aba
Parâmetros do Usuário.
- Consulte o campo Tipo (
TP_TEMPOCANCELAMENTONF): 'H' = horas, 'D' = dias.
- Digite
2 no campo de tempo (supondo unidade 'H' = horas).
- Clique em Salvar.
- Emita uma nota fiscal como o usuário em questão.
- Tente cancelar a nota após 3 horas da emissão.
Resultado esperado: O sistema bloqueia o cancelamento e exibe: "A NOTA FISCAL NÃO PODE SER CANCELADA PORQUE ATINGIU O LIMITE DE TEMPO PARA O CANCELAMENTO CONCEDIDO AO USUÁRIO!" seguido de empresa e usuário.
Exceção / Importante:
- Esta validação só se aplica a notas fiscais próprias (
TP_NOTAPROPRIA = 'P'), ou seja, NF-e/NFC-e emitidas pelo próprio usuário que está tentando cancelar.
- Se
NR_TEMPOCANCELAMENTONF estiver nulo/vazio, a validação é ignorada — não há prazo limite.
- O cálculo usa
DATEDIFF(SECOND, DT_EMISSAO_EXATA, CURRENT_TIMESTAMP) menos o prazo convertendo: dias × 86400 ou horas × 3600 segundos. Se o resultado for > 0, o prazo expirou.
Campo vazio (sem limite)
Simulação passo a passo
- Acesse ADM012 — Parâmetros do Usuário.
- Deixe o campo Tempo para Cancelamento de NF em branco.
- Clique em Salvar.
- Tente cancelar uma nota fiscal própria a qualquer momento após a emissão.
Resultado esperado: O sistema não bloqueia o cancelamento com base em tempo (a validação de prazo é pulada). Outros bloqueios (ex: contabil, documento autorizado) ainda podem se aplicar.
Regra Geral de Autorização
| Condição | Comportamento |
|---|
NR_TEMPOCANCELAMENTONF IS NULL | Sem validação de tempo cancelamento |
| Valor > 0 e tempo decorrido ≤ prazo | Cancelamento permitido |
| Valor > 0 e tempo decorrido > prazo | Cancelamento bloqueado com mensagem de erro |
TP_TEMPOCANCELAMENTONF = 'D' | Prazo em dias (valor × 86400 segundos) |
TP_TEMPOCANCELAMENTONF = 'H' (padrão) | Prazo em horas (valor × 3600 segundos) |
Tabela Comparativa Resumida
| Cenário | Preenchido? | Unidade | Exemplo valor | Prazo | Bloqueio após |
|---|
| Sem limite | Não | — | — | — | Nunca |
| Horas | Sim | H | 2 | 2 horas | > 2h da emissão |
| Dias | Sim | D | 1 | 24 horas | > 24h da emissão |
| Horas | Sim | H | 48 | 48 horas | > 48h da emissão |
Procedures impactadas
| Rotina | Arquivo | Impacto |
|---|
tabPARMUSUARIONR_TEMPOCANCELAMENTONFValidate | source/ADM012/UdmADM012.pas:815 | Validação: valor deve ser > 0 quando preenchido |
TfrmADM013.btnDuplicaUsuarioClick | source/ADM013/UADM013.pas:476 | Duplicação de parâmetros (copia campo) |
Referências SQL diretas ao campo em Scripts/
| Procedure | Arquivo | Impacto |
|---|
CANCELA_NOTAFISCAL | Scripts/CANCELA_NOTAFISCAL.sql:246 | Aplica validação de prazo ao cancelar nota fiscal própria |
Candidatas por uso da tabela
As procedures abaixo referenciam PARMUSUARIO, mas sem citação direta ao campo NR_TEMPOCANCELAMENTONF.
CONTROLE_CAIXA, GERA_ETIQUETABALANCA, PERMISSAO_CAIXA, RETORNA_IMPRESSORAUSUARIO, TRGPARMFATUR_BU, VALIDA_BLOQDESCMAXSUBGRUPO, VALIDA_CODIGOBARRA, VALIDA_LIBERACAOUSUARIO, VALIDA_MODELOBLOQUEIODIASATRASO, VALIDA_MODELOBLOQUEIOPCDESCMAX, VALIDA_MODELOBLOQUEIOVLLIMITE, VERIFICA_BLOQUEIO, VIEW_DOCUMENTOSBLOQUEADOS.