Pular para o conteúdo principal

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óduloCódigoPapel
Parâmetros de FaturamentoMFA001Produtora — cadastra/edita as flags via TCheckListBox
NF SaídaMNF002Consumidora — 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 EntradaMNF001Consumidora indireta via RETORNA_OBSNOTA na emissão/impressão
Ordem Carregamento / NF OrdemMPD011Consumidora — 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)MRC020Consumidora — verifica flag W (Valor Desconto Laudo Técnico) em UMRC020SaldoLaudo.pas linha 334 para oferecer reprocessar observação
Acerto Custo Prod. AcabadosCPD009Consumidora — persistência de PARMFATUR replica TP_OBSNOTA (UdmCPD009.dfm linhas 332, 396, 498, 603)
Recriação ParâmetrosRCA006Consumidora — persistência de PARMFATUR replica TP_OBSNOTA (UdmRCA006.dfm linhas 3081, 3145, 3247, 3352)
MCO006MCO006Consumidora — lê P.TP_OBSNOTA nos parâmetros de faturamento (UdmMCO006.pas linha 2115)
REC001 (Recap. Carcaça/Serviço)REC001NÃ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​

ProcedureArquivoPapel
RETORNA_OBSNOTAScripts/RETORNA_OBSNOTA.sqlUSO 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_V2Scripts/RETORNA_OBSNOTA_V2.sqlComplemento. 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_ATRIBUICOESScripts/RETORNA_OBSNOTA_ATRIBUICOES.sqlRecebe 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_VENDEDORESNOTAScripts/RETORNA_VENDEDORESNOTA.sqlLê 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_IMPOSTOSITEMNOTAScripts/RETORNA_IMPOSTOSITEMNOTA.sqlLê PF.TP_OBSNOTA (linha 68) e usa flag 1 (FECOP) ao consolidar impostos do item
GERA_NOTAFISCALScripts/GERA_NOTAFISCAL.sqlLê 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​

CampoDescrição
PARMFATUR.TP_OBSNOTAEste parâmetro. String de até 60 caracteres, cada caractere é uma flag booleana independente
PARMFATUR.DS_MENSAGEMMensagem fixa concatenada SEMPRE no início da observação, independente de TP_OBSNOTA (ver DS_MENSAGEM)
PARMFATUR.ST_VARIOSVENDEDORESInterage com flag V em RETORNA_OBSNOTA.sql linha 387 — só lista vendedor quando é N (regra "apenas 1 vendedor por nota")
NOTA.DS_OBSERVACAOCampo destino da observação consolidada gravada/impressa
NOTA.DS_OBSFISCALDestino 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 fazDetalhe
OrigemRETORNA_OBSNOTA.sql linhas 648–660 — monta REDESPACHO.: <nome> END.: <endereço> FONE.: <fone> CNPJ.: <doc> a partir de NOTA.CD_REDESPACHO
Sufixo extraAcrescenta ". FRETE REDESPACHO POR CONTA DO DESTINATARIO." (linha 659)
ConflitoExclusivo com a flag ! (Redespacho) — ver regra em UdmMFA001.pas linhas 708–718

Simulação passo a passo​

  1. Em MFA001 → aba Faturamento → sub-aba Obs. Fiscais marque "Redespacho - Destinatário".
  2. Salve (F6). O campo TP_OBSNOTA recebe a letra R.
  3. Emita uma NF em MNF002 informando um redespachante (CD_REDESPACHO).
  4. 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 fazDetalhe
OrigemRETORNA_OBSNOTA.sql linhas 218–262 — quando a NF é agrupamento de mestras, lista números das notas mestras vinculadas

Simulação passo a passo​

  1. Em MFA001 marque "Nota Mestra" e salve (F6).
  2. Faça uma NF em MNF002 que consolide notas-mestras (MESTRA.ST_MESTRA = 'S').
  3. 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 fazDetalhe
