コンテンツにスキップ

iDempiere 売上請求書(Sales Invoice)|操作マニュアル・技術仕様

📖 販売管理の全体像: 販売管理の業務フロー全体図 も合わせてご覧ください。

売上請求書は、得意先への売上を認識し債権を計上する伝票です。五伝票制の伝票会計における「売上伝票」に相当し、売上請求書の完成時に売上と債権(売掛金)が認識され、消費税も確定します。

在庫管理しないサービス品目などは、受注伝票や出荷伝票を作成せずに、売上請求書だけを作成することもできます。

  • 得意先への売上請求の記録
  • 受注伝票・出荷伝票からの自動生成
  • 売上・売掛金の会計仕訳の自動生成(完成時)
  • 消費税の自動計算
  • 貸方メモ(Credit Memo)・借方メモ(Debit Memo)の作成
  • 支払スケジュール(分割払い)の管理
  • 入金消込との連携

🖥️ インタラクティブ画面レイアウト: AD メタデータから自動生成した 売上請求伝票の全タブ・全フィールド レイアウト(HTML版) で、実際の画面配置をご確認いただけます。

画面レイアウト(ヘッダータブ)

Section titled “画面レイアウト(ヘッダータブ)”
┌─ 売上請求書(Sales Invoice)─────────────────────────────────────────────┐
│ │
│ クライアント [▼ Table Direct] 組織 [▼ Table Direct] │
│ 伝票番号 [________________] 注文参照 [________________] │
│ 説明 [_______________________________________________] │
│ │
│ ── 伝票タイプ・日付 ────────────────────────────────────────────────── │
│ 対象伝票タイプ [▼ Table] │
│ 請求日付 [📅 Date] 転記日付 [📅 Date] │
│ │
│ ── 取引先情報 ──────────────────────────────────────────────────────── │
│ 取引先 [🔍 Search] 取引先住所 [▼ Table Direct] │
│ 担当者 [▼ Table Direct] │
│ │
│ ── 価格・通貨 ──────────────────────────────────────────────────────── │
│ 価格表 [▼ Table Direct] 通貨 [▼ Table Direct] │
│ 支払方法 [▼ List] 支払条件 [▼ Table Direct] │
│ │
│ ── 合計・ステータス ────────────────────────────────────────────────── │
│ 明細行合計 [¥_________] 総合計 [¥_________] │
│ 伝票状態 [▼ List] 伝票タイプ [▼ Table Direct] │
│ [明細行コピー] [請求処理] │
│ │
│ [請求伝票] [請求明細] [税額計算] [支払スケジュール] [消込] │
└──────────────────────────────────────────────────────────────────────────┘

📌 ポイント: この図はADメタデータ(AD_Field.XPosition, IsSameLine)から再現した実際のUI配置です。画面は2カラム構成で、左列(XPosition=1)と右列(XPosition=4)にフィールドが配置されます。

graph TD
    subgraph "売上請求書ウィンドウ(Window ID: 167)"
        T1["🧾 売上請求伝票<br/>C_Invoice<br/>51項目"]
        T2["📝 売上請求伝票明細<br/>C_InvoiceLine<br/>33項目"]
        T3["💰 税額計算<br/>C_InvoiceTax<br/>8項目(読取専用)"]
        T4["📅 支払スケジュール<br/>C_InvoicePaySchedule<br/>11項目"]
        T5["✅ 消込伝票明細<br/>C_AllocationLine<br/>10項目(読取専用)"]
    end
    T1 --> T2
    T1 --> T3
    T1 --> T4
    T1 --> T5

売上請求書ウィンドウ(Window ID: 167) 売上請求伝票 C_Invoice 51項目 売上請求伝票明細 C_InvoiceLine 33項目 税額計算 C_InvoiceTax 8項目(読取専用) 支払スケジュール C_InvoicePaySchedule 11項目 消込伝票明細 C_AllocationLine 10項目(読取専用)

