1. 概要
焦点質問: 日ごとの資金残高推移と資金ショートリスクは?
決済日ベースで入出金を集計し、日次の現預金残高を算出する。
3種類のシートを同じ関数群で生成し、「実績」「計上確定」「計画(未承認含む)」の3レイヤで資金繰りを可視化する。
| 項目 | 内容 |
|---|
| 出力タブ | 83_cf_daily_act, 84_cf_daily_plan, 85_cf_daily_real |
| 関数 | dmBuildPlanCashflow_ (83/84), dmBuildDailyCashflow_ (85) |
| ファイル | 606_datamart_daily_cf.js |
| 呼び出し元 | 602_datamart_main.js (dmMain 処理内) |
| 前提 | dmCalcBs_ 完了後のコンテキスト (ctx) が必要。期首残高 ctx.cashPlug[0] を使用 |
2. データソース
| タブ | ソースタブ | 読み込み条件 | 用途 |
|---|
| 83 CF日次 計上 | 32_wrk_invoice | 承認済 / 決済完了 INV のみ | 確定済みの支払予定を日次で可視化 |
| 84 CF日次 計画 | 32_wrk_invoice + 33_wrk_bank | 全INV (未決済残高ベース) + 実績STL | 未承認INVを含む全資金繰り計画 |
| 85 CF日次 実績 | 33_wrk_bank | 消込済 かつ 自動仕訳JNL_ID あり | 実際に入出金が完了した実績CF |
呼び出しパラメータ
| タブ | 関数 | opts |
|---|
| 83 | dmBuildPlanCashflow_ | { approvedOnly: true } |
| 84 | dmBuildPlanCashflow_ | { includeActual: true, bankSheet: sheetBank } |
| 85 | dmBuildDailyCashflow_ | { actualsOnly: true } |
3. 対象判定・フィルタ条件
3.1 85: 実績CF (dmBuildDailyCashflow_)
| # | 条件 | 処理 | 理由 |
|---|
| F1 | 有効フラグ = FALSE | SKIP | 無効レコード除外 |
| F2 | 決済ステータス !== 消込済 | SKIP | 消込が完了した決済のみ対象 |
| F3 | 自動仕訳JNL_ID が空 | SKIP | Action B 処理済のレコードのみ (仕訳計上との整合性) |
| F4 | 決済日_実績 が空 or パース不可 | SKIP | 日付が確定しないレコードは除外 |
| F5 | 税込金額_決済 = 0 | SKIP | ゼロ金額は除外 |
3.2 83/84: 計上/計画CF (dmBuildPlanCashflow_)
| # | 条件 | 処理 | 理由 |
|---|
| F1 | 有効フラグ = FALSE | SKIP | 無効レコード除外 |
| F2 | 83のみ: 請求ステータス !== 承認済 かつ !== 決済完了 | SKIP | 計上タブは確定INVのみ |
| F3 | 決済手段 = 仕訳振替 | SKIP | 現金移動を伴わない (天引き計算の入力としては別途処理) |
| F4 | 決済手段 = 資産計上 (ただし科目が未収入金/未払金の場合は除く) | SKIP | B/S即時計上でCF影響なし。未収入金/未払金は入出金を表すため例外的にCF対象 |
| F5 | 決済手段 が空文字 | SKIP | 決済手段未設定のINVは除外 |
| F6 | 決済日_計画 が空 or パース不可 | SKIP | 日付不明は除外 |
| F7 | 金額 = 0 | SKIP | ゼロ金額は除外 |
| F8 | 84のみ: 33_wrk_bank のフィルタは 85 と同一 (F1-F5) | 追加取込 | 実績STLをハイブリッド合算 |
4. 処理ロジック
4.1 85: 実績CF (dmBuildDailyCashflow_)
| STEP | 処理 | 入力 | 出力 | 条件 |
|---|
| D1.1 | フィルタ | 33_wrk_bank: 有効フラグ, 決済ステータス, 自動仕訳JNL_ID | — | 上記 F1-F5 参照 |
| D1.2 | 入出金判定 | 入出金区分 | isIn フラグ | 入金 を含む → 入金、それ以外 → 出金 |
| D1.3 | メインイベント生成 | 決済日_実績, 税込金額_決済, 入出金区分, 決済口座, 摘要, STL_ID, INV_ID | cashEvent (src=実績) | amt > 0 のレコードすべて |
| D1.4 | 差額イベント生成 | 差額(手数料等), 差額処理科目 | cashEvent (src=実績, outAmt=差額) | 差額 !== 0 の場合のみ。科目未設定時は 支払手数料 をデフォルト |
| D1.5 | ソート | cashEvents | 日付昇順 → ソース名昇順 | date.localeCompare |
| D1.6 | 残高計算 | 期首残高 ctx.cashPlug[0], cashEvents | 累積残高 | 残高 = 期首残高 + Σ(入金 − 出金) |
| D1.7 | シート書き出し | headers + rows | 85_cf_daily_real | ヘッダー書式・条件付き書式・フィルター設定を含む |
4.2 83/84: 計上/計画CF (dmBuildPlanCashflow_)
| STEP | 処理 | 入力 | 出力 | 条件 |
|---|
| P1.1 | 天引き額マップ構築 | 32_wrk_invoice (仕訳振替INV) | deductMap (key: ORD_ID|対象年月) | 摘要に 【RPA:HC】YYYY-MM を含む仕訳振替INVの税込金額を ORD_ID+対象月 でグルーピング |
| P1.2 | フィルタ | 32_wrk_invoice: 有効フラグ, 請求ステータス(83のみ), 決済手段 | — | 上記 F1-F7 参照 |
| P1.3 | 金額計算 — 通常INV | 税込金額_計画 (or 84: 未決済残高) | cfAmt = abs(金額) | 摘要に 月額給与・報酬 を 含まない INV |
| P1.4 | 金額計算 — 給与INV | 税込金額_計画 (or 84: 未決済残高), deductMap | cfAmt = 請求総額 − 仕訳振替合計 | 摘要に 月額給与・報酬 を含む INV。天引き(源泉税・社保等)を差引いた差引支給額が実際の出金額 |
| P1.5 | 入出金判定 | 収支区分 | isIn フラグ | 収入 を含む → 入金、それ以外 → 出金 |
| P1.6 | 計画イベント生成 | 決済日_計画, cfAmt, 決済手段, 摘要, INV_ID | cashEvent (src=計上 or 計画) | 83: src=計上, 84: src=計画 |
| P1.7 | 実績STL取込 (84のみ) | 33_wrk_bank (消込済+JNL_ID) | cashEvent (src=実績) | includeActual=true 時のみ。フィルタは 85 と同一条件 |
| P1.8 | ソート | cashEvents | 日付昇順 | date.localeCompare |
| P1.9 | 残高計算 | 期首残高 ctx.cashPlug[0], cashEvents | 累積残高 | 残高 = 期首残高 + Σ(入金 − 出金) |
| P1.10 | シート書き出し | headers + rows | 83 or 84 タブ | ヘッダー書式・条件付き書式・フィルター設定を含む |
5. 財務ロジック (FRD)
※ 本セクションは経理担当・CFOが検証可能な表現で記述。技術用語は使用しない。
→ 技術詳細: SS4 参照
5.1 3タブの使い分け
| タブ | 役割 | 確認観点 |
|---|
| 85 実績 | 銀行口座の入出金実績を日次で再現 | 帳簿残高と銀行残高の照合 |
| 83 計上 | 承認済請求書に基づく確定支払予定 | 今月・来月の確定資金需要 |
| 84 計画 | 未承認を含む全請求書 + 実績の複合ビュー | 中長期の資金繰り予測、資金ショートの早期検知 |
5.2 二重計上防止
- 84タブ(計画) は計画INVと実績STLを同時に表示するハイブリッド構造である
- 計画INVの金額には 未決済残高 (請求総額から既決済STL合計を差引いた残額) を使用する
- これにより、既に決済済みの金額が計画側で重複計上されることを防ぐ
- 83タブ(計上) と 85タブ(実績) は単独ソースのため二重計上リスクなし
5.3 天引き額の差引
- 月額給与・報酬の請求書(メインINV)の実際の出金額は、源泉所得税・社会保険料等の天引き(仕訳振替)を差引いた 差引支給額 である
- 天引き額の集計: 同一発注(ORD_ID)に紐づく仕訳振替INVの税込金額を対象月ごとに合算
- 対象月の特定: 摘要に含まれる
【RPA:HC】YYYY-MM から年月を抽出
- 算出式: 差引支給額 = 月額給与・報酬の請求総額 − 天引き合計額
5.4 資産計上とCF
- 決済手段「資産計上」は通常CF影響なし (B/S即時計上)
- ただし科目が「未収入金」「未払金」の場合は 現金の入出金を表す ため例外的にCFイベントとして計上する
5.5 期首残高
- 全3タブとも B/S上の現預金残高 (
ctx.cashPlug[0]) を期首残高とする
- 期首残高行は
YYYY-07-31 (期首日の前日) の日付で出力される
6. 出力スキーマ
6.1 85: 実績CF
| # | 列 | カラム名 | データ型/書式 | 備考 |
|---|
| 1 | A | 決済日 | yyyy-mm-dd | 決済日_実績 |
| 2 | B | ソース | text | 固定: 実績 |
| 3 | C | 管理ID | text | STL_ID |
| 4 | D | 勘定科目 | text | 決済口座 or 差額処理科目 |
| 5 | E | 摘要 | text | 元摘要 + [STL:xxx INV:xxx] |
| 6 | F | 入金 | #,##0 | 入金区分の場合に税込金額_決済 |
| 7 | G | 出金 | #,##0 | 出金区分の場合に税込金額_決済 |
| 8 | H | 現預金残高 | #,##0 | 期首残高 + Σ(入金 − 出金) |
6.2 83/84: 計上/計画CF
| # | 列 | カラム名 | データ型/書式 | 備考 |
|---|
| 1 | A | 決済日_計画 | yyyy-mm-dd | 決済日_計画 |
| 2 | B | ソース | text | 83: 計上, 84: 計画 or 実績(STL分) |
| 3 | C | 管理ID | text | INV_ID or STL_ID |
| 4 | D | 決済口座 | text | 決済手段 or 決済口座(STL分) |
| 5 | E | 摘要 | text | 元摘要 + [INV:xxx] or [STL] |
| 6 | F | 入金 | #,##0 | 収入区分の場合 |
| 7 | G | 出金 | #,##0 | 支出区分の場合 |
| 8 | H | 現預金残高 | #,##0 | 期首残高 + Σ(入金 − 出金) |
6.3 書式設定 (共通)
| 項目 | 設定 |
|---|
| ヘッダー行 | 背景 #0B5345, 白文字, 太字, 固定行 |
| 期首残高行 (2行目) | 背景 #F3F3F3, グレー文字, 太字 |
| 数値列 (F-H) | #,##0;[Red] #,##0;"-" |
| 条件付き書式 | 現預金残高 (H列) が負 → 赤背景 #F4CCCC + 赤文字 #CC0000 + 太字 |
| フォント | BIZ UDGothic |
| 列幅 | 全列自動調整 |
| フィルター | データ範囲全体に自動設定 |
7. エッジケース・境界条件
| ケース | 条件 | 処理 |
|---|
| 決済日が期首より前のSTL | 決済日_実績 < 期首日 | フィルタなし。イベントとして含まれ、ソート後に先頭に出力される |
| 差額(手数料等)が負数 | diff < 0 | 出金イベントとして生成 (outAmt = diff)。負の手数料(戻り)も出金側に記録される |
| 差額処理科目が未設定 | 差額 !== 0 かつ 差額処理科目が空 | デフォルト 支払手数料 を適用 |
| 天引きマップにキーなし | 給与INV だが対応する仕訳振替INVがない | deductTotal = 0 → 請求総額がそのまま出金額 |
| 84タブで未決済残高 = 0 | 全額決済済みINV | SKIP (金額 = 0 で除外) → 実績STL側のみで表示 |
| 期首残高が 0 | ctx.cashPlug[0] 未設定 | 0 から累積開始 (84タブの openingCash のフォールバック) |
| 資産計上 + 未収入金/未払金 | 決済手段 = 資産計上 かつ 科目 = 未収入金 or 未払金 | CF対象として例外的に含める (isCashOffset = true) |
8. テスト仕様
| テストID | テスト名 | 前提条件 | 期待結果 |
|---|
| DCF-01 | 実績CF基本出力 | 33_wrk_bank に消込済+JNL_ID ありのSTLが存在 | 85タブに入出金イベントが日付昇順で出力され、残高が正しく累積 |
| DCF-02 | 実績CF差額処理 | 差額(手数料等) !== 0 のSTLが存在 | メインイベントに加え、差額分の出金イベントが追加生成される |
| DCF-03 | 計上CF承認フィルタ | 承認済・決済完了・下書きのINVが混在 | 83タブには承認済+決済完了のみ出力、下書きINVは除外 |
| DCF-04 | 計画 CF 二重計上防止 | 一部決済済 INV + 対応 STL | 84 で未決済残高表示・実績合算で二重計上なし |
| DCF-05 | 天引き差引 | 月額給与 INV + 仕訳振替 INV | 出金額 = 請求総額 − 天引き合計 |
| DCF-06 | 仕訳振替除外 | 決済手段 = 仕訳振替 の INV | CF イベント除外(天引きマップ入力のみ) |
| DCF-07 | 資産計上除外と例外 | 資産計上 INV(通常 + 未収入金) | 通常除外・未収入金は CF イベント出力 |
| DCF-08 | 残高マイナス警告 | 残高が負になるケース | H 列に赤背景+赤文字の条件付き書式 |
| DCF-09 | 期首残高行 | — | 2 行目に期首残高行(YYYY-07-31)出力 |
付録
付録A: 実装ファイル
| ファイル | 関数 | 役割 |
|---|
606_datamart_daily_cf.js | dmGetCashImpact_ | 科目のキャッシュインパクト判定 (予算データ用、V2では未使用) |
606_datamart_daily_cf.js | dmBuildDailyCashflow_ | 85: 実績CF構築 |
606_datamart_daily_cf.js | dmBuildPlanCashflow_ | 83/84: 計上/計画CF構築 |
602_datamart_main.js | (dmMain 内) | 3タブの呼び出し・パラメータ設定 |
付録B: 関連仕様書