既存のプロジェクトに「消費税アドオン」を組み込んで利用する方法を説明します。

プロジェクトに「消費税(JSHTAX)」アドオンを組み込み、これを使うモデル「販売商品」を用意してみます。

図1 消費税率モデルと販売商品モデル

消費税率モデル

消費税率モデルは「税率開始日」と「消費税率」から構成されています。「税率開始日」は主キーです。

図2 消費税率モデルの内容

販売商品モデル

今回、用意する販売商品モデルに、この消費税率モデルを利用します。「価格(税抜き)」を入力すると、「価格(税込み)」が計算されるものとします。このとき「現在の消費税率」項目は、「隠し項目本日日付」の値に応じて自動的に設定されるように工夫します。

図3 販売商品モデルの内容

隠し項目税率ID

消費税率モデルの主キー項目「税率開始日」を参照します。絞り込みルールを適用するため、リストボックス形式とします。

図4 消費税率モデルを参照する

「隠し項目税率ID」は入力時および出力時を隠し項目とします。

図5 隠し項目としての設定 (1)
図6 隠し項目としての設定 (2)

この項目に絞り込み設定を適用します。

ここでは(同じモデル内に用意された)「隠し項目本日日付」の値より小さいものだけを絞り込むようにし、さらに絞り込んだ結果を主キー「税率開始日(STARTDATE)」の降順で並び替えた上で、その先頭の値を取得するようにします。

図7 絞り込み設定 (1)
図8 絞り込み設定 (2)

隠し項目本日日付

「隠し項目本日日付」は日付関数TODAY()を指定します。また、データベースには保存しません。さらに入力時および出力時を隠し項目とします。(図5,図6の設定を参考にしてください。)

図9 隠し項目本日日付項目の設定

現在の消費税率

消費税率モデルの参照連動で求めます。これによって、まず「隠し項目税率ID」が定まったあと、この値をキーにして実際の税率が定まるという動作になります。

図10 現在の消費税率項目の設定

価格(税込み)

今回の例では「価格(税抜き)」を入力として、「価格(税込み)」は計算式で求めます。 小数点の計算は、MUL関数やADD関数を用いることで演算誤差を抑えることができます。

VALUE(
  MUL(
    ${priceWithoutTax}, 
    ADD(
      "1.0",
      ${taxRate}
    )
  )
)
図10 計算式の設定

メニューへの登録

消費税率モデルと販売商品モデルをそれぞれメニューに登録します。ここでは、消費税率モデルを「共通処理」のタブに含め、販売商品モデルは新しく用意したタブ「販売管理」に含めた例を示します。

図11 メニューへの登録 (1)
図12 メニューへの登録 (2)

ビルドしたアプリケーションの動作を確認します。消費税率モデルは、アドオン時に含まれる初期データをインポートしてください。

図13 消費税率モデルの初期データ

データをインポートすると、次のような一覧を確認することができます。

図14 消費税率モデルの初期データ

販売商品モデルの新規登録を行ってみます。「価格(税抜き)」に数値を入力すると、「価格(税込み)」が計算によって求まることがわかります。消費税率は適切に設定されます。

図15 販売商品モデルの新規登録 (1)
図16 販売商品モデルの新規登録 (2)

ここでは消費税率を自動的に算出するようにしましたが、日付をTODAY関数に代えて入力方式とすることで、その時点の消費税率が自動的に適用されます。

図17 販売商品モデルの新規登録 (3) 日付を入力方式に代える

この方法を応用することで、日付別に異なるマスタ値を自動設定させることができます。