タブ名テーブル役割主な入力項目
売上請求伝票C_Invoiceヘッダー情報(得意先・日付・金額等)取引先、伝票タイプ、請求日付、価格表
売上請求伝票明細C_InvoiceLine品目・数量・単価の明細行品目、数量、単価、税率
税額計算C_InvoiceTax税額の自動計算結果(読み取り専用)税率、税額
支払スケジュールC_InvoicePaySchedule分割払いのスケジュール支払予定日、金額
消込伝票明細C_AllocationLine入金消込の状況(読み取り専用)消込金額、消込日付
graph TD
    S1["① 請求書作成<br/>受注/出荷から一括生成 or 手動"] --> S2["② ヘッダー入力<br/>取引先・伝票タイプ・請求日付"]
    S2 --> S3["③ 保存"]
    S3 --> S4["④ 明細タブへ<br/>品目・数量・単価"]
    S4 --> S5{既存伝票から取込?}
    S5 -->|はい| S6["⑤' Create lines from<br/>出荷/受注伝票を参照"]
    S5 -->|いいえ| S7["⑤ 手動で明細入力"]
    S6 --> S8["⑥ 明細確認・保存"]
    S7 --> S8
    S8 --> S9["⑦ ヘッダーに戻る"]
    S9 --> S10["⑧ 完了処理<br/>伝票アクション → 完了"]
    S10 --> S11["✅ 会計仕訳生成・売掛金計上"]

① 請求書作成 受注/出荷から一括生成 or 手動 ② ヘッダー入力 取引先・伝票タイプ・請求日付 ③ 保存 ④ 明細タブへ 品目・数量・単価 ⑤' Create lines from 出荷/受注伝票を参照 ⑤ 手動で明細入力 ⑥ 明細確認・保存 ⑦ ヘッダーに戻る ⑧ 完了処理 伝票アクション → 完了 会計仕訳生成・売掛金計上 既存伝票から取込? はい いいえ

メニューから「販売管理 > 売上請求管理 > 売上請求伝票(標準)」を開きます。

通常は受注伝票から一括生成します。

  1. メニュー「販売管理 > 売上請求管理 > 請求書生成」を開く
  2. 対象の取引先、受注日等の条件を指定
  3. OK」をクリックして請求書を自動生成
  1. ツールバーの「新規」ボタンをクリック
  2. ヘッダー情報を入力:
    • 伝票タイプ: 「売上請求伝票」を選択(貸方メモの場合は「売上貸方伝票」)

💡 ヒント: 返品や値引きが発生した場合は、伝票タイプ「売上貸方伝票(Credit Memo)」を使います。マイナス金額の請求書を作成するのではなく、専用の伝票タイプを使うことで会計仕訳が正確に生成されます。

  • 請求日付: 請求日を入力
  • 取引先: 得意先を選択
  • 価格表: 適用する価格表を選択
  • 支払条件: 支払条件を選択
  1. 保存」をクリック
  2. 売上請求伝票明細」タブに移動
  3. 明細行を入力:
    • 品目: 請求する品目を選択
    • 数量: 数量を入力
    • 単価: 価格表から自動取得(手動修正可)
    • 税率: 自動セット
  4. または「Create lines from」ボタンで出荷伝票・受注伝票から明細を取り込み

📐 画面レイアウト: ヘッダータブのフィールド配置は 画面レイアウト(ヘッダータブ) を参照してください。

  1. 売上請求伝票」タブ(ヘッダー)に戻る
  2. 伝票アクション」ボタンをクリック
  3. アクション「完了(Complete)」を選択
  4. OK」をクリック

完了処理により以下が自動実行されます:

  • 売上・売掛金の会計仕訳の生成
  • 消費税の確定
  • 受注伝票の請求済数量の更新

⚠️ 注意: 完了後の請求書は直接修正できません。取り消す場合は「無効」処理を実行すると逆仕訳が自動生成されます。ただし、消込済みの場合は先に消込の解除が必要です。

📌 ポイント: 請求書の完了によって初めて売上と売掛金が会計に計上されます。出荷伝票の完了だけでは売上計上されないため、必ず請求書の完了まで行ってください。

売上請求伝票タブ(ヘッダー)

