Beispiel #1
0
        public bool Atualizar(Doc_CTe p, List <AnexoDocumento> ListaAnexos, List <EventoEletronicoDocumento> ListaEventoEletronico)
        {
            try
            {
                Doc_CTe p2 = new Doc_CTe();
                p2 = PesquisarDocumento(Convert.ToDecimal(p.CodigoDocumento));
                //GerarLog(p, p2);
                AbrirConexao();

                strSQL = "update DOCUMENTO set NR_DOCUMENTO = @v2," +
                         "DG_SR_DOCUMENTO = @v3," +
                         "CD_SITUACAO = @v4," +
                         "OB_DOCUMENTO = @v5," +
                         "DT_HR_EMISSAO = @v6," +
                         "DT_HR_ENTRADA = @v7," +
                         "CD_EMPRESA = @v8," +
                         // "CD_GER_SEQ_DOC = @v9," +
                         "CD_TIPO_OPERACAO = @v10," +
                         "VL_TOTAL_GERAL = @v11," +
                         "CD_CHAVE_ACESSO = @v12 where CD_DOCUMENTO = @v1";

                Cmd = new SqlCommand(strSQL, Con);
                Cmd.Parameters.AddWithValue("@v1", p.CodigoDocumento);
                Cmd.Parameters.AddWithValue("@v2", p.NumeroDocumento);
                Cmd.Parameters.AddWithValue("@v3", p.DGSRDocumento);
                Cmd.Parameters.AddWithValue("@v4", p.CodigoSituacao);
                Cmd.Parameters.AddWithValue("@v5", p.ObservacaoDocumento);
                Cmd.Parameters.AddWithValue("@v6", p.DataHoraEmissao);
                Cmd.Parameters.AddWithValue("@v7", p.DataHoraLancamento);
                Cmd.Parameters.AddWithValue("@v8", p.CodigoEmpresa);
                //Cmd.Parameters.AddWithValue("@v9", p.CodigoGeracaoSequencialDocumento);
                Cmd.Parameters.AddWithValue("@v10", p.CodigoTipoOperacao);
                Cmd.Parameters.AddWithValue("@v11", p.ValorTotal);
                Cmd.Parameters.AddWithValue("@v12", p.ChaveAcesso);

                Cmd.ExecuteNonQuery();

                return(true);
            }
            catch (Exception ex)
            {
                throw new Exception("Erro ao gravar CTe: " + ex.Message.ToString());
            }
            finally
            {
                FecharConexao();
                AtualizarPessoaDocumento(p.CodigoDocumento, p.Cpl_CodigoTransportador, 7); //Pessoa do Documento Transportador
                AtualizarPessoaDocumento(p.CodigoDocumento, p.Cpl_CodigoRemetente, 8);     //Pessoa do Documento Remetente
                AtualizarPessoaDocumento(p.CodigoDocumento, p.Cpl_CodigoDestinatario, 9);  //Pessoa do Documento Destinatario
                AtualizarPessoaDocumento(p.CodigoDocumento, p.Cpl_CodigoTomador, 10);      //Pessoa do Documento Tomador
                AtualizarPessoaDocumento(p.CodigoDocumento, p.Cpl_CodigoRecebedor, 11);    //Pessoa do Documento Recebedor


                AnexoDocumentoDAL AnexoDAL = new AnexoDocumentoDAL();
                AnexoDAL.Inserir(p.CodigoDocumento, ListaAnexos);

                EventoEletronicoDocumentoDAL EventoEletronicoDAL = new EventoEletronicoDocumentoDAL();
                EventoEletronicoDAL.Inserir(ListaEventoEletronico, p.CodigoDocumento);
            }
        }
