TP_OBSNOTA — Blocos de conteúdo que compõem a Observação da Nota Fiscal
Tela de configuração: MFA001 — Parâmetros de Faturamento
Localização: Parâmetros → Notas Fiscais → Obs. Fiscais → GroupBox "Observação da Nota"
Tabela: PARMFATUR.TP_OBSNOTA
Tipo: VARCHAR(60) — cada caractere é uma flag independente (conjunto de letras/símbolos)
Valor padrão: RMDPVEFOSBI (R=Redespacho-Destinatário, M=Nota Mestra, D=NF Origem Devolução, P=Pedidos, V=Cód./Nome Vendedor, E=Endereço Entrega, F=Obs. Fiscal TFI003, O=Dados Produtor, S=Observação da Nota, B=Nº Selo, I=Impostos — UdmMFA001.pas linha 502)
Componente visual: TCheckListBox chkTP_OBSNOTA com 42 itens em 2 colunas (UMFA001.dfm linhas 7596–7657). Cada item marcado vira uma letra/símbolo concatenada no campo TP_OBSNOTA.
Telas impactadas
| Módulo | Código | Papel |
|---|
| Parâmetros de Faturamento | MFA001 | Produtora — cadastra/edita as flags via TCheckListBox |
| NF Saída | MNF002 | Consumidora — lê P.TP_OBSNOTA no SELECT de parâmetros (UdmMNF002.pas linha 771) e chama RETORNA_OBSNOTA ao gerar a observação |
| NF Saída (Saldo/Laudo) | MNF002 (tela secundária) | Consumidora — reprocessa observação se flag W (Laudo Técnico) estiver ativa (UMNF002SaldoLaudo.pas linha 360) |
| NF Entrada | MNF001 | Consumidora indireta via RETORNA_OBSNOTA na emissão/impressão |
| Ordem Carregamento / NF Ordem | MPD011 | Consumidora — lê PF.TP_OBSNOTA nos parâmetros (UdmMPD011.pas linha 1582) e em UdmNFORDEM.pas linha 471 usa flag P para anexar número do pedido à observação |
| MRC020 (Saldo/Laudo Recap) | MRC020 | Consumidora — verifica flag W (Valor Desconto Laudo Técnico) em UMRC020SaldoLaudo.pas linha 334 para oferecer reprocessar observação |
| Acerto Custo Prod. Acabados | CPD009 | Consumidora — persistência de PARMFATUR replica TP_OBSNOTA (UdmCPD009.dfm linhas 332, 396, 498, 603) |
| Recriação Parâmetros | RCA006 | Consumidora — persistência de PARMFATUR replica TP_OBSNOTA (UdmRCA006.dfm linhas 3081, 3145, 3247, 3352) |
| MCO006 | MCO006 | Consumidora — lê P.TP_OBSNOTA nos parâmetros de faturamento (UdmMCO006.pas linha 2115) |
| REC001 (Recap. Carcaça/Serviço) | REC001 | NÃO lê PARMFATUR.TP_OBSNOTA. O chklstTP_OBSNOTA dessa tela grava em PARMRECAPADORA.TPOBSCARCACASERVICO (letras A..E, apenas 5 opções). É parâmetro distinto que apenas homônima o nome do componente (UdmREC001.pas linhas 1605–1641; UframeREC001.dfm linha 1782) |
Procedures impactadas
| Procedure | Arquivo | Papel |
|---|
RETORNA_OBSNOTA | Scripts/RETORNA_OBSNOTA.sql | USO PRINCIPAL. Lê PARMFATUR.TP_OBSNOTA em I_TP_OBSNOTA (linhas 115–121) e usa POSITION(<letra>, I_TP_OBSNOTA) > 0 para decidir se cada bloco (Pedido P, Mestra M, Devolução D, NF Origem Complemento %, Entrega E, Redespacho R/!, Impostos I, PIS/COFINS X, PIS/COFINS-Retido/ST C, Vendedor V, Usuário U, Selo B, Cubagem Q, Obs Coleta/OC G/A, Dados Produtor O, IBPT Z, ICMS-ST Pago Compra K, Carcaça Ç, Laudo Técnico W, Agrupamento 8, CTRC Nº Ordem J, Pedido Palm/Smartphone Y, Motorista T) entra na observação final |
RETORNA_OBSNOTA_V2 | Scripts/RETORNA_OBSNOTA_V2.sql | Complemento. Aceita I_TP_OBSNOTA como parâmetro (linha 13); se NULL, lê de PARMFATUR.TP_OBSNOTA (linhas 49–58). Trata os blocos 0 (Nº Obra), 1 (FECOP), % (NF Origem Complemento), 2 (ICMS-ST), 3 (IE Pessoa), 4 (ISSQN), 5 (ICMS-ST Retido Anterior), 6 (Nº Lançamento), 7 (Insc. Peixe Vida) |
RETORNA_OBSNOTA_ATRIBUICOES | Scripts/RETORNA_OBSNOTA_ATRIBUICOES.sql | Recebe I_TP_OBSNOTA (linha 37) e concatena cada fragmento (I_DS_PEDIDO, I_DS_MESTRA, I_DS_DEVOLUCAO, I_NM_VENDEDORES, etc.) em V_DS_OBSNOTA. Usa POSITION('S', I_TP_OBSNOTA) (linha 97) para decidir se anexa DS_OBSERVACAO digitada no cabeçalho da NF, e POSITION('Ç', I_TP_OBSNOTA) (linha 141) para NF de Carcaça |
RETORNA_VENDEDORESNOTA | Scripts/RETORNA_VENDEDORESNOTA.sql | Lê P.TP_OBSNOTA (linha 16) e usa flags V (Cód. e Nome), H (Tipo + Apelido/Nome), L (somente Código), $ (Tipo + Nome) para montar a lista de vendedores na observação |
RETORNA_IMPOSTOSITEMNOTA | Scripts/RETORNA_IMPOSTOSITEMNOTA.sql | Lê PF.TP_OBSNOTA (linha 68) e usa flag 1 (FECOP) ao consolidar impostos do item |
GERA_NOTAFISCAL | Scripts/GERA_NOTAFISCAL.sql | Lê P.TP_OBSNOTA em V_TP_OBSNOTA (linha 261, 268) e usa flag @ (Desp. Acessórias) na linha 1344 para incluir esse valor no início da observação da NF |
Campos envolvidos
| Campo | Descrição |
|---|
PARMFATUR.TP_OBSNOTA | Este parâmetro. String de até 60 caracteres, cada caractere é uma flag booleana independente |
PARMFATUR.DS_MENSAGEM | Mensagem fixa concatenada SEMPRE no início da observação, independente de TP_OBSNOTA (ver DS_MENSAGEM) |
PARMFATUR.ST_VARIOSVENDEDORES | Interage com flag V em RETORNA_OBSNOTA.sql linha 387 — só lista vendedor quando é N (regra "apenas 1 vendedor por nota") |
NOTA.DS_OBSERVACAO | Campo destino da observação consolidada gravada/impressa |
NOTA.DS_OBSFISCAL | Destino dos blocos fiscais separados (impostos, NCM com ST, PIS/COFINS) |
Opções disponíveis
As 42 flags seguem o mapeamento da procedure Verifica_TipoObsNota em UdmMFA001.pas linhas 608–862 (índice TCheckListBox → letra gravada em TP_OBSNOTA). A ordem de marcação NÃO altera o resultado; cada letra é independente.
R — Redespacho - Destinatário (idx 0)
| O que faz | Detalhe |
|---|
| Origem | RETORNA_OBSNOTA.sql linhas 648–660 — monta REDESPACHO.: <nome> END.: <endereço> FONE.: <fone> CNPJ.: <doc> a partir de NOTA.CD_REDESPACHO |
| Sufixo extra | Acrescenta ". FRETE REDESPACHO POR CONTA DO DESTINATARIO." (linha 659) |
| Conflito | Exclusivo com a flag ! (Redespacho) — ver regra em UdmMFA001.pas linhas 708–718 |
Simulação passo a passo
- Em MFA001 → aba Faturamento → sub-aba Obs. Fiscais marque "Redespacho - Destinatário".
- Salve (F6). O campo
TP_OBSNOTA recebe a letra R.
- Emita uma NF em MNF002 informando um redespachante (
CD_REDESPACHO).
- Ao gerar/imprimir, a procedure
RETORNA_OBSNOTA adiciona ao DS_OBSERVACAO a linha de redespacho com "FRETE REDESPACHO POR CONTA DO DESTINATARIO".
Resultado esperado: a observação final contém os dados do redespachante e a expressão de frete por conta do destinatário.
M — Nota Mestra (idx 1)
| O que faz | Detalhe |
|---|
| Origem | RETORNA_OBSNOTA.sql linhas 218–262 — quando a NF é agrupamento de mestras, lista números das notas mestras vinculadas |
Simulação passo a passo
- Em MFA001 marque "Nota Mestra" e salve (F6).
- Faça uma NF em MNF002 que consolide notas-mestras (
MESTRA.ST_MESTRA = 'S').
- A procedure inclui frase do tipo
"Esta NF consolida as notas mestras Nr.: ..." na observação.
Resultado esperado: observação lista as notas mestras vinculadas.
D — Nota Fiscal de Origem (Devolução) (idx 2)
| O que faz | Detalhe |
|---|
| Origem | RETORNA_OBSNOTA.sql linhas 265–324 — em NF de devolução (TP_NOTA='E' com origem), lista a NF original e totais |
Simulação passo a passo
- Marque "Nota Fiscal de Origem (Devolução)" em MFA001 e salve.
- Emita uma NF de devolução vinculada a uma NF de saída original.
- A observação sai com
"DEV. REF. NF ..." contendo número, série, data e totais da NF de origem.
Resultado esperado: a NF de devolução referencia explicitamente a NF original.
P — Pedidos (idx 3)
| O que faz | Detalhe |
|---|
| Origem | RETORNA_OBSNOTA.sql linhas 177–216 — lista os números de pedido que originaram a NF |
| Uso em MPD011 | UdmNFORDEM.pas linhas 467–475 — quando gera NF a partir de ordem de carregamento, concatena dsNrPedido no DS_OBSNOTA se flag P estiver ativa |
Simulação passo a passo
- MFA001 → marque "Pedidos" → salve.
- Em MPD011 gere NF de uma ordem de carregamento com pedidos vinculados.
- A observação inclui
"Ped.: ..." com os números de pedido.
Resultado esperado: a NF exibe os pedidos de origem na observação.
V — Código e Nome do Vendedor (idx 4)
| O que faz | Detalhe |
|---|
| Origem | RETORNA_OBSNOTA.sql linhas 387–398 — só lista vendedor se PARMFATUR.ST_VARIOSVENDEDORES = 'N'; formato CD_PESSOA` - `APELIDO`/`NM_PESSOA |
| Variante Multi-vendedor | Quando ST_VARIOSVENDEDORES='S', a listagem de vendedores é feita por RETORNA_VENDEDORESNOTA com flags V, H, L ou $ |
Simulação passo a passo
- MFA001 → marque "Código e Nome do Vendedor" → salve.
- Emita uma NF com vendedor informado.
- A observação sai com
"Vendedor(es).: <código> - <nome>".
Resultado esperado: o vendedor aparece identificado por código e nome.
U — Usuário (idx 5)
| O que faz | Detalhe |
|---|
| Origem | RETORNA_OBSNOTA.sql linhas 400–408 — anexa "Usuário: <NM_USUARIO>" do usuário emissor (NOTA.CD_USUARIO) |
Simulação passo a passo
- MFA001 → marque "Usuário" → salve.
- Emita uma NF logado como usuário "João".
- A observação incluirá
"Usuário: João".
Resultado esperado: rastreabilidade do usuário emissor na observação da NF.
E — Endereço de Entrega (idx 6)
| O que faz | Detalhe |
|---|
| Origem | RETORNA_OBSNOTA.sql linhas 633–645 — monta "ENTREGA: <endereço>, <nº> <compl> <bairro> <município> - <UF>" a partir do RETORNA_DADOSCADASTRAIS da pessoa de entrega |
Simulação passo a passo
- MFA001 → marque "Endereço de Entrega" → salve.
- Emita uma NF com cliente que tenha endereço de entrega distinto do endereço cadastral.
- A observação inclui
"ENTREGA: ..." com o endereço completo.
Resultado esperado: o endereço de entrega aparece explícito para conferência na impressão.
F — Observação Fiscal da Nota (TFI003) (idx 7)
| O que faz | Detalhe |
|---|
| Origem | RETORNA_OBSNOTA.sql linhas 327–385 — busca as observações fiscais cadastradas em TFI003 vinculadas ao CFOP/operação e separa por item |
| Destino | Concatena em O_DS_OBSFISCAL (campo NOTA.DS_OBSFISCAL) e em DS_OBSNF |
Simulação passo a passo
- Cadastre observações fiscais em TFI003 associadas ao CFOP usado.
- MFA001 → marque "Observação Fiscal da Nota (TFI003)" → salve.
- Emita uma NF com aquele CFOP.
- O bloco
DS_OBSFISCAL sai preenchido com os textos vinculados aos itens.
Resultado esperado: observação fiscal separa-se das "dados adicionais" do cliente.
S — Observação da Nota (idx 8)
| O que faz | Detalhe |
|---|
| Origem | RETORNA_OBSNOTA_ATRIBUICOES.sql linha 97 — if (POSITION('S', I_TP_OBSNOTA) > 0) then ... concatena o campo NOTA.DS_OBSERVACAO digitado manualmente no cabeçalho |
Simulação passo a passo
- MFA001 → marque "Observação da Nota" → salve.
- Em MNF002 digite algo em Observações no cabeçalho da NF.
- Ao imprimir, o texto digitado aparece na observação final.
Resultado esperado: sem a flag S, o que o usuário digitou manualmente em DS_OBSERVACAO não é impresso — a flag é o que libera esse conteúdo.
B — Número do Selo (idx 9)
| O que faz | Detalhe |
|---|
| Origem | RETORNA_OBSNOTA.sql linhas 411–426 — para Selo Interestadual concatena NR_SELO/NR_DIGITOVERIFICADOR, NR_LOTESELO e DT_VALIDADE |
Simulação passo a passo
- MFA001 → marque "Número do Selo" → salve.
- Emita NF com item controlado por selo (
ITEMCARCACA com NR_SELO preenchido).
- A observação sai com o Nº do Selo, lote e validade.
Resultado esperado: rastreabilidade de selo fiscal aparece no DANFE.
I — Impostos (idx 10)
| O que faz | Detalhe |
|---|
| Origem | RETORNA_OBSNOTA.sql linhas 429–568 — consolida ICMS Diferido, II (Imposto Importação), IPI e compõe DS_IMPOSTO |
| Regra complementar | RETORNA_OBSNOTA.sql linhas 698–769 — para empresa Simples com Subst. Trib. calcula crédito presumido |
Simulação passo a passo
- MFA001 → marque "Impostos" → salve.
- Emita NF com ICMS diferido / II / IPI.
- Os valores saem listados na observação (
DS_IMPOSTO).
Resultado esperado: impostos aparecem detalhados ao final da NF.
C — PIS/COFINS - Retido/ST (idx 11)
| O que faz | Detalhe |
|---|
| Origem | RETORNA_OBSNOTA.sql linhas 599–631 — soma PIS-ST e COFINS-ST e concatena "Valor PIS ST.:R$ X. Valor COFINS ST.:R$ Y" |
Simulação passo a passo
- MFA001 → marque "PIS/COFINS - Retido/ST" → salve.
- Emita NF com CFOP que gere PIS/COFINS retidos.
- A observação inclui os valores retidos separados por imposto.
Resultado esperado: transparência do valor de PIS-ST e COFINS-ST para a contabilidade do destinatário.
X — PIS/COFINS (idx 12)
| O que faz | Detalhe |
|---|
| Origem | RETORNA_OBSNOTA.sql linhas 569–597 — concatena "Valor PIS.:R$ X. Valor COFINS.:R$ Y" (não retido) |
Simulação passo a passo
- MFA001 → marque "PIS/COFINS" → salve.
- Emita NF de venda com PIS/COFINS de saída.
- A observação inclui os valores de PIS/COFINS padrão.
Resultado esperado: valores totais de PIS/COFINS impressos na observação.
T — Motorista (idx 13)
| O que faz | Detalhe |
|---|
| Origem | RETORNA_OBSNOTA.sql linhas 771–783 — busca PESSOA.NM_PESSOA do NOTA.CD_MOTORISTA e concatena "Motorista.: <nome>" em RETORNA_OBSNOTA_ATRIBUICOES.sql linha 81 |
Simulação passo a passo
- MFA001 → marque "Motorista" → salve.
- Emita NF com motorista informado (
CD_MOTORISTA).
- A observação inclui o nome do motorista.
Resultado esperado: rastreabilidade do motorista na NF.
| O que faz | Detalhe |
|---|
| Origem | Letra N no TP_OBSNOTA; a geração efetiva depende da regra de observação fiscal dos NCMs com substituição tributária no processamento fiscal do módulo jFaturamento (comportamento herdado de RETORNA_OBSNOTA / observações fiscais por NCM) |
Simulação passo a passo
- MFA001 → marque "NCM com ST" → salve.
- Emita NF com itens cujo NCM está configurado com ST.
- A observação fiscal exibe os NCMs com ST envolvidos.
Resultado esperado: NCMs com Substituição Tributária listados para conferência.
Q — Cubagem (MEQ029) (idx 15)
| O que faz | Detalhe |
|---|
| Origem | RETORNA_OBSNOTA.sql linhas 784–833 — calcula QT_CUBAGEM total dos itens (CUBAGEM.QT_CUBAGEM) e concatena "Cubagem Total da NF-e <X>M³" em RETORNA_OBSNOTA_ATRIBUICOES.sql linha 86 |
Simulação passo a passo
- Cadastre cubagem dos itens em MEQ029.
- MFA001 → marque "Cubagem (MEQ029)" → salve.
- Emita NF com os itens cubados.
- A observação inclui
"Cubagem Total da NF-e XX M³".
Resultado esperado: volume total em m³ na observação para transporte.
A — Obs Coleta (MRC001) (idx 16)
| O que faz | Detalhe |
|---|
| Origem | RETORNA_OBSNOTA.sql linhas 923–1013 — monta observações dos pedidos/serviços de recap vinculados (MRC001). Só ativa quando V_TP_OBS <> 'FF' (não roda no SPED) |
Simulação passo a passo
- MFA001 → marque "Obs Coleta (MRC001)" → salve.
- Emita NF de saída de itens reformados com pedidos de coleta vinculados.
- A observação inclui
"Obs Coletas: <texto>".
Resultado esperado: observações dos pedidos de recapagem aparecem na NF.
G — Coleta/Ordem Carreg. Recap. (idx 17)
| O que faz | Detalhe |
|---|
| Origem | RETORNA_OBSNOTA.sql linhas 835–920 — lista números de coletas / ordens de carregamento de recap vinculadas à NF |
Simulação passo a passo
- MFA001 → marque "Coleta/Ordem Carreg. Recap." → salve.
- Emita NF associada a coletas/ordens de carregamento de recap.
- Observação inclui
"Coletas/Ordens Carreg.: <nrs>".
Resultado esperado: rastreabilidade de coletas/ordens na NF de recap.
O — Dados do Produtor (idx 18)
| O que faz | Detalhe |
|---|
| Origem | RETORNA_OBSNOTA.sql linhas 1016–1025 — somente em NF de ENTRADA (V_TP_NOTA='E') busca dados do produtor rural emitente |
Simulação passo a passo
- MFA001 → marque "Dados do Produtor" → salve.
- Emita NF de entrada de produtor rural.
- A observação da NF-e inclui os dados cadastrais do produtor.
Resultado esperado: NF-e de compra de produtor rural cumpre a exigência de evidenciar os dados do produtor.
H — Tipo e Apelido/Nome do Vendedor (idx 19)
| O que faz | Detalhe |
|---|
| Origem | RETORNA_VENDEDORESNOTA.sql linhas 45–65 — para cada vendedor anexa <TP_VENDEDOR>: APELIDO/NM_PESSOA`` |
| Escopo | Só lista quando ST_VARIOSVENDEDORES='S' (vários vendedores por nota) |
Simulação passo a passo
- MFA001 → marque "Tipo e Apelido/Nome do Vendedor" →
ST_VARIOSVENDEDORES='S' → salve.
- Emita NF com vários vendedores rateando.
- Observação lista cada vendedor no formato
"<Tipo>: <Apelido>".
Resultado esperado: identificação hierárquica dos vendedores por tipo.
L — Código do Vendedor (idx 20)
| O que faz | Detalhe |
|---|
| Origem | RETORNA_VENDEDORESNOTA.sql linhas 67–87 — lista apenas CD_PESSOA dos vendedores, sem nome |
Simulação passo a passo
- MFA001 → marque "Código do Vendedor" → salve.
- Emita NF com vendedor.
- Observação traz somente o(s) código(s) de vendedor.
Resultado esperado: listagem enxuta (apenas código) para relatórios fiscais que não precisam do nome.
Y — Nr. Coleta (Smartphone) (idx 21)
| O que faz | Detalhe |
|---|
| Origem | RETORNA_OBSNOTA.sql linhas 150–175 — quando há pedidos originados no app mobile (Palm/Smartphone), lista os números dos pedidos em I_DS_PEDIDOPALM |
Simulação passo a passo
- MFA001 → marque "Nr. Coleta (Smartphone)" → salve.
- Emita NF de pedidos captados pelo aplicativo mobile.
- Observação lista os números de coleta/pedido do mobile.
Resultado esperado: rastreabilidade de vendas originadas no app nas NFs emitidas.
J — Nr. da Ordem do Conhecimento de Transporte (idx 22)
| O que faz | Detalhe |
|---|
| Origem | RETORNA_OBSNOTA.sql linhas 134–147 — busca NR_ORDEM da CTRC vinculada ao CT-e e concatena |
Simulação passo a passo
- MFA001 → marque "Nr. da Ordem do Conhecimento de Transporte" → salve.
- Emita CT-e que referencie uma ordem de serviço de transporte.
- Observação inclui o
NR_ORDEM da CTRC.
Resultado esperado: CT-e evidencia a ordem de coleta/transporte associada.
Z — Resumo IBPT (idx 23)
| O que faz | Detalhe |
|---|
| Origem | RETORNA_OBSNOTA.sql linhas 1026–1032 — chama RETORNA_IMPOSTOSITEMNOTA e devolve O_DS_IMPOSTOS (resumo IBPT do total de tributos do consumidor) |
Simulação passo a passo
- MFA001 → marque "Resumo IBPT" → salve.
- Emita NFC-e/NF-e de consumidor final.
- Observação inclui
"Valor Aprox. Tributos: R$ ..." (resumo IBPT exigido pela Lei da Transparência).
Resultado esperado: cumprimento da Lei 12.741/2012 (transparência de tributos) direto na observação.
K — ICMS ST Pago na Compra (idx 24)
| O que faz | Detalhe |
|---|
| Origem | RETORNA_OBSNOTA.sql linhas 1076–1174 — calcula base e valor médio de ICMS-ST pago na compra dos itens (média ponderada da última nota) e escreve "BC ICMS ST: R$ X ICMS ST: R$ Y" |
Simulação passo a passo
- MFA001 → marque "ICMS ST Pago na Compra" → salve.
- Emita NF de saída de itens que tiveram ICMS-ST recolhido na entrada.
- Observação traz o valor de ICMS-ST recuperável.
Resultado esperado: transparência do ICMS-ST já recolhido nas entradas (comum em revenda).
Ç — Nota fiscal de Entrada de Carcaça (idx 25)
| O que faz | Detalhe |
|---|
| Origem | RETORNA_OBSNOTA.sql linhas 1176–1181 — em NF de saída chama RETORNA_OBSNOTACARCACA para listar as NFs de entrada de carcaça que geraram o item |
| Concatenação | RETORNA_OBSNOTA_ATRIBUICOES.sql linha 141 aplica o texto em V_DS_OBSNOTA |
Simulação passo a passo
- MFA001 → marque "Nota fiscal de Entrada de Carcaça" → salve.
- Emita NF de saída de produto reformado vinculado a carcaças de entrada.
- Observação lista NFs de entrada de carcaça.
Resultado esperado: rastreabilidade fiscal obrigatória em operações de recapagem (carcaça cliente).
W — Valor Desconto Laudo Técnico (idx 26)
| O que faz | Detalhe |
|---|
| Origem | RETORNA_OBSNOTA.sql linhas 1033–1073 — lista laudos técnicos (desvalorização) associados aos itens |
| Reprocessamento | UMNF002SaldoLaudo.pas linha 360 e UMRC020SaldoLaudo.pas linha 334 — quando flag W está ativa, o sistema pergunta "Deseja reprocessar a observação da nota?" após alterações de laudo |
Simulação passo a passo
- MFA001 → marque "Valor Desconto Laudo Técnico" → salve.
- Em MNF002 ou MRC020 altere o laudo/saldo de um item.
- Sistema pergunta se deseja reprocessar a observação. Confirme.
- Observação passa a exibir o desconto aplicado via laudo.
Resultado esperado: laudos técnicos (perdas/desvalorização) evidenciados na NF, com recálculo automático quando alterados.
0 — Nº Obra (idx 27)
| O que faz | Detalhe |
|---|
| Origem | RETORNA_OBSNOTA_V2.sql linhas 61–87 — lista ROMANEIO.NR_ROMANEIO vinculados à nota (obras/romaneios) |
Simulação passo a passo
- MFA001 → marque "Nº Obra" → salve.
- Emita NF vinculada a romaneios/obras.
- Observação inclui lista de romaneios.
Resultado esperado: NF referencia as obras (romaneios) associadas, útil em construção civil.
1 — FECOP (idx 28)
| O que faz | Detalhe |
|---|
| Origem | RETORNA_OBSNOTA_V2.sql linhas 90–97 — busca O_DS_FECOP retornado por RETORNA_IMPOSTOSITEMNOTA |
| Complemento | RETORNA_IMPOSTOSITEMNOTA.sql linha 68 — só calcula FECOP por item quando flag 1 está ativa |
Simulação passo a passo
- MFA001 → marque "FECOP" → salve.
- Emita NF para UF que recolhe FECOP (ex.: CE, PE, RJ, PB).
- Observação inclui
"FECOP: R$ ...".
Resultado esperado: Fundo de Combate à Pobreza evidenciado separadamente do ICMS.
2 — ICMS Não Tributado (idx 29)
| O que faz | Detalhe |
|---|
| Origem | RETORNA_OBSNOTA_V2.sql linhas 115–172 — lista itens com ICMS não tributado, exibindo base, fato gerador e eventual observação fiscal (POSITION('F',...) interage) |
Simulação passo a passo
- MFA001 → marque "ICMS Não Tributado" → salve.
- Emita NF com CST/CSOSN não-tributado (ex.: 40, 41, 50).
- Observação discrimina itens e valores não tributados.
Resultado esperado: conformidade com obrigação fiscal de evidenciar isenções/não-incidências.
3 — Inscrição Estadual Pessoa (idx 30)
| O que faz | Detalhe |
|---|
| Origem | RETORNA_OBSNOTA_V2.sql linhas 175–192 — anexa NR_INSCEST e NR_INSCPRODUTOR da pessoa destinatária |
Simulação passo a passo
- MFA001 → marque "Inscrição Estadual Pessoa" → salve.
- Emita NF para pessoa com IE e/ou Insc. Produtor preenchidas.
- Observação lista IE e/ou Insc. Produtor.
Resultado esperado: evidenciar IE/Produtor quando relevantes (ex.: operações com produtor rural).
4 — ISSQN (idx 31)
| O que faz | Detalhe |
|---|
| Origem | RETORNA_OBSNOTA_V2.sql linhas 194–229 — lista base e valor de ISSQN por item de serviço |
Simulação passo a passo
- MFA001 → marque "ISSQN" → salve.
- Emita NF de serviço ou NF mista com tributação ISSQN.
- Observação inclui bases e valores de ISS por item.
Resultado esperado: detalhamento de ISSQN na NF (útil em NFs mistas — mercadoria + serviço).
5 — ICMS-ST Retido Anterior (idx 32)
| O que faz | Detalhe |
|---|
| Origem | RETORNA_OBSNOTA_V2.sql linhas 232–255 — soma VL_BASESTANT e VL_STANT dos itens (ICMS-ST já retido em etapa anterior) |
Simulação passo a passo
- MFA001 → marque "ICMS-ST Retido Anterior" → salve.
- Emita NF de revenda com itens que tiveram ICMS-ST retido na compra.
- Observação inclui totais de BC ST Ant. e ST Ant.
Resultado esperado: correto tratamento contábil-fiscal do ICMS-ST já retido anteriormente.
6 — Nº Lançamento (idx 33)
| O que faz | Detalhe |
|---|
| Origem | RETORNA_OBSNOTA_V2.sql linhas 259–260 — acrescenta "CI.: <NR_LANCAMENTO>" (número interno do lançamento no Junsoft) |
Simulação passo a passo
- MFA001 → marque "Nº Lançamento" → salve.
- Emita qualquer NF.
- Observação inclui
"CI.: <nr>".
Resultado esperado: facilita conferência entre NF e lançamento interno do sistema.
7 — Insc. Peixe Vida (idx 34)
| O que faz | Detalhe |
|---|
| Origem | RETORNA_OBSNOTA_V2.sql linhas 262+ — lista valor de crédito Peixe Vida (programa estadual específico) |
Simulação passo a passo
- MFA001 → marque "Insc. Peixe Vida" → salve.
- Emita NF em UF/empresa participante do programa Peixe Vida.
- Observação inclui o crédito aplicável.
Resultado esperado: evidência do crédito presumido Peixe Vida para destinatários aptos.
8 — Agrupamento de Notas (idx 35)
| O que faz | Detalhe |
|---|
| Origem | RETORNA_OBSNOTA.sql linhas 1183–1196 — em refaturamento (MNF024), lista as NFs agrupadas; RETORNA_OBSNOTA_ATRIBUICOES.sql linhas 143–144 concatena "Refaturamento Docto.: <lista>" |
Simulação passo a passo
- MFA001 → marque "Agrupamento de Notas" → salve.
- Em MNF024 refature várias NFs em uma só.
- Observação da NF consolidada lista as NFs originais agrupadas.
Resultado esperado: rastreabilidade completa do refaturamento dentro da própria NF.
9 — Composição Ordem Prod. Pedido (idx 36)
| O que faz | Detalhe |
|---|
| Origem | Letra 9 é gravada; a consulta da composição da ordem de produção vinculada ao pedido é tratada nas extensões da observação (módulo recap/jFaturamento), usada quando se fatura pedido com ordem de produção |
Simulação passo a passo
- MFA001 → marque "Composição Ordem Prod. Pedido" → salve.
- Fature pedido com ordem de produção associada.
- Observação inclui composição da ordem.
Resultado esperado: produção associada ao pedido evidenciada na NF.
! — Redespacho (idx 37)
| O que faz | Detalhe |
|---|
| Origem | RETORNA_OBSNOTA.sql linhas 648–660 — mesma rotina do R, mas SEM o sufixo "FRETE REDESPACHO POR CONTA DO DESTINATARIO" |
| Conflito | Exclusivo com R — ao marcar um, o outro é desmarcado automaticamente (UdmMFA001.pas linhas 708–718) |
Simulação passo a passo
- MFA001 → desmarque "Redespacho - Destinatário" e marque "Redespacho" → salve.
- Emita NF com redespachante.
- Observação traz
"REDESPACHO.: ..." sem a frase de "frete por conta do destinatário".
Resultado esperado: informação do redespachante sem atribuir o frete ao destinatário (quando o frete é do emitente).
@ — Desp. Acessórias (idx 38)
| O que faz | Detalhe |
|---|
| Origem | GERA_NOTAFISCAL.sql linha 1344 — IF ((VL_TOTDESP + VL_TOTSUBST > 0) AND POSITION('@', V_TP_OBSNOTA) > 0) concatena "Desp. Acessórias: R$ <valor>" no INÍCIO da observação |
Simulação passo a passo
- MFA001 → marque "Desp. Acessórias" → salve.
- Emita NF com despesas acessórias (frete, seguro, outros) > 0.
- Observação começa com
"Desp. Acessórias: R$ XX,XX".
Resultado esperado: valor de despesas acessórias fica destacado no topo da observação.
# — Cupom Desconto (idx 39)
| O que faz | Detalhe |
|---|
| Origem | Letra # gravada em TP_OBSNOTA; a aplicação consome em rotinas de desconto/promoção para evidenciar o cupom de desconto concedido na NF |
Simulação passo a passo
- MFA001 → marque "Cupom Desconto" → salve.
- Emita NF com cupom promocional aplicado.
- Observação exibe dados do cupom utilizado.
Resultado esperado: transparência no desconto aplicado via cupom.
$ — Tipo e Nome do Vendedor (idx 40)
| O que faz | Detalhe |
|---|
| Origem | RETORNA_VENDEDORESNOTA.sql linhas 89+ — para cada vendedor anexa <TP_VENDEDOR>: <NM_PESSOA> (diferente de H que usa apelido) |
Simulação passo a passo
- MFA001 → marque "Tipo e Nome do Vendedor" → salve.
- Emita NF com vários vendedores.
- Observação lista cada vendedor como
"<Tipo>: <Nome Completo>".
Resultado esperado: identificação formal (nome completo) do vendedor, útil para contratos.
% — Nota Fiscal de Origem (Complemento) (idx 41)
| O que faz | Detalhe |
|---|
| Origem | RETORNA_OBSNOTA_V2.sql linhas 98–113 — busca CD_EMPRORIG, NR_LANCTOORIG, CD_SERIEORIG e lista a NF original da NF complementar |
Simulação passo a passo
- MFA001 → marque "Nota Fiscal de Origem (Complemento)" → salve.
- Emita NF complementar vinculada a uma NF original.
- Observação lista a NF original referenciada.
Resultado esperado: em NF complementar (preço, imposto, quantidade) evidencia a NF-mãe.
DS_MENSAGEM (DS_MENSAGEM) — Mensagem fixa é sempre incluída no início da observação (em RETORNA_OBSNOTA_ATRIBUICOES.sql linhas 56–57), independente de TP_OBSNOTA. TP_OBSNOTA controla o que vem depois da mensagem.
ST_VARIOSVENDEDORES — Afeta o comportamento da flag V: quando N, mostra apenas 1 vendedor da nota; quando S, delega para RETORNA_VENDEDORESNOTA com múltiplos vendedores (usando flags V, H, L, $).
R × ! — Mutuamente exclusivas. Código em UdmMFA001.pas linhas 708–718 garante que marcar uma desmarca a outra automaticamente.
TP_OBSORDEMCARREG (campo irmão, mesma tela, TCheckListBox chkTP_OBSORDEMCARREG, 3 opções A/B/C) — controla Observação da Ordem de Carregamento (Nº Ordem, Nº Lote, Nº Placa). Lógica idêntica em Verifica_TipoObsOrdemCarreg (UdmMFA001.pas linhas 865–914).
- Chamada no SPED (
V_TP_OBS = 'FF') — As flags A (Obs Coleta) e G (Coleta/Ordem Carreg. Recap.) são suprimidas quando a procedure é chamada pelo SPED (RETORNA_OBSNOTA.sql linhas 835, 923) para evitar poluir arquivos fiscais.
Tabela Comparativa Resumida
| Letra | Idx | Descrição | Procedure principal | Destino |
|---|
R | 0 | Redespacho - Destinatário | RETORNA_OBSNOTA 648–660 | DS_OBSNOTA |
M | 1 | Nota Mestra | RETORNA_OBSNOTA 218–262 | DS_OBSNOTA |
D | 2 | NF de Origem (Devolução) | RETORNA_OBSNOTA 265–324 | DS_OBSNOTA |
P | 3 | Pedidos | RETORNA_OBSNOTA 177–216 | DS_OBSNOTA |
V | 4 | Cód. e Nome Vendedor | RETORNA_OBSNOTA 387–398 | DS_OBSNOTA |
U | 5 | Usuário | RETORNA_OBSNOTA 400–408 | DS_OBSNOTA |
E | 6 | Endereço de Entrega | RETORNA_OBSNOTA 633–645 | DS_OBSNOTA |
F | 7 | Obs. Fiscal (TFI003) | RETORNA_OBSNOTA 327–385 | DS_OBSFISCAL |
S | 8 | Observação da Nota | RETORNA_OBSNOTA_ATRIBUICOES 97 | DS_OBSNOTA |
B | 9 | Número do Selo | RETORNA_OBSNOTA 411–426 | DS_OBSNOTA |
I | 10 | Impostos (ICMS Dif., II, IPI) | RETORNA_OBSNOTA 429–568 | DS_OBSFISCAL |
C | 11 | PIS/COFINS - Retido/ST | RETORNA_OBSNOTA 599–631 | DS_OBSFISCAL |
X | 12 | PIS/COFINS | RETORNA_OBSNOTA 569–597 | DS_OBSFISCAL |
T | 13 | Motorista | RETORNA_OBSNOTA 771–783 | DS_OBSNOTA |
N | 14 | NCM com ST | jFaturamento | DS_OBSFISCAL |
Q | 15 | Cubagem (MEQ029) | RETORNA_OBSNOTA 784–833 | DS_OBSNOTA |
A | 16 | Obs Coleta (MRC001) | RETORNA_OBSNOTA 923–1013 | DS_OBSNOTA |
G | 17 | Coleta/Ordem Carreg. Recap. | RETORNA_OBSNOTA 835–920 | DS_OBSNOTA |
O | 18 | Dados do Produtor | RETORNA_OBSNOTA 1016–1025 | DS_OBSNOTA |
H | 19 | Tipo e Apelido/Nome Vend. | RETORNA_VENDEDORESNOTA 45–65 | DS_OBSNOTA |
L | 20 | Código do Vendedor | RETORNA_VENDEDORESNOTA 67–87 | DS_OBSNOTA |
Y | 21 | Nr. Coleta (Smartphone) | RETORNA_OBSNOTA 150–175 | DS_OBSNOTA |
J | 22 | Nº Ordem CT-e | RETORNA_OBSNOTA 134–147 | DS_OBSNOTA |
Z | 23 | Resumo IBPT | RETORNA_OBSNOTA 1026–1032 | DS_OBSNOTA |
K | 24 | ICMS ST Pago na Compra | RETORNA_OBSNOTA 1076–1174 | DS_OBSNOTA |
Ç | 25 | NF Entrada de Carcaça | RETORNA_OBSNOTA 1176–1181 | DS_OBSNOTA |
W | 26 | Valor Desconto Laudo Técnico | RETORNA_OBSNOTA 1033–1073 | DS_OBSNOTA |
0 | 27 | Nº Obra | RETORNA_OBSNOTA_V2 61–87 | DS_OBSNOTA |
1 | 28 | FECOP | RETORNA_OBSNOTA_V2 90–97 | DS_OBSNOTA |
2 | 29 | ICMS Não Tributado | RETORNA_OBSNOTA_V2 115–172 | DS_OBSNOTA |
3 | 30 | Inscrição Estadual Pessoa | RETORNA_OBSNOTA_V2 175–192 | DS_OBSNOTA |
4 | 31 | ISSQN | RETORNA_OBSNOTA_V2 194–229 | DS_OBSNOTA |
5 | 32 | ICMS-ST Retido Anterior | RETORNA_OBSNOTA_V2 232–255 | DS_OBSNOTA |
6 | 33 | Nº Lançamento | RETORNA_OBSNOTA_V2 259–260 | DS_OBSNOTA |
7 | 34 | Insc. Peixe Vida | RETORNA_OBSNOTA_V2 262+ | DS_OBSNOTA |
8 | 35 | Agrupamento de Notas | RETORNA_OBSNOTA 1183–1196 | DS_OBSNOTA |
9 | 36 | Composição Ordem Prod. Pedido | jFaturamento | DS_OBSNOTA |
! | 37 | Redespacho (sem frete destinat.) | RETORNA_OBSNOTA 648–660 | DS_OBSNOTA |
@ | 38 | Desp. Acessórias | GERA_NOTAFISCAL 1344 | DS_OBSNOTA |
# | 39 | Cupom Desconto | jFaturamento | DS_OBSNOTA |
$ | 40 | Tipo e Nome do Vendedor | RETORNA_VENDEDORESNOTA 89+ | DS_OBSNOTA |
% | 41 | NF de Origem (Complemento) | RETORNA_OBSNOTA_V2 98–113 | DS_OBSNOTA |
Referências no Código Fonte
Delphi — Tela MFA001 (produtora)
| Arquivo | Linhas | Papel |
|---|
source/MFA001/UMFA001.dfm | 7596–7657 | Declaração do TCheckListBox chkTP_OBSNOTA com os 42 itens textuais e OnClickCheck = chkTP_OBSNOTAClickCheck |
source/MFA001/UMFA001.pas | 408 | Declaração chkTP_OBSNOTA: TCheckListBox |
source/MFA001/UMFA001.pas | 757, 1773–1776 | procedure chkTP_OBSNOTAClickCheck → chama Verifica_TipoObsNota('A') |
source/MFA001/UMFA001.pas | 1148 | Em erro de validação, foca pagFiscal e chkTP_OBSNOTA.SetFocus |
source/MFA001/UdmMFA001.pas | 294 | Declaração tabPARMFATURTP_OBSNOTA: TStringField |
source/MFA001/UdmMFA001.pas | 421, 608 | Assinatura e corpo de Verifica_TipoObsNota(Tipo: String) — converte TCheckListBox ↔ string de 42 flags |
source/MFA001/UdmMFA001.pas | 502 | AfterInsert: valor padrão 'RMDPVEFOSBI' |
source/MFA001/UdmMFA001.pas | 503, 1453 | Chamadas Verifica_TipoObsNota('C') no AfterInsert e na navegação de registros |
source/MFA001/UdmMFA001.pas | 618–700 | Bloco Tipo='A' (Alterando) — para cada chkTP_OBSNOTA.Checked[i] concatena uma letra |
source/MFA001/UdmMFA001.pas | 708–718 | Regra de exclusão mútua R ↔ ! (chamado 383429 — Pedro 02/08/2022) |
source/MFA001/UdmMFA001.pas | 722 | Gravação: tabPARMFATURTP_OBSNOTA.AsString := Trim(Status) |
source/MFA001/UdmMFA001.pas | 727–862 | Bloco Tipo='C' (Consultando) — lê cada letra e marca o Checked[i] correspondente |
source/MFA001/UdmMFA001.dfm | 145, 1665–1669, 2540, 2754, 3025 | TP_OBSNOTA nos SQLs do tabPARMFATUR (SelectSQL, InsertSQL, ModifySQL) e no TStringField tabPARMFATURTP_OBSNOTA (Size = 60) |
Delphi — Consumidores (leem PARMFATUR.TP_OBSNOTA)
| Arquivo | Linhas | Papel |
|---|
source/MNF002/UdmMNF002.pas | 771 | SELECT P.TP_OBSNOTA FROM PARMFATUR P — usa na emissão de NF de saída |
source/MNF002/UMNF002SaldoLaudo.pas | 360 | if (Pos('W', ParmFatur.Values['TP_OBSNOTA']) > 0) then MsgCodigo(..."Deseja reprocessar a observação da nota?"...) |
source/MCO006/UdmMCO006.pas | 2115 | SELECT P.TP_OBSNOTA FROM PARMFATUR P |
source/MPD011/UdmMPD011.pas | 1582 | SELECT PF.TP_OBSNOTA FROM PARMFATUR PF (ordem carregamento) |
source/MPD011/UdmNFORDEM.pas | 471 | if (Pos('P', ParmFatur.Values['TP_OBSNOTA']) > 0) then tabNOTADS_OBSNOTA.AsString := ... + dsNrPedido |
source/MRC020/UMRC020SaldoLaudo.pas | 334 | if (Pos('W', ParmFatur.Values['TP_OBSNOTA']) > 0) then ... "Deseja reprocessar a observação da nota?" |
source/MNF008/UdmMNF008.pas | 10506 | SELECT ... P.TP_OBSNOTA FROM PARMFATUR P |
source/RCA006/UdmRCA006.dfm | 3081, 3145, 3247, 3352 | Persistência (InsertSQL, ModifySQL, SelectSQL) do PARMFATUR.TP_OBSNOTA |
source/CPD009/UdmCPD009.dfm | 332, 396, 498, 603 | Persistência do PARMFATUR.TP_OBSNOTA |
source/JunsoftServiceFatApp/PersistenciaDao.pas | 1640 | Referência em comentário — bloco Pos('A', TP_OBSNOTA) para observação de coleta |
SQL — Procedures (Firebird)
| Arquivo | Linhas-chave | Papel |
|---|
Scripts/RETORNA_OBSNOTA.sql | 53, 115–121, 134, 150, 177, 218, 265, 327, 387, 400, 411, 429, 569, 599, 633, 648, 658, 698, 771, 784, 835, 923, 1016, 1026, 1033, 1076, 1176, 1183, 1201 | Procedure principal — lê P.TP_OBSNOTA em I_TP_OBSNOTA e usa POSITION(<letra>, I_TP_OBSNOTA) para cada bloco |
Scripts/RETORNA_OBSNOTA_V2.sql | 13, 19, 49–58, 61, 90, 98, 115, 164, 175, 194, 232, 259, 262 | Trata flags numéricas (0–7) e % (complemento) |
Scripts/RETORNA_OBSNOTA_ATRIBUICOES.sql | 37, 97, 141 | Concatena todos os fragmentos em V_DS_OBSNOTA; flags S e Ç são testadas aqui |
Scripts/RETORNA_VENDEDORESNOTA.sql | 12, 16, 19, 23, 45, 67, 89 | Lê P.TP_OBSNOTA em V_TP_OBSNOTA e monta lista de vendedores por flags V, H, L, $ |
Scripts/RETORNA_IMPOSTOSITEMNOTA.sql | 68 | Usa POSITION('1', PF.TP_OBSNOTA) > 0 para incluir FECOP no resumo de impostos |
Scripts/GERA_NOTAFISCAL.sql | 182, 261, 268, 1344 | Lê P.TP_OBSNOTA em V_TP_OBSNOTA e usa flag @ para prefixar despesas acessórias na observação |