Exemplo n.º 1
0
        //Função para conciliar
        public void startConc()
        {
            //Percorrer todos os movimentos
            foreach (OFX_Movimento mov in movimentos)
            {
                //Verificar se a data do movimento maior data atual evitando
                //lançamentos futuros do extrato
                if (mov.Data.Date <= DateTime.Now.Date)
                {

                    //Verifica se já não existe o movimento evitando duplicidade
                    Decimal valor = Convert.ToDecimal(mov.Valor);

                    using (var objVerExiste = new dbGerenciadorEntities())
                    {
                        //FALTOU TESTAR - QUANDO INCLUIR MOVIMENTO
                        var query = from conv in objVerExiste.Movimento
                                    where (conv.data == mov.Data.Date && conv.valor == valor && conv.descricao == mov.Descricao)
                                    select conv;
                        var ListaFinal = query.ToList();

                        //Não tem duplicidade
                        if (ListaFinal.Count == 0)
                        {
                            using (var objPesqVctoValor = new dbGerenciadorEntities())
                            {
                                //Primeira pesquisa por Vencimento e Valor
                                var queryTitulo = from titulo in objPesqVctoValor.Titulo
                                                  join relacao in objPesqVctoValor.Relacao on
                                                      titulo.relacao equals relacao.id
                                                  where (titulo.vencimento == mov.Data.Date && titulo.valor == valor && titulo.baixado == null)
                                                  select new
                                                  {
                                                      titulo.id,
                                                      titulo.numero,
                                                      relacao.Nome,
                                                      titulo.tipo,
                                                      titulo.parcela,
                                                      titulo.valor,
                                                      titulo.vencimento,
                                                      titulo.natureza,
                                                      titulo.descricao
                                                  };

                                var ListaTitulos = queryTitulo.ToList();

                                //A primeira pesquisa retornou valor
                                if (ListaTitulos.Count != 0)
                                {
                                    //Exibe o formulario com todos os titulos encontrado possibilitando a baixa
                                    frmConcilia.Conciliado passar = new frmConcilia.Conciliado();

                                    frmConcilia formConcilia = new frmConcilia(ListaTitulos, mov, ref passar);
                                    formConcilia.ShowDialog();

                                    //Obtem o numero da conta
                                    string[] split = agConta.Split('/');
                                    //Depois do split realiza a conversão para inteiro
                                    int conta = Convert.ToInt32(split[1]);
                                    //Adiciona o numero da conta a classe conciliado
                                    passar.conta = conta;

                                    lstConciliado.Add(passar);
                                }

                                else
                                {

                                    using (var objPesqValor = new dbGerenciadorEntities())
                                    {
                                        //Se a primeira pesquisa não retornar vamos pesquisar apenas por valor que não tenha
                                        //sida anteriormente baixados

                                        var queryTitulo_val = from titulo in objPesqValor.Titulo
                                                              join relacao in objPesqValor.Relacao on
                                                              titulo.relacao equals relacao.id
                                                              where titulo.valor == valor && titulo.baixado == null
                                                              select new
                                                              {
                                                                  titulo.id,
                                                                  titulo.numero,
                                                                  relacao.Nome,
                                                                  titulo.tipo,
                                                                  titulo.parcela,
                                                                  titulo.valor,
                                                                  titulo.vencimento,
                                                                  titulo.natureza,
                                                                  titulo.descricao
                                                              };

                                        var ListaTitulos_val = queryTitulo_val.ToList();

                                        //A primeira pesquisa retornou valor
                                        if (ListaTitulos_val.Count != 0)
                                        {

                                            //Exibe o formulario com todos os titulos encontrado possibilitando a baixa
                                            frmConcilia.Conciliado passar = new frmConcilia.Conciliado();
                                            frmConcilia formConcilia = new frmConcilia(ListaTitulos_val, mov, ref passar);
                                            formConcilia.ShowDialog();

                                            //Obtem o numero da conta
                                            string[] split = agConta.Split('/');
                                            //Depois do split realiza a conversão para inteiro
                                            int conta = Convert.ToInt32(split[1]);
                                            //Adiciona o numero da conta a classe conciliado
                                            passar.conta = conta;

                                            lstConciliado.Add(passar);

                                        }

                                        //Nenhuma pesquisa retornou agora precisamos cadastrar o titulo
                                        else
                                        {
                                            //Exibir Formulario para cadastrar ou editar Titulo

                                            //Informações do movimento para cadastrar um titulo
                                            DateTime dtMovimento = mov.Data;
                                            Double vlMovimento = mov.Valor;

                                            MessageBox.Show("Título não encontrado:" + Environment.NewLine +
                                                "Data:  " + dtMovimento.Date + Environment.NewLine +
                                                "Valor:  " + vlMovimento + Environment.NewLine +
                                                "Descrição: " + mov.Descricao, "Titulo x Movimento", MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1);

                                            frmCadTitulo cadMovimento = new frmCadTitulo(dtMovimento, vlMovimento);
                                            cadMovimento.ShowDialog();
                                            //Apos abrir o formulario realiza de novo busca
                                            using (var objNovaPesq = new dbGerenciadorEntities())
                                            {
                                                //Primeira pesquisa por Vencimento e Valor
                                                var queryNovoTitulo = from titulo in objNovaPesq.Titulo
                                                                      join relacao in objNovaPesq.Relacao on
                                                                          titulo.relacao equals relacao.id
                                                                      where (titulo.vencimento == mov.Data.Date && titulo.valor == valor && titulo.baixado == null)
                                                                      select new
                                                                      {
                                                                          titulo.id,
                                                                          titulo.numero,
                                                                          relacao.Nome,
                                                                          titulo.tipo,
                                                                          titulo.parcela,
                                                                          titulo.valor,
                                                                          titulo.vencimento,
                                                                          titulo.natureza,
                                                                          titulo.descricao
                                                                      };

                                                var ListaNovosTitulos = queryNovoTitulo.ToList();

                                                //Verifica se houve retorno
                                                if (ListaNovosTitulos.Count != 0)
                                                {
                                                    //Exibe o formulario com todos os titulos encontrado possibilitando a baixa
                                                    frmConcilia.Conciliado passar = new frmConcilia.Conciliado();

                                                    frmConcilia formConcilia = new frmConcilia(ListaNovosTitulos, mov, ref passar);
                                                    formConcilia.ShowDialog();

                                                    //Obtem o numero da conta
                                                    string[] split = agConta.Split('/');
                                                    //Depois do split realiza a conversão para inteiro
                                                    int conta = Convert.ToInt32(split[1]);
                                                    //Adiciona o numero da conta a classe conciliado
                                                    passar.conta = conta;

                                                    lstConciliado.Add(passar);
                                                }

                                            }
                                        }
                                    }//Segundo using
                                }
                            }//Terceiro using
                        }

                        else
                        {

                            MessageBox.Show("O Movimento já está cadastrado!", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1);

                        }

                    }//using

                }

            }//Fim do foreach

            //Aqui verificar se a lstConciliado não é vazia se não for vazia
            //loop na lista inserindo na tabela movimento e atualizando a tabela titulo

            if (lstConciliado.Count != 0)
            {
                MessageBox.Show("Vamos efetuar as alterações na base de dados", "AVISO", MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1);

                foreach (frmConcilia.Conciliado movBanco in lstConciliado)
                {
                    //Incluir as informações na tabela Movimento
                    Gerenciador.Data.dbGerenciadorEntities objGerenciador = new Gerenciador.Data.dbGerenciadorEntities();
                    var objMovimento = new Gerenciador.Data.Movimento();

                    objMovimento.data = movBanco.dtMovimento;
                    objMovimento.tipo = movBanco.tipo;
                    objMovimento.valor = Convert.ToDecimal(movBanco.vlBaixado);
                    objMovimento.numero = Convert.ToString(movBanco.numero);
                    objMovimento.descricao = movBanco.descricao;
                    objMovimento.conta = movBanco.conta;
                    objMovimento.id_titulo = movBanco.idTitulo;
                    objGerenciador.AddToMovimento(objMovimento);
                    objGerenciador.SaveChanges();

                    //Atualiza a tabela Titulo
                    using (var objUpdate = new dbGerenciadorEntities())
                    {

                        var objTitulo = new Gerenciador.Data.Titulo();

                        objTitulo = (from conv in objUpdate.Titulo
                                     where conv.id == movBanco.idTitulo
                                     select conv).First();

                        objTitulo.baixado = Convert.ToString(movBanco.baixado);
                        objTitulo.dta_baixa = movBanco.dtMovimento;
                        objTitulo.vlr_pagamento = Convert.ToDecimal(movBanco.vlBaixado);
                        objTitulo.conta_baixa = movBanco.conta;
                        objUpdate.SaveChanges();

                    }

                }//FIm loop da inclusão

                MessageBox.Show("Atualizações efetuadas com sucesso!", "AVISO", MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1);

            }//Fim atualização banco de dados
        }