Beispiel #2
0
        public List <Doc_CTe> ListarCTe(string strNomeCampo, string strTipoCampo, string strValor, string strOrdem)
        {
            try
            {
                AbrirConexao();

                string strSQL = "Select * from [VW_DOC_CTE] ";

                if (strValor != "")
                {
                    strSQL = strSQL + " Where " + MontaFiltro(strNomeCampo, strTipoCampo, strValor);
                }

                if (strOrdem != "")
                {
                    strSQL = strSQL + "Order By " + strOrdem;
                }

                Cmd = new SqlCommand(strSQL, Con);

                Dr = Cmd.ExecuteReader();

                List <Doc_CTe> lista = new List <Doc_CTe>();

                while (Dr.Read())
                {
                    Doc_CTe p = new Doc_CTe();

                    p.CodigoDocumento     = Convert.ToDecimal(Dr["CD_DOCUMENTO"]);
                    p.NumeroDocumento     = Convert.ToDecimal(Dr["NR_DOCUMENTO"]);
                    p.DataHoraEmissao     = Convert.ToDateTime(Dr["DT_HR_EMISSAO"]);
                    p.DataHoraLancamento  = Convert.ToDateTime(Dr["DT_HR_ENTRADA"]);
                    p.CodigoEmpresa       = Convert.ToInt32(Dr["CD_EMPRESA"]);
                    p.CodigoSituacao      = Convert.ToInt32(Dr["CD_SITUACAO"]);
                    p.CodigoTipoOperacao  = Convert.ToInt32(Dr["CD_TIPO_OPERACAO"]);
                    p.DGSRDocumento       = Convert.ToString(Dr["DG_SR_DOCUMENTO"]);
                    p.ValorTotal          = Convert.ToDecimal(Dr["VL_TOTAL_GERAL"]);
                    p.ObservacaoDocumento = Convert.ToString(Dr["OB_DOCUMENTO"]);
                    p.ChaveAcesso         = Convert.ToString(Dr["CD_CHAVE_ACESSO"]);
                    p.CodigoGeracaoSequencialDocumento = Convert.ToInt64(Dr["CD_GER_SEQ_DOC"]);
                    p.Cpl_DsSituacao = Dr["DS_SITUACAO"].ToString();

                    lista.Add(p);
                }

                return(lista);
            }
            catch (Exception ex)
            {
                throw new Exception("Erro ao Listar CTe: " + ex.Message.ToString());
            }
            finally
            {
                FecharConexao();
            }
        }
Beispiel #3
0
        public Doc_CTe PesquisarDocumento(decimal CodDocumento)
        {
            try
            {
                long CodTransportador = PesquisarPessoaDocumento(CodDocumento, 7);
                long CodRemetente     = PesquisarPessoaDocumento(CodDocumento, 8);
                long CodDestinatario  = PesquisarPessoaDocumento(CodDocumento, 9);
                long CodTomador       = PesquisarPessoaDocumento(CodDocumento, 10);
                long CodRecebedor     = PesquisarPessoaDocumento(CodDocumento, 11);
                AbrirConexao();

                string comando = "Select * from VW_DOC_CTE Where CD_DOCUMENTO= @v1 ";

                if (CodDocumento == 0)
                {
                    comando = "SELECT TOP 1 * FROM DOCUMENTO ORDER BY CD_DOCUMENTO DESC ";
                }
                Cmd = new SqlCommand(comando, Con);

                Cmd.Parameters.AddWithValue("@v1", CodDocumento);

                Dr = Cmd.ExecuteReader();
                Doc_CTe p = new Doc_CTe();

                if (Dr.Read())
                {
                    p.CodigoDocumento     = Convert.ToDecimal(Dr["CD_DOCUMENTO"]);
                    p.NumeroDocumento     = Convert.ToDecimal(Dr["NR_DOCUMENTO"]);
                    p.DataHoraEmissao     = Convert.ToDateTime(Dr["DT_HR_EMISSAO"]);
                    p.DataHoraLancamento  = Convert.ToDateTime(Dr["DT_HR_ENTRADA"]);
                    p.CodigoEmpresa       = Convert.ToInt32(Dr["CD_EMPRESA"]);
                    p.CodigoSituacao      = Convert.ToInt32(Dr["CD_SITUACAO"]);
                    p.CodigoTipoOperacao  = Convert.ToInt32(Dr["CD_TIPO_OPERACAO"]);
                    p.DGSRDocumento       = Convert.ToString(Dr["DG_SR_DOCUMENTO"]);
                    p.ValorTotal          = Convert.ToDecimal(Dr["VL_TOTAL_GERAL"]);
                    p.ObservacaoDocumento = Convert.ToString(Dr["OB_DOCUMENTO"]);
                    p.ChaveAcesso         = Convert.ToString(Dr["CD_CHAVE_ACESSO"]);
                    p.CodigoGeracaoSequencialDocumento = Convert.ToInt64(Dr["CD_GER_SEQ_DOC"]);
                    p.Cpl_CodigoTransportador          = CodTransportador;
                    p.Cpl_CodigoDestinatario           = CodDestinatario;
                    p.Cpl_CodigoRecebedor = CodRecebedor;
                    p.Cpl_CodigoTomador   = CodTomador;
                    p.Cpl_CodigoRemetente = CodRemetente;
                }
                return(p);
            }
            catch (Exception ex)
            {
                throw new Exception("Erro ao Pesquisar CTe: " + ex.Message.ToString());
            }
            finally
            {
                FecharConexao();
            }
        }
