<?php
error_reporting(E_ALL & ~E_NOTICE & ~E_WARNING);
require_once ("../config/db.php");
require_once ("../config/conexion.php");
session_start();

// 1. Obtener 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'] > 0) ? $dato_tasa['tasa'] : 1;

// 2. Definir Tienda e ID
$reporte_tienda = $_POST['reporte_tienda'];
$desde = $_POST['desde'];
$hasta = $_POST['hasta'];
$donacion = "Donacion";
$id_tienda = "";

if (!empty($reporte_tienda)) {
    $query_t = mysqli_query($con, "SELECT id_tienda FROM tiendas WHERE nombre = '$reporte_tienda'");
    if($row_t = mysqli_fetch_array($query_t)) { 
        $id_tienda = $row_t['id_tienda']; 
    }
} else {
    $id_tienda = $_SESSION['estado'];
}

// 3. Construir Filtro SQL
$sWhere = " WHERE condiciones != '$donacion'";
if (!empty($id_tienda)) { 
    $sWhere .= " AND almacen = '$id_tienda'"; 
}

if (!empty($desde) && !empty($hasta)) { 
    $sWhere .= " AND fecha_factura BETWEEN '$desde' AND '$hasta'"; 
} elseif (!empty($desde)) { 
    $sWhere .= " AND fecha_factura = '$desde'"; 
} elseif (!empty($hasta)) { 
    $sWhere .= " AND fecha_factura = '$hasta'"; 
}

$sOrder = " ORDER BY id_factura DESC";

// 4. Cálculos de Totales Globales
$sql_total = "SELECT * FROM facturas $sWhere";
$query_total = mysqli_query($con, $sql_total);

$acum = 0; $efe_acum = 0; $ret_acum = 0; $efed_acum = 0;
$tra_acum = 0; $pun_acum = 0; $cre_acum = 0;
$transacciones = mysqli_num_rows($query_total);

while ($r = mysqli_fetch_array($query_total)) {
    $total_v = $r['total_venta'];
    $acum += $total_v;
    $efe_acum += $r['condiciones_efe'];
    $ret_acum += $r['condiciones_ret'];
    $efed_acum += $r['condiciones_efed'];
    $tra_acum += $r['condiciones_tra'];
    $pun_acum += $r['condiciones_pun'];
    
    // Cálculo de crédito global (Total - Lo pagado convertido a USD)
    $pagado_usd = $r['condiciones_efed'] + (($r['condiciones_pun'] + $r['condiciones_tra'] + $r['condiciones_efe']) / $tasa_actual);
    $cre_acum += ($total_v - $pagado_usd);
}

// 5. Paginación y Consulta de Vista
include 'pagination.php';
$page = (isset($_REQUEST['page']) && !empty($_REQUEST['page'])) ? $_REQUEST['page'] : 1;
$per_page = 30;
$adjacents = 4;
$offset = ($page - 1) * $per_page;

$numrows = $transacciones;
$total_pages = ceil($numrows / $per_page);
$reload = './reportes.php';

$sql_vista = "SELECT * FROM facturas $sWhere $sOrder LIMIT $offset, $per_page";
$query_vista = mysqli_query($con, $sql_vista);
?>