Exemplo n.º 2
0
        //Função para conciliar
        public void startConc()
        {
            //Percorrer todos os movimentos
            foreach (OFX_Movimento mov in movimentos)
            {
                //Verificar se a data do movimento maior data atual evitando
                //lançamentos futuros do extrato
                if (mov.Data.Date <= DateTime.Now.Date)
                {
                    //Verifica se já não existe o movimento evitando duplicidade
                    Decimal valor = Convert.ToDecimal(mov.Valor);

                    using (var objVerExiste = new dbGerenciadorEntities())
                    {
                        //FALTOU TESTAR - QUANDO INCLUIR MOVIMENTO
                        var query = from conv in objVerExiste.Movimento
                                    where (conv.data == mov.Data.Date && conv.valor == valor && conv.descricao == mov.Descricao)
                                    select conv;
                        var ListaFinal = query.ToList();

                        //Não tem duplicidade
                        if (ListaFinal.Count == 0)
                        {
                            using (var objPesqVctoValor = new dbGerenciadorEntities())
                            {
                                //Primeira pesquisa por Vencimento e Valor
                                var queryTitulo = from titulo in objPesqVctoValor.Titulo
                                                  join relacao in objPesqVctoValor.Relacao on
                                                  titulo.relacao equals relacao.id
                                                  where (titulo.vencimento == mov.Data.Date && titulo.valor == valor && titulo.baixado == null)
                                                  select new
                                {
                                    titulo.id,
                                    titulo.numero,
                                    relacao.Nome,
                                    titulo.tipo,
                                    titulo.parcela,
                                    titulo.valor,
                                    titulo.vencimento,
                                    titulo.natureza,
                                    titulo.descricao
                                };

                                var ListaTitulos = queryTitulo.ToList();

                                //A primeira pesquisa retornou valor
                                if (ListaTitulos.Count != 0)
                                {
                                    //Exibe o formulario com todos os titulos encontrado possibilitando a baixa
                                    frmConcilia.Conciliado passar = new frmConcilia.Conciliado();

                                    frmConcilia formConcilia = new frmConcilia(ListaTitulos, mov, ref passar);
                                    formConcilia.ShowDialog();

                                    //Obtem o numero da conta
                                    string[] split = agConta.Split('/');
                                    //Depois do split realiza a conversão para inteiro
                                    int conta = Convert.ToInt32(split[1]);
                                    //Adiciona o numero da conta a classe conciliado
                                    passar.conta = conta;

                                    lstConciliado.Add(passar);
                                }

                                else
                                {
                                    using (var objPesqValor = new dbGerenciadorEntities())
                                    {
                                        //Se a primeira pesquisa não retornar vamos pesquisar apenas por valor que não tenha
                                        //sida anteriormente baixados

                                        var queryTitulo_val = from titulo in objPesqValor.Titulo
                                                              join relacao in objPesqValor.Relacao on
                                                              titulo.relacao equals relacao.id
                                                              where titulo.valor == valor && titulo.baixado == null
                                                              select new
                                        {
                                            titulo.id,
                                            titulo.numero,
                                            relacao.Nome,
                                            titulo.tipo,
                                            titulo.parcela,
                                            titulo.valor,
                                            titulo.vencimento,
                                            titulo.natureza,
                                            titulo.descricao
                                        };

                                        var ListaTitulos_val = queryTitulo_val.ToList();


                                        //A primeira pesquisa retornou valor
                                        if (ListaTitulos_val.Count != 0)
                                        {
                                            //Exibe o formulario com todos os titulos encontrado possibilitando a baixa
                                            frmConcilia.Conciliado passar       = new frmConcilia.Conciliado();
                                            frmConcilia            formConcilia = new frmConcilia(ListaTitulos_val, mov, ref passar);
                                            formConcilia.ShowDialog();

                                            //Obtem o numero da conta
                                            string[] split = agConta.Split('/');
                                            //Depois do split realiza a conversão para inteiro
                                            int conta = Convert.ToInt32(split[1]);
                                            //Adiciona o numero da conta a classe conciliado
                                            passar.conta = conta;

                                            lstConciliado.Add(passar);
                                        }

                                        //Nenhuma pesquisa retornou agora precisamos cadastrar o titulo
                                        else
                                        {
                                            //Exibir Formulario para cadastrar ou editar Titulo

                                            //Informações do movimento para cadastrar um titulo
                                            DateTime dtMovimento = mov.Data;
                                            Double   vlMovimento = mov.Valor;

                                            MessageBox.Show("Título não encontrado:" + Environment.NewLine +
                                                            "Data:  " + dtMovimento.Date + Environment.NewLine +
                                                            "Valor:  " + vlMovimento + Environment.NewLine +
                                                            "Descrição: " + mov.Descricao, "Titulo x Movimento", MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1);


                                            frmCadTitulo cadMovimento = new frmCadTitulo(dtMovimento, vlMovimento);
                                            cadMovimento.ShowDialog();
                                            //Apos abrir o formulario realiza de novo busca
                                            using (var objNovaPesq = new dbGerenciadorEntities())
                                            {
                                                //Primeira pesquisa por Vencimento e Valor
                                                var queryNovoTitulo = from titulo in objNovaPesq.Titulo
                                                                      join relacao in objNovaPesq.Relacao on
                                                                      titulo.relacao equals relacao.id
                                                                      where (titulo.vencimento == mov.Data.Date && titulo.valor == valor && titulo.baixado == null)
                                                                      select new
                                                {
                                                    titulo.id,
                                                    titulo.numero,
                                                    relacao.Nome,
                                                    titulo.tipo,
                                                    titulo.parcela,
                                                    titulo.valor,
                                                    titulo.vencimento,
                                                    titulo.natureza,
                                                    titulo.descricao
                                                };

                                                var ListaNovosTitulos = queryNovoTitulo.ToList();

                                                //Verifica se houve retorno
                                                if (ListaNovosTitulos.Count != 0)
                                                {
                                                    //Exibe o formulario com todos os titulos encontrado possibilitando a baixa
                                                    frmConcilia.Conciliado passar = new frmConcilia.Conciliado();

                                                    frmConcilia formConcilia = new frmConcilia(ListaNovosTitulos, mov, ref passar);
                                                    formConcilia.ShowDialog();

                                                    //Obtem o numero da conta
                                                    string[] split = agConta.Split('/');
                                                    //Depois do split realiza a conversão para inteiro
                                                    int conta = Convert.ToInt32(split[1]);
                                                    //Adiciona o numero da conta a classe conciliado
                                                    passar.conta = conta;

                                                    lstConciliado.Add(passar);
                                                }
                                            }
                                        }
                                    } //Segundo using
                                }
                            }         //Terceiro using
                        }

                        else
                        {
                            MessageBox.Show("O Movimento já está cadastrado!", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1);
                        }
                    } //using
                }
            }         //Fim do foreach

            //Aqui verificar se a lstConciliado não é vazia se não for vazia
            //loop na lista inserindo na tabela movimento e atualizando a tabela titulo

            if (lstConciliado.Count != 0)
            {
                MessageBox.Show("Vamos efetuar as alterações na base de dados", "AVISO", MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1);

                foreach (frmConcilia.Conciliado movBanco in lstConciliado)
                {
                    //Incluir as informações na tabela Movimento
                    Gerenciador.Data.dbGerenciadorEntities objGerenciador = new Gerenciador.Data.dbGerenciadorEntities();
                    var objMovimento = new Gerenciador.Data.Movimento();

                    objMovimento.data      = movBanco.dtMovimento;
                    objMovimento.tipo      = movBanco.tipo;
                    objMovimento.valor     = Convert.ToDecimal(movBanco.vlBaixado);
                    objMovimento.numero    = Convert.ToString(movBanco.numero);
                    objMovimento.descricao = movBanco.descricao;
                    objMovimento.conta     = movBanco.conta;
                    objMovimento.id_titulo = movBanco.idTitulo;
                    objGerenciador.AddToMovimento(objMovimento);
                    objGerenciador.SaveChanges();

                    //Atualiza a tabela Titulo
                    using (var objUpdate = new dbGerenciadorEntities())
                    {
                        var objTitulo = new Gerenciador.Data.Titulo();

                        objTitulo = (from conv in objUpdate.Titulo
                                     where conv.id == movBanco.idTitulo
                                     select conv).First();

                        objTitulo.baixado       = Convert.ToString(movBanco.baixado);
                        objTitulo.dta_baixa     = movBanco.dtMovimento;
                        objTitulo.vlr_pagamento = Convert.ToDecimal(movBanco.vlBaixado);
                        objTitulo.conta_baixa   = movBanco.conta;
                        objUpdate.SaveChanges();
                    }
                }//FIm loop da inclusão

                MessageBox.Show("Atualizações efetuadas com sucesso!", "AVISO", MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1);
            }//Fim atualização banco de dados
        }
