TP_ITEM — Filtro de Tipo de Item por Série de Nota Fiscal
Tela de configuração: MFA002 — Parâmetros de Nota Fiscal por Série Tabela:
PARMNOTA.TP_ITEM·CHAR(1) NOT NULLValor padrão:T(Todos) Controle: ComboBoxcmbTP_ITEMvinculado ao campoTP_ITEMviadmMFA002.dsPARMNOTA
Resumo
Define qual tipo de item (produto/serviço) pode ser lançado em notas fiscais que utilizem esta série. Quando diferente de T, funciona como filtro obrigatório que restringe a inserção de itens na nota — o sistema rejeita itens cujo tipo não corresponda ao configurado.
Telas impactadas
| Tela | Arquivo | Efeito |
|---|---|---|
| MFA002 — Parâmetros de Nota Fiscal por Série | UdmMFA002.pas | Cadastro do parâmetro (default 'T' no AfterInsert) |
| MNF001 — Movimento de Nota Fiscal (Saída) | UdmMNF001.pas | Validação ao inserir item na nota: bloqueia item se o tipo não corresponde ao filtro da série |
| MNF033 / Geração de NF a partir de pedido | GERA_NOTAFISCALPEDIDO.sql | Filtra itens do pedido conforme I_TP_ITEM ao gerar nota por ordem de carregamento |
| LNF140 — Layout de impressão de NF | ULNF140.pas | Usa I.TP_ITEM para ordenação e descrição (Produtivo / Improdutivo / Serviço / Aplicação Imediata) |
Campos envolvidos
| Campo | Tabela | Tipo | Descrição |
|---|---|---|---|
TP_ITEM | PARMNOTA | CHAR(1) | Filtro configurado por série de nota fiscal |
TP_ITEM | ITEM | CHAR(1) | Tipo do item no cadastro de produtos (P, I, S, A) |
TP_ITEM | ITEMNOTA | CHAR(1) | Tipo do item na nota fiscal |
TP_ITEM | ITEMPEDIDO | CHAR(1) | Tipo do item no pedido |
Opções disponíveis
P — Produtivo (Industrializado)
| O que faz | Detalhe |
|---|---|
| Permite somente itens do tipo P (Produtivo / Industrializado) | Blocqueia I, S e A |
Simulação passo a passo
- Acesse MFA002 e selecione a série desejada.
- No campo Tipo Item, escolha Produtivo (Industrializado).
- Salve o parâmetro.
- Abra uma nota fiscal (MNF001) utilizando esta série.
- Tente inserir um item cadastrado como tipo
P— permitido. - Tente inserir um item cadastrado como tipo
S(Serviço) — bloqueado com mensagem: "O Tipo do Produto [código] não é permitido para a Série [série] Verifique[TPO001],[MFA002]!".
Resultado esperado: Apenas itens Produtivos (industrializados) podem ser adicionados às notas desta série.
I — Improdutivo (Revenda)
| O que faz | Detalhe |
|---|---|
| Permite somente itens do tipo I (Improdutivo / Revenda) | Bloqueia P, S e A |
Simulação passo a passo
- Acesse MFA002 e selecione a série desejada.
- No campo Tipo Item, escolha Improdutivo (Revenda).
- Salve o parâmetro.
- Abra uma nota fiscal (MNF001) utilizando esta série.
- Insira um item cadastrado como tipo
I— permitido. - Insira um item cadastrado como tipo
P(Produtivo) — bloqueado com mensagem de tipo não permitido.
Resultado esperado: Apenas itens Improdutivos (revenda) podem ser adicionados às notas desta série.
S — Serviço
| O que faz | Detalhe |
|---|---|
| Permite somente itens do tipo S (Serviço) | Bloqueia P, I e A |
Simulação passo a passo
- Acesse MFA002 e selecione a série desejada.
- No campo Tipo Item, escolha Serviço.
- Salve o parâmetro.
- Abra uma nota fiscal (MNF001) utilizando esta série.
- Insira um item cadastrado como tipo
S— permitido. - Insira um item cadastrado como tipo
P(Produtivo) — bloqueado com mensagem de tipo não permitido.
Resultado esperado: Apenas itens de Serviço podem ser adicionados às notas desta série. Ideal para séries dedicadas a NFS-e.
A — Aplicação Imediata
| O que faz | Detalhe |
|---|---|
| Permite somente itens do tipo A (Aplicação Imediata) | Bloqueia P, I e S |
Simulação passo a passo
- Acesse MFA002 e selecione a série desejada.
- No campo Tipo Item, escolha Aplicação Imediata.
- Salve o parâmetro.
- Abra uma nota fiscal (MNF001) utilizando esta série.
- Insira um item cadastrado como tipo
A— permitido. - Insira um item de outro tipo — bloqueado com mensagem de tipo não permitido.
Resultado esperado: Apenas itens de Aplicação Imediata podem ser adicionados às notas desta série.
T — Todos (padrão)
| O que faz | Detalhe |
|---|---|
| Permite qualquer tipo de item | Sem filtro — valor padrão do sistema |
Simulação passo a passo
- Acesse MFA002 e selecione a série desejada.
- No campo Tipo Item, escolha Todos (ou deixe o padrão ao criar novo registro).
- Salve o parâmetro.
- Abra uma nota fiscal (MNF001) utilizando esta série.
- Insira itens dos tipos
P,I,SouA— todos permitidos sem restrição.
Resultado esperado: Qualquer tipo de item pode ser adicionado às notas desta série, sem filtragem.
Nota: Este é o valor padrão para novas séries criadas no MFA002 (
AfterInsertatribui'T').
Regra geral de validação
A validação ocorre no Delphi (UdmMNF001.pas, linha ~3849) ao confirmar a inserção de cada item na nota:
- O sistema consulta
PARMNOTA.TP_ITEMpara a série da nota atual. - Se o valor for diferente de
'T'e diferente de vazio, compara comITEM.TP_ITEMdo item que está sendo inserido. - Se o tipo do item não corresponder ao filtro, a operação é abortada com a mensagem: "O Tipo do Produto [CD_ITEM] não é permitido para a Série [CD_SERIE] Verifique[TPO001],[MFA002]!"
Na geração de nota fiscal a partir de pedidos via ordem de carregamento (GERA_NOTAFISCALPEDIDO.sql, linha ~71), o filtro TP_ITEM é aplicado via SQL:
P→ seleciona itens ondeTP_ITEM <> 'S'(produtos, exceto serviços)S→ seleciona itens ondeTP_ITEM = 'S'(apenas serviços)T→ sem filtro (todos)
Tabela comparativa resumida
| Valor | Significado | Itens permitidos na nota | Caso de uso típico |
|---|---|---|---|
P | Produtivo (Industrializado) | Somente tipo P | Séries de NF-e para produtos industrializados |
I | Improdutivo (Revenda) | Somente tipo I | Séries de NF-e para revenda |
S | Serviço | Somente tipo S | Séries dedicadas a NFS-e |
A | Aplicação Imediata | Somente tipo A | Séries para aplicação imediata |
T | Todos (padrão) | P, I, S, A — sem restrição | Uso geral |
Procedures impactadas
Rotinas Delphi com referência direta ao campo
| Rotina | Arquivo | Contexto |
|---|---|---|
TdmMFA002.tabPARMNOTAAfterInsert | source/MFA002/UdmMFA002.pas:94 | Atribui valor padrão 'T' ao criar novo registro |
TdmMNF001 (validação de item na nota) | source/MNF001/UdmMNF001.pas:3849-3866 | Consulta PARMNOTA.TP_ITEM e rejeita itens de tipo incompatível |
Scripts SQL com referência direta ao campo
| Procedure | Arquivo | Contexto |
|---|---|---|
GERA_NOTAFISCALPEDIDO | Scripts/GERA_NOTAFISCALPEDIDO.sql:13,71-73 | Recebe I_TP_ITEM como parâmetro e filtra itens do pedido conforme o tipo |
GRAVA_NOTAFISCALPEDIDO | Scripts/GRAVA_NOTAFISCALPEDIDO.sql:14 | Recebe I_TP_ITEM como parâmetro de entrada |
CALCULA_IMPOSTONOTA | Scripts/CALCULA_IMPOSTONOTA.sql:43 | Declara variável I_TP_ITEM para cálculo de impostos diferenciado |
CALCULA_IMPOSTOPEDIDO | Scripts/CALCULA_IMPOSTOPEDIDO.sql:44 | Declara variável I_TP_ITEM para cálculo de impostos por tipo |
CALCULA_IMPOSTOPEDIDO_V2 | Scripts/CALCULA_IMPOSTOPEDIDO_V2.sql:37 | Declara variável I_TP_ITEM |
CALCULA_IMPOSTOORCAMENTO | Scripts/CALCULA_IMPOSTOORCAMENTO.sql:38 | Declara variável V_TP_ITEM |
GERA_NOTAFISCAL | Scripts/GERA_NOTAFISCAL.sql:159 | Declara variável I_TP_ITEM para controle da geração |
GERA_NFSE | Scripts/GERA_NFSE.sql:17 | Declara variável V_TP_ITEM |
GERA_SPEDPISCOFINS | Scripts/GERA_SPED_PISCOFINS.sql:40 | Declara variável V_TP_ITEM |
ATUALIZA_NOTACTB | Scripts/ATUALIZA_NOTACTB.sql:27 | Declara variável V_TP_ITEM |
GERA_INTEGRACAO | Scripts/GERA_INTEGRACAO.sql:108 | Declara variável V_TP_ITEM |
GERA_INTEGRACAOFISCAL | Scripts/GERA_INTEGRACAOFISCAL.sql:93 | Declara variável V_TP_ITEM |
EXPORTACAO_RADAR | Scripts/EXPORTACAO_RADAR.sql:330 | Filtra I.TP_ITEM <> 'S' |
GERA_DARF | Scripts/GERA_DARF.sql:223 | Filtra IT.TP_ITEM = 'S' |
GRAVA_CREDITOMENSAL / V2 | Scripts/GRAVA_CREDITOMENSAL.sql:123 | Filtra IT.TP_ITEM <> 'S' |
Candidatas por uso da tabela (sem referência direta ao campo)
As seguintes procedures utilizam PARMNOTA mas não referenciam TP_ITEM explicitamente:
GERA_NFE, GERA_ESTOQUE_NOTAFISCAL, GERA_CHAVEACESSONFE, RETORNA_NFSEQUENCIA, RETORNA_IMPMOV, RETORNA_IMPRESSORAUSUARIO, GERA_NOTAPEDIDO, GRAVA_NOTACTE, GRAVA_AVISOS, FECHA_CONTRATOLEITE, FECHA_CONTRATOLEITE_V2, EXPORTACAO_SOVIS_COMPLEMENTO, VIEW_LIVROFISCAL.