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

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

$mensaje = '';
$saldo_disponible = null;
$idinv_seleccionado = null;
$fecha_seleccionada = date('Y-m-d');

// 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 para obtener saldo
if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['accion']) && $_POST['accion'] === 'obtener_saldo') {
    $idinv_seleccionado = $_POST['idinv'] ?? null;
    $fecha_seleccionada = $_POST['fecha_retiro'] ?? date('Y-m-d');

    if ($idinv_seleccionado) {
        $saldo_disponible = dame_saldo($conn, $idinv_seleccionado, $fecha_seleccionada);
    } else {
        $mensaje = "<div class='alert alert-danger'>Por favor, seleccione un inversionista.</div>";
    }
}

// Si se envió el formulario para efectuar retiro
if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['accion']) && $_POST['accion'] === 'efectuar_retiro') {
    $idinv_seleccionado = $_POST['idinv'] ?? null;
    $fecha_seleccionada = $_POST['fecha_retiro'] ?? date('Y-m-d');
    $monto_retiro = floatval($_POST['monto_retiro'] ?? 0);

    if (!$idinv_seleccionado) {
        $mensaje = "<div class='alert alert-danger'>Debe seleccionar un inversionista.</div>";
    } elseif ($monto_retiro <= 0) {
        $mensaje = "<div class='alert alert-danger'>El monto debe ser mayor a 0.</div>";
    } else {
        // Verificar saldo actual
        $saldo_actual = dame_saldo($conn, $idinv_seleccionado, $fecha_seleccionada);

        if (abs($monto_retiro) > $saldo_actual) {
            $mensaje = "<div class='alert alert-danger'>El monto a retirar ($" . number_format($monto_retiro, 2) . ") excede el saldo disponible ($" . number_format($saldo_actual, 2) . ").</div>";
        } else {
            // Obtener la rentabilidad anual del inversionista
            $sql_ren = "SELECT reninv FROM inversionista WHERE idinv = ?";
            $stmt_ren = $conn->prepare($sql_ren);
            $stmt_ren->bind_param("i", $idinv_seleccionado);
            $stmt_ren->execute();
            $result_ren = $stmt_ren->get_result();
            $inv_data = $result_ren->fetch_assoc();

            if (!$inv_data) {
                $mensaje = "<div class='alert alert-danger'>❌ No se encontró el inversionista seleccionado.</div>";
            } else {
                $rentabilidad = (float)$inv_data['reninv'];

                // Insertar retiro como inversión negativa
                $sql_insert = "INSERT INTO inversion (idinv, fecinv, mntinv, reninv, estado) 
                               VALUES (?, ?, ?, ?, 1)";
                $stmt = $conn->prepare($sql_insert);
                $monto_negativo = -$monto_retiro;
                $stmt->bind_param("isdd", $idinv_seleccionado, $fecha_seleccionada, $monto_negativo, $rentabilidad);

                if ($stmt->execute()) {
                    $mensaje = "<div class='alert alert-success'>✅ Retiro registrado correctamente.</div>";
                    $saldo_disponible = dame_saldo($conn, $idinv_seleccionado, $fecha_seleccionada);
                } else {
                    $mensaje = "<div class='alert alert-danger'>❌ Error al registrar el retiro: " . htmlspecialchars($conn->error) . "</div>";
                }
            }
        }
    }
}
?>
<!DOCTYPE html>
<html lang="es">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Registrar Retiro</title>
    <link rel="stylesheet" href="style_moderno.css">
</head>
<body>
    <div class="main-wrapper">
        <!-- Sidebar -->
        <aside class="sidebar">
            <div class="sidebar-header">
                <h2>💼 Financiera</h2>
                <p>Sistema de Gestión</p>
            </div>
            <ul class="sidebar-menu">
                <li class="menu-item">
                    <a href="inicio_moderno.php">
                        <span class="menu-icon">🏠</span>
                        Inicio
                    </a>
                </li>
                <li class="menu-item">
                    <a href="inversionista_moderno.php">
                        <span class="menu-icon">👥</span>
                        Inversionistas
                    </a>
                </li>
                <li class="menu-item">
                    <a href="inversion_moderno.php">
                        <span class="menu-icon">💰</span>
                        Inversiones
                    </a>
                </li>
                <li class="menu-item">
                    <a href="retiro_moderno.php" class="active">
                        <span class="menu-icon">💸</span>
                        Retiros
                    </a>
                </li>
                <li class="menu-item">
                    <a href="saldo_moderno.php">
                        <span class="menu-icon">📊</span>
                        Saldos
                    </a>
                </li>
                <li class="menu-item">
                    <a href="usuario_moderno.php">
                        <span class="menu-icon">👤</span>
                        Usuarios
                    </a>
                </li>
                <li class="menu-item">
                    <a href="respaldo_base.php">
                        <span class="menu-icon">💾</span>
                        Respaldos
                    </a>
                </li>
                <li class="menu-item">
                    <a href="index.php" style="color: #ef4444;">
                        <span class="menu-icon">🚪</span>
                        Cerrar Sesión
                    </a>
                </li>
            </ul>
        </aside>

        <!-- Contenido Principal -->
        <main class="main-content">
            <div class="dashboard-header">
                <h1>💸 Registrar Retiro</h1>
                <p>Gestiona los retiros de capital y rendimientos de los inversionistas</p>
            </div>

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

            <!-- Formulario para obtener saldo -->
            <div class="table-container">
                <h3 style="color: var(--primary); margin-bottom: 20px;">1️⃣ Consultar Saldo Disponible</h3>
                <form method="POST">
                    <input type="hidden" name="accion" value="obtener_saldo">

                    <div class="cards-grid" style="grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));">
                        <div class="form-group">
                            <label for="idinv">Inversionista</label>
                            <select id="idinv" name="idinv" required>
                                <option value="">-- Seleccione --</option>
                                <?php 
                                $result_inversionistas->data_seek(0);
                                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="form-group">
                            <label for="fecha_retiro">Fecha del Retiro</label>
                            <input type="date" id="fecha_retiro" name="fecha_retiro"
                                   value="<?= htmlspecialchars($fecha_seleccionada) ?>" required>
                        </div>

                        <div class="form-group" style="display: flex; align-items: flex-end;">
                            <button type="submit" class="btn" style="width: 100%; background: #0ea5e9;">
                                🔍 Obtener Saldo
                            </button>
                        </div>
                    </div>
                </form>
            </div>

            <!-- Mostrar saldo y formulario de retiro -->
            <?php if ($saldo_disponible !== null && $idinv_seleccionado): ?>
                <div class="table-container" style="margin-top: 30px;">
                    <div class="alert alert-info">
                        <strong>💵 Saldo disponible hasta <?= htmlspecialchars($fecha_seleccionada) ?>:</strong>
                        <span style="font-size: 28px; font-weight: bold; color: #10b981;"> $<?= number_format($saldo_disponible, 2) ?></span>
                    </div>

                    <h3 style="color: var(--primary); margin: 30px 0 20px;">2️⃣ Efectuar Retiro</h3>
                    <form method="POST">
                        <input type="hidden" name="accion" value="efectuar_retiro">
                        <input type="hidden" name="idinv" value="<?= htmlspecialchars($idinv_seleccionado) ?>">
                        <input type="hidden" name="fecha_retiro" value="<?= htmlspecialchars($fecha_seleccionada) ?>">

                        <div class="cards-grid" style="grid-template-columns: 2fr 1fr;">
                            <div class="form-group">
                                <label for="monto_retiro">Monto a Retirar ($)</label>
                                <input type="number" step="0.01" min="0.01" max="<?= $saldo_disponible ?>" 
                                       id="monto_retiro" name="monto_retiro" placeholder="0.00" required>
                                <small style="color: #6b7280; font-size: 12px; display: block; margin-top: 5px;">
                                    Máximo permitido: $<?= number_format($saldo_disponible, 2) ?>
                                </small>
                            </div>

                            <div class="form-group" style="display: flex; align-items: flex-end;">
                                <button type="submit" class="btn btn-danger" style="width: 100%;" 
                                        onclick="return confirm('¿Está seguro de efectuar este retiro?')">
                                    💸 Efectuar Retiro
                                </button>
                            </div>
                        </div>
                    </form>
                </div>
            <?php endif; ?>
        </main>
    </div>
</body>
</html>
<?php 
if (isset($conn)) {
    $conn->close();
}
?>
