예제 #1
0
        public static ReportDocument CartaCorrecao(TNfeProc nfe, CartaCorrecao.TProcEvento evento, ConfiguracaoHiperNFe config)
        {
            var doc     = XDocument.Load(evento.NomeArquivo);
            var dataSet = new DataSet();

            dataSet.ReadXml(doc.CreateReader());

            var cartaCorrecao = new ImpressaoCartaCorrecao.CartaCorrecao();

            cartaCorrecao.Load(Path.Combine(Environment.CurrentDirectory, "CartaCorrecao.rpt"), OpenReportMethod.OpenReportByDefault);
            var imageds = new ImpressaoCartaCorrecao.ImageDataSet();

            imageds.Images.AddImagesRow(Logo.ToBytes(config), Barras.ToArray(evento.retEvento.infEvento.chNFe), config.Site);


            var row = ((ImpressaoCartaCorrecao.ImageDataSet.CartaCorrecaoRow)(imageds.CartaCorrecao.NewRow()));

            #region Nota Fiscal Eletrônica
            row.Modelo        = Funcoes.ConvertEnumToString(nfe.NFe.infNFe.ide.mod);
            row.Serie         = nfe.NFe.infNFe.ide.serie;
            row.Numero        = nfe.NFe.infNFe.ide.nNF;
            row.MesAnoEmissao = nfe.NFe.infNFe.ide.dEmi.Substring(5, 2) + "/" + nfe.NFe.infNFe.ide.dEmi.Substring(2, 2);
            row.ChaveAcesso   = nfe.protNFe.infProt.chNFe;
            #endregion Nota Fiscal Eletrônica

            #region Carta de Correção Eletrônica
            row.Orgao            = Funcoes.ConvertEnumToString(evento.evento.infEvento.cOrgao);
            row.Ambiente         = Funcoes.ConvertEnumToString(evento.evento.infEvento.tpAmb);
            row.DataHoraEvento   = evento.evento.infEvento.dhEvento;
            row.Evento           = Funcoes.ConvertEnumToString(evento.evento.infEvento.tpEvento);
            row.DescricaoEvento  = Funcoes.ConvertEnumToString(evento.evento.infEvento.detEvento.descEvento);
            row.SequenciaEvento  = evento.evento.infEvento.nSeqEvento;
            row.VersaoEvento     = Funcoes.ConvertEnumToString(evento.evento.infEvento.verEvento);
            row.Status           = evento.retEvento.infEvento.cStat + " - " + evento.retEvento.infEvento.xMotivo;
            row.Protocolo        = evento.retEvento.infEvento.nProt;
            row.DataHoraRegistro = evento.retEvento.infEvento.dhRegEvento;
            #endregion Carta de Correção Eletrônica

            #region Emitente
            row.RazaoSocial_Emit = nfe.NFe.infNFe.emit.xNome;
            row.CNPJCPF_Emit     = nfe.NFe.infNFe.emit.Item;
            row.Endereco_Emit    = nfe.NFe.infNFe.emit.enderEmit.xLgr + " " + nfe.NFe.infNFe.emit.enderEmit.nro + " " + nfe.NFe.infNFe.emit.enderEmit.xCpl;
            row.Bairro_Emit      = nfe.NFe.infNFe.emit.enderEmit.xBairro;
            row.CEP_Emit         = nfe.NFe.infNFe.emit.enderEmit.CEP;
            row.Municipio_Emit   = nfe.NFe.infNFe.emit.enderEmit.xMun;
            row.FoneFax_Emit     = nfe.NFe.infNFe.emit.enderEmit.fone;
            row.Estado_Emit      = nfe.NFe.infNFe.emit.enderEmit.UF.ToString();
            row.IE_Emit          = nfe.NFe.infNFe.emit.IE;
            #endregion Emitente

            #region Destinatário / Remetente
            row.RazaoSocial_Dest = nfe.NFe.infNFe.dest.xNome;
            row.CNPJCPF_Dest     = nfe.NFe.infNFe.dest.Item;
            row.Endereco_Dest    = nfe.NFe.infNFe.dest.enderDest.xLgr + " " + nfe.NFe.infNFe.dest.enderDest.nro + " " + nfe.NFe.infNFe.dest.enderDest.xCpl;
            row.Bairro_Dest      = nfe.NFe.infNFe.dest.enderDest.xBairro;
            row.CEP_Dest         = nfe.NFe.infNFe.dest.enderDest.CEP;
            row.Municipio_Dest   = nfe.NFe.infNFe.dest.enderDest.xMun;
            row.FoneFax_Dest     = nfe.NFe.infNFe.dest.enderDest.fone;
            row.Estado_Dest      = nfe.NFe.infNFe.dest.enderDest.UF.ToString();
            row.IE_Dest          = nfe.NFe.infNFe.dest.IE;
            #endregion Destinatário / Remetente

            row.CondicoesUso = Funcoes.ConvertEnumToString(evento.evento.infEvento.detEvento.xCondUso);
            row.Correcao     = evento.evento.infEvento.detEvento.xCorrecao;

            imageds.CartaCorrecao.AddCartaCorrecaoRow(row);
            cartaCorrecao.SetDataSource(dataSet);
            cartaCorrecao.Database.Tables["Images"].SetDataSource(imageds);
            return(cartaCorrecao);
        }
