Ejemplo n.º 1
0
        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;
            }
        }
Ejemplo n.º 2
0
        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;
            }
        }
Ejemplo n.º 3
0
        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;
            }
        }