iDempiere 資産有効化/除却の使い方|固定資産管理 操作マニュアル・技術仕様
📖 固定資産管理の全体像: 固定資産管理の全体図 も合わせてご覧ください。
資産有効化/除却(Asset Activation/Disposal)は、固定資産の除却・売却・休止(保全)・一部除却と、除却済み資産の再有効化を1つの画面で処理する伝票です。対象資産の状態に応じて除却/有効化が自動で切り替わり、除却時は取得原価・償却累計額から除却損(費用)を自動計算します。
📌 ポイント: この画面は対象資産が「除却済みか否か」で動作が変わります。未除却の資産を選ぶと除却処理、除却済みの資産を選ぶと再有効化処理になります。取得原価・償却累計額は資産の償却ワークファイルから自動転記されるため、手入力は不要です。
資産有効化/除却でできること
Section titled “資産有効化/除却でできること”- 固定資産の全部除却(Simple)・下取り除却(Trade)
- 一部除却(Partial Retirement: 除却額を指定した按分処理)
- 資産の保全/休止(Preservation)への状態変更
- 除却済み資産の再有効化(Activation)
- 除却額に応じた償却累計額(delta)と除却損(費用)の自動計算
- 除却理由(売却・廃棄・盗難・寄付等)の記録
単一タブのシンプルな伝票ウィンドウです(AD_Window_ID: 53114)。
| タブ名 | テーブル | 項目数 | 役割 |
|---|---|---|---|
| Asset Disposal/Activation | A_Asset_Disposed | 25項目 | 対象資産・除却方法・金額・伝票処理の全情報 |
基本操作手順
Section titled “基本操作手順”graph TD
A["🚀 メニューから開く<br/>資産管理 > Splits Transfers and Disposals ><br/>Asset Activation/Disposal"] --> B["➕ 新規作成<br/>資産を選択"]
B --> C["🔄 Asset Cost・償却累計額が<br/>ワークファイルから自動転記"]
C --> D{資産の状態}
D -->|未除却 → 除却処理| E{Disposed Method}
D -->|除却済み → 再有効化| F["♻️ Activation Method = Activation<br/>資産状態を Activated に戻す"]
E -->|Simple / Trade| G["🗑️ 全部除却<br/>(除却額=取得原価で自動計算)"]
E -->|Partial Retirement| H["✂️ 一部除却<br/>Disposal Amount を入力"]
E -->|Preservation| I["⏸️ 保全/休止<br/>(状態変更のみ)"]
G --> J["📅 処理日付・除却理由を入力"]
H --> J
I --> J
F --> K["✅ 伝票完了(Complete)"]
J --> K
K --> L["📒 転記(Posted)"]
⚠️ 注意: 転記日付の時点で当期の減価償却が既に処理済みの資産は除却できません(資産は先に償却済みエラーになります)。償却転記前に除却伝票を完了させるか、翌期首日付で処理してください。
アクセス方法
Section titled “アクセス方法”メニューから「資産管理 > Splits Transfers and Disposals > Asset Activation/Disposal」を開きます。
新規登録(除却)
Section titled “新規登録(除却)”- ツールバーの「新規」ボタンをクリック
- 対象資産を選択:
- 資産: 除却対象の資産(資産マスタ)
- 選択すると Asset Cost(取得原価)・Accumulated Depreciation(償却累計額)・資産状態が自動転記されます
- 除却情報を入力:
- 処理日付: 除却日(転記日付と連動)
- Disposed Method: Simple(単純除却)/ Trade(下取り)/ Partial Retirement(一部除却)/ Preservation(保全)
- Disposal Amount: 除却額(一部除却の場合に指定。全部除却は取得原価が自動セット)
- Disposed Reason: 売却・廃棄・スクラップ・盗難・寄付など(任意)
- 費用(除却損)と Accumulated Depreciation (delta) は除却額から自動計算されます
- 「保存」をクリック
- 「Asset Disposed Process」(伝票アクション)ボタンで「完了」を実行
- 完了処理で以下が自動実行されます:
- 除却: 資産状態を「除却済(Disposed)」または「保全(Preservation)」に変更、除却レコード生成
- 再有効化: 資産状態を「有効(Activated)」に変更
- 「転記」ボタンで会計仕訳を生成
再有効化(除却済み資産の復活)
Section titled “再有効化(除却済み資産の復活)”除却済みの資産を選択すると画面は有効化モードになります。Activation Method = Activation(初期値)のまま伝票を完了すると、資産状態が「有効(Activated)」に戻ります。
項目リファレンス
Section titled “項目リファレンス”主要項目のみ記載します。全25項目の一覧は 画面リファレンス を参照してください。
| 項目名 | 必須 | 型 | 説明 |
|---|---|---|---|
| 伝票番号 | 必須 | 文字列 | 伝票の一意番号 |
| 資産 | 必須 | 検索 | 対象資産(選択時に原価・累計額を自動転記) |
| 伝票日付 / 転記日付 | 必須 | 日付 | 初期値は当日。処理日付と連動 |
| 処理日付 | 必須 | 日付 | 除却の基準日 |
| Disposed Method | 必須 | リスト | Simple / Trade / Partial Retirement / Preservation 等 |
| Disposal Amount | 必須 | 金額 | 除却額(初期値 0、最小値 0) |
| Disposed Reason | - | リスト | 売却・廃棄・スクラップ・盗難・寄付等 |
| 廃棄 | - | チェック | 資産の除却済みフラグ(資産から自動転記) |
| Asset Cost | - | 金額 | 取得原価(ワークファイルから自動転記) |
| Accumulated Depreciation | 必須 | 金額 | 償却累計額(自動転記) |
| Accumulated Depreciation (delta) | 必須 | 金額 | 除却対象分の償却累計額(自動計算) |
| 費用 | 必須 | 数値 | 除却損 = 除却額 − 累計額delta(自動計算) |
| 転記タイプ | 必須 | リスト | Actual 等(初期値 A) |
| Asset Status | - | リスト | 資産状態(自動転記) |
| 伝票状態 / Asset Disposed Process | - | リスト/ボタン | DocStatus(初期値 起票)と伝票アクション |
| 転記 | 必須 | ボタン | 転記状態・仕訳照会 |
よくある質問(FAQ)
Section titled “よくある質問(FAQ)”Q. 除却と再有効化はどうやって切り替えるのですか?
Section titled “Q. 除却と再有効化はどうやって切り替えるのですか?”切り替え操作は不要です。対象資産の「廃棄(IsDisposed)」フラグで自動判定され、未除却の資産なら除却処理(Disposed Method を使用)、除却済みの資産なら再有効化処理(Activation Method を使用)になります。
Q. 一部だけ除却するにはどうしますか?
Section titled “Q. 一部だけ除却するにはどうしますか?”Disposed Method に「Partial Retirement」を選択し、Disposal Amount に除却する金額を入力します。償却累計額の除却分(delta)は「累計額 × 除却額 ÷ 取得原価」で按分計算され、費用(除却損)は「除却額 − 累計額delta」で自動算出されます。
Q. 完了時に「資産は既に償却済み」のようなエラーになります
Section titled “Q. 完了時に「資産は既に償却済み」のようなエラーになります”転記日付の時点で当期の減価償却が処理済みの場合、除却伝票は完了できません(準備処理で償却ワークファイルの状態を検証します)。未処理の償却エントリが残っている場合も同様にブロックされます。償却転記との順序を調整してください。
Q. Disposed Method の選択肢を選んだのにエラーになるものがあります
Section titled “Q. Disposed Method の選択肢を選んだのにエラーになるものがあります”iDempiere 13 標準の完了処理が実装しているのは Simple / Trade / Partial Retirement / Preservation の4方式です。それ以外(Cash / Trade w/Cash 等)はリスト定義には存在しますが、選択して完了すると未サポートエラー(AssetNotSupportedException)になります。
Q. 費用(除却損)を手で修正できますか?
Section titled “Q. 費用(除却損)を手で修正できますか?”費用と Accumulated Depreciation (delta) は除却額の入力時に callout で自動計算されます。全部除却(Simple / Trade)では完了時に取得原価・累計額で上書きされるため、手修正は反映されません。
🛠 技術仕様(開発者向け)
資産有効化/除却は Document 型(DocAction 対応)の伝票で、A_Asset_Disposed テーブル(アクセスレベル 3: Client+Org)に格納されます。MAssetDisposed クラス(522行)が除却/有効化の分岐処理・按分計算・資産状態変更を担います。
アーキテクチャ概要
Section titled “アーキテクチャ概要”classDiagram
class MAssetDisposed {
+createAssetDisposed(MInvoiceLine) MAssetDisposed$
+updateFromAsset(I_A_Asset_Disposed) void$
+setA_Disposal_Amt(I_A_Asset_Disposed) void$
+prepareIt() String
+completeIt() String
+isDisposal() boolean
+getAsset() MAsset
}
class X_A_Asset_Disposed {
<<generated>>
}
class PO {
<<abstract>>
}
class DocAction {
<<interface>>
}
MAssetDisposed --|> X_A_Asset_Disposed
X_A_Asset_Disposed --|> PO
MAssetDisposed ..|> DocAction
MAssetDisposed --> MAsset : changes status
MAssetDisposed --> MDepreciationWorkfile : reads cost and depr
パッケージ: org.compiere.model
ソースファイル: org.adempiere.base/src/org/compiere/model/MAssetDisposed.java
関連DBテーブル
Section titled “関連DBテーブル”A_Asset_Disposed(資産除却)
Section titled “A_Asset_Disposed(資産除却)”| カラム名 | 型 | 必須 | 説明 | 備考 |
|---|---|---|---|---|
| A_Asset_Disposed_ID | ID | PK | 資産除却ID | 主キー・識別子 |
| AD_Client_ID / AD_Org_ID | TableDirect | Y | クライアント / 組織 | |
| DocumentNo | String(30) | Y | 伝票番号 | |
| A_Asset_ID | Search | Y | 資産FK | callout: CalloutA_Asset_Disposed.asset |
| DateDoc / DateAcct | Date | Y | 伝票日付 / 転記日付 | 初期値 @Date@、callout: date |
| A_Disposed_Date | Date | Y | 処理日付 | callout: date |
| A_Activation_Method | List(2) | Y | 有効化方法 | ’AA’=Activation、初期値 ‘AA’ |
| A_Disposed_Method | List(2) | Y | 除却方法 | ’S’/‘T1’/‘PD’/‘PR’/‘C’/‘C_’/‘S_’/‘T2’ |
| A_Disposed_Reason | List(10) | N | 除却理由 | ’C’寄付/‘D’破損/‘S’廃棄/‘S1’売却/‘S2’下取売却/‘T’盗難 |
| A_Disposal_Amt | Amount | Y | 除却額 | 初期値 0・最小 0、callout: amt |
| A_Asset_Cost | Amount | N | 取得原価 | ワークファイルから自動転記 |
| A_Accumulated_Depr | Amount | Y | 償却累計額 | 自動転記、callout: amt |
| A_Accumulated_Depr_Delta | Amount | Y | 累計額(除却分) | 按分自動計算、初期値 0 |
| Expense | Number | Y | 費用(除却損) | 自動計算、callout: amt |
| A_Proceeds | Amount | N | 売却収入 | |
| A_Asset_Trade_ID | Search | N | 下取り資産FK | |
| IsDisposed | YesNo | N | 除却済みフラグ | 資産から自動転記 |
| A_Asset_Status | List(2) | N | 資産状態 | ’NW’/‘AC’/‘DP’/‘DI’/‘PR’/‘RE’/‘SO’ |
| PostingType | List | Y | 転記タイプ | 初期値 ‘A’、callout: asset |
| C_Invoice_ID / C_InvoiceLine_ID | Search | N | 請求書FK | 売却請求書からの生成用 |
| C_Period_ID | Table | N | 会計期間 | |
| DocStatus / DocAction | List / Button | N | 伝票状態 / アクション | 初期値 ‘DR’ / ‘CO’ |
| IsApproved / Posted / Processed | YesNo / Button / YesNo | Y | 承認 / 転記 / 処理済 |
ビジネスロジック
Section titled “ビジネスロジック”prepareIt() の検証
Section titled “prepareIt() の検証”- 転記日付の会計期間オープンチェック(伝票ベースタイプ: GL Document)
updateFromAsset(this): 資産から IsDisposed / A_Asset_Status / AD_Org_ID を、償却ワークファイルから Asset Cost / Accumulated Depreciation を再転記して保存。値が変化した場合は AssetStatusChangedException(画面表示が古い状態での処理を防止)- 転記日付時点で当期償却済みなら AssetAlreadyDepreciatedException
- 未処理の償却エントリ(
MDepreciationExp)が存在すればエラー
completeIt() の分岐処理
Section titled “completeIt() の分岐処理”isDisposal()(= 資産の IsDisposed が false)で除却/有効化を分岐します。
| モード | Method | 処理 |
|---|---|---|
| 有効化 | Activation (‘AA’) | 資産状態 → Activated。それ以外の方法は未サポート例外 |
| 除却 | Preservation (‘PR’) | 資産状態 → Preservation(状態変更のみ) |
| 除却 | Simple (‘S’) / Trade (‘T1’) | 資産状態 → Disposed。除却額=取得原価・delta=累計額・費用=除却額−delta を強制セットし createDisposal() |
| 除却 | Partial Retirement (‘PD’) | 入力された除却額のまま createDisposal()(按分除却) |
| 除却 | 上記以外 (‘C’/‘C_’/‘S_’/‘T2’ 等) | AssetNotSupportedException |
按分計算(setA_Disposal_Amt)
Section titled “按分計算(setA_Disposal_Amt)”一部除却時の自動計算ロジック:
coef = A_Disposal_Amt / A_Asset_Cost (12桁精度・四捨五入)A_Accumulated_Depr_Delta = A_Accumulated_Depr × coef (2桁丸め)Expense = A_Disposal_Amt − A_Accumulated_Depr_Delta静的ファクトリメソッド
Section titled “静的ファクトリメソッド”createAssetDisposed(MInvoiceLine): 売上請求書明細(資産売却)から除却伝票を自動生成します。
拡張ポイント(カスタマイズ箇所)
Section titled “拡張ポイント(カスタマイズ箇所)”標準 Callout
Section titled “標準 Callout”| カラム | Callout |
|---|---|
| A_Asset_ID / PostingType | org.idempiere.fa.model.CalloutA_Asset_Disposed.asset(資産情報の転記) |
| DateDoc / DateAcct / A_Disposed_Date | CalloutA_Asset_Disposed.date(日付連動) |
| A_Disposal_Amt / A_Accumulated_Depr / Expense | CalloutA_Asset_Disposed.amt(按分計算) |
| AD_Client_ID | org.compiere.model.CalloutGLJournal.period(期間セット) |
OSGi Model Validator(推奨)
Section titled “OSGi Model Validator(推奨)”Document 型のため docValidate の TIMING_BEFORE_PREPARE / AFTER_PREPARE / BEFORE_COMPLETE / AFTER_COMPLETE が利用できます。除却理由の必須化や、一定金額以上の除却に承認を要求するといった制御をコア改変なしで追加できます。
@Overridepublic String docValidate(PO po, int timing) { if (po instanceof MAssetDisposed && timing == TIMING_BEFORE_COMPLETE) { MAssetDisposed ad = (MAssetDisposed) po; // 例: Disposed Reason 未入力なら完了不可にする } return null;}関連ドキュメント
Section titled “関連ドキュメント”iDempiereカスタマイズのご相談
Section titled “iDempiereカスタマイズのご相談”除却の承認フローや除却理由の必須化などの統制要件は、Model Validator でコア改変なしに実装できます。
As-Link株式会社では、OSGiプラグインによる安全なカスタマイズを提供しています。