<?php
require_once __DIR__ . '/../config/database.php';
require_once __DIR__ . '/../includes/helpers.php';

$pdo = getConnection();
$hoy = date('Y-m-d');
$mes = date('Y-m') . '-01';
$anio = date('Y-01-01');

$sucursal_id = intval($_GET['sucursal_id'] ?? 0);
$where_suc_v = $sucursal_id ? "AND v.sucursal_id=$sucursal_id" : '';
$where_suc_c = $sucursal_id ? "AND c.sucursal_id=$sucursal_id" : '';
$where_suc_g = $sucursal_id ? "AND g.sucursal_id=$sucursal_id" : '';

try {
    // Ventas hoy
    $st = $pdo->prepare("SELECT COALESCE(SUM(total),0) FROM ventas v WHERE DATE(v.fecha_y_hora)=? $where_suc_v");
    $st->execute([$hoy]); $ventas_hoy = (float)$st->fetchColumn();

    // Ventas del mes
    $st = $pdo->prepare("SELECT COALESCE(SUM(total),0) FROM ventas v WHERE v.fecha_y_hora>=? $where_suc_v");
    $st->execute([$mes]); $ventas_mes = (float)$st->fetchColumn();

    // Ventas del año
    $st = $pdo->prepare("SELECT COALESCE(SUM(total),0) FROM ventas v WHERE v.fecha_y_hora>=? $where_suc_v");
    $st->execute([$anio]); $ventas_anio = (float)$st->fetchColumn();

    // Cantidad ventas hoy
    $st = $pdo->prepare("SELECT COUNT(*) FROM ventas v WHERE DATE(v.fecha_y_hora)=? $where_suc_v");
    $st->execute([$hoy]); $count_ventas_hoy = (int)$st->fetchColumn();

    // Compras del mes
    $st = $pdo->prepare("SELECT COALESCE(SUM(total),0) FROM compras c WHERE DATE(c.fecha_compra)>=? $where_suc_c");
    $st->execute([$mes]); $compras_mes = (float)$st->fetchColumn();

    // Gastos del mes
    $st = $pdo->prepare("SELECT COALESCE(SUM(monto),0) FROM gastos_operativos g WHERE g.fecha_gasto>=? $where_suc_g");
    $st->execute([$mes]); $gastos_mes = (float)$st->fetchColumn();

    // Cuentas por pagar pendiente
    $st = $pdo->prepare("SELECT COALESCE(SUM(saldo_pendiente),0) FROM cuentas_pagar WHERE estado IN ('pendiente','parcial')");
    $st->execute(); $cuentas_pagar = (float)$st->fetchColumn();

    // Utilidad bruta del mes (ventas - costo de ventas)
    $st = $pdo->prepare("
        SELECT COALESCE(SUM(dv.precio * dv.cantidad - COALESCE(pcp.costo_promedio_unidad_base * dv.cantidad * dv.factor_conversion_usado, 0)), 0)
        FROM detalle_ventas dv
        JOIN ventas v ON v.id = dv.venta_id
        LEFT JOIN productos_costo_promedio pcp ON pcp.producto_id = dv.producto_id
        WHERE v.fecha_y_hora >= ? $where_suc_v
    ");
    $st->execute([$mes]); $utilidad_mes = (float)$st->fetchColumn();

    // Top sucursal
    $st = $pdo->prepare("
        SELECT s.nombre, COALESCE(SUM(v.total),0) as total
        FROM ventas v JOIN sucursales s ON s.id=v.sucursal_id
        WHERE v.fecha_y_hora>=? GROUP BY v.sucursal_id ORDER BY total DESC LIMIT 1
    ");
    $st->execute([$mes]); $topSucursal = $st->fetch();

    json_success([
        'ventas_hoy' => $ventas_hoy,
        'ventas_mes' => $ventas_mes,
        'ventas_anio' => $ventas_anio,
        'count_ventas_hoy' => $count_ventas_hoy,
        'compras_mes' => $compras_mes,
        'gastos_mes' => $gastos_mes,
        'cuentas_pagar' => $cuentas_pagar,
        'utilidad_mes' => $utilidad_mes,
        'top_sucursal' => $topSucursal ? $topSucursal['nombre'] : 'N/A',
        'top_sucursal_total' => $topSucursal ? (float)$topSucursal['total'] : 0
    ]);
} catch (Exception $e) {
    json_error("Error: " . $e->getMessage());
}
