<?php
/**
 * API: Obtener Detalle de Venta para FACTURARVENTAS (Soporta múltiples IDs) (SufarmaERP)
 */

header('Content-Type: application/json');
require_once '../config/db_mysqli.php';

/** @var mysqli $conn */

try {
    $ids_str = isset($_GET['id']) ? $_GET['id'] : '';
    
    if (empty($ids_str)) {
        throw new Exception('IDs de venta inválidos');
    }

    $ids = explode(',', $ids_str);
    $ids = array_map('intval', $ids);
    $ids = array_filter($ids, function($id) { return $id > 0; });

    if (empty($ids)) {
        throw new Exception('No se proporcionaron IDs válidos');
    }

    $placeholders = implode(',', array_fill(0, count($ids), '?'));

    // Obtener datos globales de las ventas (solo lo que se debe facturar)
    $sqlVentas = "SELECT 
                    SUM(dv.subtotal) as total_unificado
                FROM ventas v
                JOIN detalle_ventas dv ON v.id = dv.venta_id
                WHERE v.id IN ($placeholders) AND dv.facturado = 1";
    
    $stmtVentas = $conn->prepare($sqlVentas);
    /** @var mysqli_stmt $stmtVentas */
    $stmtVentas->bind_param(str_repeat('i', count($ids)), ...$ids);
    $stmtVentas->execute();
    $ventaGlobal = $stmtVentas->get_result()->fetch_assoc();

    // Obtener detalles combinados de todas las ventas (FILTRADO POR FACTURABLE)
    $sqlDetalles = "SELECT 
                        dv.producto_id,
                        dv.cantidad,
                        dv.precio,
                        dv.subtotal,
                        p.NombreComercial as producto_nombre,
                        p.exento_iva
                    FROM detalle_ventas dv
                    JOIN productos p ON dv.producto_id = p.id
                    WHERE dv.venta_id IN ($placeholders) AND dv.facturado = 1";
    
    $stmtDetalles = $conn->prepare($sqlDetalles);
    /** @var mysqli_stmt $stmtDetalles */
    $stmtDetalles->bind_param(str_repeat('i', count($ids)), ...$ids);
    $stmtDetalles->execute();
    $resultDetalles = $stmtDetalles->get_result();
    
    $detalles = [];
    while ($d = mysqli_fetch_assoc($resultDetalles)) {
        $detalles[] = [
            'producto_nombre' => $d['producto_nombre'],
            'cantidad' => (float)$d['cantidad'],
            'precio' => (float)$d['precio'],
            'subtotal' => (float)$d['subtotal'],
            'exento_iva' => (int)$d['exento_iva']
        ];
    }

    echo json_encode([
        'success' => true,
        'venta' => [
            'id' => $ids_str,
            'total' => (float)$ventaGlobal['total_unificado'],
            'cliente_nombre' => 'Consumidor Final',
            'cliente_nit' => 'C/F'
        ],
        'detalles' => $detalles
    ]);

} catch (Exception $e) {
    http_response_code(500);
    echo json_encode([
        'success' => false,
        'error' => $e->getMessage()
    ]);
}
?>
