iDempiere 税金情報マスタの使い方|会計 操作マニュアル・技術仕様
📖 会計の全体像: 会計の全体図 も合わせてご覧ください。
税金情報マスタは、税カテゴリごとに使用する税金とその税率を定義するウィンドウです。受注・請求書の税計算、仮受・仮払税金の転記勘定、複数税の合成(親子税)までを一元管理します。日本の消費税では標準税率 10%・軽減税率 8% などをここで定義します。
📌 ポイント: 伝票の税金は「品目の税カテゴリ × 取引先/組織の地域」からこのマスタの税率が自動選択されます。税率改定時は既存レコードを書き換えず、新しい有効開始日で税率レコードを追加してください。
税金情報マスタでできること
Section titled “税金情報マスタでできること”- 税率の定義(税カテゴリ・有効開始日・レート)
- 売上/仕入区分(販売税・購買税・両方)の設定
- 複数税の合成(サマリ税+子税の親子構造)
- 税金免除・免税証明要求の設定
- 会計スキーマ別の税金勘定(仮受・仮払・税金費用)の設定
- 郵便番号(ZIP)範囲による地域別課税の定義
- 伝票レベル/明細レベルの税計算切替
| タブ名 | テーブル | 項目数 | 役割 |
|---|---|---|---|
| 税金情報 | C_Tax | 約23項目 | 税率の定義(カテゴリ・レート・期間・地域) |
| 会計 | C_Tax_Acct | 約8項目 | 会計スキーマ別の税金勘定 |
| 税金ZIP情報 | C_TaxPostal | 約6項目 | 郵便番号範囲による地域別税 |
| 翻訳 | C_Tax_Trl | 約9項目 | 名称・税テキストの翻訳 |
基本操作手順
Section titled “基本操作手順”graph TD
A["🚀 メニューから開く<br/>会計管理 > 会計設定 > 税金情報マスタ"] --> B["➕ 新規で名称・税カテゴリ<br/>・有効開始日を入力"]
B --> C["🔢 レートを入力<br/>(例: 10)"]
C --> D{複数税の合成?}
D -->|Yes| E["📁 サマリレベルの親税を作成<br/>→ 子税で親になる税金情報を指定"]
D -->|No| F["🏷️ 売上/仕入区分・<br/>デフォルトを設定"]
E --> F
F --> G["📒 会計タブで<br/>仮受/仮払税金勘定を確認"]
G --> H["💾 保存<br/>→ 伝票の税計算に自動適用"]
⚠️ 注意: 税率改定(例: 8%→10%)では、レートの上書きではなく新しい「有効開始日」の税率レコードを追加します。既存伝票の再計算・過去日付伝票の税計算が正しく保たれます。
アクセス方法
Section titled “アクセス方法”メニューから「会計管理 > 会計設定 > 税金情報マスタ」を開きます。
- ツールバーの「新規」ボタンをクリック
- 基本情報を入力:
- 名称: 税の名称(例:
消費税10%) - 税カテゴリ: 品目マスタと紐付く税カテゴリ
- 有効開始日: この税率の適用開始日
- レート: 税率(%)
- 売上/仕入区分: 両方(デフォルト)/ 販売税 / 購買税
- デフォルト: 税カテゴリ内のデフォルト税率にする場合にチェック
- 名称: 税の名称(例:
- 「保存」をクリック
税金勘定の設定
Section titled “税金勘定の設定”- 「会計」タブに移動
- 会計スキーマごとに勘定を設定:
- 仮受税金勘定: 納付すべき税(売上側)
- 仮払税金勘定: 控除可能な税(仕入側)
- 税金費用勘定: 控除不能な税
項目リファレンス
Section titled “項目リファレンス”税金情報タブ(主要項目)
Section titled “税金情報タブ(主要項目)”| 項目名 | 必須 | 型 | 説明 |
|---|---|---|---|
| 名称 | 必須 | 文字列 | 税の名称 |
| 税カテゴリ | 必須 | 選択 | 品目と紐付く税カテゴリ |
| 有効開始日 | 必須 | 日付 | 適用開始日 |
| レート | 必須 | 数値 | 税率(%) |
| デフォルト | 必須 | チェック | 税カテゴリ内のデフォルト税率 |
| 売上/仕入区分 | 必須 | リスト | B=両方 / S=販売税 / P=購買税(デフォルト B) |
| サマリレベル | 必須 | チェック | 複数税を束ねる親税 |
| 親になる税金情報 | - | 選択 | 子税が属する親税 |
| 税金免除 | 必須 | チェック | 免税の税率(レート0で使用) |
| 免税証明必要 | 必須 | チェック | 取引先の免税証明を要求 |
| 伝票レベル | 必須 | チェック | 明細単位でなく伝票単位で税計算 |
| 営業税 | 必須 | チェック | 付加価値税でなく売上税(デフォルト N) |
| 税テキスト(短) | - | 文字列 | 帳票印字用の短縮表記 |
| 国 / 地域 / 国(To) / 地域(To) | - | 選択 | 適用する地域条件 |
全項目は 画面リファレンス: 税金情報マスタ を参照してください。
よくある質問(FAQ)
Section titled “よくある質問(FAQ)”Q. 「デフォルト」をチェックして保存するとエラーになります
Section titled “Q. 「デフォルト」をチェックして保存するとエラーになります”MTax.beforeSave() は、同一税カテゴリ内でデフォルトの税率が既に存在する場合にエラー(OnlyOneTaxPerCategoryMarkedDefault)を返します。デフォルトは 1 カテゴリ 1 件のみです。先に既存レコードのデフォルトを外してください。
Q. 複数の税を合算して課税するには?
Section titled “Q. 複数の税を合算して課税するには?”サマリレベルの親税(概算の合計レート)を作成し、実際の各税率レコードで「親になる税金情報」にその親税を指定します。受注・請求書の明細入力時は親税で概算され、伝票処理時に子税で正確に計算されます(ウィンドウ説明に記載の標準動作)。なおサマリ税自身に親税は設定できません(beforeSave で自動クリア)。
Q. 伝票レベルと明細レベルの税計算はどう違いますか?
Section titled “Q. 伝票レベルと明細レベルの税計算はどう違いますか?”「伝票レベル」チェックがオンの場合、税額は伝票全体の合計に対して計算され、オフの場合は明細行ごとに計算・積上げされます。端数処理の差が出るため、取引先との請求書突合方式(伝票単位の端数処理か明細単位か)に合わせて選択してください。
Q. 軽減税率や地域別の税率はどう設定しますか?
Section titled “Q. 軽減税率や地域別の税率はどう設定しますか?”軽減税率は専用の税カテゴリ(例: 飲食料品)を作成し、対象品目にそのカテゴリを割り当てた上で税率を定義します。地域別課税は「国 / 地域」条件、さらに細かくは「税金ZIP情報」タブの郵便番号範囲で定義できます。
- 税金申告の使い方
- 品目マスタの使い方(税カテゴリの割当)
- 売上請求書の使い方
- 画面リファレンス: 税金情報マスタ
🛠 技術仕様(開発者向け)
税金情報は C_Tax テーブル(アクセスレベル: Client+Org)に格納され、MTax クラス(432行)が税率解決と税額計算(calculateTax)を担います。会計勘定は C_Tax_Acct、郵便番号別税は C_TaxPostal(MTaxPostal、110行)。markImmutable() を持つキャッシュ対応クラスです。
アーキテクチャ概要
Section titled “アーキテクチャ概要”classDiagram
class MTax {
+getAll(ctx) MTax[]$
+get(C_Tax_ID) MTax$
+getChildTaxes(requery) MTax[]
+getPostals(requery) MTaxPostal[]
+isPostal() boolean
+isZeroTax() boolean
+calculateTax(amount, taxIncluded, scale) BigDecimal
+isDistributeTaxWithLineItem() boolean
#beforeSave(newRecord) boolean
}
class MTaxPostal {
+郵便番号範囲の税
}
class X_C_Tax {
<<generated>>
}
class PO {
<<abstract>>
}
MTax --|> X_C_Tax
X_C_Tax --|> PO
MTax --> MTax : Parent_Tax_ID(親子税)
MTax --> MTaxPostal : has many
パッケージ: org.compiere.model
ソースファイル: org.adempiere.base/src/org/compiere/model/MTax.java
関連DBテーブル
Section titled “関連DBテーブル”C_Tax(税金情報・主要カラム)
Section titled “C_Tax(税金情報・主要カラム)”| カラム名 | 型 | 必須 | 説明 | 備考 |
|---|---|---|---|---|
| C_Tax_ID | ID | PK | 税ID | 主キー |
| Name | String | Y | 名称 | |
| C_TaxCategory_ID | TableDirect | Y | 税カテゴリ | |
| ValidFrom | Date | Y | 有効開始日 | |
| Rate | Number | Y | 税率(%) | |
| IsDefault | YesNo | Y | デフォルト | カテゴリ内 1 件のみ |
| SOPOType | List | Y | 売上/仕入区分 | B=両方 / S=販売 / P=購買、デフォルト B |
| IsSummary | YesNo | Y | サマリレベル | 親子税の親 |
| Parent_Tax_ID | Table | N | 親税 | |
| IsTaxExempt | YesNo | Y | 税金免除 | |
| IsDocumentLevel | YesNo | Y | 伝票レベル計算 | |
| IsSalesTax | YesNo | Y | 営業税(非VAT) | デフォルト N |
| C_Country_ID / C_Region_ID ほか | Table | N | 地域条件 | To 側も対応 |
関連テーブル: C_Tax_Acct(T_Due_Acct / T_Credit_Acct / T_Expense_Acct)、C_TaxPostal(Postal / Postal_To)、C_Tax_Trl(翻訳)
ビジネスロジック
Section titled “ビジネスロジック”beforeSave() の検証(ソース確認済み)
Section titled “beforeSave() の検証(ソース確認済み)”- デフォルト一意性: 同一税カテゴリ内で
IsDefault='Y'の有効な税率が他に存在する場合はエラー - サマリ税の親クリア: サマリレベルの税に親税が設定されていたら 0 にリセット
afterSave() では新規レコード保存時に、会計スキーマのデフォルト勘定(C_AcctSchema_Default)から C_Tax_Acct(会計タブ)を自動生成します。
税額計算(calculateTax)
Section titled “税額計算(calculateTax)”calculateTax(amount, taxIncluded, scale) が税抜/税込金額から税額を計算します:
- 税抜(taxIncluded=false): 税額 = 金額 × Rate / 100 を scale 桁で丸め
- 税込(taxIncluded=true): 税額 = 金額 − 金額 ÷ (1 + Rate/100) 相当の逆算
isZeroTax()(レート0)の場合は計算をスキップしてゼロを返します
税率の適用選択
Section titled “税率の適用選択”伝票処理時の税率解決では、税カテゴリ・売上/仕入区分・地域条件・有効開始日から適用税率が選択されます。郵便番号別税(isPostal())が定義されている場合は MTaxPostal の範囲が優先的に評価されます。親子税では明細入力時に親税(概算)、伝票処理時に子税(getChildTaxes)で計算されます。
拡張ポイント
Section titled “拡張ポイント”- タックスプロバイダー:
C_TaxProvider_IDにより外部税計算サービスへの委譲が可能です(標準のプロバイダー機構) - Model Validator: 税率レコードの改定統制(過去日付での変更禁止等)を
modelChangeで追加できます - このテーブルにカラム callout の定義はありません
関連プロセス
Section titled “関連プロセス”| プロセス | 説明 |
|---|---|
| 税金申告(別ウィンドウ) | 税金取引の集計・申告書作成(C_TaxDeclaration) |
関連ドキュメント
Section titled “関連ドキュメント”iDempiereカスタマイズのご相談
Section titled “iDempiereカスタマイズのご相談”日本の消費税運用(軽減税率・インボイス制度・端数処理ルール)に合わせた税設定・帳票対応をご支援します。独自の税計算ロジックもタックスプロバイダー機構で安全に拡張できます。
As-Link株式会社では、OSGiプラグインによる安全なカスタマイズを提供しています。