支払い管理システム — 仕組み解説

調整額が支払い一覧から
消えて見える仕組み

「手入力した調整額が一覧に反映されない」「保存したはずの金額がハイフンになる」—— これはデータが消えたのではなく、締め日の紐付けルールにより、 現在選択中の締め日と保存時の締め日がずれているためです。 このページでは、その仕組みを4つのパートで丁寧に説明します。

支払い一覧は「2種類のデータ」を混ぜて表示している

一覧に並ぶ各行は、実は出どころが違う2系統からできています。 「未払」の行と「下書き/確認済み」の行では、持っているデータの種類が根本的に異なります。

行の種類 データの出どころ 調整額を表示できる?
未払 配置データをその場でリアルタイムに自動集計
(基本金額・人工割・交通費・源泉税のみを計算)
持たない — 必ず「−」
下書き 調整額を入力して「保存」した支払いレコード
(DBに保存済みの確定前データ)
持つ ✓
確認済み 承認・確定された支払いレコード
(最終確定済みデータ)
持つ ✓
ポイント: 調整額は「支払いレコード(下書き)として保存された値」です。 「未払」行はリアルタイム集計のため調整額を元々持っていません。 調整額が画面に出るのは、その未払行に対応する下書きレコードが存在するときだけです。

調整額は「保存したときの締め日」に紐づく

調整額を入力して保存すると、支払いレコード(下書き)が作られます。 このとき、保存した瞬間に画面で選んでいた締め日が、 レコードの内部フィールド period_end に記録されます。

1

画面で締め日を選ぶ

支払い一覧上部のドロップダウンで締め日を選択。 この例では「6月17日」を選んでいる状態。

📅 締め日:6/17
2

調整額を入力する

佐藤さんの行に「+5,000円」と調整額を入力。 この時点ではまだ保存されていない(画面内の一時状態)。

3

「保存」ボタンを押す

保存ボタンを押すと、支払いレコード(下書き)が作成され、 その瞬間に選んでいた締め日(6/17)が自動的に記録されます。

保存されるレコード(イメージ) staff = 佐藤   period_end = 2024-06-17   adjustment = +5,000

DBに「締め日6/17 の調整額レコード」が存在する状態に

これ以降は画面の締め日が 6/17 のときだけ この調整額が取り出されて一覧に表示されます。


締め日が「一致する」か「しない」かで表示が変わる

一覧画面は、「いま画面で選んでいる締め日」と完全に一致する下書きだけを 取り出して未払行に差し込みます。 一致しなければ下書きが存在しても表示されません。

締め日が一致する — 調整額が見える
画面の締め日 6 / 17 一致 ✓ 保存時 6 / 17
  • 田中さん
  • 佐藤さん +5,000
  • 鈴木さん

締め日 6/17 を選んでいるので、6/17 に保存した佐藤さんの下書きが取り出され、 調整額 +5,000 が表示される。

締め日がずれる — 調整額が消える
画面の締め日 6 / 20 不一致 ✗ 保存時 6 / 17
  • 田中さん
  • 佐藤さん
  • 鈴木さん

締め日 6/20 を選んでいるため、6/17 に保存した佐藤さんの下書きは取り出されない。 データはDBに残っているが、一覧には出てこない。

「消えた」の正体: データは支払いレコードとしてDB内にしっかり残っています。 「別の締め日を見ているせいで画面に出てこない」だけです。 締め日を保存時と同じ日付に戻すと、再び表示されます。

なぜ「締め日が完全一致しないと出さない」のか

この仕様は意図的な安全策です。過去に別の動作を試したことで、 深刻な計算ミスが発生した経緯があります。

トレードオフの整理

得られた安全性

  • ✓ 別期間の調整額が混入しない
  • ✓ 支払い金額の計算が正確
  • ✓ どの締め日のデータか常に明確

生じる注意点

  • △ 締め日を変えると調整額が見えなくなる
  • △ 「消えた」と見えることがある
  • △ 確認には保存時と同じ締め日を選ぶ必要がある

まとめ

調整額を確認するときの鉄則

調整額を入れたとき(保存したとき)と同じ締め日を、画面で選んでください。
「消えた」と思ったら、まず画面の締め日が当時と同じかを確認しましょう。 データ自体は支払いレコードとしてDBに残っています。 削除されたわけではありません。

確認手順: 調整額が見えない → 画面上部の締め日ドロップダウンを「保存した日付」に変更 → 調整額が表示されれば正常(データあり)
注意: 締め日を変えて調整額を入力・保存すると、新しい締め日の下書きレコードが別途作られます。 意図しない二重保存を防ぐため、締め日の確認を先に行ってください。