<div class="table-responsive">
    <table class="table table-bordered table-striped table-hover" style="font-size:11px;">
        <thead>
            <tr>
                <td colspan="12" class="text-right">
                    <a href="imp_libro_ventas.php?desde=<?php echo $desde;?>&hasta=<?php echo $hasta;?>&tienda=<?php echo $id_tienda;?>" target="_blank" class="btn btn-info btn-sm">
                        <span class="glyphicon glyphicon-print"></span> Descargar PDF
                    </a>
                </td>
            </tr>
            <tr class="info">
                <th>#</th>
                <th>Fecha</th>
                <th>Tienda</th>
                <th>Cliente</th>
                <th>Factura</th>
                <th>Total $</th>
                <th>Efe BsD</th>
                <th>Efe $</th>
                <th>Trans BsD</th>
                <th>Punto BsD</th>
                <th>Ret BsD</th>
                <th class="text-danger">Credito $</th>
            </tr>
        </thead>
        <tbody>
        <?php
        if($numrows > 0) {
            $j = $offset + 1;
            while($row = mysqli_fetch_array($query_vista)) {
                $id_factura = $row['id_factura'];
                $id_cliente = $row['id_cliente'];
                $id_alm = $row['almacen'];
                
                // Buscar Cliente
                $sql_c = mysqli_query($con, "SELECT nombre_cliente FROM clientes WHERE id_cliente='$id_cliente'");
                $r_c = mysqli_fetch_array($sql_c);
                $nombre_cliente = ($r_c) ? $r_c['nombre_cliente'] : "Cliente General";
                
                // Buscar Tienda
                $sql_t = mysqli_query($con, "SELECT nombre FROM tiendas WHERE id_tienda='$id_alm'");
                $r_t = mysqli_fetch_array($sql_t);
                $nombre_tienda = ($r_t) ? $r_t['nombre'] : "Principal";

                $total_f = $row['total_venta'];
                $pagado_f = $row['condiciones_efed'] + (($row['condiciones_efe'] + $row['condiciones_tra'] + $row['condiciones_pun']) / $tasa_actual);
                $credito_f = $total_f - $pagado_f;
        ?>
            <tr>
                <td><?php echo $j++; ?></td>
                <td><?php echo date("d/m/Y", strtotime($row['fecha_factura'])); ?></td>
                <td><?php echo $nombre_tienda; ?></td>
                <td><?php echo $nombre_cliente; ?></td>
                <td><a href="ver_venta.php?id_factura=<?php echo $id_factura; ?>"><strong><?php echo $row['numero_factura']; ?></strong></a></td>
                <td class="text-right"><strong>$<?php echo number_format($total_f, 2, ",", "."); ?></strong></td>
                <td class="text-right"><?php echo number_format($row['condiciones_efe'], 2, ",", "."); ?></td>
                <td class="text-right">$<?php echo number_format($row['condiciones_efed'], 2, ",", "."); ?></td>
                <td class="text-right"><?php echo number_format($row['condiciones_tra'], 2, ",", "."); ?></td>
                <td class="text-right"><?php echo number_format($row['condiciones_pun'], 2, ",", "."); ?></td>
                <td class="text-right"><?php echo number_format($row['condiciones_ret'], 2, ",", "."); ?></td>
                <td class="text-right text-danger"><strong>$<?php echo number_format($credito_f, 2, ",", "."); ?></strong></td>
            </tr>
        <?php } ?>
        </tbody>
        <tfoot>
            <tr class="info" style="font-weight:bold;">
                <td colspan="5" class="text-right">TOTALES DEL PERIODO:</td>
                <td class="text-right">$<?php echo number_format($acum, 2, ",", "."); ?></td>
                <td class="text-right"><?php echo number_format($efe_acum, 2, ",", "."); ?></td>
                <td class="text-right">$<?php echo number_format($efed_acum, 2, ",", "."); ?></td>
                <td class="text-right"><?php echo number_format($tra_acum, 2, ",", "."); ?></td>
                <td class="text-right"><?php echo number_format($pun_acum, 2, ",", "."); ?></td>
                <td class="text-right"><?php echo number_format($ret_acum, 2, ",", "."); ?></td>
                <td class="text-right text-danger">$<?php echo number_format($cre_acum, 2, ",", "."); ?></td>
            </tr>
        </tfoot>
    </table>
    <div class="text-center">
        <?php echo paginate($reload, $page, $total_pages, $adjacents); ?>
    </div>
</div>

<div class="well well-sm" style="display:inline-block; margin-top:10px;">
    <strong>Resumen de Operación:</strong><br>
    Total Transacciones: <?php echo $transacciones; ?><br>
    Tasa Aplicada: <?php echo number_format($tasa_actual, 2, ",", "."); ?> Bs/USD
</div>
<?php
} else {
    echo "<div class='alert alert-warning'>No se encontraron registros para los filtros seleccionados.</div>";
}
?>