Section titled “売上請求伝票タブ(ヘッダー)”
項目名必須説明
伝票タイプ-選択売上請求伝票、売上貸方伝票、売上借方伝票 等
受注伝票-検索紐づく受注伝票
請求日付-日付請求書の日付(印刷される日付)
転記日付-日付会計上の転記日付
取引先-検索請求先の得意先
取引先住所-選択請求先住所
価格表-選択適用する価格表
通貨自動選択価格表により自動セット
社内担当者-選択営業担当者
支払方法-リスト現金、振込、クレジットカード 等
支払条件-選択支払条件マスタから選択
料金-選択追加料金(手数料等)
項目名必須説明
品目-検索請求する品目
数量必須数量請求数量
単価-金額販売単価
営業定価-金額定価(参考)
税率-選択適用する税率
行合計自動金額数量 x 単価
説明-テキスト備考
伝票タイプ用途会計仕訳
売上請求伝票通常の売上請求売掛金(借方)/ 売上(貸方)
売上貸方伝票値引・返品時の減額売上(借方)/ 売掛金(貸方)
売上借方伝票追加請求売掛金(借方)/ 売上(貸方)

Q. 請求書を発行(印刷)するには?

Section titled “Q. 請求書を発行(印刷)するには?”

メニュー「販売管理 > 売上請求管理 > 請求書印刷」から一括印刷、またはウィンドウ内の「印刷」ボタンで個別印刷できます。PDF形式でのメール送信も可能です。

Q. 貸方メモ(返品・値引)を作成するには?

Section titled “Q. 貸方メモ(返品・値引)を作成するには?”
  1. 伝票タイプ「売上貸方伝票」で新規作成
  2. 元の請求書を参照して明細を入力
  3. 完了処理で売掛金が減額される

Q. 入金消込はどこで行いますか?

Section titled “Q. 入金消込はどこで行いますか?”

メニュー「債権債務・資金管理 > 入出金消込」フォームで、請求書と入金を紐付けます。自動消込プロセスも利用可能です。消込状況は「消込伝票明細」タブで確認できます。

📌 ポイント: 消込が完了すると請求書の「支払済フラグ」がONになります。請求書の消込状況は「消込伝票明細」タブで明細ごとに確認できます。

完了済みの請求書に対して「無効」処理を実行すると、逆仕訳が自動生成され会計が打ち消されます。ただし、既に消込済みの場合は先に消込の解除が必要です。

graph TD
    A[受注伝票] -->|請求生成| B[売上請求書]
    C[出荷伝票] -->|明細取込| B
    B -->|会計仕訳| D[総勘定元帳]
    B -->|消込| E[入金]
    B -->|督促| F[督促状]

請求生成 明細取込 会計仕訳 消込 督促 受注伝票 売上請求書 出荷伝票 総勘定元帳 入金 督促状


iDempiereの請求管理は、売上計上・債権管理・消込まで一貫した業務フローを提供します。 複数通貨対応、税計算、分割払いなど、実務に必要な機能を標準で備えています。

As-Link株式会社では、iDempiereの導入支援・カスタマイズ開発を承っております。

OSS ERP導入サービスの詳細はこちら


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

画面レイアウト(ヘッダータブ)

Section titled “画面レイアウト(ヘッダータブ)”
┌─ 売上請求書(Sales Invoice)─────────────────────────────────────────────┐
│ │
│ クライアント [▼ Table Direct] 組織 [▼ Table Direct] │
│ 伝票番号 [________________] 注文参照 [________________] │
│ 説明 [_______________________________________________] │
│ │
│ ── 伝票タイプ・日付 ────────────────────────────────────────────────── │
│ 対象伝票タイプ [▼ Table] │
│ 請求日付 [📅 Date] 転記日付 [📅 Date] │
│ │
│ ── 取引先情報 ──────────────────────────────────────────────────────── │
│ 取引先 [🔍 Search] 取引先住所 [▼ Table Direct] │
│ 担当者 [▼ Table Direct] │
│ │
│ ── 価格・通貨 ──────────────────────────────────────────────────────── │
│ 価格表 [▼ Table Direct] 通貨 [▼ Table Direct] │
│ 支払方法 [▼ List] 支払条件 [▼ Table Direct] │
│ │
│ ── 合計・ステータス ────────────────────────────────────────────────── │
│ 明細行合計 [¥_________] 総合計 [¥_________] │
│ 伝票状態 [▼ List] 伝票タイプ [▼ Table Direct] │
│ [明細行コピー] [請求処理] │
│ │
│ [請求伝票] [請求明細] [税額計算] [支払スケジュール] [消込] │
└──────────────────────────────────────────────────────────────────────────┘

📌 ポイント: この図はADメタデータ(AD_Field.XPosition, IsSameLine)から再現した実際のUI配置です。画面は2カラム構成で、左列(XPosition=1)と右列(XPosition=4)にフィールドが配置されます。

