public List <ContaTransferenciaModel> Listar(ContaTransferenciaModel obj) { try { return(Selecionar(obj)); } catch (Exception e) { throw e; } }
public ContaTransferenciaModel Consultar(ContaTransferenciaModel obj) { try { List <ContaTransferenciaModel> lst = Selecionar(obj); return(lst.Count > 0 ? lst.FirstOrDefault() : null); } catch (Exception e) { throw e; } }
public IActionResult Transferir(ContaTransferenciaModel formulario) { ContaTransferenciaBE contaTransferenciaBE = null; ContaBE contaBE = null; try { contaTransferenciaBE = new ContaTransferenciaBE(); contaBE = new ContaBE(contaTransferenciaBE.GetSqlCommand()); formulario.ContaOrigem = new ContaModel(HttpContextAccessor); formulario.ContaOrigem = contaBE.ValidarConta(formulario.ContaOrigem); if (formulario.ContaDestino.Numero != "" && formulario.ContaDestino.Agencia != "" && formulario.Valor > 0) { var contaDestino = contaBE.ValidarConta(formulario.ContaDestino); if (contaDestino != null && contaDestino.Id > 0) { if (formulario.ContaOrigem.ContaTipo.Sigla == "CP" && formulario.ContaDestino.ContaTipo.Sigla == "CC") { ViewBag.SaldoInsulficiente = "Conta Poupança não pode transferir para conta corrente."; return(View()); } if ((formulario.ContaOrigem.Saldo + formulario.ContaOrigem.ChequeEspecial) < formulario.Valor) { ViewBag.SaldoInsulficiente = "O saldo é insulficiente para fazer a transferência."; return(View()); } formulario.ContaDestino = contaDestino; contaTransferenciaBE.Transferir(formulario); return(RedirectToAction("Menu", "Home")); } ViewBag.SaldoInsulficiente = "Conta de destino não é uma conta válida."; return(View()); } ViewBag.SaldoInsulficiente = "Deve ser preenchido todos os campos."; return(View()); } catch (Exception) { return(View()); } }
public int Inserir(ContaTransferenciaModel obj) { int id = 0; try { StringBuilder strBuilder = new StringBuilder(); GetSqlCommand().Parameters.Clear(); strBuilder.AppendLine(@"INSERT INTO dbo.ContaTransferencia ( IdContaMovimento, IdContaDestino, Valor ) VALUES ( @IdContaMovimento, @IdContaDestino, @Valor )"); GetSqlCommand().CommandText = ""; GetSqlCommand().CommandText = strBuilder.ToString(); GetSqlCommand().Parameters.AddWithValue("IdContaMovimento", obj.ContaMovimento.Id); GetSqlCommand().Parameters.AddWithValue("IdContaDestino", obj.ContaDestino.Id); GetSqlCommand().Parameters.AddWithValue("Valor", obj.Valor); GetSqlCommand().ExecuteNonQuery(); id = UltimoIdInseridoIdentity("ContaTransferencia"); return(id); } catch (Exception ex) { throw ex; } }
public bool Transferir(ContaTransferenciaModel obj) { ContaMovimentoDAO contaMovimentoDAO = null; ContaTransferenciaDAO contaTransferenciaDAO = null; ContaOperacaoDAO contaOperacaoDAO = null; ContaDAO contaDAO = null; ContaMovimentoOperacaoDAO contaMovimentoOperacaoDAO = null; ContaMovimentoTipoDAO contaMovimentoTipoDAO = null; OperacaoDAO operacaoDAO = null; bool primeiraOperacao = true; var dataNow = DateTime.Now; try { contaMovimentoDAO = new ContaMovimentoDAO(GetSqlCommand()); contaTransferenciaDAO = new ContaTransferenciaDAO(GetSqlCommand()); contaOperacaoDAO = new ContaOperacaoDAO(GetSqlCommand()); contaDAO = new ContaDAO(GetSqlCommand()); contaMovimentoOperacaoDAO = new ContaMovimentoOperacaoDAO(GetSqlCommand()); contaMovimentoTipoDAO = new ContaMovimentoTipoDAO(GetSqlCommand()); operacaoDAO = new OperacaoDAO(GetSqlCommand()); var movimentoTipo = contaMovimentoTipoDAO.Consultar(new ContaMovimentoTipoModel() { Sigla = "TR", TipoContabil = { Sigla = "D" } }); var operacao = operacaoDAO.Consultar(new OperacaoModel() { Sigla = "TR" }); var contaOperacao = contaOperacaoDAO.Consultar(new ContaOperacaoModel() { Ano = dataNow.Year, Mes = dataNow.Month, Operacao = { Id = operacao.Id }, Conta = { Id = obj.ContaOrigem.Id } }); if (contaOperacao != null && contaOperacao.Id > 0) { primeiraOperacao = false; } BeginTransaction(); obj.ContaMovimento.Id = contaMovimentoDAO.Inserir(new ContaMovimentoModel() { Conta = { Id = obj.ContaOrigem.Id }, ContaMovimentoTipo = { Id = movimentoTipo.Id }, DataMovimento = dataNow, Valor = obj.Valor }); obj.ContaMovimento.ContaOperacao.Id = contaOperacaoDAO.Inserir(new ContaOperacaoModel() { Conta = { Id = obj.ContaOrigem.Id }, Operacao = { Id = operacao.Id }, DataOperacao = dataNow }); contaMovimentoOperacaoDAO.Inserir(new ContaMovimentoOperacaoModel() { ContaMovimento = { Id = obj.ContaMovimento.Id }, ContaOperacao = { Id = obj.ContaMovimento.ContaOperacao.Id } }); contaTransferenciaDAO.Inserir(obj); if (obj.ContaOrigem.Saldo > 0) { obj.ContaOrigem.Saldo -= obj.Valor; if (obj.ContaOrigem.Saldo < 0) { var saldoAtual = obj.ContaOrigem.Saldo; obj.ContaOrigem.ChequeEspecial -= (saldoAtual * -1); obj.ContaOrigem.Saldo = 0; } } else { obj.ContaOrigem.ChequeEspecial -= obj.Valor; } if (!primeiraOperacao) { movimentoTipo = contaMovimentoTipoDAO.Consultar(new ContaMovimentoTipoModel() { Sigla = "OP", TipoContabil = { Sigla = "D" } }); contaMovimentoDAO.Inserir(new ContaMovimentoModel() { Conta = { Id = obj.ContaOrigem.Id }, ContaMovimentoTipo = { Id = movimentoTipo.Id }, DataMovimento = dataNow, Valor = operacao.Custo }); if (obj.ContaOrigem.Saldo > 0) { obj.ContaOrigem.Saldo -= operacao.Custo; if (obj.ContaOrigem.Saldo < 0) { var saldoAtual = obj.ContaOrigem.Saldo; obj.ContaOrigem.ChequeEspecial -= (saldoAtual * -1); obj.ContaOrigem.Saldo = 0; } } else { obj.ContaOrigem.ChequeEspecial -= operacao.Custo; } } contaDAO.AtualizarSaldo(obj.ContaOrigem); movimentoTipo = contaMovimentoTipoDAO.Consultar(new ContaMovimentoTipoModel() { Sigla = "TR", TipoContabil = { Sigla = "C" } }); contaMovimentoDAO.Inserir(new ContaMovimentoModel() { Conta = { Id = obj.ContaDestino.Id }, ContaMovimentoTipo = { Id = movimentoTipo.Id }, DataMovimento = dataNow, Valor = obj.Valor }); obj.ContaDestino.ChequeEspecial += obj.Valor; var dif = obj.ContaDestino.ChequeEspecial - 300; if (dif > 0) { obj.ContaDestino.ChequeEspecial = 300; obj.ContaDestino.Saldo += dif; } contaDAO.AtualizarSaldo(obj.ContaDestino); Commit(); return(true); } catch (Exception ex) { Rollback(); throw ex; } }
private List <ContaTransferenciaModel> Selecionar(ContaTransferenciaModel obj) { List <ContaTransferenciaModel> lst = null; try { objSbSelect = new StringBuilder(); objSbSelect.AppendLine(@" SELECT ContaTransferencia.IdContaTransferencia , ContaTransferencia.IdContaDestino , ContaTransferencia.Valor , ContaTransferencia.DataTransferencia , ContaMovimento.IdContaMovimento , Conta.IdConta FROM ContaTransferencia INNER JOIN ContaMovimento ON ContaTransferencia.IdContaMovimento = ContaMovimento.IdContaMovimento INNER JOIN Conta ON ContaMovimento.IdConta = Conta.IdConta INNER JOIN Conta Destino ON ContaTransferencia.IdContaDestino = Destino.IdConta WHERE 1 = 1 "); if (obj != null) { GetSqlCommand().Parameters.Clear(); if (obj.Id > 0) { objSbSelect.AppendLine(@" AND ContaTransferencia.IdContaTransferencia = @IdContaTransferencia"); GetSqlCommand().Parameters.Add("IdContaTransferencia", SqlDbType.Int).Value = obj.Id; } if (obj.ContaMovimento.Id > 0) { objSbSelect.AppendLine(@" AND ContaMovimento.IdContaMovimento = @IdContaMovimento"); GetSqlCommand().Parameters.Add("IdContaMovimento", SqlDbType.Int).Value = obj.ContaMovimento.Id; } if (obj.ContaMovimento.Conta.Id > 0) { objSbSelect.AppendLine(@" AND Conta.IdConta = @IdConta"); GetSqlCommand().Parameters.Add("IdConta", SqlDbType.Int).Value = obj.ContaMovimento.Conta.Id; } if (obj.ContaDestino.Id > 0) { objSbSelect.AppendLine(@" AND ContaTransferencia.IdContaDestino = @IdContaDestino"); GetSqlCommand().Parameters.Add("IdContaDestino", SqlDbType.Int).Value = obj.ContaDestino.Id; } if (obj.DataTransferencia != new DateTime()) { objSbSelect.AppendLine(@" AND ContaTransferencia.DataTransferencia = @DataTransferencia"); GetSqlCommand().Parameters.Add("DataTransferencia", SqlDbType.DateTime).Value = obj.DataTransferencia; } } GetSqlCommand().CommandText = ""; GetSqlCommand().CommandText = objSbSelect.ToString(); lst = new List <ContaTransferenciaModel>(); while (GetSqlDataReader().Read()) { ContaTransferenciaModel item = new ContaTransferenciaModel(); if (!(GetSqlDataReader().IsDBNull(GetSqlDataReader().GetOrdinal("IdContaTransferencia")))) { item.Id = Convert.ToInt32(GetSqlDataReader()["IdContaOperaIdContaTransferenciacao"]); } if (!(GetSqlDataReader().IsDBNull(GetSqlDataReader().GetOrdinal("IdContaMovimento")))) { item.ContaMovimento.Id = Convert.ToInt32(GetSqlDataReader()["IdContaMovimento"]); } if (!(GetSqlDataReader().IsDBNull(GetSqlDataReader().GetOrdinal("IdConta")))) { item.ContaMovimento.Conta.Id = Convert.ToInt32(GetSqlDataReader()["IdConta"]); } if (!(GetSqlDataReader().IsDBNull(GetSqlDataReader().GetOrdinal("IdContaDestino")))) { item.ContaDestino.Id = Convert.ToInt32(GetSqlDataReader()["IdContaDestino"]); } if (!(GetSqlDataReader().IsDBNull(GetSqlDataReader().GetOrdinal("Valor")))) { item.Valor = Convert.ToDecimal(GetSqlDataReader()["Valor"]); } if (!(GetSqlDataReader().IsDBNull(GetSqlDataReader().GetOrdinal("DataTransferencia")))) { item.DataTransferencia = Convert.ToDateTime(GetSqlDataReader()["DataTransferencia"]); } lst.Add(item); } return(lst); } catch (Exception ex) { throw ex; } finally { if (objSbSelect != null) { objSbSelect = null; } Close(); } }