<?php
includeCommonClass('formulario');
includeCommonClass('funciones');


class categoriaProductos{
	var $funciones;
	var $rutaBase;
	var $nivel;

	function __construct (){
		$this->activos=1;
		$this->nivel=1;
		$this->funciones = new funciones();
	}

	function setRutaBase($ruta){
		$this->rutaBase = $ruta;
	}

	function obtenerCategoria($catId, $catNivel){
		$condiciones = " id = ".$catId;
		$categorias = $this->obtenerCategorias($condiciones, $catNivel);
		if (count($categorias)>0){
			$categoriaRetorno = $categorias[0];
			$catHijas = $this->obtenerSubCategorias($catId, $catNivel);
			if  (isset($catHijas)) {
				$categoriaRetorno['catHijas'] = count($catHijas)-1;
			}
			else{ $categoriaRetorno['catHijas'] = 0;
			}
			return $categoriaRetorno;
		}
	}

	function obtenerCategorias($condiciones="", $nivel=1, $orderBy="", $maxResults=0){
		$version = $this->funciones->ComprobarVersion ();
	
		$query = " select * from ";
		if (isset($nivel)){
			if ($nivel == 1){
				$query.= " prod_categoria ";
				
				$nivel_activo = 1;
			}else if ($nivel == 2){
				$query.= " prod_subcategoria ";
				
				$nivel_activo = 2;
			}else if ($nivel == 3){
				$query.= " prod_sub_subcategoria ";
				
				$nivel_activo = 3;
			}else{
				return;
			}
		}else{
			$query.= " prod_categoria ";
			
			$nivel_activo = 1;
		}

		/*
		Creador: Jesús Rafael Cova Huerta.
		
		Descripci&oacute;n: se utiliza para esconder o no según el estatus.
		*/
		
			if ((isset($condiciones)) && $condiciones!='') {
				if ($version == "4.1") {
					if ($nivel_activo == 1) {
						$query.= " where only_for <> 2 AND ".$condiciones;
					} else {
						$query.= " where activo <> 2 AND ".$condiciones;
					}
				} else {
					$query.= " where ".$condiciones;
				}
			}
		
		////////////////////
		

		if ((isset($orderBy)) && $orderBy!=''){
			$query.= " order by ".$orderBy;
		}else{
			$query.= " order by orden, nombre, id ";
		}
		$this->nivel = $nivel;

		return $this->obtenerCategoriasByQuery($query, $maxResults);
	}

	function obtenerCategoriasByQuery($query, $maxResults){
		$ConnArt = new formulario('db');

		$items = $ConnArt->estructura_db($query);

		if(count($items)>0){
			$i=0;
    		
			$nivelActual = $this->nivel;
						
			foreach($items as $item){
				$catHijas = $this->obtenerSubCategorias($item['id'], $this->nivel);
				if  (isset($catHijas)) {
					$datos[$i]['link'] = "/SV-listado-categorias.php?nivel=".$nivelActual."&catid=".$item['id'];
				}else{
					$datos[$i]['link'] = "/SV-listado-productos.php?nivel=".$nivelActual."&catid=".$item['id'];
				}

				$datos[$i]['id'] = $item['id'];
				
				if($nivelActual == 2) {
					$datos[$i]['cat_id'] = $item['cat_id'];
				} else if($nivelActual == 3) {
					$datos[$i]['cat_id'] = $item['cat_id'];
					
					$datos[$i]['sub_id'] = $item['sub_id'];
				}
		
				$datos[$i]['nombre'] = $item['nombre'];
				$datos[$i]['descrip'] = $item['descrip'];
				$datos[$i]['resumen'] = $item['descrip'];
				$datos[$i]['imagen'] = $item['imagen'];
				$datos[$i]['orden'] = $item['orden'];
				$datos[$i]['srcImg'] = $this->rutaBase."/categoria/turn/".$item['imagen'];
				$datos[$i]['srcImgOrig'] = $this->rutaBase."/categoria/orig/".$item['imagen'];
				$datos[$i]['srcImgMed'] = $this->rutaBase."/categoria/med/".$item['imagen'];
				$i=$i+1;
				if ($maxResults!=0 && $maxResults<=$i){
					break;
				}
			}
		}
		$ConnArt->cerrar();
		
		return $datos;
	}

	function obtenerSubCategorias($catId, $nivel=1){
		if (isset($nivel)){
			if ($nivel == 1){
				$condiciones.= " cat_id=".$catId;
			}else if ($nivel == 2){
				$condiciones.= " sub_id=".$catId;
			}else{
				return;
			}
		}else{
			return;
		}
	
		$datos = $this->obtenerCategorias($condiciones, $nivel+1);
		
                if (empty($datos)) return;
		$categoria = new categoriaProductos();
		
		$datosCategoria = $categoria->obtenerCategoria($catId,$catNivel);
		$datos['categoria'] = $datosCategoria;
		return $datos;
	}

}

?>