Beispiel #4
0
        public void AtualizarSituacaoDocumentoCTe(Doc_CTe p)
        {
            try
            {
                AbrirConexao();
                strSQL = "update [DOCUMENTO] set CD_SITUACAO = @v3 Where [CD_DOCUMENTO] = @v1";

                Cmd = new SqlCommand(strSQL, Con);

                Cmd.Parameters.AddWithValue("@v1", p.CodigoDocumento);
                Cmd.Parameters.AddWithValue("@v3", p.CodigoSituacao);

                Cmd.ExecuteNonQuery();
            }
            catch (Exception ex)
            {
                throw new Exception("Erro ao atualizar CTE: " + ex.Message.ToString());
            }
            finally
            {
                FecharConexao();
            }
        }
Beispiel #5
0
        public List <Doc_CTe> ListarCTEsCompleto(List <DBTabelaCampos> ListaFiltros)
        {
            try
            {
                AbrirConexao();
                string strValor = "";
                strSQL = "Select * from [VW_DOC_CTE] ";

                strValor = MontaFiltroIntervalo(ListaFiltros);
                strSQL   = strSQL + strValor;

                if (strValor == "")
                {
                    strSQL = strSQL + " WHERE CD_SITUACAO != 37";
                }
                else
                {
                    strSQL = strSQL + " AND CD_SITUACAO != 37";
                }


                strSQL = strSQL + " ORDER BY CD_DOCUMENTO DESC ";

                Cmd = new SqlCommand(strSQL, Con);
                Dr  = Cmd.ExecuteReader();

                List <Doc_CTe> lista = new List <Doc_CTe>();

                while (Dr.Read())
                {
                    Doc_CTe p = new Doc_CTe();
                    p.CodigoDocumento     = Convert.ToDecimal(Dr["CD_DOCUMENTO"]);
                    p.NumeroDocumento     = Convert.ToDecimal(Dr["NR_DOCUMENTO"]);
                    p.DataHoraEmissao     = Convert.ToDateTime(Dr["DT_HR_EMISSAO"]);
                    p.DataHoraLancamento  = Convert.ToDateTime(Dr["DT_HR_ENTRADA"]);
                    p.CodigoEmpresa       = Convert.ToInt32(Dr["CD_EMPRESA"]);
                    p.CodigoSituacao      = Convert.ToInt32(Dr["CD_SITUACAO"]);
                    p.CodigoTipoOperacao  = Convert.ToInt32(Dr["CD_TIPO_OPERACAO"]);
                    p.DGSRDocumento       = Convert.ToString(Dr["DG_SR_DOCUMENTO"]);
                    p.ValorTotal          = Convert.ToDecimal(Dr["VL_TOTAL_GERAL"]);
                    p.ObservacaoDocumento = Convert.ToString(Dr["OB_DOCUMENTO"]);
                    p.ChaveAcesso         = Convert.ToString(Dr["CD_CHAVE_ACESSO"]);
                    p.CodigoGeracaoSequencialDocumento = Convert.ToInt64(Dr["CD_GER_SEQ_DOC"]);
                    p.Cpl_DsSituacao    = Dr["DS_SITUACAO"].ToString();
                    p.Cpl_Transportador = Dr["RAZ_SOCIAL_TRANSPORTADOR"].ToString();
                    p.Cpl_Remetente     = Dr["RAZ_SOCIAL_REMETENTE"].ToString();
                    p.Cpl_Destinatario  = Dr["RAZ_SOCIAL_DESTINATARIO"].ToString();

                    lista.Add(p);
                }
                return(lista);
            }
            catch (Exception ex)
            {
                throw new Exception("Erro ao Listar CTe: " + ex.Message.ToString());
            }
            finally
            {
                FecharConexao();
            }
        }
