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:
- Cena bazowa: Kwota domyślna, aplikowana w sytuacjach, gdy żadna z dodatkowych reguł (wyjątków) nie ma zastosowania do terminu rezerwacji.
- 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
overlappod kątem timezone (przelicza je naEurope/Warsaw). - Reguły aplikowane są sekwencyjnie. Funkcja Array.find() szuka pierwszego warunku
trueiterując od indexu 0. - Walidacja frontowa w formularzu upewnia się, że
Godzina odnie jest większa lub równaGodzinie doi ostrzega o tym komunikatem na czerwono.