iDempiere 税カテゴリの使い方|会計 操作マニュアル・技術仕様
This content is not available in your language yet.
📖 会計の全体像: 会計の全体図 も合わせてご覧ください。
税カテゴリは、品目や料金タイプに適用する税の分類を定義するマスタです。各品目は必ず 1 つの税カテゴリに紐づき、伝票作成時にはこのカテゴリ配下の税率(Tax Rate)から適用税率が自動決定されます。
📌 ポイント: 税率は品目に直接設定するのではなく「品目 → 税カテゴリ → 税率」の 2 段階で決まります。消費税率の改定時は税カテゴリ配下に新しい適用開始日の税率を追加するだけで、全品目に自動反映されます。
税カテゴリでできること
Section titled “税カテゴリでできること”- 税の分類(標準税率・軽減税率・非課税等)の定義
- カテゴリ配下の税率(Tax Rate)の登録・適用開始日(Valid from)管理
- デフォルト税率の指定(カテゴリ内で 1 件のみ)
- 販売用・購買用・両用(SO/PO Type)の税率使い分け
- 伝票単位課税/明細単位課税の切り替え(Document Level)
- 複数税率を合算するサマリ税(親税率+子税率)の構成
税カテゴリはシンプルな 3 タブ構成です。
| タブ名 | テーブル | 項目数 | 役割 |
|---|---|---|---|
| 税金カテゴリ | C_TaxCategory | 約6項目 | 税の分類(名称・デフォルトフラグ) |
| Tax Rate | C_Tax | 約25項目 | 実際の税率(率・適用開始日・地域条件等) |
| 翻訳 | C_TaxCategory_Trl | 約8項目 | 多言語対応の翻訳 |
💡 ヒント: 国内取引のみの運用であれば、Tax Rate タブで使うのは「名称・税カテゴリ・適用開始日・税率・デフォルト」程度です。国・地域・国グループの項目は越境取引の税率判定に使用します。
基本操作手順
Section titled “基本操作手順”graph TD
A["🚀 メニューから開く<br/>会計管理 > 会計設定 > 税カテゴリ"] --> B["➕ 税カテゴリを新規作成<br/>(例: 標準税率 / 軽減税率)"]
B --> C["📋 Tax Rate タブへ移動"]
C --> D["💰 税率を登録<br/>(名称・税率・適用開始日)"]
D --> E{デフォルト税率?}
E -->|Yes| F["✅ デフォルトにチェック<br/>(カテゴリ内で1件のみ)"]
E -->|No| G["💾 保存"]
F --> G
G --> H["🔗 品目マスタ・料金タイプに<br/>税カテゴリを設定"]
アクセス方法
Section titled “アクセス方法”メニューから「会計管理 > 会計設定 > 税カテゴリ」を開きます。
- ツールバーの「新規」ボタンをクリック
- 税金カテゴリタブで基本情報を入力:
- 名称: カテゴリ名(例:
標準税率、軽減税率) - デフォルト: 品目登録時に初期値とする場合にチェック
- 名称: カテゴリ名(例:
- 「保存」をクリック
- 「Tax Rate」タブに移動し、税率を登録:
- 名称: 税率名(例:
消費税10%) - 税率(Rate): 税率をパーセントで入力(例:
10) - 適用開始日(Valid from): この税率が有効になる日付
- SO/PO タイプ: 両方/販売のみ/購買のみ
- デフォルト: カテゴリ内の標準税率とする場合にチェック
- 名称: 税率名(例:
- 「保存」をクリック
⚠️ 注意: 同じ税カテゴリ内でデフォルト税率にできるのは 1 件だけです。2 件目にデフォルトを付けて保存するとエラー(OnlyOneTaxPerCategoryMarkedDefault)になります。
項目リファレンス
Section titled “項目リファレンス”Tax Rate タブ(主要項目)
Section titled “Tax Rate タブ(主要項目)”| 項目名 | 必須 | 型 | 説明 |
|---|---|---|---|
| 名称 | 必須 | 文字列 | 税率の名称 |
| 税カテゴリ | 必須 | 選択 | 所属する税カテゴリ |
| 適用開始日 | 必須 | 日付 | この税率が有効になる日(税率改定対応) |
| 税率(Rate) | 必須 | 数値 | 税率(%) |
| デフォルト | 必須 | チェック | カテゴリ内の標準税率(1件のみ) |
| SO/PO タイプ | 必須 | リスト | 販売用/購買用/両用 |
| 伝票レベル | 必須 | チェック | 伝票合計で課税(オフなら明細ごと) |
| 販売税 | 必須 | チェック | 付加価値税ではなく売上税として扱う |
| サマリレベル | 必須 | チェック | 複数税率の合算用の親税率 |
| 親税率 | - | 選択 | サマリ税を構成する場合の親税率 |
| 税表示 | - | 文字列 | 帳票に印字する短縮表記(例: 10%) |
| SO 非課税 | 必須 | チェック | 非課税取引用の税率 |
| 国/地域/国グループ | - | 選択 | 越境取引の税率判定条件 |
全項目の一覧は 画面リファレンス を参照してください。
よくある質問(FAQ)
Section titled “よくある質問(FAQ)”Q. デフォルト税率を 2 つ設定するとどうなりますか?
Section titled “Q. デフォルト税率を 2 つ設定するとどうなりますか?”保存時にエラーになります。MTax.beforeSave() が同一税カテゴリ内の他のアクティブな税率にデフォルトが付いていないかを検証しており、既にデフォルト税率が存在する場合は保存できません。デフォルトを移す場合は、先に既存税率のデフォルトを外してください。
Q. 消費税率の改定にはどう対応しますか?
Section titled “Q. 消費税率の改定にはどう対応しますか?”既存税率を書き換えるのではなく、同じ税カテゴリに新しい適用開始日(Valid from)の税率を追加します。iDempiere は伝票日付時点で有効な税率を自動選択するため、過去伝票は旧税率のまま、改定日以降の伝票には新税率が適用されます。
Q. サマリ税(複合税)とは何ですか?
Section titled “Q. サマリ税(複合税)とは何ですか?”「サマリレベル」をチェックした税率を親とし、子税率の「親税率」に指定することで複数の税を合算して適用できます(例: 国税+地方税)。なお、サマリレベルをチェックした税率自身に親税率を設定しても、保存時に自動でクリアされます(MTax.beforeSave() の制御)。
Q. 税率の会計設定(勘定科目)はどこで行いますか?
Section titled “Q. 税率の会計設定(勘定科目)はどこで行いますか?”税率を新規保存すると、MTax.afterSave() が会計スキーマのデフォルトから税の会計レコード(C_Tax_Acct)を自動生成します。勘定科目の調整は税率レコードの会計タブ(Accounting)で行います。
- 品目マスタの使い方(品目への税カテゴリ設定)
- 料金タイプの使い方
- 勘定科目マスタの使い方
- 画面リファレンス: 税カテゴリ
🛠 技術仕様(開発者向け)
税カテゴリは C_TaxCategory テーブル(MTaxCategory クラス・115行)、税率は C_Tax テーブル(MTax クラス・432行)に格納されます。MTax は ImmutablePOSupport パターンのキャッシュ参照(MTax.get())を提供し、税額計算(calculateTax())の中核を担います。どちらも Document 型ではありません。
アーキテクチャ概要
Section titled “アーキテクチャ概要”classDiagram
class MTaxCategory {
+getDefaultTax() MTax
}
class MTax {
+get(ctx, C_Tax_ID) MTax
+getAll(ctx) MTax[]
+getChildTaxes(requery) MTax[]
+getPostals(requery) MTaxPostal[]
+isPostal() boolean
+isZeroTax() boolean
+calculateTax(amount, taxIncluded, scale) BigDecimal
#beforeSave(newRecord) boolean
#afterSave(newRecord, success) boolean
}
class X_C_Tax {
<<generated>>
}
class X_C_TaxCategory {
<<generated>>
}
MTax --|> X_C_Tax
MTaxCategory --|> X_C_TaxCategory
MTaxCategory --> MTax : getDefaultTax
MTax --> MTax : parent-child (summary)
パッケージ: org.compiere.model
ソースファイル: org.adempiere.base/src/org/compiere/model/MTax.java / MTaxCategory.java
関連DBテーブル
Section titled “関連DBテーブル”C_TaxCategory(税カテゴリ)
Section titled “C_TaxCategory(税カテゴリ)”| カラム名 | 型 | 必須 | 説明 | 備考 |
|---|---|---|---|---|
| C_TaxCategory_ID | ID | PK | 税カテゴリID | 主キー |
| AD_Client_ID / AD_Org_ID | TableDirect | Y | クライアント/組織 | |
| Name | String(60) | Y | 名称 | |
| Description | String(255) | N | 説明 | |
| IsDefault | YesNo | Y | デフォルト | 品目登録時の初期値 |
| CommodityCode | String(20) | N | 商品コード | ウィンドウ非表示 |
C_Tax(税率)
Section titled “C_Tax(税率)”| カラム名 | 型 | 必須 | 説明 | 備考 |
|---|---|---|---|---|
| C_Tax_ID | ID | PK | 税率ID | 主キー |
| C_TaxCategory_ID | TableDirect | Y | 税カテゴリFK | |
| Name | String(60) | Y | 名称 | |
| Rate | Number | Y | 税率(%) | |
| ValidFrom | Date | Y | 適用開始日 | 伝票日付で有効税率を判定 |
| IsDefault | YesNo | Y | デフォルト | カテゴリ内1件のみ(beforeSave検証) |
| SOPOType | List(1) | Y | SO/POタイプ | デフォルト B(両方) |
| IsDocumentLevel | YesNo | Y | 伝票レベル課税 | |
| IsSalesTax | YesNo | Y | 販売税 | デフォルト N |
| IsSummary | YesNo | Y | サマリレベル | 複合税の親 |
| Parent_Tax_ID | Table | N | 親税率 | サマリ税構成用 |
| IsTaxExempt | YesNo | Y | 非課税 | |
| RequiresTaxCertificate | YesNo | Y | 非課税証明要求 | |
| TaxPostingIndicator | List(1) | N | 転記インジケータ | デフォルト 0 |
| C_Country_ID / C_Region_ID 他 | Table | N | 国・地域条件 | 越境取引の判定 |
| C_TaxProvider_ID | TableDirect | N | 税プロバイダ | 外部税計算連携 |
ビジネスロジック
Section titled “ビジネスロジック”MTax.beforeSave():
- デフォルト一意性:
IsDefault=Yで保存する場合、同一税カテゴリ内の他のアクティブ税率にIsDefault='Y'が存在すればエラー(OnlyOneTaxPerCategoryMarkedDefault) - サマリ税の整合性:
IsSummary=Yの場合、Parent_Tax_IDを強制的に 0 にリセット
MTax.afterSave():
- 新規保存時、
insert_Accounting("C_Tax_Acct", "C_AcctSchema_Default")で会計スキーマのデフォルトから税会計レコードを自動生成
MTax.calculateTax(amount, taxIncluded, scale):
- 税抜/税込金額から税額を算出。
isZeroTax()(税率 0)の場合は即座に 0 を返却。伝票の税額計算(MOrderTax/MInvoiceTax)から呼ばれます
拡張ポイント
Section titled “拡張ポイント”- Model Validator:
C_Tax/C_TaxCategoryへの独自制約(例: 税率変更の承認制)は OSGi Model Validator のTYPE_BEFORE_CHANGEで追加します - 税プロバイダ: 外部税計算サービスとの連携は
C_TaxProvider_IDと Tax Provider 拡張ポイントで実装できます(標準実装はMTaxProvider) - このテーブルに標準の callout はありません(gw_column.tsv 上 callout 定義なし)
関連ドキュメント
Section titled “関連ドキュメント”iDempiereカスタマイズのご相談
Section titled “iDempiereカスタマイズのご相談”税率改定対応や独自の税判定ロジック(軽減税率の自動判定等)は、コア改変なしの Model Validator / Tax Provider 拡張で実現できます。
As-Link株式会社では、OSGiプラグインによる安全なカスタマイズを提供しています。