ST_PERMITENOTAZERADA - Permite Nota Fiscal Zerada
Tela de configuração: MFA002 — Parâmetros de Nota Fiscal por Série Tabela:
PARMNOTA.ST_PERMITENOTAZERADATipo: CHAR(1), NOT NULL Valor padrão:N(Não)
Descrição
Controla se a geração de Nota Fiscal com valor total igual a zero é permitida para a série configurada. O bloqueio/ liberação é avaliado na procedure GERA_NOTAFISCAL no momento da geração da nota.
Telas impactadas
| Tela | Contexto |
|---|---|
| MFA002 | Tela de cadastro do parâmetro (combobox) |
Campos envolvidos
| Campo | Tabela | Tipo | Descrição |
|---|---|---|---|
ST_PERMITENOTAZERADA | PARMNOTA | CHAR(1) | 'S' = permite NF zerada, 'N' = não permite |
I_VL_TOTNOTA | variável local | NUMERIC | Valor total da nota fiscal em geração |
V_QT_COMPLNORMAIS | variável local | INTEGER | Quantidade de itens complementares normais da nota |
Opções disponíveis
N — Não (padrão)
| O que faz | Detalhe |
|---|---|
| Bloqueia NF com valor ≤ 0 | Quando existem itens complementares normais na nota, a geração é interrompida se I_VL_TOTNOTA <= 0 |
Simulação passo a passo
- Acesse MFA002 e selecione a série desejada.
- No campo Permite Nota Zerada, escolha Não.
- Salve o parâmetro (
<F9>ou botão Salvar). - Na emissão de NF, gere uma nota cujo valor total seja R$ 0,00 (ou negativo) e que possua ao menos um item complementar normal.
- O sistema exibe a mensagem: "GERA_NOTAFISCAL.: O VALOR TOTAL DA NOTA FISCAL NÃO PODE SER MENOR OU IGUAL A ZERO." e interrompe a geração.
Resultado esperado: Notas fiscais com valor total ≤ 0 e com itens complementares normais são rejeitadas; a nota não é gerada.
Exceção / Importante: O bloqueio só se aplica quando
V_QT_COMPLNORMAIS >= 1(há ao menos um item complementar normal na nota). Notas sem itens complementares normais não são afetadas por esta regra.
S — Sim
| O que faz | Detalhe |
|---|---|
| Permite NF com valor = 0 | Apenas notas com valor total negativo são bloqueadas |
Simulação passo a passo
- Acesse MFA002 e selecione a série desejada.
- No campo Permite Nota Zerada, escolha Sim.
- Salve o parâmetro (
<F9>ou botão Salvar). - Na emissão de NF, gere uma nota cujo valor total seja R$ 0,00 — a nota será gerada normalmente.
- Se tentar gerar uma nota com valor total negativo (ex.: R$ -5,00), o sistema exibe a mensagem: "GERA_NOTAFISCAL.: O VALOR TOTAL DA NOTA FISCAL NÃO PODE SER MENOR QUE ZERO." e interrompe a geração.
Resultado esperado: Notas com valor total zero são aceitas; apenas notas com valor total negativo são rejeitadas.
Exceção / Importante: Mesmo com
S, notas com valor negativo são sempre bloqueadas.
Tabela Comparativa Resumida
| Valor | Label | NF valor = 0 | NF valor < 0 | NF valor > 0 |
|---|---|---|---|---|
N | Não | ❌ Bloqueia | ❌ Bloqueia | ✅ Permite |
S | Sim | ✅ Permite | ❌ Bloqueia | ✅ Permite |
Nota: Com valor
N, o bloqueio de NF zerada depende de existirem itens complementares normais (V_QT_COMPLNORMAIS >= 1).
Procedures impactadas
Rotinas Delphi com referência direta ao campo
| Rotina | Arquivo | Evidência |
|---|---|---|
TdmMFA002.tabPARMNOTAAfterInsert | source/MFA002/UdmMFA002.pas | Atribui valor padrão 'N' ao campo ao inserir novo registro |
Referências SQL diretas ao campo
| Procedure | Arquivo | Evidência |
|---|---|---|
GERA_NOTAFISCAL | Scripts/GERA_NOTAFISCAL.sql | Declara variável V_ST_PERMITENOTAZERADA, faz fetch do campo em SELECT e valida valor total da nota nas linhas 1232 e 1242 |
Candidatas por uso da tabela (sem referência direta ao campo)
As procedures abaixo utilizam a tabela PARMNOTA, mas não referenciam diretamente o campo ST_PERMITENOTAZERADA:
| Procedure | Arquivo |
|---|---|
CALCULA_IMPOSTONOTA | Scripts/CALCULA_IMPOSTONOTA.sql |
GERA_CHAVEACESSONFE | Scripts/GERA_CHAVEACESSONFE.sql |
GERA_ESTOQUE_NOTAFISCAL | Scripts/GERA_ESTOQUE_NOTAFISCAL.sql |
GERA_IMPOSTONOTA | Scripts/GERA_IMPOSTONOTA.sql |
GERA_IMPOSTONOTA_INDIVIDUAL | Scripts/GERA_IMPOSTONOTA_INDIVIDUAL.sql |
GERA_NFE | Scripts/GERA_NFE.sql |
GERA_NOTAPEDIDO | Scripts/GERA_NOTAPEDIDO.sql |
GRAVA_NOTACTE | Scripts/GRAVA_NOTACTE.sql |
RETORNA_IMPMOV | Scripts/RETORNA_IMPMOV.sql |
RETORNA_IMPRESSORAUSUARIO | Scripts/RETORNA_IMPRESSORAUSUARIO.sql |
RETORNA_NFSEQUENCIA | Scripts/RETORNA_NFSEQUENCIA.sql |