Skip to main content

Odwoływanie zajęć

Przewodnik po odwoływaniu zajęć dla pracowników recepcji i administracji. Wyjaśnia on, co dzieje się z zajęciami i płatnością klienta, w zależności od tego, jaki to typ zajęć i z czyjej winy są odwoływane.

👤 Instrukcja dla pracownika

W codziennej pracy operacyjnej występują dwie główne sytuacje odwołania zajęć:

  1. Klient samodzielnie odwołuje zajęcia przez aplikację. (Odwołanie przez Uczestnika) Ścieżka dla klienta: Portal Klienta ➔ Kalendarz (lub Moje zajęcia) ➔ Wybierz zajęcia ➔ Kliknij "Odwołaj"

  2. Odwołanie zajęć przez administrację (np. nieobecność trenera, zamknięcie obiektu). (Odwołanie przez Pracownika) Ścieżka dla pracownika: Dashboard ➔ Harmonogram ➔ Wybierz zajęcia ➔ Kliknij ikonę kosza ("Usuń") przy danym uczestniku (lub "Odwołaj całe zajęcia")

Poniższe zestawienie ilustruje procesowanie środków klienta w poszczególnych scenariuszach. Kluczowym czynnikiem jest typ odwoływanych zajęć.

Zestawienie referencyjne (Zasady zwrotów i odrabiania)

Typ zajęćKto odwołuje?Czy klient zapłacił?Status po odwołaniu / ZwrotStatus transakcji
Grupowe (szkółka)👤 Uczestnik✅ TakMożliwość odrabianiaOpłacona
Grupowe👤 Uczestnik⏳ NieMożliwość odrabianiaDo zapłaty
Grupowe👨‍💼 Administracja✅ TakZwrot środków do Wirtualnego PortfelaZwrócona
Grupowe👨‍💼 Administracja⏳ NieCałkowite anulowanie (brak zadłużenia)Anulowana
Indywidualne👤 Uczestnik✅ TakZwrot środków do Wirtualnego PortfelaZwrócona
Indywidualne👤 Uczestnik⏳ NieCałkowite anulowanieAnulowana
Indywidualne👨‍💼 Administracja✅ TakZwrot środków do Wirtualnego PortfelaZwrócona
Próbne👤 Uczestnik✅ TakMożliwość odrabianiaOpłacona
Próbne👨‍💼 Administracja✅ TakZwrot środków do Wirtualnego PortfelaZwrócona

Obsługa poszczególnych typów zajęć

1. Zajęcia grupowe (szkółkowe) – możliwość odrabiania Klienci uczestniczący w zajęciach grupowych mogą samodzielnie anulować swoją obecność za pośrednictwem aplikacji mobilnej lub webowej. Skutkuje to następującymi konsekwencjami:

  • Niewykorzystane zajęcia zostają przeniesione do puli "Do odrobienia".
  • Przepisanie do puli odrabiania następuje niezależnie od faktu opłacenia rezerwacji (nieopłacona transakcja pozostaje aktywna na koncie klienta).
  • Zasada zwrotów: W przypadku usunięcia uczestnika przez pracownika administracji (np. z powodu nieobecności trenera), klient otrzymuje automatyczny zwrot środków na saldo Wirtualnego Portfela, co umożliwia pokrycie kosztów w kolejnym cyklu rozliczeniowym.

2. Zajęcia indywidualne – brak odrabiania Zajęcia indywidualne (wymagające rezerwacji kortu oraz wyłączności trenera) obsługiwane są według innej procedury:

  • Mechanizm odrabiania zajęć jest w tym przypadku niedostępny.
  • Niezależnie od strony inicjującej anulację (klient przez aplikację lub pracownik administracji), opłacone środki podlegają zwrotowi na Wirtualny Portfel, a rezerwacja ulega całkowitemu anulowaniu.

3. Zajęcia próbne (rekrutacyjne) Rejestracja na zajęcia próbne wymaga uiszczenia opłaty z góry.

  • W przypadku anulacji przez klienta – nabywa on prawo do odrobienia zajęć w innym terminie próbnym.
  • W przypadku odwołania przez administrację – pełna kwota zostaje zwrócona na Wirtualny Portfel.

Funkcjonowanie Wirtualnego Portfela

