Kalkulacja czynszu na podstawie wielu wartości wybranych przez klientów na wydarzeniu

Kalkulacja czynszu na podstawie wielu wartości wybranych przez klientów na wydarzeniu

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ń
Cena podstawowa
(w USD)
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:
  1. disable Total_Cost;
 
4. Utwórz kolejny przepływ pracy z następującymi szczegółami:

5. Zapisz następujący skrypt Deluge w edycji Deluge:
  1. // Wykonaj obliczenia szacunkowe tylko w następujących warunkach
  2. if(Event_Start_Time != null && Event_End_Time != null && Event_Start_Time < Event_End_Time && Guest_Count != null)
  3. {
  4.  
  5.  // Określ szczegóły pakietu podstawowego
  6.  monday_to_thursday_cost = 5200;
  7.  friday_sunday_cost = 6500;
  8.  saturday_cost = 7500;
  9.  standard_guests = 50;
  10. standard_hours = 5;
  11.  
  12.  // Zdefiniuj dodatkowe koszty
  13.  cost_per_extra_guest = 80;
  14.  cost_per_extra_hour_per_guest = 7;
  15.  
  16.  //Dowiedz się, w którym dniu odbędzie się wydarzenie
  17.  day = input.Event_Start_Time.getDayOfWeek();
  18.  
  19.  //Ustal koszt na podstawie dnia, w którym odbędzie się wydarzenie
  20.  if(day == 7)
  21.  {
  22.   cost = saturday_cost;
  23.  }
  24.  else if(day == 6 || day == 1)
  25.  {
  26.   cost = friday_sunday_cost;
  27.  }
  28.  else
  29.  {
  30.   cost = monday_to_thursday_cost;
  31.  }
  32.  
  33.  // Nalicz dodatkową opłatę za dodatkowych gości
  34.  if(Guest_Count > 50)
  35.  {
  36.   extra_guests = input.Guest_Count - standard_guests;
  37.   cost = cost + cost_per_extra_guest * extra_guests;
  38.  }
  39.  
  40.  //Oblicz liczbę godzin wydarzenia
  41.  event_hours = ((input.Event_End_Time - input.Event_Start_Time)) / (1000 * 3600);
  42.  
  43.  //Nalicz dodatkowy koszt za dodatkowe godziny
  44.  if(event_hours > 5)
  45.  {
  46.   extra_hours = event_hours - standard_hours;
  47.   cost = cost + cost_per_extra_hour_per_guest * extra_hours * input.Guest_Count;
  48.  }
  49.  input.Total_Cost = cost;
  50. }

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();

    • Related Articles

    • Konwertowanie potencjalnych klientów

      Gdy pojawia się szansa na dalsze negocjacje z leadem, można to przełożyć na konto, kontakt, a na koniec umowę. Krótko mówiąc, gdy status potencjalnego klienta osiągnie pewien etap, można go zakwalifikować jako transakcję. Podczas konwersji lead jest ...
    • Wartości statystyczne na raporcie na podstawie pól liczbowych

      Wymóg Wyświetlaj wspólne wyniki statystyczne w raportach dla pól liczbowych w formularzu, aby pomóc w identyfikacji trendów i procesie podejmowania decyzji. Przypadek użycia W każdym biznesie opartym na sprzedaży chrupanie liczb to duże zadanie. ...
    • Dynamiczna kalkulacja ceny na podstawie obliczonej odległości

      Wymóg Oblicz koszt taksówki lub wynajętego samochodu na podstawie odległości.t Przypadek użycia Aplikacja do rezerwacji taksówki oblicza i wyświetla przybliżony koszt przejazdu na podstawie adresów odbioru i zwrotu, po czym użytkownik może wybrać ...
    • Synchronizuj moduł klientów Quickbooks z Zoho Creator

      Wymóg Użyj źródła danych, aby zsynchronizować moduł klientów Quickbooks z aplikacją Zoho Creator. Przypadek użycia   Firma logistyczna prowadzi swoje dane klientów i konta w Quickbooks. Do rezerwacji korzystają z aplikacji do zarządzania logistyką ...
    • Automatycznie wypełnij pole na podstawie wyboru z listy rozwijanej wyszukiwania

      Wymóg   Gdy wartość zostanie wybrana z listy rozwijanej wyszukiwania, powiązane wartości są wypełniane w innych polach tego samego formularza. Przypadek użycia   Aplikacja do zarządzania zamówieniami zawiera formularz do przechowywania szczegółów ...