// cClienteEmprestimo.cpp

// Aula prática de 14 de Março de 2002

// Inclusão no FRAMEWORK dado na aulas de 7,8 de Março de 2002
//  da versão 1 do projecto Empréstimo datado de 11 de Outubro de 2001


#include "cClienteEmprestimo.h"
#include <iostream.h>

cClienteEmprestimo::cClienteEmprestimo()
{
	EmprestimoContraido = false;
}


void cClienteEmprestimo::Init()
{
	ListaOpcoes.Inserir( cOpcaoMenu( "Pedir emprestimo", (void (cCliente::*)() )cClienteEmprestimo::PedirEmprestimo ));	
	ListaOpcoes.Inserir( cOpcaoMenu( "Pagar Prestacao", (void (cCliente::*)() )cClienteEmprestimo::PagarPrestacao  ));	
	ListaOpcoes.Inserir( cOpcaoMenu( "Amortizar", (void (cCliente::*)() )cClienteEmprestimo::Amortizar ));	
	ListaOpcoes.Inserir( cOpcaoMenu( "Alterar a taxa de juro", (void (cCliente::*)() )cClienteEmprestimo::AlterarTxJuro ));	

	cCliente::Init();
}

int cClienteEmprestimo::ShowMenu()
{
	ClearScreen();

	if ( EmprestimoContraido )
		EscreverEmprestimo( Emp );
	else
		cout << "Emprestimo nao contraido";
	

	return cCliente::ShowMenu ();
}


void cClienteEmprestimo::PedirEmprestimo()
{
	LerEmprestimo( Emp );
	EmprestimoContraido = true;
}

void cClienteEmprestimo::PagarPrestacao()
{
	if( EmprestimoContraido )
		Emp.PagarPrestacao();
}

void cClienteEmprestimo::Amortizar()
{
	if( !EmprestimoContraido ) return;

	double ValorAmortizacao;

	cout << "Indique o valor da amortizacao : ";
	cin >> ValorAmortizacao ;
	Emp.Amortizar( ValorAmortizacao );		

}

void cClienteEmprestimo::AlterarTxJuro()
{
	if( !EmprestimoContraido ) return;

	double  NovaTaxaJuro;

	cout << "Indique a nova taxa de juro : ";
	cin >> NovaTaxaJuro ;
	Emp.TaxaJuro = NovaTaxaJuro;
}


void cClienteEmprestimo::EscreverEmprestimo( cEmprestimo Emprestimo )
{
  cout << "Dados do emprestimo : " << endl;
  cout << "\t Capital em Divida = " << Emprestimo.GetCapitalDivida() << endl;
  cout << "\t Taxa de Juro Anual = " << Emprestimo.TaxaJuro << endl;
  cout << "\t Nr Prestacoes que faltam = " << Emprestimo.GetNrPrestacoes()  << endl;	
  cout << "\t Prestacao = " << Emprestimo.Prestacao() << endl;

}

void cClienteEmprestimo::LerEmprestimo( cEmprestimo &Emprestimo )
{

	double Capital, TaxaJuro;
	int NrAnos;

	cout << "Introduza os dados do emprestimo : " << endl;
	cout << "Capital : " ; cin >> Capital;
	cout << "Taxa de Juro : "; cin >> TaxaJuro;
	cout << "Nr de anos : "; cin >> NrAnos;
	cout << endl;

	Emprestimo = cEmprestimo(TaxaJuro, NrAnos*12, Capital );

}

