diff --git a/NFe.Danfe.Nativo/NFCe/DanfeNativoNfce.cs b/NFe.Danfe.Nativo/NFCe/DanfeNativoNfce.cs index 2640ce3f1..238552a2b 100644 --- a/NFe.Danfe.Nativo/NFCe/DanfeNativoNfce.cs +++ b/NFe.Danfe.Nativo/NFCe/DanfeNativoNfce.cs @@ -71,10 +71,12 @@ public class DanfeNativoNfce private decimal _totalPago; private int _y; private VersaoQrCode _versaoQrCode; + private string creditos = String.Empty; - public DanfeNativoNfce(string xml, VersaoQrCode versaoQrCode, byte[] logo, string cIdToken, string csc, decimal troco = decimal.Zero, decimal totalPago = decimal.Zero, string font = null, bool viaEstabelecimento = false) + public DanfeNativoNfce(string xml, VersaoQrCode versaoQrCode, byte[] logo, string cIdToken, string csc, decimal troco = decimal.Zero, decimal totalPago = decimal.Zero, string font = null, bool viaEstabelecimento = false, string creditos = null) { - Inicializa(xml, versaoQrCode, logo, cIdToken, csc, troco, totalPago, font); + Inicializa(xml, versaoQrCode, logo, cIdToken, csc, troco, totalPago, font, viaEstabelecimento); + this.creditos = creditos; } private void Inicializa(string xml, VersaoQrCode versaoQrCode, byte[] logo, string cIdToken, string csc, decimal troco, decimal totalPago, string font = null, bool viaEstabelecimento = false, string fontPadrao = "") @@ -568,6 +570,22 @@ private void GerarNfCe(Graphics graphics) int dataAutorizacaoX = (larguraLinha - dataAutorizacao.Medida.Largura) / 2; dataAutorizacao.Desenhar(dataAutorizacaoX, _y); _y += dataAutorizacao.Medida.Altura; + + if (_proc.protNFe.infProt.xMsg != null) + { + var dezenas = new AdicionarTexto(g, _proc.protNFe.infProt.xMsg.ToString(), 7); + var quebraLinhaDezenas = new DefineQuebraDeLinha( + dezenas, + new ComprimentoMaximo(larguraLinhaMargemDireita), + dezenas.Medida.Largura + ); + + dezenas = quebraLinhaDezenas.DesenharComQuebras(g); + + int dezenasX = (larguraLinha - dezenas.Medida.Largura) / 2; + dezenas.Desenhar(dezenasX, _y); + _y += dezenas.Medida.Altura; + } } if (_nfe.infNFe.ide.tpEmis != TipoEmissao.teNormal) @@ -629,6 +647,20 @@ private void GerarNfCe(Graphics graphics) _y += observacao.Medida.Altura; } + + + if (!string.IsNullOrEmpty(this.creditos)) + { + LinhaHorizontal(g, x, _y, larguraLinha); + + var creditos = new AdicionarTexto(g, this.creditos, 7); + var quebraCredito = new DefineQuebraDeLinha(creditos, + new ComprimentoMaximo(larguraLinhaMargemDireita), creditos.Medida.Largura); + creditos = quebraCredito.DesenharComQuebras(g); + creditos.Desenhar(x, _y); + + _y += creditos.Medida.Altura; + } } private void AdicionaFormaPagamento(int x, int larguraLinhaMargemDireita, Graphics g, FormaPagamento? formaPagamento, decimal? vPag)