<?php
    session_start();
    if (!isset($_SESSION['usuario'])) {
        header("Location: index.php");
        exit();
    }

    include "conexion.php";
    include "funciones.php";

    $mensaje = '';
    $idinv_seleccionado = null;
    $fecha_seleccionada = date('Y-m-d');
    $monto_invertir = '';
    $rendimiento_mostrado = 0.00; // Para mostrar en el campo si ya se seleccionó

    // Obtener lista de inversionistas
    $sql_inversionistas = "SELECT idinv, nominv FROM inversionista ORDER BY nominv";
    $result_inversionistas = $conn->query($sql_inversionistas);

    // Si se envió el formulario
    if ($_SERVER['REQUEST_METHOD'] === 'POST') {
        $idinv_seleccionado = $_POST['idinv'] ?? null;
        $fecha_seleccionada = $_POST['fecha_inversion'] ?? date('Y-m-d');
        $monto_invertir = floatval($_POST['monto_invertir'] ?? 0);

        if (!$idinv_seleccionado) {
            $mensaje = "<div class='alert alert-danger'>Debe seleccionar un inversionista.</div>";
        } elseif ($monto_invertir <= 0) {
            $mensaje = "<div class='alert alert-danger'>El monto debe ser mayor a 0.</div>";
        } else {
            // 🔍 Obtener el rendimiento anual del inversionista
            $sql_rendimiento = "SELECT reninv FROM inversionista WHERE idinv = ?";
            $stmt_rendimiento = $conn->prepare($sql_rendimiento);
            $stmt_rendimiento->bind_param("i", $idinv_seleccionado);
            $stmt_rendimiento->execute();
            $result_rendimiento = $stmt_rendimiento->get_result();
            $inversionista_data = $result_rendimiento->fetch_assoc();
            $rendimiento_anual = $inversionista_data['reninv'] ?? 0;

            // Insertar inversión con el rendimiento obtenido
            $sql_insert = "INSERT INTO inversion (idinv, fecinv, mntinv, reninv, estado) 
                           VALUES (?, ?, ?, ?, 1)";
            $stmt = $conn->prepare($sql_insert);
            $stmt->bind_param("isdd", $idinv_seleccionado, $fecha_seleccionada, $monto_invertir, $rendimiento_anual);

            if ($stmt->execute()) {
                $mensaje = "<div class='alert alert-success'>✅ Inversión registrada correctamente.</div>";
                // Limpiar campos después de guardar
                $monto_invertir = '';
                $fecha_seleccionada = date('Y-m-d');
                $idinv_seleccionado = null;
                $rendimiento_mostrado = 0.00;
            } else {
                $mensaje = "<div class='alert alert-danger'>❌ Error al registrar la inversión: " . $conn->error . "</div>";
            }

            $stmt_rendimiento->close();
            $stmt->close();
        }
    }
?>
<!DOCTYPE html>
<html lang="es">
<head>
    <meta charset="UTF-8">
    <title>Registrar Inversión</title>
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet">
    <style>
        body { padding: 20px; background-color: #f8f9fa; }
        .card { box-shadow: 0 0 10px rgba(0,0,0,0.1); }
        .form-label { font-weight: bold; }
    </style>
</head>
<body>
    <nav class="mb-4">
        <a href="inicio_moderno.php" class="btn btn-outline-primary">Inicio</a>
        <a href="index.php" class="btn btn-outline-secondary">Cerrar Sesión</a>
    </nav>

    <div class="container">
        <div class="card p-4">
            <h2 class="mb-4">Registrar Nueva Inversión</h2>

            <?php if ($mensaje): ?>
                <?= $mensaje ?>
            <?php endif; ?>

            <form method="POST" class="row g-3">
                <div class="col-md-6">
                    <label for="idinv" class="form-label">Inversionista</label>
                    <select class="form-select" id="idinv" name="idinv" required>
                        <option value="">-- Seleccione --</option>
                        <?php while ($inv = $result_inversionistas->fetch_assoc()): ?>
                            <option value="<?= $inv['idinv'] ?>" <?= ($idinv_seleccionado == $inv['idinv']) ? 'selected' : '' ?>>
                                <?= htmlspecialchars($inv['nominv']) ?>
                            </option>
                        <?php endwhile; ?>
                    </select>
                </div>

                <div class="col-md-4">
                    <label for="fecha_inversion" class="form-label">Fecha de Inversión</label>
                    <input type="date" class="form-control" id="fecha_inversion" name="fecha_inversion"
                           value="<?= htmlspecialchars($fecha_seleccionada) ?>" required>
                </div>

                <div class="col-md-6">
                    <label for="monto_invertir" class="form-label">Monto a Invertir</label>
                    <div class="input-group">
                        <span class="input-group-text">$</span>
                        <input type="number" step="0.01" min="0.01" class="form-control" 
                               id="monto_invertir" name="monto_invertir" 
                               value="<?= htmlspecialchars($monto_invertir) ?>" placeholder="0.00" required>
                    </div>
                </div>

                <div class="col-md-6">
                    <label for="rendimiento_anual" class="form-label">Rendimiento Anual (%)</label>
                    <input type="number" step="0.01" class="form-control" 
                           id="rendimiento_anual" name="rendimiento_anual" 
                           value="<?= htmlspecialchars($rendimiento_mostrado) ?>" readonly>
                </div>

                <div class="col-md-6 d-flex align-items-end">
                    <button type="submit" class="btn btn-success w-100" onclick="return confirm('¿Está seguro de registrar esta inversión?')">
                        💰 Guardar Inversión
                    </button>
                </div>
            </form>
        </div>
    </div>

    <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js"></script>
    <script>
        document.getElementById('idinv').addEventListener('change', function() {
            const idinv = this.value;
            const campoRendimiento = document.getElementById('rendimiento_anual');
            campoRendimiento.value = '0.00'; // valor por defecto mientras carga

            if (idinv) {
                fetch('obtener_rendimiento.php', {
                    method: 'POST',
                    headers: { 'Content-Type': 'application/json' },
                    body: JSON.stringify({ idinv: idinv })
                })
                .then(res => {
                    if (!res.ok) throw new Error('Error en la red');
                    return res.json();
                })
                .then(data => {
                    if (data.success) {
                        campoRendimiento.value = data.rendimiento;
                    } else {
                        campoRendimiento.value = '0.00';
                    }
                })
                .catch(error => {
                    console.error('Error al obtener rendimiento:', error);
                    campoRendimiento.value = '0.00';
                });
            } else {
                campoRendimiento.value = '0.00';
            }
        });

        // Si ya hay un inversionista seleccionado al cargar (por ejemplo, tras error de validación)
        document.addEventListener('DOMContentLoaded', function() {
            const select = document.getElementById('idinv');
            if (select.value) {
                select.dispatchEvent(new Event('change'));
            }
        });
    </script>
</body>
</html>
<?php $conn->close(); ?>