示例#1
0
        //Excluir o titulo selecionado
        private void btnExcluirEmail_Click(object sender, EventArgs e)
        {
            if (MessageBox.Show("Deseja mesmo excluir a  Conta selecionado?", "Aviso", MessageBoxButtons.YesNo,
                                MessageBoxIcon.Question, MessageBoxDefaultButton.Button1) == System.Windows.Forms.DialogResult.Yes)
            {
                try
                {
                    foreach (DataGridViewRow linha in dtgEmail.SelectedRows)
                    {
                        string idApagar = Convert.ToString(linha.Cells[0].Value);

                        using (var objGerenciador = new dbGerenciadorEntities())
                        {
                            var mensagem = (from deleteEmail in objGerenciador.email
                                            where (deleteEmail.email1 == idApagar)
                                            select deleteEmail).First();

                            objGerenciador.DeleteObject(mensagem);
                            objGerenciador.SaveChanges();

                            MessageBox.Show("Conta excluida!", "Aviso");
                            atualizaGrid();
                        }
                    }
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }
            }
        }
示例#2
0
        //Excluir conta
        private void btnExcluirConta_Click(object sender, EventArgs e)
        {
            if (MessageBox.Show("Deseja mesmo excluir a conta selecionado?", "Aviso", MessageBoxButtons.YesNo,
                                MessageBoxIcon.Question, MessageBoxDefaultButton.Button1) == System.Windows.Forms.DialogResult.Yes)
            {
                try
                {
                    foreach (DataGridViewRow linha in dtgConta.SelectedRows)
                    {
                        int idConta = Convert.ToInt32(linha.Cells[0].Value);

                        using (var objGerenciador = new dbGerenciadorEntities())
                        {
                            var mensagem = (from deleteConta in objGerenciador.Conta
                                            where (deleteConta.numero == idConta)
                                            select deleteConta).First();

                            objGerenciador.DeleteObject(mensagem);
                            objGerenciador.SaveChanges();
                            carregaGrids();
                            MessageBox.Show("Conta excluida!", "Aviso");
                        }
                    }
                }
                catch (Exception ex)
                {
                    MessageBox.Show("Erro: " + ex.Message, "Aviso");
                }
            }
        }
示例#3
0
        //Excluir o titulo selecionado
        private void toolStripButton4_Click(object sender, EventArgs e)
        {
            if (dtgTitulo.SelectedRows.Count != 0)
            {
                if (MessageBox.Show("Deseja mesmo excluir Titulo selecionado?", "Aviso", MessageBoxButtons.YesNo,
                                    MessageBoxIcon.Question, MessageBoxDefaultButton.Button1) == System.Windows.Forms.DialogResult.Yes)
                {
                    try
                    {
                        foreach (DataGridViewRow linha in dtgTitulo.SelectedRows)
                        {
                            int idApagar = Convert.ToInt32(linha.Cells[0].Value);

                            using (var objGerenciador = new dbGerenciadorEntities())
                            {
                                var mensagem = (from deleteTitulo in objGerenciador.Titulo
                                                where (deleteTitulo.id == idApagar)
                                                select deleteTitulo).First();

                                objGerenciador.DeleteObject(mensagem);
                                objGerenciador.SaveChanges();

                                MessageBox.Show("Titulo excluido!", "Aviso");
                                atualizaDtgrid();
                            }
                        }
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show(ex.Message);
                    }
                }
            }
        }
        //Excluir o usuario
        private void btnExcluir_Click(object sender, EventArgs e)
        {
            if (MessageBox.Show("Deseja mesmo excluir o usuario selecionado?", "Aviso", MessageBoxButtons.YesNo,
                                MessageBoxIcon.Question, MessageBoxDefaultButton.Button1) == System.Windows.Forms.DialogResult.Yes)
            {
                try
                {
                    //Verifica se temos mais de uma conta (somente uma não exclui)
                    using (var objGerenciador1 = new dbGerenciadorEntities())
                    {
                        var query = from conv in objGerenciador1.usuario
                                    select conv;
                        var ListaFinal = query.ToList();


                        if (ListaFinal.Count > 1)
                        {
                            foreach (DataGridViewRow linha in dtgUsuario.SelectedRows)
                            {
                                string idusuario = Convert.ToString(linha.Cells[0].Value);

                                using (var objGerenciador = new dbGerenciadorEntities())
                                {
                                    var mensagem = (from deleteUsuario in objGerenciador.usuario
                                                    where (deleteUsuario.nome == idusuario)
                                                    select deleteUsuario).First();

                                    objGerenciador.DeleteObject(mensagem);
                                    objGerenciador.SaveChanges();

                                    dtgUsuario.AutoGenerateColumns = false;
                                    dtgUsuario.DataSource          = carregaUser();
                                    MessageBox.Show("Usuário excluido!", "Aviso");
                                }
                            }
                        }
                        else
                        {
                            MessageBox.Show("Só existe uma conta de usuário cadastrada, para exclusão precisamos de no minimo 2 contas", "Aviso");
                        }
                    }
                }
                catch (Exception ex)
                {
                    MessageBox.Show("Erro: " + ex.Message, "Aviso");
                }
            }
        }
