1. 基本情報

焦点質問: HCマスタからどのような給与・社保・源泉の仕訳INVを自動生成するか?

項目内容
関数名generateHcInvoices
ファイル401_bat_rpa.js
入力22_bud_headcount
出力32_wrk_invoice + 31_wrk_order
メニュー「⚙️ 定期RPA起票 > 👤 HC(人件費)」

2. 前提条件・依存関係

項目内容
SSOT32_wrk_invoice(生成されたINVの正)
マスタ依存11_mst_account(科目名は完全一致で登録済であること。キーワード推測禁止)
辞書依存15_mst_dictionary(雇用形態プルダウンの選択肢を管理)
前提: 有効フラグ有効フラグ=TRUE の行のみ処理対象。FALSE および空セルはスキップ
前提: 22タブ入力済氏名・ポジション、雇用形態、開始年月、月額給与・報酬が最低限入力されていること
前提: 最終起票年月日手入力。「ここまで作成済み」の意味。RPAは書き戻さない。決済ラグ(月)を減算して利用月ベースに変換し、開始年月からその月まで一括起票する
ORD依存31_wrk_order(管理ID+開始年月をキーにORD検索/自動作成。spec_ord.md 参照)
定数依存002_constants.jsRPA_DEFAULTS(税務署・年金事務所・市区町村の名称)

3. 入力スキーマ

22_bud_headcount カラム定義(V2)

#列名入力/自動説明制約
1有効フラグcheckbox入力FALSE→SKIP
2管理IDstring入力EMP_NNNNORDキーの一部
3氏名・ポジションstring入力表示名・摘要に使用必須
4雇用形態string(pulldown)入力役員/正社員/アルバイト/業務委託/顧問デフォルト科目名の決定に使用
5科目名string(pulldown)入力空なら雇用形態からデフォルト決定11_mst_account登録必須
6取引先名string(pulldown)入力空なら氏名を使用
7適用年度string入力FY表記ORD終了年月の推定に使用
8入社年月date入力参考情報
9退職年月date入力参考情報
10開始年月date入力RPA対象期間の開始必須。月ループの起点
11終了年月date入力RPA対象期間の終了。空=無期限
12月額給与・報酬number入力内税(消費税込み総額)
13決済手段string(pulldown)入力銀行振込/口座振替 等
14決済ラグ(月)number入力0=当月、1=翌月支払日・rowTargetYm算出に使用
15支払基準日number入力日(1-31)。月末日で上限キャップ
16休日調整string入力前/後/なし
17CF計上string入力予算/実績
18免税フラグcheckbox入力TRUE=免税事業者→益税Row生成
19源泉所得税額number入力月額
20源泉消費税額number入力内税の内訳。免税→益税(Row 1b)、課税→仮払消費税等(Row 2b)
21住民税額number入力月額
22健保料率%入力
23健保額number数式(=L×V)
24介護保険料率%入力
25介護保険額number数式(=L×X)
26厚年料率%入力
27厚年額number数式(=L×Z)
28雇用保険料率%入力
29雇用保険額number数式(=L×AB)
30子ども・子育て拠出金率%入力
31子ども拠出金額number数式(=L×AD)
32法定福利費合計number数式会社負担合計(RPA Row 5で使用)
33社保預り金合計number数式従業員負担合計(RPA Row 4で使用)
34社保控除後支給額number数式(=L−AG)
35差引支給額number数式=L−源泉所得税−源泉消費税−住民税−AG
36採用エージェント費number入力入社月に1回(将来拡張用)
37PC等初期費用number入力入社月に1回(将来拡張用)
38組織名string(pulldown)入力ORD・全INV Rowに転記
39最終起票年月日date手入力「ここまで作成済み」の意味。支払予定日ベースで記入。RPAは書き戻さない
40備考string入力自由記述

設計方針

  1. 左→右の入力フロー — 誰が(👤) → いつから(📅) → いくら(💰) → どう払う(💳) → 税金(🧾) → 社保(🏥) → 集計(📊)
  2. 頻繁に見る列を左に — 氏名・科目名・月額が画面内に収まる
  3. 自動計算列は右に — 社保額・集計は数式で自動算出、普段触らない
  4. 管理列は両端 — 有効フラグ/管理IDは先頭、最終起票/備考は末尾

