平成31年(2019年)10月1日から、消費税及び地方消費税の税率が 8% から 10% に引き上げられると同時に、消費税の軽減税率制度が実施されます。軽減税率が適用されるのは飲食料品と新聞です。飲食料品は、「食品表示法に規定する食品」(酒税法に規定する酒類を除く)です。
参考
今回はこの軽減税率をテーマとして演習を行います。
なお、本演習は TDD を体験することを主眼としていますので、 プログラミングの速さを競っているのではない 点にご注意ください。 機能を粗く速く実装することよりも、テストを書いて動かすことによるフィードバックを受けながら、 リファクタリングを忘れずに着実に進めていくことの方が、本演習では重要です。
短縮URL: https://bit.ly/2WRl2Dy
商品が軽減税率の対象であるかどうかを答える機能をテスト駆動で作成しましょう
例
オロナミンC -> true
リポビタンD -> false
品目例
food 食料品 ※軽減税率対象
beverage 飲料品 ※軽減税率対象
liquor 酒類
drug 医薬品
quasi_drug 医薬部外品
商品例
手巻直火焼き紅しゃけ
食料品
税抜価格 139円
大きなおむすびマヨネーズ
食料品
税抜価格 186円
からあげ棒
食料品
税抜価格 114円
キリン 生茶 555ml ペットボトル
飲料品
税抜価格 140円
オロナミンC
飲料品
税抜価格 105円
キリンチューハイ氷結グレープフルーツ350ml缶
酒類
税抜価格 141円
ストロングゼロ〈ダブルグレープフルーツ〉350ml缶
酒類
税抜価格 141円
新ルルA錠s 50錠
医薬品
税抜価格 871円
リポビタンD
医薬部外品
税抜価格 146円
複数の商品をそれぞれ複数個購入し、税込の合計金額を求めましょう。
軽減対象商品の税率は 8%、軽減対象外の商品の税率は 10% です(端数は切り捨てとします)。
例1
「手巻直火焼き紅しゃけ(食料品)」を2個 => 税込300円
「キリンチューハイ氷結グレープフルーツ350ml缶(酒類)」を3本 => 税込465円
合計(税込) 765円
※ GUI/CUI は不要で、 765 という integer が返ってくれば OK です
例2
「大きなおむすびマヨネーズ(食料品)」を3個 => 税込602円
「キリン 生茶 555ml ペットボトル(飲料品)」を4本 => 税込604円
「新ルルA錠s50錠(医薬品)」を1瓶 => 税込958円
合計(税込) 2,164円
※ GUI/CUI は不要で、 2164 という integer が返ってくれば OK です
適格簡易請求書(小売業、飲食店業)においては、税率毎に合計した対価の額を記す必要があります
※ 引き続き GUI/CUI は不要です。どういう結果を返すべきかモデリングしましょう。
例1
「手巻直火焼き紅しゃけ(食料品)」を2個 => 税込300円
「キリンチューハイ氷結グレープフルーツ350ml缶(酒類)」を3本 => 税込465円
合計金額(税込) 765円
8% 対象商品合計金額(税込) 300円
内消費税額 22円
10% 対象商品合計金額(税込) 465円
内消費税額 42円
例2
「大きなおむすびマヨネーズ(食料品)」を3個 => 税込602円
「キリン 生茶 555ml ペットボトル(飲料品)」を4本 => 税込604円
「新ルルA錠s50錠(医薬品)」を1瓶 => 税込958円
合計(税込) 2,164円
8% 対象商品合計金額(税込) 1206円
内消費税額 88円
10% 対象商品合計金額(税込) 958円
内消費税額 87円
短縮URL: https://bit.ly/2WRl2Dy