Przejdź do głównej zawartości

Dodawanie i edycja rodzajów zajęć

Szczegółowy przewodnik krok po kroku dotyczący tworzenia i modyfikowania rodzajów zajęć.

🎯 Przegląd

Formularz dodawania i edycji rodzajów zajęć pozwala na pełną konfigurację wszystkich parametrów aktywności. Niezależnie od tego, czy tworzysz nowy rodzaj, czy edytujesz istniejący, proces jest identyczny.

Wskazówka

Upewnij się, że masz wszystkie potrzebne informacje przed rozpoczęciem: nazwę zajęć, cenę, przedział wiekowy, limit uczestników.


➕ Dodawanie nowego rodzaju zajęć

Krok 1: Otwórz formularz

  1. Przejdź do widoku "Rodzaje zajęć" w menu bocznym
  2. Kliknij przycisk "Dodaj nowy rodzaj zajęć" (ikona ➕ w prawym górnym rogu)

Zostaniesz przeniesiony do formularza tworzenia.


📝 Formularz - Sekcja podstawowe informacje

1. Nazwa (wymagane)

Pole: Tekstowe
Przykłady:

  • "Tenis dla dzieci 6-8 lat"
  • "Wynajem kortu - standardowy"
  • "Trening personalny"
  • "Szkółka tenisowa - grupa A"

Wskazówki:

  • ✅ Używaj nazw opisowych
  • ✅ Możesz dodać przedział wiekowy w nazwie
  • ✅ Unikaj zbyt długich nazw (optymalna długość: 20-40 znaków)

Walidacja:

  • Minimum 3 znaki
  • Wymagane pole

2. Rodzaj zajęć (wymagane)

Pole: Lista rozwijana
Dostępne opcje:

OpcjaKiedy używaćFunkcje specjalne
RezerwacjaWynajem kortu bez instruktoraBrak instruktora, proste zarządzanie
IndywidualneZajęcia 1-na-1 z instruktoremBrak odrabiania, zwrot przy odwołaniu
GrupoweZajęcia dla grupy uczestnikówMożliwość odrabiania, limity miejsc
InneNiestandardowe aktywnościElastyczna konfiguracja
Różnica między typami

Typ zajęć wpływa na mechanizm odwoływania zajęć i dostępność funkcji odrabiania. Szczegóły w dokumentacji odwoływania zajęć.


3. Maksymalna liczba uczestników (opcjonalne)

Pole: Liczba całkowita (minimum 1)
Przykłady:

  • Grupowe: 8, 10, 12
  • Indywidualne: 1
  • Rezerwacje: 2, 4

Co się dzieje, gdy limit zostanie osiągnięty?

  • 🚫 Zajęcia znikają z listy dostępnych dla uczestników
  • 👨‍💼 Pracownicy mogą nadal dopisywać uczestników ręcznie (z ostrzeżeniem)
  • 📊 W kalendarzu zajęcia są oznaczone jako "Zapełnione"

Pozostawienie pustego pola:

  • ♾️ Brak limitu uczestników
  • ✅ Zapis zawsze dostępny

4. Godziny przed odwołaniem (opcjonalne)

Pole: Liczba całkowita (minimum 1)
Domyślna wartość: 24 godziny
Przykłady:

  • Standard: 24 (1 dzień)
  • Elastyczne: 4, 6, 12
  • Restrykcyjne: 48, 72

Mechanizm:

Data/czas zajęć: Piątek, 15:00
Godziny przed odwołaniem: 24
Ostatni możliwy moment odwołania: Czwartek, 15:00

Pole jest zawsze wstępnie wypełnione wartością domyślną. Możesz wpisać inną liczbę (minimum 1), ale wyczyszczenie pola w formularzu automatycznie przywraca 24.

Ważne

Po upływie tego czasu system może zablokować odwołanie lub zastosować inne zasady (zależne od typu zajęć).


5. Przedział wiekowy (opcjonalne)

Pola: Dwie liczby całkowite (Wiek od | Wiek do)
Przykłady:

GrupaWiek odWiek do
Przedszkolaki46
Dzieci712
Młodzież1317
Dorośli1899
Seniorzy6099
Bez ograniczenia(puste)(puste)

Walidacja:

  • "Wiek do" musi być większy lub równy "Wiek od"
  • Oba pola muszą być liczbami nieujemnymi

