4

Mac用のPOSソフトウェアを作成しており、税務エンジンの刷新を目指しています。今では非常にシンプルで、名前、コード、料金で構成される税金がすべての製品に個別に適用されます。これで十分な人もいますが、より高度な状況に対応するためのリクエストがたくさんあります。例としては、米国の市/郡の消費税、カナダの複合(積み上げ)税、フランスの環境税、ニューヨークの奢侈税があります。

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

以前にこのようなものを作った人からのアドバイスや、それをエレガントに解決しようとするプロジェクトの例を探しています。

4

3 に答える 3

2

私の提案は、データベーステーブルが何に適しているか (値を保存する) にはデータベーステーブルを使用し、それらが何に適しているか (ビジネスロジック) にはルールを使用することです。私は確かに、税率や管轄区域のリストなどを規則に入れるつもりはありません。それらは表にすべきです。私がルール エンジンを使用する目的は、どのレートをどのトランザクションに適用するかを決定するロジックを定義することです。たとえば、X 州に拠点を置く会社から、Y 州から 3 つの異なる場所に発送される一連の製品をオンラインで購入した場合、取引のどの部分にどの税率が適用されるのでしょうか? ルールとデータベース テーブルのこの組み合わせは非常に一般的です。テーブルはレポート作成などに役立ちますが、ルールは正しいものを検索することを確認します。たとえば、カリフォルニアの DMV はこれを車両登録料で行いました。さまざまな料金はすべてデータベースに保存され、どの車にどの料金が適用されるかを決定するルールはルールベースで管理されます。すべてをルールに入れようとすると、適切にレポートすることができなくなります。また、すべてをデータベース テーブルに入れようとすると、すべての例外とコーナー ケースを管理するために数十のテーブルが必要になります。JT

于 2009-08-27T23:58:10.880 に答える
1

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

例:

  • 管轄区域:州、郡、国、都市などのリスト。
  • 製品:明らか
  • ストア:販売元の場所のリスト
  • StoreJurisdiction(StoreID、JurisdictionID):ストアが税金を徴収する責任がある管轄区域のリスト
  • ProductTaxCode(ProductID int、TaxCodeID int):税金を目的とした製品のタイプ:基本、豪華など。
  • JurisdictionTaxCodeRate(JurisdictionID、TaxCodeID、InterestRate、RateType):管轄区域と税コードの該当する組み合わせごとに、適用される税率と税率のタイプ(複合、単純など)を指定します。

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

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

これには、インターネット購入、卸売購入、および販売が何らかの形で税金を免除されているか、顧客がそれらを支払う責任があるその他の状況のた​​めに、いくつかの調整が必要になる場合があります。また、店舗ではなく顧客の場所が税率を決定する状況に合わせて調整する必要があります。

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

于 2009-08-26T20:35:05.883 に答える
1

以下は、コロラド州デンバー大都市圏の「ホーム ルール」都市の例です。

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

小売業者として、税金の支払いを別の場所に送る必要がある場合もあります。「ホーム ルール」都市ではない都市 (これはおそらくコロラド州にのみ適用される特別な用語ですが、おそらくすべての州に同様に特別な用語がいくつかあります) では、すべての税金を州に送金します。その後、関係者に配布します。コロラド州には、特定の利益のために消費税を徴収することが許可されている「特別税地区」があるという特徴があります (例のリンクでは、RTD は公共交通地区であり、「インベスコ フィールド」はデンバー ブロンコスがプレーするスタジアムです)。

このスレッドでのタレント氏の回答を拡張するには、税金が別の場所に行く可能性があることを表す何らかの方法を管轄テーブルに含める必要もあります。

于 2009-08-26T21:07:25.567 に答える