Exemplo n.º 3
0
        //Confirmar inclusão
        private void btnConfirmaTitulo_Click(object sender, EventArgs e)
        {
            //Função de validação
            Validar valida = new Validar();

            if (valida.valCampoVazio(this.Controls) == true)
            {
                if (Convert.ToInt32(txtParcelaTitulo.Text) >= 1)
                {
                    //Carrega o tipo do titulo correto
                    loadTipo();

                    //Verifica se é para alterar ou para incluir

                    //ALTERAR
                    if (altera == true)
                    {
                        //Acerta o valor de acordo com a operação (Positivo ou Negativo)
                        acertaPosNeg();

                        //Prorroga Vencimento proximo dia util
                        DateTime alteraVencimento = fimSemana();

                        using (var objGerenciador = new dbGerenciadorEntities())
                        {
                            var objTitulo = new Gerenciador.Data.Titulo();
                            //Seleciona o registro a ser alterado pela sua ID
                            objTitulo = (from conv in objGerenciador.Titulo
                                         where conv.id == _id
                                         select conv).First();

                            //Alterações
                            objTitulo.numero       = Convert.ToInt32(txtNumeroTitulo.Text);
                            objTitulo.relacao      = Convert.ToInt32(cmbRelacaoTitulo.SelectedValue);
                            objTitulo.tipo         = Convert.ToString(cmbTipoTitulo.Text);
                            objTitulo.qtd_parcela  = Convert.ToInt32(txtParcelaTitulo.Text);
                            objTitulo.valor        = Convert.ToDecimal(txtValorTitulo.Text);
                            objTitulo.vencimento   = alteraVencimento;
                            objTitulo.parcela      = Convert.ToInt32(txtParcelaTitulo.Text);
                            objTitulo.natureza     = Convert.ToString(cmbNaturezaTitulo.SelectedValue);
                            objTitulo.descricao    = txtDescricaoTitulo.Text;
                            objTitulo.codigoBarras = txtCodBar.Text;

                            //Grava no banco
                            objGerenciador.SaveChanges();

                            MessageBox.Show("Titulo Alterado com sucesso!", "Alterações", MessageBoxButtons.OK,
                                            MessageBoxIcon.Information, MessageBoxDefaultButton.Button2);

                            //Apos alterar fecha ou reinicializa o formulario
                            if (vemOfx == true)
                            {
                                reloadForm();
                            }
                            else
                            {
                                this.Close();
                            }
                        }
                    }

                    //INCLUIR
                    else
                    {
                        //Verifica se o titulo já não esta cadastrado
                        using (var objGerenciador1 = new dbGerenciadorEntities())
                        {
                            int      tituloNumero  = Convert.ToInt32(txtNumeroTitulo.Text);
                            int      relacaoNumero = Convert.ToInt32(cmbRelacaoTitulo.SelectedValue);
                            decimal  valor         = Convert.ToDecimal(txtValorTitulo.Text);
                            DateTime vcto          = Convert.ToDateTime(dtpVctoTitulo.Text);

                            var query = from conv in objGerenciador1.Titulo
                                        where (conv.numero == tituloNumero && conv.relacao == relacaoNumero &&
                                               conv.valor == valor && conv.vencimento == vcto)
                                        select conv;
                            var ListaBanco = query.ToList();

                            //Titulo não está cadastrado
                            if (ListaBanco.Count == 0)
                            {
                                //Acerta o valor de acordo com a operação (Positivo ou Negativo)
                                acertaPosNeg();

                                //Prorroga o titulo proximo dia util
                                DateTime vencimento = new DateTime();
                                vencimento = fimSemana();

                                //Realizar loop de acordo com numero de parcelas

                                int numeroParcelas = Convert.ToInt32(txtParcelaTitulo.Text);
                                for (int i = 0; i < numeroParcelas; i++)
                                {
                                    //Incluir
                                    Gerenciador.Data.dbGerenciadorEntities objGerenciador = new Gerenciador.Data.dbGerenciadorEntities();
                                    var objTitulo = new Gerenciador.Data.Titulo();
                                    objTitulo.numero       = Convert.ToInt32(txtNumeroTitulo.Text);
                                    objTitulo.relacao      = Convert.ToInt32(cmbRelacaoTitulo.SelectedValue);
                                    objTitulo.tipo         = Convert.ToString(cmbTipoTitulo.Text);
                                    objTitulo.qtd_parcela  = Convert.ToInt32(txtParcelaTitulo.Text);
                                    objTitulo.valor        = (Convert.ToDecimal(txtValorTitulo.Text) / numeroParcelas); // Valor total divido pelas parcelas
                                    objTitulo.vencimento   = vencimento;
                                    objTitulo.parcela      = (i + 1);                                                   //Incrementa a parcela
                                    objTitulo.natureza     = Convert.ToString(cmbNaturezaTitulo.SelectedValue);
                                    objTitulo.descricao    = txtDescricaoTitulo.Text;
                                    objTitulo.codigoBarras = txtCodBar.Text;

                                    //Realiza a inclusão
                                    objGerenciador.AddToTitulo(objTitulo);
                                    objGerenciador.SaveChanges();

                                    //Incrementa mês
                                    vencimento = vencimento.AddMonths(1);

                                    //Joga para proximo dia util quando sabado ou domingo
                                    if (vencimento.DayOfWeek == DayOfWeek.Saturday)
                                    {
                                        vencimento = vencimento.AddDays(2);
                                    }

                                    else if (vencimento.DayOfWeek == DayOfWeek.Sunday)
                                    {
                                        vencimento = vencimento.AddDays(1);
                                    }
                                }

                                MessageBox.Show("Titulo Cadastrado com sucesso!", "Cadastro", MessageBoxButtons.OK, MessageBoxIcon.Information,
                                                MessageBoxDefaultButton.Button2);

                                //Verifica de onde vem OFX ou manual e da o tratamento
                                if (vemOfx == false)
                                {
                                    reloadForm();
                                }
                                else
                                {
                                    this.Close();
                                }
                            }


                            else
                            {
                                //Mensagem caso o titulo exista
                                MessageBox.Show("Titulo já existe verifique!", "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error,
                                                MessageBoxDefaultButton.Button2);
                            }
                        }
                    }
                }
                else
                {
                    MessageBox.Show("Parcela não pode ser menor que 1", "Aviso");
                    txtParcelaTitulo.Text = "";
                    txtParcelaTitulo.Focus();
                }
            }
        }
