diff --git a/NFe.Danfe.AppTeste.QuestPdf/MainWindow.xaml.cs b/NFe.Danfe.AppTeste.QuestPdf/MainWindow.xaml.cs index 6ab838106..c82ffc1d0 100644 --- a/NFe.Danfe.AppTeste.QuestPdf/MainWindow.xaml.cs +++ b/NFe.Danfe.AppTeste.QuestPdf/MainWindow.xaml.cs @@ -32,7 +32,6 @@ /********************************************************************************/ using Microsoft.Win32; -using NFe.Classes; using NFe.Danfe.QuestPdf.ImpressaoNfce; using QuestPDF.Fluent; using QuestPDF.Infrastructure; @@ -156,8 +155,7 @@ private static byte[] ConverterParaPngBytes(BitmapImage bitmap) private void GerarDanfeNfce(string caminhoXml, TamanhoImpressao tamanho) { - var proc = new nfeProc().CarregarDeArquivoXml(caminhoXml); - var xml = proc.ObterXmlString(); + var xml = File.ReadAllText(caminhoXml); var documento = new DanfeNfceDocument(xml, _logoMarcaBytes); documento.TamanhoImpressao(tamanho); diff --git a/NFe.Danfe.QuestPdf/ImpressaoNfce/DanfeNfceDocument.cs b/NFe.Danfe.QuestPdf/ImpressaoNfce/DanfeNfceDocument.cs index d4f24c973..78a9f0152 100644 --- a/NFe.Danfe.QuestPdf/ImpressaoNfce/DanfeNfceDocument.cs +++ b/NFe.Danfe.QuestPdf/ImpressaoNfce/DanfeNfceDocument.cs @@ -3,6 +3,7 @@ using DFe.Utils; using NFe.Classes; using NFe.Classes.Informacoes.Destinatario; +using NFe.Classes.Informacoes.Identificacao.Tipos; using NFe.Classes.Informacoes.Pagamento; using NFe.Utils; using NFe.Utils.InformacoesSuplementares; @@ -349,6 +350,27 @@ private void Rodape(IContainer container) column.Item().LineHorizontal(1); + if (DeveExibirMensagemContingencia()) + { + column.Item().Row(r => + { + r.RelativeItem().AlignCenter().Column(c => + { + c.Item().AlignCenter().Text("EMITIDA EM CONTINGÊNCIA").FontSize(_tamanhoFontePadrao).ExtraBlack(); + }); + }); + + column.Item().Row(r => + { + r.RelativeItem().AlignCenter().Column(c => + { + c.Item().AlignCenter().Text("Pendente de autorização").FontSize(_tamanhoFontePadrao).ExtraBlack(); + }); + }); + + column.Item().LineHorizontal(1); + } + column.Item().Row(r => { r.RelativeItem().AlignCenter().Column(c => @@ -372,11 +394,18 @@ private void Rodape(IContainer container) t.Cell().AlignCenter().Image(ImagemQrCode()); t.Cell().AlignLeft().Column(c => { - c.Item().Text($"Série: {_nfe.infNFe.ide.serie:D3}").FontSize(_tamanhoFontePadrao); - c.Item().Text($"Número: {_nfe.infNFe.ide.nNF:D9}").FontSize(_tamanhoFontePadrao); - c.Item().Text($"Emissão: {_nfeProc.NFe.infNFe.ide.dhEmi:G}").FontSize(_tamanhoFontePadrao); - c.Item().Text($"Protocolo: {_nfeProc.protNFe.infProt.nProt}").FontSize(_tamanhoFontePadrao); - c.Item().Text($"Autorização: {_nfeProc.protNFe.infProt.dhRecbto:G}").FontSize(_tamanhoFontePadrao); + if (_nfe?.infNFe?.ide != null) + { + c.Item().Text($"Série: {_nfe.infNFe.ide.serie:D3}").FontSize(_tamanhoFontePadrao); + c.Item().Text($"Número: {_nfe.infNFe.ide.nNF:D9}").FontSize(_tamanhoFontePadrao); + c.Item().Text($"Emissão: {_nfe.infNFe.ide.dhEmi:G}").FontSize(_tamanhoFontePadrao); + } + + if (DeveExibirDadosProtocolo()) + { + c.Item().Text($"Protocolo: {_nfeProc!.protNFe!.infProt.nProt}").FontSize(_tamanhoFontePadrao); + c.Item().Text($"Autorização: {_nfeProc!.protNFe!.infProt.dhRecbto:G}").FontSize(_tamanhoFontePadrao); + } }); }); }); @@ -531,6 +560,8 @@ private void CarregarXml(string xml) { try { + _nfeProc = null; + _nfe = null; _nfeProc = FuncoesXml.XmlStringParaClasse(xml); _nfe = _nfeProc.NFe; } @@ -540,6 +571,7 @@ private void CarregarXml(string xml) { NFe.Classes.NFe nfe = FuncoesXml.XmlStringParaClasse(xml); _nfe = nfe; + _nfeProc = null; } catch (Exception) { @@ -549,6 +581,16 @@ private void CarregarXml(string xml) } } + private bool DeveExibirMensagemContingencia() + { + return _nfe?.infNFe?.ide?.tpEmis == TipoEmissao.teOffLine && _nfeProc == null; + } + + private bool DeveExibirDadosProtocolo() + { + return _nfeProc?.protNFe?.infProt != null && !DeveExibirMensagemContingencia(); + } + private string ObtemDescricao(FormaPagamento? formaPagamento) { var existeEnum = Enum