Ejemplo n.º 1
0
        /// <summary>
        /// Construtor da classe responsável pela impressão do DANFE Simplificada da NFe em Fast Reports
        /// </summary>
        /// <param name="proc">Objeto do tipo nfeProc</param>
        /// <param name="configuracaoDanfeNfe">Objeto do tipo <see cref="ConfiguracaoDanfeNfe"/> contendo as definições de impressão</param>
        /// <param name="desenvolvedor">Texto do desenvolvedor a ser informado no DANFE</param>
        /// <param name="arquivoRelatorio">Caminho do arquivo frx</param>
        public DanfeFrSimplificado(nfeProc proc, ConfiguracaoDanfeNfe configuracaoDanfeNfe, string desenvolvedor = "", string arquivoRelatorio = "")
        {
            byte[] frx = null;
            if (string.IsNullOrWhiteSpace(arquivoRelatorio))
            {
                const string caminho = @"NFe\NFeSimplificado.frx";
                frx = FrxFileHelper.TryGetFrxFile(caminho);
            }

            Relatorio = DanfeSharedHelper.GenerateDanfeFrNfeReport(proc, configuracaoDanfeNfe, frx, desenvolvedor, arquivoRelatorio);
        }
Ejemplo n.º 2
0
 /// <summary>
 /// Construtor da classe responsável pela impressão do DANFE da NFe em Fast Reports
 /// </summary>
 /// <param name="proc">Objeto do tipo nfeProc</param>
 /// <param name="configuracaoDanfeNfe">Objeto do tipo <see cref="ConfiguracaoDanfeNfe"/> contendo as definições de impressão</param>
 /// <param name="desenvolvedor">Texto do desenvolvedor a ser informado no DANFE</param>
 /// <param name="arquivoRelatorio">Caminho do arquivo frx</param>
 public DanfeFrNfe(nfeProc proc, ConfiguracaoDanfeNfe configuracaoDanfeNfe, string desenvolvedor = "", string arquivoRelatorio = "")
 {
     byte[] retrato = null;
     if (string.IsNullOrWhiteSpace(arquivoRelatorio))
     {
         try
         {
             retrato = Properties.Resources.NFeRetrato;
         }
         catch (System.Exception ex)
         {
             throw new System.Exception("Não foi possivel o carregamento do Resource NFeRetrato, utilize o parametro arquivoRelatorio e passe o caminho manualmente.", ex);
         }
     }
     this.Relatorio = DanfeSharedHelper.GenerateDanfeFrNfeReport(proc, configuracaoDanfeNfe, retrato, desenvolvedor, arquivoRelatorio);
 }
Ejemplo n.º 3
0
 /// <summary>
 /// Construtor da classe responsável pela impressão do DANFE da NFe em Fast Reports
 /// </summary>
 /// <param name="proc">Objeto do tipo nfeProc</param>
 /// <param name="configuracaoDanfeNfe">Objeto do tipo <see cref="ConfiguracaoDanfeNfe"/> contendo as definições de impressão</param>
 /// <param name="desenvolvedor">Texto do desenvolvedor a ser informado no DANFE</param>
 public DanfeFrNfe(nfeProc proc, ConfiguracaoDanfeNfe configuracaoDanfeNfe, string desenvolvedor = "", string arquivoRelatorio = "")
 {
     Relatorio = DanfeSharedHelper.GenerateDanfeFrNfeReport(proc, configuracaoDanfeNfe, Properties.Resources.NFeRetrato, desenvolvedor, arquivoRelatorio);
 }