Exemplo n.º 4
0
 /// <summary>
 /// Deprecated Method for adding a new object to the Titulo EntitySet. Consider using the .Add method of the associated ObjectSet&lt;T&gt; property instead.
 /// </summary>
 public void AddToTitulo(Titulo titulo)
 {
     base.AddObject("Titulo", titulo);
 }
Exemplo n.º 5
0
 /// <summary>
 /// Create a new Titulo object.
 /// </summary>
 /// <param name="id">Initial value of the id property.</param>
 /// <param name="numero">Initial value of the numero property.</param>
 /// <param name="relacao">Initial value of the relacao property.</param>
 /// <param name="tipo">Initial value of the tipo property.</param>
 /// <param name="qtd_parcela">Initial value of the qtd_parcela property.</param>
 /// <param name="valor">Initial value of the valor property.</param>
 /// <param name="vencimento">Initial value of the vencimento property.</param>
 /// <param name="natureza">Initial value of the natureza property.</param>
 public static Titulo CreateTitulo(global::System.Int32 id, global::System.Int32 numero, global::System.Int32 relacao, global::System.String tipo, global::System.Int32 qtd_parcela, global::System.Decimal valor, global::System.DateTime vencimento, global::System.String natureza)
 {
     Titulo titulo = new Titulo();
     titulo.id = id;
     titulo.numero = numero;
     titulo.relacao = relacao;
     titulo.tipo = tipo;
     titulo.qtd_parcela = qtd_parcela;
     titulo.valor = valor;
     titulo.vencimento = vencimento;
     titulo.natureza = natureza;
     return titulo;
 }