Efekt:

  • 🔍 System filtruje zajęcia w Portalu Klienta według wieku uczestnika
  • ⚠️ Pracownicy otrzymują ostrzeżenie przy dopisywaniu uczestnika spoza przedziału

6. Termin płatności (opcjonalne)

Pola: Lista rozwijana (typ) + Liczba (wartość)

Dostępne typy terminów:

🔹 Brak terminu płatności

  • Płatność niewymagana lub opcjonalna
  • Nie tworzy się automatyczny termin

🔹 W dniu zapisu na zajęcia

  • Płatność natychmiastowa przy zapisie
  • Idealny dla: zajęć próbnych, wydarzeń specjalnych

🔹 W dniu zajęć

  • Płatność tego samego dnia co zajęcia
  • Idealny dla: płatności gotówkowych, elastycznych rozliczeń

🔹 X dni przed zajęciami

  • Przykład: 7 dni przed zajęciami
  • Wartość: 7
  • System obliczy termin automatycznie

🔹 X dni po zajęciach

  • Przykład: 3 dni po zajęciach
  • Wartość: 3
  • Idealny dla: rozliczeń abonamentowych

🔹 Dzień miesiąca

  • Przykład: 5-ego dnia każdego miesiąca
  • Wartość: 5 (1-31)
  • Idealny dla: płatności cyklicznych, abonamentów

Przykład konfiguracji:

Typ: Dni przed zajęciami
Wartość: 7

→ Zajęcia 15 stycznia o 10:00
→ Termin płatności: 8 stycznia 23:59
Automatyczne obliczanie

Nie musisz ręcznie ustawiać terminów dla każdych zajęć - system robi to automatycznie na podstawie tej konfiguracji!


7. Kolor (wymagane)

Pole: Wybór koloru (próbnik kolorów)
Domyślny kolor: #22194D (ciemny fiolet)

Jak wybrać kolor:

  1. Kliknij na pole koloru
  2. Otworzy się próbnik kolorów (SketchPicker)
  3. Wybierz kolor wizualnie lub wpisz kod hex
  4. Kliknij poza próbnikiem, aby zatwierdzić

Wskazówki:

  • 🎨 Używaj różnych kolorów dla różnych grup wiekowych
  • 🟢🔴🟡 Koloruj według poziomu zaawansowania
  • 🟦🟪🟩 Rozróżniaj rodzaje zajęć (grupowe, indywidualne, rezerwacje)

Przykład palety:

Przedszkole: #FFB6C1 (jasny róż)
Dzieci: #87CEEB (jasny niebieski)
Młodzież: #9370DB (fiolet)
Dorośli: #3CB371 (zielony)
VIP: #FFD700 (złoty)

💰 Sekcja: Konfiguracja Cennika

To najważniejsza część formularza! System oferuje dwa typy cenników.

🔹 Cennik Podstawowy

Opis: Jedna stała cena dla wszystkich terminów zajęć.

Kiedy używać:

  • ✅ Cena nie zmienia się sezonowo
  • ✅ Prosta struktura cenowa
  • ✅ Łatwa komunikacja z klientami

Formularz:

Pole: Cena (wymagane)
Format: Liczba z maksymalnie 2 miejscami po przecinku
Przykłady: 50,00, 120,50, 35

Walidacja:

  • Cena musi być większa lub równa 0
  • Używaj przecinka , lub kropki . jako separatora dziesiętnego

Przykład:

Nazwa: Tenis dla dzieci
Cennik: Podstawowy
Cena: 45,00 zł

Wynik:

  • Każde zajęcia tego typu kosztują 45,00 zł, niezależnie od dnia i godziny.

⭐ Cennik Zaawansowany

Opis: Dynamiczny cennik z regułami cenowymi zależnymi od daty i godziny.

Kiedy używać:

  • ✅ Różne ceny w weekendy vs. dni powszednie
  • ✅ Godziny szczytu (drożej) vs. godziny poza szczytem (taniej)
  • ✅ Sezonowe zmiany cen (wakacje, ferie)
  • ✅ Promocje w określonych okresach

Formularz składa się z:

1. Cena bazowa (wymagane)

Pole: Cena (tak jak w cenniku podstawowym)
Przeznaczenie: Używana, gdy żadna reguła cenowa nie pasuje do wybranego terminu

Przykład:

Cena bazowa: 40,00 zł
(Stosowana w dni powszednie rano i po południu)

