コンテンツにスキップ

iDempiere 経費請求書(アルファ)の使い方|購買管理 操作マニュアル・技術仕様

📖 購買管理の全体像: 購買管理の全体図 も合わせてご覧ください。

経費請求書(アルファ)(Expense Invoice (Alpha))は、仕入先からの経費系の買掛請求書を、品目を使わず「料金(Charge)」ベースの明細で入力するために用意されたウィンドウです。名称のとおりアルファ機能として位置づけられており、iDempiere 13 標準ではこの画面は無効化され、標準メニューにも登録されていません

⚠️ 注意: この画面は旧バージョンからの互換用です。新規の業務設計では、通常の仕入請求伝票、または経費請求書をまとめて起票する請求一括作成伝票を使用してください。

📌 ポイント: 経費請求書(アルファ)は独自テーブルを持たず、通常の請求書と同じ C_Invoice / C_InvoiceLine に書き込みます。つまり入力画面が違うだけで、生成されるデータは通常の請求書と同一です。

経費請求書(アルファ)でできること

Section titled “経費請求書(アルファ)でできること”
  • 仕入先からの経費請求書のヘッダー入力(取引先・請求日付・支払条件・通貨)
  • 料金(C_Charge_ID)ベースの明細入力(品目・数量を持たない経費行)
  • 明細ごとの税率(C_Tax_ID)・税額(TaxAmt)・税込行合計(LineTotalAmt)の管理
  • 明細行合計(TotalLines)・総合計(GrandTotal)の集計
  • 伝票アクション(DocAction)による完了・転記までの伝票処理
  • プロジェクト・アクティビティ・営業活動・ユーザー1/2 による会計ディメンションの付与

経費請求書(アルファ)は 2 タブ構成です。

タブ名テーブル項目数役割
請求書C_Invoice25項目請求書ヘッダー(取引先・日付・支払条件・金額・伝票処理)
インクルード済み詳細C_InvoiceLine7項目料金ベースの経費明細(料金・税率・行合計)

💡 ヒント: 明細タブは通常の請求書明細と異なり、品目・数量・単価の項目が表示されません。料金コードと行合計金額を直接入力する構成のため、金額だけが決まっている経費(会費・手数料など)の入力に適した画面になっています。

graph TD
    A["🚀 画面を開く<br/>(標準メニュー未登録のため<br/>有効化が必要)"] --> B["➕ ヘッダーを入力<br/>取引先・伝票タイプ・請求日付"]
    B --> C["💴 価格表・通貨・支払条件<br/>支払方法を確認"]
    C --> D["📋 明細タブで料金行を追加<br/>料金・税率・行合計"]
    D --> E["🧮 明細行合計・総合計を確認"]
    E --> F["▶ 請求プロセス(DocAction)で<br/>完了"]
    F --> G["📒 転記(Posted)"]

画面を開く (標準メニュー未登録のため 有効化が必要) ヘッダーを入力 取引先・伝票タイプ・請求日付 価格表・通貨・支払条件 支払方法を確認 明細タブで料金行を追加 料金・税率・行合計 明細行合計・総合計を確認 ▶ 請求プロセス(DocAction)で 完了 転記(Posted)

アクセス方法(メニューパス)

Section titled “アクセス方法(メニューパス)”

iDempiere 13 標準ではメニューに登録されていません(AD_Window_ID: 262、間接使用扱い)。参照する場合はアプリケーション辞書側でウィンドウを有効化し、メニュー項目を作成する必要があります。既定の運用では利用しないことを推奨します。

  1. 新規」ボタンをクリック
  2. ヘッダー必須項目を入力:
    • 伝票タイプC_DocTypeTarget_ID): 買掛請求書の伝票タイプ
    • 伝票番号: 伝票タイプの採番ルールに従う
    • 請求日付 / 転記日付
    • 取引先 / 取引先住所
    • 価格表 / 通貨
    • 支払方法PaymentRule) / 支払条件C_PaymentTerm_ID
  3. 必要に応じて プロジェクト・アクティビティ・営業活動・取引組織・ユーザー1/2 を設定
  4. 保存」をクリック

明細(インクルード済み詳細)の入力

Section titled “明細(インクルード済み詳細)の入力”
  1. インクルード済み詳細」タブに移動
  2. 明細行を追加:
    • 明細番号Line
    • 料金C_Charge_ID): 経費の勘定を決める料金コード
    • 税率C_Tax_ID
    • 行合計LineNetAmt): 税抜の行金額
    • 必要に応じて 税額TaxAmt) / 税込行合計LineTotalAmt
  3. ヘッダーに戻り、明細行合計総合計が想定どおりか確認

