カレンダーを配布する意味
ここで言うカレンダーとは、企業名が書かれた記念品のようなものではなく、労働すべき日を指定する指示書のような意味を持つ重要な書面です。
ここで指定されている労働日は、有給休暇付与の判定に使う「出勤率」の母数にもなります。
特に変形労働時間制を採用している場合は、「労働日ごとの労働時間を定めなければならない」「当該労働者に通知しなければならない」といった決まりがあります。定めた結果を労働者に伝えるための手段として、カレンダーを出力する必要があります。
労働基準法 第32条の4 ② “少なくとも三十日前に” “定めなければならない。”
労働基準法 第32条の5 ② “当該労働者に通知しなければならない”
労働基準法 第106条 ←周知義務について書かれています。
労働基準法施行規則 第52条の2 ←帳票出力機能を持たず、システム内で表示するだけでも良さそうですが、「各作業場に」「常時確認できる」という要件を厳密に満たせるかは不安が残ります。
その他、厚生労働省から出ているPDFに「原則書面で」「書面として出力できるものに限る」といった事が書かれています。帳票出力機能を搭載しない場合でも、紙やPDFへの出力を「やろうと思えばできる」程度には意識して実装した方が良さそうです。
https://www.mhlw.go.jp/new-info/kobetu/roudou/gyousei/dl/150312-1.pdf
当システムでは紙やPDFに出力する機能はありますが、システム内で自由にカレンダーを閲覧する機能は付いていません。
カレンダーの種類
用途に応じて3パターンのカレンダーを出力できるようにしました。
労働基準法準拠
変形労働時間制で最低限必要になる情報を表示するモードです。
よほど複雑な勤務体系でない限り、このモードを選択すればOKなはずです。
変形労働時間制を採用した場合、協定届の提出が必要になる場合がありますが、協定届の「変形期間中の各日及び各週の労働時間並びに所定休日」という項目と対応する帳票を出力できます。
詳細
カレンダーマスタで設定した情報を全て表示します。
変形労働時間制を採用していて、始業時刻・終業時刻が日々違う場合や、フレックスタイム制を採用していて、コアタイムが日々違う場合に使います。
時刻の横に「必」とあるのは、コアタイムとフレキシブルタイム、強制休憩と任意休憩を見分けるためのフラグです。
「特」という表示は、1年単位の変形労働時間制にある特定期間であることを表します。
1か月分のカレンダーを印刷するのにA4用紙1枚を消費します。
日付のみ
一般的なカレンダー形式で、所定休日、法定休日を区別できるだけの帳票です。
変形労働時間制を採用していない一般的な企業で使います。カレンダーがA4用紙1枚に収まるという利点があります。
実現方法
仕組み
勤怠管理システム側としては「帳票出力できるレイアウトで画面に表示する」だけの機能です。実際の印刷はWebブラウザ側の印刷機能に依存しています。
レイアウト
紙っぽいレイアウトを実現するために「paper-css」を使っています
https://github.com/cognitom/paper-css
一般的なカレンダーでは祝日は赤色ですが、当システムとしては所定休日は青、法定休日は赤で表現しているので、祝日も青色になります。
白黒印刷を想定して、所定休日・法定休日や、1年単位の変形労働時間制における特定期間といった情報は、文字列を表示して色以外の方法でも区別できるようにしています。
カレンダーには3種類のレイアウトがありますが、全て単一のViewを使っていて、レイアウトの切り替えはCSSで実現しています。 詳細 → 労働基準法準拠 → 日付のみ の順に非表示項目を増やしています。カレンダーを横に並べる仕組みはFlexBoxを使っています。
ページ番号
ページ数はjavascriptで動的に採番しています。
各月を1つのブロックと見なして高さを計測し、A4用紙に収まるサイズを超えた時点で改ページ(ブロックの終了タグと次の開始タグを挿入)するといった処理をしています。