ここ半年ほど、レバレジーズという会社さんにお世話になってました。
フリーランスエンジニアのために客先常駐開発の仕事とってきてくれる、いわゆるエンジニア派遣の会社さんです。
営業さんでもrailsとかsvgといった単語を説明なく使って普通に会話できるレベルの方が揃っているので、たいへんやりやすい会社でした。
そんなレバレジーズというか、そこが運営しているレバテックのウリの一つとして、応募したい案件の管理から就業後の勤務時間管理、請求書の作成と送信までまとめて面倒見てくれる「レバテックプラットフォーム」というのがあります。
勤務時間をまとめて入力したい
エンジニアたるもの、こういうWEBシステムを見たらまずソース見ますよね
で、「出勤時間を自動で入れてくれるスクリプト」とか普通書くじゃないですか?
ひょっとして、「部屋の電気を消すと自動で退勤時間を書いてくれるシステム(GetWild演奏機能付き)」みたいなものがすでに公開されてないかなと思ったのですけど、そういう奇特な方はレバテック使わないみたいだったので、ぼくが勝手に書いて使っていたコードを公開します。
コード
// 開始終了休憩時間を入力
var input_selector = function(type_str){
return 'input[name^="data[DailyReport]"][name$="['+type_str+']"]';
};
$( input_selector('start_time') ).val('10:00');
$( input_selector('end_time') ).val('19:00');
$( input_selector('relax_time') ).val('1:00');
// 休日の枠をクリア
var dayoff_tr_selectors = [
'td.txtNormal:contains("(土)") + .reportDetail__txt ',
'td.txtNormal:contains("(日)") + .reportDetail__txt ',
]
$.each(dayoff_tr_selectors, function(i,selector){
$(selector).parent().find( input_selector('start_time') ).val('');
$(selector).parent().find( input_selector('end_time') ).val('');
$(selector).parent().find( input_selector('relax_time') ).val('');
});
// 作業時間計測を実施させる
$( input_selector('relax_time') ).trigger('focusout');
ブラウザでレバテックプラットフォームの勤務表編集画面に入ったら、おもむろにインスペクタを開いて上記コードを実行することで、月-金/10:00-19:00(休憩一時間)の標準的なデータが入力されます。
月初にこれを実行しておけば、あとは残業したりお休みしたときだけデータを更新すればOK。
土日月がお休みの4日勤務とかになってもかんたんに対応できるコードなのが自慢です。
レバテックプラットフォームがバージョンアップしたら使えなくなるのだけど、ぼくはもうレバさんとの契約が終了してしまってプラットフォームにアクセスできないので、その時は各自アップデートして後輩に受け継いでいってくださいね☆