//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); } } }
//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"); } } }
//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"); } } }
//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(); } } } }
//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); } } }
//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(); } } }
//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 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 }