// cBanco.cpp
// Definição da classe cBanco
// 29 de Novembro de 2000

#include "cBanco.h"
#include <string.h>


cBanco::cBanco( char *sNome )
{
	strcpy( Nome, sNome );
	NrNovaConta = 1;
}


cBanco::~cBanco()
{

}

bool cBanco::AbrirConta( int& NrConta )
{
	col.Adicionar(NrNovaConta);
	NrConta = NrNovaConta;
	NrNovaConta ++;
	return true;
}


bool cBanco::FecharConta( int NrConta )
{
	return col.Remover(NrConta);
}

bool cBanco::Depositar( int NrConta, float Valor )
{
	cConta *pConta = col.ObterConta(NrConta);

	if( pConta ) 
		return pConta->Depositar(Valor) ;
	else
		return false;
}
	
bool cBanco::Levantar( int NrConta, float Valor )
{
	cConta *pConta = col.ObterConta(NrConta);

	if( pConta ) 
		return pConta->Levantar(Valor) ;
	else
		return false;
}


bool cBanco::Saldo( int NrConta, float& Saldo )
{
	cConta *pConta = col.ObterConta(NrConta);

	if( pConta ) 
	{
		Saldo = pConta->Saldo ;
		return true;
	}
	else
		return false;
}



bool cBanco::Transferir( int NrContaOrigem, int NrContaDestino, float Valor )
{
	cConta *pContaOrigem  = col.ObterConta(NrContaOrigem);
	cConta *pContaDestino = col.ObterConta(NrContaDestino);

	if ( pContaOrigem && pContaDestino ) 
	{
		if ( pContaOrigem->Levantar(Valor) )
		{
			pContaDestino->Depositar(Valor);
			return true;
		}
	}

	return false;
}

