ここ南アフリカでは、消費税とほぼ同じ付加価値税 (VAT) があり、現在は 14% に固定されていますが、いつでも変更される可能性があります。
複数のInvoice Linesで構成される請求書 (不変) に VAT を含める必要があります。各行Product
は、ブール型のプロパティ を持つ を参照しておりIsTaxable
、ほとんどすべての製品が課税対象です。
税前の価格をデータベースに保存したくありません。これは、顧客が支払う実際の価格を読み取るのが難しくなり、それらの価格を表示するすべての場所で、忘れずに税を追加する必要があるためです。また、VAT 率が変更された場合、この特定のビジネスでは、すべての価格が自動的に変更されることは望ましくありません。
したがって、税の逆算が有効な方法であり、おそらく珍しいことではないと思います。請求書の合計は、すべての請求書明細の合計であり、明細の割引が含まれており、税込みである必要があります。したがって、請求書の合計自体は税込みです。
TaxTotal = InvoiceTotal / (1 + TaxRate),
はInvoiceTotal
税込価格で、TaxRate == 0.14
請求書は一度発行すると変更できないため (不変)、次のことを行う必要があります。
- 変更されない単一の
Tax
金額をテーブルに保存しますか?Invoices
または... - 請求書明細ごとに税額を保存し、請求書を表示するたびに請求書税の合計を計算しますか?
オプション 2 は、請求書が手動で変更された場合に税金が正しく計算されるため、DBA の観点からはより安全に見えますが、請求書がすでに発行されている場合は、依然として不整合の問題が生じます。オプション 1 に固執すると、1 つの明細項目に対して税を表示することはできませんが、税合計の管理と集計計算が容易になりますが、変更された場合は矛盾が生じます。
データが複製されるため、両方を行うことはできません。
- 正しい方法はどれですか? それとも、税の逆算は本当に悪い考えなのでしょうか?