売上請求書は Document 型の伝票で、C_Invoice テーブルに格納されます。売上(IsSOTrx=Y)と仕入(IsSOTrx=N)の両方で共用されます。MInvoice クラス(3,662行)が中核ビジネスロジックを担い、DocAction および IDocsPostProcess インターフェースを実装しています。

classDiagram
    class MInvoice {
        +prepareIt() String
        +completeIt() String
        +voidIt() boolean
        +closeIt() boolean
        +reverseCorrectIt() boolean
        +calculateTaxTotal() boolean
        +allocateInvoice() 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
    MInvoice --> MInvoicePaySchedule : has many

+prepareIt() String +completeIt() String +voidIt() boolean +closeIt() boolean +reverseCorrectIt() boolean +calculateTaxTotal() boolean +allocateInvoice() boolean <> <> <> > X_C_Invoice X_C_Invoice -- > DocAction MInvoice ..

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

売上・仕入の両方で使用。IsSOTrx カラムで区別。

⚠️ 注意: C_Invoice テーブルは売上(IsSOTrx=Y)と仕入(IsSOTrx=N)で共用されています。C_DocType.DocBaseTypeARI(売上請求書)・ARC(売上クレジット)・API(仕入請求書)・APC(仕入クレジット)が区別されます。クエリやレポート作成時は必ず IsSOTrx または DocBaseType 条件を付与してください。

カラム名必須説明備考
C_Invoice_IDIDPK請求書ID主キー
AD_Client_IDTableDirectYクライアント
AD_Org_IDTableDirectY組織
IsSOTrxYesNoY販売取引フラグY=売上, N=仕入
DocumentNoStringY伝票番号
C_DocType_IDTableDirectY伝票タイプARI/ARC/API/APC
C_DocTypeTarget_IDTableY対象伝票タイプ
DocStatusListY伝票状態DR/IP/CO/CL/VO/RE
DocActionButtonY伝票アクション
C_BPartner_IDSearchY取引先Callout: bPartner
C_BPartner_Location_IDTableDirectY取引先住所
DateInvoicedDateY請求日付
DateAcctDateY転記日付
M_PriceList_IDTableDirectY価格表
C_Currency_IDTableDirectY通貨
C_PaymentTerm_IDTableDirectY支払条件Callout: paymentTerm
TotalLinesAmountY明細行合計自動計算(税抜)
GrandTotalAmountY総合計自動計算(税込)
C_Order_IDSearchN受注伝票
M_InOut_IDSearchN出荷伝票
IsPaidYesNoY支払済み消込完了で自動更新
ProcessedYesNoY処理済み
PostedButtonY転記
カラム名必須説明
C_InvoiceLine_IDIDPK明細ID
C_Invoice_IDSearchYヘッダーFK
LineIntegerY行番号
M_Product_IDSearchN品目
QtyInvoicedQuantityY請求数量
PriceActualAmountY実単価
PriceListAmountY定価
LineNetAmtAmountY行合計
C_Tax_IDTableDirectY税率
C_OrderLine_IDSearchN受注明細FK
M_InOutLine_IDSearchN出荷明細FK
erDiagram
    C_Invoice ||--o{ C_InvoiceLine : "has"
    C_Invoice ||--o{ C_InvoiceTax : "has"
    C_Invoice ||--o{ C_InvoicePaySchedule : "has"
    C_Invoice }o--|| C_BPartner : "references"
    C_Invoice }o--|| M_PriceList : "references"
    C_Invoice }o--|| C_DocType : "references"
    C_Invoice }o--o| C_Order : "references"
    C_Invoice }o--o| M_InOut : "references"
    C_InvoiceLine }o--o| M_Product : "references"
    C_InvoiceLine }o--|| C_Tax : "references"
    C_Invoice ||--o{ C_AllocationLine : "allocated"
    C_Invoice ||--o{ Fact_Acct : "posted"

MInvoice.calculateTaxTotal() は全明細行から税額を再計算し、C_InvoiceTax レコードを更新します。税グループ(C_Tax_ID)ごとに集計し、端数処理は通貨の精度設定に従います。

🔧 カスタマイズ: 日本の消費税(軽減税率対応など)のような特殊な税計算が必要な場合は、com.aslink.fragment.adempiere.base のような Fragment で calculateTaxTotal() をオーバーライドするか、ITaxProvider インターフェースを実装した OSGi サービスを登録する方法があります。後者が保守性の観点から推奨されます。

  1. ModelValidator.TIMING_BEFORE_PREPARE イベント発火
  2. 会計期間のオープンチェック
  3. 明細行の存在チェック(0行は不可)
  4. 各明細行の価格・税額の再計算
  5. 税合計の計算(calculateTaxTotal()
  6. 支払スケジュールの検証
  7. ModelValidator.TIMING_AFTER_PREPARE イベント発火
  1. ModelValidator.TIMING_BEFORE_COMPLETE イベント発火
  2. 税金の最終計算
  3. 会計転記の準備Fact_Acct への仕訳データ生成)
  4. 受注の請求済数量(QtyInvoiced)更新
  5. 取引先の与信残高更新
  6. 支払消込の自動実行(前受金がある場合)
  7. ModelValidator.TIMING_AFTER_COMPLETE イベント発火

📌 ポイント: 会計転記(Fact_Acct 生成)は completeIt() 内では「転記キュー」への登録のみ行われます。実際の転記は PostingService によって非同期に実行されます。デバッグ時は Fact_Acct だけでなく AD_PInstance(バックグラウンドプロセスの実行履歴)も確認してください。

stateDiagram-v2
    [*] --> Drafted : 新規作成
    Drafted --> InProgress : prepareIt()
    InProgress --> Completed : completeIt()
    Completed --> Closed : closeIt()
    Completed --> Voided : voidIt()
    Completed --> Reversed : reverseCorrectIt()
    Drafted --> Voided : voidIt()

*

  1. 消込済みの場合は消込を解除
  2. 取引先の与信残高をリセット
  3. 受注の請求済数量をリセット
  4. 各明細行の数量を0にセット
  5. 逆仕訳の生成
Calloutクラスメソッドトリガーフィールド処理内容
CalloutInvoicedocTypeC_DocTypeTarget_ID伝票タイプに応じた初期値セット
CalloutInvoicebPartnerC_BPartner_ID取引先情報の自動セット(住所、支払条件)
CalloutInvoicepaymentTermC_PaymentTerm_ID支払条件に基づくスケジュール生成
CalloutInvoiceproductM_Product_ID品目情報の自動セット(価格、税率)
CalloutInvoicechargeC_Charge_ID科目情報の自動セット
CalloutInvoicetaxC_Tax_ID税額の再計算
CalloutInvoiceamtPriceActual / QtyInvoiced金額の再計算
CalloutInvoiceqtyQtyInvoiced数量変更時の単位変換・金額再計算

Calloutソース: org.adempiere.base.callout/src/org/compiere/model/CalloutInvoice.java

💡 ヒント: CalloutInvoice.amtCalloutInvoice.qty は数量・単価変更時に相互に呼び出されます。追加の金額計算(割引率自動計算など)を実装する場合は、既存 Callout の後に実行される独立した Callout として実装し、無限ループを避けるために isCalloutActive() チェックを忘れずに。

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

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

請求書に独自バリデーションや後処理を追加する最も安全な方法:

public class CustomInvoiceValidator implements ModelValidator {
@Override
public String docValidate(PO po, int timing) {
if (po instanceof MInvoice) {
MInvoice invoice = (MInvoice) po;
if (invoice.isSOTrx() && timing == TIMING_AFTER_COMPLETE) {
// 例: 請求書完了後に自動メール送信をトリガー
// 外部システムへの連携通知等
}
}
return null;
}
}

Doc_Invoice クラスを拡張することで、仕訳パターンをカスタマイズ可能。OSGi の IDocFactory を実装して独自の転記ロジックを注入。

🔧 カスタマイズ: IDocFactory を実装した OSGi コンポーネントを登録することで、コア Doc_Invoice を変更せずに独自の仕訳ロジックを差し込めます。実装参考箇所: org.adempiere.base/src/org/adempiere/model/IDocFactory.java

プロセス名説明
伝票アクション (DocAction)伝票の完了・無効・取消等
受注から請求書生成受注伝票から請求書を一括生成
出荷から請求書生成出荷伝票から請求書を一括生成
支払消込入金と請求書の消込処理

iDempiereの売上請求書は Model Validator や Callout で安全にカスタマイズできます。 税計算ロジックや会計転記パターンをコア改変なしで拡張可能です。

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

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