false, 'message' => 'Falta el parámetro id']); exit(); } $multa_id = (int)$_GET['id']; $sql = "SELECT m.id, m.codigo, m.importe, m.motivo, m.estado_pago, m.fecha_emision, m.fecha_limite_pago, m.fecha_pago, u.id AS usuario_id, u.nombre AS cliente_nombre, u.apellidos AS cliente_apellidos, u.email AS cliente_email, u.telefono AS cliente_telefono, u.dni AS cliente_dni, r.id AS reserva_id, r.codigo AS reserva_codigo, r.fecha AS reserva_fecha, r.hora_inicio, r.hora_fin_prevista, c.codigo AS cabina_codigo, c.bloque FROM multas m LEFT JOIN usuarios u ON m.usuario_id = u.id LEFT JOIN reservas r ON m.reserva_id = r.id LEFT JOIN cabinas c ON r.cabina_id = c.id WHERE m.id = :id LIMIT 1"; $stmt = $pdo->prepare($sql); $stmt->execute([':id' => $multa_id]); $multa = $stmt->fetch(); if (!$multa) { http_response_code(404); echo json_encode(['success' => false, 'message' => 'Multa no encontrada']); exit(); } // Calcular si está vencida $vencida = false; if (!empty($multa['fecha_limite_pago']) && $multa['estado_pago'] !== 'pagada') { $limite = new DateTime($multa['fecha_limite_pago']); $ahora = new DateTime(); if ($ahora > $limite) { $vencida = true; $dias_vencida = $ahora->diff($limite)->days; } } echo json_encode([ 'success' => true, 'message' => 'Detalle de multa obtenido', 'data' => $multa, 'vencida' => $vencida, 'dias_vencida' => $vencida ? $dias_vencida : 0 ], JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE); } catch (PDOException $e) { http_response_code(500); echo json_encode([ 'success' => false, 'message' => 'Error en el servidor', 'error' => $e->getMessage() ]); } ?>