C_InvoiceDocStatus / DocAction を持つ Document 型テーブルです。伝票処理の流れは通常の請求書と同一です。

graph LR
    A["起票 Drafted"] --> B["準備 In Progress"]
    B --> C["完了 Completed"]
    C --> D["転記 Posted"]
    C --> E["取消・逆仕訳"]
    B --> F["無効 Voided"]

起票 Drafted 準備 In Progress 完了 Completed 転記 Posted 取消・逆仕訳 無効 Voided

📌 ポイント: 完了処理・転記処理は MInvoice(3,662行)の共通ロジックが担当します。したがって、会計仕訳・支払スケジュール生成・照合処理の挙動は通常の仕入請求伝票と同じです。

項目名必須説明
伝票番号必須文字列伝票の採番
伝票タイプ必須選択対象伝票タイプ(買掛請求書)
請求日付必須日付請求書に印字される日付
転記日付必須日付会計計上日
取引先必須検索仕入先
取引先住所必須選択請求元住所
価格表必須選択適用する価格表
通貨必須選択取引通貨
支払方法必須リスト支払手段
支払条件必須選択支払期日・割引条件
発注参照伝票番号-文字列仕入先側の参照番号
社内担当者-検索担当者
プロジェクト-選択会計ディメンション
アクティビティ-選択会計ディメンション
明細行合計必須金額明細合計(税抜)
総合計必須金額伝票総額
伝票状態必須リスト伝票のステータス
請求プロセス必須ボタン伝票アクションの実行
転記必須ボタン転記状態
項目名必須説明
明細番号必須整数行番号
料金-選択経費の料金コード
説明-テキスト明細の説明
税率必須選択適用税率
行合計必須金額税抜の行金額
税額-金額明細の税額
税込行合計-金額税込の行合計

全項目一覧はリファレンス参照

Q. この画面はメニューから開けません

Section titled “Q. この画面はメニューから開けません”

iDempiere 13 標準ではこのウィンドウが無効化されており、メニューにも登録されていないためです。旧バージョンからの互換用として辞書上に残されているもので、通常の運用では仕入請求伝票を使用してください。

Q. 通常の仕入請求伝票と何が違いますか?

Section titled “Q. 通常の仕入請求伝票と何が違いますか?”

格納先テーブルは同じ C_Invoice / C_InvoiceLine で、生成されるデータに違いはありません。異なるのは画面に表示される項目だけで、経費請求書(アルファ)は明細から品目・数量・単価を省き、料金と金額のみで入力できるよう絞り込んだ構成になっています。

Q. 経費の一括入力をしたい場合はどうすればよいですか?

Section titled “Q. 経費の一括入力をしたい場合はどうすればよいですか?”

複数の経費請求書をまとめて起票する用途には、請求一括作成伝票(Invoice Batch)が適しています。明細を入力してバッチ処理を実行すると、取引先・住所・伝票番号の区切りごとに実際の請求書が生成されます。

Q. 明細で品目を使いたいのですが

Section titled “Q. 明細で品目を使いたいのですが”

このウィンドウの明細タブには品目項目がありません。品目を伴う仕入は通常の仕入請求伝票で入力してください。

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

経費請求書(アルファ)は AD_Window_ID 262 のウィンドウ定義であり、専用テーブルを持ちません。ヘッダーは C_Invoice(“Invoice Identifier”)、明細は C_InvoiceLine(“Invoice Detail Line”)で、いずれもアクセスレベル 1(組織)です。モデルクラスは MInvoice(3,662行)および MInvoiceLine で、通常の請求書と完全に共通です。

classDiagram
    class MInvoice {
        +prepareIt() String
        +completeIt() String
        +voidIt() boolean
        +closeIt() boolean
        +reverseCorrectIt() boolean
        +getLines() MInvoiceLine[]
    }
    class DocAction {
        <<interface>>
    }
    class X_C_Invoice {
        <<generated>>
    }
    class X_C_InvoiceLine {
        <<generated>>
    }
    class PO {
        <<abstract>>
    }
    MInvoice --|> X_C_Invoice
    MInvoice ..|> DocAction
    X_C_Invoice --|> PO
    MInvoiceLine --|> X_C_InvoiceLine
    X_C_InvoiceLine --|> PO
    MInvoice --> MInvoiceLine : has many