Exemplo n.º 6
0
        //Confirmar inclusão
        private void btnConfirmaTitulo_Click(object sender, EventArgs e)
        {
            //Função de validação
            Validar valida = new Validar();
            if (valida.valCampoVazio(this.Controls) == true)
            {
                if (Convert.ToInt32(txtParcelaTitulo.Text) >= 1)
                {

                    //Carrega o tipo do titulo correto
                    loadTipo();

                    //Verifica se é para alterar ou para incluir

                    //ALTERAR
                    if (altera == true)
                    {
                        //Acerta o valor de acordo com a operação (Positivo ou Negativo)
                        acertaPosNeg();

                        //Prorroga Vencimento proximo dia util
                        DateTime alteraVencimento = fimSemana();

                        using (var objGerenciador = new dbGerenciadorEntities())
                        {

                            var objTitulo = new Gerenciador.Data.Titulo();
                            //Seleciona o registro a ser alterado pela sua ID
                            objTitulo = (from conv in objGerenciador.Titulo
                                         where conv.id == _id
                                         select conv).First();

                            //Alterações
                            objTitulo.numero = Convert.ToInt32(txtNumeroTitulo.Text);
                            objTitulo.relacao = Convert.ToInt32(cmbRelacaoTitulo.SelectedValue);
                            objTitulo.tipo = Convert.ToString(cmbTipoTitulo.Text);
                            objTitulo.qtd_parcela = Convert.ToInt32(txtParcelaTitulo.Text);
                            objTitulo.valor = Convert.ToDecimal(txtValorTitulo.Text);
                            objTitulo.vencimento = alteraVencimento;
                            objTitulo.parcela = Convert.ToInt32(txtParcelaTitulo.Text);
                            objTitulo.natureza = Convert.ToString(cmbNaturezaTitulo.SelectedValue);
                            objTitulo.descricao = txtDescricaoTitulo.Text;
                            objTitulo.codigoBarras = txtCodBar.Text;

                            //Grava no banco
                            objGerenciador.SaveChanges();

                            MessageBox.Show("Titulo Alterado com sucesso!", "Alterações", MessageBoxButtons.OK,
                                             MessageBoxIcon.Information, MessageBoxDefaultButton.Button2);

                            //Apos alterar fecha ou reinicializa o formulario
                            if (vemOfx == true)
                            {
                                reloadForm();
                            }
                            else
                            {
                                this.Close();
                            }
                        }

                    }

                    //INCLUIR
                    else
                    {

                        //Verifica se o titulo já não esta cadastrado
                        using (var objGerenciador1 = new dbGerenciadorEntities())
                        {

                            int tituloNumero = Convert.ToInt32(txtNumeroTitulo.Text);
                            int relacaoNumero = Convert.ToInt32(cmbRelacaoTitulo.SelectedValue);
                            decimal valor = Convert.ToDecimal(txtValorTitulo.Text);
                            DateTime vcto = Convert.ToDateTime(dtpVctoTitulo.Text);

                            var query = from conv in objGerenciador1.Titulo
                                        where (conv.numero == tituloNumero && conv.relacao == relacaoNumero
                                        && conv.valor == valor && conv.vencimento == vcto)
                                        select conv;
                            var ListaBanco = query.ToList();

                            //Titulo não está cadastrado
                            if (ListaBanco.Count == 0)
                            {
                                //Acerta o valor de acordo com a operação (Positivo ou Negativo)
                                acertaPosNeg();

                                //Prorroga o titulo proximo dia util
                                DateTime vencimento = new DateTime();
                                vencimento = fimSemana();

                                //Realizar loop de acordo com numero de parcelas

                                int numeroParcelas = Convert.ToInt32(txtParcelaTitulo.Text);
                                for (int i = 0; i < numeroParcelas; i++)
                                {

                                    //Incluir
                                    Gerenciador.Data.dbGerenciadorEntities objGerenciador = new Gerenciador.Data.dbGerenciadorEntities();
                                    var objTitulo = new Gerenciador.Data.Titulo();
                                    objTitulo.numero = Convert.ToInt32(txtNumeroTitulo.Text);
                                    objTitulo.relacao = Convert.ToInt32(cmbRelacaoTitulo.SelectedValue);
                                    objTitulo.tipo = Convert.ToString(cmbTipoTitulo.Text);
                                    objTitulo.qtd_parcela = Convert.ToInt32(txtParcelaTitulo.Text);
                                    objTitulo.valor = (Convert.ToDecimal(txtValorTitulo.Text) / numeroParcelas); // Valor total divido pelas parcelas
                                    objTitulo.vencimento = vencimento;
                                    objTitulo.parcela = (i + 1);//Incrementa a parcela
                                    objTitulo.natureza = Convert.ToString(cmbNaturezaTitulo.SelectedValue);
                                    objTitulo.descricao = txtDescricaoTitulo.Text;
                                    objTitulo.codigoBarras = txtCodBar.Text;

                                    //Realiza a inclusão
                                    objGerenciador.AddToTitulo(objTitulo);
                                    objGerenciador.SaveChanges();

                                    //Incrementa mês
                                    vencimento = vencimento.AddMonths(1);

                                    //Joga para proximo dia util quando sabado ou domingo
                                    if (vencimento.DayOfWeek == DayOfWeek.Saturday)
                                    {
                                        vencimento = vencimento.AddDays(2);

                                    }

                                    else if (vencimento.DayOfWeek == DayOfWeek.Sunday)
                                    {

                                        vencimento = vencimento.AddDays(1);
                                    }

                                }

                                MessageBox.Show("Titulo Cadastrado com sucesso!", "Cadastro", MessageBoxButtons.OK, MessageBoxIcon.Information,
                                                MessageBoxDefaultButton.Button2);

                                //Verifica de onde vem OFX ou manual e da o tratamento
                                if (vemOfx == false)
                                {
                                    reloadForm();
                                }
                                else
                                {
                                    this.Close();
                                }
                            }

                            else
                            {
                                //Mensagem caso o titulo exista
                                MessageBox.Show("Titulo já existe verifique!", "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error,
                                                MessageBoxDefaultButton.Button2);

                            }
                        }

                    }

                }
                else
                {
                    MessageBox.Show("Parcela não pode ser menor que 1", "Aviso");
                    txtParcelaTitulo.Text = "";
                    txtParcelaTitulo.Focus();
                }
            }
        }
