概要
月報を作成する画面です。
月報締日の翌日以降に、この画面を開いて月報を作ります。
集計期間の欄には画面起動時点の契約情報をもとに初期値をセットしているため、通常の運用であれば月報作成ボタンを押すだけです。
月報集計期間は手入力も可能です。
Excelで勤怠管理をしている場合は締日当日に終業時刻を見込みで入力して月報を作成・提出している場合もあると思いますが、このシステムではそのような柔軟な運用はできません。少なくとも終了打刻を終えてから月報を作る必要があります。
終了打刻データが入っていない状態では適切な月報が作れないためです。
仮に「締日当日に終了打刻を終えてから月報を作る」という運用を認めた場合、月報を作る時間はサービス残業になってしまいます。
結果的に「月報作成は月報締日の翌日以降に行う」という選択肢だけが残りました。
仕様
月報集計期間が手入力可能な理由
労働基準法 第25条にある「非常時払」を行う場合、どうにかして現時点での「既往の労働時間」を計算する必要があります。
当システムでは、非常時払いを行う際に月報を作成するようにしました。
非常時払いを行った場合、同じ年月の月報が2件できるイメージです。
2022年1月月報① 01/01~01/20 (01/20に非常時払いをした)
2022年1月月報② 01/21~01/31 (通常の月報)
また、月報集計期間の途中で契約内容が大きく変わる場合も、別々に月報を作る必要があります。
具体的には、別の事業場へ異動になり、ユーザーに紐付く就業規則が変わる場合が当てはまります。
初期値の取得方法
①締日の取得
システム日時の前月の契約データから締日を取得する。
該当データが存在しない場合、システム日時に紐付く契約データから締日を取得する。
この時点で締日の値(20とか31といった数値)が取得できる。
②直近の締日の判定
システム日時の”日”要素を締日の値に書き換える。
本日 <= 締日 である場合、締日の”月”要素を-1する(まだ月報を作るべき時期ではないので、前月分の月報を作ろうとしていると判断する)
③いったん初期値が確定
上記の計算で月報集計期間Toが決まる。
月報集計期間Fromは、月報集計期間To – 1月 の値をセットする。
④退職日の考慮
ユーザーに紐付く退職日を取得する。
月報集計期間Toには、 月報集計期間To または退職日どちらか小さい方の値をセットする。
補足
非常時払いを実現するためには任意のタイミングで月報を作れる機能が必要ですが、
通常はバッチ処理で自動的に月報を作成しても良いはずです。
バッチを流すタイミングは
・月報締め日の翌日になってから
・打刻が集中する時間を避ける
という感じで良いと思います。
その他
社員が急病になって月報を作れない場合も有り得るため、管理者が代理で月報を作る機能が必要です。
当システムでは用意できていませんが、この月報作成画面を流用して月報作成対象のユーザーを自由に選択できるようにすれば、割と簡単に実現できる想定です。