前回は、打刻を記録するためのテーブルとフィールドの作成について紹介しました。今回はその打刻を実際に行い、タイムカードのような形式として記録する方法と考え方です。
打刻をするとこうなる
前の記事で作成したテーブルに打刻を記録するわけですが、そのテーブルにどのように記録されるかを見ていきたいと思います。
この図のように、基本的には打刻を行うとこのテーブル(打刻)に新規レコードを作成します。新規レコードを作成すると、作成アカウント名、打刻日、打刻時間が自動的に入力されます。打刻自体はこれで完了です。
しかし、これではただデータとして記録しただけなので、実際の勤怠管理を行ううえで使えるものにしていくことが必要になります。要するに、最終的に給与計算をするうえで、必要なデータにしなければなりません。この日の出勤(出社)時間が何時何分で、退勤(退社)時間がいつであるかということがわからなくてはいけません。上の図ではそれがわかりません。
タイムカードを作る
この日にいつ出社して、いつ退社したかを見るには紙のタイムカードのように、1日1行のデータにすることがまず必要となります。
この図のようにテーブルを作成してみます。打刻した人(アカウント名)、日付、出勤時刻、退勤時刻をこのようにフィールドとして作成しています。先ほどの「打刻」テーブルのデータからこちらにデータを移すということです。
データをどういう風に移すか
さて、「打刻」のデータを「タイムカード」にどう移すかということですが、2つの考え方をここではご紹介いたします。
クリックするボタンで決まる
打刻するときにはレイアウトにボタンを配置して、そのボタンをクリックすることにより打刻を行うスクリプトを作動させ、打刻を行います。そのボタンを「出勤」「退勤」といったように二つ設置することです。ボタンにより処理を分けて、タイムカードに記録します。
リレーションでタイムカードに記録
こちらの方法は、打刻のボタンを一つしか設けません。その日のうちで最も早い打刻を「出勤」として扱い、最も遅いものを「退勤」として扱います。こちらのメリットとしては、退勤であろうが、出勤であろうが、ボタンが一つなので、間違いが起きないということです。出勤なのに退勤を押してしまったということです。
また、この場合は、ボタンを二つ設ける方法と違い、押し間違えが起きないので、後で処理が楽になるでしょう。上の方法で押し間違えてしまった場合、退勤時に出勤ボタンをクリックししまうと、上書きされてしまうことにもなります。※スクリプトで、上書を制御する方法をとれば問題はないかもしれません。
次回は、実際にタイムカードに書き込み方法を紹介します。