本文へ移動
Wagby11
マニュアルのグループを選ぶ

WAGBY11 MANUAL / 10

条件に応じて計算結果を変える

会員割引の有無で金額の計算式を切り替える方法を説明します。

最終更新日:

計算・導出項目の小目次へ

1. このページで伝える機能

区分やスイッチの値に応じて計算結果を変えられます。会員だけ割引する、条件を満たすと手数料を変える、といった業務の判断を計算式へ組み込めます。

使える関数の一覧、演算子、未設定値や丸めの規則、用途ごとの制約は関数と式の仕様を参照してください。

2. Wagby11で実現できること

会員割引がオフのときは、税抜金額をそのまま適用金額にします。

会員割引なしでは、税抜金額と適用金額が同じです。
会員割引なしでは、税抜金額と適用金額が同じです。

数量を3へ変更し、会員割引をオンにして保存すると、税抜金額3,600円の10%引きで、適用金額は3,240円になります。この例では割引後の金額を円単位に四捨五入します。

数量3・会員割引オンに変更した更新画面。
数量3・会員割引オンに変更した更新画面。
条件に応じて10%の会員割引を適用した計算結果。
条件に応じて10%の会員割引を適用した計算結果。

3. AIへの指示例

最小限の指示例

会員の場合は、金額を10%引きにしてください。

AIは会員の判定元、割引前の金額、端数の丸め方を類推して補います。通常時の金額と、割引後のどの段階で丸めるかも伝えると、金額の差を防げます。

より詳細な指示例

CalcQuote.payableAmountを、memberDiscountがtrueならamountの90%を小数0桁で四捨五入し、それ以外はamountと同じ値にしてください。amountがnullなら結果もnullにします。保存時にamountを先に求めてからpayableAmountを求め、数量3・単価1200・割引オンで3240になることを確認してください。
既存のモデル・主キー・項目・データ・権限を保持し、Wagby11のguide・referenceを確認してください。新規モデルには自動採番の主キーと予約属性version、必要なG_ADMINのCRUD権限を用意します。メニューと一般利用者向け操作マニュアルを更新し、設計情報の検証・コード生成・ビルドを完了してから起動し、画面と保存結果を確認してください。

4. 編集されるAppSchemaの例

以下は関連する定義の抜粋です。構文を覚えなくても、何から・いつ値を求め、保存するかをAIへ伝えられます。

entity:
  attributes:
    - name: 適用金額
      name_en: payableAmount
      type: decimal
      precision: 14
      scale: 2
      calc:
        expression: 'amount == null ? null : (memberDiscount == true ? #round(amount * #decimal("0.9"), 0) : amount)'

条件に応じた値は条件 ? 値1 : 値2で指定できます。小数は#decimal、四捨五入は#roundを使います。calc.whenで代入そのものを条件付きにする場合は、更新時に条件を満たさないと保存済みの値を保持するため、目的に合わせて使い分けます。

5. 参考資料

reference:式言語(属性の計算)
designer/docs/appschema/html/reference/16-expression-language.html
reference:利用できる関数
designer/docs/appschema/html/reference/17-expression-functions.html