public IActionResult Saque(ContaMovimentoModel contaMovimento) { ContaBE contaBE = null; ContaMovimentoBE contaMovimentoBE = null; DateTime dataNow = DateTime.Now; string operacaoSigla = "SQ"; try { contaBE = new ContaBE(); contaMovimentoBE = new ContaMovimentoBE(contaBE.GetSqlCommand()); var conta = new ContaModel(HttpContextAccessor); contaMovimento.Conta = contaBE.ValidarConta(conta); if (contaMovimento.Valor > (contaMovimento.Conta.Saldo + contaMovimento.Conta.ChequeEspecial)) { ViewBag.Info = "Valor solicitado maior que o saldo disponivel."; return(View()); } contaMovimentoBE.Sacar(contaMovimento, operacaoSigla); return(View()); } catch (Exception ex) { return(View()); } }
public List <ContaMovimentoModel> Listar(ContaMovimentoModel obj) { try { return(Selecionar(obj)); } catch (Exception e) { throw e; } }
public ContaMovimentoModel Consultar(ContaMovimentoModel obj) { try { List <ContaMovimentoModel> lst = Selecionar(obj); return(lst.Count > 0 ? lst.FirstOrDefault() : null); } catch (Exception e) { throw e; } }
public List <ContaMovimentoModel> Listar(ContaMovimentoModel obj = null) { ContaMovimentoDAO contaMovimentoDAO = null; try { contaMovimentoDAO = new ContaMovimentoDAO(GetSqlCommand()); return(contaMovimentoDAO.Listar(obj)); } catch (Exception ex) { throw ex; } }
public void Inserir(ContaMovimentoModel obj) { ContaMovimentoDAO contaMovimentoDAO = null; try { contaMovimentoDAO = new ContaMovimentoDAO(GetSqlCommand()); BeginTransaction(); contaMovimentoDAO.Inserir(obj); Commit(); } catch (Exception ex) { Rollback(); throw ex; } }
public int Inserir(ContaMovimentoModel obj) { int id = 0; try { StringBuilder strBuilder = new StringBuilder(); GetSqlCommand().Parameters.Clear(); strBuilder.AppendLine(@"INSERT INTO dbo.ContaMovimento ( IdConta, IdContaMovimentoTipo, DataMovimento, Valor ) VALUES ( @IdConta, @IdContaMovimentoTipo, @DataMovimento, @Valor )"); GetSqlCommand().CommandText = ""; GetSqlCommand().CommandText = strBuilder.ToString(); GetSqlCommand().Parameters.AddWithValue("IdConta", obj.Conta.Id); GetSqlCommand().Parameters.AddWithValue("IdContaMovimentoTipo", obj.ContaMovimentoTipo.Id); GetSqlCommand().Parameters.AddWithValue("DataMovimento", obj.DataMovimento); GetSqlCommand().Parameters.AddWithValue("Valor", obj.Valor); GetSqlCommand().ExecuteNonQuery(); id = UltimoIdInseridoIdentity("ContaMovimento"); return(id); } catch (Exception ex) { throw ex; } }
private List <ContaMovimentoModel> Selecionar(ContaMovimentoModel obj) { List <ContaMovimentoModel> lst = null; try { objSbSelect = new StringBuilder(); objSbSelect.AppendLine(@" SELECT ContaMovimento.IdContaMovimento , ContaMovimento.DataMovimento , ContaMovimento.Valor , ContaOperacao.DataOperacao , Conta.IdConta , Conta.Agencia , Conta.Numero , Conta.Saldo , Conta.ChequeEspecial , ContaTipo.IdContaTipo , ContaTipo.Descricao AS ContaTipo , ContaMovimentoTipo.IdContaMovimentoTipo , ContaMovimentoTipo.Descricao AS ContaMovimentoTipo , Operacao.IdOperacao , Operacao.Descricao AS Operacao , Operacao.Custo , TipoContabil.IdTipoContabil , TipoContabil.Descricao AS TipoContabil , TipoContabil.Sigla AS TipoContabilSigla FROM ContaMovimento INNER JOIN Conta ON ContaMovimento.IdConta = Conta.IdConta INNER JOIN ContaTipo ON Conta.IdContaTipo = ContaTipo.IdContaTipo INNER JOIN ContaMovimentoTipo ON ContaMovimento.IdContaMovimentoTipo = ContaMovimentoTipo.IdContaMovimentoTipo INNER JOIN TipoContabil ON ContaMovimentoTipo.IdTipoContabil = TipoContabil.IdTipoContabil LEFT JOIN ContaMovimentoOperacao ON ContaMovimentoOperacao.IdContaMovimento = ContaMovimento.IdContaMovimento LEFT JOIN ContaOperacao ON ContaMovimentoOperacao.IdContaOperacao = ContaOperacao.IdContaOperacao LEFT JOIN Operacao ON ContaOperacao.IdOperacao = Operacao.IdOperacao WHERE 1 = 1 "); if (obj != null) { GetSqlCommand().Parameters.Clear(); if (obj.Id > 0) { objSbSelect.AppendLine(@" AND ContaMovimento.IdContaMovimento = @IdContaMovimento"); GetSqlCommand().Parameters.Add("IdContaMovimento", SqlDbType.Int).Value = obj.Id; } if (obj.Conta.Id > 0) { objSbSelect.AppendLine(@" AND Conta.IdConta = @IdConta"); GetSqlCommand().Parameters.Add("IdConta", SqlDbType.Int).Value = obj.Conta.Id; } if (obj.ContaOperacao.Operacao.Id > 0) { objSbSelect.AppendLine(@" AND Operacao.IdOperacao = @IdOperacao"); GetSqlCommand().Parameters.Add("IdOperacao", SqlDbType.Int).Value = obj.ContaOperacao.Operacao.Id; } if (obj.ContaOperacao.Id > 0) { objSbSelect.AppendLine(@" AND ContaOperacao.IdContaOperacao = @IdContaOperacao"); GetSqlCommand().Parameters.Add("IdContaOperacao", SqlDbType.Int).Value = obj.ContaOperacao.Id; } } GetSqlCommand().CommandText = ""; GetSqlCommand().CommandText = objSbSelect.ToString(); lst = new List <ContaMovimentoModel>(); while (GetSqlDataReader().Read()) { ContaMovimentoModel item = new ContaMovimentoModel(); if (!(GetSqlDataReader().IsDBNull(GetSqlDataReader().GetOrdinal("IdContaMovimento")))) { item.Id = Convert.ToInt32(GetSqlDataReader()["IdContaMovimento"]); } if (!(GetSqlDataReader().IsDBNull(GetSqlDataReader().GetOrdinal("DataMovimento")))) { item.DataMovimento = Convert.ToDateTime(GetSqlDataReader()["DataMovimento"]); } if (!(GetSqlDataReader().IsDBNull(GetSqlDataReader().GetOrdinal("Valor")))) { item.Valor = Convert.ToDecimal(GetSqlDataReader()["Valor"]); } if (!(GetSqlDataReader().IsDBNull(GetSqlDataReader().GetOrdinal("DataOperacao")))) { item.ContaOperacao.DataOperacao = Convert.ToDateTime(GetSqlDataReader()["DataOperacao"]); } if (!(GetSqlDataReader().IsDBNull(GetSqlDataReader().GetOrdinal("IdConta")))) { item.Conta.Id = Convert.ToInt32(GetSqlDataReader()["IdConta"]); } if (!(GetSqlDataReader().IsDBNull(GetSqlDataReader().GetOrdinal("Agencia")))) { item.Conta.Agencia = Convert.ToString(GetSqlDataReader()["Agencia"]); } if (!(GetSqlDataReader().IsDBNull(GetSqlDataReader().GetOrdinal("Numero")))) { item.Conta.Numero = Convert.ToString(GetSqlDataReader()["Numero"]); } if (!(GetSqlDataReader().IsDBNull(GetSqlDataReader().GetOrdinal("Saldo")))) { item.Conta.Saldo = Convert.ToDecimal(GetSqlDataReader()["Saldo"]); } if (!(GetSqlDataReader().IsDBNull(GetSqlDataReader().GetOrdinal("ChequeEspecial")))) { item.Conta.ChequeEspecial = Convert.ToDecimal(GetSqlDataReader()["ChequeEspecial"]); } if (!(GetSqlDataReader().IsDBNull(GetSqlDataReader().GetOrdinal("IdContaTipo")))) { item.Conta.ContaTipo.Id = Convert.ToInt32(GetSqlDataReader()["IdContaTipo"]); } if (!(GetSqlDataReader().IsDBNull(GetSqlDataReader().GetOrdinal("ContaTipo")))) { item.Conta.ContaTipo.Descricao = Convert.ToString(GetSqlDataReader()["ContaTipo"]); } if (!(GetSqlDataReader().IsDBNull(GetSqlDataReader().GetOrdinal("IdContaMovimentoTipo")))) { item.ContaMovimentoTipo.Id = Convert.ToInt32(GetSqlDataReader()["IdContaMovimentoTipo"]); } if (!(GetSqlDataReader().IsDBNull(GetSqlDataReader().GetOrdinal("ContaMovimentoTipo")))) { item.ContaMovimentoTipo.Descricao = Convert.ToString(GetSqlDataReader()["ContaMovimentoTipo"]); } if (!(GetSqlDataReader().IsDBNull(GetSqlDataReader().GetOrdinal("IdOperacao")))) { item.ContaOperacao.Operacao.Id = Convert.ToInt32(GetSqlDataReader()["IdOperacao"]); } if (!(GetSqlDataReader().IsDBNull(GetSqlDataReader().GetOrdinal("Operacao")))) { item.ContaOperacao.Operacao.Descricao = Convert.ToString(GetSqlDataReader()["Operacao"]); } if (!(GetSqlDataReader().IsDBNull(GetSqlDataReader().GetOrdinal("Custo")))) { item.ContaOperacao.Operacao.Custo = Convert.ToDecimal(GetSqlDataReader()["Custo"]); } if (!(GetSqlDataReader().IsDBNull(GetSqlDataReader().GetOrdinal("IdTipoContabil")))) { item.ContaMovimentoTipo.TipoContabil.Id = Convert.ToInt32(GetSqlDataReader()["IdTipoContabil"]); } if (!(GetSqlDataReader().IsDBNull(GetSqlDataReader().GetOrdinal("TipoContabil")))) { item.ContaMovimentoTipo.TipoContabil.Descricao = Convert.ToString(GetSqlDataReader()["TipoContabil"]); } if (!(GetSqlDataReader().IsDBNull(GetSqlDataReader().GetOrdinal("TipoContabilSigla")))) { item.ContaMovimentoTipo.TipoContabil.Sigla = Convert.ToString(GetSqlDataReader()["TipoContabilSigla"]); } lst.Add(item); } return(lst); } catch (Exception ex) { throw ex; } finally { if (objSbSelect != null) { objSbSelect = null; } Close(); } }
public void Sacar(ContaMovimentoModel obj, string operacaoSigla) { ContaMovimentoOperacaoDAO contaMovimentoOperacaoDAO = null; ContaMovimentoDAO contaMovimentoDAO = null; ContaOperacaoDAO contaOperacaoDAO = null; ContaDAO contaDAO = null; ContaBE contaBE = null; OperacaoDAO operacaoDAO = null; ContaMovimentoTipoDAO contaMovimentoTipoDAO = null; bool primeiraOperacao = true; var dataNow = DateTime.Now; try { contaMovimentoDAO = new ContaMovimentoDAO(GetSqlCommand()); contaOperacaoDAO = new ContaOperacaoDAO(GetSqlCommand()); contaDAO = new ContaDAO(GetSqlCommand()); contaBE = new ContaBE(GetSqlCommand()); contaMovimentoOperacaoDAO = new ContaMovimentoOperacaoDAO(GetSqlCommand()); contaMovimentoTipoDAO = new ContaMovimentoTipoDAO(GetSqlCommand()); operacaoDAO = new OperacaoDAO(GetSqlCommand()); var operacao = operacaoDAO.Consultar(new OperacaoModel() { Sigla = operacaoSigla }); var movimentoTipo = contaMovimentoTipoDAO.Consultar(new ContaMovimentoTipoModel() { Sigla = "SQ", TipoContabil = { Sigla = "D" } }); var contaOperacao = contaOperacaoDAO.Consultar(new ContaOperacaoModel() { Ano = dataNow.Year, Mes = dataNow.Month, Operacao = { Id = operacao.Id }, Conta = { Id = obj.Conta.Id } }); var conta = contaDAO.Consultar(new ContaModel() { Id = obj.Conta.Id }); obj.Id = contaMovimentoDAO.Inserir(new ContaMovimentoModel() { Conta = { Id = obj.Conta.Id }, ContaMovimentoTipo = { Id = movimentoTipo.Id }, DataMovimento = dataNow, Valor = obj.Valor }); obj.ContaOperacao.Id = contaOperacaoDAO.Inserir(new ContaOperacaoModel() { Conta = { Id = obj.Conta.Id }, Operacao = { Id = operacao.Id }, DataOperacao = dataNow }); contaMovimentoOperacaoDAO.Inserir(new ContaMovimentoOperacaoModel() { ContaMovimento = { Id = obj.Id }, ContaOperacao = { Id = obj.ContaOperacao.Id } }); if (obj.Conta.Saldo > 0) { obj.Conta.Saldo -= obj.Valor; if (obj.Conta.Saldo < 0) { var saldoAtual = obj.Conta.Saldo; obj.Conta.ChequeEspecial -= (saldoAtual * -1); obj.Conta.Saldo = 0; } } else { obj.Conta.ChequeEspecial -= obj.Valor; } if (!primeiraOperacao) { movimentoTipo = contaMovimentoTipoDAO.Consultar(new ContaMovimentoTipoModel() { Sigla = "OP", TipoContabil = { Sigla = "D" } }); contaMovimentoDAO.Inserir(new ContaMovimentoModel() { Conta = { Id = obj.Conta.Id }, ContaMovimentoTipo = { Id = movimentoTipo.Id }, DataMovimento = dataNow, Valor = operacao.Custo }); if (obj.Conta.Saldo > 0) { obj.Conta.Saldo -= operacao.Custo; if (obj.Conta.Saldo < 0) { var saldoAtual = obj.Conta.Saldo; obj.Conta.ChequeEspecial -= (saldoAtual * -1); obj.Conta.Saldo = 0; } } else { obj.Conta.ChequeEspecial -= operacao.Custo; } } contaDAO.AtualizarSaldo(obj.Conta); Commit(); } catch (Exception ex) { Rollback(); throw ex; } }