Skip to main content

Dodawanie i edycja (Cenniki)

Przewodnik po dodawaniu i wycenianiu nowych rodzajów zajęć.

👤 Instrukcja dla pracownika (Administracja)

Aby utworzyć nowy rodzaj zajęć w systemie (np. "Tenis Dzieci VIP"): Ścieżka dla pracownika: Dashboard ➔ Rodzaje zajęć ➔ "+ Dodaj nowy rodzaj zajęć" ➔ Sekcja Konfiguracja Cennika (na samym dole)

Poniżej przedstawiono procedurę konfiguracji wariantów cenowych.

Modele konfiguracji cennika

W sekcji Konfiguracja Cennika formularza kreacji dostępne są dwa modele rozliczeniowe:

Opcja A: Cennik Podstawowy (Zalecany dla regularnych zajęć grupowych)

Należy zastosować ten model w przypadku, gdy obowiązuje jedna stawka godzinowa, niezależnie od dnia tygodnia czy pory odbywania się zajęć. Kwota podana w polu Cena jest stawką za godzinę i jest mnożona przez czas trwania zajęć (np. stawka 50 zł przy zajęciach 90-minutowych daje 75 zł).

Opcja B: Cennik Zaawansowany (Zalecany przy wynajmie infrastruktury)

Model zaawansowany umożliwia różnicowanie opłat za usługę w oparciu o kryteria czasowe (np. stawki szczytowe i pozaszczytowe). Konfiguracja wymaga określenia następujących parametrów:

  1. Cena bazowa: Kwota domyślna, aplikowana w sytuacjach, gdy żadna z dodatkowych reguł (wyjątków) nie ma zastosowania do terminu rezerwacji.
  2. Reguły cenowe (Wyjątki): Mechanizm pozwalający na definiowanie przedziałów czasowych (po kliknięciu "Dodaj Regułę"). Przykłady zastosowania:
    • "Stawka wakacyjna - poranna": Ustalenie ceny 40 zł w okresie od 1 lipca do 31 sierpnia, w przedziale godzinowym 08:00 - 12:00.
    • "Stawka szczytowa": Ustalenie ceny 80 zł (obowiązującej całorocznie) w godzinach 16:00 - 22:00.

Ważne! Hierarchia reguł cenowych Algorytm analizuje listę reguł sekwencyjnie (od góry do dołu). Weryfikowana jest zbieżność terminu zajęć z warunkami pierwszej reguły na liście. W przypadku spełnienia warunków, system aplikuje przypisaną cenę i kończy proces iteracji. Jeżeli warunki nie są spełnione, następuje weryfikacja kolejnej reguły. W przypadku braku dopasowania w pełnym cyklu, system aplikuje ustaloną "Cenę bazową".

Modyfikacja modelu cenowego w istniejących zajęciach

Administrator posiada możliwość modyfikacji "Rodzaju zajęć" po jego zapisaniu. Należy jednak mieć na uwadze następujące zasady:

  • Przekształcenie modelu z "Podstawowego" na "Zaawansowany" jest w pełni bezinwazyjne.
  • Odwrócenie tego procesu (powrót do "Podstawowego") skutkuje bezpowrotnym usunięciem skonfigurowanej tabeli reguł wyjątków. System każdorazowo wymaga potwierdzenia tej akcji w oknie dialogowym.
  • Zmiany w konfiguracji cennika (włączając w to usunięcie reguł) mają wpływ wyłącznie na nowo generowane pozycje w harmonogramie. Istniejące rezerwacje, na podstawie których system wygenerował już pozycje płatności u klientów, zachowują swoje pierwotne kwoty, zapewniając pełną spójność danych finansowych.

🛠️ Dokumentacja techniczna

Szczegóły dla deweloperów o formatach i regułach. Model dla zaawansowanego cennika korzysta z obiektów JSON serializowanych do pola w bazie (pricing_rules).

Kluczowe założenia silnika pricing_rules (calculatePrice)

  • System bierze datę startu i końca konkretnej instancji gry (game).
  • Sprawdza przedziały overlap pod kątem timezone (przelicza je na Europe/Warsaw).
  • Reguły aplikowane są sekwencyjnie. Funkcja Array.find() szuka pierwszego warunku true iterując od indexu 0.
  • Walidacja frontowa w formularzu upewnia się, że Godzina od nie jest większa lub równa Godzinie do i ostrzega o tym komunikatem na czerwono.