Skip to content
Open
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
65 changes: 9 additions & 56 deletions DanfeSharp.Test/DanfeTest.cs
Original file line number Diff line number Diff line change
Expand Up @@ -11,62 +11,15 @@ namespace DanfeSharp.Test
public class DanfeTest
{

[TestMethod]
public void GerarDanfeNFCXml()
{
string pasta = @"D:\teste\d\";
string caminhoOut = @"D:\teste\s\";

if (!Directory.Exists(caminhoOut)) Directory.CreateDirectory(caminhoOut);

foreach (var pathXml in Directory.EnumerateFiles(pasta, "*.xml"))
{
var model = DanfeViewModelCreator.CriarModeloNFCeDeArquivoXml(pathXml);
using (var danfe = new DanfeNFC(viewModel: model))
{
danfe.Gerar();
danfe.Salvar($"{caminhoOut}/{model.ChaveAcesso}.pdf");
}
}
}

[TestMethod]
public void GerarDanfeXml()
{
string pasta = @"C:\works\Companies\nfe\João\pdf";
string caminhoOut = @"C:\works\Companies\nfe\João\pdf";

if (!Directory.Exists(caminhoOut)) Directory.CreateDirectory(caminhoOut);

foreach (var pathXml in Directory.EnumerateFiles(pasta, "*.xml"))
{
var model = DanfeViewModelCreator.CriarDeArquivoXml(pathXml);
using (Danfe danfe = new Danfe(model))
{
danfe.Gerar();
danfe.Salvar($"{caminhoOut}/{model.ChaveAcesso}.pdf");
}
}
}

[TestMethod]
public void GerarDanfeEventoXml()
{
string pasta = @"C:\Users\BrunoAlencar\Documents\pdf";
string caminhoOut = @"C:\Users\BrunoAlencar\Documents\pdf";

if (!Directory.Exists(caminhoOut)) Directory.CreateDirectory(caminhoOut);

foreach (var pathXml in Directory.EnumerateFiles(pasta, "*.xml"))
{
var model = DanfeEventoViewModelCreator.CriarDeArquivoXml(pathXml);
using (DanfeCCC danfe = new DanfeCCC(model))
{
danfe.Gerar();
danfe.Salvar($"{caminhoOut}/{model.ChaveAcesso}.pdf");
}
}
}
// Removidos 3 métodos legacy de "personal dev sandbox" que pegavam
// XMLs de pastas locais hardcoded das máquinas de quem escreveu
// (D:\teste\, C:\works\Companies\nfe\João\pdf, C:\Users\BrunoAlencar):
// - GerarDanfeNFCXml — quebrava em runtime (drive D inexistente).
// - GerarDanfeXml — verde por acidente (foreach vazio).
// - GerarDanfeEventoXml — não compilava (DanfeCCC removido em jan/2022,
// renomeado para DanfeCartaCorrecao no commit 2c6bf64).
// Substituir por testes reais com fixture XML versionada em
// DanfeSharp.Test/Xml/ caso seja necessário cobrir esses cenários.

[TestMethod]
public void RetratoSemIcmsInterestadual()
Expand Down
2 changes: 1 addition & 1 deletion DanfeSharp.Test/FabricaFake.cs
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ public static CalculoImpostoViewModel CalculoImpostoViewModel()
ValorSeguro = v,
ValorTotalNota = v,
ValorTotalProdutos = v,
vFCPUFDest = v,
vFCPUFDest = (decimal)v,
vICMSUFDest = v,
vICMSUFRemet = v
};
Expand Down
16 changes: 10 additions & 6 deletions DanfeSharp/Modelo/DanfeViewModel.cs
Original file line number Diff line number Diff line change
Expand Up @@ -340,21 +340,25 @@ public virtual String TextoRecebimento

public virtual String TextoReservadoFisco()
{
if (TipoEmissao is FormaEmissao.Normal)
// Resolve o rótulo da contingência. Valores fora do conjunto conhecido
// (incluindo o default 0 do enum, atribuído quando TipoEmissao não é
// explicitamente setado) retornam null e o método sai com string vazia
// — evita NotImplementedException quando o ViewModel é construído
// programaticamente sem definir TipoEmissao.
string contingencyType = TipoEmissao switch
{
return string.Empty;
}

var contingencyType = TipoEmissao switch {
FormaEmissao.ContingenciaDPEC => "DPEC",
FormaEmissao.ContingenciaFSDA => "FSDA",
FormaEmissao.ContingenciaFS => "FSIA",
FormaEmissao.ContingenciaSVCAN => "SVC-AN",
FormaEmissao.ContingenciaSVCRS => "SVC-RS",
FormaEmissao.ContingenciaSCAN => "SCAN",
_ => throw new NotImplementedException()
FormaEmissao.ContingenciaOffLineNFCe => "Off-Line NFCe",
_ => null
};

if (contingencyType == null) return string.Empty;

Comment thread
rhfranzoni marked this conversation as resolved.
var contingencyDateTime = ContingenciaDataHora?.ToString("yyyy-MM-ddTHH:mm:sszzz");

return $"""
Expand Down