示例#5
0
        //Confirma e grava agência no banco
        private void btnConfirmar_Click(object sender, EventArgs e)
        {
            //Chamar a função de validação dos campos (validação centralizada em uma classe)
            Validar valida = new Validar();

            if (valida.valCampoVazio(this.Controls) == true)
            {
                //Incluir
                if (_altera == false)
                {
                    Gerenciador.Data.dbGerenciadorEntities objGerenciador = new Gerenciador.Data.dbGerenciadorEntities();
                    var objAgencia = new Gerenciador.Data.Agencia();

                    objAgencia.numero    = Convert.ToInt32(txtNumeroAgencia.Text);
                    objAgencia.banco     = Convert.ToInt32(cmbBancoCadAgencia.Text);
                    objAgencia.descricao = txtDescAgencia.Text;

                    objGerenciador.AddToAgencia(objAgencia);
                    objGerenciador.SaveChanges();

                    MessageBox.Show("Agência Cadastrada com sucesso!", "Cadastro", MessageBoxButtons.OK, MessageBoxIcon.Information,
                                    MessageBoxDefaultButton.Button2);
                    this.Close();
                }
                //ALTERAR
                else
                {
                    using (var objGerenciador = new dbGerenciadorEntities())
                    {
                        var objAgencia = new Gerenciador.Data.Agencia();
                        objAgencia = (from conv in objGerenciador.Agencia
                                      where conv.numero == _numeroAG
                                      select conv).First();

                        objAgencia.numero    = Convert.ToInt32(txtNumeroAgencia.Text);
                        objAgencia.banco     = Convert.ToInt32(cmbBancoCadAgencia.Text);
                        objAgencia.descricao = txtDescAgencia.Text;
                        objGerenciador.SaveChanges();

                        MessageBox.Show("Agência alterada com sucesso!", "Cadastro", MessageBoxButtons.OK, MessageBoxIcon.Information,
                                        MessageBoxDefaultButton.Button2);
                        this.Close();
                    }
                }
            }
        }
示例#6
0
        //Confirmar gravação no banco
        private void btnConfirmar_Click(object sender, EventArgs e)
        {
            //Chamar a função de validação dos campos
            Validar valida = new Validar();

            if (valida.valCampoVazio(this.Controls) == true)
            {
                if (_altera == false)
                {
                    //Incluir
                    Gerenciador.Data.dbGerenciadorEntities objGerenciador = new Gerenciador.Data.dbGerenciadorEntities();
                    var objBanco = new Gerenciador.Data.Banco();

                    objBanco.numero    = Convert.ToInt32(txtNumeroBanco.Text);
                    objBanco.descricao = txtNomeBanco.Text;
                    objGerenciador.AddToBanco(objBanco);
                    objGerenciador.SaveChanges();

                    MessageBox.Show("Banco Cadastrado com sucesso!", "Cadastro", MessageBoxButtons.OK,
                                    MessageBoxIcon.Information, MessageBoxDefaultButton.Button2);
                    this.Close();
                }

                //Alterar
                else
                {
                    using (var objGerenciador = new dbGerenciadorEntities())
                    {
                        var objBanco = new Gerenciador.Data.Banco();
                        objBanco = (from conv in objGerenciador.Banco
                                    where conv.numero == _numero
                                    select conv).First();

                        objBanco.descricao = txtNomeBanco.Text;
                        objBanco.numero    = Convert.ToInt32(txtNumeroBanco.Text);
                        objGerenciador.SaveChanges();

                        MessageBox.Show("Banco Alterado com sucesso!", "Cadastro", MessageBoxButtons.OK,
                                        MessageBoxIcon.Information, MessageBoxDefaultButton.Button2);
                        this.Close();
                    }
                }
            }
        }
        //Excluir natureza
        private void btnExcluir_Click(object sender, EventArgs e)
        {
            if (MessageBox.Show("Deseja mesmo excluir o natureza selecionada?", "Aviso", MessageBoxButtons.YesNo,
                                MessageBoxIcon.Question, MessageBoxDefaultButton.Button1) == System.Windows.Forms.DialogResult.Yes)
            {
                try
                {
                    //Verifica se temos mais de uma conta (somente uma não exclui)
                    using (var objGerenciador1 = new dbGerenciadorEntities())
                    {
                        var query = from conv in objGerenciador1.Natureza
                                    select conv;
                        var ListaFinal = query.ToList();


                        if (ListaFinal.Count > 0)
                        {
                            foreach (DataGridViewRow linha in dtgNatureza.SelectedRows)
                            {
                                string idNat = Convert.ToString(linha.Cells[0].Value);

                                using (var objGerenciador = new dbGerenciadorEntities())
                                {
                                    var mensagem = (from deleteNat in objGerenciador.Natureza
                                                    where (deleteNat.nome == idNat)
                                                    select deleteNat).First();

                                    objGerenciador.DeleteObject(mensagem);
                                    objGerenciador.SaveChanges();

                                    dtgNatureza.AutoGenerateColumns = false;
                                    dtgNatureza.DataSource          = carregaNat();
                                    MessageBox.Show("Natureza excluida!", "Aviso");
                                }
                            }
                        }
                    }
                }
                catch (Exception ex)
                {
                    MessageBox.Show("Erro: " + ex.Message);
                }
            }
        }
示例#8
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();
                }
            }
        }
示例#9
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
        }
示例#10
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
        }