Operating Rules
ここがずれると数字がずれます。請求エンジンの確定ルール JC-01〜07 は回帰テスト47件が固定しています — 変えるにはテストも一緒に変える必要があります。
Boundary
JC-03 — 契約の総日数が短期と長期を分けます。この判定ひとつが敷金と更新料を決めるため、担当者が選ぶ値ではなくルールとして持ち、契約画面で自動的に判定します。
JC-04 — すべての延長は新規契約として再判定します。 延長だからといって以前の判定をそのまま引き継ぐことはありません。総日数・長期/短期・敷金・更新料を最初から計算し直します。
Terms
判定が分かれると、それに続く計算がすべて分かれます。だから判定は担当者の入力ではなく、総日数から自動的に決まります。
| 項目 | 短期 | 長期 |
|---|---|---|
| 期間判定(JC-03) | 総31日 〜 180日 | 総181日以上 |
| 敷金(JC-05) | なし | 賃料1ヶ月分 |
| 更新料(JC-07) | なし | 直前の契約も長期のときだけ、新賃料の10% |
| 延長(JC-04) | 新規契約として再判定 | 新規契約として再判定 |
更新料の条件はもう一段狭いです。 直前の契約と新規契約が「どちらも長期」のときだけ10%が付きます。片方が短期なら付きません。
30日以下は取り扱いません。 日割り・敷金・更新料のルールがすべて31日以上を前提に組まれているためです。
Billing
請求額はシートの値を書き写したものではなく、以下のルールで計算したエンジンの算出値です。
| ルール | 内容 |
|---|---|
| JC-01 暦月 | 毎月1日から末日までが1ヶ月です。初月と最終月だけその月の実日数を分母に日割りし、中間の月は丸ごと1ヶ月です |
| JC-02 丸め | 計算結果は100円単位で切り上げます |
| JC-06 請求タイミング | 入居月は当月の日割り分と翌月分を同時に請求します。以降は毎月最初の営業日に翌月分を請求します |
有効な契約44件がすべて計算されます — ブロック0。 移行前のシートでは計算が TODAY() に依存し、開くたびに値が変わっていました。しかも請求した事実そのものが残りませんでした。ルールをエンジンに固定すれば、いつ開いても同じ値になり、請求した事実が台帳に残ります。
Locked
計算ルールは回帰テスト47件が固定し、台帳のルールはDBが強制します。ルールを変えるにはテストかスキーマも一緒に変える必要があり、それが「変えた」という記録になります。
Japan
国別のコード分岐ではなく、物件単位の設定で処理します。いま台帳に載っているのは日本の7物件98室だけです。
Verification
請求エンジンの回帰テスト47項目が通過します。そしてエンジンが出した値を、移行前のシート台帳と直接突き合わせて差を数えました。
シートはまだ正本で、切り替え時期は協議中です。 ルールは運用コンソール(freymadmin.llnpco.dev — サイト全体に認証)に実装されており、この紹介サイト(freym.llnpco.dev)は公開です。インフラはLLNPで、HOMESのサーバーには何も置いていません。