Pular para o conteúdo principal

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​

TelaUso
ADM012 — Parâmetros do UsuárioConfiguração do valor por usuário
ADM013 — Cadastro de UsuáriosDuplicação de parâmetros (copia NR_TEMPOCANCELAMENTONF)

Campos envolvidos​

CampoTabelaTipo
NR_TEMPOCANCELAMENTONFPARMUSUARIOINTEGER
TP_TEMPOCANCELAMENTONFPARMUSUARIOCHAR(1) — define unidade: 'D' = dias, 'H' = horas (padrão 'H')

Opções disponiveis​

O que fazDetalhe
Preencher o campoAtiva o limite de tempo para cancelamento de NF-e/NFC-e próprias (notas do próprio usuário)
Deixar em brancoSem limite de tempo — a validação é ignorada

Valor preenchido (ex: 2 com unidade Horas)​

Simulação passo a passo​

  1. Acesse ADM012 — Parâmetros do Usuário.
  2. Localize o campo Tempo para Cancelamento de NF na aba Parâmetros do Usuário.
  3. Consulte o campo Tipo (TP_TEMPOCANCELAMENTONF): 'H' = horas, 'D' = dias.
  4. Digite 2 no campo de tempo (supondo unidade 'H' = horas).
  5. Clique em Salvar.
  6. Emita uma nota fiscal como o usuário em questão.
  7. 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​

  1. Acesse ADM012 — Parâmetros do Usuário.
  2. Deixe o campo Tempo para Cancelamento de NF em branco.
  3. Clique em Salvar.
  4. 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çãoComportamento
NR_TEMPOCANCELAMENTONF IS NULLSem validação de tempo cancelamento
Valor > 0 e tempo decorrido ≤ prazoCancelamento permitido
Valor > 0 e tempo decorrido > prazoCancelamento 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árioPreenchido?UnidadeExemplo valorPrazoBloqueio após
Sem limiteNão———Nunca
HorasSimH22 horas> 2h da emissão
DiasSimD124 horas> 24h da emissão
HorasSimH4848 horas> 48h da emissão

Procedures impactadas​

Rotinas Delphi com referência direta ao parametro​

RotinaArquivoImpacto
tabPARMUSUARIONR_TEMPOCANCELAMENTONFValidatesource/ADM012/UdmADM012.pas:815Validação: valor deve ser > 0 quando preenchido
TfrmADM013.btnDuplicaUsuarioClicksource/ADM013/UADM013.pas:476Duplicação de parâmetros (copia campo)

Referências SQL diretas ao campo em Scripts/​

ProcedureArquivoImpacto
CANCELA_NOTAFISCALScripts/CANCELA_NOTAFISCAL.sql:246Aplica 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.