public void InserirConta(tb_conta objEntrada)
        {
            Banco objBanco = new Banco();

            objBanco.AddTotb_conta(objEntrada);
            objBanco.SaveChanges();
        }
        //============================================================================
        public void AlterarContaProc(tb_conta ObjContaAtualizada)
        {
            MySqlConnection con = new MySqlConnection(strCon);
            MySqlCommand    cmd = new MySqlCommand();

            cmd.CommandType = System.Data.CommandType.StoredProcedure;
            cmd.CommandText = "sp_alterar_Conta";
            cmd.Connection  = con;

            cmd.Parameters.AddWithValue("nome", ObjContaAtualizada.nome_banco);
            cmd.Parameters.AddWithValue("agencia", ObjContaAtualizada.agencia_conta);
            cmd.Parameters.AddWithValue("numero", ObjContaAtualizada.numero_conta);
            cmd.Parameters.AddWithValue("saldo", ObjContaAtualizada.saldo_conta);
            cmd.Parameters.AddWithValue("tipoConta", ObjContaAtualizada.tipo_conta);
            cmd.Parameters.AddWithValue("idConta", ObjContaAtualizada.id_conta);

            try
            {
                cmd.Connection.Open();
                cmd.ExecuteNonQuery();
            }
            catch (Exception)
            {
                throw;
            }
            finally
            {
                if (cmd.Connection.State == System.Data.ConnectionState.Open)
                {
                    cmd.Connection.Close();
                }
            }
        }
        public void ExcluirMovimento(int idMov, int tipo, decimal valor, int idConta)
        {
            banco2 objBanco = new banco2();

            tb_movimento objmovExcluir = objBanco.tb_movimento.FirstOrDefault(mov => mov.id_movimento == idMov);

            using (TransactionScope tran = new TransactionScope())
            {
                objBanco.DeleteObject(objmovExcluir);

                objBanco.SaveChanges();

                tb_conta objContaAtualizar = objBanco.tb_conta.FirstOrDefault(con => con.id_conta == idConta);

                if (tipo == 0)
                {
                    objContaAtualizar.saldo_conta -= valor;
                }
                else
                {
                    objContaAtualizar.saldo_conta += valor;
                }
                objBanco.SaveChanges();

                tran.Complete();
            }
        }
        private void grdContaCadastrada_CellClick(object sender, DataGridViewCellEventArgs e)
        {
            if (grdContaCadastrada.RowCount > 0)
            {
                ContaVO objLinha = (ContaVO)grdContaCadastrada.CurrentRow.DataBoundItem;

                tb_conta objContaEditar = objLinha.objConta;

                txtbCod.Text              = objContaEditar.id_conta.ToString();
                txtbNomeBanco.Text        = objContaEditar.nome_banco;
                txtbAgencia.Text          = objContaEditar.agencia_conta;
                txtNumeroConta.Text       = objContaEditar.numero_conta;
                txtbSaldoAtual.Text       = objContaEditar.saldo_conta.ToString();
                cbTipoConta.SelectedIndex = objContaEditar.tipo_conta;


                //tb_conta ObjLinhaClicada = (tb_conta)grdContaCadastrada.CurrentRow.DataBoundItem;

                //txtbCod.Text = ObjLinhaClicada.id_conta.ToString();
                //txtbNomeBanco.Text = ObjLinhaClicada.nome_banco;
                //txtbAgencia.Text = ObjLinhaClicada.agencia_conta;
                //txtNumeroConta.Text = ObjLinhaClicada.numero_conta;
                //txtbSaldoAtual.Text = ObjLinhaClicada.saldo_conta.ToString();
                //cbTipoConta.SelectedIndex = Convert.ToInt32(ObjLinhaClicada.tipo_conta);

                Util.EstadoBotao(Util.EstadoTela.Alterar, btnSalvar, btnExcluir);
            }
        }
        //=========================================================================
        public void ExcluirConta(int codConta)
        {
            banco2 objBanco = new banco2();

            tb_conta objResgate = objBanco.tb_conta.Where(cont => cont.id_conta == codConta).FirstOrDefault();

            objBanco.DeleteObject(objResgate);

            objBanco.SaveChanges();
        }
        //============================================================================
        public void InserirConta(tb_conta objConta)
        {
            //Cria  o obejeto do banco

            banco2 objbanco = new banco2();

            //adiciona na tb conta o obj do parametro de entrada
            objbanco.AddTotb_conta(objConta);

            //salva no banco
            objbanco.SaveChanges();
        }
        //============================================================================
        public List <tb_conta> ConsultarContaProc(int codUserLogado)
        {
            MySqlConnection con        = new MySqlConnection(strCon);
            MySqlCommand    cmd        = new MySqlCommand();
            List <tb_conta> lstRetorno = new List <tb_conta>();


            cmd.CommandType = System.Data.CommandType.StoredProcedure;
            cmd.CommandText = "sp_consultar_conta";
            cmd.Connection  = con;

            cmd.Parameters.AddWithValue("id_user", codUserLogado);

            try
            {
                cmd.Connection.Open();
                MySqlDataReader dr = cmd.ExecuteReader();

                while (dr.Read())
                {
                    tb_conta objConta = new tb_conta();
                    objConta.id_conta      = Convert.ToInt32(dr["id_conta"]);
                    objConta.nome_banco    = dr["nome_banco"].ToString();
                    objConta.agencia_conta = dr["agencia_conta"].ToString();
                    objConta.numero_conta  = dr["numero_conta"].ToString();
                    objConta.saldo_conta   = Convert.ToDecimal(dr["saldo_conta"]);
                    objConta.tipo_conta    = Convert.ToInt16(dr["tipo_conta"]);
                    objConta.data_cadastro = Convert.ToDateTime(dr["data_cadastro"]);



                    lstRetorno.Add(objConta);
                }
                if (dr.HasRows)
                {
                    dr.Close();
                }
            }
            catch (Exception)
            {
                throw;
            }
            finally
            {
                if (cmd.Connection.State == System.Data.ConnectionState.Open)
                {
                    cmd.Connection.Close();
                }
            }
            return(lstRetorno);
        }
        //=========================================================================
        //public List<MovimentoVO>PesquisarMovimentoConta(int codUser, DateTime dataInicial, DateTime dataFinal, )

        //=========================================================

        public void AlterarConta(tb_conta ObjContaAtualizada)
        {
            banco2 objBanco = new banco2();

            tb_conta objResgate = objBanco.tb_conta.Where(cont => cont.id_conta == ObjContaAtualizada.id_conta).FirstOrDefault();

            objResgate.nome_banco    = ObjContaAtualizada.nome_banco;
            objResgate.agencia_conta = ObjContaAtualizada.agencia_conta;
            objResgate.numero_conta  = ObjContaAtualizada.numero_conta;
            objResgate.saldo_conta   = ObjContaAtualizada.saldo_conta;
            objResgate.tipo_conta    = ObjContaAtualizada.tipo_conta;

            objBanco.SaveChanges();
        }
        public void AlterarConta(tb_conta objEntrada)
        {
            Banco objBanco = new Banco();

            tb_conta objResgateConta = objBanco.tb_conta.FirstOrDefault(p => p.cod_conta == objEntrada.cod_conta);

            //Atualiza os Valores
            objResgateConta.numero_conta = objEntrada.numero_conta;
            objResgateConta.cod_banco    = objEntrada.cod_banco;
            objResgateConta.status_conta = objEntrada.status_conta;
            objResgateConta.saldo_conta  = objEntrada.saldo_conta;

            objBanco.SaveChanges();
        }
        public void RealizarSaida(tb_movimento objSaida)
        {
            using (TransactionScope objTran = new TransactionScope())
            {
                Banco objBanco = new Banco();

                objBanco.AddTotb_movimento(objSaida);

                objBanco.SaveChanges();

                tb_conta objConta = objBanco.tb_conta.FirstOrDefault(p => p.cod_conta == objSaida.cod_conta);
                objConta.saldo_conta = objConta.saldo_conta - objSaida.valor_movimento;

                objBanco.SaveChanges();

                objTran.Complete();
            }
        }
        //==============================================================

        private void btnSalvar_Click(object sender, EventArgs e)
        {
            if (VerificarCampos())
            {
                //cria o obj dao
                ContaDAO objdao = new ContaDAO();

                //cria o obj que ira receber as informações da tela - nocaso a tabela do banco

                tb_conta objConta = new tb_conta();

                objConta.nome_banco    = txtbNomeBanco.Text.Trim();
                objConta.agencia_conta = txtbAgencia.Text.Trim();
                objConta.numero_conta  = txtNumeroConta.Text.Trim();
                objConta.tipo_conta    = Convert.ToInt16(cbTipoConta.SelectedIndex);
                objConta.saldo_conta   = decimal.Parse(txtbSaldoAtual.Text.Trim());
                objConta.id_usuario    = Usuario.codigoLogado;
                objConta.data_cadastro = DateTime.Now;

                try
                {
                    if (txtbCod.Text == "")
                    {
                        objdao.InserirContaProc(objConta);
                    }
                    else
                    {
                        objConta.id_conta = Convert.ToInt32(txtbCod.Text);
                        objdao.AlterarContaProc(objConta);
                    }

                    Util.ExibirMsg(Util.TipoMsg.Sucesso);
                    LimparCampos();
                    CarregarGridVO();
                    Util.EstadoBotao(Util.EstadoTela.Novo, btnSalvar, btnExcluir);
                }
                catch
                {
                    Util.ExibirMsg(Util.TipoMsg.Erro);
                }
            }
        }
        public ActionResult GravarConta(int?cod_conta, string numero_conta, string saldo_conta, int cod_banco, string status_conta)
        {
            if (numero_conta.Trim() == string.Empty || saldo_conta.Trim() == string.Empty || cod_banco == null)
            {
                ViewBag.Validar = 0;
            }
            else
            {
                try
                {
                    ContaDAO objDAO   = new ContaDAO();
                    tb_conta objConta = new tb_conta();

                    objConta.cod_usuario  = CodigoUsuarioLogado;
                    objConta.numero_conta = numero_conta;
                    objConta.saldo_conta  = Convert.ToDecimal(saldo_conta);
                    objConta.cod_banco    = Convert.ToInt32(cod_banco);
                    objConta.status_conta = Convert.ToBoolean(status_conta);

                    if (cod_conta == null)
                    {
                        objDAO.InserirConta(objConta);
                    }
                    else
                    {
                        objConta.cod_conta = Convert.ToInt32(cod_conta);
                        objDAO.AlterarConta(objConta);
                    }

                    ViewBag.Validar = 1;
                }
                catch
                {
                    ViewBag.Validar = -1;
                }
            }
            CarregarConta();
            CarregarBanco();
            return(View("Conta"));
        }
        public void LancarMovimento(tb_movimento objMov)

        {
            banco2 objBanco = new banco2();

            objBanco.AddTotb_movimento(objMov);

            if (objMov.id_conta == null)
            {
            }
            else
            {
                using (TransactionScope t = new TransactionScope())
                {
                    //insere na tb_movimento
                    objBanco.SaveChanges();

                    tb_conta objConta = objBanco.tb_conta.FirstOrDefault(cont => cont.id_conta == objMov.id_conta);

                    //identificar se vai remover ou adicionar dinheiro verificando a combo de tipo

                    if (objMov.tipo_movimento == 0)//entrada
                    {
                        objConta.saldo_conta += objMov.valor_movimento;
                    }
                    else//saida
                    {
                        objConta.saldo_conta -= objMov.valor_movimento;
                    }

                    //altera na tb_conta
                    objBanco.SaveChanges();

                    //confirmação da Transactrion
                    t.Complete();
                }
            }
        }
        //============================================================================
        public void InserirContaProc(tb_conta ObjConta)
        {
            MySqlConnection con = new MySqlConnection(strCon);
            MySqlCommand    cmd = new MySqlCommand();

            cmd.CommandType = System.Data.CommandType.StoredProcedure;

            cmd.CommandText = "sp_inserir_conta";

            cmd.Connection = con;

            cmd.Parameters.AddWithValue("nome", ObjConta.nome_banco);
            cmd.Parameters.AddWithValue("agencia", ObjConta.agencia_conta);
            cmd.Parameters.AddWithValue("numero", ObjConta.numero_conta);
            cmd.Parameters.AddWithValue("saldo", ObjConta.saldo_conta);
            cmd.Parameters.AddWithValue("tipo_conta", ObjConta.tipo_conta);
            cmd.Parameters.AddWithValue("datacadastro", ObjConta.data_cadastro);
            cmd.Parameters.AddWithValue("id_user", ObjConta.id_usuario);

            try
            {
                cmd.Connection.Open();

                cmd.ExecuteNonQuery();
            }
            catch
            {
                throw;
            }
            finally
            {
                if (cmd.Connection.State == System.Data.ConnectionState.Open)
                {
                    cmd.Connection.Close();
                }
            }
        }
        public ActionResult Gravar(string cod, string nomeBanco, string numConta, string agencia, string tipoConta, string saldoAtual, string btn)
        {
            string pagina = "";

            if (btn == "excluir")
            {
                int      codConta = Convert.ToInt32(cod);
                ContaDAO objdao   = new ContaDAO();

                try
                {
                    objdao.ExcluirConta(codConta);
                    ViewBag.Ret = 1;
                    ViewBag.Msg = Mensagens.Msg.MensagemSucesso;
                }
                catch (Exception)
                {
                    ViewBag.Ret = -1;
                    ViewBag.Msg = Mensagens.Msg.MensagemErroExclusao;
                }
                pagina = "Consultar";
                MontarTitulo(3);
                CarregarContas();
            }
            else
            {
                if (nomeBanco.Trim() == "" || numConta.Trim() == "" || agencia.Trim() == "" || saldoAtual.Trim() == "")
                {
                    ViewBag.Ret = 0;
                    ViewBag.Msg = Mensagens.Msg.MesagemCampoObg;

                    if (cod == null)
                    {
                        pagina = "Cadastrar";
                        MontarTitulo(1);
                    }
                    else
                    {
                        pagina = "Alterar";
                        MontarTitulo(2);
                    }
                }
                else
                {
                    tb_conta objConta = new tb_conta();
                    ContaDAO objDao   = new ContaDAO();


                    objConta.nome_banco    = nomeBanco;
                    objConta.id_usuario    = CodigoLogado;
                    objConta.numero_conta  = numConta;
                    objConta.agencia_conta = agencia;
                    objConta.tipo_conta    = Convert.ToInt16(tipoConta);
                    objConta.saldo_conta   = Convert.ToDecimal(saldoAtual);
                    objConta.data_cadastro = DateTime.Now;

                    try
                    {
                        if (cod == null || cod == "")
                        {
                            objDao.InserirConta(objConta);
                            pagina = "Cadastrar";
                            MontarTitulo(1);
                        }
                        else
                        {
                            objConta.id_conta = Convert.ToInt32(cod);
                            objDao.AlterarConta(objConta);

                            pagina = "Consultar";
                            MontarTitulo(3);
                            CarregarContas();
                        }

                        ViewBag.Ret = 1;
                        ViewBag.Msg = Mensagens.Msg.MensagemSucesso;
                    }
                    catch (Exception)
                    {
                        ViewBag.Ret = -1;
                        ViewBag.Msg = Mensagens.Msg.MensagemErro;

                        if (cod == null)
                        {
                            pagina = "Cadastrar";
                            MontarTitulo(1);
                        }
                        else
                        {
                            pagina = "Alterar";
                            MontarTitulo(2);
                        }
                    }
                }
            }

            return(View(pagina));
        }
 public void InserirConta(tb_conta objConta)
 {
     objBanco.AddTotb_conta(objBanco);
     objBanco.SaveChanges();
 }