Zatwierdzenie zwrotu za anulowane zajęcia nie implikuje zlecenia przelewu na rachunek bankowy lub kartę płatniczą klienta. Środki zostają zaksięgowane w Wirtualnym Portfelu w profilu użytkownika.

  • Użytkownik może wykorzystać zgromadzone saldo podczas opłacania przyszłych rezerwacji.
  • Aktualne saldo portfela jest widoczne na karcie uczestnika w panelu administracyjnym oraz w zakładce Finanse.
  • Zaletą tego rozwiązania jest natychmiastowa dostępność środków, bez konieczności oczekiwania na standardowe sesje księgowe banków.

Procedura Odrabiania Zajęć

Jeżeli klient skontaktuje się z recepcją z zapytaniem o możliwość odrobienia anulowanych wcześniej zajęć grupowych, należy przekazać mu następującą instrukcję:

Ścieżka dla klienta: Portal Klienta ➔ Odwołane zajęcia ➔ Wybierz interesujący termin z listy ➔ Kliknij "Zapisz się"

  1. W zakładce "Odwołane zajęcia" system prezentuje listę dostępnych grup, które odpowiadają poziomowi zaawansowania uczestnika oraz dysponują wolnymi miejscami.
  2. Zatwierdzenie wybranego terminu powoduje rejestrację bez konieczności ponoszenia dodatkowych opłat. Do wygenerowanej rezerwacji przypisywana jest zwolniona płatność, opatrzona adnotacją (odrabianie).
  3. Jeżeli w momencie anulacji płatność posiadała status Do zapłaty, uczestnik zostanie pomyślnie zarejestrowany, jednak wezwanie do zapłaty na jego koncie pozostanie aktywne.

Powiadomienia automatyczne

Po przeprowadzeniu procedury anulacji, system wysyła zautomatyzowane powiadomienie e-mail. Jeżeli proces został zainicjowany przez pracownika administracji, treść wiadomości zawiera informację o powodzie (np. zamknięcie obiektu) oraz potwierdzenie przekazania środków do Wirtualnego Portfela. Komunikat zawiera również dane kontaktowe do lokalnych oddziałów recepcji.


🛠️ Dokumentacja techniczna

Poniższa sekcja wyjaśnia procesy zachodzące w systemie podczas odwoływania i substytucji. Jest przeznaczona dla deweloperów.

Procesy zachodzące podczas Odrabiania (Substytucji)

Gdy uczestnik wybiera nowy termin zajęć grupowych za zajęcia wcześniej odwołane:

  1. Weryfikacja substytucji – Aplikacja sięga po wpis z tabeli odwołanych (lub flagi) i weryfikuje wolne miejsca w wybranym terminie.
  2. Poszukiwanie płatności (Payment Matching) – Kluczowy krok. Aplikacja szuka najnowszej płatności użytkownika dla ról school lub trial bez powiązania z terminem, gdzie jej status to nie jest Zwrócona ani Anulowana. Dotyczy to statusów Opłacona oraz Do zapłaty.
  3. Przypięcie płatności (Binding) – Odszukana płatność jest dopinana do nowej rezerwacji w kalendarzu, a jej pole description (tytuł/opis) otrzymuje dopisek (odrabianie). Właściwy status się nie zmienia (tzn. zapłacona nadal jest zapłacona, a niezapłacona nadal windykuje użytkownika).
  4. Brak płatności (Fallback) – Jeśli z jakiegoś powodu na koncie gracza brakuje tego rekordu, serwer wylicza według cennika kwotę i tworzy nowy wiersz w tabeli płatności ze statusem Do zapłaty.
  5. Powiadomienie – Uczestnik otrzymuje wiadomość opartą o event game_substitution przez system komunikacji.

Statusy tabeli Transakcji (Payments)

W strukturach backendowych płatności (np. dla tablic w Prisma / D1) zdefiniowane są statusy:

  • Opłacona – standardowy stan po webhooks od Przelewy24 lub ręcznym oznaczeniu przez pracownika recepcji.
  • Do zapłaty – systemowy stan długu, widoczny w zakładkach zaległości.
  • Zwrócona – modyfikacja powiązana z triggerem dodania funduszy do rekordu wallet_balance użytkownika.
  • Anulowana – twarde usunięcie zapotrzebowania, ignorowane w raportach finansowych (MRR/ARR).

Moduł zajęć indywidualnych a odrabianie

Odrabianie zajęć zablokowane jest (hardcoded w warstwie reguł biznesowych) dla activity_type = 'individual'. Taka struktura wynika z faktu, że czas i zaangażowanie kortu jest w nich wyłączne dla gracza, stąd logiką biznesową jest operacja na obrocie z wykorzystaniem zwrotu do tabeli portfela, a nie kolejka zastępstw.