iDempiere 仕入請求書の使い方|購買管理 操作マニュアル・技術仕様
仕入請求書は、仕入先からの請求を記録し買掛金(債務)を計上する伝票です。売上請求書と同じ C_Invoice テーブルを使用しますが、伝票タイプ(IsSOTrx=N)で購買側として区別されます。仕入請求書の完成時に仕入と買掛金の会計仕訳が自動生成されます。
仕入請求書でできること
Section titled “仕入請求書でできること”- 仕入先からの請求の記録
- 買掛金(債務)の計上
- 発注伝票・入荷伝票からの自動生成
- 仕入・買掛金の会計仕訳の自動生成
- 仕入諸掛(Landed Cost)の配賦
- 発注-入荷-請求の3方マッチング
- 支払消込との連携
🖥️ インタラクティブ画面レイアウト: AD メタデータから自動生成した 仕入請求伝票の全タブ・全フィールド レイアウト(HTML版) で、実際の画面配置をご確認いただけます。
📖 購買管理の全体像: 購買管理の業務フロー全体図 も合わせてご覧ください。
graph TD
subgraph "仕入請求書ウィンドウ (Window ID: 183)"
T1["📋 仕入請求伝票<br/>C_Invoice<br/>49項目"]
T2["📦 仕入請求伝票明細<br/>C_InvoiceLine<br/>35項目"]
T3["🔗 仕入諸掛按分基準<br/>C_LandedCost<br/>11項目"]
T4["🔗 仕入諸掛配賦<br/>C_LandedCostAllocation<br/>9項目"]
T5["🔗 発注照合<br/>M_MatchPO<br/>10項目"]
T6["🔗 請求照合<br/>M_MatchInv<br/>10項目"]
T7["📋 税額計算<br/>C_InvoiceTax<br/>8項目"]
T8["📋 支払スケジュール<br/>C_InvoicePaySchedule<br/>11項目"]
T9["📋 消込伝票明細<br/>C_AllocationLine<br/>10項目"]
end
T1 --> T2
T2 --> T3
T2 --> T4
T2 --> T5
T2 --> T6
T1 --> T7
T1 --> T8
T1 --> T9
| タブ名 | テーブル | 役割 |
|---|---|---|
| 仕入請求伝票 | C_Invoice | ヘッダー情報(仕入先・日付・金額等) |
| 仕入請求伝票明細 | C_InvoiceLine | 品目・数量・単価の明細行 |
| 仕入諸掛按分基準 | C_LandedCost | 仕入諸掛の配賦ルール |
| 仕入諸掛配賦 | C_LandedCostAllocation | 諸掛の配賦先明細 |
| 発注照合 | M_MatchPO | 発注との照合状況 |
| 請求照合 | M_MatchInv | 入荷との照合状況 |
| 税額計算 | C_InvoiceTax | 税額の自動計算結果 |
| 支払スケジュール | C_InvoicePaySchedule | 分割払いのスケジュール |
| 消込伝票明細 | C_AllocationLine | 支払消込の状況 |
📌 ポイント: 仕入請求伝票明細タブの下に「仕入諸掛按分基準」「仕入諸掛配賦」「発注照合」「請求照合」の4つの子タブがあります。ヘッダータブ直下には「税額計算」「支払スケジュール」「消込伝票明細」が配置され、支払消込の状況をヘッダーレベルで管理します。
基本操作フロー
Section titled “基本操作フロー”graph TD
A["🚀 開始"] --> B["新規ボタンをクリック"]
B --> C["ヘッダー情報を入力<br/>(伝票タイプ・請求日付・仕入先・価格表・支払条件)"]
C --> D["保存"]
D --> E{"明細の入力方法"}
E -->|自動取込(推奨)| F["「Create lines from」ボタンで<br/>入荷伝票または発注伝票から<br/>明細を取り込み"]
E -->|手動入力| G["仕入請求伝票明細タブで<br/>品目・数量・単価を入力"]
F --> H["仕入先の請求書と<br/>金額を照合・修正"]
G --> H
H --> I{"仕入諸掛あり?"}
I -->|あり| J["諸掛の明細行を追加<br/>(料金として登録)"]
J --> K["仕入諸掛按分基準タブで<br/>配賦ルールを設定"]
K --> L["伝票アクションボタンで<br/>「完了」を実行"]
I -->|なし| L
L --> M["✅ 仕入請求書 完了"]
M --> N["仕入・買掛金の<br/>会計仕訳が自動生成"]
M --> O["発注・入荷との<br/>照合レコードが自動作成"]
M --> P["支払処理へ"]
💡 ヒント: 「Create lines from」で入荷伝票を指定すると、入荷済みの品目と数量が自動で展開されます。仕入先の請求書と照合して単価が異なる場合は手動修正してください。単価差異は完了時に「価格差異勘定」へ自動計上されます。
基本操作手順
Section titled “基本操作手順”アクセス方法
Section titled “アクセス方法”メニューから「購買管理 > 仕入請求伝票(標準)」を開きます。
📌 ポイント: 仕入請求書(Vendor Invoice)は売上請求書(Customer Invoice)と同じ
C_Invoiceテーブルを共有しています。IsSOTrx = 'N'フラグで購買側として区別されます。
入荷・発注からの作成(推奨)
Section titled “入荷・発注からの作成(推奨)”- 「新規」ボタンをクリック
- ヘッダー情報を入力:
- 伝票タイプ: 「仕入請求伝票」を選択
- 請求日付: 仕入先の請求日を入力
- 取引先(仕入先): 仕入先を選択
- 価格表: 購買用価格表を選択
- 支払条件: 仕入先との支払条件
- 「保存」をクリック
- 「Create lines from」ボタンで入荷伝票または発注伝票から明細を取り込み
- 金額を仕入先の請求書と照合・修正
- 「伝票アクション」ボタンで「完了」を実行
完了処理により:
- 仕入・買掛金の会計仕訳が生成
- 発注/入荷との照合レコードが自動作成
⚠️ 注意: 仕入請求書を完了すると買掛金(債務)が計上されます。支払条件の設定が正しいことを完了前に必ず確認してください。誤った支払条件で完了した場合、支払スケジュールの修正が必要になります。
仕入諸掛(Landed Cost)の配賦
Section titled “仕入諸掛(Landed Cost)の配賦”運賃・保険料等の仕入諸掛を品目原価に配賦する場合:
- 仕入請求伝票明細に諸掛の明細行を追加(料金として登録)
- 「仕入諸掛按分基準」タブで配賦ルールを設定(数量按分、金額按分 等)
- 伝票完了時に諸掛が品目原価に自動配賦
📌 ポイント: 仕入諸掛(Landed Cost)は運賃・保険料・関税等を品目の原価に含める機能です。配賦方法には「数量按分」「金額按分」「重量按分」等があります。配賦先の入荷伝票明細を「仕入諸掛按分基準」タブで指定します。
項目リファレンス
Section titled “項目リファレンス”仕入請求伝票タブ(ヘッダー)
Section titled “仕入請求伝票タブ(ヘッダー)”| 項目名 | 型 | 説明 |
|---|---|---|
| 伝票タイプ | 選択 | 仕入請求伝票、仕入貸方伝票 等 |
| 請求日付 | 日付 | 仕入先の請求日 |
| 転記日付 | 日付 | 会計上の転記日付 |
| 取引先 | 検索 | 仕入先 |
| 価格表 | 選択 | 購買用価格表 |
| 支払条件 | 選択 | 仕入先との支払条件 |
| 支払方法 | リスト | 支払方法 |
仕入請求伝票明細タブ
Section titled “仕入請求伝票明細タブ”| 項目名 | 型 | 説明 |
|---|---|---|
| 品目 | 検索 | 仕入品目 |
| 数量 | 数量 | 仕入数量 |
| 単価 | 金額 | 仕入単価 |
| 税率 | 選択 | 適用する税率 |
| 行合計 | 金額 | 数量 x 単価 |
よくある質問(FAQ)
Section titled “よくある質問(FAQ)”Q. 仕入請求書を入荷なしで作成できますか?
Section titled “Q. 仕入請求書を入荷なしで作成できますか?”はい。サービス品目や前払い等、入荷を伴わない仕入では、仕入請求書のみを作成できます。
Q. 仕入先からの貸方メモ(値引・返品)はどう処理しますか?
Section titled “Q. 仕入先からの貸方メモ(値引・返品)はどう処理しますか?”伝票タイプ「仕入貸方伝票」で作成します。完了時に買掛金が減額されます。
Q. マッチングで差異が出た場合は?
Section titled “Q. マッチングで差異が出た場合は?”「発注照合」「請求照合」タブで差異を確認できます。価格差異は会計上「価格差異勘定」に自動計上されます。
⚠️ 注意: 価格差異が大きい場合は、発注単価と仕入先の請求単価を再確認してください。単価誤入力のまま完了すると、後から修正するために仕入貸方伝票(Credit Memo)の作成が必要になります。
業務フロー上の位置づけ
Section titled “業務フロー上の位置づけ”graph TD
A[発注伝票] -->|請求| B[仕入請求書]
C[入荷伝票] -->|マッチング| B
B -->|会計仕訳| D[総勘定元帳]
B -->|消込| E[支払]
B -->|諸掛配賦| F[品目原価]
OSS ERP導入についてのご相談
Section titled “OSS ERP導入についてのご相談”As-Link株式会社では、iDempiereの導入支援・カスタマイズ開発を承っております。
🛠 技術仕様(開発者向け)
仕入請求書は Document 型の伝票で、C_Invoice テーブルに IsSOTrx=N として格納されます。売上請求書と同じ MInvoice クラス(3,662行)を共有し、購買固有のロジック(買掛金転記、入荷マッチング、ランデッドコスト配賦、価格差異計上)が IsSOTrx フラグで分岐制御されます。
アーキテクチャ概要
Section titled “アーキテクチャ概要”classDiagram
class MInvoice {
+prepareIt() String
+completeIt() String
+voidIt() boolean
+closeIt() boolean
+reverseCorrectIt() boolean
+calculateTaxTotal() boolean
}
class X_C_Invoice {
<<generated>>
}
class PO {
<<abstract>>
}
class DocAction {
<<interface>>
}
class IDocsPostProcess {
<<interface>>
}
MInvoice --|> X_C_Invoice
X_C_Invoice --|> PO
MInvoice ..|> DocAction
MInvoice ..|> IDocsPostProcess
MInvoice --> MInvoiceLine : has many
MInvoice --> MInvoiceTax : has many
パッケージ: org.compiere.model
ソースファイル: org.adempiere.base/src/org/compiere/model/MInvoice.java
関連DBテーブル
Section titled “関連DBテーブル”C_Invoice(仕入請求書ヘッダー、IsSOTrx=N)
Section titled “C_Invoice(仕入請求書ヘッダー、IsSOTrx=N)”売上請求書と同一テーブルを使用。IsSOTrx=N で仕入として動作。
⚠️ 注意: 仕入請求書は売上請求書と同じ
C_Invoiceテーブル・MInvoiceクラスを共有します。completeIt()内のランデッドコスト配賦・価格差異計上・M_MatchInv生成は購買側(IsSOTrx=N)のみで実行されます。これらの処理をカスタマイズする場合は、IsSOTrxによる分岐に細心の注意を払ってください。
| カラム名 | 型 | 必須 | 説明 | 備考 |
|---|---|---|---|---|
| C_Invoice_ID | ID | PK | 請求書ID | 主キー |
| IsSOTrx | YesNo | Y | 販売取引フラグ | N=仕入 |
| DocumentNo | String | Y | 伝票番号 | |
| C_DocType_ID | TableDirect | Y | 伝票タイプ | API(仕入請求書) |
| C_DocTypeTarget_ID | Table | Y | 対象伝票タイプ | |
| DocStatus | List | Y | 伝票状態 | DR/IP/CO/CL/VO/RE |
| C_BPartner_ID | Search | Y | 仕入先 | |
| DateInvoiced | Date | Y | 請求日付 | |
| DateAcct | Date | Y | 転記日付 | |
| M_PriceList_ID | TableDirect | Y | 購買価格表 | |
| C_Currency_ID | TableDirect | Y | 通貨 | |
| C_PaymentTerm_ID | TableDirect | Y | 支払条件 | |
| TotalLines | Amount | Y | 明細行合計 | |
| GrandTotal | Amount | Y | 総合計 | |
| C_Order_ID | Search | N | 発注伝票 | |
| IsPaid | YesNo | Y | 支払済み | |
| Processed | YesNo | Y | 処理済み | |
| Posted | Button | Y | 転記 |
C_InvoiceLine(仕入請求書明細)
Section titled “C_InvoiceLine(仕入請求書明細)”| カラム名 | 型 | 必須 | 説明 |
|---|---|---|---|
| C_InvoiceLine_ID | ID | PK | 明細ID |
| C_Invoice_ID | Search | Y | ヘッダーFK |
| Line | Integer | Y | 行番号 |
| M_Product_ID | Search | N | 品目 |
| QtyInvoiced | Quantity | Y | 請求数量 |
| PriceActual | Amount | Y | 実単価 |
| LineNetAmt | Amount | Y | 行合計 |
| C_Tax_ID | TableDirect | Y | 税率 |
| C_OrderLine_ID | Search | N | 発注明細FK |
| M_InOutLine_ID | Search | N | 入荷明細FK |
erDiagram
C_Invoice ||--o{ C_InvoiceLine : "has"
C_Invoice ||--o{ C_InvoiceTax : "has"
C_Invoice }o--|| C_BPartner : "vendor"
C_Invoice }o--o| C_Order : "from PO"
C_InvoiceLine }o--o| C_OrderLine : "from PO line"
C_InvoiceLine }o--o| M_InOutLine : "from receipt line"
C_InvoiceLine ||--o{ M_MatchInv : "receipt matching"
C_InvoiceLine ||--o{ M_MatchPO : "PO matching"
C_Invoice ||--o{ C_LandedCostAllocation : "landed cost"
C_Invoice ||--o{ Fact_Acct : "AP posting"
ビジネスロジック
Section titled “ビジネスロジック”completeIt() の仕入固有処理
Section titled “completeIt() の仕入固有処理”ModelValidator.TIMING_BEFORE_COMPLETEイベント発火- 税金の最終計算
- 入荷マッチング(
M_MatchInvレコードの自動生成) - 発注マッチング(
M_MatchPOレコードの更新) - 買掛金(AP)の会計転記準備
- 発注の請求済数量(QtyInvoiced)更新
- ランデッドコスト配賦(
C_LandedCostAllocationの生成) - 価格差異の計上(発注単価と請求単価の差異)
- 取引先の買掛残高更新
ModelValidator.TIMING_AFTER_COMPLETEイベント発火
伝票処理フロー
Section titled “伝票処理フロー”stateDiagram-v2
[*] --> Drafted : 新規作成
Drafted --> InProgress : prepareIt()
InProgress --> Completed : completeIt()
Completed --> Closed : closeIt()
Completed --> Voided : voidIt()
Completed --> Reversed : reverseCorrectIt()
価格差異(Price Variance)
Section titled “価格差異(Price Variance)”📌 ポイント: 価格差異の計上先勘定(
Purchase Price Variance)はM_Product_Category_AcctまたはC_AcctSchema_Defaultで定義されます。差異が意図せず計上されている場合はM_CostDetailテーブルとFact_AcctテーブルをC_InvoiceLine_IDで横断検索すると原因を特定しやすいです。
発注単価と仕入請求単価に差異がある場合:
- 標準原価計算: 差異は
Purchase Price Variance勘定に計上 - 平均原価計算: 差異は品目の平均原価に反映
M_CostDetailに原価明細レコードが生成
ランデッドコスト配賦
Section titled “ランデッドコスト配賦”仕入請求書に C_LandedCost を設定することで付随費用を入荷品目に配賦:
- 配賦方法: 数量按分、金額按分、重量按分、容積按分
- 配賦先: 指定した入荷伝票の品目に按分
C_LandedCostAllocationテーブルに配賦結果を記録M_CostDetailに原価への反映を記録
Callout
Section titled “Callout”| Calloutクラス | メソッド | トリガーフィールド | 処理内容 |
|---|---|---|---|
| CalloutInvoice | docType | C_DocTypeTarget_ID | 仕入用伝票タイプの初期値セット |
| CalloutInvoice | bPartner | C_BPartner_ID | 仕入先情報の自動セット |
| CalloutInvoice | paymentTerm | C_PaymentTerm_ID | 支払条件に基づくスケジュール生成 |
| CalloutInvoice | product | M_Product_ID | 品目情報・購買価格の自動セット |
| CalloutInvoice | tax | C_Tax_ID | 税額の再計算 |
| CalloutInvoice | amt | PriceActual / QtyInvoiced | 金額の再計算 |
Calloutソース: org.adempiere.base.callout/src/org/compiere/model/CalloutInvoice.java
💡 ヒント: 仕入先からの請求書番号(Vendor Invoice Number)を
DocumentNoとは別に管理したい場合は、AD_Columnにカスタムカラムを追加し、Callout で仕入先変更時のバリデーションを行う実装が一般的です。重複チェックにはDB.getSQLValue()を使ったシンプルな SELECT が有効です。
拡張ポイント(カスタマイズ箇所)
Section titled “拡張ポイント(カスタマイズ箇所)”OSGi Model Validator(推奨)
Section titled “OSGi Model Validator(推奨)”仕入請求書に独自バリデーションを追加する最も安全な方法:
public class CustomVendorInvoiceValidator implements ModelValidator { @Override public String docValidate(PO po, int timing) { if (po instanceof MInvoice) { MInvoice invoice = (MInvoice) po; if (!invoice.isSOTrx() && timing == TIMING_BEFORE_COMPLETE) { // 例: 入荷マッチング必須チェック MInvoiceLine[] lines = invoice.getLines(false); for (MInvoiceLine line : lines) { if (line.getM_Product_ID() > 0 && line.getM_InOutLine_ID() <= 0) { return "入荷伝票との照合が未完了の明細があります"; } } } } return null; }}会計転記のカスタマイズ
Section titled “会計転記のカスタマイズ”Doc_Invoice の AP 転記ロジックをカスタマイズし、独自の勘定科目割当や部門別配賦を実装可能。
🔧 カスタマイズ: 部門別・プロジェクト別の AP 配賦が必要な場合、
C_InvoiceLineにAD_OrgTrx_ID(取引組織)やC_Project_ID(プロジェクト)カラムを活用することで、標準の会計転記エンジン内でディメンション別配賦が実現できます。カスタム仕訳ロジックを実装する前に標準機能での対応可否を確認してください。
関連プロセス
Section titled “関連プロセス”| プロセス名 | 説明 |
|---|---|
| 伝票アクション (DocAction) | 伝票の完了・無効・取消等 |
| 発注から仕入請求書生成 | 発注伝票から請求書を一括生成 |
| 入荷から仕入請求書生成 | 入荷伝票から請求書を一括生成 |
| ランデッドコスト配賦 | 付随費用の按分処理 |
| 支払処理 | 買掛金の支払処理 |
関連ドキュメント
Section titled “関連ドキュメント”iDempiereカスタマイズのご相談
Section titled “iDempiereカスタマイズのご相談”iDempiereの仕入請求書は Model Validator や Callout で安全にカスタマイズできます。 ランデッドコスト配賦、価格差異管理、支払承認フローをコア改変なしで拡張可能です。
As-Link株式会社では、OSGiプラグインによる安全なカスタマイズを提供しています。