顧客が選択した複数の値に基づくイベントの料金計算

顧客が選択した複数の値に基づくイベントの料金計算

お知らせ:当社は、お客様により充実したサポート情報を迅速に提供するため、本ページのコンテンツは機械翻訳を用いて日本語に翻訳しています。正確かつ最新のサポート情報をご覧いただくには、本内容の英語版を参照してください。

要件

予約された日付と時間、および参加人数に基づいて、物件のレンタル見積書を作成する。

ユースケース

ホテルのパーティーホールを貸し出すとします。ホールの料金体系は次のとおりです。
曜日
基本料金
(USD)
標準ゲスト人数
(人数)
追加ゲスト1人あたりの料金
(USD)
標準利用時間
(時間)
追加1時間・1人あたりの料金
(USD)
月曜~木曜
5200
50
80
5
7
金曜・日曜
6500
50
80
5
7
土曜
7500
50
80
5
7

 
ここで、このホテルの管理アプリにパーティーホール予約用のフォームがあるとします。パーティーホールを予約したいユーザーが、想定ゲスト人数とイベントの時間を入力すると、上記の条件に基づいてイベントの合計料金が自動計算されます。

手順

1. フォームを作成 し、次の詳細を設定します。
フォーム
フォームリンク名
項目タイプ
項目名
項目リンク名
パーティーホールを予約
Book_Party_Hall
名前
名前
名前
メール
メール
メール
数値
ゲスト数
Guest_Count
日付-時間
イベント開始時刻
Event_Start_Time
日付-時間
イベント終了時刻
Event_End_Time
通貨
合計費用
Total_Cost
 
合計費用 項目は、 ゲスト数、イベント開始時刻、 および イベント終了時刻 項目に基づいて見積もられます。正確に計算するために、 これら3つの項目を必須に設定します
 
2. フォームワークフローを作成 し、次の詳細を設定します。
 
3. 合計費用 項目には、計算された値が自動入力されます。そのため、この項目はフォーム読み込み時に無効になります。次のDelugeスクリプトをDelugeエディターに保存します。
  1. 無効にする Total_Cost;
 
4. 別のフォームワークフローを作成 し、次の詳細を設定します。

5. 次のDelugeスクリプトをDelugeエディターに保存します。
  1. // 以下の条件を満たす場合にのみ見積もり計算を実行する
  2. if(Event_Start_Time != null && Event_End_Time != null && Event_Start_Time < Event_End_Time && Guest_Count != null)
  3. {
  4.  
  5. // 基本パッケージの詳細を定義する
  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. // 追加料金を定義する
  13. cost_per_extra_guest = 80;
  14. cost_per_extra_hour_per_guest = 7;
  15.  
  16. // イベントが実施される曜日を取得する
  17. day = input。Event_Start_Time。getDayOfWeek();
  18.  
  19. // イベントの曜日に基づいて費用を設定する
  20. if(day == 7)
  21. {
  22. 費用 = saturday_cost;
  23. }
  24. else if(day == 6 || day == 1)
  25. {
  26. 費用 = friday_sunday_cost;
  27. }
  28. else
  29. {
  30. 費用 = monday_to_thursday_cost;
  31. }
  32.  
  33. // 追加のゲストに対して追加料金を請求する
  34. if(Guest_Count > 50)
  35. {
  36. extra_guests = input。Guest_Count - standard_guests;
  37. 費用 = 費用 + cost_per_extra_guest * extra_guests;
  38. }
  39.  
  40. // イベント時間数を計算する
  41. event_hours = ((input。Event_End_Time - input。Event_Start_Time)) / (1000 * 3600);
  42.  
  43. // 追加時間に対して追加費用を請求する
  44. if(event_hours > 5)
  45. {
  46. extra_hours = event_hours - standard_hours;
  47. 費用 = 費用 + cost_per_extra_hour_per_guest * extra_hours * input。Guest_Count;
  48. }
  49. input。Total_Cost = 費用;
  50. }

次に、 ゲスト件数 項目と 開始時間 項目の入力に基づいて合計費用を再計算します。これは、ユーザーがゲスト件数や開始時間を再入力した場合でも、正しい 合計費用 が見積もられるようにするためです。
 


 
7. Deluge エディターで、 手順 5 と同じ Deluge スクリプトを保存します。

動作を確認する


注意点

  • このチュートリアルでは、日付、時間、イベントの参加人数に基づく複雑な料金体系で貸し出される 1 つのパーティーホールの費用計算方法を説明しています。そのため、簡略化のために、基本料金はスクリプト内にハードコードされています。同様の料金体系だが料金が異なる複数のパーティーホールにこのスクリプトを適用するには、基本料金と追加料金を管理用フォームに保存し、 料金を取得 して、選択されたパーティーホールに応じて必要なタイミングで使用してください。
     
  • このチュートリアルでは、開始時間と終了時間の時間差は、 hoursBetween 組み込み関数ではなく、数式を使用して計算しています。これは、この関数の想定された動作が、分の差に基づいて時間値を四捨五入せず、かつ正確な小数値も返さないためです。

    例:
     
    start_time = '18-Dec-2019 07:00:00';
    end_time = '18-Dec-2019 08:59:59';
    total_hours = hoursBetween(start_time, end_time);

    この場合、 total_hours の値は 1 となりますが、実際の時間差は 1 時間 59 分です。そのため、 hoursBetween 関数を使用すると、イベントが 1 時間 59 分続いた場合でも、顧客には 1 時間分の料金しか請求されません。

  • Zoho Creator 以外のサービスでは、 timeBetween 組み込み関数を使用して、2 つの日付時刻値間の正確な時間差を求めることができます。この機能は、今後 Zoho Creator でもサポート予定です。それまでは、次の数式を使用して、 timeBetween 関数と同等の結果を得ることができます。

    start_date = '1-Jun-2021 00:00:07';
    end_date = '24-Jun-2021 12:12:14';
    difference_in_ms = (end_date-start_date);
    時間 = difference_in_ms / (1000 * 60 * 60);
    mins = (difference_in_ms / (1000 * 60)) % 60;
    secs = (difference_in_ms/ 1000)% 60;
    info 時間。floor()+':'+ mins。floor() + ':' + secs。floor();

    Zoho CRM 管理者向けトレーニング

    「導入したばかりで基本操作や設定に不安がある」、「短期間で集中的に運用開始できる状態にしたい」、「運用を開始しているが再度学び直したい」 といった課題を抱えられているユーザーさまに向けた少人数制のオンライントレーニングです。

    日々の営業活動を効率的に管理し、導入効果を高めるための方法を学びましょう。

    Zoho CRM Training



              Zoho Campaigns Resources

                Zoho WorkDrive Resources




                  • Desk Community Learning Series


                  • Digest


                  • Functions


                  • Meetups


                  • Kbase


                  • Resources


                  • Glossary


                  • Desk Marketplace


                  • MVP Corner


                  • Word of the Day


                  • Ask the Experts









                                  Resources

                                  Videos

                                  Watch comprehensive videos on features and other important topics that will help you master Zoho CRM.



                                  eBooks

                                  Download free eBooks and access a range of topics to get deeper insight on successfully using Zoho CRM.



                                  Webinars

                                  Sign up for our webinars and learn the Zoho CRM basics, from customization to sales force automation and more.



                                  CRM Tips

                                  Make the most of Zoho CRM with these useful tips.