Beispiel #6
0
        public bool Inserir(Doc_CTe p, List <AnexoDocumento> ListaAnexos, List <EventoEletronicoDocumento> ListaEventoEletronico)
        {
            try
            {
                AbrirConexao();
                strSQL = "insert into DOCUMENTO (CD_TIPO_DOCUMENTO," +
                         "NR_DOCUMENTO," +
                         "DG_SR_DOCUMENTO," +
                         "CD_SITUACAO," +
                         "OB_DOCUMENTO," +
                         "DT_HR_EMISSAO," +
                         "DT_HR_ENTRADA," +
                         "CD_EMPRESA," +
                         "CD_GER_SEQ_DOC," +
                         "CD_TIPO_OPERACAO," +
                         "VL_TOTAL_GERAL," +
                         "CD_CHAVE_ACESSO) values (@v1,@v2,@v3,@v4,@v5,@v6,@v7,@v8,@v9,@v10,@v11,@v12); SELECT SCOPE_IDENTITY();";

                Cmd = new SqlCommand(strSQL, Con);
                GeradorSequencialDocumentoEmpresaDAL gerDAL = new GeradorSequencialDocumentoEmpresaDAL();
                decimal CodigoGerado = gerDAL.IncluirTabelaGerador(p.Cpl_NomeTabela, Convert.ToInt32(p.CodigoGeracaoSequencialDocumento), p.Cpl_Usuario, p.Cpl_Maquina);

                Cmd.Parameters.AddWithValue("@v1", 7);
                Cmd.Parameters.AddWithValue("@v2", p.NumeroDocumento);
                Cmd.Parameters.AddWithValue("@v3", p.DGSRDocumento);
                Cmd.Parameters.AddWithValue("@v4", p.CodigoSituacao);
                Cmd.Parameters.AddWithValue("@v5", p.ObservacaoDocumento);
                Cmd.Parameters.AddWithValue("@v6", p.DataHoraEmissao);
                Cmd.Parameters.AddWithValue("@v7", p.DataHoraLancamento);
                Cmd.Parameters.AddWithValue("@v8", p.CodigoEmpresa);
                Cmd.Parameters.AddWithValue("@v9", p.CodigoGeracaoSequencialDocumento);
                Cmd.Parameters.AddWithValue("@v10", p.CodigoTipoOperacao);
                Cmd.Parameters.AddWithValue("@v11", p.ValorTotal);
                Cmd.Parameters.AddWithValue("@v12", p.ChaveAcesso);

                p.CodigoDocumento = Convert.ToDecimal(Cmd.ExecuteScalar());

                return(true);
            }
            catch (SqlException ex)
            {
                if (ex.Errors.Count > 0) // Assume the interesting stuff is in the first error
                {
                    switch (ex.Errors[0].Number)
                    {
                    case 2601:     // Primary key violation
                        throw new DuplicateNameException("Inclusão não Permitida!!! Chave já consta no Banco de Dados. Mensagem :" + ex.Message.ToString(), ex);

                    case 2627:     // Primary key violation
                        throw new DuplicateNameException("Inclusão não Permitida!!! Chave já consta no Banco de Dados. Mensagem :" + ex.Message.ToString(), ex);

                    default:
                        throw new Exception("Erro ao Incluir CTe: " + ex.Message.ToString());
                    }
                }

                return(false);
            }
            catch (Exception ex)
            {
                throw new Exception("Erro ao gravar CTe: " + ex.Message.ToString());
            }
            finally
            {
                FecharConexao();
                InserirPessoaDocumento(p.CodigoDocumento, p.Cpl_CodigoTransportador, 7); //Pessoa do Documento Transportador
                InserirPessoaDocumento(p.CodigoDocumento, p.Cpl_CodigoRemetente, 8);     //Pessoa do Documento Remetente
                InserirPessoaDocumento(p.CodigoDocumento, p.Cpl_CodigoDestinatario, 9);  //Pessoa do Documento Destinatario
                InserirPessoaDocumento(p.CodigoDocumento, p.Cpl_CodigoTomador, 10);      //Pessoa do Documento Tomador
                InserirPessoaDocumento(p.CodigoDocumento, p.Cpl_CodigoRecebedor, 11);    //Pessoa do Documento Recebedor

                AnexoDocumentoDAL AnexoDAL = new AnexoDocumentoDAL();
                AnexoDAL.Inserir(p.CodigoDocumento, ListaAnexos);

                EventoEletronicoDocumentoDAL EventoEletronicoDAL = new EventoEletronicoDocumentoDAL();
                EventoEletronicoDAL.Inserir(ListaEventoEletronico, p.CodigoDocumento);
            }
        }