OrigemRETORNA_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​

  1. Marque "Nota Fiscal de Origem (Devolução)" em MFA001 e salve.
  2. Emita uma NF de devolução vinculada a uma NF de saída original.
  3. 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 fazDetalhe
OrigemRETORNA_OBSNOTA.sql linhas 177–216 — lista os números de pedido que originaram a NF
Uso em MPD011UdmNFORDEM.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​

  1. MFA001 → marque "Pedidos" → salve.
  2. Em MPD011 gere NF de uma ordem de carregamento com pedidos vinculados.
  3. 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 fazDetalhe
OrigemRETORNA_OBSNOTA.sql linhas 387–398 — só lista vendedor se PARMFATUR.ST_VARIOSVENDEDORES = 'N'; formato CD_PESSOA` - `APELIDO`/`NM_PESSOA
Variante Multi-vendedorQuando ST_VARIOSVENDEDORES='S', a listagem de vendedores é feita por RETORNA_VENDEDORESNOTA com flags V, H, L ou $

Simulação passo a passo​

  1. MFA001 → marque "Código e Nome do Vendedor" → salve.
  2. Emita uma NF com vendedor informado.
  3. 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 fazDetalhe
OrigemRETORNA_OBSNOTA.sql linhas 400–408 — anexa "Usuário: <NM_USUARIO>" do usuário emissor (NOTA.CD_USUARIO)

Simulação passo a passo​

  1. MFA001 → marque "Usuário" → salve.
  2. Emita uma NF logado como usuário "João".
  3. 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 fazDetalhe
OrigemRETORNA_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​

  1. MFA001 → marque "Endereço de Entrega" → salve.
  2. Emita uma NF com cliente que tenha endereço de entrega distinto do endereço cadastral.
  3. 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 fazDetalhe
OrigemRETORNA_OBSNOTA.sql linhas 327–385 — busca as observações fiscais cadastradas em TFI003 vinculadas ao CFOP/operação e separa por item
DestinoConcatena em O_DS_OBSFISCAL (campo NOTA.DS_OBSFISCAL) e em DS_OBSNF

Simulação passo a passo​

  1. Cadastre observações fiscais em TFI003 associadas ao CFOP usado.
  2. MFA001 → marque "Observação Fiscal da Nota (TFI003)" → salve.
  3. Emita uma NF com aquele CFOP.
  4. 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 fazDetalhe
OrigemRETORNA_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​

  1. MFA001 → marque "Observação da Nota" → salve.
  2. Em MNF002 digite algo em Observações no cabeçalho da NF.
  3. 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 fazDetalhe
OrigemRETORNA_OBSNOTA.sql linhas 411–426 — para Selo Interestadual concatena NR_SELO/NR_DIGITOVERIFICADOR, NR_LOTESELO e DT_VALIDADE

Simulação passo a passo​

  1. MFA001 → marque "Número do Selo" → salve.
  2. Emita NF com item controlado por selo (ITEMCARCACA com NR_SELO preenchido).
  3. 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 fazDetalhe
OrigemRETORNA_OBSNOTA.sql linhas 429–568 — consolida ICMS Diferido, II (Imposto Importação), IPI e compõe DS_IMPOSTO
Regra complementarRETORNA_OBSNOTA.sql linhas 698–769 — para empresa Simples com Subst. Trib. calcula crédito presumido

Simulação passo a passo​

  1. MFA001 → marque "Impostos" → salve.
  2. Emita NF com ICMS diferido / II / IPI.
  3. 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 fazDetalhe
OrigemRETORNA_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​

  1. MFA001 → marque "PIS/COFINS - Retido/ST" → salve.
  2. Emita NF com CFOP que gere PIS/COFINS retidos.
  3. 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 fazDetalhe
OrigemRETORNA_OBSNOTA.sql linhas 569–597 — concatena "Valor PIS.:R$ X. Valor COFINS.:R$ Y" (não retido)

