<?php

include_once ("base/elemento.class.php");
include_once ("base/categoria.class.php");
include_once ("base/lista.class.php");
include_once ("include/cripta.class.php");

class cliente extends elemento{
	
	//var $idCat=1;
	var $encode=array('nome', 'email', 'texto', 'telefone', 'morada', 'cp1', 'cp2', 'cp3', 'www', 'telemovel', 'empresa', 'fax','codigo', 'coluna1', 'coluna2');
	
	function cliente() {   }
	
	function guardar1naonao($id=0){
		$this->req['codigo']=implode('-', $this->req['cod']);
		parent::guardar($id);
	}


    
    function isLogin($login){
    	if (empty($login)){novo(0); exit;}
		$db= new dbElemento;	
		if ($db->getLinhaCampo($this->tipo,"login", $login )) return true;
		return false;
	}
	
	function gerarPassword($word) {
		srand((double)microtime()*1000000); 
		$temppass = md5($word . rand(0,9999999)); 
		$mypassword=substr($temppass, 1, 8);
		return $mypassword; 
	}
	
	function testaPasswordNova(){
		$password1=$this->req['password1'];	
		$password2=$this->req['password2'];	
	
		if (empty($password1) && empty($password2)){
			set_msg("Campos password vazios.<br> Vai ser gerada uma password que depois tem de ser mudada.<br><br>");			
			$password1=$this->gerarPassword($this->req['login']);
			$password2=$password1;
		}else {
			if ($password1!=$password2){
				set_msg("Campos password diferentes .<br>A password não será mudada.<br><br>");
				return false;
			}
		}
		//$this->enviarMail($this->req['nome'], $this->req['email'], $this->req['login'], $password1);
		return md5($password1);	
	}
	
    function testaPasswordEdit($id){
    	$db= new dbElemento;
    	$password1=$this->req['password1'];	
		$password2=$this->req['password2'];	
    
    	if (empty($password1) && empty($password2)){
    		set_msg("Campos password vazios.<br>A password não será mudada.<br><br>");	
			$linha = $db->getLinha($this->tipo, $id);				
			return $linha['password'];
		}
		else if ($password1!=$password2){
			set_msg("Campos password diferentes.<br> A password não será mudada.<br><br>");
			return false;
		}	
		//$this->enviar_mail($nome, $email, $login, $password1);
		return md5($password1);
    }
    
   	
	function guardarNovo(){
		if ($this->isLogin($this->req['login'])) exit;
		if (!($this->req['password']=$this->testaPasswordNova()) ) exit;		
		return parent::guardarNovo();
	}
	
	function guardarEdit($id){
		if (!($this->req['password']=$this->testaPasswordEdit())) { exit; $this->edit($id);}		
		return parent::guardarEdit($id);
	}
	
	
	function editar($id="") {    
        $db= new dbElemento;
        $linha = @$db->getLinha($this->tipo, $id);
		
		$f= new form($id, $linha , $this->req);
		$f->toolbars();
		$f->titulo("Clientes / ",1);

		$f->campoTexto("Login","login" );
		$f->campoPassword("Password","password1" );
		$f->campoPassword("Confirme Password","password2" );
		$f->campoValor("idCat",1 );
		$f->campoValor("admin",0 );
		$f->campoValor("password_old",$linha['password'] );
		$f->separador();
		$f->campoTexto("Nome","nome" );
		$f->campoAreaTexto("Morada","morada" );
		$f->campoTexto("Localidade","localidade" );
		$f->campoCp("Código postal","cp1");
		$f->separador();
		$f->campoTexto("Email","email" );
		$f->campoTexto("Telefone","telefone" );
		$f->campoTexto("Telemovel","telemovel" );
		$f->campoTexto("Fax","fax" );
		$f->campoTexto("Empresa","empresa" );
		$f->separador();
	
		//$f->campoSimNao("Admin", "admin", 0);
		$f->campoSimNao("Activo", "activo", 0);
		if ($id) {
			$f->label("","Para mudar a password insira os dois campos. Para não mudar deixe em branco.<br>");
		}
		$f->mostra();
    }

	function listar() {
        $campos=array("Nº"=>"id","login"=>"login","Nome"=>"nome");
        
        $db= new dbElemento;
        
        $dados=$db->getLista($this->tipo, $this->idCat, $campos , "login", $this->req['ordem'] ,$this->req['offset'], $this->req['limit'], $this->req['procurar'], $this->req['filtro'] );
        $this->req['total']=$db->getTotal($this->tipo, $this->idCat , $this->req['procurar'], $this->req['filtro']);
                        
        $f= new lista($campos, $dados, $this->req);
		$f->toolbars();
		$f->titulo("Clientes / ");
		$f->cabecaSimples();
        //$f->filtros();
        $f->tabela(false, true);
		$f->mostra();
    }
	

}
?>
