Exemplo n.º 1
0
 public DanfeNativoNfce(nfeProc proc, ConfiguracaoDanfeNfce configuracaoDanfeNfce, string cIdToken, string csc)
 {
     _proc = proc;
     _configuracaoDanfeNfce = configuracaoDanfeNfce;
     _cIdToken = cIdToken;
     _csc      = csc;
 }
        /// <summary>
        /// Responsavel por imprimir NFCe apos autorização direto na impressora padrão ou definida na configuração
        /// </summary>
        private void ImprimirNFCe(string xmlNFce, ConfiguracaoDanfeNfce configuracaoDanfe, string cIdToken, string csc, string nomedaimpressora = null)
        {
            try
            {
                nfeProc proc    = null;
                NFeZeus nfe     = null;
                string  arquivo = string.Empty;

                try
                {
                    proc    = new nfeProc().CarregarDeXmlString(xmlNFce);
                    arquivo = proc.ObterXmlString();
                }
                catch (Exception)
                {
                    nfe     = new NFe.Classes.NFe().CarregarDeArquivoXml(xmlNFce);
                    arquivo = nfe.ObterXmlString();
                }

                DanfeNativoNfce impr = new DanfeNativoNfce(arquivo,
                                                           configuracaoDanfe, cIdToken, csc,
                                                           0 /*troco*//*, "Arial Black"*/);

                impr.Imprimir();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
Exemplo n.º 3
0
        public GeradorDeNfce()
        {
            CfgServico        = ConfiguracaoServico.Instancia;
            CfgServico.tpAmb  = TipoAmbiente.Homologacao;
            CfgServico.tpEmis = TipoEmissao.teNormal;
            CfgServico.ProtocoloDeSeguranca = ServicePointManager.SecurityProtocol;

            var emitente = new emit
            {
                CNPJ  = "31808064000147",
                IE    = "9079550016",
                xFant = "Joao Victor Spinoza",
                xNome = "Joao Victor Spinoza"
            };

            var configuracaoDeEmail = new ConfiguracaoEmail("*****@*****.**", "senha", "Envio de NFE", "Teset123", "smtp.dominio.com", 587, true, true);

            var configuracaoDanfeNfe = new ConfiguracaoDanfeNfce(NfceDetalheVendaNormal.UmaLinha, NfceDetalheVendaContigencia.UmaLinha);

            _configuracoes = new Configuracao(
                GetEnderecoEmitente(),
                CfgServico,
                emitente,
                configuracaoDeEmail,
                configuracaoDanfeNfe
                );
        }
        public GeradorDeNfce(ConfiguracaoServico cfgServico, X509Certificate2 cert)
        {
            _cfgServico = cfgServico;


            var emitente = new emit
            {
                CNPJ = "31808064000147",
                IE   = "9079550016",
                // ambiente produção
                //xFant = "Joao Victor Spinoza",
                //xNome = "Joao Victor Spinoza",
                xNome = nfeEmitadaHomolog,
                xFant = nfeEmitadaHomolog,
                CRT   = CRT.SimplesNacional
            };

            var configuracaoDeEmail = new ConfiguracaoEmail("*****@*****.**", "senha", "Envio de NFE", "Teset123", "smtp.dominio.com", 587, true, true);

            var configuracaoDanfeNfe =
                new ConfiguracaoDanfeNfce(NfceDetalheVendaNormal.UmaLinha, NfceDetalheVendaContigencia.UmaLinha, versaoQrCode: VersaoQrCode.QrCodeVersao2);

            _configuracoes = new Configuracao(
                GetEnderecoEmitente(),
                _cfgServico,
                emitente,
                configuracaoDeEmail,
                configuracaoDanfeNfe

                );

            _cert = cert;
            _configuracoes.CfgServico.Certificado.Serial = _cert.SerialNumber;
        }
Exemplo n.º 5
0
 public Configuracao(enderEmit enderecoEmitente, ConfiguracaoServico configuracaoServico, emit emitente,
                     ConfiguracaoEmail configuracaoEmail, ConfiguracaoDanfeNfce configuracaoDanfeNfce)
 {
     EnderecoEmitente      = enderecoEmitente;
     CfgServico            = configuracaoServico;
     Emitente              = emitente;
     ConfiguracaoEmail     = configuracaoEmail;
     ConfiguracaoDanfeNfce = configuracaoDanfeNfce;
 }
Exemplo n.º 6
0
        /// <summary>
        /// Imprime em um JPEG o NFC-e relacionado a um xml.
        /// </summary>
        /// <param name="pathXmlNFCe">Path do NFC-e a imprimir</param>
        /// <param name="pathJpeg">Path onde gerar o jpeg</param>
        public void ImprimirNFCe(string pathXmlNFCe, string pathJpeg, string idToken, string csc)
        {
            var nfe     = new Classes.NFe().CarregarDeArquivoXml(pathXmlNFCe);
            var arquivo = nfe.ObterXmlString();

            var             configuracaoDanfeNFCe = new ConfiguracaoDanfeNfce(Danfe.Base.NfceDetalheVendaNormal.UmaLinha, Danfe.Base.NfceDetalheVendaContigencia.UmaLinha);
            DanfeNativoNfce impr = new DanfeNativoNfce(arquivo, configuracaoDanfeNFCe, idToken, csc);

            impr.GerarJPEG(pathJpeg);
        }
Exemplo n.º 7
0
        public static Report GenerateDanfeNfceReport(nfeProc proc, ConfiguracaoDanfeNfce configuracaoDanfeNfce, string cIdToken, string csc, byte[] frx, string arquivoRelatorio, string textoRodape = "")
        {
            //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 }, "NFCe", 20);
            relatorio.GetDataSource("NFCe").Enabled = true;
            if (string.IsNullOrEmpty(arquivoRelatorio))
            {
                relatorio.Load(new MemoryStream(frx));
            }
            else
            {
                relatorio.Load(arquivoRelatorio);
            }

            relatorio.SetParameterValue("NfceDetalheVendaNormal", configuracaoDanfeNfce.DetalheVendaNormal);
            relatorio.SetParameterValue("NfceDetalheVendaContigencia", configuracaoDanfeNfce.DetalheVendaContigencia);
            relatorio.SetParameterValue("NfceImprimeDescontoItem", configuracaoDanfeNfce.ImprimeDescontoItem);
            relatorio.SetParameterValue("NfceModoImpressao", configuracaoDanfeNfce.ModoImpressao);
            relatorio.SetParameterValue("NfceCancelado", configuracaoDanfeNfce.DocumentoCancelado);
            relatorio.SetParameterValue("NfceLayoutQrCode", configuracaoDanfeNfce.NfceLayoutQrCode);
            relatorio.SetParameterValue("TextoRodape", textoRodape);
            ((ReportPage)relatorio.FindObject("PgNfce")).LeftMargin  = configuracaoDanfeNfce.MargemEsquerda;
            ((ReportPage)relatorio.FindObject("PgNfce")).RightMargin = configuracaoDanfeNfce.MargemDireita;

            //alteracao necessaria para .netstandard, o código abaixo utiliza um método onde não é compativel para .netstandard:
            //de : //((PictureObject)relatorio.FindObject("poEmitLogo")).Image = configuracaoDanfeNfce.ObterLogo();
            //para:
#if Standard
            ((PictureObject)relatorio.FindObject("poEmitLogo")).SetImageData(configuracaoDanfeNfce.Logomarca);
#else
            ((PictureObject)relatorio.FindObject("poEmitLogo")).Image = configuracaoDanfeNfce.ObterLogo();
#endif

            ((TextObject)relatorio.FindObject("txtUrl")).Text       = string.IsNullOrEmpty(proc.NFe.infNFeSupl.urlChave) ? proc.NFe.infNFeSupl.ObterUrlConsulta(proc.NFe, configuracaoDanfeNfce.VersaoQrCode) : proc.NFe.infNFeSupl.urlChave;
            ((BarcodeObject)relatorio.FindObject("bcoQrCode")).Text = proc.NFe.infNFeSupl == null?proc.NFe.infNFeSupl.ObterUrlQrCode(proc.NFe, configuracaoDanfeNfce.VersaoQrCode, cIdToken, csc) : proc.NFe.infNFeSupl.qrCode;

            ((BarcodeObject)relatorio.FindObject("bcoQrCodeLateral")).Text = proc.NFe.infNFeSupl == null?proc.NFe.infNFeSupl.ObterUrlQrCode(proc.NFe, configuracaoDanfeNfce.VersaoQrCode, cIdToken, csc) : proc.NFe.infNFeSupl.qrCode;

            //Segundo o Manual de Padrões Técnicos do DANFE - NFC - e e QR Code, versão 3.2, página 9, nos casos de emissão em contingência deve ser impresso uma segunda cópia como via do estabelecimento
            if (configuracaoDanfeNfce.SegundaViaContingencia)
            {
#if Standard
                throw new Exception("configuracaoDanfeNfce.SegundaViaContingencia não suportado em .net standard, apenas em .net framework");
#else
                relatorio.PrintSettings.Copies = (proc.NFe.infNFe.ide.tpEmis == TipoEmissao.teNormal | (proc.protNFe != null && proc.protNFe.infProt != null && NfeSituacao.Autorizada(proc.protNFe.infProt.cStat))
                                                  /*Se a NFe for autorizada, mesmo que seja em contingência, imprime somente uma via*/) ? 1 : 2;
#endif
            }

            return(relatorio);
        }
Exemplo n.º 8
0
 public ConfiguracaoApp()
 {
     CfgServico        = ConfiguracaoServico.Instancia;
     CfgServico.tpAmb  = TipoAmbiente.taHomologacao;
     CfgServico.tpEmis = TipoEmissao.teNormal;
     Emitente          = new emit {
         CPF = "", CRT = CRT.SimplesNacional
     };
     EnderecoEmitente      = new enderEmit();
     ConfiguracaoDanfeNfce = new ConfiguracaoDanfeNfce(NfceDetalheVendaNormal.UmaLinha, NfceDetalheVendaContigencia.UmaLinha, "", "");
 }
Exemplo n.º 9
0
        /// <summary>
        /// Construtor da classe responsável pela impressão do DANFE da NFCe em Fast Reports
        /// </summary>
        /// <param name="proc">Objeto do tipo nfeProc</param>
        /// <param name="configuracaoDanfeNfce">Objeto do tipo ConfiguracaoDanfeNfce contendo as definições de impressão</param>
        /// <param name="cIdToken">Identificador do CSC – Código de Segurança do Contribuinte no Banco de Dados da SEFAZ</param>
        /// <param name="csc">Código de Segurança do Contribuinte(antigo Token)</param>
        /// <param name="arquivoRelatorio">Caminho e arquivo frx contendo as definições do relatório personalizado</param>
        /// <param name="textoRodape">Texto para ser impresso no final do documento</param>
        public DanfeFrNfce(nfeProc proc, ConfiguracaoDanfeNfce configuracaoDanfeNfce, string cIdToken, string csc, string arquivoRelatorio = "", string textoRodape = "")
        {
            byte[] frx = null;
            if (string.IsNullOrWhiteSpace(arquivoRelatorio))
            {
                const string caminho = @"NFCe\NFCe.frx";
                frx = FrxFileHelper.TryGetFrxFile(caminho);
            }

            Relatorio = DanfeSharedHelper.GenerateDanfeNfceReport(proc, configuracaoDanfeNfce, cIdToken, csc, frx, arquivoRelatorio, textoRodape);
        }
Exemplo n.º 10
0
        private void Inicializa(string xml, ConfiguracaoDanfeNfce configuracaoDanfe, string cIdToken, string csc, decimal troco, decimal totalPago, string font = null)
        {
            _cIdToken  = cIdToken;
            _csc       = csc;
            _troco     = troco;
            _totalPago = totalPago;
            AdicionarTexto.FontPadrao = configuracaoDanfe.CarregarFontePadraoNfceNativa(font);
            _logo = configuracaoDanfe.ObterLogo();

            CarregarXml(xml);
        }
Exemplo n.º 11
0
 public ConfiguracaoApp()
 {
     CfgServico        = ConfiguracaoServico.Instancia;
     CfgServico.tpAmb  = TipoAmbiente.taHomologacao;
     CfgServico.tpEmis = TipoEmissao.teNormal;
     Emitente          = new emit {
         CPF = "", CRT = CRT.SimplesNacional
     };
     EnderecoEmitente      = new enderEmit();
     ConfiguracaoDanfeNfce = new ConfiguracaoDanfeNfce(NfceDetalheVendaNormal.UmaLinha, NfceDetalheVendaContigencia.UmaLinha, "", "");
     ConfiguracaoEmail     = new ConfiguracaoEmail("*****@*****.**", "senha", "Envio de NFE", Resources.MensagemHtml, "smtp.dominio.com", 587, true, true);
 }
Exemplo n.º 12
0
 public ConfiguracaoApp()
 {
     CfgServico        = ConfiguracaoServico.Instancia;
     CfgServico.tpAmb  = TipoAmbiente.Homologacao;
     CfgServico.tpEmis = TipoEmissao.teNormal;
     CfgServico.ProtocoloDeSeguranca = ServicePointManager.SecurityProtocol;
     Emitente = new emit {
         CPF = "", CRT = CRT.SimplesNacional
     };
     EnderecoEmitente      = new enderEmit();
     ConfiguracaoEmail     = new ConfiguracaoEmail("*****@*****.**", "senha", "Envio de NFE", Resources.MensagemHtml, "smtp.dominio.com", 587, true, true);
     ConfiguracaoCsc       = new ConfiguracaoCsc("000001", "");
     ConfiguracaoDanfeNfce = new ConfiguracaoDanfeNfce(NfceDetalheVendaNormal.UmaLinha, NfceDetalheVendaContigencia.UmaLinha, documentoCancelado: true);
 }
Exemplo n.º 13
0
        /// <summary>
        /// Construtor da classe reponsável pela impressão do DANFE da NFCe em Fast Reports
        /// </summary>
        /// <param name="proc">Objeto do tipo nfeProc</param>
        /// <param name="configuracaoDanfeNfce">Objeto do tipo ConfiguracaoDanfeNfce contendo as definições de impressão</param>
        public DanfeFrNfce(nfeProc proc, ConfiguracaoDanfeNfce configuracaoDanfeNfce)
        {
            #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 }, "NFCe", 20);
            _relatorio.GetDataSource("NFCe").Enabled = true;
            _relatorio.Load(new MemoryStream(Properties.Resources.NFCe));
            _relatorio.SetParameterValue("NfceDetalheVendaNormal", configuracaoDanfeNfce.DetalheVendaNormal);
            _relatorio.SetParameterValue("NfceDetalheVendaContigencia", configuracaoDanfeNfce.DetalheVendaContigencia);
            ((PictureObject) _relatorio.FindObject("poEmitLogo")).Image = configuracaoDanfeNfce.ObterLogo();
            ((TextObject)_relatorio.FindObject("txtUrl")).Text = EnderecadorDanfeNfce.ObterUrl(proc.NFe.infNFe.ide.tpAmb, proc.NFe.infNFe.ide.cUF, TipoUrlDanfeNfce.UrlConsulta);
            ((BarcodeObject)_relatorio.FindObject("bcoQrCode")).Text = EnderecadorDanfeNfce.ObterUrlQrCode(proc, configuracaoDanfeNfce);

            //Segundo o Manual de Padrões Padrões Técnicos do DANFE - NFC - e e QR Code, versão 3.2, página 9, nos casos de emissão em contigência deve ser impresso uma segunda cópia como via do estabelecimento
            _relatorio.PrintSettings.Copies = proc.NFe.infNFe.ide.tpEmis == TipoEmissao.teNormal ? 1 : 2;

            #endregion
        }
Exemplo n.º 14
0
        /// <summary>
        /// Construtor da classe reponsável pela impressão do DANFE da NFCe em Fast Reports
        /// </summary>
        /// <param name="proc">Objeto do tipo nfeProc</param>
        /// <param name="configuracaoDanfeNfce">Objeto do tipo ConfiguracaoDanfeNfce contendo as definições de impressão</param>
        public DanfeFrNfce(nfeProc proc, ConfiguracaoDanfeNfce configuracaoDanfeNfce)
        {
            #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 }, "NFCe", 20);
            _relatorio.GetDataSource("NFCe").Enabled = true;
            _relatorio.Load(new MemoryStream(Properties.Resources.NFCe));
            _relatorio.SetParameterValue("NfceDetalheVendaNormal", configuracaoDanfeNfce.DetalheVendaNormal);
            _relatorio.SetParameterValue("NfceDetalheVendaContigencia", configuracaoDanfeNfce.DetalheVendaContigencia);
            ((PictureObject)_relatorio.FindObject("poEmitLogo")).Image = configuracaoDanfeNfce.ObterLogo();
            ((TextObject)_relatorio.FindObject("txtUrl")).Text         = EnderecadorDanfeNfce.ObterUrl(proc.NFe.infNFe.ide.tpAmb, proc.NFe.infNFe.ide.cUF, TipoUrlDanfeNfce.UrlConsulta);
            ((BarcodeObject)_relatorio.FindObject("bcoQrCode")).Text   = proc.NFe.infNFeSupl == null?EnderecadorDanfeNfce.ObterUrlQrCode(proc.NFe, configuracaoDanfeNfce) : proc.NFe.infNFeSupl.qrCode;

            //Segundo o Manual de Padrões Padrões Técnicos do DANFE - NFC - e e QR Code, versão 3.2, página 9, nos casos de emissão em contigência deve ser impresso uma segunda cópia como via do estabelecimento
            _relatorio.PrintSettings.Copies = proc.NFe.infNFe.ide.tpEmis == TipoEmissao.teNormal ? 1 : 2;

            #endregion
        }
        public ConfiguracaoApp()
        {
            CfgServico = ConfiguracaoServico.Instancia;
            //CfgServico.tpAmb = TipoAmbiente.Homologacao;
            //CfgServico.tpEmis = TipoEmissao.teNormal;
            CfgServico.ProtocoloDeSeguranca = ServicePointManager.SecurityProtocol;
            CfgServico.SalvarXmlServicos    = true;
            CfgServico.DiretorioSchemas     = @"Schemas";
            CfgServico.DefineVersaoServicosAutomaticamente = true;
            CfgServico.VersaoLayout = VersaoServico.ve400;
            CfgServico.TimeOut      = 100000;



            //Emitente = new emit {CPF = "", CRT = CRT.SimplesNacional};
            //EnderecoEmitente = new enderEmit();
            //ConfiguracaoEmail = new ConfiguracaoEmail("*****@*****.**", "senha", "Envio de NFE", Resources.MensagemHtml, "smtp.dominio.com", 587, true, true);
            ConfiguracaoCsc       = new ConfiguracaoCsc("000001", "");
            ConfiguracaoDanfeNfce = new ConfiguracaoDanfeNfce(NfceDetalheVendaNormal.UmaLinha, NfceDetalheVendaContigencia.UmaLinha);
        }
        /// <summary>
        /// Responsavel por visualizar NFCe apos autorização. E possivel imprimir apos visualização
        /// </summary>
        private void VisualizarNFCe(string xmlNFce, ConfiguracaoDanfeNfce configuracaoDanfe, string cIdToken, string csc)
        {
            try
            {
                #region Carrega um XML com nfeProc para a variável

                if (string.IsNullOrEmpty(xmlNFce))
                {
                    return;
                }
                var proc = new nfeProc().CarregarDeXmlString(xmlNFce);
                if (proc.NFe.infNFe.ide.mod != ModeloDocumento.NFCe)
                {
                    throw new Exception("O XML informado não é um NFCe!");
                }

                #endregion

                #region Abre a visualização do relatório para impressão

                var danfe = new DanfeFrNfce(proc: proc, configuracaoDanfeNfce: configuracaoDanfe,
                                            cIdToken: cIdToken,
                                            csc: csc,
                                            arquivoRelatorio: string.Empty);

                danfe.Visualizar(false);
                //danfe.Imprimir();
                //danfe.ExibirDesign();
                //danfe.ExportarPdf(@"d:\teste.pdf");

                #endregion
            }
            catch (Exception ex)
            {
                if (!string.IsNullOrEmpty(ex.Message))
                {
                    MessageBox.Show(ex.Message);
                }
            }
        }
Exemplo n.º 17
0
 /// <summary>
 /// Construtor da classe reponsável pela impressão do DANFE da NFCe 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="configuracaoDanfeNfce">Objeto do tipo ConfiguracaoDanfeNfce contendo as definições de impressão</param>
 public DanfeFrNfce(Classes.NFe nfe, ConfiguracaoDanfeNfce configuracaoDanfeNfce) : this(new nfeProc() { NFe = nfe }, configuracaoDanfeNfce)
 {
 }
Exemplo n.º 18
0
 /// <summary>
 /// Construtor da classe responsável pela impressão do DANFE da NFCe 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 NFe</param>
 /// <param name="configuracaoDanfeNfce">Objeto do tipo ConfiguracaoDanfeNfce contendo as definições de impressão</param>
 /// <param name="cIdToken">Identificador do CSC – Código de Segurança do Contribuinte no Banco de Dados da SEFAZ</param>
 /// <param name="csc">Código de Segurança do Contribuinte(antigo Token)</param>
 /// <param name="textoRodape">Texto para ser impresso no final do documento</param>
 public DanfeFrNfce(Classes.NFe nfe, ConfiguracaoDanfeNfce configuracaoDanfeNfce, string cIdToken, string csc, string textoRodape = "") :
     this(new nfeProc() { NFe = nfe }, configuracaoDanfeNfce, cIdToken, csc, arquivoRelatorio : string.Empty, textoRodape : textoRodape)
 {
 }
Exemplo n.º 19
0
 public DanfeNativoNfce(string xml, ConfiguracaoDanfeNfce configuracaoDanfe, string cIdToken, string csc,
                        decimal troco = decimal.Zero, decimal totalPago = decimal.Zero, string font = null, bool viaEstabelecimento = false)
 {
     Inicializa(xml, configuracaoDanfe, cIdToken, csc, troco, totalPago, font);
 }
Exemplo n.º 20
0
 /// <summary>
 /// Construtor da classe responsável pela impressão do DANFE da NFCe 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 NFe</param>
 /// <param name="configuracaoDanfeNfce">Objeto do tipo ConfiguracaoDanfeNfce contendo as definições de impressão</param>
 /// <param name="cIdToken">Identificador do CSC – Código de Segurança do Contribuinte no Banco de Dados da SEFAZ</param>
 /// <param name="csc">Código de Segurança do Contribuinte(antigo Token)</param>
 public DanfeFrNfce(Classes.NFe nfe, ConfiguracaoDanfeNfce configuracaoDanfeNfce, string cIdToken, string csc) :
     this(new nfeProc() { NFe = nfe }, configuracaoDanfeNfce, cIdToken, csc, string.Empty)
 {
 }
Exemplo n.º 21
0
 /// <summary>
 /// Construtor da classe responsável pela impressão do DANFE da NFCe em Fast Reports
 /// </summary>
 /// <param name="proc">Objeto do tipo nfeProc</param>
 /// <param name="configuracaoDanfeNfce">Objeto do tipo ConfiguracaoDanfeNfce contendo as definições de impressão</param>
 /// <param name="cIdToken">Identificador do CSC – Código de Segurança do Contribuinte no Banco de Dados da SEFAZ</param>
 /// <param name="csc">Código de Segurança do Contribuinte(antigo Token)</param>
 /// <param name="arquivoRelatorio">Caminho e arquivo frx contendo as definições do relatório personalizado</param>
 public DanfeFrNfce(nfeProc proc, ConfiguracaoDanfeNfce configuracaoDanfeNfce, string cIdToken, string csc, string arquivoRelatorio = "")
 {
     Relatorio = DanfeSharedHelper.GenerateDanfeNfceReport(proc, configuracaoDanfeNfce, cIdToken, csc, Standard.Properties.Resources.NFCe, arquivoRelatorio);
     //A implementacao comentada acima esta funcionado, o relatório ainda não foi testado completamente mas é possivel sua conversão futuramente.
     //throw new NotImplementedException("NFCE ainda não implementado para .netstandard ou .netcore, apenas disponivel em .net framwork. Crie uma issue no nosso github para mais informações: https://github.com/ZeusAutomacao/DFe.NET");
 }
Exemplo n.º 22
0
        public static Report GenerateDanfeNfceReport(nfeProc proc, ConfiguracaoDanfeNfce configuracaoDanfeNfce, string cIdToken, string csc, byte[] frx, string arquivoRelatorio, string textoRodape = "")
        {
            //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 }, "NFCe", 20);
            relatorio.GetDataSource("NFCe").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.GenerateDanfeNfceReport no Zeus.DFe. Relatório não encontrado, passe os parametros 'frx' com bytes ou 'arquivoRelatorio' com o caminho do arquivo");
            }

            relatorio.SetParameterValue("NfceDetalheVendaNormal", configuracaoDanfeNfce.DetalheVendaNormal);
            relatorio.SetParameterValue("NfceDetalheVendaContigencia", configuracaoDanfeNfce.DetalheVendaContigencia);
            relatorio.SetParameterValue("NfceImprimeDescontoItem", configuracaoDanfeNfce.ImprimeDescontoItem);
            relatorio.SetParameterValue("NfceImprimeFoneEmitente", configuracaoDanfeNfce.ImprimeFoneEmitente);

            string foneEmitente = null;

            if (proc.NFe.infNFe.emit.enderEmit.fone != null)
            {
                foneEmitente = proc.NFe.infNFe.emit.enderEmit.fone.ToString();
            }

            if (foneEmitente != null && foneEmitente.Length == 10)
            {
                foneEmitente = string.Format("{0:(00)0000-0000}", Convert.ToInt64(foneEmitente));
            }
            else if (foneEmitente != null && foneEmitente.Length == 11)
            {
                foneEmitente = string.Format("{0:(00)00000-0000}", Convert.ToInt64(foneEmitente));
            }

            relatorio.SetParameterValue("NfceFoneEmitente", foneEmitente);
            relatorio.SetParameterValue("NfceModoImpressao", configuracaoDanfeNfce.ModoImpressao);
            relatorio.SetParameterValue("NfceCancelado", configuracaoDanfeNfce.DocumentoCancelado);
            relatorio.SetParameterValue("NfceLayoutQrCode", configuracaoDanfeNfce.NfceLayoutQrCode);
            relatorio.SetParameterValue("TextoRodape", textoRodape);
            ((ReportPage)relatorio.FindObject("PgNfce")).LeftMargin  = configuracaoDanfeNfce.MargemEsquerda;
            ((ReportPage)relatorio.FindObject("PgNfce")).RightMargin = configuracaoDanfeNfce.MargemDireita;

            var logomarcaEmitDefinida = configuracaoDanfeNfce.Logomarca != null && configuracaoDanfeNfce.Logomarca.Length > 0;

            ((ReportTitleBand)relatorio.FindObject("rtbEmitLogo")).Visible = logomarcaEmitDefinida;
            if (logomarcaEmitDefinida)
            {
                ((PictureObject)relatorio.FindObject("poEmitLogo")).SetImageData(configuracaoDanfeNfce.Logomarca);
            }

            ((TextObject)relatorio.FindObject("txtUrl")).Text       = string.IsNullOrEmpty(proc.NFe.infNFeSupl.urlChave) ? proc.NFe.infNFeSupl.ObterUrlConsulta(proc.NFe, configuracaoDanfeNfce.VersaoQrCode) : proc.NFe.infNFeSupl.urlChave;
            ((BarcodeObject)relatorio.FindObject("bcoQrCode")).Text = proc.NFe.infNFeSupl == null?proc.NFe.infNFeSupl.ObterUrlQrCode(proc.NFe, configuracaoDanfeNfce.VersaoQrCode, cIdToken, csc) : proc.NFe.infNFeSupl.qrCode;

            ((BarcodeObject)relatorio.FindObject("bcoQrCodeLateral")).Text = proc.NFe.infNFeSupl == null?proc.NFe.infNFeSupl.ObterUrlQrCode(proc.NFe, configuracaoDanfeNfce.VersaoQrCode, cIdToken, csc) : proc.NFe.infNFeSupl.qrCode;

            //Segundo o Manual de Padrões Técnicos do DANFE - NFC - e e QR Code, versão 3.2, página 9, nos casos de emissão em contingência deve ser impresso uma segunda cópia como via do estabelecimento
            if (configuracaoDanfeNfce.SegundaViaContingencia)
            {
#if !openfastreport
                /*Se a NFe for autorizada, mesmo que seja em contingência, imprime somente uma via - devendo o usuario enviar 2 copias para a impressora*/
                relatorio.PrintSettings.Copies = (proc.NFe.infNFe.ide.tpEmis == TipoEmissao.teNormal | (proc.protNFe != null && proc.protNFe.infProt != null && NfeSituacao.Autorizada(proc.protNFe.infProt.cStat)) /*Se a NFe for autorizada, mesmo que seja em contingência, imprime somente uma via*/) ? 1 : 2;
#else
                //sem suporte do PrintSettings para o openfastreport
                throw new Exception("configuracaoDanfeNfce.SegundaViaContingencia não suportado no OpenFastReport apenas no FastReport");
#endif
            }

            return(relatorio);
        }
Exemplo n.º 23
0
 /// <summary>
 /// Construtor da classe reponsável pela impressão do DANFE da NFCe 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="configuracaoDanfeNfce">Objeto do tipo ConfiguracaoDanfeNfce contendo as definições de impressão</param>
 public DanfeFrNfce(Classes.NFe nfe, ConfiguracaoDanfeNfce configuracaoDanfeNfce) : this(new nfeProc() { NFe = nfe }, configuracaoDanfeNfce)
 {
 }
Exemplo n.º 24
0
        public ConfiguracaoApp()
        {
            ConfiguracaoDanfeNfce = new ConfiguracaoDanfeNfce(NfceDetalheVendaNormal.UmaLinha, NfceDetalheVendaContigencia.UmaLinha);

            ConfiguracaoDanfeNfe = new ConfiguracaoDanfeNfe();
        }
 public void VisualizarDanfeNFCe(string xmlNFce, ConfiguracaoDanfeNfce configuracaoDanfe, string cIdToken, string csc)
 {
     VisualizarNFCe(xmlNFce, configuracaoDanfe, cIdToken, csc);
     //MessageBox.Show(xmlNFce);
     //this.ImprimirNFCe(xmlNFce, configuracaoDanfe, cIdToken, csc);
 }