iDempiere 現金出納帳の使い方|債権債務・資金管理 操作マニュアル・技術仕様
📖 債権債務・資金管理の全体像: 債権債務・資金管理の全体図 も合わせてご覧ください。
現金出納帳は、小口現金(ペティキャッシュ)の入出金を記録する伝票ウィンドウです。現金出納帳マスタ(Cash Book)ごとに日々の現金取引を明細として登録し、記帳前残高から期末残高までを管理します。
📌 ポイント: 現金出納帳は伝票タイプ(DocStatus/DocAction あり)の伝票です。明細の現金タイプが「売上請求伝票」の場合、対象の請求書が完了済みでないと伝票を完了できません。
現金出納帳でできること
Section titled “現金出納帳でできること”- 現金出納帳マスタ(Cash Book)単位での現金取引の記録
- 記帳前残高・記帳金額・期末残高による残高管理
- 現金タイプ別の明細登録(経費・請求書充当など。デフォルトは経費)
- 請求書への現金支払の充当(割引金額・回収不能額の同時入力)
- プロジェクト・アクティビティ・営業活動など会計ディメンションの付与
- 伝票処理(完了・無効化)と会計転記
現金出納帳はヘッダー+明細の 2 タブ構成です。
| タブ名 | テーブル | 項目数 | 役割 |
|---|---|---|---|
| 現金仕訳帳 | C_Cash | 約20項目 | ヘッダー(現金出納帳・日付・残高・伝票処理) |
| 現金明細 | C_CashLine | 約13項目 | 個々の入出金明細(現金タイプ・金額・請求書充当) |
基本操作手順
Section titled “基本操作手順”graph TD
A["🚀 現金出納帳ウィンドウを開く<br/>(標準メニュー未登録のため要AD設定)"] --> B["➕ 新規でヘッダーを入力<br/>(現金出納帳・名称・報告日付)"]
B --> C["📝 現金明細タブで明細を登録<br/>(現金タイプ・金額)"]
C --> D{現金タイプ}
D -->|経費・料金| E["💴 金額と料金を入力"]
D -->|請求書充当| F["🧾 売上請求伝票を選択<br/>(金額・割引がcalloutで自動セット)"]
E --> G["💾 保存"]
F --> G
G --> H["✅ 現金プロセスで「完了」"]
H --> I["📒 転記ボタンで会計転記を確認"]
アクセス方法
Section titled “アクセス方法”このウィンドウは iDempiere 13 の標準メニューに登録されていません(AD_Window_ID: 198、標準では無効化)。旧バージョンからの移行データ参照など、どうしても必要な場合のみシステム管理者がアプリケーション辞書(AD)でウィンドウを有効化して使用します。
- ツールバーの「新規」ボタンをクリック
- **ヘッダー(現金仕訳帳タブ)**を入力:
- 現金出納帳: 対象の現金出納帳マスタ(必須)
- 名称: 伝票の識別名(デフォルトはログイン日付)
- 報告日付 / 転記日付: 変更すると転記日付が連動(callout)
- 記帳前残高: 取引前の残高
- 「現金明細」タブへ移動し明細を登録:
- 明細番号: 自動採番(10刻み)
- 現金タイプ: 現金の入出金区分(必須・デフォルトは経費)
- 金額: 入出金額(必須)
- 売上請求伝票: 請求書充当の場合に選択(金額・割引金額が自動セット)
- 「保存」をクリック
ヘッダーの「現金プロセス」ボタン(DocAction)で伝票を処理します。
stateDiagram-v2
[*] --> ドラフト : 新規作成(DocStatus=DR)
ドラフト --> 進行中 : 準備(prepareIt)
進行中 --> 完了 : 完了(completeIt)
完了 --> 無効 : 無効化(voidIt)
完了 --> 取消 : 逆仕訳(reverseCorrectIt/<br/>reverseAccrualIt)
完了 --> クローズ : クローズ(closeIt)
完了 --> 進行中 : 再有効化(reActivateIt)
- 完了: 明細の現金タイプが「売上請求伝票」の場合、対象請求書が完了・クローズ等の状態でないと
@InvoiceCreateDocNotCompleted@エラーで完了できません - 転記: 完了後、「転記」ボタンで会計仕訳の転記状態を確認できます
項目リファレンス
Section titled “項目リファレンス”主要項目のみ抜粋します。全項目一覧はリファレンス参照。
現金仕訳帳タブ(ヘッダー)
Section titled “現金仕訳帳タブ(ヘッダー)”| 項目名 | 必須 | 型 | 説明 |
|---|---|---|---|
| 現金出納帳 | 必須 | 選択 | 小口現金を記録する現金出納帳マスタ |
| 名称 | 必須 | 文字列 | 伝票の識別名(デフォルト: ログイン日付) |
| 報告日付 | 必須 | 日付 | 出納帳の記帳日(転記日付連動) |
| 転記日付 | 必須 | 日付 | 会計転記日 |
| 記帳前残高 | 必須 | 金額 | 取引前の残高 |
| 記帳金額 | - | 金額 | 記帳合計と実残高の差額 |
| 期末残高 | 必須 | 金額 | 締め後の残高 |
| 伝票状態 | 必須 | リスト | DocStatus(デフォルト: ドラフト) |
| 現金プロセス | 必須 | ボタン | DocAction(デフォルト: 完了) |
| 転記 | 必須 | ボタン | 会計転記状態 |
現金明細タブ
Section titled “現金明細タブ”| 項目名 | 必須 | 型 | 説明 |
|---|---|---|---|
| 明細番号 | 必須 | 整数 | 自動採番(最大値+10) |
| 現金タイプ | 必須 | リスト | 現金の入出金区分(デフォルト: 経費) |
| 金額 | 必須 | 金額 | 入出金額(callout で再計算) |
| 通貨 | - | 選択 | 明細の通貨 |
| 銀行口座 | - | 選択 | 振替時の銀行口座 |
| 料金 | - | 選択 | 費目(料金マスタ) |
| 売上請求伝票 | - | 検索 | 充当する請求書(選択時 callout 起動) |
| 割引金額 | - | 金額 | 早期支払割引額 |
| 回収不能額 | - | 金額 | 貸倒処理する金額 |
よくある質問(FAQ)
Section titled “よくある質問(FAQ)”Q. iDempiere 13 でメニューに現金出納帳が見つかりません
Section titled “Q. iDempiere 13 でメニューに現金出納帳が見つかりません”iDempiere 13 標準ではこのウィンドウは無効化されており、標準メニューにも登録されていません(旧バージョン互換用)。小口現金を含む資金管理は入金支払伝票・銀行取引明細での運用を検討してください。
Q. 伝票の完了時に請求書関連のエラーになります
Section titled “Q. 伝票の完了時に請求書関連のエラーになります”明細の現金タイプが「売上請求伝票」の場合、completeIt() が対象請求書の伝票状態をチェックします。請求書が完了(またはクローズ・取消・無効)状態でないと「@InvoiceCreateDocNotCompleted@」エラーになります。先に請求書側の伝票を完了させてください。
Q. 請求書を選択したら金額が勝手に変わりました
Section titled “Q. 請求書を選択したら金額が勝手に変わりました”明細の売上請求伝票カラムには callout(CalloutCashJournal.invoice)が設定されており、請求書選択時に金額・割引金額等が自動セットされます。金額・割引金額・回収不能額の変更時も callout(CalloutCashJournal.amounts)が相互に再計算します。
Q. 完了した現金出納帳を取り消せますか?
Section titled “Q. 完了した現金出納帳を取り消せますか?”DocAction から「無効化」または「逆仕訳」を実行できます(voidIt / reverseCorrectIt / reverseAccrualIt)。また「再有効化」(reActivateIt)で完了済み伝票を編集可能な状態に戻すこともできます。
🛠 技術仕様(開発者向け)
現金出納帳は伝票型(DocAction 実装)ウィンドウで、ヘッダー C_Cash と明細 C_CashLine の 2 テーブルで構成されます。MCash クラス(898行)が伝票処理を、MCashLine クラス(418行)が明細と逆仕訳明細の生成を担います。アクセスレベルは 3(クライアント+組織)、レコード削除は可能(IsDeleteable=Y)です。
アーキテクチャ概要
Section titled “アーキテクチャ概要”classDiagram
class MCash {
+get(ctx, AD_Org_ID, ...) MCash
+get(ctx, C_CashBook_ID, ...) MCash
+getLines(boolean) MCashLine[]
+getCashBook() MCashBook
+processIt(String) boolean
+prepareIt() String
+completeIt() String
+voidIt() boolean
+reverseCorrectIt() boolean
+reverseAccrualIt() boolean
+reActivateIt() boolean
}
class MCashLine {
+setInvoice(MInvoice) void
+setOrder(MOrder, String) void
+createReversal() MCashLine
+getParent() MCash
+getCashBook() MCashBook
+getBankAccount() MBankAccount
+getInvoice() MInvoice
}
class X_C_Cash {
<<generated>>
}
class X_C_CashLine {
<<generated>>
}
class PO {
<<abstract>>
}
MCash --|> X_C_Cash
MCashLine --|> X_C_CashLine
X_C_Cash --|> PO
X_C_CashLine --|> PO
MCash --> MCashLine : has many
MCash --> MCashBook : belongs to
パッケージ: org.compiere.model
ソースファイル: org.adempiere.base/src/org/compiere/model/MCash.java / MCashLine.java
関連DBテーブル
Section titled “関連DBテーブル”C_Cash(現金仕訳帳)
Section titled “C_Cash(現金仕訳帳)”| カラム名 | 型 | 必須 | 説明 | 備考 |
|---|---|---|---|---|
| C_Cash_ID | ID | PK | 現金出納帳ID | 主キー |
| C_CashBook_ID | TableDirect | Y | 現金出納帳マスタFK | |
| Name | String(60) | Y | 名称 | デフォルト @#Date@ |
| StatementDate | Date | Y | 報告日付 | callout: CalloutEngine.dateAcct |
| DateAcct | Date | Y | 転記日付 | デフォルト @#Date@ |
| BeginningBalance | Amount | Y | 記帳前残高 | |
| StatementDifference | Amount | N | 記帳金額 | |
| EndingBalance | Amount | Y | 期末残高 | |
| DocStatus | List(2) | Y | 伝票状態 | デフォルト DR |
| DocAction | Button | Y | 伝票アクション | デフォルト CO |
| Posted | Button | Y | 転記状態 | |
| C_Project_ID / C_Activity_ID / C_Campaign_ID | TableDirect | N | 会計ディメンション |
C_CashLine(現金明細)
Section titled “C_CashLine(現金明細)”| カラム名 | 型 | 必須 | 説明 | 備考 |
|---|---|---|---|---|
| C_CashLine_ID | ID | PK | 明細ID | 主キー |
| C_Cash_ID | Search | Y | ヘッダーFK(親) | |
| Line | Integer | Y | 明細番号 | デフォルト @SQL=MAX(Line)+10 |
| CashType | List(1) | Y | 現金タイプ | デフォルト E |
| Amount | Amount | Y | 金額 | callout: CalloutCashJournal.amounts |
| C_Currency_ID | TableDirect | N | 通貨 | |
| C_BankAccount_ID | TableDirect | N | 銀行口座 | |
| C_Charge_ID | TableDirect | N | 料金 | |
| C_Invoice_ID | Search | N | 売上請求伝票 | callout: CalloutCashJournal.invoice |
| C_Payment_ID | Search | N | 入金支払伝票 | |
| DiscountAmt | Amount | N | 割引金額 | callout: CalloutCashJournal.amounts |
| WriteOffAmt | Amount | N | 回収不能額 | callout: CalloutCashJournal.amounts |
| IsGenerated | YesNo | N | 自動生成フラグ | デフォルト N |
ビジネスロジック
Section titled “ビジネスロジック”completeIt() の請求書チェック
Section titled “completeIt() の請求書チェック”MCash.completeIt() は、明細の現金タイプが請求書(CASHTYPE_Invoice)の場合に対象請求書の伝票状態を検証します。請求書が完了・クローズ・取消・無効のいずれでもない場合、「@Line@ N: @InvoiceCreateDocNotCompleted@」を返し STATUS_Invalid で処理を中断します。完了処理の冒頭では prepareIt() の再チェックと Model Validator(TIMING_BEFORE_COMPLETE)の実行、未承認時の暗黙承認(approveIt())が行われます。
取消系の伝票処理(reverseCorrectIt / reverseAccrualIt)では、明細側の MCashLine.createReversal() が反対仕訳の明細を生成します。
拡張ポイント
Section titled “拡張ポイント”- Model Validator:
C_Cashは伝票型のためdocValidate()の TIMING_BEFORE/AFTER_COMPLETE で完了時の独自チェック・後続処理を追加できます - Callout: 標準で
CalloutCashJournal.amounts(Amount/DiscountAmt/WriteOffAmt)、CalloutCashJournal.invoice(C_Invoice_ID)、CalloutEngine.dateAcct(StatementDate)が設定されています - OSGi プラグイン: コア改変なしで上記フックを登録可能。ただし本ウィンドウは iDempiere 13 で非推奨のため、新規カスタマイズの対象にはしないことを推奨します
関連ドキュメント
Section titled “関連ドキュメント”iDempiereカスタマイズのご相談
Section titled “iDempiereカスタマイズのご相談”現金出納帳は iDempiere 13 で非推奨のため、小口現金運用の入金支払伝票・銀行取引明細への移行設計が重要です。移行方針の策定からデータ移行までご支援します。
As-Link株式会社では、OSGiプラグインによる安全なカスタマイズを提供しています。