<?PHP
/*
 * DIREITOS AUTORAIS RESERVADOS (C) 2007 UFRJ
 * 
 * ESTE PROGRAMA É SOFTWARE LIVRE; VOCÊ PODE REDISTRIBUÍ-LO E/OU MODIFICÁ-LO SOB OS
 * TERMOS DA LICENÇA PÚBLICA GERAL GNU CONFORME PUBLICADA PELA FREE SOFTWARE FOUNDATION;
 * TANTO A VERSÃO 2 DA LICENÇA, COMO (A SEU CRITÉRIO) QUALQUER VERSÃO POSTERIOR.

 * ESTE PROGRAMA É DISTRIBUÍDO NA EXPECTATIVA DE QUE SEJA ÚTIL, PORÉM, SEM NENHUMA GARANTIA;
 * NEM MESMO A GARANTIA IMPLÍCITA DE COMERCIABILIDADE OU ADEQUAÇÃO A UMA FINALIDADE ESPECÍFICA.
 * CONSULTE A LICENÇA PÚBLICA GERAL DO GNU PARA MAIS DETALHES.
 * 
 * VOCÊ DEVE TER RECEBIDO UMA CÓPIA DA LICENÇA PÚBLICA GERAL DO GNU JUNTO COM ESTE PROGRAMA; 
 * SE NÃO, ACESSE <<HTTP://WWW.GNU.ORG/LICENSES/LICENSES.PT-BR.HTML>>
 */

<?

require_once 'util.php';

function output_telefone($ddd, $numero=null)/*{{{*/
{
	if($numero == null)
	{
		$n = (string)$ddd;

		if(strlen($n) || !is_numeric($n))
			return $n;
		else
			return '('.substr($n,0,2).')'.substr($n,2,4).'-'.substr($n,6,4);;
	}
	else
		return "($ddd)$numero";
}/*}}}*/
function input_telefone($tel)/*{{{*/
{
	return array(substr($tel,1,2), substr($tel,4,4).substr($tel,9,4));
}/*}}}*/

class Telefone extends Doctrine_Record
{
	public function setTableDefinition()
	{
		$this->setTableName('saude.telefone');

		$this->hasColumn('ddd', 'string', 2, array('fixed','notnull','notblank'));
		$this->hasColumn('numero', 'string', 8, array('notnull','notblank'));
		$this->hasColumn('idtipo', 'integer', NULL, array('notnull'));

		$this->hasColumn('idpessoa', 'integer', NULL, array('notnull'));
	}

	public function validate()
	{
		trim_string_columns($this);

		$erros = array();

		if(!$this->ddd)
			$erros[] = 'O DDD do telefone deve ser informado';

		if(!$this->numero)
			$erros[] = 'O n�mero do telefone deve ser informado';

		if(!$this->idtipo)
			$erros[] = 'O tipo do telefone deve ser informado';

		if($erros)
			throw new Exception(implode("\n",$erros));
	}

	public function setUp()
	{
		$this->hasOne('TipoTelefone as tipo',
			array('local' => 'idtipo',
			      'foreign' => 'id'));

		$this->hasOne('Pessoa as pessoa',
			array('local' => 'idpessoa',
			      'foreign' => 'id'));
	}

};

?>
