Closed IkumaTadokoro closed 2 years ago
Closes #99
住民税、国民健康保険税に対する端数処理は地方税法で決まっている。 ロジックの明確化と処理の共通化のために端数処理をモジュールとして定義する。
LocalTaxLaw
地方税の確定金額に百円未満の端数があるとき、又はその全額が百円未満であるときは、その端数金額又はその全額を切り捨てる。ただし、政令で定める地方税の確定金額については、その額に一円未満の端数があるとき、又はその全額が一円未満であるときは、その端数金額又はその全額を切り捨てる。
「確定金額」については、地方団体の徴収金の端数計算等についての「5. 確定金額の意義」を根拠として、「最終的に発生する支払金額」と判断し、途中計算(国民健康保険の医療分や介護分など)には適用せず、国民健康保険料・住民税の年間支払額に適用することとした。
端数処理のケースは3通り
忠実に実装するのであれば、2の条例で定めるケースへの対応として、任意の桁数を引数にとる。 今回はアプリとして100円未満 or 1000円未満の切り捨てにのみ対応することとしたこと、LocalTaxRawに法律関連の責務を閉じ込める目的で、フラグによる限定的な実装とした。
PR提出前のチェックリスト:
main
bin/lint
bin/rspec
Closes #99
目的
住民税、国民健康保険税に対する端数処理は地方税法で決まっている。 ロジックの明確化と処理の共通化のために端数処理をモジュールとして定義する。
やったこと
LocalTaxLaw
として定義申し送り事項
第二十条の四の二 第三項
「確定金額」については、地方団体の徴収金の端数計算等についての「5. 確定金額の意義」を根拠として、「最終的に発生する支払金額」と判断し、途中計算(国民健康保険の医療分や介護分など)には適用せず、国民健康保険料・住民税の年間支払額に適用することとした。
第二十条の四の二 第六項
端数処理のケースは3通り
忠実に実装するのであれば、2の条例で定めるケースへの対応として、任意の桁数を引数にとる。 今回はアプリとして100円未満 or 1000円未満の切り捨てにのみ対応することとしたこと、LocalTaxRawに法律関連の責務を閉じ込める目的で、フラグによる限定的な実装とした。
PR提出前のチェックリスト:
main
ブランチに追随している (そうでなければrebaseすること)bin/lint
とbin/rspec
を実行した