public void CobrarOperacao(ContaModel obj, string operacaoSigla, bool openTrans = true) { ContaMovimentoOperacaoDAO contaMovimentoOperacaoDAO = null; ContaMovimentoTipoDAO contaMovimentoTipoDAO = null; ContaMovimentoDAO contaMovimentoDAO = null; ContaOperacaoDAO contaOperacaoDAO = null; OperacaoDAO operacaoDAO = null; ContaDAO contaDAO = null; DateTime dataNow = DateTime.Now; try { contaMovimentoOperacaoDAO = new ContaMovimentoOperacaoDAO(GetSqlCommand()); contaMovimentoTipoDAO = new ContaMovimentoTipoDAO(GetSqlCommand()); contaMovimentoDAO = new ContaMovimentoDAO(GetSqlCommand()); contaOperacaoDAO = new ContaOperacaoDAO(GetSqlCommand()); operacaoDAO = new OperacaoDAO(GetSqlCommand()); contaDAO = new ContaDAO(GetSqlCommand()); var operacao = operacaoDAO.Consultar(new OperacaoModel() { Sigla = operacaoSigla }); var movimentoTipo = contaMovimentoTipoDAO.Consultar(new ContaMovimentoTipoModel() { Sigla = "OP", TipoContabil = { Sigla = "D" } }); if (openTrans) { BeginTransaction(); } var idContaMovimento = contaMovimentoDAO.Inserir(new ContaMovimentoModel() { Conta = { Id = obj.Id }, ContaMovimentoTipo = { Id = movimentoTipo.Id }, DataMovimento = dataNow, Valor = operacao.Custo }); var idContaOperacao = contaOperacaoDAO.Inserir(new ContaOperacaoModel() { Conta = { Id = obj.Id }, Operacao = { Id = operacao.Id }, DataOperacao = dataNow }); contaMovimentoOperacaoDAO.Inserir(new ContaMovimentoOperacaoModel() { ContaMovimento = { Id = idContaMovimento }, ContaOperacao = { Id = idContaOperacao } }); if (obj.Saldo > 0) { obj.Saldo -= operacao.Custo; if (obj.Saldo < 0) { var saldoAtual = obj.Saldo; obj.ChequeEspecial -= (saldoAtual * -1); obj.Saldo = 0; } } else { obj.ChequeEspecial -= operacao.Custo; } contaDAO.AtualizarSaldo(obj); if (openTrans) { Commit(); } } catch (Exception ex) { if (openTrans) { Rollback(); } 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; } }
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; } }