<?php
/**
 * agrupacion-buscar.php
 * Busca notas elegibles para agrupar: tipo 10 u 11, statusentrega = PENDIENTE
 *
 * GET params:
 *   filtro  = "hoy" | "tx" | "ref"
 *   valor   = (requerido si filtro=tx o filtro=ref)
 */
require_once __DIR__ . '/../../config.php';
auth();
$db = getDB();

$filtro = $_GET['filtro'] ?? 'hoy';
$valor  = trim($_GET['valor'] ?? '');

try {
    $where  = "t.tipostr_idtipostr IN (10, 11)
               AND t.statusentrega = 'PENDIENTE'";
    $params = [];

    if ($filtro === 'hoy') {
        $where  .= " AND DATE(t.fechat) = CURDATE()";
    } elseif ($filtro === 'tx' && $valor !== '') {
        $where  .= " AND t.idtransacciones = ?";
        $params[] = (int)$valor;
    } elseif ($filtro === 'ref' && $valor !== '') {
        $where  .= " AND i.referencia LIKE ?";
        $params[] = '%' . $valor . '%';
    }

    $sql = "
        SELECT
            t.idtransacciones,
            t.fechat,
            t.tipostr_idtipostr   AS tipo,
            t.cdentrega,
            t.statusentrega,
            i.referencia,
            CONCAT(i.nombre,' ',i.appat,' ',COALESCE(i.apmat,'')) AS nombre_dist,
            COALESCE(d.puntos, 0) AS puntos
        FROM transacciones t
        JOIN inversionista i ON i.id_inver = t.inversionista_id_inver
        LEFT JOIN depositos d ON d.transacciones_idtransacciones = t.idtransacciones
        WHERE $where
        ORDER BY t.fechat DESC
        LIMIT 200
    ";

    $stmt = $db->prepare($sql);
    $stmt->execute($params);
    $rows = $stmt->fetchAll(PDO::FETCH_ASSOC);

    // Convertir tipos
    foreach ($rows as &$r) {
        $r['idtransacciones'] = (int)$r['idtransacciones'];
        $r['tipo']            = (int)$r['tipo'];
        $r['cdentrega']       = (int)$r['cdentrega'];
        $r['puntos']          = (float)$r['puntos'];
    }
    unset($r);

    jsonOk(['notas' => $rows]);
} catch (Exception $e) {
    jsonErr('Error al buscar notas: ' . $e->getMessage());
}
