iDempiere 減価償却計算方法の使い方|固定資産管理 操作マニュアル・技術仕様
📖 固定資産管理の全体像: 固定資産管理の全体図 も合わせてご覧ください。
減価償却計算方法(Depreciation Calculation Method)は、償却費の調整(Adjustment)をどのように各期間へ配分するかを定義するマスタウィンドウです。減価償却方法(償却額そのものの計算式)と対になり、こちらは調整額の按分方式(期間按分・年次按分・残存期間按分)を決めます。
📌 ポイント: タイプコード(DepreciationType)はソース実装と対応しており、標準では MDI(期間按分)/ YDI(年次按分)/ LDI(残存期間按分)の 3 方式が実装されています。
減価償却計算方法でできること
Section titled “減価償却計算方法でできること”- 利用可能な調整計算方式の一覧確認
- タイプコード(DepreciationType)と名称の管理
- 説明・詳細テキストによる方式の文書化
- 有効フラグによる利用可否の制御
シンプルな 1 タブ構成です。
| タブ名 | テーブル | 項目数 | 役割 |
|---|---|---|---|
| Define Depreciation Method | A_Depreciation_Method | 約5項目 | 調整計算方式の定義(名称・タイプ・説明) |
基本操作手順
Section titled “基本操作手順”graph TD
A["🚀 ウィンドウを開く<br/>(メニュー未登録のため登録が必要)"] --> B["🔍 標準登録済みの方式を確認<br/>(MDI / YDI / LDI)"]
B --> C{"新しい方式が必要?"}
C -->|No| D["✅ 資産の償却設定で<br/>方式を選択"]
C -->|Yes| E["🛠 対応する計算実装を<br/>プラグインで開発"]
E --> F["➕ 新規で方式を登録<br/>(名称・DepreciationType)"]
F --> D
アクセス方法(メニューパス)
Section titled “アクセス方法(メニューパス)”iDempiere 13 標準ではメニュー未登録です(AD_Window_ID: 53061)。利用する場合はシステム管理者がメニューに登録するか、ウィンドウ直接起動で開きます。
- ツールバーの「新規」ボタンをクリック
- 基本情報を入力:
- 名称: 計算方式の名称
- DepreciationType: 計算ロジックと対応するタイプコード(10文字)
- 説明: 方式の説明
- 「保存」をクリック
項目リファレンス
Section titled “項目リファレンス”| 項目名 | 必須 | 型 | 説明 |
|---|---|---|---|
| クライアント | 必須 | 選択 | テナント |
| 組織 | 必須 | 選択 | 対象組織 |
| 名称 | - | 文字列 | 計算方式の名称 |
| DepreciationType | - | 文字列 | 計算ロジック対応コード(例: MDI) |
| 説明 | - | 文字列 | 方式の説明 |
標準実装されている計算方式
Section titled “標準実装されている計算方式”ソースコード(MDepreciationMethod)で実装されている適用メソッドは以下の通りです。
| タイプコード | 計算メソッド | 内容 |
|---|---|---|
| MDI | apply_MDI | 調整額を期間(月次)ベースで按分 |
| YDI | apply_YDI | 調整額を年次ベースで按分 |
| LDI | apply_LDI | 調整額を残存期間ベースで按分 |
よくある質問(FAQ)
Section titled “よくある質問(FAQ)”Q. 「減価償却方法」との違いは?
Section titled “Q. 「減価償却方法」との違いは?”減価償却方法(A_Depreciation)は毎期の償却費そのものの計算式(定額法等)を定義します。本ウィンドウ(A_Depreciation_Method)は、取得原価修正・耐用年数変更などで生じる調整額を各期間へどう配分するかを定義します。名前が似ているため注意してください。
Q. 登録したのに計算に反映されません
Section titled “Q. 登録したのに計算に反映されません”タイプコードに対応する適用メソッド(apply_MDI / apply_YDI / apply_LDI)が MDepreciationMethod.invoke() から解決される必要があります。未対応コードの場合は計算されません。また、本マスタはイミュータブルキャッシュ(静的 get())経由で参照されるため、変更後はキャッシュリセットが必要です。
Q. どこでこの方式を指定しますか?
Section titled “Q. どこでこの方式を指定しますか?”資産の償却設定(資産会計・ワークファイル)から償却タイプとともに参照されます。資産側の設定は資産マスタ・資産グループで行います。
🛠 技術仕様(開発者向け)
減価償却計算方法は A_Depreciation_Method テーブル(削除可・アクセスレベル 7)に格納されるマスタです。MDepreciationMethod クラス(364行)が調整額按分の計算ディスパッチとイミュータブルキャッシュを実装します。
アーキテクチャ概要
Section titled “アーキテクチャ概要”classDiagram
class MDepreciationMethod {
+get(A_Depreciation_Method_ID) MDepreciationMethod
+get(depreciationType) MDepreciationMethod
+invoke(ctx, depreciationType, ...) BigDecimal
+invoke(assetwk, ...) BigDecimal
+apply_MDI(assetId, adj, periodNo, postingType, acctId) BigDecimal
+apply_YDI(assetId, adj, periodNo, postingType, acctId) BigDecimal
+apply_LDI(assetId, adj, periodNo, postingType, acctId) BigDecimal
+markImmutable() MDepreciationMethod
}
class X_A_Depreciation_Method {
<<generated>>
}
class MDepreciationWorkfile {
+getRemainingPeriods(period) int
}
class PO {
<<abstract>>
}
MDepreciationMethod --|> X_A_Depreciation_Method
X_A_Depreciation_Method --|> PO
MDepreciationMethod ..> MDepreciationWorkfile : applies adjustment
パッケージ: org.compiere.model
ソースファイル: org.adempiere.base/src/org/compiere/model/MDepreciationMethod.java
関連DBテーブル
Section titled “関連DBテーブル”A_Depreciation_Method(減価償却計算方法)
Section titled “A_Depreciation_Method(減価償却計算方法)”| カラム名 | 型 | 必須 | 説明 | 備考 |
|---|---|---|---|---|
| A_Depreciation_Method_ID | ID | PK | 主キー | |
| AD_Client_ID | TableDirect | Y | クライアント | |
| AD_Org_ID | TableDirect | Y | 組織 | |
| Name | String | N | 名称 | 120文字 |
| DepreciationType | String | N | 計算方式コード | 10文字 |
| Description | String | N | 説明 | |
| Text | Memo | N | 詳細説明 | |
| Processed | YesNo | Y | 処理済み | 既定値 N |
| IsActive | YesNo | Y | 有効 |
ビジネスロジック
Section titled “ビジネスロジック”invoke() — 調整額按分のディスパッチ
Section titled “invoke() — 調整額按分のディスパッチ”invoke は複数のオーバーロードを持ちます:
invoke(Properties ctx, String depreciationType, ...): タイプコードからキャッシュ経由でインスタンスを解決して実行する静的エントリinvoke(MDepreciationWorkfile, ...): ワークファイルから資産・転記タイプを取り出して実行invoke(int A_Asset_ID, BigDecimal A_Asset_Adjustment, int A_PeriodNo, String PostingType, int A_Asset_Acct_ID): 調整額(A_Asset_Adjustment)を期間番号・転記タイプ・会計設定に対して按分計算
内部で DepreciationType に応じて apply_MDI / apply_YDI / apply_LDI に分岐します。
get(ctx, id) / get(ctx, depreciationType) はイミュータブルキャッシュ経由で返却されます(markImmutable())。タイプコード逆引きが用意されているのは減価償却方法の MDepreciation と同じ設計です。
拡張ポイント(カスタマイズ箇所)
Section titled “拡張ポイント(カスタマイズ箇所)”- 方式の追加: 新しい按分方式はタイプコード登録+計算実装が必要です。コア改変を避ける場合は、償却計算全体を
IDepreciationMethod(OSGi サービス)で差し替える構成を推奨します。 - Model Validator: 保存時のコード検証等を追加できます。このテーブルに標準 Callout はありません。
関連プロセス
Section titled “関連プロセス”リファレンスページ・メニューに関連プロセスの登録はありません(参照系マスタ)。
関連ドキュメント
Section titled “関連ドキュメント”iDempiereカスタマイズのご相談
Section titled “iDempiereカスタマイズのご相談”資本的支出による取得原価修正や耐用年数変更時の調整計算は、按分方式の選定を含めて設計が必要な領域です。
As-Link株式会社では、OSGiプラグインによる安全なカスタマイズを提供しています。