<?php
class Categoria extends UtilObjeto {

	public function __construct($params=""){
		parent::__construct(strtolower(get_class()), $params);
	}

	public static function buscaPorSeoLink($seoLink){
		global $db;
        $sql = "SELECT id
                FROM   rz2_categoria
				WHERE  seo_link = '".$seoLink."'
				LIMIT  0,1";
        // exit($sql);
        $rs = executaSql($sql);
        $rg = $rs->fetchRow();
		return $rg['id'];
	}

	public function atualizaSeoLink(){
		global $db;
		$sql = "SELECT    c.id, lower(c.nome) nome, lower(pai.nome) pai
				FROM      rz2_categoria c
				LEFT JOIN rz2_categoria pai
				ON        c.pai = pai.id
				WHERE     c.id = ".$this->id;
		$rs = $db->query($sql);
		while($rg = $rs->fetchRow()){
			$nome1 = UtilObjeto::trataNomeUrl($rg['nome']);
			$nome2 = ($rg['pai'] != "") ? UtilObjeto::trataNomeUrl($rg['pai']).'-' : "";
			$seoLink = $nome2.$nome1;
			$up = "UPDATE rz2_categoria SET seo_link = '".$seoLink."' WHERE id = ".$this->id;
			$db->query($up);
		}
		return true;
	}

	public function inserir(){
		if(parent::inserir()){
			return $this->atualizaSeoLink();
		}
		else{
			return false;
		}
	}
	
	public function alterar(){
		if(parent::alterar()){
			return $this->atualizaSeoLink();
		}
		else{
			return false;
		}
	}

	public function excluir(){
		if($this->permiteExcluir()){
			return parent::excluir();
		}
		else{
			return false;
		}
	}

	public function permiteExcluir(){
		global $db;
		$sql = "SELECT count(*) total
				FROM   rz2_produto_categoria
				WHERE  id_categoria = ".$this->id;
		$rs = $db->query($sql);
		$rg = $rs->fetchRow();
		return ($rg['total'] > 0) ? false : true;
	}

	public static function listar($filtro=""){
		global $db;
        $sql = "SELECT    c.*, pai.nome nomePai,
						  if(pai.id is not null,concat(pai.nome,' > ',c.nome),c.nome) nomeCompleto
				FROM      rz2_categoria c
				LEFT JOIN rz2_categoria pai
				ON        c.pai = pai.id
				".$filtro."
				ORDER BY c.ativo ASC, nomeCompleto";
        // exit($sql);
        $rs = executaSql($sql);
        $arrLista = array();
        while($rg = $rs->fetchRow()){
            foreach($rg as $campo => $valor){
				$arrLista[$rg['id']][$campo] = $valor;
            }
        }
        //echoArray($arrLista); exit;
        return (count($arrLista) > 0) ? $arrLista : false;
	}

}
?>