Wymóg
Oszacuj czynsz za nieruchomość na podstawie daty i godziny rezerwacji, a także liczby obecności.
Przypadek użycia
Wynajmowana jest sala bankietowa w hotelu. Oto struktura cenowa hali:
Dzień | | Liczba gości standardowych (w liczbach) | Koszt za dodatkowego gościa (w USD) | Standardowy czas trwania (w godzinach) | Koszt za dodatkową godzinę na gościa (w USD) |
Poniedziałek - Czwartek | 5200 | 50 | 80 | 5 | 7 |
Piątek i Niedziela | 6500 | 50 | 80 | 5 | 7 |
Sobota | 7500 | 50 | 80 | 5 | 7
|
Załóżmy, że aplikacja do zarządzania tym hotelem zawiera formularz rezerwacji sali imprezowej. Gdy użytkownik, który chce zarezerwować salę imprezową, wprowadzi swoją oczekiwaną liczbę gości i czas wydarzenia, łączna cena wydarzenia zostanie obliczona na podstawie powyższych specyfikacji.
Kroki do naśladowania
1. Utwórz formularz z następującymi szczegółami.
Formularz | Nazwa łącza formularza | Typ pola | Nazwa pola | Nazwa łącza pola |
Zarezerwuj salę imprezową | Book_Party_Hall | Nazwa | Nazwa | Nazwa |
Email | Email | Email |
Numer | Liczba gości | Liczba gości |
Data-Godzina | Czas rozpoczęcia wydarzenia | Event_Start_Time |
Data-Godzina | Czas zakończenia wydarzenia | Event_End_Time |
Waluta | Całkowity koszt | Całkowity koszt |
Całkowity koszt jest szacowany na podstawie pól Liczba gości, Czas rozpoczęcia wydarzenia i Czas zakończenia wydarzenia. Aby zapewnić precyzyjne obliczenia, zaznacz te trzy pola jako obowiązkowe.
2. Utwórz przepływ pracy z następującymi szczegółami:
3. Pole Koszt całkowity zostanie automatycznie wypełnione obliczoną wartością. Tym samym pole zostanie wyłączone po załadowaniu formularza. Zapisz następujący skrypt Deluge w edytorze Deluge:
4. Utwórz kolejny przepływ pracy z następującymi szczegółami:
5. Zapisz następujący skrypt Deluge w edycji Deluge:
Teraz obliczmy ponownie łączny koszt na wejściu pola Liczba gości i pola Godzina rozpoczęcia. Ma to na celu zapewnienie prawidłowego oszacowania całkowitego kosztu, nawet jeśli użytkownik ponownie wprowadzi liczbę gości i godzinę rozpoczęcia.
7. Zapisz ten sam skrypt Deluge z kroku 5 w edytorze Deluge.
Zobacz jak to działa
Punkty do zapamiętania
Ten samouczek przedstawia kalkulację kosztów wynajmowanej jednej sali imprezowej ze złożoną strukturą cenową opartą na dacie, godzinie i liczbie uczestników wydarzenia. Dlatego, dla uproszczenia, ceny bazowe są zakodowane w skrypcie. Aby zastosować skrypt do wielu sal imprezowych w hotelu, które są wynajmowane o podobnej strukturze cenowej, ale różnych stawkach, zapisz ceny bazowe i ceny dodatkowe w formularzu administratora i pobierz stawki zgodnie z wybraną salą imprezową, gdy jest to wymagane .
W tym samouczku różnica godzin między godziną rozpoczęcia i zakończenia jest obliczana przy użyciu formuły, a nie wbudowanej funkcji hoursBetween. Dzieje się tak, ponieważ zamierzonym zachowaniem tej funkcji nie jest ani zaokrąglanie wartości godzin na podstawie różnicy minut, ani zwracanie dokładnego odpowiednika dziesiętnego.
Na przykład:
start_time = '18-Dec-2019 07:00:00';end_time = '18-Dec-2019 08:59:59';total_hours = hoursBetween(start_time, end_time);Tutaj wartość total_hours wynosi 1, mimo że różnica czasu wynosi 1 godzinę i 59 minut. Czyli w przypadku użycia funkcji hoursBetween klient zostanie obciążony tylko za 1 godzinę, nawet jeśli zdarzenie trwało 1 godzinę i 59 minut.
W usługach innych niż Zoho Creator można użyć wbudowanej funkcji timeBetween, aby znaleźć dokładną różnicę czasu między dwiema wartościami daty i czasu. Wkrótce będziemy to wspierać w Zoho Creator. Aby uzyskać wynik zwrócony przez funkcję timeBetween, możesz użyć następującej formuły.
start_date = '1-Jun-2021 00:00:07';
end_date = '24-Jun-2021 12:12:14';
difference_in_ms = (end_date-start_date);
hours = difference_in_ms / (1000 * 60 * 60);
mins = (difference_in_ms / (1000 * 60)) % 60;
secs = (difference_in_ms/ 1000)% 60;
info hours.floor()+":"+ mins.floor() + ":" + secs.floor();