Simulação passo a passo​

  1. MFA001 → marque "PIS/COFINS" → salve.
  2. Emita NF de venda com PIS/COFINS de saída.
  3. 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 fazDetalhe
OrigemRETORNA_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​

  1. MFA001 → marque "Motorista" → salve.
  2. Emita NF com motorista informado (CD_MOTORISTA).
  3. A observação inclui o nome do motorista.

Resultado esperado: rastreabilidade do motorista na NF.


N — NCM com ST (idx 14)​

O que fazDetalhe
OrigemLetra 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​

  1. MFA001 → marque "NCM com ST" → salve.
  2. Emita NF com itens cujo NCM está configurado com ST.
  3. 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 fazDetalhe
OrigemRETORNA_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​

  1. Cadastre cubagem dos itens em MEQ029.
  2. MFA001 → marque "Cubagem (MEQ029)" → salve.
  3. Emita NF com os itens cubados.
  4. 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 fazDetalhe
OrigemRETORNA_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​

  1. MFA001 → marque "Obs Coleta (MRC001)" → salve.
  2. Emita NF de saída de itens reformados com pedidos de coleta vinculados.
  3. 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 fazDetalhe
OrigemRETORNA_OBSNOTA.sql linhas 835–920 — lista números de coletas / ordens de carregamento de recap vinculadas à NF

Simulação passo a passo​

  1. MFA001 → marque "Coleta/Ordem Carreg. Recap." → salve.
  2. Emita NF associada a coletas/ordens de carregamento de recap.
  3. 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 fazDetalhe
OrigemRETORNA_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​

  1. MFA001 → marque "Dados do Produtor" → salve.
  2. Emita NF de entrada de produtor rural.
  3. 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 fazDetalhe
OrigemRETORNA_VENDEDORESNOTA.sql linhas 45–65 — para cada vendedor anexa <TP_VENDEDOR>: APELIDO/NM_PESSOA``
EscopoSó lista quando ST_VARIOSVENDEDORES='S' (vários vendedores por nota)

Simulação passo a passo​

  1. MFA001 → marque "Tipo e Apelido/Nome do Vendedor" → ST_VARIOSVENDEDORES='S' → salve.
  2. Emita NF com vários vendedores rateando.
  3. 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 fazDetalhe
OrigemRETORNA_VENDEDORESNOTA.sql linhas 67–87 — lista apenas CD_PESSOA dos vendedores, sem nome

Simulação passo a passo​

  1. MFA001 → marque "Código do Vendedor" → salve.
  2. Emita NF com vendedor.
  3. 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 fazDetalhe
OrigemRETORNA_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​

  1. MFA001 → marque "Nr. Coleta (Smartphone)" → salve.
  2. Emita NF de pedidos captados pelo aplicativo mobile.
  3. 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 fazDetalhe
OrigemRETORNA_OBSNOTA.sql linhas 134–147 — busca NR_ORDEM da CTRC vinculada ao CT-e e concatena

Simulação passo a passo​

  1. MFA001 → marque "Nr. da Ordem do Conhecimento de Transporte" → salve.
  2. Emita CT-e que referencie uma ordem de serviço de transporte.
  3. 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 fazDetalhe
OrigemRETORNA_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​

  1. MFA001 → marque "Resumo IBPT" → salve.
  2. Emita NFC-e/NF-e de consumidor final.
  3. 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 fazDetalhe
OrigemRETORNA_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​

  1. MFA001 → marque "ICMS ST Pago na Compra" → salve.
  2. Emita NF de saída de itens que tiveram ICMS-ST recolhido na entrada.
  3. 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 fazDetalhe
OrigemRETORNA_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çãoRETORNA_OBSNOTA_ATRIBUICOES.sql linha 141 aplica o texto em V_DS_OBSNOTA

