Skip to content

iDempiere 減価償却計算方法の使い方|固定資産管理 操作マニュアル・技術仕様

This content is not available in your language yet.

📖 固定資産管理の全体像: 固定資産管理の全体図 も合わせてご覧ください。

減価償却計算方法(Depreciation Calculation Method)は、償却費の調整(Adjustment)をどのように各期間へ配分するかを定義するマスタウィンドウです。減価償却方法(償却額そのものの計算式)と対になり、こちらは調整額の按分方式(期間按分・年次按分・残存期間按分)を決めます。

📌 ポイント: タイプコード(DepreciationType)はソース実装と対応しており、標準では MDI(期間按分)/ YDI(年次按分)/ LDI(残存期間按分)の 3 方式が実装されています。

減価償却計算方法でできること

Section titled “減価償却計算方法でできること”
  • 利用可能な調整計算方式の一覧確認
  • タイプコード(DepreciationType)と名称の管理
  • 説明・詳細テキストによる方式の文書化
  • 有効フラグによる利用可否の制御

シンプルな 1 タブ構成です。

タブ名テーブル項目数役割
Define Depreciation MethodA_Depreciation_Method約5項目調整計算方式の定義(名称・タイプ・説明)
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

ウィンドウを開く (メニュー未登録のため登録が必要) 標準登録済みの方式を確認 (MDI / YDI / LDI) 新しい方式が必要? 資産の償却設定で 方式を選択 対応する計算実装を プラグインで開発 新規で方式を登録 (名称・DepreciationType)

アクセス方法(メニューパス)

Section titled “アクセス方法(メニューパス)”

iDempiere 13 標準ではメニュー未登録です(AD_Window_ID: 53061)。利用する場合はシステム管理者がメニューに登録するか、ウィンドウ直接起動で開きます。

  1. ツールバーの「新規」ボタンをクリック
  2. 基本情報を入力:
    • 名称: 計算方式の名称
    • DepreciationType: 計算ロジックと対応するタイプコード(10文字)
    • 説明: 方式の説明
  3. 保存」をクリック
項目名必須説明
クライアント必須選択テナント
組織必須選択対象組織
名称-文字列計算方式の名称
DepreciationType-文字列計算ロジック対応コード(例: MDI)
説明-文字列方式の説明

全項目一覧はリファレンス参照

ソースコード(MDepreciationMethod)で実装されている適用メソッドは以下の通りです。

タイプコード計算メソッド内容
MDIapply_MDI調整額を期間(月次)ベースで按分
YDIapply_YDI調整額を年次ベースで按分
LDIapply_LDI調整額を残存期間ベースで按分

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行)が調整額按分の計算ディスパッチとイミュータブルキャッシュを実装します。

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

+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 <> +getRemainingPeriods(period) int <> > X_A_Depreciation_Method X_A_Depreciation_Method --

パッケージ: org.compiere.model ソースファイル: org.adempiere.base/src/org/compiere/model/MDepreciationMethod.java

A_Depreciation_Method(減価償却計算方法)

Section titled “A_Depreciation_Method(減価償却計算方法)”
カラム名必須説明備考
A_Depreciation_Method_IDIDPK主キー
AD_Client_IDTableDirectYクライアント
AD_Org_IDTableDirectY組織
NameStringN名称120文字
DepreciationTypeStringN計算方式コード10文字
DescriptionStringN説明
TextMemoN詳細説明
ProcessedYesNoY処理済み既定値 N
IsActiveYesNoY有効

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 はありません。

リファレンスページ・メニューに関連プロセスの登録はありません(参照系マスタ)。


資本的支出による取得原価修正や耐用年数変更時の調整計算は、按分方式の選定を含めて設計が必要な領域です。

As-Link株式会社では、OSGiプラグインによる安全なカスタマイズを提供しています。

OSS ERP導入・カスタマイズサービスの詳細はこちら