$pagina_actual = "inicio"; require_once("panel/includes/config.php"); require_once("panel/includes/funciones.php"); require_once("includes/set_lista.php"); if (isset($_GET["id"])) { $id_categoria = cadena_segura($_GET["id"], 11); } else { $nombre = cadena_segura(str_replace("-", " ", ($_GET["n"])), 50); $result = $mysqli->query(" SELECT id FROM categoria_cliente WHERE nombre='" . decodificar($nombre) . "' ORDER BY id "); $id_array = mysqli_fetch_assoc($result); $id_categoria = $id_array["id"]; } $string_categorias=$id_categoria; $subs = $mysqli->query(" SELECT c.id FROM categoria_cliente c WHERE c.id_padre IN ( SELECT c.id FROM categoria_cliente c WHERE c.id_padre = '".$id_categoria."' AND c.visible!='no' ) AND c.visible!='no' UNION SELECT c.id FROM categoria_cliente c WHERE c.id_padre = '".$id_categoria."' AND c.visible!='no' "); while ($item = mysqli_fetch_assoc($subs)) { $string_categorias.=$item["id"].","; } $string_categorias=rtrim($string_categorias, ","); $query_orden = "ORDER BY vppl.stock>0 DESC, p.orden_categorias"; if (isset($json_datos_panel_cliente["orden_productos_categoria"]) && $json_datos_panel_cliente["orden_productos_categoria"]=='stock_descuento_manual'){ $query_orden = "ORDER BY vppl.stock>0 DESC, pp.factor > 0 DESC, pp.factor ASC, pp.cantidad_productos DESC, p.orden_categorias"; //p.destacado DESC, } if (isset($json_datos_panel_cliente["orden_productos_categoria"]) && $json_datos_panel_cliente["orden_productos_categoria"]=='alfabetico'){ $query_orden = "ORDER BY p.nombre"; } if (isset($json_datos_panel_cliente["orden_productos_categoria"]) && $json_datos_panel_cliente["orden_productos_categoria"]=='manual'){ $query_orden = "ORDER BY p.orden_categorias"; } if (isset($_GET["orden"])) { if ($_GET["orden"] != "") { $aux = explode("-", cadena_segura($_GET["orden"],30)); if ($aux[0] == 'precioasc') { $query_orden = "ORDER BY vppl.precio "; } if ($aux[0] == 'preciodesc') { $query_orden = "ORDER BY vppl.precio DESC"; } if ($aux[0] == 'nombreasc') { $query_orden = "ORDER BY p.nombre "; } if ($aux[0] == 'nombredesc') { $query_orden = "ORDER BY p.nombre DESC"; } if ($aux[0] == 'descuentodesc') { $query_orden = "ORDER BY vppl.stock>0 DESC, pp.factor > 0 DESC, pp.factor ASC, pp.cantidad_productos DESC"; } } } $desde = 0; $hasta = 0; $filtro_precio = ""; if (isset($_GET["desde"])) { $desde = cadena_segura($_GET["desde"],30); $hasta = cadena_segura($_GET["hasta"],30); if ($desde > 0) { if ($hasta > 0) { $filtro_precio = "AND vppl.precio BETWEEN " . $desde . " AND " . $hasta; } else { $filtro_precio = "AND vppl.precio >= " . $desde; } } else { if ($hasta > 0) { $filtro_precio = "AND vppl.precio <= " . $hasta; } } } $filtro_promo = ""; if (isset($_GET["promo"])) { $filtro_promo = "AND rpp.id_promocion='" . cadena_segura($_GET["promo"],30) . "'"; } $array_opciones_filtros = array(); foreach ($_GET as $clave => $valor) { $aux = explode("-", $clave); if ($aux[0] == 'filtro') { $array_opciones_filtros[$aux[1]][$valor] = 'si'; } } $filtro_opciones_filtros = ""; if (sizeof($array_opciones_filtros)>0){ $filtro_opciones_filtros.=" AND EXISTS ( SELECT 1 FROM renglon_producto_opcion rpo WHERE rpo.id_producto = p.id AND ( "; foreach ($array_opciones_filtros as $clave => $valor) { $string_opciones = ''; foreach ($valor as $clave2 => $valor2) { $string_opciones .= $clave2.','; } $string_opciones=rtrim($string_opciones, ","); $filtro_opciones_filtros.="(rpo.id_filtro = ".$clave." AND rpo.id_opcion IN (".$string_opciones.")) OR"; } $filtro_opciones_filtros=rtrim($filtro_opciones_filtros, " OR"); $filtro_opciones_filtros.=" ) GROUP BY rpo.id_producto HAVING COUNT(DISTINCT rpo.id_filtro) = ".sizeof($array_opciones_filtros)." ) "; } $filtro_marcas=""; if (isset($_GET["marca"])) { $filtro_marcas = "AND p.id_marca='" . cadena_segura($_GET["marca"],30) . "'"; } $modulos = $mysqli->query(" SELECT id, id_modulo, id_categoria_noticias, color_fondo, titulo, cantidad, subtitulo FROM modulos_noticias WHERE id_categoria='" . $id_categoria . "' ORDER BY orden "); $result = $mysqli->query(" SELECT nombre, id_padre, id, baner_escritorio, baner_celular FROM categoria_cliente WHERE id=" . $id_categoria . " "); $categoria_seleccionada = mysqli_fetch_assoc($result); $result = $mysqli->query(" SELECT nombre, id_padre, id FROM categoria_cliente WHERE id='" . (isset($categoria_seleccionada["id_padre"]) ? $categoria_seleccionada["id_padre"] : 0) . "' "); $padre_seleccionada = mysqli_fetch_assoc($result); $result = $mysqli->query(" SELECT nombre, id_padre, id FROM categoria_cliente WHERE id='" . (isset($padre_seleccionada["id_padre"]) ? $padre_seleccionada["id_padre"] : 0) . "' "); $abuelo_seleccionada = mysqli_fetch_assoc($result); $filtro_categoria = " AND EXISTS ( SELECT 1 FROM renglon_producto_categoria rpc INNER JOIN categoria_cliente cc ON cc.id = rpc.id_categoria LEFT JOIN categoria_cliente cc2 ON cc2.id = cc.id_padre WHERE rpc.id_producto = p.id AND (rpc.id_categoria = " . $id_categoria . " OR cc.id_padre = " . $id_categoria . " OR cc2.id_padre = " . $id_categoria . ") ) "; if (isset($abuelo_seleccionada["nombre"]) && $abuelo_seleccionada["nombre"] != "") { $categoria_principal = $abuelo_seleccionada; $subcategoria_principal = $padre_seleccionada; $subsubcategoria_principal = $categoria_seleccionada; } else { if (isset($padre_seleccionada["nombre"]) && $padre_seleccionada["nombre"] != "") { $categoria_principal = $padre_seleccionada; $subcategoria_principal = $categoria_seleccionada; $subsubcategoria_principal = ''; } else { $categoria_principal = $categoria_seleccionada; $subcategoria_principal = ''; $subsubcategoria_principal = ''; } } $filtro_stock = ''; $filto_imagen = ''; if ((isset($json_datos_panel_cliente["productos_sin_foto_visibles"])) && ($json_datos_panel_cliente["productos_sin_foto_visibles"] == 'no' )) { $filto_imagen = 'AND p.foto_principal != "" '; } if ((isset($json_datos_panel_cliente["productos_sin_stock_visibles"] )) && ($json_datos_panel_cliente["productos_sin_stock_visibles"] == 'no' )){ $filtro_stock = 'AND vppl.stock > 0'; } $id_usuario=isset($_SESSION["maquinstore"]["usuario"]["id"])?$_SESSION["maquinstore"]["usuario"]["id"]:0; require_once("includes/filtros_multiples_listas.php"); $productos = $mysqli->query(" SELECT p.id, p.nombre, p.codigo, p.destacado, p.oferta, p.nuevo, p.foto_principal AS nombre_foto_principal_producto, vcap.cantidad AS cantidad_atributos, uv.nombre AS unidad_venta, p.envio_gratis, m.nombre AS marca, vppl.unidades_caja, p.hot_sale, pp.icono AS icono_promocion, rpf.id AS favorito, vppl.precio, vppl.puntos, vppl.puntos_full, vppl.stock, vppl.reintegro_billetera, vppl.iva, pp.cantidad_productos AS canti_prod_promo, pp.factor AS factor_promocion, pp.nombre_web AS promo, pp.color_texto AS promo_color_texto, pp.color_fondo AS promo_color_fondo, vppl.stock_real $filtro_select_multiple FROM producto p INNER JOIN vista_cantidad_atributos_producto vcap ON vcap.id_producto=p.id LEFT JOIN unidad_venta uv ON uv.id=p.id_unidad_venta LEFT JOIN marca m ON m.id=p.id_marca LEFT JOIN renglon_producto_favorito rpf ON (rpf.id_producto=p.id AND rpf.id_usuario='".$id_usuario."') INNER JOIN vista_precio_producto_listas_materializada vppl ON (vppl.id=p.id AND vppl.id_lista='".$_SESSION["id_lista"]."') LEFT JOIN renglon_producto_promocion rpp ON (p.id=rpp.id_producto AND rpp.id_lista='".$_SESSION["id_lista"]."') LEFT JOIN promocion_producto pp ON pp.id=rpp.id_promocion $filtro_join_multiple WHERE 1 AND p.visible!='no' $filtro_stock $filto_imagen $filtro_categoria $filtro_opciones_filtros $filtro_precio $filtro_promo $filtro_marcas GROUP BY p.id $query_orden "); if (isset($_GET["debug"])){ echo " SELECT p.id, p.nombre, p.codigo, p.destacado, p.oferta, p.nuevo, p.foto_principal AS nombre_foto_principal_producto, vcap.cantidad AS cantidad_atributos, uv.nombre AS unidad_venta, p.envio_gratis, m.nombre AS marca, vppl.unidades_caja, p.hot_sale, pp.icono AS icono_promocion, rpf.id AS favorito, vppl.precio, vppl.puntos, vppl.puntos_full, vppl.stock, vppl.reintegro_billetera, vppl.iva, pp.cantidad_productos AS canti_prod_promo, pp.factor AS factor_promocion, pp.nombre_web AS promo, pp.color_texto AS promo_color_texto, pp.color_fondo AS promo_color_fondo, vppl.stock_real $filtro_select_multiple FROM producto p INNER JOIN vista_cantidad_atributos_producto vcap ON vcap.id_producto=p.id LEFT JOIN unidad_venta uv ON uv.id=p.id_unidad_venta LEFT JOIN marca m ON m.id=p.id_marca LEFT JOIN renglon_producto_favorito rpf ON (rpf.id_producto=p.id AND rpf.id_usuario='".$id_usuario."') INNER JOIN vista_precio_producto_listas_materializada vppl ON (vppl.id=p.id AND vppl.id_lista='".$_SESSION["id_lista"]."') LEFT JOIN renglon_producto_promocion rpp ON (p.id=rpp.id_producto AND rpp.id_lista='".$_SESSION["id_lista"]."') LEFT JOIN promocion_producto pp ON pp.id=rpp.id_promocion $filtro_join_multiple WHERE 1 AND p.visible!='no' $filtro_stock $filto_imagen $filtro_categoria $filtro_opciones_filtros $filtro_precio $filtro_promo $filtro_marcas GROUP BY p.id $query_orden "; } $result = $mysqli->query(" SELECT AVG(vppl.precio) AS promedio, CHAR_LENGTH(AVG(vppl.precio)) AS longitud, ROUND((AVG(vppl.precio)*1.5),-CHAR_LENGTH(AVG(vppl.precio))+8) AS limite2, ROUND((AVG(vppl.precio)*0.5),-CHAR_LENGTH(AVG(vppl.precio))+8) AS limite1, count(p.id) AS cantidad_anuncios, MAX(vppl.precio) AS maximo, MIN(vppl.precio) AS minimo FROM producto p LEFT JOIN vista_precio_producto_listas_materializada vppl ON vppl.id=p.id WHERE 1=1 AND vppl.id_lista=" . $_SESSION["id_lista"] . " $filtro_categoria $filtro_opciones_filtros "); $limite_precios = mysqli_fetch_assoc($result); //print_r($limite_precios); $filtros = $mysqli->query(" SELECT f.id, f.nombre, f.nombre_web FROM filtro f INNER JOIN renglon_categoria_filtro rcf ON rcf.id_filtro=f.id WHERE rcf.id_categoria='" . $id_categoria . "' ORDER BY f.orden "); //renglon producto categoria id_producto e id $filtros_promos = " SELECT promo.id, promo.nombre, promo.cantidad_productos, promo.factor, promo.estado, count(DISTINCT rpp.id_producto) AS canti_promo FROM promocion_producto promo INNER JOIN renglon_producto_promocion rpp ON (rpp.id_promocion=promo.id AND rpp.id_lista='".$_SESSION["id_lista"]."') INNER JOIN renglon_producto_categoria rpc ON rpc.id_producto=rpp.id_producto INNER JOIN producto p ON p.id=rpp.id_producto LEFT JOIN vista_precio_producto_listas_materializada vppl ON vppl.id=p.id WHERE rpc.id_categoria IN (" . $string_categorias . ") AND vppl.id_lista=" . $_SESSION["id_lista"] . " $filtro_stock $filto_imagen GROUP BY promo.id ORDER BY nombre "; $result_promos = $mysqli->query("$filtros_promos"); $hay_promos = mysqli_num_rows($result_promos); //miro a ver el número total de campos que hay en la tabla con esa búsqueda $pagina_publicidades = $id_categoria; $array_colores = array(); $colores = $mysqli->query(" SELECT id, nombre, valor FROM color "); while ($item = mysqli_fetch_assoc($colores)) { $array_colores[$item["id"]]["nombre"] = $item["nombre"]; $array_colores[$item["id"]]["valor"] = $item["valor"]; } $publicidades_contenido = $mysqli->query(" SELECT rpp.id, p.nombre, p.foto_celular, p.foto_escritorio, p.link, p.tipo_link FROM publicidad p INNER JOIN renglon_publicidad_pagina rpp ON rpp.id_publicidad=p.id WHERE 1=1 AND p.estado='activo' AND p.tipo='Contenido' AND rpp.pagina='" . $pagina_publicidades . "' AND p.fecha_inicio <= '" . date('Y-m-d') . "' AND p.fecha_fin >= '" . date('Y-m-d') . "' ORDER BY rpp.orden, p.id "); $publicidades_contenido_doble = $mysqli->query(" SELECT rpp.id, p.nombre, p.foto_celular, p.foto_escritorio, p.link, p.tipo_link FROM publicidad p INNER JOIN renglon_publicidad_pagina rpp ON rpp.id_publicidad=p.id WHERE 1=1 AND p.estado='activo' AND p.tipo='Contenido doble' AND rpp.pagina='" . $pagina_publicidades . "' AND p.fecha_inicio <= '" . date('Y-m-d') . "' AND p.fecha_fin >= '" . date('Y-m-d') . "' ORDER BY rpp.orden, p.id "); $subcategorias_local = $mysqli->query(" SELECT c.id, c.nombre, count(DISTINCT rpc.id_producto) AS cantidad FROM categoria_cliente c LEFT JOIN renglon_producto_categoria rpc ON rpc.id_categoria=c.id WHERE c.id_padre=" . $id_categoria . " AND c.visible!='no' GROUP BY c.id ORDER BY c.orden ");//cantidad DESC, $marcas_productos = $mysqli->query(" SELECT m.id, m.nombre, count(DISTINCT rpc.id_producto) AS cantidad FROM marca m INNER JOIN producto p ON p.id_marca=m.id LEFT JOIN vista_precio_producto_listas_materializada vppl ON vppl.id=p.id LEFT JOIN renglon_producto_categoria rpc ON rpc.id_producto=p.id WHERE rpc.id_categoria IN (".$string_categorias.") AND vppl.id_lista=" . $_SESSION["id_lista"] . " $filtro_stock $filto_imagen GROUP BY m.id ORDER BY m.nombre ");//cantidad DESC, $url_actual = url_completa(); $result = $mysqli->query(" SELECT count(p.id) AS cantidad FROM producto p LEFT JOIN vista_precio_producto_listas_materializada vppl ON vppl.id=p.id WHERE 1 $filtro_categoria $filtro_opciones_filtros AND vppl.precio <= '" . $limite_precios["limite1"] . "' AND vppl.id_lista=" . $_SESSION["id_lista"] . " "); $cantidad_anuncios_precio1 = mysqli_fetch_assoc($result); $result = $mysqli->query(" SELECT count(p.id) AS cantidad FROM producto p LEFT JOIN vista_precio_producto_listas_materializada vppl ON vppl.id=p.id WHERE 1 $filtro_categoria $filtro_opciones_filtros AND vppl.precio >= '" . $limite_precios["limite1"] . "' AND vppl.precio <= '" . $limite_precios["limite2"] . "' AND vppl.id_lista=" . $_SESSION["id_lista"] . " "); $cantidad_anuncios_precio2 = mysqli_fetch_assoc($result); $result = $mysqli->query(" SELECT count(p.id) AS cantidad FROM producto p LEFT JOIN vista_precio_producto_listas_materializada vppl ON vppl.id=p.id WHERE 1 $filtro_categoria $filtro_opciones_filtros AND vppl.precio > '" . $limite_precios["limite2"] . "' AND vppl.id_lista=" . $_SESSION["id_lista"] . " "); $cantidad_anuncios_precio3 = mysqli_fetch_assoc($result); ?>
require('includes/tag-manager-head.php'); ?>