<?php
/**
 * GET /api/compras/detalle.php
 * Parámetros: compra_id
 */
require_once '../config/database.php';
require_once '../includes/helpers.php';

$pdo = getConnection();

try {
    $compraId = isset($_GET['compra_id']) ? intval($_GET['compra_id']) : 0;
    if ($compraId <= 0) {
        throw new Exception('ID de compra inválido.');
    }

    // 1. Obtener la cabecera
    $stmtCab = $pdo->prepare("
        SELECT c.id, c.fecha_compra, c.total, c.tipo_pago, c.monto_efectivo, c.monto_credito, c.fecha_limite_pago, c.estado_pago, l.nombre AS proveedor_nombre
        FROM compras c
        LEFT JOIN lugarcompra l ON l.id = c.id_lugarCompra
        WHERE c.id = ?
    ");
    $stmtCab->execute([$compraId]);
    $compra = $stmtCab->fetch(PDO::FETCH_ASSOC);

    if (!$compra) {
        throw new Exception('No se encontró la compra especificada.');
    }

    // 2. Obtener el detalle de productos
    $stmtDet = $pdo->prepare("
        SELECT d.id, d.producto_id, d.cantidad, d.costo_unitario, d.costo_total, d.facturado, d.numero_factura, d.fecha_vencimiento, d.factor_conversion_compra, d.cantidad_unidades_base, p.NombreComercial, p.CodigoInterno
        FROM compras_detalle d
        LEFT JOIN productos p ON p.id = d.producto_id
        WHERE d.compra_id = ?
        ORDER BY d.id ASC
    ");
    $stmtDet->execute([$compraId]);
    $items = $stmtDet->fetchAll(PDO::FETCH_ASSOC);

    json_success([
        'compra' => $compra,
        'items' => $items
    ]);
} catch (Exception $e) {
    json_error('Error: ' . $e->getMessage());
}
?>
