iDempiere 資金計画の使い方|債権債務・資金管理 操作マニュアル・技術仕様
📖 債権債務・資金管理の全体像: 債権債務・資金管理の全体図 も合わせてご覧ください。
資金計画(Cash Plan)は、将来の入金・出金の予測を明細単位で登録し、資金繰り計画を管理するウィンドウです。販売(入金予測)と購買(出金予測)を区別し、明細ごとに取引日付・金額・可能性(確度)を設定できます。
📌 ポイント: 総合計は明細の税込行合計から自動集計されるため手入力不要です。定期的に発生する予測は「定期明細作成」ボタン、既存計画の流用は「Copy From Cash Plan」ボタンで効率的に登録できます。
資金計画でできること
Section titled “資金計画でできること”- 入金予測(販売)・出金予測(購買)の計画登録(IsSOTrx で区別)
- 現金フロータイプによる計画の分類
- 明細単位での取引日付・数量・税込行合計・可能性(0〜100%)の登録
- 品目または料金(Charge)に紐づく予測明細の作成
- 「定期明細作成」ボタンによる定期発生明細の一括作成
- 「Copy From Cash Plan」ボタンによる既存計画からの明細コピー
- プロジェクト・アクティビティ・営業活動・取引組織など会計ディメンションの付与
ヘッダーと明細の 2 タブ構成です。
| タブ名 | テーブル | 項目数 | 役割 |
|---|---|---|---|
| Cash Plan | C_CashPlan | 18項目 | 計画ヘッダー(伝票番号・伝票日付・販売/購買区分・総合計) |
| Cash Plan Line | C_CashPlanLine | 18項目 | 予測明細(取引日付・品目/料金・金額・可能性) |
基本操作手順
Section titled “基本操作手順”graph TD
A["🚀 メニューから開く<br/>債権債務管理&資金管理 > Cash Plan"] --> B["➕ 新規でヘッダーを入力<br/>(伝票番号・伝票日付・販売/購買)"]
B --> C{明細の作成方法}
C -->|手入力| D["📋 Cash Plan Line タブで<br/>取引日付・金額・可能性を登録"]
C -->|定期発生| E["🔁 定期明細作成ボタンで<br/>定期明細を一括作成"]
C -->|既存流用| F["📄 Copy From Cash Plan ボタンで<br/>別の計画からコピー"]
D --> G["💾 保存<br/>(総合計はヘッダーに自動集計)"]
E --> G
F --> G
アクセス方法
Section titled “アクセス方法”メニューから「債権債務管理&資金管理 > Cash Plan」を開きます。
- ツールバーの「新規」ボタンをクリック
- ヘッダー情報を入力:
- 伝票番号: 計画の識別番号(必須・自動採番)
- 伝票日付: 計画の基準日(必須・デフォルト当日)
- 販売(ON) / 購買(OFF): 入金予測なら ON、出金予測なら OFF(必須)
- 現金フロータイプ: 計画の分類(任意)
- 取引先: 特定取引先の計画の場合に選択(任意)
- 「保存」をクリック
- 「Cash Plan Line」タブに移動
- 予測明細を登録:
- 取引日付: 入出金が見込まれる日付(必須)
- 品目 または 料金: 予測の対象(任意。料金を選ぶと品目はクリアされます)
- 入力数量: 数量(必須・デフォルト 1)
- 税込行合計: 予測金額(税込)
- 可能性: 実現確度 0〜100
- 「保存」をクリック — ヘッダーの総合計が自動で再計算されます
💡 ヒント: 明細番号(Line)は空のまま保存すると 10 刻みで自動採番されます。後から間に行を挿入したい場合に備え、自動採番のまま運用するのがおすすめです。
項目リファレンス
Section titled “項目リファレンス”Cash Plan タブ(ヘッダー)
Section titled “Cash Plan タブ(ヘッダー)”| 項目名 | カラム | 必須 | 型 | 説明 |
|---|---|---|---|---|
| 伝票番号 | DocumentNo | 必須 | 文字列 | 計画の識別番号 |
| 伝票日付 | DateDoc | 必須 | 日付 | 計画の基準日(デフォルト当日) |
| 販売(ON)/購買(OFF) | IsSOTrx | 必須 | チェック | 入金予測/出金予測の区別 |
| 現金フロータイプ | CashFlowType | - | リスト | 現金フローの分類 |
| 取引先 | C_BPartner_ID | - | 選択 | 対象取引先 |
| 定期明細作成 | GeneratePeriodic | - | ボタン | 定期発生明細の一括作成 |
| Copy From Cash Plan | CopyFrom | - | ボタン | 別の資金計画から明細をコピー |
| 総合計 | GrandTotal | 必須 | 金額 | 明細の税込行合計の合計(自動計算) |
| プロジェクト等 | C_Project_ID 他 | - | 選択 | 会計ディメンション |
Cash Plan Line タブ(明細)
Section titled “Cash Plan Line タブ(明細)”| 項目名 | カラム | 必須 | 型 | 説明 |
|---|---|---|---|---|
| 明細番号 | Line | 必須 | 整数 | 10 刻みで自動採番 |
| 取引日付 | DateTrx | 必須 | 日付 | 入出金の予測日 |
| 品目 | M_Product_ID | - | 選択 | 予測対象の品目 |
| 料金 | C_Charge_ID | - | 選択 | 予測対象の料金(品目と排他) |
| 入力数量 | QtyEntered | 必須 | 数量 | デフォルト 1 |
| 税込行合計 | LineTotalAmt | - | 金額 | 税込の予測金額 |
| 可能性 | Probability | - | 数値 | 実現確度(0〜100) |
全項目は 全項目一覧はリファレンス参照 をご覧ください。
よくある質問(FAQ)
Section titled “よくある質問(FAQ)”Q. 総合計が明細と合わないことはありますか?
Section titled “Q. 総合計が明細と合わないことはありますか?”ヘッダーの総合計は明細の保存のたびに SUM(LineTotalAmt) で SQL 再計算される自動値です(MCashPlanLine.updateHeader())。手入力で調整する項目ではなく、明細側の税込行合計を修正してください。
Q. 品目と料金を両方入力するとどうなりますか?
Section titled “Q. 品目と料金を両方入力するとどうなりますか?”明細の保存時(beforeSave)に、料金(C_Charge_ID)が設定されている場合は品目(M_Product_ID)が自動的にクリアされます。1 明細につき品目か料金のどちらか一方で登録してください。
Q. 資金計画を削除すると明細はどうなりますか?
Section titled “Q. 資金計画を削除すると明細はどうなりますか?”ヘッダー削除時(beforeDelete)に、配下の全明細が SQL で一括削除されます(カスケード削除と同等の動作)。削除後の復元はできないため注意してください。
Q. 資金計画は伝票(Document)として承認・完了処理できますか?
Section titled “Q. 資金計画は伝票(Document)として承認・完了処理できますか?”いいえ。C_CashPlan には DocAction/DocStatus カラムがなく、伝票ワークフロー(完了・取消等)はありません。計画データとして登録・修正・削除で運用します。
🛠 技術仕様(開発者向け)
資金計画は C_CashPlan(ヘッダー)と C_CashPlanLine(明細)の 2 テーブルで構成されます。モデルクラスは MCashPlan(122行)と MCashPlanLine(117行)で、明細からヘッダーへの金額集計と明細番号の自動採番が主なロジックです。DocAction は実装されていません。ウィンドウ ID が 53134(拡張 ID 帯)であるとおり、コミュニティ拡張由来の機能です。
アーキテクチャ概要
Section titled “アーキテクチャ概要”classDiagram
class MCashPlan {
+getLines() MCashPlanLine[]
#beforeDelete() boolean
}
class MCashPlanLine {
#beforeSave(newRecord) boolean
#afterSave(newRecord, success) boolean
#updateHeader() boolean
}
class X_C_CashPlan {
<<generated>>
}
class X_C_CashPlanLine {
<<generated>>
}
class PO {
<<abstract>>
}
MCashPlan --|> X_C_CashPlan
MCashPlanLine --|> X_C_CashPlanLine
X_C_CashPlan --|> PO
X_C_CashPlanLine --|> PO
MCashPlan --> MCashPlanLine : has many
パッケージ: org.compiere.model
ソースファイル: org.adempiere.base/src/org/compiere/model/MCashPlan.java / MCashPlanLine.java
関連DBテーブル
Section titled “関連DBテーブル”C_CashPlan(資金計画ヘッダー)
Section titled “C_CashPlan(資金計画ヘッダー)”| カラム名 | 型 | 必須 | 説明 | 備考 |
|---|---|---|---|---|
| C_CashPlan_ID | ID | PK | 資金計画ID | 主キー |
| DocumentNo | String(30) | Y | 伝票番号 | 識別子 |
| DateDoc | Date | Y | 伝票日付 | default @#Date@ |
| IsSOTrx | YesNo | Y | 販売/購買区分 | 入金/出金予測 |
| CashFlowType | List | N | 現金フロータイプ | |
| C_BPartner_ID | Search | N | 取引先 | |
| GrandTotal | Amount | Y | 総合計 | 明細から自動集計・更新不可 |
| GeneratePeriodic | Button | N | 定期明細作成 | |
| CopyFrom | Button | N | 計画コピー | |
| IsApproved | YesNo | Y | 承認済み | default N |
| Processed | YesNo | Y | 処理済み | |
| C_Project_ID / C_Activity_ID / C_Campaign_ID / AD_OrgTrx_ID / User1_ID / User2_ID | - | N | 会計ディメンション |
C_CashPlanLine(資金計画明細)
Section titled “C_CashPlanLine(資金計画明細)”| カラム名 | 型 | 必須 | 説明 | 備考 |
|---|---|---|---|---|
| C_CashPlanLine_ID | ID | PK | 明細ID | 主キー |
| C_CashPlan_ID | Search | Y | 資金計画FK | 親リンク |
| Line | Integer | Y | 明細番号 | default SQL: MAX(Line)+10 |
| DateTrx | Date | Y | 取引日付 | |
| C_BPartner_ID | Search | N | 取引先 | 明細単位の指定可 |
| M_Product_ID | Search | N | 品目 | 料金設定時はクリア |
| C_Charge_ID | TableDirect | N | 料金 | |
| Name | String(60) | N | 名称 | 自由記述 |
| QtyEntered | Quantity | Y | 入力数量 | default 1 |
| LineTotalAmt | Amount | N | 税込行合計 | ヘッダー集計の元 |
| Probability | Number | N | 可能性 | 範囲 0〜100 |
| C_ProjectPhase_ID / C_ProjectTask_ID | TableDirect | N | プロジェクト段階/タスク |
erDiagram
C_CashPlan ||--o{ C_CashPlanLine : "lines"
C_CashPlan }o--o| C_BPartner : "partner"
C_CashPlanLine }o--o| M_Product : "product"
C_CashPlanLine }o--o| C_Charge : "charge"
C_CashPlanLine }o--o| C_Project : "dimension"
ビジネスロジック
Section titled “ビジネスロジック”MCashPlanLine.beforeSave()
Section titled “MCashPlanLine.beforeSave()”- 品目/料金の排他制御:
C_Charge_IDが設定済みでM_Product_IDも設定されている場合、品目を 0 にリセット(料金優先) - 明細番号の自動採番:
Line=0の場合、SELECT COALESCE(MAX(Line),0)+10で 10 刻みの次番号を採番
MCashPlanLine.afterSave() → updateHeader()
Section titled “MCashPlanLine.afterSave() → updateHeader()”明細保存成功後、ヘッダーの総合計を SQL で直接再計算します。
UPDATE C_CashPlanSET GrandTotal = (SELECT COALESCE(SUM(LineTotalAmt),0) FROM C_CashPlanLine WHERE C_CashPlan.C_CashPlan_ID = C_CashPlanLine.C_CashPlan_ID)WHERE C_CashPlan_ID = ?MCashPlan.beforeDelete()
Section titled “MCashPlan.beforeDelete()”ヘッダー削除前に、配下の明細を直接 SQL(DELETE FROM C_CashPlanLine WHERE C_CashPlan_ID=?)で一括削除します。1 行ずつのモデル削除を避けることで、変更ログ記録とヘッダー再集計の繰り返しを回避しています(カスケード外部キーと同等の動作)。
拡張ポイント(カスタマイズ箇所)
Section titled “拡張ポイント(カスタマイズ箇所)”- Model Validator: 可能性(Probability)に応じた期待値集計や、取引日付の期間チェックなどは
C_CashPlanLineへの Model Validator で追加できます - Callout: gw_column.tsv 上、C_CashPlan / C_CashPlanLine のカラムに標準 Callout の定義はありません
- レポート: 実績(入出金・請求)との比較レポートは標準にないため、帳票開発の対象になります
関連プロセス
Section titled “関連プロセス”| プロセス/ボタン | 説明 |
|---|---|
| 定期明細作成(GeneratePeriodic) | 定期発生する予測明細の一括作成 |
| Copy From Cash Plan(CopyFrom) | 別の資金計画からの明細コピー |
関連ドキュメント
Section titled “関連ドキュメント”iDempiereカスタマイズのご相談
Section titled “iDempiereカスタマイズのご相談”資金計画は入出金実績との突合レポートや資金繰り表の帳票化により、実務での活用範囲が大きく広がります。
As-Link株式会社では、OSGiプラグインによる安全なカスタマイズを提供しています。