コンテンツにスキップ

iDempiere 現金出納帳の使い方|債権債務・資金管理 操作マニュアル・技術仕様

📖 債権債務・資金管理の全体像: 債権債務・資金管理の全体図 も合わせてご覧ください。

現金出納帳は、小口現金(ペティキャッシュ)の入出金を記録する伝票ウィンドウです。現金出納帳マスタ(Cash Book)ごとに日々の現金取引を明細として登録し、記帳前残高から期末残高までを管理します。

📌 ポイント: 現金出納帳は伝票タイプ(DocStatus/DocAction あり)の伝票です。明細の現金タイプが「売上請求伝票」の場合、対象の請求書が完了済みでないと伝票を完了できません。

  • 現金出納帳マスタ(Cash Book)単位での現金取引の記録
  • 記帳前残高・記帳金額・期末残高による残高管理
  • 現金タイプ別の明細登録(経費・請求書充当など。デフォルトは経費)
  • 請求書への現金支払の充当(割引金額・回収不能額の同時入力)
  • プロジェクト・アクティビティ・営業活動など会計ディメンションの付与
  • 伝票処理(完了・無効化)と会計転記

現金出納帳はヘッダー+明細の 2 タブ構成です。

タブ名テーブル項目数役割
現金仕訳帳C_Cash約20項目ヘッダー(現金出納帳・日付・残高・伝票処理)
現金明細C_CashLine約13項目個々の入出金明細(現金タイプ・金額・請求書充当)
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["📒 転記ボタンで会計転記を確認"]

現金出納帳ウィンドウを開く (標準メニュー未登録のため要AD設定) 新規でヘッダーを入力 (現金出納帳・名称・報告日付) 現金明細タブで明細を登録 (現金タイプ・金額) 金額と料金を入力 売上請求伝票を選択 (金額・割引がcalloutで自動セット) 保存 現金プロセスで「完了」 転記ボタンで会計転記を確認 現金タイプ 経費・料金 請求書充当

このウィンドウは iDempiere 13 の標準メニューに登録されていません(AD_Window_ID: 198、標準では無効化)。旧バージョンからの移行データ参照など、どうしても必要な場合のみシステム管理者がアプリケーション辞書(AD)でウィンドウを有効化して使用します。

  1. ツールバーの「新規」ボタンをクリック
  2. **ヘッダー(現金仕訳帳タブ)**を入力:
    • 現金出納帳: 対象の現金出納帳マスタ(必須)
    • 名称: 伝票の識別名(デフォルトはログイン日付)
    • 報告日付 / 転記日付: 変更すると転記日付が連動(callout)
    • 記帳前残高: 取引前の残高
  3. 現金明細」タブへ移動し明細を登録:
    • 明細番号: 自動採番(10刻み)
    • 現金タイプ: 現金の入出金区分(必須・デフォルトは経費)
    • 金額: 入出金額(必須)
    • 売上請求伝票: 請求書充当の場合に選択(金額・割引金額が自動セット)
  4. 保存」をクリック

ヘッダーの「現金プロセス」ボタン(DocAction)で伝票を処理します。

stateDiagram-v2
    [*] --> ドラフト : 新規作成(DocStatus=DR)
    ドラフト --> 進行中 : 準備(prepareIt)
    進行中 --> 完了 : 完了(completeIt)
    完了 --> 無効 : 無効化(voidIt)
    完了 --> 取消 : 逆仕訳(reverseCorrectIt/<br/>reverseAccrualIt)
    完了 --> クローズ : クローズ(closeIt)
    完了 --> 進行中 : 再有効化(reActivateIt)

*

  • 完了: 明細の現金タイプが「売上請求伝票」の場合、対象請求書が完了・クローズ等の状態でないと @InvoiceCreateDocNotCompleted@ エラーで完了できません
  • 転記: 完了後、「転記」ボタンで会計仕訳の転記状態を確認できます

主要項目のみ抜粋します。全項目一覧はリファレンス参照

