♻️
メンバーインポートで入社日変更をできるようにしました
概要
- メンバーインポートで、入社日変更(前倒し・後ろ倒し)をできるようにしました
詳細
仕様
- 以下の「入社日変更の行として扱う条件」をすべて満たす場合のみ、入社日変更を行う
- そうでなければ、入社日変更としては扱わずに、従来のインポート処理に委ねる。
- 入社日変更に必要な項目は、退職日変更と同様である。
入社日変更の行として扱う条件
[条件] 既存のメンバーであり、「入社日」の列のセルに値があること
[条件] 再入社のインポートではないこと
[条件] 「退社日」の追加・更新がないこと
- 「退社日」列自体がないか、「退社日」の列があっても、その会社の既存の退職日と一致する
- 退職日に実変更のない退社日のみ許容し、退職処理・退職日変更との同一行混在は不可とする)
[条件] 行で指定された会社に既に所属しており、その会社の所属期間が1つだけ特定できること。
- 再入社等で複数期間ある場合は対象外とする
[条件] 指定された入社日が既存の入社日と異なり、かつ所属終了日(退職日の翌日)以前であること。
[条件] 行に値が指定された会社列が「すべて」上記の「条件」を満たすこと。
- 1つでも満たさない会社列があれば、 入社日変更として扱わず従来のインポート処理に委ねる。
注意事項
- 入社日変更の行として扱われる場合、入社日以外の項目は一切変更を行わない(CSVの入社日列の以外のセルの内容は全て無視する)
制約事項
- 画面操作・トランザクションメンバーインポートにおける、入社日変更と同等のバリデーションチェックを設ける。
- 時系列データ不整合を防ぐため
- 仕様・ロジックの複雑化を防ぐため
[制約事項] 入社日は退職日より後に後ろ倒しできない
[制約事項] 入社日の変更と同時に、退職日を変更できない
[制約事項] 新しい入社日と元の入社日の間に変更履歴がある場合、入社日変更ができない
補足:入社日の操作と退職日の操作の組み合わせと、その結果
| case | 入社日の操作 | 退職日の操作 | 挙動 |
|---|---|---|---|
| 1 | 登録 | 登録 | 従来どおり(入社日・退職日を同時登録) |
| 2 | 登録 | 前倒し | エラーになる(そもそも、退職日の変更は入社していない会社に対してできない) |
| 3 | 登録 | 後倒し | エラーになる(そもそも、退職日の変更は入社していない会社に対してできない) |
| 4 | 前倒し | 登録 | エラーになる |
| 5 | 前倒し | 前倒し | エラーになる |
| 6 | 前倒し | 後倒し | エラーになる |
| 7 | 後倒し | 登録 | エラーになる |
| 8 | 後倒し | 前倒し | エラーになる |
| 9 | 後倒し | 後倒し | エラーになる |
| 10 | 再入社登録 | 登録 | 従来どおり(再入社+退職の処理が実行される) |
| 11 | 再入社登録 | 前倒し | 同上 |
| 12 | 再入社登録 | 後倒し | 同上 |
YESOD Help