Example #1
0
        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);
        }
Example #2
0
        /// <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());
        }
Example #3
0
        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));
        }
Example #4
0
        /// <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));
        }
Example #5
0
        public DanfeNFCeHtml(TipoPapelNFCe tipoPapel, CabecalhoNFCe cabecalho, CorpoNFCe corpo, RodapeNFCe rodape)

        {
            TipoPapel = tipoPapel;
            Cabecalho = cabecalho;
            Corpo     = corpo;
            Rodape    = rodape;
        }
Example #6
0
        /// <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));
        }
Example #7
0
        /// <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));
        }
Example #8
0
        /// <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));
        }
Example #9
0
        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));
        }
Example #10
0
        /// <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));
        }