+prepareIt() String +completeIt() String +voidIt() boolean +closeIt() boolean +reverseCorrectIt() boolean +getLines() MInvoiceLine[] <> <> <> > X_C_Invoice MInvoice .. > PO MInvoiceLine --

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

C_Invoice(請求書ヘッダー・当ウィンドウで使用する主要カラム)

Section titled “C_Invoice(請求書ヘッダー・当ウィンドウで使用する主要カラム)”
カラム名必須説明備考
C_Invoice_IDIDPK請求書ID主キー
DocumentNoStringY伝票番号伝票タイプの採番に従う
C_DocTypeTarget_IDTableY対象伝票タイプ完了時に C_DocType_ID へ確定
C_DocType_IDTable DirectY伝票タイプ
DateInvoicedDateY請求日付
DateAcctDateY転記日付
C_BPartner_IDSearchY取引先
C_BPartner_Location_IDTable DirectY取引先住所
M_PriceList_IDTable DirectY価格表
C_Currency_IDTable DirectY通貨
PaymentRulePaymentY支払方法
C_PaymentTerm_IDTable DirectY支払条件
TotalLinesAmountY明細行合計
GrandTotalAmountY総合計
DocStatusListY伝票状態
DocActionButtonY伝票アクション
PostedButtonY転記状態
POReferenceStringN発注参照伝票番号
C_Project_ID / C_Activity_ID / C_Campaign_ID-N会計ディメンション
User1_ID / User2_IDSearchNユーザー定義要素

C_InvoiceLine(当ウィンドウで表示される主要カラム)

Section titled “C_InvoiceLine(当ウィンドウで表示される主要カラム)”
カラム名必須説明
C_InvoiceLine_IDIDPK明細ID
LineIntegerY明細番号
C_Charge_IDTable DirectN料金
C_Tax_IDTable DirectY税率
LineNetAmtAmountY行合計(税抜)
TaxAmtAmountN税額
LineTotalAmtAmountN税込行合計
DescriptionTextN説明
erDiagram
    C_Invoice ||--o{ C_InvoiceLine : "lines"
    C_Invoice }o--|| C_BPartner : "vendor"
    C_Invoice }o--|| C_PaymentTerm : "terms"
    C_Invoice }o--|| C_DocType : "doc type"
    C_InvoiceLine }o--o| C_Charge : "expense charge"
    C_InvoiceLine }o--|| C_Tax : "tax"
    C_InvoiceLine ||--o{ M_MatchInv : "matched"

doc type expense charge

ヘッダー・明細のロジックは通常の請求書と共通で、MInvoiceprepareIt() / completeIt() / voidIt() / reverseCorrectIt() などの DocAction 実装が使用されます。当ウィンドウ固有のビジネスロジックはソース上に存在せず、ウィンドウ定義(表示フィールドの絞り込み)のみが差分です。

⚠️ 注意: アルファ機能として無効化されている画面のため、UI 側の入力補助(品目関連の Callout など)が働かない構成になっています。料金・税率・金額の整合は入力者が担保する前提です。

拡張ポイント(カスタマイズ箇所)

Section titled “拡張ポイント(カスタマイズ箇所)”

C_Invoice は Document 型のため、modelChange() に加えて docValidate() を利用できます。

public class CustomExpenseInvoiceValidator implements ModelValidator {
@Override
public String docValidate(PO po, int timing) {
if (po instanceof MInvoice && timing == TIMING_BEFORE_COMPLETE) {
MInvoice inv = (MInvoice) po;
// 例: 買掛の経費請求では料金コードを必須にする
if (!inv.isSOTrx()) {
for (MInvoiceLine line : inv.getLines()) {
if (line.getC_Charge_ID() == 0 && line.getM_Product_ID() == 0) {
return "経費明細には料金または品目を指定してください";
}
}
}
}
return null;
}
}

当ウィンドウで表示される C_Invoice / C_InvoiceLine のカラムには、請求書共通の Callout が AD_Column.Callout 経由で適用されます。経費入力に特化した補助(料金選択時の税率自動セット等)を追加する場合は、独自 Callout を AD_Column に登録します。

新規導入では、この画面を有効化するよりも次のいずれかを推奨します。

目的推奨機能
単票の経費請求入力仕入請求伝票
複数経費請求の一括起票請求一括作成伝票
従業員経費の精算経費精算(Expense Report)

経費請求の入力画面は、料金体系や会計ディメンションの運用に合わせて設計し直すことで、入力工数を大きく削減できます。 アルファ機能に頼らず、専用ウィンドウやインポート機能として実装する方法もご提案可能です。

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

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