<?php
include("conexion.php");
session_start();

header('Content-Type: application/json'); // Para respuesta tipo JSON

if ($_SERVER['REQUEST_METHOD'] == 'POST') {
    $seleccionados = $_POST['seleccionados'] ?? [];
    $proveedor = trim($_POST['proveedor'] ?? '');
    $id_usuario = $_SESSION['id_usuario'] ?? 0;

    if (empty($seleccionados) || empty($proveedor)) {
        echo json_encode(['success' => false, 'message' => 'Debe seleccionar al menos una serie y un proveedor']);
        exit;
    }

    // Obtener info del usuario actual para saber su empresa
    $usuario = $conexion->query("SELECT id_empresa FROM usuarios_sistema WHERE id_usuario = $id_usuario")->fetch_assoc();
    $id_empresa = $usuario['id_empresa'] ?? 0;

    // Verificar que todas las series_baja tengan estado = 'devuelto'
    $errores = [];
    foreach ($seleccionados as $valor) {
        $partes = explode("|", $valor);
        if (count($partes) === 2) {
            $id_serie = intval($partes[0]);
            $tipo_serie = trim($partes[1]);

            if ($tipo_serie === 'serie_baja') {
                $verificar = $conexion->prepare("SELECT estado FROM series_baja WHERE id = ?");
                $verificar->bind_param("i", $id_serie);
                $verificar->execute();
                $verificar->bind_result($estado);
                $verificar->fetch();
                $verificar->close();

                if ($estado !== 'devuelto') {
                    $errores[] = "La serie ID $id_serie no está en estado 'devuelto'. Estado actual: $estado";
                }
            }
        }
    }

    if (!empty($errores)) {
        echo json_encode(['success' => false, 'message' => 'Error de validación', 'errors' => $errores]);
        exit;
    }

    // Insertar en tabla guias_salida_devolucion con id_empresa
    $stmt_guia = $conexion->prepare("INSERT INTO guias_salida_devolucion (nombre_proveedor, id_usuario, id_empresa, fecha_registro) VALUES (?, ?, ?, NOW())");
    $stmt_guia->bind_param("sii", $proveedor, $id_usuario, $id_empresa);
    $stmt_guia->execute();
    $id_guia = $stmt_guia->insert_id;
    $stmt_guia->close();

    // Insertar en detalle
    $stmt_detalle = $conexion->prepare("INSERT INTO guias_salida_detalle (id_guia, id_serie, tipo_serie) VALUES (?, ?, ?)");

    foreach ($seleccionados as $valor) {
        $partes = explode("|", $valor);
        if (count($partes) === 2) {
            $id_serie = intval($partes[0]);
            $tipo_serie = trim($partes[1]);

            $stmt_detalle->bind_param("iis", $id_guia, $id_serie, $tipo_serie);
            $stmt_detalle->execute();

            if ($tipo_serie === 'serie_baja') {
                $update = $conexion->prepare("UPDATE series_baja SET estado = 'finaliza' WHERE id = ?");
                $update->bind_param("i", $id_serie);
                $update->execute();
                $update->close();
            }
        }
    }

    $stmt_detalle->close();

    echo json_encode(['success' => true, 'message' => 'Guía generada correctamente']);
}
?>
