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 pagamentos /// </summary> /// <param name="entidade"></param> /// <param name="corpo"></param> /// <returns></returns> private string MontarProdutos(ICollection <ProdutoNFCe> entidade, CorpoNFCe corpo) { var stringBuilder = new StringBuilder(); foreach (var item in entidade) { var dic = new Dictionary <string, string> { { "#Code#", item.Codigo }, { "#Description#", corpo.Producao ? item.Descricao?.Trim() : "NOTA FISCAL EMITIDA EM AMBIENTE DE HOMOLOGACAO - SEM VALOR FISCAL" }, { "#Unit#", item.Unidade?.ToUpper() }, { "#Quantity#", item.Quantidade.FormatarNumeroDanfe() }, { "#UnityValue#", item.ValorUnitario.FormatarNumeroDanfe() }, { "#Amount#", item.ValorTotal.FormatarNumeroDanfe() } }; stringBuilder.Append(LerTemplateEsubstituirTags(TemplateDanfeNFCe.Products, dic)); } return(stringBuilder.ToString()); }
private string MontarCorpo(CorpoNFCe corpo) { var list = new Dictionary <string, string>(); list.Add("#EmissionType#", corpo.EmitidaEmContigencia ? "EMITIDA EM CONTINGÊNCIA<br/>Pendente de Autorização" : "EMISSÃO NORMAL"); var produtos = MontarProdutos(Corpo.Produtos, corpo); list.Add("#Products#", produtos); var pagamento = MontarPagamentos(corpo); list.Add("#TotalsProducts#", pagamento); var impostos = MontarImpostos(corpo); list.Add("#Taxes#", impostos); var infAdd = MontarInfAdicionais(corpo); list.Add("#AdditionalInformations#", infAdd); var data = MontarDadosDocumento(corpo); list.Add("#Data#", data); var destinatario = MontarDestinatario(corpo); list.Add("#Recipient#", destinatario); return(LerTemplateEsubstituirTags(TemplateDanfeNFCe.Body, list)); }
/// <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 informações adicionais /// </summary> /// <param name="corpo"></param> /// <returns></returns> private string MontarInfAdicionais(CorpoNFCe corpo) { var list = new Dictionary <string, string>(); var str = Regex .Replace( Regex.Replace(corpo.InfAdicionais.Descricao.Replace("\r\n", string.Empty), "Trib aprox: (.*?) IBPT", string.Empty), "Val Aprox Tributos: (.*?) IBPT", string.Empty).Replace("|", "<br/>"); list.Add("#Informations#", str); return(LerTemplateEsubstituirTags(TemplateDanfeNFCe.AdditionalInformation, list)); }
/// <summary> /// Montar dados do documento NFCe /// </summary> /// <param name="corpo"></param> /// <returns></returns> private string MontarDadosDocumento(CorpoNFCe corpo) { var list = new Dictionary <string, string>(); list.Add("#DocumentNumber#", corpo.NumeroDocumento); list.Add("#Serie#", corpo.Serie); list.Add("#Emission#", corpo.DataEmissao.ToString("dd/MM/yyyy hh:mm:ss")); list.Add("#URL#", corpo.UrlConsulta); list.Add("#NFeID#", corpo.Chave); return(LerTemplateEsubstituirTags(TemplateDanfeNFCe.Data, list)); }
/// <summary> /// Montar impostos /// </summary> /// <param name="corpo"></param> /// <returns></returns> private string MontarImpostos(CorpoNFCe corpo) { var list = new List <string>(); list.Add($"{corpo.Imposto.ValorImpFederal:N2} Federal"); list.Add($"{corpo.Imposto.ValorImpEstadual:N2} Estadual"); list.Add($"{corpo.Imposto.ValorImpMunicipal:N2} Municipal"); var str = string.Join(", ", list); var list2 = new Dictionary <string, string>(); list2.Add("#Taxes#", str); return(LerTemplateEsubstituirTags(TemplateDanfeNFCe.Taxes, list2)); }
private string MontarPagamentos(CorpoNFCe corpo) { var list = new Dictionary <string, string>(); list.Add("#Quantity#", corpo.Produtos.Count.ToString()); list.Add("#TotalValue#", corpo.Pagamento.ValorTotal.FormatarNumeroDanfe()); list.Add("#TotalDiscount#", corpo.Pagamento.ValorTotDesconto.FormatarNumeroDanfe()); list.Add("#TotalDue#", corpo.Pagamento.ValorTotDevido.FormatarNumeroDanfe()); list.Add("#ValorTroco#", corpo.Pagamento.Troco.FormatarNumeroDanfe()); list.Add("#StyleTroco#", "style=\"display: none;\""); var formasPag = MontarFormasPagamento(corpo.Pagamento.FormasPagamentos); list.Add("#Payments#", formasPag); return(LerTemplateEsubstituirTags(TemplateDanfeNFCe.Total, list)); }
/// <summary> /// Montar dados do destinatário /// </summary> /// <param name="corpo"></param> /// <returns></returns> private string MontarDestinatario(CorpoNFCe corpo) { var list = new Dictionary <string, string>(); var nome = string.IsNullOrWhiteSpace(corpo.Destinatario.NomeConsumidor) ? "CONSUMIDOR NÃO IDENTIFICADO" : corpo.Destinatario.NomeConsumidor?.ToUpper(); list.Add("#Recipient#", nome); var doc = string.IsNullOrWhiteSpace(corpo.Destinatario.Doc)?"":$"<span>CNPJ/CPF - {corpo.Destinatario.Doc}</span>"; list.Add("#Data#", doc); list.Add("#Address#", corpo.Destinatario.Endereco); return(LerTemplateEsubstituirTags(TemplateDanfeNFCe.Recipient, list)); }