/// <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 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); }
public static Report GenerateDanfeFrEventoReport(nfeProc proc, procEventoNFe procEventoNFe, ConfiguracaoDanfeNfe configuracaoDanfeNfe, byte[] frx, string desenvolvedor) { //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/) Report relatorio = new Report(); relatorio.Load(new MemoryStream(frx)); 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); return(relatorio); }
public static Report GenerateDanfeFrNfeReport(nfeProc proc, ConfiguracaoDanfeNfe configuracaoDanfeNfe, byte[] frx, string desenvolvedor, string arquivoRelatorio) { //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/) Report relatorio = new Report(); relatorio.RegisterData(new[] { proc }, "NFe", 20); relatorio.GetDataSource("NFe").Enabled = true; if (string.IsNullOrEmpty(arquivoRelatorio)) { relatorio.Load(new MemoryStream(frx)); } else { relatorio.Load(arquivoRelatorio); } string mensagem = string.Empty; string resumoCanhoto = string.Empty; string contingenciaDescricao = string.Empty; string contingenciaValor = string.Empty; string 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("ExibeRetencoes", configuracaoDanfeNfe.ExibeRetencoes); relatorio.SetParameterValue("DecimaisValorUnitario", configuracaoDanfeNfe.DecimaisValorUnitario); relatorio.SetParameterValue("DecimaisQuantidadeItem", configuracaoDanfeNfe.DecimaisQuantidadeItem); relatorio.SetParameterValue("DataHoraImpressao", configuracaoDanfeNfe.DataHoraImpressao ?? DateTime.Now); return(relatorio); }
public ConfiguracaoApp() { ConfiguracaoDanfeNfce = new ConfiguracaoDanfeNfce(NfceDetalheVendaNormal.UmaLinha, NfceDetalheVendaContigencia.UmaLinha); ConfiguracaoDanfeNfe = new ConfiguracaoDanfeNfe(); }
public static Report GenerateDanfeFrEventoReport(nfeProc proc, procEventoNFe procEventoNFe, ConfiguracaoDanfeNfe configuracaoDanfeNfe, byte[] frx, string desenvolvedor, string arquivoRelatorio) { //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/) Report relatorio = new Report(); relatorio.Load(new MemoryStream(frx)); relatorio.RegisterData(new[] { proc }, "NFe", 20); relatorio.RegisterData(new[] { procEventoNFe }, "procEventoNFe", 20); relatorio.GetDataSource("NFe").Enabled = true; relatorio.GetDataSource("procEventoNFe").Enabled = true; if (!string.IsNullOrEmpty(arquivoRelatorio)) { relatorio.Load(arquivoRelatorio); } else if (frx != null && frx.Length > 0) { relatorio.Load(new MemoryStream(frx)); } else { throw new Exception("Erro em DanfeSharedHelper.GenerateDanfeFrNfeReport no Zeus.DFe. Relatório não encontrado, passe os parametros 'frx' com bytes ou 'arquivoRelatorio' com o caminho do arquivo"); } relatorio.SetParameterValue("desenvolvedor", desenvolvedor); return(relatorio); }
/// <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 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 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) { }
public ConfiguracaoConsole() { ConfiguracaoDanfeNfe = new ConfiguracaoDanfeNfe(); }