<?php
session_start();
require_once ("../conexion.php");
require_once('../include/sesiones.php'); 

$resaltador='#FF3700';
function resaltar_frase($frase, $word)
{
    $frase=preg_replace('#'. preg_quote($word) .'#i', '<strong><span style="color:#000;font-weight: bold;">\0</span></strong>', $frase);
    return $frase;
}

$action = (isset($_REQUEST['action'])&& $_REQUEST['action'] !=NULL)?$_REQUEST['action']:'';

if($action == 'ajax')
{
    // 1. Sanitización de datos de entrada
   
    $proveedor = mysqli_real_escape_string($con,(strip_tags($_REQUEST['proveedor'], ENT_QUOTES)));
    $familia = mysqli_real_escape_string($con,(strip_tags($_REQUEST['familia'], ENT_QUOTES)));
    $q = mysqli_real_escape_string($con,(strip_tags($_REQUEST['q'], ENT_QUOTES)));
    $estado = mysqli_real_escape_string($con,(strip_tags($_REQUEST['estado'], ENT_QUOTES)));
    $buscar = mb_strtoupper($q);
    
    include '../include/pagination.php';
    $page = (isset($_REQUEST['page']) && !empty($_REQUEST['page']))?$_REQUEST['page']:1;
    $per_page = $conf_pagi_articulos; 
    $adjacents  = 4; 
    $offset = ($page - 1) * $per_page;

    // 2. Ordenamiento
    $ordenes = [
    'art_cantidad'   => 'b.art_cantidad desc',
    'art_referencia' => 'a.art_referencia asc',
    'art_nombre'     => 'a.art_nombre asc',
    ];

    $ordenar = $ordenes[$organizar_articulos] ?? 'b.art_cantidad desc'; 

    // 3. Filtros Base
    $where = "a.empresa='$empresa' AND a.art_tipo='articulo' AND a.art_estado LIKE '$estado'";

    if (!empty($ubicacion)) {
        $where .= " AND a.ubicacion_ubi_id='$ubicacion'";
    }
    if (!empty($proveedor)) {
        $where .= " AND a.proveedor_pro_id='$proveedor'";
    }
    if (!empty($familia)) {
        $where .= " AND a.familias_fam_id='$familia'";
    }

    // 4. OPTIMIZACIÓN DE BÚSQUEDA INTELIGENT
    // Si busca solo números, asumimos código de barras/referencia y quitamos el % inicial para usar índices
    if (ctype_digit($q) && !empty($q)) {
        $where .= " AND (a.art_barras LIKE '$q%' OR a.art_referencia LIKE '$q%')";
    } else {
        // Si es texto, mantenemos búsqueda amplia en nombre, pero optimizamos referencia
        $where .= " AND (a.art_referencia LIKE '$q%' OR a.art_nombre LIKE '%$q%' OR a.art_barras LIKE '%$q%' OR a.art_referencia2 LIKE '%$q%')";
    }

    // 5. Query de Conteo (Paginación)
    $count_query = mysqli_query($con, "SELECT COUNT(*) AS numrows FROM articulos a WHERE $where");
    $row = mysqli_fetch_array($count_query);
    $numrows = $row['numrows'];
    $total_pages = ceil($numrows / $per_page);
    $reload = '../I_articulos.php';

   

    // 7. Query Principal con LEFT JOIN para traer Ubicación (Evita consultar ubicación en cada fila)
    $sql = mysqli_query($con, "SELECT a.*, b.art_id AS art_idd, SUM(b.art_cantidad) AS art_cantidad, u.ubi_nombre 
        FROM articulos a 
        JOIN articulos_has_bodegas b ON a.art_id = b.articulos_art_id 
        LEFT JOIN ubicacion u ON a.ubicacion_ubi_id = u.ubi_id 
        WHERE $where AND b.sucursal='$sucursal'
        GROUP BY a.art_id 
        ORDER BY $ordenar, a.art_nombre ASC 
        LIMIT $offset, $per_page");

}

if ($numrows>0) { ?>
    <div class="table-responsive">
        <table class="table table-bordered table-hover table-striped" style="font-size: 9pt;">
            <tr>
                <th width="8%">CODIGO</th>
                <th width="8%">REFERENCIA</th>
                <th>NOMBRE</th>
                <th width="10%">STOCK</th>
                <th width="12%">PRECIO PUBLICO</th>
                <th width="12%">PRECIO ASESOR</th>
            </tr>
        <?php
        while ($reg=mysqli_fetch_array($sql)){
                $art_id=$reg['art_id'];
                $id=$reg['art_id'];
                $art_idd=$reg['art_idd'];
                $art_referencia=$reg['art_referencia'];
                $art_nombre=$reg['art_nombre'];
                $art_escaso=$reg['art_escaso'];
                $art_cantidad=$reg['art_cantidad'];
                // La ubicación ya viene en la consulta principal
                $ubi_nombre_row = $reg['ubi_nombre']; 

                // Pre-formateo de textos para resaltar búsqueda
                $txt_codigo = ($reg['art_referencia'] <> null) ? $reg['art_referencia'] : $reg['art_barras'];
                $display_codigo = mb_strtoupper(str_replace($buscar, "<strong><span style='color: ".$resaltador."'>".$buscar."</span></strong>", $txt_codigo));
                $display_ref2 = mb_strtoupper(str_replace($buscar, "<strong><span style='color:".$resaltador."'>".$buscar."</span></strong>", $reg['art_referencia2']));
                $display_nombre = mb_strtoupper(str_replace($buscar, "<strong><span style='color:".$resaltador."'>".$buscar."</span></strong>", $reg['art_nombre']));
        ?>
            <tr>
            <td><?php echo $display_codigo; ?></td>
            <td><?php echo $display_ref2; ?></td>
            <td>
                <div class="contenedor">
    <?php
        // 1. Definir la ruta LOCAL para que PHP verifique si existe (Ruta relativa o absoluta del sistema)
        // Asumiendo que la carpeta 'img' está en la raíz o al mismo nivel que este script:
      $ruta_local_chequeo = $_SERVER['DOCUMENT_ROOT'] . "/V8/TECHNOPOLIS_D/img/articulos/$art_id.jpg";
        
        // 2. Definir la URL WEB para mostrar en el navegador (src)
        $url_web = "https://technopolis.vicpos1.com/img/articulos/$art_id.jpg";

        // Verificamos si el archivo existe en el DISCO del servidor
        if (file_exists($ruta_local_chequeo)) {
            $nu = rand(1, 1000); // Cache buster
    ?>
            <a href="<?php echo $url_web . '?' . $nu; ?>" class="ui-lightbox">
                <img style="height: 40px; width: 40px" class="categorias" src="<?php echo $url_web . '?' . $nu; ?>" alt=""/>
            </a>
    <?php 
        } else { 
            // Imagen por defecto si no existe
    ?>
            <a href="https://technopolis.vicpos1.com/img/articulos/sin_imagen.jpg" class="ui-lightbox">
                <img style="height: 40px; width: 40px" class="categorias" src="img/articulos/sin_imagen.jpg" alt="Sin imagen"/>
            </a>
    <?php 
        }

        echo $display_nombre;
    ?>
</div>
            </td>
            
            

            <td>
                <span class="" style="color:black;"><?php echo $suc_nombre; ?> : <?php echo number_format($art_cantidad,0); ?> </span>
                </br>
                <?php
                    // Consulta de otras sucursales (Se mantiene igual por lógica de negocio compleja)
                    $sucursales = mysqli_query($con, "
                    SELECT s.suc_id, s.empresa, s.suc_nombre, a.art_id
                    FROM sucursal s
                    INNER JOIN articulos a ON a.art_referencia = '$art_referencia' AND a.empresa = s.empresa
                    WHERE s.empresa <> '$empresa' 
                      AND s.suc_id <> '$sucursal' 
                      AND s.suc_estado = 'activo' 
                      AND s.suc_nombre NOT IN ('vicpos', 'sg')
                    ");
                
                    while ($row88 = mysqli_fetch_array($sucursales)) {
                        $suc_id = $row88['suc_id'];
                        $suc_empresa = $row88['empresa'];
                        $sucursal_nombre = $row88['suc_nombre'];
                        $art_id_e = $row88['art_id'];
                    
                        $res_bodega = mysqli_query($con, "SELECT art_cantidad FROM articulos_has_bodegas WHERE articulos_art_id = '$art_id_e' 
                              AND empresa = '$suc_empresa' AND sucursal = '$suc_id'");
                        
                        if ($bodega = mysqli_fetch_array($res_bodega)) {
                            $cantidad = $bodega['art_cantidad'] + 0;
                            echo "<span style='color:#a2a0a2;'>$sucursal_nombre : " . number_format($cantidad, 0) . "</span><br>";
                        }
                    }
                ?>
            </td>

            <td><p class="pull-right"><?php echo number_format($reg['art_pvp'],0);?></p></td>
            

            <td><p class="pull-right">
               <?php
                    $datos = mysqli_query($con,"SELECT * FROM precio p, tarifas t, articulos a where a.art_id=p.articulos_art_id and p.tarifas_tar_id=t.tar_id 
            and a.art_id='$art_id' and a.empresa='$empresa'  and p.empresa='$empresa' and t.empresa='$empresa' and tar_nombre = 'ASESOR' ") ;
                    $fila = mysqli_fetch_array( $datos );
               
                    echo number_format($fila['pre_precio'],0); 
        ?></p>
            </td>
        </tr>
        <?php } ?>
        <tr>
        
            <td colspan="6">
                <span class="pull-right">
                    <?php echo paginate($reload, $page, $total_pages, $adjacents); ?>
                </span>
                <input type="hidden" name="pagina" id="pagina" value="<?php echo $page; ?>">
            </td>
        </tr>
    </table>
</div>
    <?php
    }
?>

