« 「昨日までJavaJavaしてた人がいきなりExcelのVBAを実装する羽目になったときのためのメモ」の記事が役に立つ | トップページ | WindowsOS上でbash環境を使うためのツールのリンク »

2016/04/28

消費税の端数処理ではまった

久しぶりに、端数のまるめ処理ではまったのでメモ。
ラフなメモ書き。

【参考】
切り上げた数値を元に戻すには - 数学 | 【OKWAVE】

消費税の端数処理は影響が大きい?!総額表示と積み上げ計算の復習を!

消費税の端数処理は影響が大きい。
よくある例は、税込価格から消費税を抜いた税抜きの販売価格を計算した後、税抜きの販売価格から消費税を加味した税込価格に戻す処理で、四捨五入で単純に計算すると、端数が合わなくなってしまう。
上記の記事のように、元に戻す時は、切り捨てにする。

たかが1円程度の違いと言っても、大規模店舗で商品を大量仕入したり、工場で原材料を大量仕入したりする時は、数十万円の違いが出たりする。
小売業や製造業では、購買部門の担当者が別途いて、彼らは仕入先と、大量購入するから単価は値引きさせるように交渉しているから、金額にはとてもうるさい。
発注処理は大量仕入れで安く仕入れることで、規模の経済を生かすから、ちょっとしたシステムのバグがユーザ企業のビジネスに大きな影響を与えてしまう。

消費税の計算方法は、実は商品ごとに異なったりする。
普通は、税込価格で表示するように法律で決められているから、税抜価格で安い価格で不当に表示するのは、不正競争防止法などにも引っかかるだろう。

しかし、たとえば、書籍では再販制度があるために、税抜価格で表示していい。
他に、委託販売、試用販売でも似たような事例があるだろう。
つまり、商品の種類ごとに、価格表示の仕様は異なる。

設計SEはその辺の事情も考える必要があるので、普通は別途、計算仕様書なる補足資料を作り、価格表示や消費税の計算に関する仕様をまとめている。
その計算仕様書には、どの場面では、どんな計算式で、四捨五入・切り上げ・切り捨てにするか、という仕様がまとめられている。
開発者は、その計算仕様書を参照しながらシステムを実装していく。
これが、ドメイン知識と呼ばれるものなのだろう。

一方、注意すべき点は、価格計算の要件は法律で決まっているため、システムの仕様も法律の要件に引きずられてしまうことだ。
つまり、消費税に関する法律とか、景品表示法、不正競争防止法などの法律があり、法律がシステムの仕様を決めているし、その仕様は絶対だから変更することもできない。

そして、法律はその時々の政治的事情でコロコロ変わる。
消費税が5%から8%に上がっただけで、たくさんのシステム改修が発生して、ちょっとしたスポット景気になった。
ユーザから見れば、消費税は変わるのだから動的に作っていて当然で、なぜ改修料金を支払わないといけないの、と思ったりする。
だが、古いシステムほどロジックは魑魅魍魎なので、法律がフレキシブルに変わるたびに、システムをいじる手間がかかってくる。
法律の変更に対応できるようなシステム設計、アーキテクチャ設計が必要であるわけだ。

この辺りの業務知識も一度まとめてみたいと思う。

|

« 「昨日までJavaJavaしてた人がいきなりExcelのVBAを実装する羽目になったときのためのメモ」の記事が役に立つ | トップページ | WindowsOS上でbash環境を使うためのツールのリンク »

ERP・財務会計・経済学」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)


コメントは記事投稿者が公開するまで表示されません。



« 「昨日までJavaJavaしてた人がいきなりExcelのVBAを実装する羽目になったときのためのメモ」の記事が役に立つ | トップページ | WindowsOS上でbash環境を使うためのツールのリンク »