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
83dmBuildPlanCashflow_{ approvedOnly: true }
84dmBuildPlanCashflow_{ includeActual: true, bankSheet: sheetBank }
85dmBuildDailyCashflow_{ actualsOnly: true }

3. 対象判定・フィルタ条件

3.1 85: 実績CF (dmBuildDailyCashflow_)

#条件処理理由
F1有効フラグ = FALSESKIP無効レコード除外
F2決済ステータス !== 消込済SKIP消込が完了した決済のみ対象
F3自動仕訳JNL_ID が空SKIPAction B 処理済のレコードのみ (仕訳計上との整合性)
F4決済日_実績 が空 or パース不可SKIP日付が確定しないレコードは除外
F5税込金額_決済 = 0SKIPゼロ金額は除外

3.2 83/84: 計上/計画CF (dmBuildPlanCashflow_)

#条件処理理由
F1有効フラグ = FALSESKIP無効レコード除外
F283のみ: 請求ステータス !== 承認済 かつ !== 決済完了SKIP計上タブは確定INVのみ
F3決済手段 = 仕訳振替SKIP現金移動を伴わない (天引き計算の入力としては別途処理)
F4決済手段 = 資産計上 (ただし科目が未収入金/未払金の場合は除く)SKIPB/S即時計上でCF影響なし。未収入金/未払金は入出金を表すため例外的にCF対象
F5決済手段 が空文字SKIP決済手段未設定のINVは除外
F6決済日_計画 が空 or パース不可SKIP日付不明は除外
F7金額 = 0SKIPゼロ金額は除外
F884のみ: 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_IDcashEvent (src=実績)amt > 0 のレコードすべて
D1.4差額イベント生成差額(手数料等), 差額処理科目cashEvent (src=実績, outAmt=差額)差額 !== 0 の場合のみ。科目未設定時は 支払手数料 をデフォルト
D1.5ソートcashEvents日付昇順 → ソース名昇順date.localeCompare
D1.6残高計算期首残高 ctx.cashPlug[0], cashEvents累積残高残高 = 期首残高 + Σ(入金 − 出金)
D1.7シート書き出しheaders + rows85_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: 未決済残高), deductMapcfAmt = 請求総額 − 仕訳振替合計摘要に 月額給与・報酬 を含む INV。天引き(源泉税・社保等)を差引いた差引支給額が実際の出金額
P1.5入出金判定収支区分isIn フラグ収入 を含む → 入金、それ以外 → 出金
P1.6計画イベント生成決済日_計画, cfAmt, 決済手段, 摘要, INV_IDcashEvent (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 + rows83 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

#カラム名データ型/書式備考
1A決済日yyyy-mm-dd決済日_実績
2Bソースtext固定: 実績
3C管理IDtextSTL_ID
4D勘定科目text決済口座 or 差額処理科目
5E摘要text元摘要 + [STL:xxx INV:xxx]
6F入金#,##0入金区分の場合に税込金額_決済
7G出金#,##0出金区分の場合に税込金額_決済
8H現預金残高#,##0期首残高 + Σ(入金 − 出金)

6.2 83/84: 計上/計画CF

#カラム名データ型/書式備考
1A決済日_計画yyyy-mm-dd決済日_計画
2Bソースtext83: 計上, 84: 計画 or 実績(STL分)
3C管理IDtextINV_ID or STL_ID
4D決済口座text決済手段 or 決済口座(STL分)
5E摘要text元摘要 + [INV:xxx] or [STL]
6F入金#,##0収入区分の場合
7G出金#,##0支出区分の場合
8H現預金残高#,##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全額決済済みINVSKIP (金額 = 0 で除外) → 実績STL側のみで表示
期首残高が 0ctx.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 + 対応 STL84 で未決済残高表示・実績合算で二重計上なし
DCF-05天引き差引月額給与 INV + 仕訳振替 INV出金額 = 請求総額 − 天引き合計
DCF-06仕訳振替除外決済手段 = 仕訳振替 の INVCF イベント除外(天引きマップ入力のみ)
DCF-07資産計上除外と例外資産計上 INV(通常 + 未収入金)通常除外・未収入金は CF イベント出力
DCF-08残高マイナス警告残高が負になるケースH 列に赤背景+赤文字の条件付き書式
DCF-09期首残高行2 行目に期首残高行(YYYY-07-31)出力

付録

付録A: 実装ファイル

ファイル関数役割
606_datamart_daily_cf.jsdmGetCashImpact_科目のキャッシュインパクト判定 (予算データ用、V2では未使用)
606_datamart_daily_cf.jsdmBuildDailyCashflow_85: 実績CF構築
606_datamart_daily_cf.jsdmBuildPlanCashflow_83/84: 計上/計画CF構築
602_datamart_main.js(dmMain 内)3タブの呼び出し・パラメータ設定

付録B: 関連仕様書

  • spec_cf — 月次CF計算書 (80/81/82)
  • spec_engineAction A/B (仕訳エンジン)
  • spec_bs — B/S (期首残高 cashPlug の算出元)