2017-06-16

【サービス】勤務時間管理システム作ってみた

会社員としては勤怠管理は重要ですが、実は時間集計するのをシステム化するのは結構難しいのです。

時系列と時間帯の兼ね合いや、日付を跨いで勤務した場合など、パターン化するものが多くてプログラムが複雑かつ長くなり結果的に処理が重くて使えないものになってしまいます。
そこで、時間計算のすべてをデータベースに任せることにして、プログラムは入力のチェックとデータベースから拾ってくるデータの表示のみ、というシステムにしてみようと企画したのがこのシステムです。

あと、プライバシーとセキュリティを考えると、「名前」や「住所」は入力してもらわないほうが良いと判断して、ユーザ登録の際の入力には「メールアドレス」「パスワード」「ニックネーム」のみお願いしています。

「TagajoTownWeb勤務システム」
紹介サイトURL: http://tagajob.work/
システムの使い方: http://tagajob.work/help

◆システムの目的
会社員の勤務時間を下のような時間帯に区切って、各々に名前を付けます。
1.所定時間:いわゆる定時内のこと。必ず働いている時間。
2.所定深夜:深夜勤務などのこと。夜22時から翌朝5時までの間の所定時間のこと。
3.法定休憩:8時間労働なら1時間、6時間以上労働なら45分などの法律上の休憩時間。
4.時間外時間:いわゆる残業のことで、深夜時間帯以外の残業時間。
5.深夜時間外:夜22時~翌朝5時までの時間での残業時間。
6.所休時間外:法定休日以外の休日出勤の時間外時間。
7.所休深夜:法定休日以外の休日出勤の時間外時間のうち深夜時間帯のこと。
8.法休時間外:法定休日(法律で決まっている週1回の休日のこと)に出勤した時の時間外時間。
9.法休深夜:法定休日出勤した時の時間外時間のうち深夜時間帯のこと。
10.有給時間:有給休暇中の時間。給与が発生している。
11.無給時間:無給休暇中の時間。給与が発生していない。
12.不就労時間:遅刻や早退、途中外出、欠勤などで働いていない時間。給与が発生していない。
といった時間帯があり、入力した出勤時間と退勤時間から1から12のうちどの時間帯に当たるかを判定して集計するのがこのシステムの目的です。

◆システムの時間計算例
通常のオフィスで働くサラリーマンなら、以下のような感じの勤務時間帯になっていると思います。
【通常勤務】
1.00:00~05:00:深夜時間外
2.05:00~09:00:時間外時間
3.09:00~12:00:所定時間
4.12:00~13:00:法定休憩
5.13:00~18:00:所定時間
6.18:00~22:00:時間外時間
7.22:00~05:00:深夜時間外
当然このほかにもいろいろ所定休憩時間が入ったりしますが、おおむねこんなところだと思います。
この【通常勤務】というのは、「勤務時間帯テンプレート」の名前です。ほかにも【法定休日出勤】や【午後有給】といったテンプレートが考えられますね。
このシステムでは入力した出勤時間と退勤時間が上の1~7の時間帯のどこからどこに挟まるかを調べて、勤務時間の時間帯を決定しています。

例えばAさんが、【通常勤務】の日に8時30分~19時30分まで仕事をしたとすると、このシステムは以下のように勤務時間を計算します。
2.08:30~09:00:時間外時間
3.09:00~12:00:所定時間
4.12:00~13:00:法定休憩
5.13:00~18:00:所定時間
6.18:00~19:30:時間外時間
この時間帯の時間数を保存しておけば、1か月ごとに集計して勤務表を作ることが可能です。
利用者はただ毎日の出勤退勤時間を入力するだけです。

この【通常勤務】といった勤務時間帯のテンプレートを必要に応じて設定しておき、切り替えて出勤退勤を入力すればその通りに時間計算されていくというわけです。

システムではユーザ登録すると標準的な時間帯設定が自動で登録されますので、自分でカスタマイズして使ってみてください。

以上です。

ZenBack

WebMoney ぷちカンパ