♻️

メンバーインポートで入社日変更をできるようにしました

概要

  • メンバーインポートで、入社日変更(前倒し・後ろ倒し)をできるようにしました

詳細

仕様

  • 以下の「入社日変更の行として扱う条件」をすべて満たす場合のみ、入社日変更を行う
  • そうでなければ、入社日変更としては扱わずに、従来のインポート処理に委ねる。

入社日変更の行として扱う条件

[条件] 既存のメンバーであり、「入社日」の列のセルに値があること

[条件] 再入社のインポートではないこと

[条件] 「退社日」の追加・更新がないこと

  • 「退社日」列自体がないか、「退社日」の列があっても、その会社の既存の退職日と一致する
  • 退職日に実変更のない退社日のみ許容し、退職処理・退職日変更との同一行混在は不可とする)

[条件] 行で指定された会社に既に所属しており、その会社の所属期間が1つだけ特定できること。

  • 再入社等で複数期間ある場合は対象外とする

[条件] 指定された入社日が既存の入社日と異なり、かつ所属終了日(退職日の翌日)以前であること。

[条件] 行に値が指定された会社列が「すべて」上記の「条件」を満たすこと。

  • 1つでも満たさない会社列があれば、 入社日変更として扱わず従来のインポート処理に委ねる。

注意事項

  • 入社日変更の行として扱われる場合、入社日以外の項目は一切変更を行わない(CSVの入社日列の以外のセルの内容は全て無視する)

制約事項

  • 画面操作・トランザクションメンバーインポートにおける、入社日変更と同等のバリデーションチェックを設ける。
    • 時系列データ不整合を防ぐため
    • 仕様・ロジックの複雑化を防ぐため

[制約事項] 入社日は退職日より後に後ろ倒しできない

[制約事項] 入社日の変更と同時に、退職日を変更できない

[制約事項] 新しい入社日と元の入社日の間に変更履歴がある場合、入社日変更ができない

 

補足:入社日の操作と退職日の操作の組み合わせと、その結果

case入社日の操作退職日の操作挙動
1登録登録従来どおり(入社日・退職日を同時登録)
2登録前倒しエラーになる(そもそも、退職日の変更は入社していない会社に対してできない)
3登録後倒しエラーになる(そもそも、退職日の変更は入社していない会社に対してできない)
4前倒し登録エラーになる
5前倒し前倒しエラーになる
6前倒し後倒しエラーになる
7後倒し登録エラーになる
8後倒し前倒しエラーになる
9後倒し後倒しエラーになる
10再入社登録登録従来どおり(再入社+退職の処理が実行される)
11再入社登録前倒し同上
12再入社登録後倒し同上