2. Reguły cenowe (opcjonalne, ale zalecane)

Struktura reguły:

PoleOpisPrzykład
Nazwa regułyOpisowa nazwa"Lipiec-Sierpień wieczory"
CenaCena dla tej reguły65,00
Data odPoczątek okresu2025-07-01
Data doKoniec okresu2025-08-31
Godzina odStart godzinowy18:00
Godzina doKoniec godzinowy21:00

Mechanizm działania:

System sprawdza reguły od góry do dołu i stosuje pierwszą pasującą regułę.

Zajęcia: 15 lipca 2025, 19:30

Reguła 1: ✅ Pasuje!
Lipiec-Sierpień wieczory (65,00 zł)
📅 1 lipca - 31 sierpnia
🕐 18:00 - 21:00
→ Cena: 65,00 zł

Reguła 2: ❌ Nie sprawdzana (już znaleziono pasującą)
Kolejność ma znaczenie

Reguły są oceniane dokładnie w kolejności, w jakiej zostały zapisane. Obecnie nie ma możliwości przeciągania ich w interfejsie, dlatego najbardziej szczegółowe konfiguracje warto dodawać jako pierwsze.


📋 Dodawanie reguły cenowej

Krok po kroku:

  1. Kliknij przycisk "Dodaj Regułę" w sekcji Reguły Cenowe
  2. Wypełnij formularz reguły:
    • Nazwa reguły (np. "Weekendy popołudnia")
    • Cena (np. 55,00)
    • Data od (wybierz z kalendarza)
    • Data do (wybierz z kalendarza)
    • Godzina od (format 24h, np. 12:00)
    • Godzina do (format 24h, np. 18:00)
  3. Kliknij "Zapisz" aby dodać regułę do listy

Edycja reguły:

  • Rozwiń regułę klikając na nią
  • Zmień wartości
  • Kliknij "Zapisz"

Usuwanie reguły:

  • Kliknij przycisk "Usuń" przy reguły

🎯 Przykład: Kompleksowy cennik zaawansowany

Scenariusz: Wynajem kortu tenisowego

Cennik: Zaawansowany
Cena bazowa: 40,00 zł

Reguła 1: "Wakacje lipiec-sierpień wieczory Premium"
Cena: 70,00 zł
📅 1 lipca 2025 - 31 sierpnia 2025
🕐 18:00 - 22:00

Reguła 2: "Ferie zimowe popołudnia"
Cena: 55,00 zł
📅 13 stycznia 2025 - 26 stycznia 2025
🕐 12:00 - 16:00

Reguła 3: "Godziny szczytu dni powszednie"
Cena: 50,00 zł
📅 1 stycznia 2025 - 31 grudnia 2025
🕐 17:00 - 20:00

Pozostałe terminy: 40,00 zł (cena bazowa)

Jak to działa w praktyce:

TerminPasująca regułaCena
Wtorek, 15 lipca, 19:00Reguła 1 ✅70,00 zł
Wtorek, 14 stycznia, 15:00Reguła 2 ✅55,00 zł
Czwartek, 5 marca, 18:30Reguła 3 ✅50,00 zł
Poniedziałek, 20 kwietnia, 10:00Cena bazowa40,00 zł
Automatyzacja

Po skonfigurowaniu reguł nie musisz już niczego robić! System sam dobiera odpowiednią cenę przy tworzeniu zajęć.


🔄 Przełączanie między cennikami

Z podstawowego na zaawansowany

Proces:

  1. Kliknij na kartę "Zaawansowany"
  2. System natychmiast przełącza tryb
  3. Możesz zacząć dodawać reguły cenowe
  4. Cena podstawowa staje się ceną bazową

Bez utraty danych:

  • ✅ Cena podstawowa jest zachowana jako cena bazowa
  • ✅ Możesz bezpiecznie eksperymentować

Z zaawansowanego na podstawowy

Proces:

  1. Kliknij na kartę "Podstawowy"
  2. Jeśli masz dodane reguły, system wyświetli dialog potwierdzenia:
⚠️ Przełączyć na Cennik Podstawowy?

Przełączenie na cennik podstawowy usunie wszystkie
niestandardowe reguły cenowe. Ta akcja nie może być
cofnięta. Czy na pewno chcesz kontynuować?

[Anuluj] [Tak, Przełącz na Podstawowy]
  1. Potwierdź operację
  2. Wszystkie reguły cenowe zostają trwale usunięte
  3. Cena bazowa staje się ceną podstawową
