コンテンツにスキップ

iDempiere まとめ払い選択の使い方|債権債務・資金管理 操作マニュアル・技術仕様

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

まとめ払い選択は、支払対象の仕入請求書を選択し、銀行口座からの支払をまとめて準備するウィンドウです。支払候補の抽出 →(必要なら)金額調整 → 支払準備(Prepared Payments の生成)→ 支払印刷/エクスポートでの実支払作成、という買掛金支払業務の起点になります。

📌 ポイント: このウィンドウで作られるのは「用意済み支払(支払の下書き)」までです。実際の入金支払伝票は、後続の「支払印刷/エクスポート」ウィンドウで確定・生成します。

  • 支払対象の仕入請求書の手動選択、または条件に基づく候補抽出(支払選択詳細作成)
  • 明細ごとの支払金額・割引金額・回収不能額の調整
  • 請求書残高(残高金額)と支払金額の差異確認
  • 「支払準備」による用意済み支払(Prepared Payments)の一括生成
  • 取引先・支払方法単位での支払集約(または請求書ごとの個別支払)
  • 「Reverse Prepare Payment」による支払準備の取消

まとめ払い選択はヘッダー+明細 2 種の 3 タブ構成です。

タブ名テーブル項目数役割
まとめ払い選択C_PaySelection約14項目ヘッダー(銀行口座・支払日付・処理ボタン)
まとめ払い選択詳細C_PaySelectionLine約16項目支払対象の請求書ごとの明細
用意済み支払C_PaySelectionCheck約14項目支払準備で生成された取引先別の支払(下書き)
graph TD
    A["🚀 メニューから開く<br/>債権債務管理&資金管理 > まとめ払い選択"] --> B["➕ 新規でヘッダーを入力<br/>(名称・銀行口座・支払日付)"]
    B --> C{明細の作り方}
    C -->|一括抽出| D["⚙️ 支払選択詳細作成ボタン<br/>(条件に合う仕入請求を抽出)"]
    C -->|個別選択| E["📝 まとめ払い選択詳細タブで<br/>仕入請求伝票を手動追加"]
    D --> F["✏️ 支払金額・割引・回収不能額を調整<br/>(calloutが差異を自動計算)"]
    E --> F
    F --> G["▶️ 支払準備ボタン<br/>(用意済み支払を生成)"]
    G --> H["👀 用意済み支払タブで<br/>取引先別の支払を確認"]
    H --> I{内容OK?}
    I -->|OK| J["🖨 支払印刷/エクスポートで<br/>入金支払伝票を作成"]
    I -->|やり直し| K["↩️ Reverse Prepare Payment<br/>で支払準備を取消"]
    K --> F

メニューから開く 債権債務管理&資金管理 > まとめ払い選択 新規でヘッダーを入力 (名称・銀行口座・支払日付) 支払選択詳細作成ボタン (条件に合う仕入請求を抽出) まとめ払い選択詳細タブで 仕入請求伝票を手動追加 支払金額・割引・回収不能額を調整 (calloutが差異を自動計算) ▶ 支払準備ボタン (用意済み支払を生成) 用意済み支払タブで 取引先別の支払を確認 支払印刷/エクスポートで 入金支払伝票を作成 ↩ Reverse Prepare Payment で支払準備を取消 明細の作り方 内容OK? 一括抽出 個別選択 やり直し

メニューから「債権債務管理&資金管理 > まとめ払い選択」を開きます。

  1. ツールバーの「新規」ボタンをクリック
  2. **ヘッダー(まとめ払い選択タブ)**を入力:
    • 名称: 支払バッチの識別名(デフォルトは現在日時)
    • 銀行口座: 支払元の銀行口座(必須)
    • 支払日付: 支払実行日(必須・デフォルトはログイン日付)
    • One Payment Per Invoice: 請求書ごとに支払を分ける場合にチェック
  3. 支払選択詳細作成」ボタンで支払対象の仕入請求書を一括抽出(または明細タブで手動追加)
  4. まとめ払い選択詳細」タブで各明細を確認・調整:
    • 仕入請求伝票: 支払対象の請求書(選択時に callout が残高等を自動セット)
    • 支払金額: 実際に支払う金額(残高金額との差異が自動計算)
    • 割引金額 / 回収不能額: 差し引く金額
  5. ヘッダーの「支払準備」ボタンを実行 → 「用意済み支払」タブに取引先別の支払が生成されます