Ejemplo n.º 4
0
        /// <summary>
        /// Construtor da classe responsável pela impressão do DANFE da NFe em Fast Reports
        /// </summary>
        /// <param name="proc">Objeto do tipo nfeProc</param>
        /// <param name="configuracaoDanfeNfe">Objeto do tipo <see cref="ConfiguracaoDanfeNfe"/> contendo as definições de impressão</param>
        /// <param name="desenvolvedor">Texto do desenvolvedor a ser informado no DANFE</param>
        public DanfeFrNfe(nfeProc proc, ConfiguracaoDanfeNfe configuracaoDanfeNfe, string desenvolvedor = "", string arquivoRelatorio = "")
        {
            #region Define as variáveis que serão usadas no relatório (dúvidas a respeito do fast reports consulte a documentação em https://www.fast-report.com/pt/product/fast-report-net/documentation/)

            Relatorio = new Report();
            Relatorio.RegisterData(new[] { proc }, "NFe", 20);
            Relatorio.GetDataSource("NFe").Enabled = true;

            if (string.IsNullOrEmpty(arquivoRelatorio))
            {
                Relatorio.Load(new MemoryStream(Resources.NFeRetrato));
            }
            else
            {
                Relatorio.Load(arquivoRelatorio);
            }

            var mensagem              = string.Empty;
            var resumoCanhoto         = string.Empty;
            var contingenciaDescricao = string.Empty;
            var contingenciaValor     = string.Empty;
            var consultaAutenticidade = "Consulta de autenticidade no portal nacional da NF-e" + Environment.NewLine +
                                        "www.nfe.fazenda.gov.br/portal ou no site da Sefaz autorizadora";

            if (configuracaoDanfeNfe.ExibirResumoCanhoto)
            {
                resumoCanhoto = string.IsNullOrEmpty(configuracaoDanfeNfe.ResumoCanhoto) ?
                                string.Format("Emissão: {0: dd/MM/yyyy} Dest/Reme: {1} Valor Total: {2:C}", proc.NFe.infNFe.ide.dhEmi,
                                              proc.NFe.infNFe.dest.xNome, proc.NFe.infNFe.total.ICMSTot.vNF) :
                                configuracaoDanfeNfe.ResumoCanhoto;
            }

            if (proc.NFe.infNFe.ide.tpAmb == TipoAmbiente.Homologacao)
            {
                if (proc.NFe.infNFe.ide.tpEmis == TipoEmissao.teSCAN ||
                    proc.NFe.infNFe.ide.tpEmis == TipoEmissao.teEPEC ||
                    proc.NFe.infNFe.ide.tpEmis == TipoEmissao.teFSDA ||
                    proc.NFe.infNFe.ide.tpEmis == TipoEmissao.teFSIA)
                {
                    if (proc.protNFe != null && proc.protNFe.infProt != null &&
                        (proc.protNFe.infProt.cStat == 101 ||
                         proc.protNFe.infProt.cStat == 135 ||
                         proc.protNFe.infProt.cStat == 151 ||
                         proc.protNFe.infProt.cStat == 155))
                    {
                        mensagem = "NFe sem Valor Fiscal - HOMOLOGAÇÃO" + Environment.NewLine +
                                   "NFe em Contingência - CANCELADA";
                    }
                    else
                    {
                        mensagem = "NFe sem Valor Fiscal - HOMOLOGAÇÃO" + Environment.NewLine +
                                   "NFe em Contingência";
                    }
                }
                else
                {
                    mensagem = "NFe sem Valor Fiscal - HOMOLOGAÇÃO";
                }
            }
            else
            {
                if (configuracaoDanfeNfe.DocumentoCancelado ||
                    (proc.protNFe != null && proc.protNFe.infProt != null &&
                     !string.IsNullOrEmpty(proc.protNFe.infProt.nProt) &&
                     (proc.protNFe.infProt.cStat == 101 ||
                      proc.protNFe.infProt.cStat == 135 ||
                      proc.protNFe.infProt.cStat == 151 ||
                      proc.protNFe.infProt.cStat == 155)))
                {
                    mensagem = "NFe Cancelada";
                }
                else if (proc.protNFe != null && proc.protNFe.infProt != null &&
                         (proc.protNFe.infProt.cStat == 110 ||
                          proc.protNFe.infProt.cStat == 301 ||
                          proc.protNFe.infProt.cStat == 302 ||
                          proc.protNFe.infProt.cStat == 303))
                {
                    mensagem = "NFe denegada pelo Fisco";
                }
                else if (proc.protNFe != null && proc.protNFe.infProt != null &&
                         string.IsNullOrEmpty(proc.protNFe.infProt.nProt))
                {
                    mensagem = "NFe sem Autorização de Uso da SEFAZ";
                }
            }

            switch (proc.NFe.infNFe.ide.tpEmis)
            {
            case TipoEmissao.teNormal:
            case TipoEmissao.teSCAN:
            case TipoEmissao.teSVCAN:
            case TipoEmissao.teSVCRS:
                contingenciaDescricao = "PROTOCOLO DE AUTORIZAÇÃO DE USO";
                contingenciaValor     = ((proc.protNFe == null || proc.protNFe.infProt == null || string.IsNullOrEmpty(proc.protNFe.infProt.nProt)) ? "NFe sem Autorização de Uso da SEFAZ" : string.Format("{0} - {1:dd/MM/yyyy HH:mm:ss}", proc.protNFe.infProt.nProt, proc.protNFe.infProt.dhRecbto));
                if (configuracaoDanfeNfe.DocumentoCancelado || (proc.protNFe != null && proc.protNFe.infProt != null && (proc.protNFe.infProt.cStat == 101 || proc.protNFe.infProt.cStat == 151 || proc.protNFe.infProt.cStat == 155)))
                {
                    contingenciaDescricao = "PROTOCOLO DE HOMOLOGAÇÃO DO CANCELAMENTO";
                }
                else if (proc.protNFe != null && proc.protNFe.infProt != null && (proc.protNFe.infProt.cStat == 110 || proc.protNFe.infProt.cStat == 301 || proc.protNFe.infProt.cStat == 302 || proc.protNFe.infProt.cStat == 303))
                {
                    contingenciaDescricao = "PROTOCOLO DE DENEGAÇÃO DE USO";
                }
                break;

            case TipoEmissao.teFSIA:
            case TipoEmissao.teEPEC:
            case TipoEmissao.teFSDA:
                contingenciaDescricao = "DADOS DA NF-E";
                contingenciaValor     = Regex.Replace(configuracaoDanfeNfe.ChaveContingencia, ".{4}", "$0 ");
                consultaAutenticidade = string.Empty;
                break;

            default:
                contingenciaValor = string.Format("{0} - {1:dd/MM/yyyy HH:mm:ss}", proc.protNFe.infProt.nProt, proc.protNFe.infProt.dhRecbto);
                break;
            }

            Relatorio.SetParameterValue("ResumoCanhoto", resumoCanhoto);
            Relatorio.SetParameterValue("Mensagem", mensagem);
            Relatorio.SetParameterValue("ConsultaAutenticidade", consultaAutenticidade);
            Relatorio.SetParameterValue("ContingenciaDescricao", contingenciaDescricao);
            Relatorio.SetParameterValue("ContingenciaValor", contingenciaValor);
            Relatorio.SetParameterValue("ContingenciaID", configuracaoDanfeNfe.ChaveContingencia);
            Relatorio.SetParameterValue("DuasLinhas", configuracaoDanfeNfe.DuasLinhas);
            Relatorio.SetParameterValue("Desenvolvedor", desenvolvedor);
            Relatorio.SetParameterValue("QuebrarLinhasObservacao", configuracaoDanfeNfe.QuebrarLinhasObservacao);
            Relatorio.SetParameterValue("ImprimirISSQN", configuracaoDanfeNfe.ImprimirISSQN);
            Relatorio.SetParameterValue("ImprimirDescPorc", configuracaoDanfeNfe.ImprimirDescPorc);
            Relatorio.SetParameterValue("ImprimirTotalLiquido", configuracaoDanfeNfe.ImprimirTotalLiquido);
            Relatorio.SetParameterValue("ImprimirUnidQtdeValor", configuracaoDanfeNfe.ImprimirUnidQtdeValor);
            Relatorio.SetParameterValue("ExibeCampoFatura", configuracaoDanfeNfe.ExibeCampoFatura);
            Relatorio.SetParameterValue("Logo", configuracaoDanfeNfe.Logomarca);
            Relatorio.SetParameterValue("ExibirTotalTributos", configuracaoDanfeNfe.ExibirTotalTributos);
            Relatorio.SetParameterValue("DecimaisValorUnitario", configuracaoDanfeNfe.DecimaisValorUnitario);
            Relatorio.SetParameterValue("DecimaisQuantidadeItem", configuracaoDanfeNfe.DecimaisQuantidadeItem);
            Relatorio.SetParameterValue("ExibirEmailEmitente", configuracaoDanfeNfe.ExibirEmailEmitente);
            Relatorio.SetParameterValue("EmailEmitente", configuracaoDanfeNfe.EmailEmitente);
            Relatorio = DanfeSharedHelper.GenerateDanfeFrNfeReport(proc, configuracaoDanfeNfe, Properties.Resources.NFeRetrato, desenvolvedor, arquivoRelatorio);

            #endregion
        }