月次請求書(AR:プレビュー・確定・入金)と買取精算(AP)¶
最終更新: 2026-09-05
月次請求書プレビューは、請求書を保存・発行する前に、現在の計量・回収・運搬実績から取引先別の請求候補を確認する機能です。請求結果を DB に保存せず、画面と下書き Excel(.xlsx) を同じ純粋ロジックから導出します。
Stage の範囲¶
| Stage | 現在の扱い |
|---|---|
| Stage 1 | 掛売持ち込みを月次未収として記録し、入金・取消を管理する。精算区分の意味は 計量 §6 を参照。 |
| Stage 2 | 締め期間内の請求対象をライブ集計し、画面と「下書き Excel(.xlsx)」で確認する。 |
| Stage 3 | 正式な請求書の確定・スナップショット・採番。実装済み(mig202/203)。 |
| Stage 4 | 入金消込は実装済み(mig217): 確定済み請求書への入金記録(追記型・UPDATE なし・削除は admin のみ)、未収残高、入金状態 4 値(未入金 / 一部入金 / 入金済 / 過入金)を純関数から導出する。 |
| Stage 5 | 排出事業者ポータル公開は実装済み(mig231)。確定した時点で列限定 RPC から即時閲覧できる。明細の品目名・業務日付は mig241 の確定スナップショットを使う。送付(メール)は未実装。 |
請求対象の 3 系統¶
プレビューは次の 3 セクションを取引先ごとに表示します。
プレビュー画面の通常の明細表は 日付 と 明細 を別列で表示します。下書き出力は
buildInvoiceExcel(exceljs の動的 import)で編集可能な .xlsx を生成し、社判画像は private な
invoice-seal-images バケットから埋め込みます。二次搬出セクションはサンプル形式(日付・排出元・排出先・数量・単価・金額)です。
- 掛売持ち込み:
settlement_mode='monthly'の walk-in 伝票だけを対象にします。spot 精算や精算区分未指定の伝票は、すでに現金等で精算済みのため再計上しません。 - 定期回収: 回収品目ごとの収集運搬・処分を、usage(重量)、per_pickup(完了便数)、monthly(月額)の段別設定で計算します。usage の重量は
weighing_kind='single'/'run'に限定し、walk-in の重量を混ぜません。 - 二次搬出運搬費: 完了した二次搬出を、排出元回収先の取引先へ帰属させます。運賃ルートは排出元 × 搬出先 × 配車日の有効期間で解決します。
期間と端数¶
取引先ごとの締め日から対象期間を解決します。締め日未設定または末日は対象月の 1 日から月末まで、締め日が設定されている場合は前回締め日の翌日から今回締め日までです。二次搬出の completed_at は JST の業務日へ変換して期間判定します。
金額は税抜です。各明細行の金額は円整数へ丸め、税額だけを小計に対して 10% で一度計算し、取引先の消費税端数処理(切り捨て・四捨五入・切り上げ)を適用します。負の小計でも金額の符号は変えません。
警告¶
- 名寄せ未設定: 回収品目に品目マスタの対応がないため、その段の計算ができません。取引先詳細の回収品目設定で品目を名寄せします。
- 二次搬出の運賃ルート未登録: 排出元・搬出先・配車日の有効な運賃ルートがありません。運搬費マスタを登録します。警告行は合計へ加算しません。
- 締め日未設定: 末日扱いで計算したことを知らせます。明細や他の警告が無い取引先は請求候補として表示しません。
発行者情報を tenants に置かない理由¶
登録番号・発行者名は collector_billing_settings に分離しています。tenants はテナント横断で参照される既存の公開面があるため、請求に関わる将来の非公開情報を追加すると越境して露出するおそれがあります。プレビューは設定を読むだけで、請求書・明細・調整行を保存しません。
操作手順は 月次請求書プレビュー操作手順 を、画面項目の算出規則は 画面項目の算出方法 を参照してください。
買取精算(AP・mig242/mig250)¶
有価物の持ち込み買取(walk-in の buyback 方向)を、取引先ごとに月次でまとめて支払う精算です。
画面は /collector/buyback-settlements(collector の admin / normal)で、確定すると
支払明細書(.xlsx・支払明細書番号で採番)が発行されます。取消は admin 限定の
soft-delete で、支払対象は active かつ finalized の精算だけです。
同一取引先・同一期間の取消済み finalized を再確定すると、後継の帳票に旧番号の取消が 「再発行(旧 … を取消)」として表示されます。
2026-10-01 の AR/AP 切替: 2026 年 10 月分から買取明細は AR(月次請求書)から分離し、 買取精算だけに載ります。切替より前の期間の再計算・確定・復元・調整は DB が fail-closed で 拒否します。20 日締めの 10 月アンカー(期間開始 9/21)は切替をまたぐため確定できず、 11 月アンカー(10/21 以降)から対象になります。
操作手順は 月次請求書プレビュー操作手順 を参照してください。
mig217 / 231 / 241 の安全境界¶
入金は確定済み請求書にだけ追記でき、請求書の金額・明細・テナントを直接更新する経路はありません。入金取得に失敗した場合は空欄や入金済みへ倒さず、利用者へ「—(取得失敗・再試行)」を表示して fail-closed にします。
mig231 の排出事業者ポータルは自社宛の確定済み請求書だけを列限定 RPC で返します。一覧 RPC は発行者の登録番号・口座情報・監査列を返しません。詳細 RPC は発行者の登録番号と口座情報(銀行名・支店名・口座種別・口座番号・名義)を返しますが、監査列は返しません。確定は「確定 = 排出事業者ポータルへ即公開」であり、メール送付の成功を意味しません。
mig241 は確定明細の品目名と業務日付を保存します。旧確定分で品目名が空のときは description へフォールバックするため、新旧データで表示が異なることがあります。確定済み Excel はこの明示列を出力し、下書き Excel は確定や送付に使えません。