項目名必須説明
現金出納帳必須選択小口現金を記録する現金出納帳マスタ
名称必須文字列伝票の識別名(デフォルト: ログイン日付)
報告日付必須日付出納帳の記帳日(転記日付連動)
転記日付必須日付会計転記日
記帳前残高必須金額取引前の残高
記帳金額-金額記帳合計と実残高の差額
期末残高必須金額締め後の残高
伝票状態必須リストDocStatus(デフォルト: ドラフト)
現金プロセス必須ボタンDocAction(デフォルト: 完了)
転記必須ボタン会計転記状態
項目名必須説明
明細番号必須整数自動採番(最大値+10)
現金タイプ必須リスト現金の入出金区分(デフォルト: 経費)
金額必須金額入出金額(callout で再計算)
通貨-選択明細の通貨
銀行口座-選択振替時の銀行口座
料金-選択費目(料金マスタ)
売上請求伝票-検索充当する請求書(選択時 callout 起動)
割引金額-金額早期支払割引額
回収不能額-金額貸倒処理する金額

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)です。

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

+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 +setInvoice(MInvoice) void +setOrder(MOrder, String) void +createReversal() MCashLine +getParent() MCash +getCashBook() MCashBook +getBankAccount() MBankAccount +getInvoice() MInvoice <> <> > X_C_Cash MCashLine -- > PO X_C_CashLine --

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

カラム名必須説明備考
C_Cash_IDIDPK現金出納帳ID主キー
C_CashBook_IDTableDirectY現金出納帳マスタFK
NameString(60)Y名称デフォルト @#Date@
StatementDateDateY報告日付callout: CalloutEngine.dateAcct
DateAcctDateY転記日付デフォルト @#Date@
BeginningBalanceAmountY記帳前残高
StatementDifferenceAmountN記帳金額
EndingBalanceAmountY期末残高
DocStatusList(2)Y伝票状態デフォルト DR
DocActionButtonY伝票アクションデフォルト CO
PostedButtonY転記状態
C_Project_ID / C_Activity_ID / C_Campaign_IDTableDirectN会計ディメンション
カラム名必須説明備考
C_CashLine_IDIDPK明細ID主キー
C_Cash_IDSearchYヘッダーFK(親)
LineIntegerY明細番号デフォルト @SQL=MAX(Line)+10
CashTypeList(1)Y現金タイプデフォルト E
AmountAmountY金額callout: CalloutCashJournal.amounts
C_Currency_IDTableDirectN通貨
C_BankAccount_IDTableDirectN銀行口座
C_Charge_IDTableDirectN料金
C_Invoice_IDSearchN売上請求伝票callout: CalloutCashJournal.invoice
C_Payment_IDSearchN入金支払伝票
DiscountAmtAmountN割引金額callout: CalloutCashJournal.amounts
WriteOffAmtAmountN回収不能額callout: CalloutCashJournal.amounts
IsGeneratedYesNoN自動生成フラグデフォルト N

MCash.completeIt() は、明細の現金タイプが請求書(CASHTYPE_Invoice)の場合に対象請求書の伝票状態を検証します。請求書が完了・クローズ・取消・無効のいずれでもない場合、「@Line@ N: @InvoiceCreateDocNotCompleted@」を返し STATUS_Invalid で処理を中断します。完了処理の冒頭では prepareIt() の再チェックと Model Validator(TIMING_BEFORE_COMPLETE)の実行、未承認時の暗黙承認(approveIt())が行われます。

取消系の伝票処理(reverseCorrectIt / reverseAccrualIt)では、明細側の MCashLine.createReversal() が反対仕訳の明細を生成します。

  • 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 で非推奨のため、新規カスタマイズの対象にはしないことを推奨します

現金出納帳は iDempiere 13 で非推奨のため、小口現金運用の入金支払伝票・銀行取引明細への移行設計が重要です。移行方針の策定からデータ移行までご支援します。

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

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