<?php
require_once '../config/database.php';

header('Content-Type: application/json');

$pdo = getDBConnection();
$producto_id = $_GET['producto_id'] ?? null;

try {
    $where = $producto_id ? "WHERE pcp.producto_id = " . intval($producto_id) : "";
    
    // Obtener margen general por defecto de la sucursal (sucursal_id = 1)
    $stmtSucMargen = $pdo->query("SELECT margen_ganancia_defecto FROM sucursal_configuracion WHERE sucursal_id = 1");
    $resSucMargen = $stmtSucMargen->fetchColumn();
    $margenDefecto = ($resSucMargen !== false) ? floatval($resSucMargen) : 30.00;
    
    $sql = "UPDATE producto_presentaciones pp
            JOIN productos p ON pp.producto_id = p.id
            JOIN productos_costo_promedio pcp ON pp.producto_id = pcp.producto_id
            LEFT JOIN laboratorio_margenes lm ON TRIM(p.laboratorio) = TRIM(lm.laboratorio)
            SET pp.precio_venta = ROUND(
                (pcp.costo_promedio_unidad_base * pp.factor_conversion) * 
                (1 + (
                    COALESCE(
                        NULLIF(pp.margen_ganancia_porcentaje, 0), 
                        lm.margen_ganancia_porcentaje, 
                        $margenDefecto
                    ) / 100
                )), 
                2
            )
            $where";
            
    $affected = $pdo->exec($sql);
    
    echo json_encode([
        'success' => true, 
        'message' => "Se actualizaron $affected precios de presentaciones.",
        'details' => 'Cálculo aplicado: (Costo * Factor) * (1 + Margen Eficaz%)'
    ]);

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