Simulação passo a passo​

  1. MFA001 → marque "Nota fiscal de Entrada de Carcaça" → salve.
  2. Emita NF de saída de produto reformado vinculado a carcaças de entrada.
  3. 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 fazDetalhe
OrigemRETORNA_OBSNOTA.sql linhas 1033–1073 — lista laudos técnicos (desvalorização) associados aos itens
ReprocessamentoUMNF002SaldoLaudo.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​

  1. MFA001 → marque "Valor Desconto Laudo Técnico" → salve.
  2. Em MNF002 ou MRC020 altere o laudo/saldo de um item.
  3. Sistema pergunta se deseja reprocessar a observação. Confirme.
  4. 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 fazDetalhe
OrigemRETORNA_OBSNOTA_V2.sql linhas 61–87 — lista ROMANEIO.NR_ROMANEIO vinculados à nota (obras/romaneios)

Simulação passo a passo​

  1. MFA001 → marque "Nº Obra" → salve.
  2. Emita NF vinculada a romaneios/obras.
  3. 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 fazDetalhe
OrigemRETORNA_OBSNOTA_V2.sql linhas 90–97 — busca O_DS_FECOP retornado por RETORNA_IMPOSTOSITEMNOTA
ComplementoRETORNA_IMPOSTOSITEMNOTA.sql linha 68 — só calcula FECOP por item quando flag 1 está ativa

Simulação passo a passo​

  1. MFA001 → marque "FECOP" → salve.
  2. Emita NF para UF que recolhe FECOP (ex.: CE, PE, RJ, PB).
  3. Observação inclui "FECOP: R$ ...".

Resultado esperado: Fundo de Combate à Pobreza evidenciado separadamente do ICMS.


2 — ICMS Não Tributado (idx 29)​

O que fazDetalhe
OrigemRETORNA_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​

  1. MFA001 → marque "ICMS Não Tributado" → salve.
  2. Emita NF com CST/CSOSN não-tributado (ex.: 40, 41, 50).
  3. 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 fazDetalhe
OrigemRETORNA_OBSNOTA_V2.sql linhas 175–192 — anexa NR_INSCEST e NR_INSCPRODUTOR da pessoa destinatária

Simulação passo a passo​

  1. MFA001 → marque "Inscrição Estadual Pessoa" → salve.
  2. Emita NF para pessoa com IE e/ou Insc. Produtor preenchidas.
  3. 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 fazDetalhe
OrigemRETORNA_OBSNOTA_V2.sql linhas 194–229 — lista base e valor de ISSQN por item de serviço

Simulação passo a passo​

  1. MFA001 → marque "ISSQN" → salve.
  2. Emita NF de serviço ou NF mista com tributação ISSQN.
  3. 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 fazDetalhe
OrigemRETORNA_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​

  1. MFA001 → marque "ICMS-ST Retido Anterior" → salve.
  2. Emita NF de revenda com itens que tiveram ICMS-ST retido na compra.
  3. 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 fazDetalhe
OrigemRETORNA_OBSNOTA_V2.sql linhas 259–260 — acrescenta "CI.: <NR_LANCAMENTO>" (número interno do lançamento no Junsoft)

Simulação passo a passo​

  1. MFA001 → marque "Nº Lançamento" → salve.
  2. Emita qualquer NF.
  3. 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 fazDetalhe
OrigemRETORNA_OBSNOTA_V2.sql linhas 262+ — lista valor de crédito Peixe Vida (programa estadual específico)

Simulação passo a passo​

  1. MFA001 → marque "Insc. Peixe Vida" → salve.
  2. Emita NF em UF/empresa participante do programa Peixe Vida.
  3. 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 fazDetalhe
OrigemRETORNA_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​

  1. MFA001 → marque "Agrupamento de Notas" → salve.
  2. Em MNF024 refature várias NFs em uma só.
  3. 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 fazDetalhe
OrigemLetra 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​

  1. MFA001 → marque "Composição Ordem Prod. Pedido" → salve.
  2. Fature pedido com ordem de produção associada.
  3. Observação inclui composição da ordem.

