Skip to content

fix(danfe): imprimir a modalidade do frete por extenso no quadro do transportador - #1712

Merged
Valmir-Cunha merged 1 commit into
ZeusAutomacao:masterfrom
ccaiolopes:bugfix/danfe-modalidade-frete
Sep 23, 2026
Merged

Valmir-Cunha merged 1 commit into
ZeusAutomacao:masterfrom
ccaiolopes:bugfix/danfe-modalidade-frete

Conversation

@ccaiolopes

Copy link
Copy Markdown

Descrição

O campo "FRETE POR CONTA", no quadro TRANSPORTADOR / VOLUMES TRANSPORTADOS do DANFE, deve exibir o código da modalidade do frete seguido do seu nome, conforme o Manual de Orientação do Contribuinte (tag transp/modFrete).

O dicionário TransportadoraViewModel.ModalidadesFrete já traz os nomes corretos, mas duas linhas logo abaixo dele, em ModalidadeFreteString, sobrescreviam as modalidades 0 e 1 pelos incoterms CIF e FOB:

result = $"{ModalidadeFrete}-{ModalidadesFrete[ModalidadeFrete]}";
if (ModalidadeFrete == 9) result = string.Empty;
if (ModalidadeFrete == 0) result = "0 - CIF";   // <- descarta "Por conta Remetente"
if (ModalidadeFrete == 1) result = "1 - FOB";   // <- descarta "Por conta Destinatário"

CIF e FOB são termos de comércio exterior; eles não descrevem quem paga o frete numa operação interna, e não é isso que o quadro do DANFE pede.

Comportamento atual

transp/modFrete Impresso
0 0 - CIF
1 1 - FOB

Comportamento esperado

transp/modFrete Impresso
0 0-Por conta Remetente
1 1-Por conta Destinatário

A mudança

Remoção das duas linhas de sobrescrita. As demais modalidades (2, 3, 4 e 9) e o caminho de código desconhecido (({ModalidadeFrete})) não mudam. Foi acrescentada a documentação XML da propriedade.

Como reproduzir

Gerar o DANFE de qualquer nfeProc cujo transp/modFrete seja 0 ou 1 e observar o campo FRETE POR CONTA.

Testes

dotnet build NFe.Danfe.PdfClown/NFe.Danfe.PdfClown.csproj -c Release — compila nos dois alvos (netstandard2.0 e net6.0) sem novos avisos.

…ransportador

O campo "FRETE POR CONTA" do quadro "TRANSPORTADOR / VOLUMES TRANSPORTADOS"
deve trazer o código da modalidade seguido do seu nome, conforme o Manual de
Orientação do Contribuinte. O dicionário ModalidadesFrete já traz esses nomes,
mas duas linhas em ModalidadeFreteString substituíam as modalidades 0 e 1 pelos
incoterms "CIF" e "FOB" — que são termos de comércio exterior e não descrevem
quem paga o frete numa operação interna.

Com a remoção, modFrete=0 passa a imprimir "0-Por conta Remetente" e modFrete=1
passa a imprimir "1-Por conta Destinatário". As demais modalidades (2, 3, 4 e 9)
não mudam.
@Valmir-Cunha

Copy link
Copy Markdown
Member

Olá @ccaiolopes. Desculpa pela demora na revisão do PR.
Agradecemos pela contribuição e dedicação.

@Valmir-Cunha
Valmir-Cunha merged commit ecb2ce8 into ZeusAutomacao:master Sep 23, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants