diff --git a/modules/turnero/api/get_historial.php b/modules/turnero/api/get_historial.php index c122447..e399e61 100644 --- a/modules/turnero/api/get_historial.php +++ b/modules/turnero/api/get_historial.php @@ -4,7 +4,7 @@ * GET Historial paginado de turnos con filtros multi-día. * * Parámetros (todos opcionales): - * fecha_desde YYYY-MM-DD (default: hace 7 días) + * fecha_desde YYYY-MM-DD (default: hoy; hace 12 meses si se pasa paciente_id) * fecha_hasta YYYY-MM-DD (default: hoy) * estado string ("finalizado","ausente","cancelado","en_servicio",... o vacío = todos) * lugar_id int (0 = todos) @@ -23,16 +23,29 @@ $pdo = db(); // ── Parámetros ──────────────────────────────────────────────── $hoy = date('Y-m-d'); +// paciente_id se lee primero: determina el rango de fechas por defecto. +$pacienteId = (int)($_GET['paciente_id'] ?? 0); + $fechaDesde = trim($_GET['fecha_desde'] ?? ''); $fechaHasta = trim($_GET['fecha_hasta'] ?? ''); -if (!preg_match('/^\d{4}-\d{2}-\d{2}$/', $fechaDesde)) $fechaDesde = $hoy; + +// Rango por defecto cuando el cliente no manda fechas: +// - Ficha de paciente (paciente_id): ultimos 12 meses. +// Antes caia en "hoy", asi que el historial del paciente solo podia mostrar +// visitas del mismo dia y siempre respondia "sin visitas anteriores". +// - Listado general del historial: hoy (comportamiento original). +// Para ver el historial completo, el cliente pasa fecha_desde explicita. +$desdePorDefecto = $pacienteId > 0 + ? date('Y-m-d', strtotime('-12 months')) + : $hoy; + +if (!preg_match('/^\d{4}-\d{2}-\d{2}$/', $fechaDesde)) $fechaDesde = $desdePorDefecto; if (!preg_match('/^\d{4}-\d{2}-\d{2}$/', $fechaHasta)) $fechaHasta = $hoy; if ($fechaDesde > $fechaHasta) $fechaDesde = $fechaHasta; $estadoFiltro = trim($_GET['estado'] ?? ''); $lugarId = (int)($_GET['lugar_id'] ?? 0); $prioridadId = (int)($_GET['prioridad_id'] ?? 0); -$pacienteId = (int)($_GET['paciente_id'] ?? 0); $q = trim($_GET['q'] ?? ''); $perPage = min(200, max(10, (int)($_GET['per_page'] ?? 50)));