用意済み支払はまだ支払の下書きです。「支払印刷/エクスポート」ウィンドウで小切手印刷・支払データのエクスポートを行うと、実際の入金支払伝票が作成されます。生成後の支払は銀行取引明細との照合で消し込みます。

⚠️ 注意: まとめ払い選択は伝票状態(DocStatus/DocAction)を持たないプロセス駆動型のウィンドウです。処理済みフラグ(Processed)と各処理ボタンで進行を管理します。

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

まとめ払い選択タブ(ヘッダー)

Section titled “まとめ払い選択タブ(ヘッダー)”
項目名必須説明
名称必須文字列支払バッチの識別名(デフォルト: 現在日時)
銀行口座必須選択支払元の銀行口座
支払日付必須日付支払実行日
合計必須金額支払合計金額
One Payment Per Invoice-チェック請求書ごとに個別の支払を生成
支払選択詳細作成-ボタン条件に基づき支払対象請求書を抽出
支払準備必須ボタン用意済み支払(Prepared Payments)を生成
Reverse Prepare Payment-ボタン支払準備の取消
処理済み必須チェック処理済みフラグ
項目名必須説明
明細番号必須整数自動採番(最大値+10)
支払方法必須リスト支払手段(デフォルト: S
仕入請求伝票必須検索支払対象の請求書(callout で残高セット)
販売(ON) / 購買(OFF)必須チェック販売取引かどうか
残高金額必須金額請求書の未払残高
支払金額必須金額今回支払う金額(callout で再計算)
割引金額必須金額早期支払割引
回収不能額必須金額貸倒処理額(デフォルト: 0)
差異必須金額残高−(支払+割引+回収不能)の差額
支払選択チェック-検索支払準備後に紐づく用意済み支払
項目名必須説明
取引先必須検索支払先
支払方法必須リスト支払手段
数量必須整数集約された明細(請求書)の件数
支払金額必須金額支払額合計
入金支払伝票-検索確定後に生成された支払伝票
印刷必須チェック印刷済みかどうか

Q. 伝票状態(完了・無効化など)が見当たりません

Section titled “Q. 伝票状態(完了・無効化など)が見当たりません”

まとめ払い選択は DocAction を持たないプロセス駆動型のウィンドウです。「支払選択詳細作成」→「支払準備」→ 支払印刷/エクスポート、という各処理ボタンの実行で進み、処理済みフラグ(Processed)で状態を管理します。

Q. 支払準備をやり直したいときは?

Section titled “Q. 支払準備をやり直したいときは?”

ヘッダーの「Reverse Prepare Payment」ボタンで支払準備を取り消せます(用意済み支払を戻す処理)。取消後に明細を修正し、再度「支払準備」を実行してください。

Q. 実際の支払伝票はいつ作成されますか?

Section titled “Q. 実際の支払伝票はいつ作成されますか?”

「支払準備」で生成されるのは C_PaySelectionCheck(用意済み支払)までです。「支払印刷/エクスポート」ウィンドウでの確定処理(MPaySelectionCheck.confirmPrint)により入金支払伝票(C_Payment)が作成され、用意済み支払の「入金支払伝票」欄に紐づきます。

Q. 同じ取引先の複数請求書が 1 件の支払にまとめられてしまいます

Section titled “Q. 同じ取引先の複数請求書が 1 件の支払にまとめられてしまいます”

用意済み支払は取引先・支払方法単位で明細を集約します(「数量」欄が集約件数)。請求書ごとに支払を分けたい場合は、ヘッダーの「One Payment Per Invoice」にチェックを入れてから支払準備を実行してください。

Q. 支払金額を変えると差異が自動で変わるのはなぜですか?

Section titled “Q. 支払金額を変えると差異が自動で変わるのはなぜですか?”

明細の支払金額・割引金額・回収不能額には callout(CalloutPaySelection.amounts)が設定されており、残高金額との差異(DifferenceAmt)を自動再計算します。仕入請求伝票の選択時も callout(CalloutPaySelection.invoice)が残高等を自動セットします。

🛠 技術仕様(開発者向け)

まとめ払い選択は C_PaySelection(ヘッダー)、C_PaySelectionLine(請求書明細)、C_PaySelectionCheck(用意済み支払)の 3 テーブルで構成されます。MPaySelection クラスは 143 行と薄く(DocAction 非実装)、業務ロジックの中心は MPaySelectionCheck クラス(774行)にあります。支払確定(confirmPrint)による C_Payment 生成もここで実装されています。アクセスレベルは 3 テーブルとも 1(組織)です。

classDiagram
    class MPaySelection {
        +getLines(boolean) MPaySelectionLine[]
        +getC_Currency_ID() int
    }
    class MPaySelectionLine {
        +setInvoice(C_Invoice_ID, isSOTrx, OpenAmt, ...) void
        +getInvoice() MInvoice
    }
    class MPaySelectionCheck {
        +getOfPayment(ctx, C_Payment_ID, trx) MPaySelectionCheck
        +createForPayment(ctx, C_Payment_ID, trx) MPaySelectionCheck
        +confirmPrint(checks, batch, createDepositBatch) int
        +addLine(MPaySelectionLine) void
        +getPaySelectionLines(boolean) MPaySelectionLine[]
        +deleteGeneratedDraft(ctx, C_Payment_ID, trx) boolean
    }
    class X_C_PaySelection {
        <<generated>>
    }
    class PO {
        <<abstract>>
    }
    MPaySelection --|> X_C_PaySelection
    X_C_PaySelection --|> PO
    MPaySelection --> MPaySelectionLine : has many
    MPaySelectionCheck --> MPaySelectionLine : aggregates
    MPaySelection --> MPaySelectionCheck : has many
    MPaySelectionCheck --> MPayment : confirmPrint generates

+getLines(boolean) MPaySelectionLine[] +getC_Currency_ID() int +setInvoice(C_Invoice_ID, isSOTrx, OpenAmt, ...) void +getInvoice() MInvoice +getOfPayment(ctx, C_Payment_ID, trx) MPaySelectionCheck +createForPayment(ctx, C_Payment_ID, trx) MPaySelectionCheck +confirmPrint(checks, batch, createDepositBatch) int +addLine(MPaySelectionLine) void +getPaySelectionLines(boolean) MPaySelectionLine[] +deleteGeneratedDraft(ctx, C_Payment_ID, trx) boolean <> <> > X_C_PaySelection X_C_PaySelection --

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

カラム名必須説明備考
C_PaySelection_IDIDPK支払選択ID主キー
NameString(120)Y名称デフォルト @SQL=SELECT getDate()
C_BankAccount_IDTableDirectY支払元銀行口座
PayDateDateY支払日付デフォルト @#Date@
TotalAmtAmountY合計金額
IsOnePaymentPerInvoiceYesNoN請求書ごと個別支払デフォルト N
CreateFromButtonN支払選択詳細作成
ProcessingButtonY支払準備
ReversePreparePaymentButtonN支払準備の取消
ProcessedYesNoY処理済み

C_PaySelectionLine(まとめ払い選択詳細)

Section titled “C_PaySelectionLine(まとめ払い選択詳細)”
カラム名必須説明備考
C_PaySelectionLine_IDIDPK明細ID主キー
C_PaySelection_IDSearchYヘッダーFK(親)
LineIntegerY明細番号デフォルト @SQL=MAX(Line)+10
PaymentRuleList(1)Y支払方法デフォルト S
C_Invoice_IDSearchY仕入請求伝票callout: CalloutPaySelection.invoice
IsSOTrxYesNoY販売取引フラグ
OpenAmtAmountY残高金額
PayAmtAmountY支払金額callout: CalloutPaySelection.amounts
DiscountAmtAmountY割引金額callout: CalloutPaySelection.amounts
WriteOffAmtAmountY回収不能額デフォルト 0・callout 同上
DifferenceAmtAmountY差異callout: CalloutPaySelection.amounts
C_PaySelectionCheck_IDSearchN用意済み支払FK支払準備で設定

C_PaySelectionCheck(用意済み支払)

Section titled “C_PaySelectionCheck(用意済み支払)”
カラム名必須説明備考
C_PaySelectionCheck_IDIDPK支払チェックID主キー
C_PaySelection_IDSearchYヘッダーFK(親)
C_BPartner_IDSearchY支払先取引先
C_BP_BankAccount_IDTableDirectN取引先銀行口座
PaymentRuleList(1)Y支払方法
QtyIntegerY集約明細数
PayAmt / DiscountAmt / WriteOffAmtAmountY支払・割引・回収不能額
DocumentNoString(30)N伝票番号(小切手番号等)
IsReceiptYesNoY入金フラグ
C_Payment_IDSearchN生成された支払伝票confirmPrint で設定
IsPrintedYesNoY印刷済み
IsGeneratedDraftYesNoY下書き生成フラグデフォルト N
flowchart TD
    A[C_PaySelectionLine<br/>支払対象明細] -->|支払準備 Processing| B[MPaySelectionCheck 生成<br/>取引先・支払方法単位で集約]
    B --> C[addLine で明細を紐付け<br/>C_PaySelectionLine.C_PaySelectionCheck_ID]
    C -->|支払印刷/エクスポート| D[confirmPrint]
    D --> E[C_Payment 生成<br/>C_PaySelectionCheck.C_Payment_ID に設定]
    E --> F[入金支払伝票として処理・消込へ]

支払準備 Processing 支払印刷/エクスポート C_PaySelectionLine 支払対象明細 MPaySelectionCheck 生成 取引先・支払方法単位で集約 addLine で明細を紐付け C_PaySelectionLine.C_PaySelectionCheck_ID C_Payment 生成 C_PaySelectionCheck.C_Payment_ID に設定 入金支払伝票として処理・消込へ

  • confirmPrint(checks, batch, ...): 用意済み支払から実際の支払伝票(C_Payment)を確定生成します
  • createForPayment(ctx, C_Payment_ID, trx): 逆に既存の支払から支払チェックを生成する API
  • deleteGeneratedDraft(ctx, C_Payment_ID, trx): 下書きとして生成された支払(IsGeneratedDraft=Y)の削除

MPaySelection は DocAction インターフェースを実装していません(processIt/completeIt 等なし)。伝票ワークフローではなく、CreateFrom / Processing / ReversePreparePayment の各プロセスボタンで駆動されます。

  • Model Validator: C_PaySelection は Document 型でないため docValidate() は使えません。明細生成・支払準備結果への介入は modelChange()(C_PaySelectionLine / C_PaySelectionCheck の TYPE_BEFORE/AFTER_NEW 等)で行います
  • Callout: 標準で CalloutPaySelection.invoice(C_Invoice_ID)、CalloutPaySelection.amounts(PayAmt/DiscountAmt/WriteOffAmt/DifferenceAmt)が設定されています
  • 支払データ出力: 全銀フォーマット等の独自支払データ出力は、支払印刷/エクスポートの出力層(Payment Export)を OSGi プラグインで差し替えて実装するのが一般的です
ボタン/プロセス説明
支払選択詳細作成(CreateFrom)条件に基づき支払対象の仕入請求書から明細を生成
支払準備(Processing)用意済み支払(Prepared Payments)を生成
Reverse Prepare Payment支払準備の取消

まとめ払い選択は、全銀フォーマットでの振込データ出力や支払承認フローの追加など、日本の買掛金支払業務に合わせた拡張ニーズが多い領域です。

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

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