<?php
error_reporting(0); // Desactiva reportes de errores que ensucian la imagen
ob_start();  
session_start();       // Inicia el búfer de salida
include ("jpgraph/src/jpgraph.php");
include ("jpgraph/src/jpgraph_pie.php");
include ("jpgraph/src/jpgraph_pie3d.php");
require_once ("config/db.php");
require_once ("config/conexion.php");

$desde = $_GET['desde'];
$hasta = $_GET['hasta'];
$tienda = $_GET['tienda']; // Capturamos la tienda

$sTable = "facturas";
$sWhere = " WHERE 1=1"; // Base para concatenar filtros

// Filtro de Fechas
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'";
}

// Filtro de Tienda (Solo si se recibe un ID de tienda válido)
if (!empty($tienda) && $tienda != "0") {
    $sWhere .= " AND almacen = '$tienda'";
}

$credito = 0;
$pago = 0;

$sql = "SELECT total_venta, estado_factura FROM $sTable $sWhere";
$query = mysqli_query($con, $sql);

while ($d = mysqli_fetch_array($query)) {
    if ($d['estado_factura'] == 1) {
        $credito += $d['total_venta'];
    } else {
        $pago += $d['total_venta'];
    }
}

// Si no hay ventas, evitamos que JPGraph de error enviando valores mínimos
if ($credito == 0 && $pago == 0) { $data = array(0.001, 0.001); } 
else { $data = array($pago, $credito); }

$graph = new PieGraph(350, 300);
$graph->img->SetAntiAliasing();
$graph->title->Set("RESUMEN DE VENTAS ($)");
$graph->title->SetFont(FF_FONT1, FS_BOLD);

$p1 = new PiePlot3D($data);
$p1->SetSliceColors(array("#2ecc71", "#e74c3c")); // Verde para pagado, Rojo para crédito
$p1->SetSize(0.5);
$p1->SetCenter(0.45);

$p1->value->SetFont(FF_FONT1, FS_BOLD);
$p1->value->SetColor("black");
$p1->SetLabelPos(0.5);

$nombres = array("Pagadas", "Por Cobrar");
$p1->SetLegends($nombres);
$p1->ExplodeAll();

$graph->Add($p1);
ob_end_clean();
$graph->Stroke();
?>