Skip to content

Corrigir renderização da coluna O/CSOSN (separador + rótulo por regime) #38

@rhfranzoni

Description

@rhfranzoni

Origem

📌 @Carolina Fagundes via Microsoft Teams — thread interna 27/05/2026, sem link público

Contexto

A DANFE gerada pelo nfe/DanfeSharp para o cliente Revenda Mais apresenta dois sintomas na coluna O/CSOSN do bloco "DADOS DOS PRODUTOS / SERVIÇOS":

Sintoma 1 — origem e CST/CSOSN concatenados sem separador

A coluna exibe 120 (origem 1 colada ao código 20) em vez de 1/20 (origem 1, CST 20, separados por barra como no padrão da DANFE).

Trecho do XML (correto):

<ICMS>
  <ICMS20>
    <orig>1</orig>
    <CST>20</CST>
    ...
  </ICMS20>
</ICMS>

Sintoma 2 — rótulo "CSOSN" também aparece para emitentes do Regime Normal

O cabeçalho da coluna usa sempre O/CSOSN. Para emitentes do Regime Normal (que emitem com <CST>) o rótulo deveria ser O/CST; O/CSOSN aplica-se apenas a emitentes do Simples Nacional (que emitem com <CSOSN>).

Impacto operacional reportado

Tivemos alguns casos de cancelamento por conta da DANFE no campo dos impostos. — @Carolina Fagundes

Casos são pontuais mas o XML está íntegro — o workaround é reemissão; a correção evita retrabalho fiscal.

Identificadores de referência

  • Company id: c7c78c0f701964d36adcb0d2263e3d1b4
  • Invoice id (exemplo): 86fed76fd38f42e1833375e33a94567c

Objetivo

Renderizar corretamente a coluna de tributação ICMS no bloco de produtos da DANFE:

  1. Separar origem do código tributário por barra (origem/CST ou origem/CSOSN)
  2. Usar o rótulo O/CST para emitentes do Regime Normal e O/CSOSN para Simples Nacional, baseado na tag presente no XML (<CST> vs <CSOSN>) — ou equivalente derivável do CRT/CSOSN do grupo <ICMS*>

Escopo — Inclui

  • Renderer de produtos da DANFE de NF-e modelo 55 (bloco "DADOS DOS PRODUTOS / SERVIÇOS" em DanfeSharp)
  • Coluna O/CSOSN: separador entre origem e código + rótulo dinâmico do cabeçalho
  • Validação visual contra DANFE de exemplo (NF-e do Regime Normal e do Simples)

Escopo — Não inclui

  • Geração do XML da NF-e (XML já está correto — só o visual da DANFE muda)
  • Outras colunas do bloco de produtos
  • DANFE de NFCe / MDF-e / CT-e (somente DANFE NF-e modelo 55)

Critérios de Aceitação

  • Em DANFE de emitente do Regime Normal, o cabeçalho mostra O/CST e as células mostram <origem>/<CST> (ex.: 1/20)
  • Em DANFE de emitente do Simples Nacional, o cabeçalho mostra O/CSOSN e as células mostram <origem>/<CSOSN> (ex.: 0/102)
  • Quando o XML não tem origem (<orig> ausente), a célula exibe apenas o código (ex.: 20) sem barra solta no início
  • Renderização da NF-e com invoice id 86fed76fd38f42e1833375e33a94567c da company c7c78c0f701964d36adcb0d2263e3d1b4 passa a exibir 1/20 (vs 120 atual)
  • Testes unitários cobrindo: (a) Regime Normal com CST 00/20/40, (b) Simples Nacional com CSOSN 102/500, (c) ausência de <orig>
  • Validação visual com cliente Revenda Mais antes do fechamento

Dependências

Nenhuma direta. Issue mãe: #37 (umbrella "Ajustes Danfe — Revenda Mais").

Referências

  • Issue mãe: Ajustes Danfe — Revenda Mais (umbrella) #37 (umbrella "Ajustes Danfe — Revenda Mais")
  • Screenshot da demanda (Microsoft Teams, Carolina Fagundes, 27/05/2026) — anexado na thread original
  • Manual de Orientação ao Contribuinte (MOC) NF-e — coluna O/CST/CSOSN da DANFE
  • Branch ativa com mudanças recentes na DANFE: feature/credit-note-rendering

Classificação (Project Fields)

  • Status: Triage (por solicitação do criador)
  • Priority: Medium
  • Severity: Medium
  • Sprint: Sprint 6 (atual, 2026-05-25 a 2026-06-01)
  • Compliance: Não (registrado no body — field ausente em nfe/5 (Product & Engineering))

Metadata

Metadata

Labels

No labels
No labels
No fields configured for Improvement.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions