<?php 
require_once ("config/db.php");
require_once ("config/conexion.php");
session_start();

function calcular_precio_final($id_producto_final, $con) {
    $sql_comp = "SELECT c.cantidad, p.precio_venta FROM composicion_producto_final c JOIN products p ON c.id_producto = p.id_producto WHERE c.id_producto_final = '$id_producto_final'";
    $query_comp = mysqli_query($con, $sql_comp);
    $total = 0;
    while ($row_comp = mysqli_fetch_array($query_comp)) {
        $total += $row_comp['cantidad'] * $row_comp['precio_venta'];
    }
    return $total;
}

// Datos de Tasa
$con_tasa = mysqli_query($con,"SELECT tasa FROM tasa WHERE id_tasa='1'");
$dato_tasa = mysqli_fetch_array($con_tasa);
$tasa_actual = $dato_tasa['tasa'];

$reporte_tienda = $_POST['reporte_tienda'];
$tienda = (!empty($reporte_tienda)) ? $reporte_tienda : $_SESSION['estado'];
$desde = $_POST['desde'];
$hasta = $_POST['hasta'];
$q = $_POST['q'];

$id_tienda = "";
if(!empty($tienda)){
    $q_t = mysqli_query($con, "SELECT id_tienda FROM tiendas WHERE nombre = '$tienda'");
    $r_t = mysqli_fetch_array($q_t);
    $id_tienda = $r_t['id_tienda'];
}

// 1. CONSTRUCCIÓN DE FILTROS
$sWhere = " WHERE 1=1 ";
if (!empty($id_tienda)) { $sWhere .= " AND facturas.almacen = '$id_tienda'"; }
if (!empty($q)) { $sWhere .= " AND producto_final.tipo LIKE '%$q%'"; }
if (!empty($desde) && !empty($hasta)) {
    $sWhere .= " AND facturas.fecha_factura BETWEEN '$desde' AND '$hasta'";
} else if (!empty($desde)) {
    $sWhere .= " AND facturas.fecha_factura = '$desde'";
} else if (!empty($hasta)) {
    $sWhere .= " AND facturas.fecha_factura = '$hasta'";
}

// 2. CÁLCULO DEL TOTAL GLOBAL (Sin paginación)
// Sumamos el (precio_venta de detalle * cantidad) de todos los registros que coinciden con el filtro
$sql_total_global = "SELECT SUM(detalle_factura.cantidad * detalle_factura.precio_venta) as gran_total 
                     FROM detalle_factura 
                     INNER JOIN facturas ON detalle_factura.numero_factura = facturas.numero_factura 
                     INNER JOIN producto_final ON detalle_factura.id_producto = producto_final.id
                     $sWhere";
$res_global = mysqli_query($con, $sql_total_global);
$row_global = mysqli_fetch_array($res_global);
$gran_total_usd = $row_global['gran_total'];
$gran_total_bsd = $gran_total_usd * $tasa_actual;

// 3. QUERY PARA LA TABLA (Con paginación)
$sql = "SELECT producto_final.tipo, producto_final.nombre, producto_final.id, 
        SUM(detalle_factura.cantidad) as maximo,
        AVG(detalle_factura.precio_venta) as precio_promedio 
        FROM producto_final 
        INNER JOIN detalle_factura ON producto_final.id = detalle_factura.id_producto 
        INNER JOIN facturas ON detalle_factura.numero_factura = facturas.numero_factura 
        $sWhere 
        GROUP BY producto_final.id 
        ORDER BY maximo DESC";

include 'pagination.php';
$query_count = mysqli_query($con, $sql);
$numrows = mysqli_num_rows($query_count);
$page = (isset($_REQUEST['page']) && !empty($_REQUEST['page'])) ? $_REQUEST['page'] : 1;
$per_page = 30;
$adjacents = 4;
$offset = ($page - 1) * $per_page;
$total_pages = ceil($numrows / $per_page);

$sql_final = $sql . " LIMIT $offset, $per_page";
$query = mysqli_query($con, $sql_final);
?>

<div class="row">
    <div class="col-xs-12">
        <div class="panel panel-default" style="border-left: 5px solid #31708f; background: #fcfcfc;">
            <div class="panel-body">
                <div class="row">
                    <div class="col-sm-8 col-xs-12">
                        <h5 style="margin-top:0; color: #777; text-transform: uppercase; font-size: 10px; letter-spacing: 1px;">Total General Vendido (Periodo Seleccionado)</h5>
                        <h2 style="margin:0; color: #31708f; font-weight: bold;">
                            $<?php echo number_format($gran_total_usd, 2, ",", "."); ?>
                            <small style="font-size: 14px; color: #5cb85c; display: block; margin-top: 5px;">
                                <i class="glyphicon glyphicon-transfer"></i> <?php echo number_format($gran_total_bsd, 2, ",", "."); ?> BsD
                            </small>
                        </h2>
                    </div>
                    <div class="col-sm-4 col-xs-12 text-right">
                        <a href="imp_productosmasvendidos.php?desde=<?php echo $desde; ?>&hasta=<?php echo $hasta; ?>&tienda=<?php echo $tienda; ?>&q=<?php echo $q; ?>" target="_blank" class="btn btn-info btn-lg" style="margin-top: 10px;">
                            <span class="glyphicon glyphicon-print"></span> Imprimir
                        </a>
                    </div>
                </div>
            </div>
        </div>
    </div>
</div>

<div class="table-responsive">
    <table class="table table-striped table-hover" style="font-size:12px; background: white;">
        <thead>
            <tr class="info">
                <th>#</th>
                <th>Tipo</th>
                <th>Descripción</th>
                <th class="text-center">Cant.</th>
                <th class="text-right">Precio Unit.</th>
                <th class="text-right">Subtotal</th>
            </tr>
        </thead>
        <tbody>
            <?php
            $item = $offset + 1;
            if ($numrows > 0) {
                while ($row = mysqli_fetch_array($query)) {
                    $id_pro = $row['id'];
                    $cantidad = $row['maximo'];
                    $precio_u = $row['precio_promedio']; // Usamos el precio registrado en factura
                    $subtotal_usd = $cantidad * $precio_u;
            ?>
                <tr>
                    <td><?php echo $item++; ?></td>
                    <td><span class="label label-default"><?php echo $row['tipo']; ?></span></td>
                    <td><strong><?php echo $row['nombre']; ?></strong></td>
                    <td class="text-center"><?php echo number_format($cantidad, 0); ?></td>
                    <td class="text-right">$<?php echo number_format($precio_u, 2, ",", "."); ?></td>
                    <td class="text-right"><strong>$<?php echo number_format($subtotal_usd, 2, ",", "."); ?></strong></td>
                </tr>
            <?php } ?>
        <?php } else { ?>
            <tr><td colspan="6" class="text-center">No se encontraron ventas</td></tr>
        <?php } ?>
        </tbody>
    </table>
</div>

<div class="text-center">
    <?php echo paginate('./reportes.php', $page, $total_pages, $adjacents); ?>
</div>