【JPIERE-0165】明細行毎の消費税額の保持とIJPiereTaxProvider

 オープンソースのERP iDempiereは、標準機能で"明細行単位の消費税額計算"と"伝票単位の消費税額計算"の両方が可能です。しかしながら、その税額計算の結果として保持する税額は税金情報マスタ(C_Tax_ID)単位にサマリーされています。そのため、明細行毎の消費税を把握したい場合は再計算が必要になります。

 そこで、JPiereでは、明細行毎の消費税額を計算し、その結果も明細行に保持するようにカスタマイズしました。この事により、明細行毎の消費税額を簡単に確認する事ができます。

明細行毎の消費税額計算‐受注伝票明細
明細行毎の消費税額計算‐受注伝票明細

【注意】伝票単位の消費税額計算を行っている場合の注意点

 消費税の計算上、"伝票単位で消費税額を計算する(伝票の合計金額に対して消費税額を計算する)"のと"明細単位で消費税額を計算する(明細毎に消費税額を計算し、その金額を合計する)"のとでは、端数処理の扱いにより消費税金額が異なる場合があります。

 そのため、伝票単位で消費税額を計算する場合は、このカスタマイズで計算した明細単位の消費税額は、参考値として下さい。

カスタマイズ情報

追加エレメント

 下記の2つのエレメントをC_OrderLineとC_InvoiceLineのそれぞれのテーブルに追加しています。

◆JP_TaxAmt(税額)

◆JP_TaxBaseAmt(課税標準額)

 

追加クラス

◆IJPiereTaxProviderFactory

◆JPiereBasePluginJPiereTaxProviderFactory

◆IJPiereTaxProvider

 

関連するクラス

◆JPiereTaxProvider

 IJPiereTaxProviderをInterfaceクラスに追加し、既に実装してあったcalculateTax (MTax m_tax, BigDecimal amount, boolean taxIncluded, int scale, RoundingMode roundingMode) クラスをpublicにしました。

 iDempiereの標準のTaxProviderと税額計算ロジックを共有する事により、税額計算の方法を統一させる事ができます。

◆JPiereOrderLineModelValidator

 受注伝票明細/発注伝票明細の保存時に呼び出されて、明細単位の消費税額と課税標準額を計算し、JP_TaxAmtとJP_TaxBaseAmtに保存します。

◆JPiereInvoiceLineModelValidator

 売上請求伝票明細/仕入請求伝票明細の保存時に呼び出されて、明細単位の消費税額と課税標準額を計算し、JP_TaxAmtとJP_TaxBaseAmtに保存します。

関連するコンテンツ

説明資料