Exemplo n.º 7
0
        //Função para conciliar
        public void startConc()
        {
            //Varivel que finalizara tudo caso o titulo não seja cadastrado
            bool sair;

            sair = false;

            //Percorrer todos os movimentos
            foreach (OFX_Movimento mov in movimentos)
            {
                //Verificar se a data do movimento maior data atual evitando
                //lançamentos futuros do extrato
                if (mov.Data.Date <= DateTime.Now.Date)
                {
                    //Verifica se já não existe o movimento evitando duplicidade
                    Decimal valor = Convert.ToDecimal(mov.Valor);

                    using (var objVerExiste = new dbGerenciadorEntities())
                    {
                        //Arrumei fazendo estas conversões pois não altera o banco
                        //Na hora de salvar na tabela movimento o parametro transforma em string em int
                        //Agora temos que fazer o contrario
                        int    ID  = Convert.ToInt32(mov.Id);
                        string sID = Convert.ToString(ID);

                        var query = from conv in objVerExiste.Movimento
                                    where (conv.data == mov.Data.Date && conv.valor == valor && conv.numero == sID)
                                    select conv;

                        var ListaFinal = query.ToList();

                        //Não tem duplicidade
                        if (ListaFinal.Count == 0)
                        {
                            using (var objPesqVctoValor = new dbGerenciadorEntities())
                            {
                                //Primeira pesquisa por Vencimento e Valor de titulos que não tenham sido baixados
                                var queryTitulo = from titulo in objPesqVctoValor.Titulo
                                                  join relacao in objPesqVctoValor.Relacao on
                                                  titulo.relacao equals relacao.id
                                                  where (titulo.vencimento == mov.Data.Date && titulo.valor == valor && titulo.baixado == null)
                                                  select new
                                {
                                    titulo.id,
                                    titulo.numero,
                                    relacao.Nome,
                                    titulo.tipo,
                                    titulo.parcela,
                                    titulo.valor,
                                    titulo.vencimento,
                                    titulo.natureza,
                                    titulo.descricao
                                };

                                var ListaTitulos = queryTitulo.ToList();

                                //A primeira pesquisa retornou valor
                                if (ListaTitulos.Count != 0)
                                {
                                    //Exibe o formulario com todos os titulos encontrado possibilitando escolha do titulo para baixa

                                    //Cria uma lista que será passada como ponteiro(ref) ao formulario concilia
                                    //Para que as alterações permanecam apos o fechamento do formulario
                                    frmConcilia.Conciliado passar = new frmConcilia.Conciliado();

                                    //Chama o formulario passando os objects retornados da busca com vencimento e valor, o movimento do OFX
                                    // e a lista de referência que será alterada
                                    frmConcilia formConcilia = new frmConcilia(ListaTitulos, mov, ref passar);
                                    formConcilia.ShowDialog();

                                    //Obtem o numero da conta
                                    string[] split = agConta.Split('/');
                                    //Depois do split realiza a conversão para inteiro
                                    int conta = Convert.ToInt32(split[1]);
                                    //Adiciona o numero da conta a classe conciliado
                                    passar.conta = conta;

                                    //Adiciona a lista de referência a lista de conciliados
                                    lstConciliado.Add(passar);
                                }

                                else
                                {
                                    using (var objPesqValor = new dbGerenciadorEntities())
                                    {
                                        //Se a primeira pesquisa não retornar vamos pesquisar apenas por valor que não tenha
                                        //sida anteriormente baixados

                                        var queryTitulo_val = from titulo in objPesqValor.Titulo
                                                              join relacao in objPesqValor.Relacao on
                                                              titulo.relacao equals relacao.id
                                                              where titulo.valor == valor && titulo.baixado == null
                                                              select new
                                        {
                                            titulo.id,
                                            titulo.numero,
                                            relacao.Nome,
                                            titulo.tipo,
                                            titulo.parcela,
                                            titulo.valor,
                                            titulo.vencimento,
                                            titulo.natureza,
                                            titulo.descricao
                                        };

                                        var ListaTitulos_val = queryTitulo_val.ToList();


                                        //A primeira pesquisa retornou valor
                                        if (ListaTitulos_val.Count != 0)
                                        {
                                            //Exibe o formulario com todos os titulos encontrado possibilitando escolha do titulo para baixa

                                            //Cria uma lista que será passada como ponteiro(ref) ao formulario concilia
                                            //Para que as alterações permanecam apos o fechamento do formulario
                                            frmConcilia.Conciliado passar = new frmConcilia.Conciliado();

                                            //Chama o formulario passando os objects retornados da busca com vencimento e valor, o movimento do OFX
                                            // e a lista de referência que será alterada
                                            frmConcilia formConcilia = new frmConcilia(ListaTitulos_val, mov, ref passar);
                                            formConcilia.ShowDialog();

                                            //Obtem o numero da conta
                                            string[] split = agConta.Split('/');
                                            //Depois do split realiza a conversão para inteiro
                                            int conta = Convert.ToInt32(split[1]);
                                            //Adiciona o numero da conta a classe conciliado
                                            passar.conta = conta;

                                            lstConciliado.Add(passar);
                                        }

                                        //Nenhuma pesquisa retornou agora precisamos cadastrar o titulo
                                        else
                                        {
                                            //Exibir Formulario para cadastrar ou editar Titulo

                                            //Informações do movimento para cadastrar um titulo
                                            DateTime dtMovimento = mov.Data;
                                            Double   vlMovimento = mov.Valor;

                                            //Exibe informação sobre o movimento sem titulo correnpondente encontrado
                                            MessageBox.Show("Título não encontrado:" + Environment.NewLine +
                                                            "Data:  " + dtMovimento.Date + Environment.NewLine +
                                                            "Valor:  " + vlMovimento + Environment.NewLine +
                                                            "Descrição: " + mov.Descricao, "Titulo x Movimento", MessageBoxButtons.OK,
                                                            MessageBoxIcon.Information, MessageBoxDefaultButton.Button1);

                                            //Exibe o formulario para cadastrar o titulo
                                            frmCadTitulo cadMovimento = new frmCadTitulo(dtMovimento, vlMovimento);
                                            cadMovimento.ShowDialog();

                                            //Apos fechar o formulario realiza de novo busca
                                            using (var objNovaPesq = new dbGerenciadorEntities())
                                            {
                                                //Primeira pesquisa por Vencimento e Valor
                                                var queryNovoTitulo = from titulo in objNovaPesq.Titulo
                                                                      join relacao in objNovaPesq.Relacao on
                                                                      titulo.relacao equals relacao.id
                                                                      where (titulo.vencimento == mov.Data.Date && titulo.valor == valor && titulo.baixado == null)
                                                                      select new
                                                {
                                                    titulo.id,
                                                    titulo.numero,
                                                    relacao.Nome,
                                                    titulo.tipo,
                                                    titulo.parcela,
                                                    titulo.valor,
                                                    titulo.vencimento,
                                                    titulo.natureza,
                                                    titulo.descricao
                                                };

                                                var ListaNovosTitulos = queryNovoTitulo.ToList();

                                                //Verifica se houve retorno
                                                if (ListaNovosTitulos.Count != 0)
                                                {
                                                    //Exibe o formulario com todos os titulos encontrado possibilitando a baixa
                                                    frmConcilia.Conciliado passar = new frmConcilia.Conciliado();

                                                    frmConcilia formConcilia = new frmConcilia(ListaNovosTitulos, mov, ref passar);
                                                    formConcilia.ShowDialog();

                                                    //Obtem o numero da conta
                                                    string[] split = agConta.Split('/');
                                                    //Depois do split realiza a conversão para inteiro
                                                    int conta = Convert.ToInt32(split[1]);
                                                    //Adiciona o numero da conta a classe conciliado
                                                    passar.conta = conta;

                                                    lstConciliado.Add(passar);
                                                }
                                                else
                                                {
                                                    MessageBox.Show("Titulo ainda não foi cadastrado" + Environment.NewLine +
                                                                    "Para garantir a integridade do processo não podemos continuar" + Environment.NewLine +
                                                                    "Cadastre o titulo e tente novamente", "Aviso");
                                                    //Como se diz para garantir integridade não podemos terminar conciliação sem cadastrar
                                                    //todos os titulos que estão no movimento OFX
                                                    sair = true;
                                                    break;
                                                }
                                            }
                                        }
                                    } //Segundo using
                                }
                            }         //Terceiro using
                        }

                        else
                        {
                            MessageBox.Show("O Movimento já está cadastrado!", "Aviso", MessageBoxButtons.OK,
                                            MessageBoxIcon.Information, MessageBoxDefaultButton.Button1);
                        }
                    }//using
                }

                //Condição quando a data do movimento for maior que a data atual (evitando lançamento futuros) que mudam descrição
                else
                {
                    MessageBox.Show("Lançamento com data futura não será incluido nesta conciliação." + Environment.NewLine +
                                    "será importado no documento com a data correta", "Aviso", MessageBoxButtons.OK,
                                    MessageBoxIcon.Information, MessageBoxDefaultButton.Button1);
                }
            }//Fim do foreach

            //Aqui verificar se a lstConciliado não é vazia se não for vazia
            //loop na lista inserindo na tabela movimento e atualizando a tabela titulo

            if (lstConciliado.Count != 0 && sair == false)
            {
                MessageBox.Show("Vamos efetuar as alterações na base de dados", "AVISO", MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1);

                foreach (frmConcilia.Conciliado movBanco in lstConciliado)
                {
                    //Incluir as informações na tabela Movimento
                    Gerenciador.Data.dbGerenciadorEntities objGerenciador = new Gerenciador.Data.dbGerenciadorEntities();
                    var objMovimento = new Gerenciador.Data.Movimento();

                    objMovimento.data      = movBanco.dtMovimento;
                    objMovimento.tipo      = movBanco.tipo;
                    objMovimento.valor     = Convert.ToDecimal(movBanco.vlBaixado);
                    objMovimento.numero    = Convert.ToString(movBanco.numero);
                    objMovimento.descricao = movBanco.descricao;
                    objMovimento.conta     = movBanco.conta;
                    objMovimento.id_titulo = movBanco.idTitulo;
                    objGerenciador.AddToMovimento(objMovimento);
                    objGerenciador.SaveChanges();

                    //Atualiza a tabela Titulo ( Com data da baixa, valor pago, em que banco foi pago)
                    using (var objUpdate = new dbGerenciadorEntities())
                    {
                        var objTitulo = new Gerenciador.Data.Titulo();

                        objTitulo = (from conv in objUpdate.Titulo
                                     where conv.id == movBanco.idTitulo
                                     select conv).First();

                        objTitulo.baixado       = Convert.ToString(movBanco.baixado);
                        objTitulo.dta_baixa     = movBanco.dtMovimento;
                        objTitulo.vlr_pagamento = Convert.ToDecimal(movBanco.vlBaixado);
                        objTitulo.conta_baixa   = movBanco.conta;
                        objUpdate.SaveChanges();
                    }
                }//FIm loop da inclusão

                MessageBox.Show("Atualizações efetuadas com sucesso!", "AVISO", MessageBoxButtons.OK, MessageBoxIcon.Information,
                                MessageBoxDefaultButton.Button1);
            }//Fim atualização banco de dados
        }
