//Load do formulario carrega todos os bancos no cmbNumeroBanco caso //não tenha banco exibe formulario cadastro de banco frmCadBanco public void loadComboBanco() { //Realiza a busca no banco using (var objGerenciador = new dbGerenciadorEntities()) { var query = from conv in objGerenciador.Banco select conv; var ListaBanco = query.ToList(); //Verifica se tem retorno ( existe banco cadastrado ) if (ListaBanco.Count == 0) { //Se não tiver retorno oferece a oportunidade de cadastrar o banco if (MessageBox.Show("Nenhum banco está cadastrado" + Environment.NewLine + "Gostaria de cadastrar um banco agora?", "Aviso", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2) == System.Windows.Forms.DialogResult.Yes) { frmCadBanco cadBanco = new frmCadBanco(); cadBanco.ShowDialog(); loadComboBanco(); } } else { //Se tiver o banco preenche combobox cmbNumeroBanco.DataSource = ListaBanco; cmbNumeroBanco.DisplayMember = "numero"; cmbNumeroBanco.ValueMember = "numero"; } } }
//Atualiza grid public void atualizaGrid() { try { using (var objGerenciador = new dbGerenciadorEntities()) { var qEmail = from conv in objGerenciador.email select new { conv.email1, conv.smtp, conv.porta }; var ListaEmail = qEmail.ToList(); dtgEmail.AutoGenerateColumns = false; dtgEmail.DataSource = ListaEmail; } } catch (Exception ex) { MessageBox.Show("Erro:" + ex.Message); } }
//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); } } }
//Carrega o combo com as contas de e-mail de destino public void carregaConta() { using (var objGerenciador = new dbGerenciadorEntities()) { var qEmail = from rEmail in objGerenciador.email select rEmail; var ListaEmail = qEmail.ToList(); //Verifica se tem retorno if (ListaEmail.Count == 0) { //Se não tiver retorno abre o formulario de cadastro if (MessageBox.Show("Nenhum email está cadastrada" + Environment.NewLine + "Gostaria de cadastrar agora?", "Aviso", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2) == System.Windows.Forms.DialogResult.Yes) { frmCadEmail cadEmail = new frmCadEmail(); cadEmail.ShowDialog(); carregaConta(); } } else { //Se tiver o banco preenche combobox cmbDestEmail.DataSource = ListaEmail; cmbDestEmail.DisplayMember = "email"; cmbDestEmail.ValueMember = "email1"; } } }
//Obtem as estimativas de saldo diponivel considerando os titulos public void calculaSaldo() { decimal somaSaldo = 0; decimal somaTituloMes = 0; decimal somaTituloAno = 0; //Percorre o saldo das contas no datagridview foreach (DataGridViewRow linha in dtgSaldoContas.Rows) { somaSaldo = somaSaldo + Convert.ToDecimal(linha.Cells[4].Value); } //Obtem o valor dos titulos de um mês using (var objGerenciador = new dbGerenciadorEntities()) { DateTime umMes = DateTime.Now.AddMonths(1).Date; var qTituloMes = from tituloMes in objGerenciador.Titulo where (tituloMes.vencimento <= umMes && tituloMes.baixado == null) select tituloMes.valor; var ListaTituloMes = qTituloMes.ToList(); if (ListaTituloMes.Count != 0) { foreach (Decimal tit in ListaTituloMes) { somaTituloMes += tit; } } } //Obtem o valor dos titulos de um ano using (var objGerenciador = new dbGerenciadorEntities()) { DateTime umAno = DateTime.Now.AddYears(1).Date; var qTituloAno = from tituloAno in objGerenciador.Titulo where (tituloAno.vencimento <= umAno && tituloAno.baixado == null) select tituloAno.valor; var ListaTituloAno = qTituloAno.ToList(); if (ListaTituloAno.Count != 0) { foreach (Decimal tit in ListaTituloAno) { somaTituloAno += tit; } } } lblProximo.Text = string.Format("{0:C}", (somaSaldo + somaTituloMes)); lblAno.Text = string.Format("{0:C}", (somaSaldo + somaTituloAno)); }
//Confirma logitbm private void btnConfirmaLogin_Click(object sender, EventArgs e) { try { using (var objGerenciador = new dbGerenciadorEntities()) { var qUsuario = from conv in objGerenciador.usuario where conv.nome == txtUsuario.Text select new { conv.nome, conv.senha }; var ListaFinal = qUsuario.ToList(); if (ListaFinal.Count == 0) { MessageBox.Show("Usuário ou senha invalidos", "Aviso"); } else { //Verificar a senha em etapas com varias condições ggRt04 val = new ggRt04(); if (val.somaSaldo(txtSenha.Text) == ListaFinal[0].senha) { frmPrincipal inicia = new frmPrincipal(); this.Hide(); inicia.ShowDialog(); Application.Exit(); } else { MessageBox.Show("Usuário ou senha invalidos", "Aviso"); } } } } catch (Exception ex) { MessageBox.Show("Erro:" + 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"); } } }
//Função que carrega todos os titulos public object carregaTitulos() { try { using (var objGerenciador = new dbGerenciadorEntities()) { DateTime hoje = DateTime.Now.Date; var query = from conv in objGerenciador.Titulo join convRel in objGerenciador.Relacao on conv.relacao equals convRel.id orderby conv.vencimento //descending select new { conv.id, conv.vencimento, conv.numero, relacao = (convRel.Nome), conv.natureza, conv.parcela, conv.valor, conv.descricao, conv.baixado, conv.dta_baixa, conv.conta_baixa, conv.codigoBarras }; var ListaFinal = query.ToList(); if (ListaFinal.Count != 0) { return ListaFinal; } else { List<Titulo> lstVazia = new List<Titulo>(); return lstVazia; } } } catch (Exception ex) { List<Titulo> lstVazia = new List<Titulo>(); MessageBox.Show("Erro: " + ex.Message); return lstVazia; } }
//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); } } }
//Verifica primeira inicialização public bool valExisteUsuario() { using (var objGerenciador = new dbGerenciadorEntities()) { var query = from conv in objGerenciador.usuario select conv; var ListaFinal = query.ToList(); if (ListaFinal.Count == 0) { return false; } } return true; }
//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(); } } } }
//Devolve true ou false verificando se existe conta cadastrada public bool temConta() { using (var objGerenciador = new dbGerenciadorEntities()) { var qContas = from contas in objGerenciador.Conta select contas; var ListaFinal = qContas.ToList(); if (ListaFinal.Count == 0) { return false; } } return true; }
//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(); } } } }
//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(); } } } }
//Confirma cadastro da relação private void btnOkRelacao_Click(object sender, EventArgs e) { //Validar campos preechidos //Função de validação Validar valida = new Validar(); if (valida.valCampoVazio(this.Controls) == true) { //Verificar se a relação já existe using (var objGerenciador = new dbGerenciadorEntities()) { var query = from conv in objGerenciador.Relacao where (conv.Nome == txtNomeRelacao.Text && conv.Tipo == cmbTipoRelacao.Text) select conv; var ListaFinal = query.ToList(); //Se não tiver cadastrada realiza o cadastro if (ListaFinal.Count == 0) { Gerenciador.Data.dbGerenciadorEntities objGerenciador1 = new Gerenciador.Data.dbGerenciadorEntities(); var objRelacao = new Gerenciador.Data.Relacao(); objRelacao.Nome = txtNomeRelacao.Text; objRelacao.Tipo = cmbTipoRelacao.Text; objGerenciador1.AddToRelacao(objRelacao); objGerenciador1.SaveChanges(); MessageBox.Show("Relação cadastrada com sucesso", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1); txtNomeRelacao.Text = ""; txtNomeRelacao.Focus(); } else { MessageBox.Show("Relação já cadastrada", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button1); txtNomeRelacao.Text = ""; } } } }
//Carrega o grid List<Natureza> carregaNat() { try { using (var objGerenciador = new dbGerenciadorEntities()) { var query = from conv in objGerenciador.Natureza select conv; var ListaFinal = query.ToList(); return ListaFinal; } } catch (Exception ex) { List<Natureza> padrao = new List<Natureza>(); MessageBox.Show("Erro: " + ex.Message); return padrao; } }
//Devolve uma lista com os bancos cadastrados public List<Banco> gridBanco() { using (var objGerenciador = new dbGerenciadorEntities()) { var qBanco = from banco in objGerenciador.Banco select banco; var ListaBanco = qBanco.ToList(); //Verifica se houve retorno if (ListaBanco.Count == 0) { //Não tem banco devolve lista em branco List<Banco> listaVazia = new List<Banco>(); return listaVazia; } else { return ListaBanco; } } }
//Carrega combo das agências baseado no banco se não existe exibe o frmCadAgencia public void loadComboAgencia() { //Realiza a busca no banco using (var objGerenciador = new dbGerenciadorEntities()) { int nBanco = Convert.ToInt32(cmbNumeroBanco.SelectedValue); var query = from conv in objGerenciador.Agencia where conv.banco == nBanco select conv; var ListaAgencia = query.ToList(); //Verifica se tem retorno if (ListaAgencia.Count == 0) { //Se não tiver retorno abre o formulario de cadastro if (MessageBox.Show("Nenhuma Agência está cadastrada" + Environment.NewLine + " Gostaria de cadastrar uma agência agora?", "Aviso", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2) == System.Windows.Forms.DialogResult.Yes) { frmCadAgencia cadAgencia = new frmCadAgencia(cmbNumeroBanco.SelectedValue.ToString()); cadAgencia.ShowDialog(); loadComboAgencia(); } } else { //Se tiver o banco preenche combobox cmbAgenciaNumero.DataSource = ListaAgencia; cmbAgenciaNumero.DisplayMember = "numero"; cmbAgenciaNumero.ValueMember = "numero"; } } }
//Confirmar geral (GRAVAR A CONTA) private void btnConfirmar_Click(object sender, EventArgs e) { //Chama validação campos Validar valida = new Validar(); if (valida.valCampoVazio(this.Controls) == true) { //Incluir Gerenciador.Data.dbGerenciadorEntities objGerenciador = new Gerenciador.Data.dbGerenciadorEntities(); var objConta = new Gerenciador.Data.Conta(); objConta.numero = Convert.ToInt32(txtNumeroConta.Text); objConta.agencia = Convert.ToInt32(cmbAgenciaNumero.SelectedValue); objConta.descricao = txtDescricaoConta.Text; objConta.saldo = Convert.ToDecimal(txtSaldoConta.Text); objConta.data_criacao = DateTime.Now.Date; objGerenciador.AddToConta(objConta); objGerenciador.SaveChanges(); MessageBox.Show("Conta Cadastrado com sucesso!", "Cadastro", MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button2); this.Close(); } }
//Incluir Naturezas private void btnOkNatureza_Click(object sender, EventArgs e) { //Validar campos preechidos //Função de validação Validar valida = new Validar(); if (valida.valCampoVazio(this.Controls) == true) { Gerenciador.Data.dbGerenciadorEntities objGerenciador = new Gerenciador.Data.dbGerenciadorEntities(); var objNatureza = new Gerenciador.Data.Natureza(); objNatureza.nome = txtNomeNatureza.Text; objNatureza.descricao = txtDescNatureza.Text; objGerenciador.AddToNatureza(objNatureza); objGerenciador.SaveChanges(); MessageBox.Show("Natureza cadastrada com sucesso!", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button2); txtDescNatureza.Text = ""; txtNomeNatureza.Text = ""; txtNomeNatureza.Focus(); } }
//Botão confirma gravação do e-mail private void btnOkEmail_Click(object sender, EventArgs e) { //Chamar a função de validação dos campos Validar valida = new Validar(); //Valida o campos vazios o e-mail correto e a redigitação da senha if (valida.valCampoVazio(this.Controls) == true && ValidaEnderecoEmail(txtEmail.Text) == true && ValidaSenha() == true) { try { ggRt04 pass = new ggRt04(); Gerenciador.Data.dbGerenciadorEntities objGerenciador = new Gerenciador.Data.dbGerenciadorEntities(); var objEmail = new Gerenciador.Data.email(); objEmail.email1 = txtEmail.Text; objEmail.smtp = txtSmtp.Text; objEmail.porta = Convert.ToInt32(txtPorta.Text); objEmail.senha = pass.somaSaldo(txtSenha.Text); objEmail.observacao = txtObs.Text; objGerenciador.AddToemail(objEmail); objGerenciador.SaveChanges(); MessageBox.Show("Email cadastrado com sucesso!", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1); this.Close(); } catch (Exception ex) { MessageBox.Show("Erro: " + ex.Message); } } }
//Devolve uma lista com as agências cadastradas public List<Agencia> gridAgencia() { using (var objGerenciador = new dbGerenciadorEntities()) { var qAgencia = from pAgencia in objGerenciador.Agencia select pAgencia; var ListaAgencia = qAgencia.ToList(); //Verifica se houve retorno if (ListaAgencia.Count == 0) { //Não tem banco devolve lista em branco List<Agencia> listaVazia = new List<Agencia>(); return listaVazia; } else { return ListaAgencia; } } }
//Função que retorna os saldos das contas public List<object> saldoContas() { //Lista guarda as contas e os saldos ela que será retornada List<object> saldoContas = new List<object>(); using (var objGerenciador = new dbGerenciadorEntities()) { //Selecionar todas as contas var contas = from conta in objGerenciador.Conta select conta; var ListaContas = contas.ToList(); //Verifica se retornou alguma conta if (ListaContas.Count != 0) { //Percorre cada conta foreach (Conta loopConta in ListaContas) { //Obtem numero do banco //Variavel que obtem o numero do banco int bancoNome; using (var objNumeroBanco = new dbGerenciadorEntities()) { var queryNomeBanco = from nomeBanco in objNumeroBanco.Banco join agencia in objNumeroBanco.Agencia on nomeBanco.numero equals agencia.banco where (agencia.numero == loopConta.agencia) select nomeBanco.numero; var listaNome = queryNomeBanco.ToList(); bancoNome = listaNome[0]; } //Verifica se a conta tem movimento using (var objTemMovimento = new dbGerenciadorEntities()) { var query = from mov in objTemMovimento.Movimento where (mov.conta == loopConta.numero) select mov; var ListaTemMovimento = query.ToList(); //Se tiver movimento if (ListaTemMovimento.Count != 0) { //Começo quando tem movimento using (var objSaldoConta = new dbGerenciadorEntities()) { //Obter saldos das contas var querySaldo = from movimento in objSaldoConta.Movimento where (movimento.conta == loopConta.numero) group movimento.valor by movimento.conta into tSaldo select new { banco = bancoNome, loopConta.agencia, loopConta.numero, loopConta.descricao, saldo = (loopConta.saldo + tSaldo.Sum(movimento => movimento)) }; saldoContas.Add(querySaldo.First()); }//Fim quando tem movimento } //Quando a conta não tem movimento devolve o saldo else { var retornoPadrao = new { banco = bancoNome, loopConta.agencia, loopConta.numero, loopConta.descricao, loopConta.saldo }; saldoContas.Add(retornoPadrao); } } } }//Fim do if que verifica as contas(se existem) }//Fim primeiro using return saldoContas; }
//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 }
//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"); } } }
//Função que retorna list com os titulos vencidos public object carregaVencidos() { try { using (var objGerenciador = new dbGerenciadorEntities()) { DateTime hoje = DateTime.Now.Date; var query = from conv in objGerenciador.Titulo join convRel in objGerenciador.Relacao on conv.relacao equals convRel.id where (conv.vencimento < hoje && conv.baixado == null) //Menores que hoje e não baixados select new { conv.vencimento, relacao = (convRel.Nome), conv.valor, conv.natureza, conv.descricao, }; var ListaFinal = query.ToList(); if (ListaFinal.Count != 0) { return ListaFinal; } else { //Devolve uma lista vazia List<Titulo> lstVazia = new List<Titulo>(); return lstVazia; } } } catch (Exception ex) { List<Titulo> lstVazia = new List<Titulo>(); MessageBox.Show("Erro: " + ex.Message); return lstVazia; } }
//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 }
//Carrega descrição do banco no textbox public void loadDescbanco() { //Preenche a descrição do banco using (var objGerenciador1 = new dbGerenciadorEntities()) { int numeroBanco = Convert.ToInt32(cmbNumeroBanco.SelectedValue); var retDescr = (from nBanco in objGerenciador1.Banco where nBanco.numero == numeroBanco select nBanco.descricao).First(); txtNomeBanco.Text = retDescr; } }
//Carrega descrição agencia public void loadDescAgencia() { //Preenche a descrição do banco using (var objGerenciador = new dbGerenciadorEntities()) { int numeroAgencia = Convert.ToInt32(cmbAgenciaNumero.SelectedValue); if (cmbAgenciaNumero.Text != "") { var retDescr = (from nAgencia in objGerenciador.Agencia where nAgencia.numero == numeroAgencia select nAgencia.descricao).First(); txtAgenciaDescricao.Text = retDescr; } } }
//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 }
//Função que verifica se a data lançamento é menor que a data de criação da conta public bool verDtLancamento() { foreach (OFX_Movimento mov in movimentos) { using (var objGerenciador = new dbGerenciadorEntities()) { //agência e conta vem em uma unica string agencia/conta fiz split para obter separado string[] split = agConta.Split('/'); //Depois do split realiza a conversão para inteiro int conta = Convert.ToInt32(split[1]); var query = from conv in objGerenciador.Conta where conv.numero == conta select conv.data_criacao; var ListaFinal = query.ToList(); DateTime criacaoConta = Convert.ToDateTime(ListaFinal[0]); //Verifica se a data do movimento é menor que a data dos movimentos if (mov.Data < criacaoConta) { return false; } } } return true; }
//Verifica se a conta do OFX existe (TRUE FALSE) public bool verConta() { using (var objGerenciador = new dbGerenciadorEntities()) { //agência e conta vem em uma unica string agencia/conta fiz split para obter separado string[] split = agConta.Split('/'); //Depois do split realiza a conversão para inteiro int agencia = Convert.ToInt32(split[0]); int conta = Convert.ToInt32(split[1]); var query = from conv in objGerenciador.Conta where (conv.numero == conta && conv.agencia == agencia) select conv; var ListaFinal = query.ToList(); if (ListaFinal.Count == 0) { return false; } else { return true; } } }
//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(); } } }
//Carrega o grid public object carregagrid() { try { //Carrega as variaveis utilizadas nas consultas DateTime dtaInicial = Convert.ToDateTime(dtpInicial.Text).Date; DateTime dtaFinal = Convert.ToDateTime(dtpFinal.Text).Date; //Lista que será retornada caso exista lançamento List<object> listaRetorno = new List<object>(); //Obtem o saldo inicial de todas as contas decimal saldo = 0; using (var objGerenciador = new dbGerenciadorEntities()) { var saldoTodasContas = (from conta in objGerenciador.Conta select conta.saldo); var ListaSaldoInicial = saldoTodasContas.ToList(); foreach (decimal sInicial in ListaSaldoInicial) { saldo += sInicial; } } //Obtem todos os lançamentos com as datas menores a data incial do filtro using (var objSaldoAnterior = new dbGerenciadorEntities()) { var qSaldoAnterior = from sTitulo in objSaldoAnterior.Titulo where (sTitulo.vencimento < dtaInicial) orderby sTitulo.vencimento select sTitulo; var ListaSaldoAnterior = qSaldoAnterior.ToList(); //Percorre os movimentos atualizando o saldo obtido da conta em questão foreach (Titulo calcSaldoInicial in ListaSaldoAnterior) { //Esta variavel será o saldo inicial do periodo selecionado saldo += calcSaldoInicial.valor; } //Define a label com o valor do saldo anterior lblSaldoInicial.Text = string.Format("{0:C}", saldo); //Obtem os lançamentos de acordo com a conta a data inicial e final using (var objObtemMovimento = new dbGerenciadorEntities()) { var queryMovimento = (from titulo in objObtemMovimento.Titulo where (titulo.vencimento <= dtaFinal && titulo.vencimento >= dtaInicial) orderby titulo.vencimento select titulo).ToList(); //Percorre os movimentos filtrados criando objetos personalizados foreach (Titulo calculoFinal in queryMovimento) { saldo += calculoFinal.valor; var objRetorno = new { calculoFinal.vencimento, calculoFinal.numero, calculoFinal.descricao, calculoFinal.valor, saldo }; //Atualiza a situação saldo final lblSaldoFinal.Text = string.Format("{0:C}", saldo); //Adiciona na lista de retorno listaRetorno.Add(objRetorno); } if (listaRetorno.Count != 0) { return listaRetorno; } else { List<Titulo> lstVazia = new List<Titulo>(); return lstVazia; } } } } catch (Exception ex) { List<Titulo> lstVazia = new List<Titulo>(); MessageBox.Show("Erro: " + ex.Message); return lstVazia; } }
//Obtem as estimativas de saldo diponivel considerando os titulos public void calculaSaldo() { decimal somaSaldo = 0; decimal somaTituloMes = 0; decimal somaTituloAno = 0; //Percorre o saldo das contas no datagridview foreach (DataGridViewRow linha in dtgSaldoContas.Rows) { somaSaldo = somaSaldo + Convert.ToDecimal(linha.Cells[4].Value); } //Obtem o valor dos titulos de um mês using (var objGerenciador = new dbGerenciadorEntities()) { // Alteração dia 22/06/2013 // Na tela dashboard no campo Disponivel Mês a logica estava errada // pegava a data atual adicionava um mês a data atual e buscava os titulos //Pega a data atual e adciona um mês //DateTime umMes = DateTime.Now.AddMonths(1).Date; //Obtem o ultimo dia do mês corrente CORRETO DateTime ultimoDia = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.DaysInMonth(DateTime.Now.Year, DateTime.Now.Month)); var qTituloMes = from tituloMes in objGerenciador.Titulo where (tituloMes.vencimento <= ultimoDia && tituloMes.baixado == null) select tituloMes.valor; var ListaTituloMes = qTituloMes.ToList(); if (ListaTituloMes.Count != 0) { foreach (Decimal tit in ListaTituloMes) { somaTituloMes += tit; } } } //Obtem o valor dos titulos de um ano using (var objGerenciador = new dbGerenciadorEntities()) { DateTime umAno = DateTime.Now.AddYears(1).Date; var qTituloAno = from tituloAno in objGerenciador.Titulo where (tituloAno.vencimento <= umAno && tituloAno.baixado == null) select tituloAno.valor; var ListaTituloAno = qTituloAno.ToList(); if (ListaTituloAno.Count != 0) { foreach (Decimal tit in ListaTituloAno) { somaTituloAno += tit; } } } lblProximo.Text = string.Format("{0:C}", (somaSaldo + somaTituloMes)); lblAno.Text = string.Format("{0:C}", (somaSaldo + somaTituloAno)); }