<?php
require 'conexion.php'; // Conexión a la BD

$serie = $_POST['serie'] ?? '';
$pedidoId = $_POST['pedido_id'] ?? '';

if (!$serie || !$pedidoId) {
    echo json_encode(["success" => false, "message" => "Datos incompletos"]);
    exit;
}

$conn->begin_transaction(); // Iniciar transacción

try {
    // 1️⃣ Verificar si la serie existe en la tabla `series`
    $sqlCheck = "SELECT estado FROM series WHERE serie = ?";
    $stmtCheck = $conn->prepare($sqlCheck);
    $stmtCheck->bind_param("s", $serie);
    $stmtCheck->execute();
    $result = $stmtCheck->get_result();

    if ($result->num_rows === 0) {
        throw new Exception("La serie no existe en la base de datos.");
    }

    // Obtener el estado actual de la serie
    $row = $result->fetch_assoc();
    if ($row['estado'] === 'Usado') {
        throw new Exception("La serie ya está en uso.");
    }

    // 2️⃣ Vincular la serie al pedido en `trabajos_formulario`
    $sql = "UPDATE trabajos_formulario SET serie_nueva = ? WHERE id = ?";
    $stmt = $conn->prepare($sql);
    $stmt->bind_param("si", $serie, $pedidoId);
    
    if (!$stmt->execute()) {
        throw new Exception("Error al vincular la serie.");
    }

    // 3️⃣ Marcar la serie como "Usado" en la tabla `series`
    $sqlUpdateSerie = "UPDATE series SET estado = 'Usado' WHERE serie = ?";
    $stmtUpdateSerie = $conn->prepare($sqlUpdateSerie);
    $stmtUpdateSerie->bind_param("s", $serie);

    if (!$stmtUpdateSerie->execute()) {
        throw new Exception("Error al actualizar el estado de la serie.");
    }

    $conn->commit(); // Confirmar los cambios

    echo json_encode(["success" => true, "message" => "Serie vinculada correctamente"]);
} catch (Exception $e) {
    $conn->rollback(); // Revertir cambios en caso de error
    echo json_encode(["success" => false, "message" => $e->getMessage()]);
}
?>
