示例#1
0
        // Usuario escolhe o investimento com valor pré-estabelecido na lista
        public void AplicarInvestimento(Investimento investimento)
        {
            // Inserir na lista da contaContabil, e na lista de transações, e fazer as relações bilaterais
            // Se saldo for suficiente, instanciar uma Transação de aplicação(p/ extrato) e incluir na lista de transações o investimento em si
            if (SaldoSuficiente(investimento.ValorInicial))
            {
                investimento.Status = "Aplicado";
                investimento.Conta  = this;
                Transacoes.Add(investimento);
                investimento.ContaContabil = BancoProp.ContaInvestimento;
                investimento.ContaContabil.Investimentos.Add(investimento);
                investimento.Valor = investimento.ValorInicial;

                Transacao t = new Transacao()
                {
                    Tipo      = "Aplicação",
                    Conta     = this,
                    Valor     = -investimento.ValorInicial,
                    Data      = DateTime.Today,
                    Descricao = "Aplicação feita no investimento '" + investimento.Descricao + "'"
                };
                Transacoes.Add(t);
                Saldo -= investimento.ValorInicial;
            }
        }
示例#2
0
        // Transferência para outra conta, também sujeito a checagem de saldo
        public void Transferir(double valor, ContaCorrente favorecido)
        {
            if (SaldoSuficiente(valor))
            {
                DateTime      data          = DateTime.Now;
                Transferencia transferencia = new Transferencia()
                {
                    Valor      = -valor,
                    Conta      = this,
                    Data       = data,
                    Tipo       = "Transferência",
                    Descricao  = "Transferência realizada para a conta: " + favorecido.Numero + " Proprietário: " + favorecido.ClienteProp.Nome,
                    Favorecido = favorecido
                };
                Transacoes.Add(transferencia);
                Transferencia transferido = new Transferencia()
                {
                    Valor     = valor,
                    Conta     = favorecido,
                    Data      = data,
                    Tipo      = "Transferência",
                    Descricao = "Transferência recebida da conta:" + this.Numero + " Proprietário: " + this.ClienteProp.Nome
                };
                favorecido.Transacoes.Add(transferido);

                // Atualizar saldos
                Saldo            -= valor;
                favorecido.Saldo += valor;
            }
        }
示例#3
0
 // Realiza a solicitação de um empréstimo
 public void SolicitarEmprestimo(Emprestimo emprestimo)
 {
     // Adicionar na lista da conta contábil e de transacoes da conta
     // Atualizar saldo
     // Na tela de execução, instanciar o Emprestimo com valor, forma de pagamento lido das boxes, etc
     emprestimo.Conta = this;
     emprestimo.GerarParcelas();
     Saldo += emprestimo.Valor;
     Transacoes.Add(emprestimo);
     BancoProp.ContaEmprestimo.Emprestimos.Add(emprestimo);
 }
示例#4
0
        // Depósito na conta
        public void Depositar(double valor)
        {
            Deposito deposito = new Deposito()
            {
                Valor     = valor,
                Conta     = this,
                Data      = DateTime.Now,
                Tipo      = "Depósito",
                Descricao = "Depósito realizado"
            };

            Transacoes.Add(deposito);
            // Guardar a transação para extrato
            Saldo += valor;
        }
示例#5
0
        }                                    // Banco para vincular as contas contábeis nas aplicações, resgates, solicitações de empréstimo e etc

        // Saque de valor se houver saldo suficiente
        public void Sacar(double valor)
        {
            if (SaldoSuficiente(valor))
            {
                Saque saque = new Saque()
                {
                    Valor     = -valor,
                    Conta     = this,
                    Data      = DateTime.Now,
                    Tipo      = "Saque",
                    Descricao = "Saque realizado"
                };
                Transacoes.Add(saque);
                // Guardar o saque na tabela de transacoes/saques no banco
                Saldo -= valor;
            }
        }
示例#6
0
 // Resgata o valor integral do investimento
 public void ResgatarInvestimento(Investimento investimento)
 {
     // Não precisa remover da lista da ContaContabil, status resgatado na lista Transacoes
     // Ações de rendimento ficam na classe de Investimento em si
     if (investimento.Status.Equals("Aplicado"))
     {
         investimento.Status = "Resgatado";
         investimento.Valor  = Math.Round(investimento.ValorInicial + investimento.CalcularRendimentoFinal(), 2);
         Transacao t = new Transacao()
         {
             Tipo      = "Resgate",
             Conta     = this,
             Valor     = investimento.Valor,
             Data      = DateTime.Today,
             Descricao = "Resgate do investimento '" + investimento.Descricao + "'"
         };
         Transacoes.Add(t);
         Saldo += investimento.Valor;
     }
 }
示例#7
0
 public void AdicionarTransacao(Transacao transacao)
 {
     Transacoes.Add(transacao);
 }