public void ObterDanfe() { var c1 = ObterConfiguracao(); var cabecalho = new CabecalhoNFCe("Empresa DSBR BRasil", "32806205000155", "155731233", "10", "Rua Itacimirim loja 22", "São Paulo", "SP", "40620500"); var dest = new DestinatarioNFCe("", "", ""); var pagamento = new PagamentoNFCe(120, 120, 120, 0.5, new List <FormPagNFCe> { new FormPagNFCe("Dinheiro", 120), new FormPagNFCe("Cartão Crédito", 23.56) }); var produtos = new List <ProdutoNFCe>(); for (var i = 0; i < 11; i++) { produtos.Add(new ProdutoNFCe(i.ToString(), $"Produto {i}", "UND", i, i * 2, i * 3)); } var impostos = new ImpostosNFCe(5, 6, 7); var infAdc = new InfAdicNFCe("Informação"); var urlConsulta = c1.ConfigServ.UrlsNFce.Homologacao.QrcodeConsulta; var corpo = new CorpoNFCe(false, "00000", Status.Autorizada, produtos, true, pagamento, impostos, infAdc, "1", DateTime.Now, urlConsulta, "29190417784038000103650980000000011000000014", dest); var urlQrcode = "http://hnfe.sefaz.ba.gov.br/servicos/nfce/modulos/geral/NFCEC_consulta_chave_acesso.aspx?p=29190517784038000103650980000000011000000026|2|2|1|b72d0c7a8a2d5bd267287215216be079669162a7"; var rodape = new RodapeNFCe("5512006230010", urlQrcode, "Emissor Fiscal DSBR Brasil - www.dsbrbrasil.com.br"); IDanfeHtml d1 = new DanfeNFCeHtml(TipoPapelNFCe.Mm80, cabecalho, corpo, rodape); var doc = d1.ObterDocHtml(); Utils.EscreverArquivo("D:\\", "NFce", doc.Html); }
/// <summary> /// Montar Rodape /// </summary> /// <param name="rodape"></param> /// <param name="corpo"></param> /// <returns></returns> private string MontarRodape(RodapeNFCe rodape, CorpoNFCe corpo) { string str1; var str2 = ""; switch (corpo.Status) { case Status.Autorizada: str1 = ""; break; case Status.Cancelada: str1 = "NOTA FISCAL CANCELADA"; break; case Status.NaoAuotorizada: str1 = "NOTA FISCAL DENEGADA"; break; case Status.EsperandoAutorizacao: str1 = "PRÉ-VISUALIZAÇÃO"; str2 = "SEM VALOR FISCAL"; break; case Status.Negada: str1 = "NOTA FISCAL DENEGADA"; break; case Status.Recusada: str1 = "SEM VALOR FISCAL"; break; default: throw new ArgumentOutOfRangeException(); } if (!corpo.Producao) { str1 = "HOMOLOGAÇÃO"; str2 = "SEM VALOR FISCAL"; } var list = new Dictionary <string, string>(); var msg = corpo.Status == Status.Autorizada ? "" : "<div class=\\\"content100 bold\\\" style=\\\"float: none; margin: auto; text - align: center; margin - top: 10px; \\\">EMITIDA EM CONTINGÊNCIA<br/>Pendente de Autorização</div>"; list.Add("#ContingencyMessage#", msg); var qrCode = MontarQrCode(rodape); list.Add("#QrCode#", qrCode); list.Add("#Protocol#", rodape.NumProt); list.Add("#Date#", corpo.DataEmissao.ToString("dd/MM/yyyy hh:mm:ss")); list.Add("#WaterMark#", str1); list.Add("#WithOutValue#", str2); list.Add("#Credit#", rodape.Creditos); return(LerTemplateEsubstituirTags(TemplateDanfeNFCe.Footer, list)); }
public DanfeNFCeHtml(TipoPapelNFCe tipoPapel, CabecalhoNFCe cabecalho, CorpoNFCe corpo, RodapeNFCe rodape) { TipoPapel = tipoPapel; Cabecalho = cabecalho; Corpo = corpo; Rodape = rodape; }
/// <summary> /// Montar QrCode /// </summary> /// <returns></returns> private string MontarQrCode(RodapeNFCe rodape, int pixelsPerModule = 25) { try { using (var qrCodeGenerator = new QRCodeGenerator()) { return("data:image/png;base64, " + new Base64QRCode(qrCodeGenerator.CreateQrCode(rodape.StrQrCode, QRCodeGenerator.ECCLevel.M)) .GetGraphic(pixelsPerModule)); } } catch (Exception ex) { throw new InvalidOperationException($"Não foi possível gerar o QrCode\nRazão:{ex.Message}"); } }