質問

私たちは Mac 用の POS ソフトウェアを作成しており、税務エンジンの刷新を検討しています。税金は名前、コード、税率で構成されており、各製品に個別に適用できるようになりました。一部の人にとってはこれで十分ですが、より高度な状況に対処したいという要望がたくさんありました。例としては、米国の市/郡売上税、カナダの複合(スタック)税、フランスの環境税、ニューヨーク市の贅沢税などがあります。

私たちはこれらの税金が持つ特徴のほとんどを特定しており、一種のルールエンジンベースの実装に傾いています。すべてのケースをサポートする必要はありませんが、必要に応じて拡張できるようにしたいと考えています (再度の書き換えを避けるため)。

私たちは、以前にこのようなものを構築した人からのアドバイス、または同じ問題をエレガントな方法で解決しようとするプロジェクトの例を求めています。

役に立ちましたか?

解決

データベーステーブルと結合のセットをお勧めします。

例:

  • 管轄:州、郡、国、都市などのリスト。
  • 製品:明らか
  • :販売元の場所のリスト
  • 店舗管轄(ストアID、管轄ID):店が税金を徴収する責任を負う管轄区域のリスト
  • 製品税コード(ProductID int、TaxCodeID int):税金の対象となる製品の種類:ベーシック、ラグジュアリーなど。
  • 管轄区域税コード税率(JurisdictionID、TaxCodeID、InterestRate、RateType):管轄区域と税法の該当する組み合わせごとに、適用される税率と税率の種類 (複利、単純など) を指定します。

適用される税金のリストを見つけるために必要なのは、 内部結合 ストア、その管轄区域、管轄区域の税コード、および製品の税コード。

ProductTaxCode をビューとして定義すると、特別な税コードが提供されない限り、すべての製品がデフォルトの TaxCode を受け取るようになります。TaxCode を抽象化すると、製品 (たとえば「食品」) に関する同じメタデータをさまざまな方法でさまざまな地域に適用できます。特定の管轄区域に独自の「食品」の定義がある場合は、管轄区域固有のコードを追加し、必要に応じて製品に適用するだけです。

これには、インターネット購入、卸売購入、および販売が何らかの形で税金から免除されたり、顧客が税金を送金する責任を負うその他の状況では、多少の調整が必要になる場合があります。また、店舗ではなく顧客の所在地が税率を決定する場合には微調整が必​​要になるだろう。

その他の調整:たとえば、ここテキサス州では、州税と地方税が徴収されない「免税」週末があります。 いくつかの 個々の商品の販売価格が 100 ドル未満の商品クラス。学用品や衣料品などを安く提供するのが狙いだ。新年度に向けて学校へ向かう子どもたちへ。この種の調整は、計画可能な限り、将来的に実行される各 JurisdictionTaxCodeRate の日付範囲テーブルを用意することで実装できます。

他のヒント

私の提案は、彼らが(ビジネスロジック)に適しています何のためにとルール(値を格納する)のに適しています何のためにデータベース・テーブルを使用することです。私は確かにルールに管轄地域の税率やリストのようなものを入れていないだろう - それらは表にする必要があります。私は、どのトランザクションに適用する割合を決定するロジックを定義しているため、ルールエンジンを使用します。ですから、例えば、私は、3つの異なる場所に状態Yから船は、どのような税率適用することを国家Xに基づいて、会社からのオンライン製品のセットを購入した場合、トランザクションのどの部分か? ルールとデータベーステーブルのこの組み合わせは非常に一般的である - ルールはたとえばなどをレポート内のテーブルの援助は、カリフォルニア州DMVは、車両登録料でこれをやっている間、あなたが右の物事を見て確認してください - すべての様々な手数料はに格納されていますデータベースながら車のルールベースで管理されているために適用される料金を決定するルール。 あなたがしようとすると、ルールにすべてをかける場合は、十分に報告することはできません、あなたは試してみて、データベーステーブル内のすべてを置く場合は、すべての例外とコーナーケースを管理するためのテーブルの数十になってしまいます。 JT

ここデンバーでの「ホームルール」の街、CO首都圏の一例です。

http://www.c3gov.com/pages/about/division_salestax.html

あなたは、小売業者として、また別の場所に税金の支払いを送信する必要があるかもしれません。 (おそらく唯一のコロラド州に適用される特別な用語であるが、その後、おそらくすべての州がそれのようないくつかの均等に特殊な用語を持っている)、「ホームルール」の都市ではありません都市について、あなたは誰でしょう状態にすべての税金の支払いをお送りしますその後、関係者にそれらを扱います。コロラド州は、特定の利益のために売上税を徴収することが許可されている「特別税区」がある機能がある(例えば、リンクの上を、RTDは、公共交通機関の地区で、「インベスコフィールドは、」デンバー・ブロンコスがプレイスタジアムです)。

このスレッドにミスタータレントの回答時に展開するには、あなたはまた、管轄のテーブルに税は別の場所に行くことを表すいくつかの方法を含める必要があります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top