Resultado esperado: produção associada ao pedido evidenciada na NF.


! — Redespacho (idx 37)​

O que fazDetalhe
OrigemRETORNA_OBSNOTA.sql linhas 648–660 — mesma rotina do R, mas SEM o sufixo "FRETE REDESPACHO POR CONTA DO DESTINATARIO"
ConflitoExclusivo com R — ao marcar um, o outro é desmarcado automaticamente (UdmMFA001.pas linhas 708–718)

Simulação passo a passo​

  1. MFA001 → desmarque "Redespacho - Destinatário" e marque "Redespacho" → salve.
  2. Emita NF com redespachante.
  3. 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 fazDetalhe
OrigemGERA_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​

  1. MFA001 → marque "Desp. Acessórias" → salve.
  2. Emita NF com despesas acessórias (frete, seguro, outros) > 0.
  3. 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 fazDetalhe
OrigemLetra # 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​

  1. MFA001 → marque "Cupom Desconto" → salve.
  2. Emita NF com cupom promocional aplicado.
  3. 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 fazDetalhe
OrigemRETORNA_VENDEDORESNOTA.sql linhas 89+ — para cada vendedor anexa <TP_VENDEDOR>: <NM_PESSOA> (diferente de H que usa apelido)

Simulação passo a passo​

  1. MFA001 → marque "Tipo e Nome do Vendedor" → salve.
  2. Emita NF com vários vendedores.
  3. 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 fazDetalhe
OrigemRETORNA_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​

  1. MFA001 → marque "Nota Fiscal de Origem (Complemento)" → salve.
  2. Emita NF complementar vinculada a uma NF original.
  3. Observação lista a NF original referenciada.

Resultado esperado: em NF complementar (preço, imposto, quantidade) evidencia a NF-mãe.


Interação com outros parâmetros​

  • 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​

