Skip to content

Latest commit

 

History

History
129 lines (100 loc) · 8.87 KB

File metadata and controls

129 lines (100 loc) · 8.87 KB
title seed — 初期データ
status current
scope 会計コア
audience
開発
updated 2026-09-20
supersedes
related
../ddl/README.md
../../docs/02_ペルソナ.md
../../docs/12_マスタ台帳.md

seed — 初期データ

会計コアが動き始めるために必要なデータ。ペルソナ(docs/02)の 株式会社アルタイルシステムズを前提にしてある。

デモデータではない。 仕訳の入った通しの体験シナリオはフェーズ 7 で別に作る (docs/04)。ここにあるのは 「新しく会計コアを立ち上げたとき、最初に入っていてほしいもの」だけである。

適用

DDL を先に流してから、番号順に流す。

pwsh -NoProfile -File tools/clb/sql.ps1 -File Designer/seed/001_organization_and_periods.sql
# ファイル 内容
001 001_organization_and_periods.sql 事業所情報・第 18 期・月次期間 12 本・採番
002 002_departments.sql 部門 6 件(全社共通 + 5 部門)
003 003_tax_categories.sql 税区分 10 件
004 004_accounts.sql 勘定科目 105 件・既定税区分

各マスタの扱い(所有・誰が編集するか・版と削除)は docs/12_マスタ台帳 が持つ。

税区分(003)を勘定科目(004)より先に流す。勘定科目が既定税区分を参照するためである。

設計上の判断

税区分の名前に税率の数値を書かない

「課税売上(標準税率)」であって「課税売上 10%」ではない。その日に何 % かは制度ルールが決める ので、名前に数値を埋めると税率が変わった日にマスタ名が嘘になる(20 §2)。 画面には rate_kind から解決した税率を出す。

用途区分の既定値を入れない

ペルソナは個別対応方式(docs/02 §3)なので、 課税売上対応/共通対応/非課税売上対応は取引ごとに選ぶ必要がある。 既定値で埋めると「値は入っているが意味がない」状態を作り、 誰も気づかないまま控除税額が嘘になる(docs/15 §4-1)。

デモ用の利用者アカウントは、この番号の並びに入れない

経理担当・経理責任者のアカウントは dev/ に置き、上の 001〜004 には入れない。 置き場所・扱い・理由は ADR-0039

開発機でデモ用の利用者を用意する(dev/

dev/001_demo_user_roles.sql はアカウントを作らない。役割を付けるだけである。 hash / salt は CLB の PasswordHashHelper が作るもので、SQL では作れない (ClaudeCodeForDesigner/_specs/Authentication.md)。手順は 2 段になる。

  1. サーバを 1 度起動する。 ユーザーテーブルが空なら CLB が admin を作る
  2. 最初の 1 人にシステム管理を与える(新しい DB での 1 回だけ): UPDATE app_users SET is_sysadmin = 1 WHERE user_name = 'admin'; マイグレーションではやらない(新しい DB では admin がまだ居ないので空振りする。 ADR-0032
  3. admin でログインし、システム管理の画面で 2 人を作る—— soumu_ippan(経理担当)と soumu_bucho(経理責任者=総務部長。docs/02)。 利用者名は役職から採る(開発者が決めた。2026-08-31。役割そのままの名前は長くて打つのが面倒だから)。 識別名とパスワードは、Designer/LocalEnvironment.md(Git 追跡外)の「開発用アカウント」節に 開発者があらかじめ書いたものを使う(雛形は LocalEnvironment.md.sampleADR-0039)。 この登録は Claude が行ってよい。表に行が 1 つも無いときだけ開発者に頼む (規則と理由は docs/31 §3
  4. dev/001_demo_user_roles.sql を流すsql CLI)。役割が付く

締め出してしまったときの戻し方。 役割は画面から自分でも編集できるので、 最後のシステム管理者が自分の is_sysadmin を外す・can_access_app を落とすと、 次の 1 リクエストから入れなくなりqa/01 F-28)、 画面から戻す手が無くなる。sql CLI で直す: UPDATE app_users SET is_sysadmin = 1, can_access_app = 1 WHERE user_name = 'admin'; 保存の手前で止める関門はまだ無いqa/02 R27-10)。

なぜ 3 を画面からやるか。 上に書いたとおり hash / salt を SQL で作れないので、アカウントを作る操作は画面からしかできない。 値は追跡外に置く(31 §3)。 役割の付与(4)は機械で再現できるので、そこだけをファイルにしてある—— DB を作り直すたびに、役割の割り当てを手で思い出さずに済む。

既定税区分は判断が分かれる科目に入れない

雑収入・貸倒損失・固定資産売却損益などは取引の中身で課税区分が変わる。 既定値を置くと間違ったまま通ってしまうので、あえて空にしてある。

テスト

BusinessApp.Schema.Tests が DDL + この初期データをインメモリ SQLite に適用し、 制約に反していないこと・数と内容が期待どおりであることを検査する。

保留リスト

  • 2026-08-24 勘定科目の決算書表示区分statement_section)を入れていない。 会社計算規則が定める区分であり、記憶で書かない(32_調査のルール)。 一次情報を確認してから入れる。フェーズ 4 の着手前
  • 2026-08-24 補助科目(sub_accounts)の初期データが無い。普通預金の金融機関別など、 実際に使う口座が決まらないと作れない。デモデータを作るフェーズ 72026-09-08 に重みが変わった——ADR-0038 §3 で 補助科目が 2 値になったので、uses_sub_account = 1 の 3 科目(普通預金・当座預金・定期預金)は、 補助科目を作るまで明細に使えない(計上の関門が止める)。初期データだけで動かす環境では、 その 3 科目が使えないことを承知して使う
  • 2026-09-08 取引先の初期データが無い12 §2 の台帳。作れないのは同じ理由で、 実際の相手が決まらないと書けないからである)。requires_partner = 1 の 6 科目は、取引先を 1 件登録するまで明細に使えない15 §1-2。計上の関門が止め、取引先マスタに登録するよう案内する——文言は写さない)。 上の補助科目と同じ扱いで、デモデータを作るフェーズ 7 に取引先ごと入れる

既に使っている DB に「取引先を要する」を採り入れるときは、次の 1 本を流す (マイグレーションはデータを書かない——ADR-0020。 データ行の同値の網はフェーズ 3 に入る)。画面から 1 件ずつオンにするのと結果は同じである。

UPDATE accounts SET requires_partner = 1
    WHERE code IN ('1300', '2100', '4010', '4020', '4030', '5010');

オンにするのはいつでもできるが、計上済みの明細がある科目ではオフに戻せない15 §1-2 の一方通行。使い始める前なら戻せる)ので、 6 科目の外にも立てるなら、流す前に決める初期データの顔ぶれはこの 6 科目で確定(開発者の決定。2026-09-11。 利用者が自分の科目に「取引先を要する」を立てられるから、製品が広げない——理由と逐語は 15 §1-2)。