Exemplo n.º 8
0
        //Função para conciliar
        public void startConc()
        {
            //Varivel que finalizara tudo caso o titulo não seja cadastrado
            bool sair;
            sair = false;

            //Percorrer todos os movimentos
            foreach (OFX_Movimento mov in movimentos)
            {
                //Verificar se a data do movimento maior data atual evitando
                //lançamentos futuros do extrato
                if (mov.Data.Date <= DateTime.Now.Date)
                {

                    //Verifica se já não existe o movimento evitando duplicidade
                    Decimal valor = Convert.ToDecimal(mov.Valor);

                    using (var objVerExiste = new dbGerenciadorEntities())
                    {
                        //Arrumei fazendo estas conversões pois não altera o banco
                        //Na hora de salvar na tabela movimento o parametro transforma em string em int
                        //Agora temos que fazer o contrario
                        int ID = Convert.ToInt32(mov.Id);
                        string sID = Convert.ToString(ID);

                        var query = from conv in objVerExiste.Movimento
                                    where (conv.data == mov.Data.Date && conv.valor == valor && conv.numero == sID)
                                    select conv;

                        var ListaFinal = query.ToList();

                        //Não tem duplicidade
                        if (ListaFinal.Count == 0)
                        {
                            using (var objPesqVctoValor = new dbGerenciadorEntities())
                            {
                                //Primeira pesquisa por Vencimento e Valor de titulos que não tenham sido baixados
                                var queryTitulo = from titulo in objPesqVctoValor.Titulo
                                                  join relacao in objPesqVctoValor.Relacao on
                                                      titulo.relacao equals relacao.id
                                                  where (titulo.vencimento == mov.Data.Date && titulo.valor == valor && titulo.baixado == null)
                                                  select new
                                                  {
                                                      titulo.id,
                                                      titulo.numero,
                                                      relacao.Nome,
                                                      titulo.tipo,
                                                      titulo.parcela,
                                                      titulo.valor,
                                                      titulo.vencimento,
                                                      titulo.natureza,
                                                      titulo.descricao
                                                  };

                                var ListaTitulos = queryTitulo.ToList();

                                //A primeira pesquisa retornou valor
                                if (ListaTitulos.Count != 0)
                                {
                                    //Exibe o formulario com todos os titulos encontrado possibilitando escolha do titulo para baixa

                                    //Cria uma lista que será passada como ponteiro(ref) ao formulario concilia
                                    //Para que as alterações permanecam apos o fechamento do formulario
                                    frmConcilia.Conciliado passar = new frmConcilia.Conciliado();

                                    //Chama o formulario passando os objects retornados da busca com vencimento e valor, o movimento do OFX
                                    // e a lista de referência que será alterada
                                    frmConcilia formConcilia = new frmConcilia(ListaTitulos, mov, ref passar);
                                    formConcilia.ShowDialog();

                                    //Obtem o numero da conta
                                    string[] split = agConta.Split('/');
                                    //Depois do split realiza a conversão para inteiro
                                    int conta = Convert.ToInt32(split[1]);
                                    //Adiciona o numero da conta a classe conciliado
                                    passar.conta = conta;

                                    //Adiciona a lista de referência a lista de conciliados
                                    lstConciliado.Add(passar);
                                }

                                else
                                {

                                    using (var objPesqValor = new dbGerenciadorEntities())
                                    {
                                        //Se a primeira pesquisa não retornar vamos pesquisar apenas por valor que não tenha
                                        //sida anteriormente baixados

                                        var queryTitulo_val = from titulo in objPesqValor.Titulo
                                                              join relacao in objPesqValor.Relacao on
                                                              titulo.relacao equals relacao.id
                                                              where titulo.valor == valor && titulo.baixado == null
                                                              select new
                                                              {
                                                                  titulo.id,
                                                                  titulo.numero,
                                                                  relacao.Nome,
                                                                  titulo.tipo,
                                                                  titulo.parcela,
                                                                  titulo.valor,
                                                                  titulo.vencimento,
                                                                  titulo.natureza,
                                                                  titulo.descricao
                                                              };

                                        var ListaTitulos_val = queryTitulo_val.ToList();

                                        //A primeira pesquisa retornou valor
                                        if (ListaTitulos_val.Count != 0)
                                        {

                                            //Exibe o formulario com todos os titulos encontrado possibilitando escolha do titulo para baixa

                                            //Cria uma lista que será passada como ponteiro(ref) ao formulario concilia
                                            //Para que as alterações permanecam apos o fechamento do formulario
                                            frmConcilia.Conciliado passar = new frmConcilia.Conciliado();

                                            //Chama o formulario passando os objects retornados da busca com vencimento e valor, o movimento do OFX
                                            // e a lista de referência que será alterada
                                            frmConcilia formConcilia = new frmConcilia(ListaTitulos_val, mov, ref passar);
                                            formConcilia.ShowDialog();

                                            //Obtem o numero da conta
                                            string[] split = agConta.Split('/');
                                            //Depois do split realiza a conversão para inteiro
                                            int conta = Convert.ToInt32(split[1]);
                                            //Adiciona o numero da conta a classe conciliado
                                            passar.conta = conta;

                                            lstConciliado.Add(passar);

                                        }

                                        //Nenhuma pesquisa retornou agora precisamos cadastrar o titulo
                                        else
                                        {
                                            //Exibir Formulario para cadastrar ou editar Titulo

                                            //Informações do movimento para cadastrar um titulo
                                            DateTime dtMovimento = mov.Data;
                                            Double vlMovimento = mov.Valor;

                                            //Exibe informação sobre o movimento sem titulo correnpondente encontrado
                                            MessageBox.Show("Título não encontrado:" + Environment.NewLine +
                                                "Data:  " + dtMovimento.Date + Environment.NewLine +
                                                "Valor:  " + vlMovimento + Environment.NewLine +
                                                "Descrição: " + mov.Descricao, "Titulo x Movimento", MessageBoxButtons.OK,
                                                MessageBoxIcon.Information, MessageBoxDefaultButton.Button1);

                                            //Exibe o formulario para cadastrar o titulo
                                            frmCadTitulo cadMovimento = new frmCadTitulo(dtMovimento, vlMovimento);
                                            cadMovimento.ShowDialog();

                                            //Apos fechar o formulario realiza de novo busca
                                            using (var objNovaPesq = new dbGerenciadorEntities())
                                            {
                                                //Primeira pesquisa por Vencimento e Valor
                                                var queryNovoTitulo = from titulo in objNovaPesq.Titulo
                                                                      join relacao in objNovaPesq.Relacao on
                                                                          titulo.relacao equals relacao.id
                                                                      where (titulo.vencimento == mov.Data.Date && titulo.valor == valor && titulo.baixado == null)
                                                                      select new
                                                                      {
                                                                          titulo.id,
                                                                          titulo.numero,
                                                                          relacao.Nome,
                                                                          titulo.tipo,
                                                                          titulo.parcela,
                                                                          titulo.valor,
                                                                          titulo.vencimento,
                                                                          titulo.natureza,
                                                                          titulo.descricao
                                                                      };

                                                var ListaNovosTitulos = queryNovoTitulo.ToList();

                                                //Verifica se houve retorno
                                                if (ListaNovosTitulos.Count != 0)
                                                {
                                                    //Exibe o formulario com todos os titulos encontrado possibilitando a baixa
                                                    frmConcilia.Conciliado passar = new frmConcilia.Conciliado();

                                                    frmConcilia formConcilia = new frmConcilia(ListaNovosTitulos, mov, ref passar);
                                                    formConcilia.ShowDialog();

                                                    //Obtem o numero da conta
                                                    string[] split = agConta.Split('/');
                                                    //Depois do split realiza a conversão para inteiro
                                                    int conta = Convert.ToInt32(split[1]);
                                                    //Adiciona o numero da conta a classe conciliado
                                                    passar.conta = conta;

                                                    lstConciliado.Add(passar);
                                                }
                                                else
                                                {
                                                    MessageBox.Show("Titulo ainda não foi cadastrado" + Environment.NewLine +
                                                        "Para garantir a integridade do processo não podemos continuar" + Environment.NewLine +
                                                        "Cadastre o titulo e tente novamente", "Aviso");
                                                    //Como se diz para garantir integridade não podemos terminar conciliação sem cadastrar
                                                    //todos os titulos que estão no movimento OFX
                                                    sair = true;
                                                    break;

                                                }

                                            }
                                        }
                                    }//Segundo using
                                }
                            }//Terceiro using
                        }

                        else
                        {

                            MessageBox.Show("O Movimento já está cadastrado!", "Aviso", MessageBoxButtons.OK,
                                             MessageBoxIcon.Information, MessageBoxDefaultButton.Button1);

                        }

                    }//using

                }

                    //Condição quando a data do movimento for maior que a data atual (evitando lançamento futuros) que mudam descrição
                else
                {

                    MessageBox.Show("Lançamento com data futura não será incluido nesta conciliação." + Environment.NewLine +
                                    "será importado no documento com a data correta", "Aviso", MessageBoxButtons.OK,
                                    MessageBoxIcon.Information, MessageBoxDefaultButton.Button1);

                }

            }//Fim do foreach

            //Aqui verificar se a lstConciliado não é vazia se não for vazia
            //loop na lista inserindo na tabela movimento e atualizando a tabela titulo

            if (lstConciliado.Count != 0 && sair == false)
            {
                MessageBox.Show("Vamos efetuar as alterações na base de dados", "AVISO", MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1);

                foreach (frmConcilia.Conciliado movBanco in lstConciliado)
                {
                    //Incluir as informações na tabela Movimento
                    Gerenciador.Data.dbGerenciadorEntities objGerenciador = new Gerenciador.Data.dbGerenciadorEntities();
                    var objMovimento = new Gerenciador.Data.Movimento();

                    objMovimento.data = movBanco.dtMovimento;
                    objMovimento.tipo = movBanco.tipo;
                    objMovimento.valor = Convert.ToDecimal(movBanco.vlBaixado);
                    objMovimento.numero = Convert.ToString(movBanco.numero);
                    objMovimento.descricao = movBanco.descricao;
                    objMovimento.conta = movBanco.conta;
                    objMovimento.id_titulo = movBanco.idTitulo;
                    objGerenciador.AddToMovimento(objMovimento);
                    objGerenciador.SaveChanges();

                    //Atualiza a tabela Titulo ( Com data da baixa, valor pago, em que banco foi pago)
                    using (var objUpdate = new dbGerenciadorEntities())
                    {

                        var objTitulo = new Gerenciador.Data.Titulo();

                        objTitulo = (from conv in objUpdate.Titulo
                                     where conv.id == movBanco.idTitulo
                                     select conv).First();

                        objTitulo.baixado = Convert.ToString(movBanco.baixado);
                        objTitulo.dta_baixa = movBanco.dtMovimento;
                        objTitulo.vlr_pagamento = Convert.ToDecimal(movBanco.vlBaixado);
                        objTitulo.conta_baixa = movBanco.conta;
                        objUpdate.SaveChanges();

                    }

                }//FIm loop da inclusão

                MessageBox.Show("Atualizações efetuadas com sucesso!", "AVISO", MessageBoxButtons.OK, MessageBoxIcon.Information,
                                MessageBoxDefaultButton.Button1);

            }//Fim atualização banco de dados
        }