雇用形態の選択肢(15_mst_dictionary に登録)

カテゴリ表示名
雇用形態役員
雇用形態正社員
雇用形態アルバイト
雇用形態業務委託
雇用形態顧問

4. 処理ロジック(マトリクス)

共通INVフィールド(buildInvRow_ が自動設定): 有効フラグ=true, 請求ID=INV_YYYYMMDD_NNNN(自動発番), 起票日時=now, 起票者="RPA自動起票", 請求ステータス="未処理", 通貨="JPY", 税区分="対象外", PJ名="指定なし_共通費など"(未指定時)

全Rowに対して isDuplicate_() による摘要ベースの重複チェックあり。存在すればSKIP。1行だけ手動削除して再実行した場合、削除された行のみ再生成される。

S1: 初期化

STEP処理入力列ソース出力/変数条件
S1.1対象年月算出最終起票年月日22_bud_headcount 全行targetYm全有効行の最終起票年月日の最大値を取得。全行空の場合は現在年月。翌月加算はしない(手入力=「ここまで作成」の意味)
S1.2ORD/ID準備31_wrk_order 全体ordMap, IDキャッシュbuildOrdMap_() で既存ORDを管理ID+開始年月でインデックス化

S2: 行ループ(FOR EACH 22タブ行)

STEP処理入力列ソース出力/変数条件
S2.1スキップ判定: 有効フラグ有効フラグ22_bud_headcount.A列!== TRUESKIP(空セルもFALSE扱い)
S2.2行別対象年月算出最終起票年月日, 決済ラグ(月)22_bud_headcountrowTargetYmrowTargetYmRaw = parseDateToYm(最終起票年月日) or targetYm。rowTargetYm = rowTargetYmRaw − 決済ラグ(月)(利用月ベースに変換)
S2.3スキップ判定: 開始年月開始年月22_bud_headcount.J列空 OR rowTargetYm < 開始年月SKIP
S2.4ORD検索/作成管理ID, 開始年月22_bud_headcount.B,J列ordId`ordKey = 管理ID + "

S3: 月ループ(curHcYm: 開始年月 → rowTargetYm)

行ごとに開始年月から rowTargetYm まで月単位でループ。終了年月を超えた場合はbreak。

STEP処理入力列ソース出力/変数条件
S3.1終了年月チェック終了年月22_bud_headcount.K列値あり AND curHcYm > 終了年月break(空=無期限で常に継続)
S3.2変数: 支払日計算決済ラグ(月), 支払基準日22_bud_headcount.N,O列salaryPayDatepayYm = addMonths(curHcYm, lag)salaryPayDate = payYm の 支払基準日。支払基準日>月末→月末日にキャップ
S3.3変数: 納期の特例curHcYmtokureiDeadline1〜6月→同年7/10、7〜12月→翌年1/10
S3.4変数: 翌月末日curHcYmnextMonthEndcurHcYm + 2ヶ月の0日 = 翌月末日(社保納付日)
S3.5変数: 金額系月額給与, 源泉所得税, 住民税, 社保預り金合計, 法定福利費合計, 免税フラグ, 源泉消費税額22_bud_headcount各金額変数salaryExTax = monthlySalary − srcConsumptionTax(内税控除)
S3.6変数: 科目名決定科目名, 雇用形態22_bud_headcount.E,D列accountName①科目名列に値あり→そのまま ②空→雇用形態デフォルト(→ 付録B参照)

Row 1: 月額給与・報酬(P/L費用 — メインINV)

STEP処理入力出力条件
R1.1INV行生成salaryExTax, srcConsumptionTax, monthlySalary32_wrk_invoice常に生成
  • 申請種別="月額給与・報酬支払", 科目名=accountName, 収支区分="支出"
  • 税抜金額_計画=salaryExTax, 消費税額_計画=srcConsumptionTax, 税込金額_計画=monthlySalary
  • 発生日=targetMonthEnd(対象月末日), 決済日_計画=salaryPayDate, 決済手段=payMethod
  • 取引先名=vendorName(取引先名列。空なら氏名)

内税ルール: 月額給与・報酬 は消費税込みの総額。源泉消費税額 はその内訳であり、外税として加算しない。 STL税込金額_決済: Action A時に jeFxAmtMap で同一ORD+対象月の仕訳振替INV(Row 1b/2b/2a/3a/4a)の金額を集計し、Row 1の税込金額_計画から差し引いた「差引支給額」がSTLの決済金額になる。

Row 1b/2b: 消費税関連(免税=益税 or 課税=仮払 — 排他)

STEP処理入力出力条件
R1b.1Row 1b: 益税(雑収入)srcConsumptionTax32_wrk_invoiceisExempt=TRUE AND srcConsumptionTax>0
R2b.1Row 2b: 仮払消費税等(B/S)srcConsumptionTax32_wrk_invoiceisExempt=FALSE AND srcConsumptionTax>0

Row 1b 詳細: 申請種別="財務仕訳(振替等)", 科目名="雑収入", 収支区分="収入", 決済手段="仕訳振替", 発生日=決済日_計画=salaryPayDate Row 2b 詳細: 申請種別="財務仕訳(振替等)", 科目名="仮払消費税等", 収支区分="支出", 決済手段="仕訳振替", 発生日=決済日_計画=salaryPayDate

Row 2a/2: 源泉所得税(預り金+/取崩し — ペア)

STEP処理入力出力条件
R2a.1Row 2a: 預り金+(B/S負債)withholdingTax32_wrk_invoicewithholdingTax > 0
R2.1Row 2: 預り金取崩し(納付)withholdingTax32_wrk_invoicewithholdingTax > 0

Row 2a 詳細: 申請種別="財務仕訳(振替等)", 科目名="預り金", 税抜金額_計画=+withholdingTax, 決済手段="仕訳振替", 発生日=決済日_計画=salaryPayDate Row 2 詳細: 申請種別="財務仕訳(振替等)", 科目名="預り金", 税抜金額_計画=−withholdingTax, 取引先=RPA_DEFAULTS.税務署, 決済手段=RPA_DEFAULTS.口座振込, 発生日=決済日_計画=tokureiDeadline

Row 3a/3: 住民税(預り金+/取崩し — ペア)

STEP処理入力出力条件
R3a.1Row 3a: 預り金+(B/S負債)residentTax32_wrk_invoiceresidentTax > 0
R3.1Row 3: 預り金取崩し(納付)residentTax32_wrk_invoiceresidentTax > 0

Row 3a 詳細: 申請種別="財務仕訳(振替等)", 科目名="預り金", 税抜金額_計画=+residentTax, 決済手段="仕訳振替", 発生日=決済日_計画=salaryPayDate Row 3 詳細: 申請種別="財務仕訳(振替等)", 科目名="預り金", 税抜金額_計画=−residentTax, 取引先=RPA_DEFAULTS.市区町村, 決済手段=RPA_DEFAULTS.口座振込, 発生日=決済日_計画=tokureiDeadline

Row 4a/4: 社会保険(預り金+/控除 — ペア)

STEP処理入力出力条件
R4a.1Row 4a: 預り金+(B/S負債)siDeduction32_wrk_invoicesiDeduction > 0
R4.1Row 4: 預り金取崩し(控除)siDeduction32_wrk_invoicesiDeduction > 0

Row 4a 詳細: 申請種別="財務仕訳(振替等)", 科目名="預り金", 税抜金額_計画=+siDeduction, 決済手段="仕訳振替", 発生日=決済日_計画=salaryPayDate Row 4 詳細: 申請種別="請求書受領(AP)", 科目名="預り金", 税抜金額_計画=−siDeduction, 取引先=RPA_DEFAULTS.年金事務所, 決済手段=RPA_DEFAULTS.口座振替, 発生日=targetMonthEnd, 決済日_計画=nextMonthEnd

Row 5: 法定福利費(P/L費用 — 会社負担分)

STEP処理入力出力条件
R5.1Row 5: 法定福利費legalWelfare32_wrk_invoicelegalWelfare > 0

詳細: 申請種別="請求書受領(AP)", 科目名="法定福利費", 取引先=RPA_DEFAULTS.年金事務所, 決済手段=RPA_DEFAULTS.口座振替, 発生日=targetMonthEnd, 決済日_計画=nextMonthEnd

W: 書き出し

STEP処理入力出力条件
W1.1一括書き込み: ORDnewOrdRows31_wrk_orderwriteOrdRows_() で末尾に追記
W1.2一括書き込み: INVdrafts32_wrk_invoicewriteInvRows_() で末尾に追記。諸表区分・大分類を科目マスタから自動付与

書き込み位置: 列B(発注ID/請求ID)の最終データ行の直下に追記。列A(有効フラグ)はチェックボックスが空行にも存在するため最終行判定には使用しない。

最終起票年月日: RPAは書き戻さない(手入力管理)。


5. 出力サマリー

1人・1ヶ月あたりのINV一覧(最大10行)

#科目名金額P/L or B/S発生日支払期限決済手段取引先条件
Row 1給料手当 / 役員報酬 等+月額(税抜)P/L月末salaryPayDatepayMethod本人/取引先常に
Row 1b雑収入 (益税)+消費税額P/LsalaryPayDatesalaryPayDate仕訳振替本人/取引先免税のみ
Row 2b仮払消費税等 (源泉消費税)+消費税額B/SsalaryPayDatesalaryPayDate仕訳振替本人/取引先課税+消費税>0
Row 2a預り金 (源泉所得税 計上)+所得税額B/SsalaryPayDatesalaryPayDate仕訳振替本人/取引先所得税>0
Row 2預り金 (源泉所得税 納付)−所得税額B/S納期特例日納期特例日口座振込税務署所得税>0
Row 3a預り金 (住民税 計上)+住民税額B/SsalaryPayDatesalaryPayDate仕訳振替本人/取引先住民税>0
Row 3預り金 (住民税 納付)−住民税額B/S納期特例日納期特例日口座振込市区町村住民税>0
Row 4a預り金 (社保 計上)+社保預りB/SsalaryPayDatesalaryPayDate仕訳振替本人/取引先社保>0
Row 4預り金 (社保 納付)−社保預りB/S月末翌月末口座振替年金事務所社保>0
Row 5法定福利費+会社負担P/L月末翌月末口座振替年金事務所法福>0

STL税込金額_決済の仕組み: Row 1b, 2b, 2a, 3a, 4a は全て仕訳振替。Action AのjeFxAmtMapに集計され、Row 1のSTL税込金額_決済から差し引かれる。結果としてSTL税込金額_決済 = 差引支給額となる。


6. 業務ルール

  1. 内税ルール月額給与・報酬 は消費税込みの総額。源泉消費税額 はその内訳であり、外税として加算しない。税抜 = 月額 − 消費税額
  2. 納期の特例 — 従業員10人未満の事業所は源泉所得税・住民税を年2回まとめて納付。1〜6月分→同年7/10、7〜12月分→翌年1/10。RPAはINVの発生日を納付期限日に設定し、Action A→Datamart経由で正しいB/S月に反映
  3. 預り金の計上/取崩しペア — Row 2a/3a/4a で支払基準日に預り金+(仕訳振替)、Row 2/3/4 で納付日に預り金-(現金支出)。計上Rowは仕訳振替のためjeFxAmtMapに集計され、Row 1のSTL税込金額_決済から差し引かれる(= 差引支給額になる)
  4. 仮払消費税等 — 課税事業者への支払時の消費税は仮払消費税等(B/S資産)として正の値で計上。仕訳振替(現金移動なし)で、決算時に仮受消費税等と相殺する
  5. 業務委託・顧問は社保なし — Row 4a, 4, 5 は社保預り金=0 かつ 法定福利費=0 のためスキップ
  6. RPA_DEFAULTS — 税務署・年金事務所・市区町村の名称は 002_constants.jsRPA_DEFAULTS で管理(武生税務署, 武生年金事務所, 越前市 等)
  7. 全有効行一括処理 — RPAは全有効HC行を処理する。特定のEMPだけテストする場合は他の有効フラグを一時的にFALSEにする
  8. 月ループによる一括起票 — 開始年月からrowTargetYmまで月単位でループし、未起票の月を一括で起票する。最終起票年月日を更新すれば次回実行時にその月まで起票される

7. 冪等性(二重起票防止)

各Rowが個別の摘要テンプレートで重複チェックされる。isDuplicate_() が32_wrk_invoice内に同一摘要を検索し、存在すればSKIPする。

摘要テンプレート一覧:

Row摘要パターン
Row 1【RPA:HC】{curHcYm} {氏名} 月額給与・報酬
Row 1b【RPA:HC】{curHcYm} {氏名} 源泉消費税益税
Row 2b【RPA:HC】{curHcYm} {氏名} 源泉消費税
Row 2a【RPA:HC】{curHcYm} {氏名} 源泉所得税預り
Row 2【RPA:HC】{curHcYm} {氏名} 源泉所得税
Row 3a【RPA:HC】{curHcYm} {氏名} 住民税預り
Row 3【RPA:HC】{curHcYm} {氏名} 住民税
Row 4a【RPA:HC】{curHcYm} {氏名} 社保預り
Row 4【RPA:HC】{curHcYm} {氏名} 社保控除
Row 5【RPA:HC】{curHcYm} {氏名} 法定福利費

動作:

  • 32_wrk_invoice 内に同一摘要が存在する行のみSKIP
  • 一部の行を手動削除して再実行すると、削除された行だけ再生成される
  • 同じ月を2回実行しても二重起票されない

8. エラーハンドリング

エラー条件処理ユーザー通知
22_bud_headcount タブが見つからない処理中断ui.alert("22_bud_headcount が見つかりません。")
HCデータが0件(ヘッダーのみ)処理中断ui.alert("HCデータがありません。")
起票対象なし(全行スキップ or 全行重複)正常終了ui.alert("{targetYm} の期間で新たに起票すべきHCはありませんでした。")
処理中の例外try-catch でキャッチui.alert("generateHcInvoices でエラーが発生しました: {エラーメッセージ}")
有効フラグ=FALSE/空セル行スキップ通知なし
開始年月が空行スキップ通知なし
rowTargetYm < 開始年月行スキップ通知なし
取引先名が空氏名でフォールバック通知なし
支払基準日 > 月末日月末日にキャップ通知なし

9. テスト仕様

単体テスト観点

テストIDテスト名前提条件期待結果
T1業務委託・基本EMP_0002: 月額22,000(内税), 消費税2,000, 源泉42, target=2025-11Row1: 開発外注費 税抜20,000+税2,000=総額22,000, Row2: 預り金-42 発生日=2026-01-10
T2役員・基本EMP_0001: 役員, 月額500,000, 源泉21,220, 社保74,575, 法福76,375, target=2025-11Row1〜5+2a/4a 全て生成、Row1科目=役員報酬、STL税込金額_決済=404,205(差引支給額)
T3納期の特例(7-12月)target=2025-11tokureiDeadline=2026-01-10
T4納期の特例(1-6月)target=2026-03tokureiDeadline=2026-07-10
T5内税計算月額22,000, 消費税2,000, 免税=TRUE税抜=20,000, 消費税=2,000, 税込=22,000
T6課税事業者・源泉消費税あり免税=FALSE, 月額22,000, 消費税2,000, target=2025-11srcConsumptionTax=2,000, 税抜=20,000, Row1b=未生成, Row2b: 仮払消費税等+2,000 仕訳振替
T7重複チェック同月を2回実行2回目は0件起票
T8支払ラグラグ=1, 支払日=25, target=2025-11salaryPayDate=2025-12-25
T9期間外SKIP開始=2026-01, target=2025-11スキップ
T10住民税あり住民税=10,000Row3a: 預り金+10,000 仕訳振替, Row3: 預り金-10,000 発生日=納期特例日
T11科目名オーバーライド雇用形態=業務委託, 科目名="支払手数料"Row1科目=支払手数料(デフォルトの開発外注費ではなく)
T12顧問・基本雇用形態=顧問, 科目名=空Row1科目=支払手数料, 社保Row=スキップ
T13課税事業者・源泉消費税なし免税=FALSE, 消費税=0Row1b=未生成, Row2b=未生成
T14免税事業者・Row2b不生成免税=TRUE, 消費税=2,000Row1b=生成(益税), Row2b=未生成
T15課税・仮払消費税等の発生日免税=FALSE, 消費税=2,000, ラグ=1, target=2026-03Row2b: 仮払消費税等+2,000 発生日=salaryPayDate(2026-04-25等)
T16STL税込金額_決済=差引支給額役員, 月額500,000, 源泉21,220, 社保74,575Row1のSTL=500,000-21,220-74,575=404,205 (jeFxAmtMapでRow2a+4a分を差引)
T17社保預り金計上社保74,575Row4a: 預り金+74,575 仕訳振替 salaryPayDate, Row4: 預り金-74,575 翌月末

テストデータ・期待結果

ケース A: 顧問・免税事業者 (EMP_0002 角会計事務所 2025-11月分)

22タブ入力:

項目
管理IDEMP_0002
氏名・ポジション角会計事務所
雇用形態顧問
科目名支払手数料
月額給与・報酬22,000
免税フラグTRUE
源泉所得税額42
源泉消費税額2,000
住民税額0
社保預り金合計0
法定福利費合計0
決済ラグ(月)0
支払基準日25
決済手段口座振込
差引支給額19,958

算出変数:

変数
isExemptTRUE
srcConsumptionTax2,000
salaryExTax22,000 - 2,000 = 20,000
salaryPayDate2025-11-25
tokureiDeadline2026-01-10 (11月 → 7-12月 → 翌年1月10日)

32タブ期待結果 (INV 4行):

Row申請種別科目名税抜消費税税込発生日支払期限決済手段取引先
Row 1月額給与・報酬支払支払手数料20,0002,00022,0002025-11-302025-11-25口座振込角会計事務所
Row 1b財務仕訳(振替等)雑収入2,00002,0002025-11-252025-11-25仕訳振替角会計事務所
Row 2a財務仕訳(振替等)預り金+420422025-11-252025-11-25仕訳振替角会計事務所
Row 2財務仕訳(振替等)預り金-420-422026-01-102026-01-10口座振込武生税務署

未生成: Row 2b(免税→SKIP), Row 3a/3(住民税=0), Row 4a/4(社保=0), Row 5(法福=0)

33タブ期待結果 (STL 2行 — Action A実行後):

STL消込対象INV入出金決済口座取引先税込金額_決済算出根拠
STL 1Row 1 (支払手数料)出金口座振込角会計事務所19,95822,000 - jeFxAmt(2,000+42) = 19,958
STL 2Row 2 (預り金納付)出金口座振込武生税務署42abs(-42)

期待値サマリー (全テスト完了後):

財務諸表科目金額タイミング
P/L支払手数料-22,0002025-11 (発生月)
P/L雑収入+2,0002025-11 (給与支払月)
B/S未払金0期ずれで計上→STL消込で解消
B/S預り金+42 → 0計上(Row2a)→納付(Row2)で解消
B/S現預金-19,958 - 42 = -20,000STL消込後
CF出金(給与)19,958STL1消込時
CF出金(源泉)42STL2消込時

ケース B: 役員 (EMP_0001 2025-11月分)

22タブ入力:

項目
管理IDEMP_0001
氏名・ポジション(役員名)
雇用形態役員
科目名(空 → デフォルト "役員報酬")
月額給与・報酬500,000
免税フラグFALSE
源泉所得税額21,220
源泉消費税額0
住民税額0
社保預り金合計74,575
法定福利費合計76,375
決済ラグ(月)0
支払基準日25
決済手段口座振込
差引支給額404,205

算出変数:

変数
isExemptFALSE
srcConsumptionTax0
salaryExTax500,000 - 0 = 500,000
salaryPayDate2025-11-25
tokureiDeadline2026-01-10
nextMonthEnd2025-12-31
accountName"役員報酬"

32タブ期待結果 (INV 7行):

Row申請種別科目名税抜消費税税込発生日支払期限決済手段取引先
Row 1月額給与・報酬支払役員報酬500,0000500,0002025-11-302025-11-25口座振込本人
Row 2a財務仕訳(振替等)預り金+21,220021,2202025-11-252025-11-25仕訳振替本人
Row 2財務仕訳(振替等)預り金-21,2200-21,2202026-01-102026-01-10口座振込武生税務署
Row 4a財務仕訳(振替等)預り金+74,575074,5752025-11-252025-11-25仕訳振替本人
Row 4請求書受領(AP)預り金-74,5750-74,5752025-11-302025-12-31口座振替武生年金事務所
Row 5請求書受領(AP)法定福利費76,375076,3752025-11-302025-12-31口座振替武生年金事務所

未生成: Row 1b(免税=FALSE), Row 2b(消費税=0), Row 3a/3(住民税=0)

33タブ期待結果 (STL 4行 — Action A実行後):

STL消込対象INV入出金決済口座取引先税込金額_決済算出根拠
STL 1Row 1 (役員報酬)出金口座振込本人404,205500,000 - jeFxAmt(21,220+74,575) = 404,205
STL 2Row 2 (源泉納付)出金口座振込武生税務署21,220abs(-21,220)
STL 3Row 4 (社保控除)出金口座振替武生年金事務所74,575abs(-74,575)
STL 4Row 5 (法定福利費)出金口座振替武生年金事務所76,375abs(76,375)

期待値サマリー (全テスト完了後):

財務諸表科目金額タイミング
P/L役員報酬-500,0002025-11
P/L法定福利費-76,3752025-11
B/S未払金0期ずれで計上→STL消込で解消
B/S預り金(源泉)+21,220 → 0計上(Row2a)→納付(Row2)で解消
B/S預り金(社保)+74,575 → 0計上(Row4a)→納付(Row4)で解消
B/S現預金-576,375STL全消込後
CF出金(給与)404,205STL1消込時
CF出金(源泉)21,220STL2消込時(2026-01-10)
CF出金(社保)74,575STL3消込時(翌月)
CF出金(法福)76,375STL4消込時(翌月)

CF合計: 404,205 + 21,220 + 74,575 + 76,375 = 576,375 = 役員報酬500,000 + 法定福利費76,375


付録

付録A: V1→V2 の変更点

観点V1 (仮想イベント方式)V2 (物理サブ元帳方式)
生成先Datamart内の仮想イベント配列32_wrk_invoice (物理シート)
仕訳台帳Datamartが毎回再計算Action Aで42_trn_journalへ永続化
預り金 計上(+)仕訳振替で明示的に生成Row 2a/3a/4aで明示生成(仕訳振替、支払基準日)
預り金 納付(−)pYm=納付月で仮想仕訳発生日=納期特例日のINV
免税益税(雑収入)EVENT 3で明示生成Row 1bで明示生成(仕訳振替)
消費税外税(月額に加算)内税(月額に含まれる)
納期の特例journalSettleMap参照(V1で廃止済み)対象月ベースで固定計算
重複防止不要(毎回再生成)摘要ベースの重複チェック

付録B: 雇用形態→デフォルト科目名マッピング

コード内のマッピング(generateHcInvoices 内で定義):

雇用形態デフォルト科目名用途例
役員役員報酬取締役・監査役
正社員給料手当正規雇用の従業員(フォールバックも同じ)
アルバイト雑給パートタイム・日雇い
業務委託開発外注費外部委託先(エンジニア等)
顧問支払手数料税理士・会計士・弁護士等の顧問契約
その他給料手当上記に該当しない雇用形態のフォールバック

※ 22タブの「科目名」列(E列)に値がある場合はデフォルトより優先される。

付録C: 旧→新カラム位置の変更

変更内容
氏名・ポジションH列(8番目)C列(3番目) — 最も参照頻度が高い
取引先名O列(15番目)F列(6番目) — 人物グループに統合
科目名なしE列(5番目) — 新規追加。雇用形態の隣
月額給与・報酬P列(16番目)L列(12番目) — スクロールなしで見える
免税フラグAF列(32番目)R列(18番目) — 税金グループの先頭
最終起票年月日headersに未定義AM列(39番目) — 明示的に定義