예제 #2
0
        public static ReportDocument CartaCorrecao(TNfeProc nfe, CartaCorrecao.TProcEvento evento, ConfiguracaoHiperNFe config)
        {
            var doc = XDocument.Load(evento.NomeArquivo);
            var dataSet = new DataSet();
            dataSet.ReadXml(doc.CreateReader());

            var cartaCorrecao = new ImpressaoCartaCorrecao.CartaCorrecao();
            cartaCorrecao.Load(Path.Combine(Environment.CurrentDirectory, "CartaCorrecao.rpt"), OpenReportMethod.OpenReportByDefault);
            var imageds = new ImpressaoCartaCorrecao.ImageDataSet();
            imageds.Images.AddImagesRow(Logo.ToBytes(config), Barras.ToArray(evento.retEvento.infEvento.chNFe), config.Site);


            var row = ((ImpressaoCartaCorrecao.ImageDataSet.CartaCorrecaoRow)(imageds.CartaCorrecao.NewRow()));

            #region Nota Fiscal Eletrônica
            row.Modelo = Funcoes.ConvertEnumToString(nfe.NFe.infNFe.ide.mod);
            row.Serie = nfe.NFe.infNFe.ide.serie;
            row.Numero = nfe.NFe.infNFe.ide.nNF;
            row.MesAnoEmissao = nfe.NFe.infNFe.ide.dEmi.Substring(5, 2) + "/" + nfe.NFe.infNFe.ide.dEmi.Substring(2, 2);
            row.ChaveAcesso = nfe.protNFe.infProt.chNFe;
            #endregion Nota Fiscal Eletrônica

            #region Carta de Correção Eletrônica
            row.Orgao = Funcoes.ConvertEnumToString(evento.evento.infEvento.cOrgao);
            row.Ambiente = Funcoes.ConvertEnumToString(evento.evento.infEvento.tpAmb);
            row.DataHoraEvento = evento.evento.infEvento.dhEvento;
            row.Evento = Funcoes.ConvertEnumToString(evento.evento.infEvento.tpEvento);
            row.DescricaoEvento = Funcoes.ConvertEnumToString(evento.evento.infEvento.detEvento.descEvento);
            row.SequenciaEvento = evento.evento.infEvento.nSeqEvento;
            row.VersaoEvento = Funcoes.ConvertEnumToString(evento.evento.infEvento.verEvento);
            row.Status = evento.retEvento.infEvento.cStat + " - " + evento.retEvento.infEvento.xMotivo;
            row.Protocolo = evento.retEvento.infEvento.nProt;
            row.DataHoraRegistro = evento.retEvento.infEvento.dhRegEvento;
            #endregion Carta de Correção Eletrônica

            #region Emitente
            row.RazaoSocial_Emit = nfe.NFe.infNFe.emit.xNome;
            row.CNPJCPF_Emit = nfe.NFe.infNFe.emit.Item;
            row.Endereco_Emit = nfe.NFe.infNFe.emit.enderEmit.xLgr + " " + nfe.NFe.infNFe.emit.enderEmit.nro + " " + nfe.NFe.infNFe.emit.enderEmit.xCpl;
            row.Bairro_Emit = nfe.NFe.infNFe.emit.enderEmit.xBairro;
            row.CEP_Emit = nfe.NFe.infNFe.emit.enderEmit.CEP;
            row.Municipio_Emit = nfe.NFe.infNFe.emit.enderEmit.xMun;
            row.FoneFax_Emit = nfe.NFe.infNFe.emit.enderEmit.fone;
            row.Estado_Emit = nfe.NFe.infNFe.emit.enderEmit.UF.ToString();
            row.IE_Emit = nfe.NFe.infNFe.emit.IE;
            #endregion Emitente

            #region Destinatário / Remetente
            row.RazaoSocial_Dest = nfe.NFe.infNFe.dest.xNome;
            row.CNPJCPF_Dest = nfe.NFe.infNFe.dest.Item;
            row.Endereco_Dest = nfe.NFe.infNFe.dest.enderDest.xLgr + " " + nfe.NFe.infNFe.dest.enderDest.nro + " " + nfe.NFe.infNFe.dest.enderDest.xCpl;
            row.Bairro_Dest = nfe.NFe.infNFe.dest.enderDest.xBairro;
            row.CEP_Dest = nfe.NFe.infNFe.dest.enderDest.CEP;
            row.Municipio_Dest = nfe.NFe.infNFe.dest.enderDest.xMun;
            row.FoneFax_Dest = nfe.NFe.infNFe.dest.enderDest.fone;
            row.Estado_Dest = nfe.NFe.infNFe.dest.enderDest.UF.ToString();
            row.IE_Dest = nfe.NFe.infNFe.dest.IE;
            #endregion Destinatário / Remetente

            row.CondicoesUso = Funcoes.ConvertEnumToString(evento.evento.infEvento.detEvento.xCondUso);
            row.Correcao = evento.evento.infEvento.detEvento.xCorrecao;

            imageds.CartaCorrecao.AddCartaCorrecaoRow(row);
            cartaCorrecao.SetDataSource(dataSet);
            cartaCorrecao.Database.Tables["Images"].SetDataSource(imageds);
            return cartaCorrecao;
        }