/// <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); }
/// <summary> /// Construtor da classe reponsá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 configuracaoDanfeNfe contendo as definições de impressão</param> public DanfeFrNfe(nfeProc proc, ConfiguracaoDanfeNfe configuracaoDanfeNfe) { #region Define as varíaveis 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; Relatorio.Load(new MemoryStream(Properties.Resources.NFe)); ((PictureObject)Relatorio.FindObject("poEmitLogo")).Image = configuracaoDanfeNfe.ObterLogo(); #endregion }
/// <summary> /// Construtor da classe reponsá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 configuracaoDanfeNfe contendo as definições de impressão</param> public DanfeFrNfe(nfeProc proc, ConfiguracaoDanfeNfe configuracaoDanfeNfe) { #region Define as varíaveis 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; Relatorio.Load(new MemoryStream(Properties.Resources.NFe)); ((PictureObject)Relatorio.FindObject("poEmitLogo")).Image = configuracaoDanfeNfe.ObterLogo(); #endregion }
/// <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 = "") { #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; Relatorio.Load(new MemoryStream(Properties.Resources.NFeRetrato)); Relatorio.SetParameterValue("DuasLinhas", configuracaoDanfeNfe.DuasLinhas); Relatorio.SetParameterValue("Cancelada", configuracaoDanfeNfe.DocumentoCancelado); Relatorio.SetParameterValue("desenvolvedor", desenvolvedor); ((PictureObject)Relatorio.FindObject("poEmitLogo")).Image = configuracaoDanfeNfe.ObterLogo(); #endregion }
/// <summary> /// Construtor da classe responsável pela impressão do DANFE da NFe em Fast Reports. /// Use esse construtor apenas para impressão em contingência, já que neste modo ainda não é possível obter o grupo protNFe /// </summary> /// <param name="nfe">Objeto do tipo <see cref="Classes.NFe"/></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(Classes.NFe nfe, ConfiguracaoDanfeNfe configuracaoDanfeNfe, string desenvolvedor) : this(new nfeProc() { NFe = nfe }, configuracaoDanfeNfe, desenvolvedor) { }
/// <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); }
/// <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); #endregion 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/) }
/// <summary> /// Construtor da classe responsável pela impressão do DANFE do evento da NFe, em Fast Reports /// </summary> /// <param name="proc">Objeto do tipo <see cref="nfeProc"/></param> /// <param name="procEventoNFe">Objeto do tipo <see cref="Classes.Servicos.Consulta.procEventoNFe"/></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 DanfeFrEvento(nfeProc proc, Classes.Servicos.Consulta.procEventoNFe procEventoNFe, ConfiguracaoDanfeNfe configuracaoDanfeNfe, string desenvolvedor = "") { #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.Load(new MemoryStream(Properties.Resources.NFeEvento)); Relatorio.RegisterData(new[] { proc }, "NFe", 20); Relatorio.RegisterData(new[] { procEventoNFe }, "procEventoNFe", 20); Relatorio.GetDataSource("NFe").Enabled = true; Relatorio.GetDataSource("procEventoNFe").Enabled = true; Relatorio.SetParameterValue("desenvolvedor", desenvolvedor); #endregion }
/// <summary> /// Construtor da classe reponsável pela impressão do DANFE da NFe em Fast Reports. /// Use esse construtor apenas para impressão em contigência, já que neste modo ainda não é possível obter o grupo protNFe /// </summary> /// <param name="nfe">Objeto do tipo NFe</param> /// <param name="configuracaoDanfeNfe">Objeto do tipo ConfiguracaoDanfeNfe contendo as definições de impressão</param> public DanfeFrNfe(Classes.NFe nfe, ConfiguracaoDanfeNfe configuracaoDanfeNfe) : this(new nfeProc() { NFe = nfe }, configuracaoDanfeNfe) { }
/// <summary> /// Construtor da classe responsável pela impressão do DANFE do evento da NFe, em Fast Reports /// </summary> /// <param name="proc">Objeto do tipo <see cref="nfeProc"/></param> /// <param name="procEventoNFe">Objeto do tipo <see cref="Classes.Servicos.Consulta.procEventoNFe"/></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 e arquivo frx contendo as definições do relatório personalizado</param> public DanfeFrEvento(nfeProc proc, Classes.Servicos.Consulta.procEventoNFe procEventoNFe, ConfiguracaoDanfeNfe configuracaoDanfeNfe, string desenvolvedor = "", string arquivoRelatorio = "") { byte[] frx = null; if (string.IsNullOrWhiteSpace(arquivoRelatorio)) { const string caminho = @"NFe\NFeEvento.frx"; frx = FrxFileHelper.TryGetFrxFile(caminho); } Relatorio = DanfeSharedHelper.GenerateDanfeFrEventoReport(proc, procEventoNFe, configuracaoDanfeNfe, null, desenvolvedor, arquivoRelatorio); }
/// <summary> /// Construtor da classe responsável pela impressão do DANFE do evento da NFe, em Fast Reports /// </summary> /// <param name="proc">Objeto do tipo <see cref="nfeProc"/></param> /// <param name="procEventoNFe">Objeto do tipo <see cref="Classes.Servicos.Consulta.procEventoNFe"/></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 DanfeFrEvento(nfeProc proc, Classes.Servicos.Consulta.procEventoNFe procEventoNFe, ConfiguracaoDanfeNfe configuracaoDanfeNfe, string desenvolvedor = "") { Relatorio = DanfeSharedHelper.GenerateDanfeFrEventoReport(proc, procEventoNFe, configuracaoDanfeNfe, Properties.Resources.NFeEvento, desenvolvedor); }
/// <summary> /// Construtor da classe reponsável pela impressão do DANFE da NFe em Fast Reports. /// Use esse construtor apenas para impressão em contigência, já que neste modo ainda não é possível obter o grupo protNFe /// </summary> /// <param name="nfe">Objeto do tipo NFe</param> /// <param name="configuracaoDanfeNfe">Objeto do tipo ConfiguracaoDanfeNfe contendo as definições de impressão</param> public DanfeFrNfe(Classes.NFe nfe, ConfiguracaoDanfeNfe configuracaoDanfeNfe) : this(new nfeProc() { NFe = nfe }, configuracaoDanfeNfe) { }