Ostrzeżenie

Przełączenie z zaawansowanego na podstawowy usuwa wszystkie reguły cenowe bezpowrotnie. Upewnij się, że to właściwa decyzja!

Jeśli nie masz reguł:

  • Przełączanie przebiega bez ostrzeżenia
  • Oba cenniki działają identycznie

✏️ Edycja istniejącego rodzaju zajęć

Krok 1: Otwórz formularz edycji

Opcja A: Kliknij ikonę z trzema kropkami (menu akcji) przy wierszu i wybierz "Edytuj"
Opcja B: W widoku mobilnym użyj przycisku akcji na karcie rodzaju zajęć i wybierz "Edytuj"

Krok 2: Modyfikuj pola

Formularz wygląda identycznie jak przy dodawaniu, ale pola są wypełnione aktualnymi wartościami.

Co możesz zmienić:

  • ✅ Nazwę
  • ✅ Typ zajęć
  • ✅ Cennik (podstawowy ↔ zaawansowany)
  • ✅ Ceny i reguły cenowe
  • ✅ Limity uczestników
  • ✅ Przedziały wiekowe
  • ✅ Terminy płatności
  • ✅ Kolor

Krok 3: Zapisz zmiany

Kliknij przycisk "Zapisz zmiany" na dole formularza.

Co się dzieje po zapisaniu:

  • ✅ System zapisuje nową konfigurację
  • ✅ Wszystkie przyszłe zajęcia będą używać nowych ustawień
  • Istniejące zajęcia zachowują dotychczasowe parametry (data, cena)
  • ✅ Komunikat sukcesu: "Typ aktywności utworzony" (ten sam toast pojawia się także po aktualizacji)
Bezpieczna edycja

Edycja rodzaju zajęć nie wpływa na już zaplanowane wydarzenia. Zmienia się tylko szablon dla przyszłych zajęć.


✅ Walidacja i błędy

System sprawdza poprawność danych przed zapisaniem:

Wymagane pola

Nie możesz zapisać formularza bez:

  • ❌ Nazwy (minimum 3 znaki)
  • ❌ Typu zajęć
  • ❌ Ceny (w cenniku podstawowym lub bazowej w zaawansowanym)
  • ❌ Koloru (format hex: #RRGGBB)

Walidacja przedziałów

Przedział wiekowy:

❌ Błąd: Wiek od: 18, Wiek do: 12
✅ OK: Wiek od: 12, Wiek do: 18
✅ OK: Oba puste (brak ograniczenia)

Reguły cenowe:

❌ Błąd: Data od: 2025-08-01, Data do: 2025-07-01
✅ OK: Data od: 2025-07-01, Data do: 2025-08-31

❌ Błąd: Godzina od: 18:00, Godzina do: 18:00
❌ Błąd: Godzina od: 20:00, Godzina do: 18:00
✅ OK: Godzina od: 18:00, Godzina do: 21:00

Komunikaty błędów

System wyświetli czerwone komunikaty pod polami z błędami:

  • "Nazwa użytkownika musi mieć co najmniej 3 znaki"
  • "Cena musi być większa lub równa 0"
  • "Wiek 'do' musi być większy lub równy wiekowi 'od'"
  • "Nieprawidłowy zakres dat lub godzin w regułach cenowych"
  • "Kolor musi być w formacie szesnastkowym (np. #FF5733)"
Nie można zapisać

Formularz nie pozwoli na zapisanie, dopóki wszystkie błędy nie zostaną naprawione.


💾 Zapisywanie i zakończenie

Po pomyślnym zapisaniu:

  1. Komunikat sukcesu 🎉
  • Tytuł: "Typ aktywności utworzony" (także po aktualizacji)
  1. Automatyczne przekierowanie

    • Wracasz do widoku listy rodzajów zajęć
  2. Odświeżenie danych

    • Lista jest aktualizowana
    • Nowy/zmodyfikowany rodzaj jest widoczny

W razie błędu:

Komunikat: "Błąd tworzenia - Wystąpił błąd podczas tworzenia typu aktywności. Spróbuj ponownie."

Co robić:

  1. Sprawdź połączenie internetowe
  2. Odśwież stronę
  3. Spróbuj ponownie zapisać formularz
  4. Jeśli problem się powtarza, skontaktuj się z administratorem