LetraIdxDescriçãoProcedure principalDestino
R0Redespacho - DestinatárioRETORNA_OBSNOTA 648–660DS_OBSNOTA
M1Nota MestraRETORNA_OBSNOTA 218–262DS_OBSNOTA
D2NF de Origem (Devolução)RETORNA_OBSNOTA 265–324DS_OBSNOTA
P3PedidosRETORNA_OBSNOTA 177–216DS_OBSNOTA
V4Cód. e Nome VendedorRETORNA_OBSNOTA 387–398DS_OBSNOTA
U5UsuárioRETORNA_OBSNOTA 400–408DS_OBSNOTA
E6Endereço de EntregaRETORNA_OBSNOTA 633–645DS_OBSNOTA
F7Obs. Fiscal (TFI003)RETORNA_OBSNOTA 327–385DS_OBSFISCAL
S8Observação da NotaRETORNA_OBSNOTA_ATRIBUICOES 97DS_OBSNOTA
B9Número do SeloRETORNA_OBSNOTA 411–426DS_OBSNOTA
I10Impostos (ICMS Dif., II, IPI)RETORNA_OBSNOTA 429–568DS_OBSFISCAL
C11PIS/COFINS - Retido/STRETORNA_OBSNOTA 599–631DS_OBSFISCAL
X12PIS/COFINSRETORNA_OBSNOTA 569–597DS_OBSFISCAL
T13MotoristaRETORNA_OBSNOTA 771–783DS_OBSNOTA
N14NCM com STjFaturamentoDS_OBSFISCAL
Q15Cubagem (MEQ029)RETORNA_OBSNOTA 784–833DS_OBSNOTA
A16Obs Coleta (MRC001)RETORNA_OBSNOTA 923–1013DS_OBSNOTA
G17Coleta/Ordem Carreg. Recap.RETORNA_OBSNOTA 835–920DS_OBSNOTA
O18Dados do ProdutorRETORNA_OBSNOTA 1016–1025DS_OBSNOTA
H19Tipo e Apelido/Nome Vend.RETORNA_VENDEDORESNOTA 45–65DS_OBSNOTA
L20Código do VendedorRETORNA_VENDEDORESNOTA 67–87DS_OBSNOTA
Y21Nr. Coleta (Smartphone)RETORNA_OBSNOTA 150–175DS_OBSNOTA
J22Nº Ordem CT-eRETORNA_OBSNOTA 134–147DS_OBSNOTA
Z23Resumo IBPTRETORNA_OBSNOTA 1026–1032DS_OBSNOTA
K24ICMS ST Pago na CompraRETORNA_OBSNOTA 1076–1174DS_OBSNOTA
Ç25NF Entrada de CarcaçaRETORNA_OBSNOTA 1176–1181DS_OBSNOTA
W26Valor Desconto Laudo TécnicoRETORNA_OBSNOTA 1033–1073DS_OBSNOTA
027Nº ObraRETORNA_OBSNOTA_V2 61–87DS_OBSNOTA
128FECOPRETORNA_OBSNOTA_V2 90–97DS_OBSNOTA
229ICMS Não TributadoRETORNA_OBSNOTA_V2 115–172DS_OBSNOTA
330Inscrição Estadual PessoaRETORNA_OBSNOTA_V2 175–192DS_OBSNOTA
431ISSQNRETORNA_OBSNOTA_V2 194–229DS_OBSNOTA
532ICMS-ST Retido AnteriorRETORNA_OBSNOTA_V2 232–255DS_OBSNOTA
633Nº LançamentoRETORNA_OBSNOTA_V2 259–260DS_OBSNOTA
734Insc. Peixe VidaRETORNA_OBSNOTA_V2 262+DS_OBSNOTA
835Agrupamento de NotasRETORNA_OBSNOTA 1183–1196DS_OBSNOTA
936Composição Ordem Prod. PedidojFaturamentoDS_OBSNOTA
!37Redespacho (sem frete destinat.)RETORNA_OBSNOTA 648–660DS_OBSNOTA
@38Desp. AcessóriasGERA_NOTAFISCAL 1344DS_OBSNOTA
#39Cupom DescontojFaturamentoDS_OBSNOTA
$40Tipo e Nome do VendedorRETORNA_VENDEDORESNOTA 89+DS_OBSNOTA
%41NF de Origem (Complemento)RETORNA_OBSNOTA_V2 98–113DS_OBSNOTA

Referências no Código Fonte​

Delphi — Tela MFA001 (produtora)​

ArquivoLinhasPapel
source/MFA001/UMFA001.dfm7596–7657Declaração do TCheckListBox chkTP_OBSNOTA com os 42 itens textuais e OnClickCheck = chkTP_OBSNOTAClickCheck
source/MFA001/UMFA001.pas408Declaração chkTP_OBSNOTA: TCheckListBox
source/MFA001/UMFA001.pas757, 1773–1776procedure chkTP_OBSNOTAClickCheck → chama Verifica_TipoObsNota('A')
source/MFA001/UMFA001.pas1148Em erro de validação, foca pagFiscal e chkTP_OBSNOTA.SetFocus
source/MFA001/UdmMFA001.pas294Declaração tabPARMFATURTP_OBSNOTA: TStringField
source/MFA001/UdmMFA001.pas421, 608Assinatura e corpo de Verifica_TipoObsNota(Tipo: String) — converte TCheckListBox ↔ string de 42 flags
source/MFA001/UdmMFA001.pas502AfterInsert: valor padrão 'RMDPVEFOSBI'
source/MFA001/UdmMFA001.pas503, 1453Chamadas Verifica_TipoObsNota('C') no AfterInsert e na navegação de registros
source/MFA001/UdmMFA001.pas618–700Bloco Tipo='A' (Alterando) — para cada chkTP_OBSNOTA.Checked[i] concatena uma letra
source/MFA001/UdmMFA001.pas708–718Regra de exclusão mútua R ↔ ! (chamado 383429 — Pedro 02/08/2022)
source/MFA001/UdmMFA001.pas722Gravação: tabPARMFATURTP_OBSNOTA.AsString := Trim(Status)
source/MFA001/UdmMFA001.pas727–862Bloco Tipo='C' (Consultando) — lê cada letra e marca o Checked[i] correspondente
source/MFA001/UdmMFA001.dfm145, 1665–1669, 2540, 2754, 3025TP_OBSNOTA nos SQLs do tabPARMFATUR (SelectSQL, InsertSQL, ModifySQL) e no TStringField tabPARMFATURTP_OBSNOTA (Size = 60)

