2019年11月1日

有給休暇取得日数の自動計算

以前に作ったシステムを再利用することになったので一部紹介します。有給休暇は労働基準法で認められた労働者の権利です。最大限利用しましょう!有給休暇の取得日数の計算は例えば


例として社員のメールアドレスが uid@example.biz で与えられているとしましょう。ここで、uidは社員のユーザーIDです。有給休暇の計算は入社日が分かれば計算できるのでmysqlのデータベースに以下のコマンドで yukyu_usr というテーブルを作成します。
-- データベース: `intra_example`
-- テーブルの構造 `yukyu_usr`
CREATE TABLE IF NOT EXISTS `yukyu_usr` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `uid` varchar(120) COLLATE utf8_unicode_ci NOT NULL,
  `name` varchar(120) COLLATE utf8_unicode_ci NOT NULL,
  `start_date` date DEFAULT NULL,
  `hold` decimal(3,1) DEFAULT NULL,
  `used` decimal(3,1) DEFAULT NULL,
  `status` int(1) NOT NULL DEFAULT '0',
  PRIMARY KEY (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=1 ;
start_dateには入社日を設定します。ステイタスが"1"の場合を有効とします。

あとは毎月1日にこのデータベースを更新すればいいだけです。作成したファイルは以下の通りです。


このファイルを例えば毎月1日の午前1時20分に起動させる場合はcrontabに

20 1 1 * * root php -q /var/www/html/intra_example/yukyu_auto01.php

と記述します。cronの設定については


などを参考にしてください。

最後に上記ファイルの簡単な解説をします。有給休暇の付与は*.5年おき(つまり入社日から6ヵ月後、1年6ヵ月後、2年6ヵ月後、3年6か月後、、、)に行われるので、その時点で指定日数を有給残に(20日を超えない範囲で)追加し、使用済みの有給日数をキャンセルします。有給休暇が付与されると社員のメールアドレスにその内容が通知されます。また、有給休暇の利用を促進するため有給取得後3か月おきに有給残の詳細を社員のメールアドレスに送信されます。これらのメールを送信させたくない場合は下記のファイルの161行目と262行目をコメントアウトしてください。毎月の更新内容は管理者のアドレス admin@example.biz に送信されます。(171行目で設定しています。)

以上で今回のエントリーは終了ですが、このデータを有給休暇を申請するシステムと組み合わせると有給利用がスムーズに行えるはずです。需要があるようなら申請システムについてもまたの機会に紹介します。

0 件のコメント: