<?php
// Si el archivo está en la raíz, modelo está en la misma carpeta
require_once "modelo/Db.php"; 
$bd = new clsbdd();

$accion = $_POST['accion'] ?? '';

// --- BLOQUE 1: BUSCADOR PARA EL POS ---
if ($accion == 'buscar') {
    $termino = $_POST['termino'];
    
    $sql = "SELECT * FROM sba_profesores 
            WHERE pro_estado = 1 
            AND pro_nombre LIKE '%$termino%' 
            LIMIT 5";
            
    $res = $bd->ejecutar_array($sql);
    
    if ($res) {
        foreach ($res as $b) {
            $id = $b['pro_codigo'];
            $nombre = addslashes($b['pro_nombre']);
            $saldo = floatval($b['pro_saldo_actual']);
            $limite = floatval($b['pro_limite_credito']);
            
            echo "<div class='item-ben' style='padding:10px; border-bottom:1px solid #eee; cursor:pointer; background:white;' 
                  onclick=\"seleccionarBeneficiario($id, '$nombre', $limite, $saldo)\">
                    <div style='font-weight:bold; color:#333;'>$nombre</div>
                    <div style='font-size:11px; color:#666;'>Disponible: $".number_format($limite - $saldo, 2)." | Cupo: $$limite</div>
                  </div>";
        }
    } else {
        echo "<div style='padding:10px; color:red; background:white;'>No hay coincidencias</div>";
    }
    exit; 
}

// --- BLOQUE 2: GUARDAR NUEVO O EDITAR ---
if ($accion == 'guardar') {
    $nombre = strtoupper(trim($_POST['nombre']));
    $tipo   = $_POST['tipo'];
    $limite = floatval($_POST['limite']);
    $codigo = intval($_POST['codigo'] ?? 0);

    if ($codigo == 0) {
        $bd->carga_campos("pro_nombre, pro_tipo, pro_limite_credito, pro_saldo_actual, pro_estado");
        $bd->carga_valores("'$nombre', '$tipo', $limite, 0, 1");
        $res = $bd->insertar("sba_profesores");
    } else {
        $sql_update = "UPDATE sba_profesores SET 
                        pro_nombre = '$nombre', 
                        pro_tipo = '$tipo', 
                        pro_limite_credito = $limite 
                        WHERE pro_codigo = $codigo";
        $res = $bd->ejecutar($sql_update);
    }

    echo $res ? "ok" : "error";
    exit;
}

// --- BLOQUE 3: PROCESAR RECARGA / ABONO ---
if ($accion == 'recargar') {
    $codigo = intval($_POST['codigo']);
    $monto  = floatval($_POST['monto']);
    $fecha  = $_POST['fecha'];
    $obs    = addslashes($_POST['observacion']);

    // Actualizamos el saldo actual
    $sql_update = "UPDATE sba_profesores SET 
                   pro_saldo_actual = pro_saldo_actual - $monto 
                   WHERE pro_codigo = $codigo";
    
    $res = $bd->ejecutar($sql_update);

    // Insertamos en la tabla de historial (Corregida)
    if($res) {
        $sql_historial = "INSERT INTO sba_abonos_beneficiarios (pro_codigo, abo_monto, abo_fecha, abo_observacion) 
                          VALUES ($codigo, $monto, '$fecha', '$obs')";
        $bd->ejecutar($sql_historial);
    }

    echo $res ? "ok" : "error";
    exit;
}

// --- BLOQUE 4: OBTENER TABLA DE HISTORIAL PARA EL MODAL ---
if ($accion == 'ver_historial') {
    $codigo = intval($_POST['codigo']);
    $sql = "SELECT * FROM sba_abonos_beneficiarios WHERE pro_codigo = $codigo ORDER BY abo_fecha DESC";
    $historial = $bd->ejecutar_array($sql);
    
    if ($historial) {
        echo "<table style='width:100%; border-collapse:collapse; font-size:13px;'>
                <thead>
                    <tr style='background:#f4f6f9; border-bottom:2px solid #ddd;'>
                        <th style='padding:10px; text-align:left;'>Fecha</th>
                        <th style='padding:10px; text-align:left;'>Monto</th>
                        <th style='padding:10px; text-align:left;'>Observación</th>
                    </tr>
                </thead>
                <tbody>";
        foreach ($historial as $h) {
            echo "<tr style='border-bottom:1px solid #eee;'>
                    <td style='padding:8px;'>" . date("d/m/Y", strtotime($h['abo_fecha'])) . "</td>
                    <td style='padding:8px; font-weight:bold; color:#1cc88a;'>$" . number_format($h['abo_monto'], 2) . "</td>
                    <td style='padding:8px; color:#666;'>" . htmlspecialchars($h['abo_observacion']) . "</td>
                  </tr>";
        }
        echo "</tbody></table>";
    } else {
        echo "<div style='text-align:center; padding:20px; color:#999;'>No hay abonos registrados.</div>";
    }
    exit;
}
?>