<?php
/**
 * API: Obtener Detalle de Venta
 * Sistema Sufarma
 */

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

try {
    $venta_id = isset($_GET['id']) ? (int)$_GET['id'] : 0;
    
    if ($venta_id <= 0) {
        throw new Exception('ID de venta inválido');
    }

    // Obtener datos de la venta
    $sqlVenta = "SELECT 
                    v.id,
                    v.fecha_y_hora,
                    v.total,
                    v.monto_efectivo,
                    c.nombre as cliente_nombre,
                    c.nit as cliente_nit,
                    u.nombre as usuario_nombre
                FROM ventas v
                LEFT JOIN clientes c ON v.cliente_id = c.id
                LEFT JOIN usuarios u ON v.usuario_id = u.id
                WHERE v.id = ?";
    
    $stmtVenta = $pdo->prepare($sqlVenta);
    $stmtVenta->execute([$venta_id]);
    $venta = $stmtVenta->fetch();

    if (!$venta) {
        throw new Exception('Venta no encontrada');
    }

    // Obtener detalles de la venta
    $sqlDetalles = "SELECT 
                        dv.id,
                        dv.producto_id,
                        dv.cantidad,
                        dv.precio,
                        dv.subtotal,
                        dv.facturado,
                        dv.exento_iva,
                        dv.estado_factura,
                        p.NombreComercial as producto_nombre,
                        p.CodigoInterno as producto_codigo,
                        p.laboratorio as producto_laboratorio
                    FROM detalle_ventas dv
                    INNER JOIN productos p ON dv.producto_id = p.id
                    WHERE dv.venta_id = ?
                    ORDER BY dv.id";
    
    $stmtDetalles = $pdo->prepare($sqlDetalles);
    $stmtDetalles->execute([$venta_id]);
    $detalles = $stmtDetalles->fetchAll();

    echo json_encode([
        'success' => true,
        'venta' => [
            'id' => (int)$venta['id'],
            'fecha' => $venta['fecha_y_hora'],
            'total' => (float)$venta['total'],
            'monto_efectivo' => (float)$venta['monto_efectivo'],
            'cliente_nombre' => $venta['cliente_nombre'] ?? 'Consumidor Final',
            'cliente_nit' => $venta['cliente_nit'] ?? 'C/F',
            'usuario_nombre' => $venta['usuario_nombre'] ?? 'Sistema'
        ],
        'detalles' => array_map(function($d) {
            return [
                'id' => (int)$d['id'],
                'producto_id' => (int)$d['producto_id'],
                'producto_nombre' => $d['producto_nombre'],
                'producto_codigo' => $d['producto_codigo'],
                'laboratorio' => $d['producto_laboratorio'] ?? '',
                'cantidad' => (int)$d['cantidad'],
                'precio' => (float)$d['precio'],
                'subtotal' => (float)$d['subtotal'],
                'facturado' => (bool)$d['facturado'],
                'exento_iva' => (int)$d['exento_iva'],
                'estado_factura' => $d['estado_factura']
            ];
        }, $detalles)
    ]);

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