Delphi — Consumidores (leem PARMFATUR.TP_OBSNOTA)​

ArquivoLinhasPapel
source/MNF002/UdmMNF002.pas771SELECT P.TP_OBSNOTA FROM PARMFATUR P — usa na emissão de NF de saída
source/MNF002/UMNF002SaldoLaudo.pas360if (Pos('W', ParmFatur.Values['TP_OBSNOTA']) > 0) then MsgCodigo(..."Deseja reprocessar a observação da nota?"...)
source/MCO006/UdmMCO006.pas2115SELECT P.TP_OBSNOTA FROM PARMFATUR P
source/MPD011/UdmMPD011.pas1582SELECT PF.TP_OBSNOTA FROM PARMFATUR PF (ordem carregamento)
source/MPD011/UdmNFORDEM.pas471if (Pos('P', ParmFatur.Values['TP_OBSNOTA']) > 0) then tabNOTADS_OBSNOTA.AsString := ... + dsNrPedido
source/MRC020/UMRC020SaldoLaudo.pas334if (Pos('W', ParmFatur.Values['TP_OBSNOTA']) > 0) then ... "Deseja reprocessar a observação da nota?"
source/MNF008/UdmMNF008.pas10506SELECT ... P.TP_OBSNOTA FROM PARMFATUR P
source/RCA006/UdmRCA006.dfm3081, 3145, 3247, 3352Persistência (InsertSQL, ModifySQL, SelectSQL) do PARMFATUR.TP_OBSNOTA
source/CPD009/UdmCPD009.dfm332, 396, 498, 603Persistência do PARMFATUR.TP_OBSNOTA
source/JunsoftServiceFatApp/PersistenciaDao.pas1640Referência em comentário — bloco Pos('A', TP_OBSNOTA) para observação de coleta

SQL — Procedures (Firebird)​

ArquivoLinhas-chavePapel
Scripts/RETORNA_OBSNOTA.sql53, 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, 1201Procedure principal — lê P.TP_OBSNOTA em I_TP_OBSNOTA e usa POSITION(<letra>, I_TP_OBSNOTA) para cada bloco
Scripts/RETORNA_OBSNOTA_V2.sql13, 19, 49–58, 61, 90, 98, 115, 164, 175, 194, 232, 259, 262Trata flags numéricas (0–7) e % (complemento)
Scripts/RETORNA_OBSNOTA_ATRIBUICOES.sql37, 97, 141Concatena todos os fragmentos em V_DS_OBSNOTA; flags S e Ç são testadas aqui
Scripts/RETORNA_VENDEDORESNOTA.sql12, 16, 19, 23, 45, 67, 89Lê P.TP_OBSNOTA em V_TP_OBSNOTA e monta lista de vendedores por flags V, H, L, $
Scripts/RETORNA_IMPOSTOSITEMNOTA.sql68Usa POSITION('1', PF.TP_OBSNOTA) > 0 para incluir FECOP no resumo de impostos
Scripts/GERA_NOTAFISCAL.sql182, 261, 268, 1344Lê P.TP_OBSNOTA em V_TP_OBSNOTA e usa flag @ para prefixar despesas acessórias na observação