Beispiel #7
0
        public void EnviarDesacordo()
        {
            try
            {
                DBTabelaCampos rowp2 = new DBTabelaCampos();
                rowp2.Filtro = "IN_REG_DEVOLVIDO";
                rowp2.Inicio = "0";
                rowp2.Fim    = "0";
                rowp2.Tipo   = "SMALLINT";
                listaT.Add(rowp2);

                IntegraDocumentoEletronicoDAL integraDAL = new IntegraDocumentoEletronicoDAL();
                ListaIntegracaoDocEletronico = integraDAL.ListarIntegracaoDocEletronicoCompleto(listaT);
                int Contador = 0;
                foreach (IntegraDocumentoEletronico integracao in ListaIntegracaoDocEletronico)
                {
                    if (integracao.CodigoAcao == 124 && integracao.IntegracaoProcessando == 0 && integracao.IntegracaoRecebido == 0 && integracao.IntegracaoRetorno == 0 && integracao.RegistroDevolvido == 0 && integracao.RegistroEnviado == 1 && integracao.Mensagem == "")
                    {
                        Doc_CTe    doc    = new Doc_CTe();
                        Doc_CTeDAL docDAL = new Doc_CTeDAL();
                        doc = docDAL.PesquisarDocumento(integracao.CodigoDocumento);

                        Empresa    empresa    = new Empresa();
                        EmpresaDAL empresaDAL = new EmpresaDAL();
                        empresa = empresaDAL.PesquisarEmpresa(doc.CodigoEmpresa);

                        Pessoa    pes    = new Pessoa();
                        PessoaDAL pesDAL = new PessoaDAL();
                        pes = pesDAL.PesquisarViewPessoa(empresa.CodigoPessoa);

                        Pessoa pesEmitente = new Pessoa();
                        pesEmitente = pesDAL.PesquisarViewPessoa(doc.Cpl_CodigoTransportador);

                        GerandoArquivoLog("Carregando .INI", 1);
                        string DiretorioEXE = Path.GetDirectoryName(System.AppDomain.CurrentDomain.BaseDirectory.ToString()) + @"\..\..\..\..\Modulos";
                        _spdCTeX.LoadConfig(DiretorioEXE + @"\TecnoSpeed\CTe\Arquivos\cteConfig.ini");

                        GerandoArquivoLog("Configurando .INI", 1);
                        if (pesEmitente.Cpl_Estado.Length >= 2)
                        {
                            _spdCTeX.UF = pesEmitente.Cpl_Estado.Substring(0, 2);//UF do Emitente
                        }
                        _spdCTeX.DiretorioEsquemas       = DiretorioEXE + @"\TecnoSpeed\CTe\Arquivos\Esquemas";
                        _spdCTeX.DiretorioTemplates      = DiretorioEXE + @"\TecnoSpeed\CTe\Arquivos\Templates";
                        _spdCTeX.ArquivoServidoresHom    = DiretorioEXE + @"\TecnoSpeed\CTe\Arquivos\cteServidoresHom.ini";
                        _spdCTeX.ArquivoServidoresProd   = DiretorioEXE + @"\TecnoSpeed\CTe\Arquivos\cteServidoresProd.ini";
                        _spdCTeX.ImpressaoModeloRetrato  = DiretorioEXE + @"\TecnoSpeed\CTe\Arquivos\Templates\3.00\DACTE\Retrato.rtm";
                        _spdCTeX.ImpressaoModeloPaisagem = DiretorioEXE + @"\TecnoSpeed\CTe\Arquivos\Templates\cce\Impressao\modeloCCe.rtm";
                        _spdCTeX.CNPJ = pes.Cpl_Inscricao;
                        string      c  = _spdCTeX.VersaoManual.ToString();
                        DBTabelaDAL db = new DBTabelaDAL();

                        List <EventoEletronicoDocumento> ListaEventoDocEletronico = new List <EventoEletronicoDocumento>();
                        EventoEletronicoDocumentoDAL     eventosEletronicosDAL    = new EventoEletronicoDocumentoDAL();
                        ListaEventoDocEletronico = eventosEletronicosDAL.ObterEventosEletronicos(doc.CodigoDocumento);

                        foreach (var evento in ListaEventoDocEletronico)
                        {
                            if (Contador == 0)
                            {
                                if (evento.CodigoSituacao != 121 && evento.CodigoTipoEvento == 120)
                                {
                                    Contador++;
                                    try
                                    {
                                        integracao.IntegracaoRecebido = 1;
                                        integraDAL.AtualizarIntegraDocEletronico(integracao);

                                        string consultaCTE            = _spdCTeX.ConsultarCT(doc.ChaveAcesso);
                                        string CodigoSituacaoConsulta = BuscarValorTagXML(consultaCTE, "infProt", "cStat");
                                        GerandoArquivoLog("Fazendo consulta do CT-e " + doc.ChaveAcesso, 1);

                                        if (CodigoSituacaoConsulta == "100")
                                        {
                                            // _spdCTeX.UF = pes.Cpl_Estado.Substring(0, 2);//UF do remetente
                                            GerandoArquivoLog("CT-e está Autorizado...", 1);
                                            doc.CodigoSituacao = 40;

                                            string XML = _spdCTeX.EnviarDesacordo(doc.ChaveAcesso,
                                                                                  evento.DataHoraEvento.ToString("yyyy-MM-ddTHH:mm:ss") + "-03:00",
                                                                                  evento.Motivo,
                                                                                  evento.NumeroSequencia.ToString());

                                            GerandoArquivoLog("Evento Eletronico do documento " + evento.CodigoEvento + " enviado... aguardando retorno ", 1);
                                            integracao.IntegracaoProcessando = 1;
                                            integraDAL.AtualizarIntegraDocEletronico(integracao);


                                            evento.Retorno = BuscarValorTagXML(XML, "infEvento", "xMotivo");
                                            string CodigoRetorno = BuscarValorTagXML(XML, "infEvento", "cStat");

                                            GerandoArquivoLog("Evento enviado... retorno - " + evento.Retorno, 1);
                                            integracao.IntegracaoRetorno = 1;
                                            integraDAL.AtualizarIntegraDocEletronico(integracao);

                                            if (CodigoRetorno == "135" || CodigoRetorno == "134" || CodigoRetorno == "136")
                                            {
                                                evento.CodigoSituacao = 121;
                                                byte[] XMLRetorno = null;
                                                XMLRetorno = Encoding.UTF8.GetBytes(XML);
                                                DBTabelaDAL dt = new DBTabelaDAL();
                                                SalvarAnexos(doc.CodigoDocumento, XMLRetorno, dt.ObterDataHoraServidor(), integracao, "Retorno do Envio de Desacordo!");
                                                GerandoArquivoLog("Salvando XML em anexo...", 1);
                                            }
                                            else
                                            {
                                                evento.CodigoSituacao = 122;
                                            }
                                        }
                                        else if (CodigoSituacaoConsulta == "218")
                                        {
                                            GerandoArquivoLog("Impossível efetuar o desacordo, CT-e está CANCELADO", 1);
                                            GerandoArquivoLog("CT-e " + doc.ChaveAcesso + " está CANCELADO...", 1);
                                            evento.CodigoSituacao = 122;
                                            doc.CodigoSituacao    = 41;
                                        }
                                        else if (CodigoSituacaoConsulta == "")
                                        {
                                            evento.Retorno        = BuscarValorTagXML(consultaCTE, "retConsSitCTe", "xMotivo");
                                            evento.CodigoSituacao = 122;
                                            doc.CodigoSituacao    = 39;
                                        }
                                        else
                                        {
                                            GerandoArquivoLog("Impossível efetuar o desacordo, CT-e não AUTORIZADO", 1);
                                            GerandoArquivoLog("CT-e " + doc.ChaveAcesso + " não está autorizada...", 1);

                                            evento.CodigoSituacao = 122;
                                            doc.CodigoSituacao    = 39;
                                        }
                                        //docDAL.Atualizar,
                                    }
                                    catch (Exception ex)
                                    {
                                        evento.Retorno = ex.ToString();
                                        GerandoArquivoLog("ERRO - " + ex.ToString(), 1);
                                    }

                                    //ListaEventoDocEletronico.RemoveAll(x => x.CodigoEvento == evento.CodigoEvento);
                                    //EventoEletronicoDocumento NovoEvento = new EventoEletronicoDocumento();
                                    //NovoEvento = evento;
                                    //ListaEventoDocEletronico.Add(NovoEvento);
                                }
                            }
                            eventosEletronicosDAL.AtualizarEventoEletronico(evento);
                            GerandoArquivoLog("Evento eletronico do documento " + doc.CodigoDocumento + " atualizado com sucesso", 1);
                            integracao.Mensagem          = evento.Retorno;
                            integracao.RegistroDevolvido = 1;
                            integraDAL.AtualizarIntegraDocEletronico(integracao);
                        }

                        integraDAL.AtualizarSituacaoDocumentoCTe(doc);
                        GerandoArquivoLog("Documento " + doc.CodigoDocumento + " Atualizado com sucesso", 1);
                    }
                }
                if (Contador == 0)
                {
                    GerandoArquivoLog("Nenhum desacordo enviado para CT-e", 1);
                }
            }
            catch (Exception ex)
            {
                GerandoArquivoLog("ERRO: " + ex.ToString(), 1);
            }
        }